VHDLwhiz UART Test Interface Generator
Informasi produk
Spesifikasi:
- Jeneng Produk: VHDL ndhaptar generator antarmuka uji UART
- Versi: 1.0.4
- Tanggal: 18 Agustus 2024
- Pengarang: Jonas Julian Jensen
- produk URL: Link Produk
- Kontak email: jonas@vhdlwhiz.com
Katrangan
Produk iki ngidini sampeyan ngasilake antarmuka khusus kanggo maca lan nulis nilai registrasi FPGA nggunakake UART. Modul VHDL sing digawe lan skrip Python nyedhiyakake kemampuan kanggo sesambungan karo macem-macem jinis ndhaptar ing desain FPGA sampeyan.
Syarat
- Python 3 interpreter
- paket pyserial
Protokol
Produk kasebut nggunakake protokol framing data kanthi papat karakter kontrol:
- jeneng: READ_REQ, Nilai: 0x0A - Prentah saka host menyang FPGA kanggo miwiti urutan nulis kanggo ngirim kabeh ndhaptar maneh liwat UART
- jeneng: START_NULIS, Nilai: 0x0B - Tandha wiwitan urutan nulis ing salah siji arah
- jeneng: END_WRITE, Nilai: 0x0C - Tandha pungkasan saka urutan nulis ing salah siji arah
- jeneng: uwal, Nilai: 0x0D - Karakter uwal digunakake kanggo uwal saka tembung kontrol
Pandhuan Panggunaan Produk
Mlaku Scripts
Kanggo nggunakake produk, priksa manawa sampeyan wis nginstal Python 3 lan paket Pyserial. Jalanake skrip liwat interpreter Python 3.
Ngasilake Antarmuka Custom
Gunakake skrip gen_uart_regs.py kanggo ngasilake antarmuka khusus kanggo maca lan nulis nilai register FPGA. Sampeyan bisa nemtokake komposisi ndhaftar lan jinis input lan output nalika ngasilake output files.
Interaksi karo Registers
Sampeyan bisa maca saka utawa nulis menyang sembarang nomer ndhaftar ing desain FPGA nggunakake modul VHDL kui lan script Python. Register sing bisa diakses bisa duwe jinis kayata std_logic, std_logic_vector, signed, utawa unsigned.
Lisensi
- Lisensi MIT nyakup syarat hak cipta kode sumber lan syarat panggunaan. Waca LICENSE.txt file ing Zip file kanggo rincian.
Changelog
- Owah-owahan kasebut nuduhake proyek kasebut files, lan document iki dianyari patut
Versi | pangandikan |
1.0.0 | Rilis wiwitan |
1.0.1 | Ndandani bug referensi «self» sing ilang nalika ngimpor minangka uart_regs.py minangka modul Python. Diganti nulis gagal printout kanggo pangecualian kanggo
supaya printing kanggo console nalika mlaku minangka modul diimpor. |
1.0.2 | Ndandani kesalahan Vivado [Synth 8-248] nalika ora ana regs mode metu. |
1.0.3 | Ndandani peringatan Vivado Linter: Register wis ngaktifake mimpin dening
reset sinkron |
1.0.4 | Ndandani cilik sudhut nalika nampa tembung malformed karo karakter uwal minangka byte pungkasan. Tembung sabanjure uga bakal ilang amarga kita ora mbusak recv_data_prev_is_escape nalika bali menyang IDLE.
Skrip gen_uart_regs.py saiki mung ngidini jeneng reg unik. |
Katrangan
- Dokumen iki nerangake ing ngisor iki files lan folder:
- gen_uart_regs.py
- kui/uart_regs.vhd
- kui/uart_regs.py
- kui/instantiation_template.vho
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- demo/lattice_icestick/
- demo/xilinx_arty_a7_35/
- demo/xilinx_arty_s7_50/
- Skrip gen_uart_regs.py lan ndhukung VHDL files ing project iki ngijini sampeyan kanggo generate antarmuka adat kanggo maca lan nulis FPGA nilai register saka macem-macem jinis lan jembaré nggunakake UART.
- Sampeyan bisa nggunakake modul VHDL kui lan script Python kanggo maca saka utawa nulis kanggo nomer ndhaftar ing desain Panjenengan. Register sing bisa diakses UART bisa duwe jinis std_logic, std_logic_vector, mlebu, utawa ora ditandatangani.
- Sampeyan bisa mutusake komposisi lan jinis input lan output sing tepat nalika ngasilake output files nggunakake script gen_uart_regs.py.
- Skrip Python digawe sebagian kanthi bantuan alat intelijen buatan ChatGPT, nalika kode VHDL digawe kanthi tangan.
Syarat
- Tulisan ing proyek iki kudu mbukak liwat Python 3 interpreter lan paket Pyserial kudu diinstal.
- Sampeyan bisa nginstal pyserial liwat Pip nggunakake printah iki: pip install pyserial
Protokol
- VHDL files lan script Python nggunakake protokol data-framing karo papat kontrol
jeneng | Nilai | Komentar |
READ_REQ | 0x0A | Printah saka inang kanggo FPGA kanggo miwiti nulis
urutan kanggo ngirim kabeh ndhaftar bali liwat UART |
START_NULIS | 0x0b | Tandha wiwitan urutan nulis ing salah siji
arah |
END_WRITE | 0x0c | Tandha pungkasan saka urutan nulis ing salah siji arah |
uwal | 0x0d | Karakter uwal digunakake kanggo uwal saka sembarang tembung kontrol, kalebu karakter ESCAPE dhewe, nalika katon minangka data antarane START_WRITE lan END_WRITE panandha. |
Sembarang bait READ_REQ unescaped dikirim menyang FPGA minangka instruksi kanggo ngirim kabeh ndhaftar UART-akses (input lan output) bali menyang host liwat UART. Printah iki biasane mung ditanggepi dening uart_regs.py script.
Sawise nampa printah iki, FPGA bakal nanggapi kanthi ngirim isi kabeh ndhaftar bali menyang host. Kaping pisanan, sinyal input, banjur sinyal output. Yen dawane ora ditambahake nganti pirang-pirang 8 bit, bit ngisor saka bait pungkasan bakal dadi nol.
Urutan nulis mesthi diwiwiti kanthi START_WRITE byte lan dipungkasi karo END_WRITE byte. Sembarang bita ing antarane sing dianggep minangka bita data. Yen bait data duweni nilai sing padha karo karakter kontrol, bait data kudu diilangi. Iki tegese ngirim karakter ESCAPE ekstra sadurunge byte data kanggo nuduhake yen iku bener data.
Yen START_WRITE sing ora bisa lolos teka ing ngendi wae ing aliran bita, iki dianggep minangka wiwitan urutan nulis. Modul uart_regs_backend nggunakake informasi iki kanggo nyinkronake maneh yen komunikasi ora bisa diselarasake.
gen_uart_regs.py
- Iki minangka skrip sing kudu diwiwiti kanggo ngasilake antarmuka. Ing ngisor iki minangka gambar saka menu bantuan sing bisa ditindakake kanthi mlaku: python gen_uart_regs.py -h
- Kanggo ngasilake antarmuka khusus, sampeyan kudu mbukak skrip kanthi saben ndhaptar UART sing bisa dikontrol sing dipengini minangka argumen. Jinis sing kasedhiya yaiku std_logic, std_logic_vector, unsigned, lan signed.
- Mode gawan (arah) ing lan jinis standar std_logic_vector kajaba ndhaftar dawa: 1. Banjur, bakal standar kanggo std_logic.
- Dadi, yen sampeyan pengin nggawe sinyal input std_logic, sampeyan bisa nggunakake argumen kasebut:
- my_sl=1
- my_sl=1: ing
- my_sl = 1: ing: std_logic
- Kabeh varian ing ndhuwur bakal nyebabake skrip ngasilake sinyal sing bisa diakses UART iki:
- Ayo mbukak skrip kanthi argumen kanggo ngasilake antarmuka kanthi sawetara ndhaptar arah, dawa, lan jinis sing beda
Digawe files
- A mbukak sukses saka gen_uart_regs.py script bakal gawé folder output jeneng kui karo telu files kapacak ing ngisor iki. Yen wis ana, bakal ditimpa.
- kui/uart_regs.vhd
- kui/uart_regs.py
- kui/instantiation_template.vho
- uart_regs.vhd
- Iki modul antarmuka adat kui dening script. Sampeyan kudu instantiate ing desain, ngendi iku bisa ngakses ndhaftar sing pengin kontrol nggunakake UART.
- Kabeh ing ndhuwur bagean "- UART diakses ndhaftar" bakal podho rupo kanggo saben modul uart_regs, nalika komposisi sinyal port ngisor baris gumantung ing bantahan diwenehi kanggo script generator.
- Listing ing ngisor iki nuduhake entitas kanggo modul uart_regs asil saka printah generate example ditampilake ing gen_uart_regs.py secti
- Sampeyan ora perlu nyinkronake sinyal uart_rx, amarga sing ditangani ing uart_rx. modul.
- Nalika modul nampa panjalukan diwaca, bakal njupuk nilai kabeh sinyal input lan output ing siklus jam saiki. Gambar langsung dikirim menyang host liwat UART.
- Nalika nulis kedadeyan, kabeh ndhaptar output dianyari karo nilai anyar ing siklus jam sing padha. Ora bisa ngganti nilai sinyal output kanthi individu.
- Nanging, skrip uart_regs.py ngidini pangguna nganyari mung output sing dipilih kanthi maca maneh nilai saiki kabeh registrasi. Banjur nulis maneh kabeh nilai, kalebu sing dianyari.
- uart_regs.py
- Dihasilake/uart_regs.py file kui bebarengan karo uart_regs modul VHDL lan ngemot informasi ndhaftar adat ing header saka file. Kanthi skrip iki, sampeyan bisa maca saka utawa nulis menyang register khusus kanthi gampang.
menu bantuan
- Ketik python uart_regs.py -h kanggo nyithak menu bantuan:
Nyetel port UART
- Skrip nduweni opsi kanggo nyetel port UART nggunakake saklar -c. Iki bisa digunakake ing Windows lan Linux. Setel menyang salah sawijining port sing kasedhiya ing menu pitulung. Kanggo nyetel port standar, sampeyan uga bisa ngowahi variabel UART_PORT ing skrip uart_regs.py.
Daftar dhaptar
- Informasi babagan pemetaan register diselehake ing header script uart_regs.py dening script gen_uart_regs.py. Sampeyan bisa dhaptar ndhaptar kasedhiya karo -l ngalih, minangka katon ing ngisor iki. Iki minangka prentah lokal lan ora bakal sesambungan karo target FPGA
Nulis kanggo ndhaftar
- Sampeyan bisa nulis menyang sembarang ndhaftar mode metu kanthi nggunakake saklar -w. Nyedhiyakake jeneng registrasi banjur "=" lan nilai sing diwenehake minangka nilai binar, heksadesimal, utawa desimal, kaya sing ditampilake ing ngisor iki.
- Elinga yen implementasine VHDL mbutuhake script kanggo nulis kabeh ndhaftar output bebarengan. Mulane, yen sampeyan ora nemtokake set lengkap ndhaftar output, script bakal nindakake maca saka target FPGA lan banjur nggunakake nilai sing ilang. Asilé mung ndhaptar sing ditemtokake sing diganti
- Nalika sampeyan nindakake nulis, kabeh ndhaftar tartamtu bakal ngganti sak siklus jam padha, ora sanalika padha ditampa liwat UART.
Register maca
- Gunakake -r ngalih kanggo maca kabeh nilai register, minangka kapacak ing ngisor iki. Nilai sing ditandhani kanthi warna kuning yaiku sing kita ganti ing mantan nulis sadurungeample
- Saben diwaca nuduhake snapshot cepet kabeh ndhaftar input lan output. Kabeh mau sampdipimpin sajrone siklus jam sing padha
Debugging
Gunakake saklar -d karo saklar liyane yen sampeyan kudu debug protokol komunikasi. Banjur, script bakal print metu kabeh dikirim lan ditampa byte lan tag yen dheweke minangka karakter kontrol, kaya sing kapacak ing ngisor iki.
Nggunakake antarmuka ing skrip Python liyane
- Skrip uart_regs.py ngemot kelas UartRegs sing bisa digunakake kanthi gampang minangka antarmuka komunikasi ing skrip Python khusus liyane. Mung ngimpor kelas, nggawe obyek saka iku, lan miwiti nggunakake cara, minangka kapacak ing ngisor iki.
- Deleng docstrings ing kode Python kanggo cara lan deskripsi lan jinis nilai bali.
instantiation_template.vho
- Cithakan instantiation digawe bebarengan karo modul uart_regs kanggo penak. Kanggo ngirit wektu coding, sampeyan bisa nyalin instantiasi modul lan deklarasi sinyal menyang desain sampeyan.
RTL statis files
- Sampeyan kudu kalebu ing ngisor iki files ing proyek VHDL sampeyan supaya dikompilasi menyang perpustakaan sing padha karo modul uart_regs:
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- Modul uart_regs_backend ngleksanakake mesin negara winates sing jam lan metu data register. Iku nggunakake uart_rx lan uart_tx modul kanggo nangani komunikasi UART karo inang.
proyek demo
- Ana telung proyek demo sing kalebu ing Zip file. Dheweke ngidini sampeyan ngontrol periferal ing papan sing beda-beda uga sawetara ndhaptar internal sing luwih gedhe.
- Folder demo kalebu uart_regs.vhd lan uart_regs.py sing wis digawe files digawe khusus kanggo desain kasebut.
Kisi iCEstick
- Folder demo / icecube2_icestick ngemot implementasi demo akses register kanggo papan FPGA Lattice iCEstick.
- Kanggo mbukak proses implementasine, bukak demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project file ing piranti lunak desain Lattice iCEcube2.
- Sawise mbukak proyek ing GUI iCEcube2, klik Tools → Run All kanggo ngasilake bitmap pemrograman file.
- Sampeyan bisa nggunakake alat Standalone Programmer Lattice Diamond kanggo ngatur FPGA karo bitmap kui file. Nalika Diamond Programmer mbukak, klik Mbukak proyek programmer ana ing kothak dialog sambutan.
- Pilih proyek file ditemokaké ing Zip: demo / lattice_icestick / diamond_programmer_project.xcf lan klik OK.
- Sawise proyek mbukak, klik telung titik ing File Jeneng kolom, kaya sing dituduhake ing ndhuwur. Browse kanggo milih bitmap file sing digawe ing iCEcube2
- demo/lattice_icestick/icecube2_proj/uart_regs_Implmnt/sbt/outputs/bitmap/top_icestick_bitmap.bin
- Pungkasan, kanthi papan iCEstick dipasang menyang port USB ing komputer, pilih Desain → Program kanggo program lampu kilat SPI lan konfigurasi FPGA.
- Sampeyan saiki bisa nerusake maca lan nulis registrasi kanthi nggunakake skrip demo/lattice_icestick/uart_regs.py kaya sing diterangake ing bagean uart_regs.py.
Xilinx Digilent Arty A7-35T
- Sampeyan bisa nemokake implementasine demo kanggo Artix-7 35T Arty FPGA kit evaluasi ing demo / folder arty_a7_35.
- Bukak Vivado lan navigasi menyang sing diekstrak files nggunakake console Tcl ditemokaké ing ngisor antarmuka GUI. Ketik printah iki kanggo ngetik folder proyek demo:
- cd /demo/arty_a7_35/vivado_proj/
- Jalanake skrip Tcl create_vivado_proj.tcl kanggo ngasilake proyek Vivado:
- sumber ./create_vivado_proj.tcl
- Klik Generate Bitstream ing sidebar kanggo mbukak kabeh langkah implementasine lan ngasilake bitstream pemrograman file.
- Pungkasan, klik Open Hardware Manager lan program FPGA liwat GUI.
- Sampeyan saiki bisa nerusake maca lan nulis registrasi kanthi nggunakake skrip demo/arty_a7_35/uart_regs.py kaya sing diterangake ing bagean uart_regs.py.
Xilinx Digilent Arty S7-50
- Sampeyan bisa nemokake implementasine Tur kanggo Arty S7: Spartan-7 papan pangembangan FPGA ing demo / folder arty_s7_50.
- Bukak Vivado lan navigasi menyang sing diekstrak files nggunakake console Tcl ditemokaké ing ngisor antarmuka GUI. Ketik printah iki kanggo ngetik folder proyek demo:
- cd /demo/arty_s7_50/vivado_proj/
- Jalanake skrip Tcl create_vivado_proj.tcl kanggo ngasilake proyek Vivado:
- sumber ./create_vivado_proj.tcl
- Klik Generate Bitstream ing sidebar kanggo mbukak kabeh langkah implementasine lan ngasilake bitstream pemrograman file.
- Pungkasan, klik Open Hardware Manager lan program FPGA liwat GUI.
- Sampeyan saiki bisa nerusake maca lan nulis registrasi kanthi nggunakake skrip demo/arty_s7_50/uart_regs.py kaya sing diterangake ing bagean uart_regs.py.
Implementasine
- Ora ana syarat implementasine tartamtu.
Watesan
- Ora ana watesan wektu tartamtu sing dibutuhake kanggo desain iki amarga antarmuka UART alon lan dianggep minangka antarmuka asinkron.
- Input uart_rx menyang modul uart_regs diselarasake ing modul uart_rx. Dadi, ora perlu disinkronake ing modul tingkat paling dhuwur.
Masalah sing dikenal
- Sampeyan bisa uga kudu ngreset modul sadurunge bisa digunakake, gumantung apa arsitektur FPGA sampeyan ndhukung nilai register standar.
info liyane
- Hak cipta VHDLwhiz.com
Pitakonan
P: Apa tujuane generator antarmuka uji UART?
A: UART test antarmuka generator ngidini kanggo nggawe antarmuka adat kanggo sesambungan karo FPGA nilai register nggunakake komunikasi UART.
P: Kepiye carane nginstal paket Pyserial?
A: Sampeyan bisa nginstal Pyserial liwat Pip nggunakake printah: pip install pyserial
Dokumen / Sumber Daya
![]() |
VHDLwhiz UART Test Interface Generator [pdf] Manual pangguna UART Test Interface Generator, Test Interface Generator, Interface Generator, Generator |