Dua pertanyaan.
Saya memiliki Xilinx Spartan 6 FPGA yang hanya memiliki seluk beluk HDMI. Apakah ada semacam panduan atau kode pra-tertulis yang dapat saya gunakan untuk mulai mengirim gambar ke layar? Saya tidak tahu bagaimana memulainya dan saya belum dapat menemukan sumber daya.
Kedua, alasan saya melakukan ini adalah karena saya ingin menggunakan dan memodifikasi kode Atari 2600 seorang pria diimplementasikan pada Spartan 3E dengan VGA. Apakah mungkin untuk dengan mudah menyesuaikan aspek video proyek saya?
Bantuan, sumber daya, atau saran apa pun akan sangat dihargai!
Jawaban:
Papan Atlys menggunakan input TDMS, jadi Anda membutuhkan dekoder HDMI yang mengambil input tersebut dan menghasilkan VSYNC, HSYNC, DE, dan DATA. Xilinx merinci proses encoding dan decoding DVI dalam beberapa catatan aplikasi. Ini masing-masing datang dengan kode contoh, diperlukan login xilinx:
Contoh kode ada di Verilog, meskipun mengubah level teratas menjadi VHDL jika Anda suka adalah latihan yang relatif sepele.
Berikut adalah gambar yang diambil dari catatan aplikasi pertama yang menunjukkan premis dasar penerima:
Karena Spartan 6 memiliki perangkat keras SERDES bawaan, ini dapat digunakan sebagai bagian dari proses deserialisasi. Ada proses sinkronisasi yang memulihkan jam dan memastikan bahwa semua saluran tidak sinkron. Akhirnya, 8b / 10b decoding diterapkan untuk menghasilkan data saluran RGB.
Setelah sinyal video dipulihkan, Anda dapat meneruskan sinyal tesis ini ke pemrosesan apa pun yang ingin Anda lakukan, atau ke encoder yang akan mengirimnya keluar dari port HDMI lagi.
Jika Anda memiliki layar TFTMOD, meneruskan data ke layar semudah menghubungkan sinyal DE dan DATA ke pin FPGA yang sesuai. Manual referensi papan TFT berguna untuk info waktu tentang tampilan, meskipun saya menemukan bahwa waktu keluaran deserialiser baik-baik saja.
Anda dapat menggunakan file UCF dari proyek ini , untuk kendala untuk HDMI, dan proyek ini untuk kendala MODTFT jika Anda menggunakan papan itu.
Satu-satunya hal yang perlu diperhatikan adalah bahwa contoh Xilinx tidak menangani info EDID. Jika Anda hanya menggunakan papan untuk meneruskan data, maka Anda dapat merutekan jalur EDID langsung dan menyebutnya sehari. Skenario lain mungkin memerlukan penanganan data EDID pada FPGA. Pada dasarnya itu hanya I2C. The antarmuka opencores I2C cukup padat, atau Anda dapat kode Anda sendiri. Sejauh yang saya tahu, tabel wikipedia tentang format data untuk EDID 1.3 akurat.
sumber
Hanya untuk melengkapi apa yang dijelaskan oleh jawaban sebelumnya:
Pemancar DVI / HDMI bisa menjadi titik awal yang baik karena Anda bisa langsung mendapatkan beberapa video.
Transmisi Video HDMI / DVI melalui tautan TMDS secara logis dibagi menjadi beberapa tahap seperti yang ditunjukkan pada Gambar 1: Desain Pemancar TMDS untuk Implementasi Antarmuka Video TMDS di Spartan-6 FPGA
Encoder TMDS: mengonversi data piksel dari sumber video, Data Bantu HDMI / Audio, dan HSYNC dan VSYNC menjadi tiga aliran simbol 10-bit
Serialisator (10: 5 Gear Box dan OSERDES2 5: 1 Konversi) tampil dalam dua tahap konversi paralel-ke-bit 10-bit pada ketiga aliran dan kemudian mengirimkannya ke tiga saluran pasangan keluaran diferensial (buffer TMDS).
Kedua tahap membutuhkan sirkuit pencatatan jam kerja untuk menghasilkan (PLL) dan mendistribusikan (BUFPLL, BUFG) sinyal jam (dengan frekuensi jam referensi piksel dan kelipatannya) dengan benar.
Tentu saja, inti dari pemancar adalah blok Encoders. Anda dapat mulai dengan DVI encoder karena kesederhanaannya dibandingkan dengan HDMI. Baik HDMI dan DVI memiliki banyak aspek yang sama, termasuk tautan fisik TMDS, algoritma penyandian video aktif dan definisi token kontrol.
Catatan aplikasi juga menyediakan 2 desain. Yang sederhana tapi bagus untuk memulai adalah "Generasi bilah Warna SMPTE HD dengan Pengaturan Waktu Programmable Video". Ini mengirimkan video bar warna generator di banyak mode layar yang dapat dipilih oleh slide-switch. Desain ini berguna karena kita dapat mengubah color bar generator dengan sumber video lain dan masih bisa mendapatkan beberapa video menjaga blok pemancar asli.
Saya harap ini membantu!
sumber
Berikut adalah teks dari desain referensi yang dapat Anda unduh dari halaman papan yang Anda tautkan:
Anda juga dapat melihat desain referensi yang datang dengan kit pemrosesan video industri Xilinx spartan 6. http://www.em.avnet.com/en-us/design/drc/Pages/Xilinx-Spartan-6-FPGA-Industrial-Video-Processing-Kit.aspx (klik tautan file dukungan, diperlukan login avnet ).
Mungkin ada lebih banyak desain referensi di luar sana untuk berbagai fpg juga.
Juga kecuali Anda menerapkan audio atau enkripsi HDMI pada dasarnya sama dengan dvi.
sumber
Tutorial berikut, memanfaatkan miniSpartan6, sangat rinci dan patut dilihat: http://zerocharactersleft.blogspot.com/2015/04/diy-fpga-based-hdmi-ambient-lighting.html
sumber