VHDLwhiz-logo

VHDLwhiz UART Test Interface Generator

VHDLwhiz-UART-Test-Interface-Generator-PRODUCT

Product Information

Famaritana:

  • Anaran'ny vokatra: VHDL manoratra UART test interface generator
  • Dikan-teny: 1.0.4
  • Daty: 18 Aogositra 2024
  • Mpanoratra: Jonas Julian Jensen
  • vokatra URL: Product Link
  • mailaka hifandraisana: jonas@vhdlwhiz.com

Description

Ity vokatra ity dia ahafahanao mamorona interface tsara amin'ny famakiana sy fanoratana ny soatoavin'ny rejisitra FPGA amin'ny fampiasana UART. Ny maody VHDL sy ny script Python novokarina dia manome fahafahana hifanerasera amin'ireo karazana rejisitra isan-karazany amin'ny endrika FPGA anao.

NY LALÀN'I

  • Python 3 mpandika teny
  • fonosana pyserial

fifanarahana

Ny vokatra dia mampiasa protocole framing data misy tarehin-tsoratra fanaraha-maso efatra:

  • Anarana: READ_REQ, Sanda: 0x0A - baiko avy amin'ny mpampiantrano mankany amin'ny FPGA hanombohana filaharana fanoratana handefasana ny rejisitra rehetra amin'ny UART
  • Anarana: START_WRITE, Sanda: 0x0B - Manamarika ny fiandohan'ny filaharana fanoratana amin'ny lafiny roa
  • Anarana: END_WRITE, Sanda: 0x0C - Manamarika ny fiafaran'ny filaharana fanoratana amin'ny lafiny roa
  • Anarana: mandositra, Sanda: 0x0D - toetra mandositra ampiasaina handosirana teny fanaraha-maso

Torolàlana momba ny fampiasana vokatra

Fampandehanana ny Scripts

Raha hampiasa ny vokatra dia ataovy azo antoka fa nametraka Python 3 ianao ary ny fonosana Pyserial. Alefaso amin'ny mpandika teny Python 3 ny script.

Mamorona Interface manokana

Ampiasao ny sora-baventy gen_uart_regs.py mba hamoronana interface tsara amin'ny famakiana sy fanoratana ny soatoavin'ny rejisitra FPGA. Azonao atao ny mamaritra ny firafitry ny rejisitra fampidirana sy famoahana ary karazana rehefa mamorona ny vokatra files.

Fifandraisana amin'ny Register

Azonao atao ny mamaky na manoratra amin'ny rejisitra maromaro amin'ny endrika FPGA anao amin'ny fampiasana ny maody VHDL sy ny script Python. Ny rejistra azo idirana dia mety manana karazany toy ny std_logic, std_logic_vector, voasonia, na tsy misy sonia.

Mombamomba ny mpanoratra

  • Ny lisansa MIT dia mirakitra ny fepetra takian'ny zon'ny mpamorona sy ny fepetra fampiasana ny code source. Jereo ny LICENSE.txt file amin'ny Zip file ho an'ny antsipiriany.

Changelog

  • Ireo fiovana ireo dia manondro ny tetikasa files, ary havaozina mifanaraka amin'izany ity antontan-taratasy ity
Malagasy Bible fanamarihana
1.0.0 Famoahana voalohany
1.0.1 Namboarina tsy hita ny «self» reference bug rehefa manafatra ho uart_regs.py ho module Python. Nanova ny fanoratana tsy nahomby ny fanontana ho exception to

Aza atao pirinty amin'ny console rehefa mihazakazaka ho maodely nafarana.

1.0.2 Amboary ny lesoka Vivado [Synth 8-248] rehefa tsy misy ny regs mode.
1.0.3 Fix Vivado Linter fampitandremana: Register dia nahafahan'ny driven by

reset synchronous

1.0.4 Amboary ny fonon-joro rehefa mahazo teny diso endrika miaraka amin'ny toetra mandositra ho byte farany. Ny teny manaraka dia ho very ihany koa satria tsy nesorinay ny recv_data_prev_is_escape rehefa niverina tany IDLE.

Ny script gen_uart_regs.py izao dia tsy manome afa-tsy anarana reg tokana.

Description

  • Ity antontan-taratasy ity dia mamaritra ireto manaraka ireto files sy lahatahiry:
  • 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/
  • Ny script gen_uart_regs.py ary manohana ny VHDL fileAmin'ity tetikasa ity dia ahafahanao mamorona interface tsara amin'ny famakiana sy fanoratana ny soatoavin'ny rejisitra FPGA amin'ny karazana sy sakany isan-karazany amin'ny fampiasana UART.
  • Azonao atao ny mampiasa ny maodely VHDL sy ny script Python mba hamakiana na hanoratana amin'ny rejisitra rehetra ao amin'ny famolavolanao. Ny rejistra azo idirana amin'ny UART dia mety manana karazana std_logic, std_logic_vector, voasonia, na tsy misy sonia.
  • Azonao atao ny manapa-kevitra amin'ny firafitry ny rejisitra sy karazany ary karazana fidirana sy fivoahana rehefa mamorona ny vokatra files mampiasa ny gen_uart_regs.py script.
  • Ny script Python dia noforonina tamin'ny ampahany tamin'ny fanampian'ny fitaovana faharanitan-tsaina artifisialy ChatGPT, raha ny kaody VHDL kosa dia natao tanana.

NY LALÀN'I

  • Ny script amin'ity tetikasa ity dia tsy maintsy atao amin'ny alalan'ny mpandika teny Python 3 ary tsy maintsy apetraka ny fonosana Pyserial.
  • Azonao atao ny mametraka pyserial amin'ny Pip mampiasa ity baiko ity: pip install pyserial

fifanarahana

  • Vidin'ny VHDL files sy Python script dia mampiasa protocole framing data misy fanaraha-maso efatra
Anarana sarobidy fanehoan-kevitra
READ_REQ 0x0A Baiko avy amin'ny mpampiantrano mankany amin'ny FPGA hanombohana fanoratana

filaharana handefasana ny rejisitra rehetra amin'ny UART

START_WRITE 0x0B Manamarika ny fiandohan'ny filaharana fanoratana ao amin'ny iray

tari-dalana

END_WRITE 0x0c Manamarika ny fiafaran'ny filaharana fanoratana amin'ny lafiny roa
afa-mandositra 0x0D Toetra mandositra ampiasaina handosirana ireo teny fanaraha-maso, anisan'izany ny toetran'ny ESCAPE, rehefa miseho ho angona eo anelanelan'ny marika START_WRITE sy END_WRITE.

Izay READ_REQ byte tsy afa-miala alefa any amin'ny FPGA dia toromarika mba handefasana ny rejisitra rehetra azo idirana amin'ny UART (fampidirana sy vokatra) hiverina any amin'ny mpampiantrano amin'ny UART. Ity baiko ity dia matetika navoakan'ny script uart_regs.py.
Rehefa mahazo io baiko io ny FPGA dia hamaly amin'ny fandefasana ny votoatin'ny rejisitra rehetra any amin'ny mpampiantrano. Voalohany, ny signal input, avy eo ny signal output. Raha toa ka tsy miampy isa 8 bit ny halavany, dia ho aotra misy padded ny bitika ambany amin'ny byte farany.
Ny filaharana fanoratana dia manomboka amin'ny START_WRITE byte ary mifarana amin'ny END_WRITE byte. Ny bytes eo anelanelan'ireo dia heverina ho bytes data. Raha misy bita data manana sanda mitovy amin'ny endri-panaraha-maso, dia tsy maintsy alaina ny bita data. Midika izany fa mandefa tarehintsoratra ESCAPE fanampiny alohan'ny byte data mba hanondroana fa angona marina io.
Raha misy START_WRITE tsy afa-nandositra tonga na aiza na aiza amin'ny onjan'ny bytes dia heverina ho fanombohan'ny filaharana fanoratana. Ny module uart_regs_backend dia mampiasa ity fampahalalana ity mba hamerenana indray raha toa ka tsy mifanaraka ny fifandraisana.

gen_uart_regs.py

  • Ity ny script tsy maintsy atombokao mba hamoronana ny interface. Ity ambany ity ny sarin'ny sakafo fanampiana azonao alaina amin'ny fampandehanana: python gen_uart_regs.py -hVHDLwhiz-UART-Test-Interface-Generator-FIG-1
  • Mba hamoronana interface tsara dia tsy maintsy mandeha ny script miaraka amin'ny rejisitra azo fehezina UART tianao ho voatanisa ho tohan-kevitra. Ny karazany misy dia std_logic, std_logic_vector, tsy misy sonia ary voasonia.
  • Ny mode default (direction) dia ao ary ny karazana default dia std_logic_vector raha tsy hoe lava ny rejisitra: 1. Avy eo dia ho std_logic izany.
  • Noho izany, raha te hamorona famantarana fampidirana std_logic ianao dia azonao ampiasaina ny iray amin'ireto hevitra ireto:
  • my_sl=1
  • my_sl=1: in
  • my_sl=1:in:std_logic
  • Ireo variana rehetra voalaza etsy ambony ireo dia hahatonga ny script hamokatra ity famantarana azo idirana amin'ny UART ity:VHDLwhiz-UART-Test-Interface-Generator-FIG-2
  • Andeha hojerentsika ny script miaraka amin'ny tohan-kevitra mba hamoronana interface miaraka amin'ny rejisitra maromaro amin'ny lalana, halavany ary karazanaVHDLwhiz-UART-Test-Interface-Generator-FIG-3

Nateraka files

  • Ny fampandehanana mahomby amin'ny script gen_uart_regs.py dia hamokatra lahatahiry famoahana nomena anarana miaraka amin'ny telo files voatanisa etsy ambany. Raha efa misy izy ireo dia hosoloina.
  • generated/uart_regs.vhd
  • generated/uart_regs.py
  • generated/instantiation_template.vho
  • uart_regs.vhd
  • Ity ny maody interface tsara novokarin'ny script. Ilainao ny mametraka azy amin'ny endrikao, izay ahafahany miditra amin'ny rejisitra tianao hofehezina amin'ny fampiasana UART.
  • Ny zava-drehetra eo ambonin'ny fizarana "– Rejistra azo idirana UART" dia hitovy amin'ny module uart_regs rehetra, raha miankina amin'ny tohan-kevitra omena ny script generator ny firafitry ny seranan-tsambo eo ambanin'io tsipika io.
  • Ny lisitra eto ambany dia mampiseho ny singa ho an'ny module uart_regs vokatry ny baiko example aseho ao amin'ny sekta gen_uart_regs.pyVHDLwhiz-UART-Test-Interface-Generator-FIG-4
  • Tsy mila mampifanaraka ny famantarana uart_rx ianao, satria ao amin'ny uart_rx izany. module.
  • Rehefa mahazo fangatahana vakiana ilay maody, dia haka ny sandan'ny famantarana rehetra miditra sy mivoaka ao anatin'ny tsingerin'ny famantaranandro ankehitriny. Avy eo dia alefa any amin'ny mpampiantrano amin'ny alàlan'ny UART ny sary eo noho eo.
  • Rehefa misy fanoratana dia havaozina miaraka amin'ireo soatoavina vaovao ao anatin'ny tsingerin'ny famantaranandro iray ihany ny rejistra mivoaka rehetra. Tsy azo atao ny manova tsirairay ny soatoavina famantarana mivoaka.
  • Na izany aza, ny script uart_regs.py dia mamela ny mpampiasa hanavao ny vokatra voafantina fotsiny amin'ny alàlan'ny famakiana voalohany ny soatoavina ankehitriny amin'ny rejisitra rehetra. Avy eo dia manoratra ny soatoavina rehetra, anisan'izany ireo nohavaozina.
  • uart_regs.py
  • The generated/uart_regs.py file dia novokarina miaraka amin'ny module uart_regs VHDL ary misy ny fampahalalana momba ny fisoratana anarana manokana ao amin'ny lohatenin'ny file. Miaraka amin'ity script ity dia afaka mamaky na manoratra amin'ny rejistra mahazatra anao ianao.

Menu fanampiana

  • Soraty ny python uart_regs.py -h hanontana ny sakafo fanampiana:VHDLwhiz-UART-Test-Interface-Generator-FIG-5

Fametrahana ny seranan-tsambo UART

  • Ny script dia manana safidy hametrahana ny seranan-tsambo UART amin'ny fampiasana ny -c switch. Ity dia miasa amin'ny Windows sy Linux. Apetraho amin'ny iray amin'ireo seranana misy voatanisa ao amin'ny menio fanampiana. Mba hametrahana seranan-tsambo mahazatra dia azonao atao koa ny manova ny fari-piadidiana UART_PORT ao amin'ny script uart_regs.py.

Rejistra lisitra

  • Apetraka ao amin'ny lohatenin'ny script uart_regs.py amin'ny script gen_uart_regs.py ny fampahafantarana momba ny sarintany. Azonao atao ny mitanisa ireo rejisitra misy amin'ny -l switch, araka ny hita etsy ambany. Didy eo an-toerana io ary tsy hifanerasera amin'ny FPGA kendrenaVHDLwhiz-UART-Test-Interface-Generator-FIG-6

Hiverina any amin'ny rejista

  • Azonao atao ny manoratra amin'ny rejisitra amin'ny fomba ivelany amin'ny fampiasana ny -w switch. Omeo ny anaran'ny rejisitra arahin'ny “=” sy ny sanda nomena ho sanda mimari-droa, hexadecimal, na decimal, araka ny aseho etsy ambany.VHDLwhiz-UART-Test-Interface-Generator-FIG-7
  • Mariho fa ny fampiharana VHDL dia mitaky ny script mba hanoratana ny rejisitra mivoaka rehetra miaraka. Noho izany, raha tsy mamaritra andiana rejisitra famoahana feno ianao, ny script dia hanao famakiana avy amin'ny FPGA kendrena ary avy eo dia hampiasa ireo soatoavina ireo ho an'ireo tsy hita. Ny vokatr'izany dia ny rejisitra voatondro ihany no miova
  • Rehefa manoratra ianao dia hiova mandritra ny tsingerin'ny famantaranandro rehetra ny rejisitra voatondro, fa tsy rehefa voaray amin'ny UART.

Famakiana rejisitra

  • Ampiasao ny -r switch hamakiana ny soatoavin'ny rejisitra rehetra, araka ny aseho etsy ambany. Ny soatoavina voamarika amin'ny loko mavo dia ireo novanay tamin'ny fanoratana teo alohaampleVHDLwhiz-UART-Test-Interface-Generator-FIG-8
  • Ny famakiana tsirairay dia mampiseho sary avy hatrany amin'ny rejisitra fampidirana sy famoahana rehetra. Izy rehetra dia sampnitarika nandritra ny tsingerin'ny famantaranandro mitovy

Debugging

Ampiasao ny -d switch miaraka amin'ireo switch hafa raha mila debug ny protocole fifandraisana ianao. Avy eo, ny script dia hanonta ireo bytes nalefa sy voaray rehetra ary tag raha toa ka tarehin-tsoratra mifehy izy ireo, araka ny aseho etsy ambany.VHDLwhiz-UART-Test-Interface-Generator-FIG-9

Mampiasa ny interface amin'ny script Python hafa

  • Ny script uart_regs.py dia misy kilasy UartRegs izay azonao ampiasaina mora ho toy ny interface interface amin'ny script Python mahazatra hafa. Ampidiro tsotra izao ny kilasy, mamorona zavatra iray, ary manomboka mampiasa ireo fomba, araka ny aseho etsy ambany.VHDLwhiz-UART-Test-Interface-Generator-FIG-10
  • Jereo ny docstrings ao amin'ny kaody Python ho an'ny fomba sy famaritana ary ny karazana sanda miverina.

instantiation_template.vho

  • Ny môdely instantiation dia novokarina miaraka amin'ny module uart_regs ho an'ny fanamorana anao. Mba hitsitsiana ny fotoana fanaovana kaody dia azonao atao ny mandika ny fampandrenesana maody sy ny fanambarana famantarana ao amin'ny famolavolanao.VHDLwhiz-UART-Test-Interface-Generator-FIG-11VHDLwhiz-UART-Test-Interface-Generator-FIG-12

RTL static files

  • Mila ampidirinao ireto manaraka ireto files ao amin'ny tetikasa VHDL anao mba hanangonana azy ireo ao amin'ny tranomboky mitovy amin'ny module uart_regs:
  • rtl/uart_regs_backend.vhd
  • rtl/uart_rx.vhd
  • rtl/uart_tx.vhd
  • Ny module uart_regs_backend dia mametraka ny milina misy fetra izay mametaka sy mivoaka ny angon-drakitra rejisitra. Mampiasa ny module uart_rx sy uart_tx izy io mba hikarakarana ny fifandraisana UART amin'ny mpampiantrano.

Tetikasa Demo

  • Misy tetikasa demo telo tafiditra ao amin'ny Zip file. Izy ireo dia mamela anao hifehy ny periferika amin'ny tabilao samihafa ary koa ny rejisitra anatiny lehibe kokoa.
  • Ny lahatahiry demo dia ahitana uart_regs.vhd sy uart_regs.py fileNatao manokana ho an'ireo endrika ireo.

Lattice iCEstick

  • Ny lahatahiry demo/icecube2_icestick dia misy fampiharana demo fidirana amin'ny fisoratana anarana ho an'ny birao FPGA Lattice iCEstick.
  • Raha te handeha amin'ny dingana fampiharana, sokafy ny demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project file ao amin'ny rindrambaiko famolavolana Lattice iCEcube2.
  • Aorian'ny fametrahana ny tetikasa ao amin'ny GUI iCEcube2, tsindrio Tools → Run All mba hamoronana ny bitmap fandaharana file.
  • Azonao atao ny mampiasa ny Lattice Diamond Programmer Standalone fitaovana hanamboarana ny FPGA miaraka amin'ny sarintany bitika vokarina file. Rehefa misokatra ny Diamond Programmer, tsindrio Sokafy ny tetikasa programmer efa misy ao amin'ny boaty fifampiresahana fandraisana.
  • Mifidiana tetikasa file hita ao amin'ny Zip: demo/lattice_icestick/diamond_programmer_project.xcf ary tsindrio OK.VHDLwhiz-UART-Test-Interface-Generator-FIG-13
  • Aorian'ny fandefasana ny tetikasa, tsindrio ny teboka telo ao amin'ny File Anarana tsanganana, araka ny aseho etsy ambony. Mitety raha hifidy ny bitmap file izay novokarinao tao amin'ny iCEcube2
  • demo/lattice_icestick/icecube2_proj/uart_regs_Implmnt/sbt/outputs/bitmap/top_icestick_bitmap.bin
  • Farany, miaraka amin'ny birao iCEstick ampidirina amin'ny seranan-tsambo USB amin'ny solosainao, safidio ny Design → Program handrindrana ny flash SPI ary amboary ny FPGA.
  • Afaka manohy mamaky sy manoratra rejistra ianao izao amin'ny fampiasana ny script demo/lattice_icestick/uart_regs.py araka ny voalaza ao amin'ny fizarana uart_regs.py.

Xilinx Digilent Arty A7-35T

  • Azonao atao ny mahita ny fampiharana demo ho an'ny kitapo fanombanana Artix-7 35T Arty FPGA ao amin'ny lahatahiry demo/arty_a7_35.
  • Sokafy ny Vivado ary mandehana mankany amin'ny nalaina files mampiasa ny console Tcl hita eo amin'ny faran'ny interface GUI. Ampidiro ao amin'ny lahatahiry tetikasa demo ity baiko ity:
  • cd /demo/arty_a7_35/vivado_proj/
  • Fenoy ny script Tcl create_vivado_proj.tcl hamerenana indray ny tetikasa Vivado:
  • loharano ./create_vivado_proj.tcl
  • Kitiho ny Generate Bitstream ao amin'ny sidebar mba hihazakazaka amin'ny dingana rehetra amin'ny fampiharana ary hamorona ny bitstream fandaharana file.
  • Farany, tsindrio Open Hardware Manager ary programa ny FPGA amin'ny alàlan'ny GUI.
  • Afaka manohy mamaky sy manoratra rejistra ianao izao amin'ny fampiasana ny script demo/arty_a7_35/uart_regs.py araka ny voalaza ao amin'ny fizarana uart_regs.py.

Xilinx Digilent Arty S7-50

  • Azonao atao ny mahita ny fampiharana demo ho an'ny Arty S7: Spartan-7 FPGA board development ao amin'ny fampirimana demo/arty_s7_50.
  • Sokafy ny Vivado ary mandehana mankany amin'ny nalaina files mampiasa ny console Tcl hita eo amin'ny faran'ny interface GUI. Ampidiro ao amin'ny lahatahiry tetikasa demo ity baiko ity:
  • cd /demo/arty_s7_50/vivado_proj/
  • Fenoy ny script Tcl create_vivado_proj.tcl hamerenana indray ny tetikasa Vivado:
  • loharano ./create_vivado_proj.tcl
  • Kitiho ny Generate Bitstream ao amin'ny sidebar mba hihazakazaka amin'ny dingana rehetra amin'ny fampiharana ary hamorona ny bitstream fandaharana file.
  • Farany, tsindrio Open Hardware Manager ary programa ny FPGA amin'ny alàlan'ny GUI.
  • Afaka manohy mamaky sy manoratra rejistra ianao izao amin'ny fampiasana ny script demo/arty_s7_50/uart_regs.py araka ny voalaza ao amin'ny fizarana uart_regs.py.

fanatanterahana

  • Tsy misy fepetra fampiharana manokana.

faneren'ny

  • Tsy misy fetran'ny fotoana manokana ilaina amin'ity famolavolana ity satria miadana ny interface UART ary raisina ho toy ny interface asynchronous.
  • Ny fampidirana uart_rx ao amin'ny module uart_regs dia atambatra ao anatin'ny module uart_rx. Noho izany, tsy mila ampiarahina amin'ny maodely ambony indrindra.

Olana fantatra

  • Mety mila averinao indray ilay maody alohan'ny hampiasana azy, miankina amin'ny hoe manohana ny soatoavin'ny rejisitra mahazatra ny maritranonao FPGA.

Fanazavana fanampiny

FAQs

F: Inona no tanjon'ny UART test interface generator?

A: Ny UART test interface generator dia mamela ny famoronana fifandraisana manokana hifaneraserana amin'ny soatoavin'ny rejisitra FPGA amin'ny alàlan'ny fifandraisana UART.

F: Ahoana ny fametrahana ny fonosana Pyserial?

A: Azonao atao ny mametraka Pyserial amin'ny Pip mampiasa ny baiko: pip install pyserial

Documents / Loharano

VHDLwhiz UART Test Interface Generator [pdf] Boky Torolàlana
UART Test Interface Generator, Test Interface Generator, Interface Generator, Generator

References

Mametraha hevitra

Tsy havoaka ny adiresy mailakao. Voamarika ireo saha ilaina *