Karena masalah dengan desain contoh demo inti IP DisplayPort (versi 16.0 dan sebelumnya), gambar mungkin tidak terlihat ketika wastafel inti IP DisplayPort terhubung ke GPU Intel®. Meskipun nilai MSA RX dan TX mungkin terlihat benar, tidak ada gambar yang akan ditampilkan pada monitor. Hal ini disebabkan oleh ketidaksesuaian antara mode clocking yang digunakan oleh GPU Intel dan sumber inti IP DisplayPort. GPU Intel menggunakan clocking sinkron, sementara sumber inti IP DisplayPort menggunakan clocking asinkron. Hal ini menyebabkan dua masalah dengan desain contoh demo perangkat keras.
Pertama, desain contoh demo perangkat keras menggunakan nilai NVID tetap untuk modul pixel clock recovery (PCR). Pengaturan ini ditujukan untuk GPU yang menggunakan clocking asynchronous, dan tidak akan berfungsi dengan GPU Intel.
Kedua, karena mode clocking mereka, GPU Intel mengatur bit 0 dari register RX MSA MISC0 ke 1, sementara sumber inti IP DisplayPort menetapkan bit 0 dari register TX MSA MISC0 ke 0. Meskipun spesifikasinya berbeda, perangkat lunak Nios® II (khususnya EDID pass through code) mengharapkan RX MSA MISC0 persis sama dengan TX MSA MISC0, dan menonaktifkan sumber inti IP DisplayPort jika ada ketidaksesuaian.
Pertama, modifikasi berkas Verilog tingkat atas untuk dinonaktifkan menggunakan nilai NVID tetap untuk modul PCR. Dalam direktori proyek utama, modifikasi berkas a10_dp_demo.v untuk mengubah satu baris,
Dari:
defparam bitec_clkrec_i.FIXED_NVID = 1;
Untuk:
defparam bitec_clkrec_i.FIXED_NVID = 0;
Kedua, modifikasi perangkat lunak Nios II untuk mengabaikan bit 0 saat membandingkan register RX MSA MISC0 dan TX MSA MISC0. Dalam direktori proyek utama, modifikasi file main.c untuk mengubah dua baris,
Dari:
rx_misc0 = IORD(btc_dprx_baseaddr(0), DPRX0_REG_MSA_MISC0) & 0xFFF F;
tx_misc0 = IORD(btc_dptx_baseaddr(), DPTX0_REG_MSA_MISC0) &0xFFF F;
Untuk:
rx_misc0 = IORD(btc_dprx_baseaddr(0), DPRX0_REG_MSA_MISC0) & 0xFFF E;
tx_misc0 = IORD(btc_dptx_baseaddr(), DPTX0_REG_MSA_MISC0) & 0xFFF E;
Setelah membuat modifikasi ini, jalankan skrip build_sw.sh untuk membangun kembali proyek perangkat lunak, kemudian rekompilasi ulang proyek di perangkat lunak Quartus® Prime. Secara bergantian, Anda dapat menjalankan kembali skrip runall.tcl, yang akan melakukan kedua langkah ini untuk Anda.
Kedua masalah ini telah diperbaiki dalam desain contoh demo perangkat keras Quartus Prime v16.1 DisplayPort.