Cara memanfaatkan port HDMI pada FPGA (dasar)

8

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!

kebohongan
sumber
Apakah ini papan pengembangan komersial? jika demikian model apa dan periksa desain referensi yang menyertainya.
davidd
Ini papannya: digilentinc.com/Products/… Itu tidak datang dengan apa pun.
ballaw
@ballaw - Produk Digilent hadir dengan dukungan yang cukup bagus. Gulir ke bagian bawah halaman yang baru saja Anda tautkan , dan Anda akan melihat sejumlah besar dokumentasi dan proyek sampel online: i.stack.imgur.com/F0TgY.png . Online sekarang dianggap sebagai "datang dengannya". Anda juga mungkin ingin mencari lembar data untuk bagian lain di papan tulis seperti XC6SLX45 FPGA dan buffer HDMI TMDS141RHAR, mereka ada di tempat lain di internet.
Kevin Vermeer

Jawaban:

12

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:

dari catatan Aplikasi Xilinx

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.

stanri
sumber
4

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

masukkan deskripsi gambar di sini

  1. Encoder TMDS: mengonversi data piksel dari sumber video, Data Bantu HDMI / Audio, dan HSYNC dan VSYNC menjadi tiga aliran simbol 10-bit

  2. 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!

L30nardo SV.
sumber
2
Jawaban hanya tautan tidak disarankan karena jika Xilinx menata ulang situs mereka di masa depan dan tautan itu menjadi mati, tautan itu tidak akan memberikan bantuan apa pun kepada pengunjung di masa mendatang. Mungkin Anda bisa menambahkan beberapa detail tambahan dari pendekatan umum yang dijelaskan oleh catatan aplikasi?
PeterJ
Terima kasih, kamu sepenuhnya benar. Saya telah menambahkan beberapa detail lebih lanjut tentang itu.
L30nardo SV.
3

Berikut adalah teks dari desain referensi yang dapat Anda unduh dari halaman papan yang Anda tautkan:

DSD-0000326 12/13/11 File zip ini berisi proyek demo EDK yang menunjukkan penggunaan HDMI pada papan Genesys. Ini menerima input HDMI, buffer frame input ke dalam memori, dan kemudian output buffer ke port HDMI lain. Ini diimplementasikan menggunakan bus PLB. Unduh

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.

davidd
sumber
Terima kasih. Saya melihat itu tetapi saya tidak begitu yakin bagaimana menggunakannya karena menggunakan EDK yang tidak saya miliki karena tidak gratis. Apakah ini masalah sederhana menggunakan file VHD di dalamnya? Saya ragu karena ada cukup banyak hal lain dalam unduhan, yang sebagian besar saya tidak tahu apa itu.
ballaw