VHDLwhiz UART Test Interface Jenereithara
Tlhahisoleseding ya Sehlahiswa
Litlhaloso:
- Lebitso la Sehlahisoa: VHDL e ngolisa jenereithara ea tlhahlobo ea UART
- Phetolelo: 1.0.4
- Letsatsi: Phato 18, 2024
- Mongoli: Jonas Julian Jensen
- Sehlahisoa URL: Sehokelo sa Sehlahisoa
- Ikopanye le lengolo-tsoibila: jonas@vhdlwhiz.com
Tlhaloso
Sehlahisoa sena se u lumella ho hlahisa li-interface tsa tloaelo bakeng sa ho bala le ho ngola boleng ba rejisetara ea FPGA u sebelisa UART. Mojule oa VHDL o hlahisitsoeng le mongolo oa Python o fana ka bokhoni ba ho sebelisana le mefuta e fapaneng ea lirejistara moetsong oa hau oa FPGA.
Litlhoko
- Python 3 toloko
- sephutheloana sa pyserial
Protocol
Sehlahisoa se sebelisa protocol ea ho theha data e nang le litlhaku tse 'ne tsa taolo:
- Lebitso: BALA_REQ, Boleng: 0x0A - Laela ho tsoa ho moamoheli ho ea ho FPGA ho qala tatellano ea ho ngola ho romella lirekoto tsohle ho UART
- Lebitso: START_NGOLA, Boleng: 0x0B - E tšoaea qaleho ea tatellano ea ho ngola ka nqa efe kapa efe
- Lebitso: END_NGOLA, Boleng: 0x0C - E tšoaea pheletso ea tatellano ea ho ngola ka nqa efe kapa efe
- Lebitso: BALEHA, Boleng: 0x0D - Sebapali sa Escape se sebelisetsoang ho baleha mantsoe a taolo
Litaelo tsa Tšebeliso ea Sehlahisoa
Ho tsamaisa Mangolo
Ho sebelisa sehlahisoa, etsa bonnete ba hore u kentse Python 3 le sephutheloana sa Pyserial. Tsamaisa mangolo ka mofetoleli oa Python 3.
Ho hlahisa li-interfaces tse tloaelehileng
Sebelisa mongolo oa gen_uart_regs.py ho hlahisa li-interface tsa tloaelo bakeng sa ho bala le ho ngola boleng ba rejisetara ea FPGA. O ka hlakisa sebopeho sa lirejisete tsa ho kenya le tse hlahisoang le mefuta ha o hlahisa tlhahiso files.
Ho sebelisana le Registers
U ka bala ho tsoa kapa ua ngolla palo efe kapa efe ea lirejistara moralong oa hau oa FPGA u sebelisa mojule oa VHDL le mongolo oa Python. Lirekoto tse fumanehang li ka ba le mefuta e joalo ka std_logic, std_logic_vector, e saennoeng, kapa e sa saena.
Laesense
- Laesense ea MIT e akaretsa litlhoko tsa litokelo tsa molao tsa mohloli le lipehelo tsa ts'ebeliso. Sheba LICENSE.txt file ka Zip file bakeng sa lintlha.
Changelog
- Liphetoho tsena li bua ka morero files, 'me tokomane ena e nchafatsoa ka nepo
Phetolelo | Litlhaloso |
1.0.0 | Tokollo ea pele |
1.0.1 | E lokisitse ho haella ha "self" bug ha o kenya ka har'a uart_regs.py joalo ka mojule oa Python. Mongolo o fetotsoeng o hlōlehile khatisong ho mokhelo ho
qoba ho hatisa ho console ha e sebetsa e le mojule o tsoang kantle ho naha. |
1.0.2 | Lokisa phoso ea Vivado [Synth 8-248] ha ho se na li-out mode regs. |
1.0.3 | Lokisa temoso ea Vivado Linter: Ngoliso e nolofalletse ho tsamaisoa ke
ho seta botjha ka tsela e lumellanang |
1.0.4 | Lokisa mokotlana oa huku ha u amohela lentsoe le sa sebetseng hantle le nang le litlhaku tsa ho baleha e le baiti ea ho qetela. Lentsoe le latelang le lona le tla lahleha hobane ha rea hlakola recv_data_prev_is_escape ha re khutlela IDLE.
Sengoliloeng sa gen_uart_regs.py se lumella feela mabitso a ikhethang a reg. |
Tlhaloso
- Tokomane ena e hlalosa tse latelang files le lifoldara:
- gen_uart_regs.py
- generated/uart_regs.vhd
- generated/uart_regs.py
- generated/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/
- Sengoliloeng sa gen_uart_regs.py le VHDL e tšehetsang files morerong ona o u lumella ho hlahisa lihokelo tsa moetlo bakeng sa ho bala le ho ngola boleng ba rejisetara ea FPGA ea mefuta le bophara bo fapaneng u sebelisa UART.
- U ka sebelisa mojule oa VHDL le sengoloa sa Python ho bala ho tsoa kapa ho ngolla palo efe kapa efe ea lirekoto tse moralong oa hau. Lirekoto tse fumanehang tsa UART li ka ba le mefuta ea std_logic, std_logic_vector, e saennoeng, kapa e sa saena.
- O ka etsa qeto mabapi le sebopeho se nepahetseng sa lirejisete tsa ho kenya le tse hlahisoang le mefuta ha o hlahisa sephetho files sebelisa mongolo oa gen_uart_regs.py.
- Lingoliloeng tsa Python li entsoe ka mokhoa o itseng ka thuso ea sesebelisoa sa bohlale ba maiketsetso sa ChatGPT, ha khoutu ea VHDL e entsoe ka letsoho.
Litlhoko
- Lingoliloeng tsa projeke ena li tlameha ho tsamaisoa ka mofetoleli oa Python 3 mme sephutheloana sa Pyserial se tlameha ho kenngoa.
- U ka kenya pyserial ka Pip u sebelisa taelo ena: pip install pyserial
Protocol
- Setšoantšo sa VHDL files le Python script li sebelisa protocol ea ho theha data e nang le taolo e mene
Lebitso | Boleng | Tlhaloso |
BALA_REQ | 0x0A | Laela ho tsoa ho moamoheli ho ea ho FPGA ho qala ho ngola
tatellano ea ho romella mangolo ohle morao ka UART |
START_KWALA | 0x0B | E tšoaea qaleho ea tatellano ea ho ngola ho efe kapa efe
tataiso |
END_NGOLA | 0x0C | O tšoaea qetellong ea tatellano ea ho ngola ka nqa efe kapa efe |
PHOLOHANG | 0x0D | Escape letter e sebelisitsoeng ho phonyoha mantsoe afe kapa afe a taolo, ho kenyeletsoa le litlhaku tsa ESCAPE ka botsona, ha a hlaha e le lintlha lipakeng tsa START_WRITE le END_WRITE matšoao. |
Leha e le efe e sa phonyohang READ_REQ byte e rometsoeng ho FPGA ke taelo ea ho romela lirejisete tsohle tsa eona tsa UART (lintho le liphetho) ho moamoheli ka UART. Taelo ena hangata e fanoa feela ke uart_regs.py script.
Ha e fumana taelo ena, FPGA e tla arabela ka ho romela litaba tsa lirekoto tsohle ho moamoheli. Ntlha ea pele, lipontšo tsa ho kenya letsoho, ebe li hlahisa matšoao. Haeba bolelele ba tsona bo sa kopane le palo ea li-bits tse 8, li-bits tse ka tlaase tsa li-byte tsa ho qetela li tla ba le li-zero.
Tatelano ea ho ngola e qala ka START_WRITE byte 'me e qetella ka END_WRITE byte. Li-byte life kapa life lipakeng tsa tseo li nkuoa e le li-byte tsa data. Haeba li-byte life kapa life tsa data li na le boleng bo ts'oanang le sebapali sa taolo, data byte e tlameha ho phonyoha. Sena se bolela ho romela litlhaku tse eketsehileng tsa ESCAPE pele ho data byte ho bontša hore ha e le hantle ke data.
Haeba START_WRITE e sa phonyohang e fihla kae kapa kae moo ho hlahang li-byte, e nkuoa e le qalo ea tatellano ea ho ngola. Uart_regs_backend module e sebelisa tlhahisoleseling ena ho hokahanya hape haeba puisano e ka tsoa ho sync.
gen_uart_regs.py
- Ena ke script eo u tlamehang ho qala ka eona ho hlahisa sebopeho. Ka tlase ho na le skrini sa lenane la thuso leo u ka le fumanang ka ho matha: python gen_uart_regs.py -h
- Ho hlahisa sebopeho sa tloaelo, o tlameha ho tsamaisa sengoloa ka rejisetara e 'ngoe le e 'ngoe e laolehang ea UART e thathamisitsoeng e le likhang. Mefuta e fumanehang ke std_logic, std_logic_vector, e sa saenang, 'me e saennoe.
- Mokhoa oa kamehla (tataiso) o kene 'me mofuta oa kamehla ke std_logic_vector ntle le haeba register e le bolelele: 1. Joale, e tla lula e le std_logic.
- Kahoo, haeba u batla ho theha lets'oao la ho kenya std_logic, u ka sebelisa leha e le efe ea likhang tsena:
- my_sl=1
- my_sl=1:in
- my_sl=1:in:std_logic
- Mefuta eohle e kaholimo e tla fella ka hore mongolo o hlahise lets'oao lena le fihlellehang la UART:
- Ha re tsamaise sengoloa ka likhang ho hlahisa sebopeho se nang le lirejiseta tse 'maloa tsa litsela, bolelele le mefuta e fapaneng.
E hlahisitsoe files
- Ts'ebetso e atlehileng ea sengoloa sa gen_uart_regs.py e tla hlahisa foldara e hlahisoang e hlahisitsoeng ka tse tharo. files tse thathamisitsoeng ka tlase. Haeba li se li ntse li le teng, li tla hlakoloa.
- generated/uart_regs.vhd
- generated/uart_regs.py
- generated/instantiation_template.vho
- uart_regs.vhd
- Ena ke mojule oa sebopeho sa tloaelo se hlahisoang ke script. U hloka ho e tiisa moralong oa hau, moo e ka fihlelang lirejisete tseo u batlang ho li laola ka UART.
- Ntho e 'ngoe le e' ngoe e ka holimo ho karolo ea "- UART accessible registers" e tla tšoana le mojule o mong le o mong oa uart_regs, ha sebopeho sa matšoao a koung ka tlase ho mola ona se itšetlehile ka likhang tse fanoeng ho mongolo oa jenereithara.
- Lethathamo le ka tlase le bonts'a setheo sa module ea uart_regs e hlahisoang ke tlhahiso ea taelo exampe bonts'itsoeng ho gen_uart_regs.py secti
- Ha o hloke ho hokahanya lets'oao la uart_rx, joalo ka ha le sebetsoa ho uart_rx. mojule.
- Ha mojule o fumana kopo e baloang, e tla nka boleng ba matšoao ohle a kenyelletso le tlhahiso ka har'a potoloho ea oache ea hajoale. Senepe sa hang-hang se romelloa ho moamoheli ka UART.
- Ha ho ngoloa ho etsahala, lirejisete tsohle tse hlahisoang li nchafatsoa ka boleng bo bocha ka nako e tšoanang ea oache. Ha ho khonehe ho fetola boleng ba matšoao a tlhahiso ka bonngoe.
- Leha ho le joalo, sengoloa sa uart_regs.py se lumella mosebelisi ho ntlafatsa liphetho tse khethiloeng feela ka ho qala ka ho bala litekanyetso tsa hajoale tsa lirekoto tsohle. E ntan'o ngola litekanyetso tsohle, ho kenyelletsa le tse nchafalitsoeng.
- uart_regs.py
- The generated/uart_regs.py file e hlahisoa hammoho le mojule oa uart_regs VHDL mme e na le tlhaiso-leseling ea ngoliso ea moetlo hloohong ea file. Ka mongolo ona, o ka bala kapa oa ngolla lirejisete tsa hau tsa tloaelo habonolo.
Lenane la thuso
- Tlanya python uart_regs.py -h ho hatisa lethathamo la thuso:
Ho theha boema-kepe ba UART
- Sengoloa se na le likhetho tsa ho seta boema-kepe ba UART u sebelisa -c switch. Sena se sebetsa ho Windows le Linux. E behe ho e 'ngoe ea likou tse fumanehang tse thathamisitsoeng ho menu ea thuso. Ho seta boema-kepe ba kamehla, o ka boela oa hlophisa UART_PORT e feto-fetohang ho uart_regs.py script.
Mananeo a thathamisang
- Lintlha tse mabapi le 'mapa oa registara li kentsoe hloohong ea mongolo oa uart_regs.py ke mongolo oa gen_uart_regs.py. U ka thathamisa lirejistara tse fumanehang ka -l switch, joalo ka ha ho bonoa ka tlase. Ena ke taelo ea lehae mme e ke ke ea sebelisana le sepheo sa FPGA
Ho ngolla li-registry
- O ka ngolla leha e le efe ea lirejisete tsa mokhoa oa ho tsoa ka ho sebelisa -w switch. Fana ka lebitso la rejisetara le lateloang ke “=" le boleng bo fanoeng e le boleng ba binary, hexadecimal, kapa decimal, joalo ka ha ho bontšitsoe ka tlase.
- Hlokomela hore ts'ebetsong ea VHDL e hloka hore sengoloa se ngole lirekoto tsohle tsa tlhahiso ka nako e le 'ngoe. Ka hona, haeba u sa hlalose lethathamo le felletseng la li-registe tse hlahisoang, sengoloa se tla qala ho bala ho tsoa ho sepheo sa FPGA ebe se sebelisa litekanyetso tseo bakeng sa tse sieo. Sephetho e tla ba hore li-registas tse boletsoeng feela li fetoha
- Ha u ngola, lirekoto tsohle tse boletsoeng li tla fetoha ka nako e tšoanang ea oache, eseng hang ha li amoheloa ka UART.
Lirekoto tsa ho bala
- Sebelisa -r switch ho bala boleng bohle ba registara, joalo ka ha ho bonts'itsoe ka tlase. Litekanyetso tse tšoailoeng ka mosehla ke tsona tseo re li fetotseng ho ex e fetilengample
- E 'ngoe le e' ngoe e baloang e bonts'a sets'oants'o sa hang-hang sa lirekoto tsohle tsa ho kenya le tse hlahisoang. Kaofela ke sampe etelletsoe pele nakong ea potoloho e tšoanang ea oache
Ho lokisa liphoso
Sebelisa -d switch ka li-switches tse ling haeba u hloka ho lokisa protocol ea puisano. Joale, script e tla hatisa li-byte tsohle tse rometsoeng le tse amoheloang le tag bona haeba e le batho ba laolang, joalo ka ha ho bonts'itsoe ka tlase.
Ho sebelisa sebopeho ho lingoloa tse ling tsa Python
- Sengoliloeng sa uart_regs.py se na le sehlopha sa UartRegs seo u ka se sebelisang habonolo joalo ka sehokelo sa puisano mengolong e meng ea tloaelo ea Python. Kenya feela sehlopha, theha ntho ea sona, 'me u qale ho sebelisa mekhoa, joalo ka ha e bonts'itsoe ka tlase.
- Sheba li-docstrings ho khoutu ea Python bakeng sa mokhoa le litlhaloso le mefuta ea boleng ba ho khutlisa.
instantiation_template.vho
- Template ea instantiation e hlahisoa hammoho le module ea uart_regs molemong oa hau. Ho boloka nako ea likhoutu, o ka kopitsa institiation ea module le liphatlalatso tsa matšoao moahong oa hau.
RTL e tsitsitseng files
- U lokela ho kenyelletsa tse latelang files projekeng ea hau ea VHDL e le hore li bokelloe laebraring e tšoanang le mojule oa uart_regs:
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- Uart_regs_backend module e sebelisa mechini ea "finite-state" e kenang le ho tsoa data ea ngoliso. E sebelisa li-module tsa uart_rx le uart_tx ho sebetsana le puisano ea UART le moamoheli.
Merero ea demo
- Ho na le merero e meraro ea demo e kenyellelitsoeng ho Zip file. Li u lumella hore u laole li-peripherals libotong tse fapaneng hammoho le li-register tse seng kae tse kholoanyane, tse ka hare.
- Li-folders tsa demo li kenyelletsa uart_regs.vhd e entsoeng esale pele le uart_regs.py filee entsoe ka ho khetheha bakeng sa meralo eo.
Lattice iCEstick
- Foldara ea demo/icecube2_icestick e na le ts'ebetsong ea demo ea phihlello ea ngoliso bakeng sa boto ea Lattice iCEstick FPGA.
- Ho phethahatsa ts'ebetsong, bula demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project file ho software ea moralo oa Lattice iCEcube2.
- Ka mor'a ho kenya morero ho iCEcube2 GUI, tobetsa Lisebelisoa → Matha Tsohle ho hlahisa bitmap ea lenaneo. file.
- U ka sebelisa sesebelisoa sa Lattice Diamond Programmer Standalone ho hlophisa FPGA ka bitmap e hlahisitsoeng. file. Ha Diamond Programmer e bula, tobetsa Bula projeke e seng e ntse e le teng ka har'a lebokose la puisano le amohelehang.
- Khetha morero file e fumaneha ho Zip: demo/lattice_icestick/diamond_programmer_project.xcf ebe o tobetsa OK.
- Kamora hore projeke e phethe, tobetsa matheba a mararo ho File Kholomo ea mabitso, joalo ka ha e bonts'itsoe kaholimo. Batla ho khetha bitmap file seo u se hlahisitseng ho iCEcube2
- demo/lattice_icestick/icecube2_proj/uart_regs_Implmnt/sbt/outputs/bitmap/top_icestick_bitmap.bin
- Qetellong, ka boto ea iCEstick e hokeletsoeng boema-kepeng ba USB khomphuteng ea hau, khetha Design→Lenaneo ho hlophisa lebone la SPI le ho lokisa FPGA.
- Hona joale u ka tsoela pele ho bala le ho ngola lirejisete ka ho sebelisa mongolo oa demo/lattice_icestick/uart_regs.py joalokaha o hlalositsoe karolong ea uart_regs.py.
Xilinx Digilent Arty A7-35T
- U ka fumana ts'ebetsong ea demo bakeng sa lisebelisoa tsa tlhahlobo tsa Artix-7 35T Arty FPGA foleng ea demo/arty_a7_35.
- Bula Vivado ebe u ea ho e nkiloeng files ho sebelisa Tcl console e fumanehang botlaaseng ba sebopeho sa GUI. Tlanya taelo ena ho kenya foldara ea projeke ea demo:
- cd /demo/arty_a7_35/vivado_proj/
- Etsa sengoloa sa create_vivado_proj.tcl Tcl ho nchafatsa projeke ea Vivado:
- mohloli ./create_vivado_proj.tcl
- Tobetsa Hlahisa Bitstream ka lehlakoreng le ka lehlakoreng ho tsamaisa mehato eohle ea ts'ebetsong le ho hlahisa bitstream ea lenaneo file.
- Qetellong, tlanya Open Hardware Manager 'me u hlophise FPGA ka GUI.
- Joale u ka tsoela pele ho bala le ho ngola lirejisete ka ho sebelisa mongolo oa demo/arty_a7_35/uart_regs.py joalokaha o hlalositsoe karolong ea uart_regs.py.
Xilinx Digilent Arty S7-50
- U ka fumana ts'ebetsong ea demo bakeng sa boto ea nts'etsopele ea Arty S7: Spartan-7 FPGA ka har'a foldara ea demo/arty_s7_50.
- Bula Vivado ebe u ea ho e nkiloeng files ho sebelisa Tcl console e fumanehang botlaaseng ba sebopeho sa GUI. Tlanya taelo ena ho kenya foldara ea projeke ea demo:
- cd /demo/arty_s7_50/vivado_proj/
- Etsa sengoloa sa create_vivado_proj.tcl Tcl ho nchafatsa projeke ea Vivado:
- mohloli ./create_vivado_proj.tcl
- Tobetsa Hlahisa Bitstream ka lehlakoreng le ka lehlakoreng ho tsamaisa mehato eohle ea ts'ebetsong le ho hlahisa bitstream ea lenaneo file.
- Qetellong, tlanya Open Hardware Manager 'me u hlophise FPGA ka GUI.
- Joale u ka tsoela pele ho bala le ho ngola lirejisete ka ho sebelisa mongolo oa demo/arty_s7_50/uart_regs.py joalokaha o hlalositsoe karolong ea uart_regs.py.
Phethahatso
- Ha ho na litlhoko tse khethehileng tsa ts'ebetsong.
Litšitiso
- Ha ho na lithibelo tse khethehileng tsa nako tse hlokahalang bakeng sa moralo ona hobane sebopeho sa UART se ea lieha ebile se ts'oaroa joalo ka sebopeho sa asynchronous.
- Kenyelletso ea uart_rx ho module ea uart_regs e hokahantsoe ka har'a mojule oa uart_rx. Ka hona, ha e hloke ho amahanngoa le mojule oa boemo bo holimo.
Litaba tse tsebahalang
- O kanna oa hloka ho seta mojule bocha pele o ka sebelisoa, ho ipapisitse le hore na FPGA ea hau ea meaho e ts'ehetsa boleng ba ngoliso ea kamehla.
Lintlha tse ling
- Copyright VHDLwhiz.com
FAQs
P: Morero oa jenereithara ea tlhahlobo ea UART ke ofe?
A: Jenereithara ea tlhahlobo ea UART e lumella hore ho thehoe li-interfaces tse tloaelehileng ho sebelisana le litekanyetso tsa FPGA ho sebelisa puisano ea UART.
P: Ke kenya sephutheloana sa Pyserial joang?
A: O ka kenya Pyserial ka Pip o sebelisa taelo: pip install pyserial
Litokomane / Lisebelisoa
![]() |
VHDLwhiz UART Test Interface Jenereithara [pdf] Bukana ea Mosebelisi Jenereithara ea Sehokelo sa Teko sa UART, Jenereithara ea Sehokelo sa Teko, Jenereithara ea Sehokelo, jenereithara |