د VHDLwhiz لوگوVHDLwhiz.com
د AXI سټایل UART ماډلونه
د کارن لارښود

د AXI سټایل UART ماډلونه

نسخه: 1.0.3
نېټه: د می 18، 2023
محصول URL: https://vhdlwhiz.com/product/vhdl-module-axi-style-uart/
د اړیکې بریښنالیک: jonas@vhdlwhiz.com

دا سند تشریح کوي چې څنګه د VHDLwhiz عمومي هدف، AXI-مطابقت، یونیورسل اسینکرونوس ریسیور-ټرانسمیټر (UART) VHDL ماډلونه کارول کیږي.

جواز

د MIT جواز د سرچینې کوډ د کاپي حق اړتیاوې او د کارولو شرایط پوښي.
LICENSE.txt ته مراجعه وکړئ file په زپ کې file د جزیاتو لپاره.

بدلون

دا بدلونونه پروژې ته اشاره کوي files، او دا سند د دې مطابق تازه کیږي.

نسخه څرګندونې
1.0.0 ابتدايي خوشې کول
1.0.1 • دا کارن لارښود جوړ کړی
• په top.vhd کې د ځان بیا تنظیم کولو پروسه بدله شوې file د جلا reset_sync.vhd ماډل سره
• د دې بورډونو لپاره د ډیمو UART لوپ بیک پروژې اضافه شوي:
o Xilinx Arty A7 35T (Vivado)
o Xilinx arty S7 50 (Vivado)
o تراسیک DE10-Lite + Digilent Pmod USBUART (Quartus)
1.0.2 • د داخلي کاونټر سمت بدلول ترڅو ډاډ ترلاسه شي چې ماډلونه هم د ابتدايي ری سیٹ سټروب پرته کار کوي
1.0.3 • په uart_buffered ماډل کې د TX FIFO ژورې جنریک نقشه غلطه شوې. دا د RX ژوروالي ته نقشه شوې وه.

تفصیل

دا پروژه درې عمومي موخې لري، د AXI مطابقت لرونکی، یونیورسل اسینکرونوس ریسیور-ټرانسمیټر (UART) ماډلونه.
تاسو کولی شئ د جلا ترلاسه کونکي (uart_rx.vhd) او ټرانسمیټر (uart_tx.vhd) ماډلونو یا یو ګډ UART ماډل (uart_buffered.vhd) ترمنځ د جوړ شوي ان پټ او آوټ پوټ بفرینګ سره انتخاب کړئ. VHDLwhiz AXI سټایل UART ماډلونه - توضیحاتټول درې ماډلونه د چمتو / باوري لاسي صندقونو کارولو له لارې د جریان کنټرول لري. او ځکه چې د سیګنال نوم ورکولو سکیم د Xilinx AXI معیار سره سمون لري، د لیږلو او recv بندرونه به د ویواډو بلاک ډیزاین مدیر کې د بس انٹرفیس په توګه څرګند شي، لکه څنګه چې په پورته عکس کې ښودل شوي.
د سیسټم ساعت فریکوینسي او د بوډ نرخ د تنظیم وړ دي. د ډیټا بټ شمیره 8 (یو بایټ) ته ټاکل شوې ، سټاپ بټ 1 ته ټاکل شوی ، او برابري نه کارول کیږي.

UART RX/TX د بلاک رام بفرینګ سره
د uart_buffered.vhd ماډل د لیږلو او ترلاسه کولو بندرونو کې د AXI سټایل لوستلو/درست سیګنال سکیم له لارې د جریان کنټرول جوړ شوی دی. د معلوماتو لیږد یوازې هغه وخت پیښیږي کله چې _تحقيق او _tready د ورته لوړیدونکي ساعت څنډې په جریان کې '1' دي.
بفر شوي بایټونه په بلاک رام کې زیرمه کیږي تر هغه چې دوی د دې ماډل لخوا لیږل شوي یا لوستل کیږي. د بلاک RAM ژوروالی د جنریکونو له لارې تنظیم کیدونکی دی، مګر د FIFO اندازه به هغه شمیره منفي یو وي ځکه چې داخلي FIFO تل د بشپړ او خالي حالتونو ترمینځ توپیر کولو لپاره یو سلاټ خلاص ساتي.

لاندې لیست د دې ماډل لپاره وجود ښیې. VHDLwhiz AXI سټایل UART ماډلونه - لیست کولUART RX
د uart_rx.vhd ماډل یو غیر بفر شوی UART اخیستونکی لري. ترلاسه شوي معلومات د recv_tdata لاین کې ښکاري او د اعتبار وړ وي کله چې recv_tvalid '1' وي.
لاندې لیست د ترلاسه کونکي ماډل لپاره اداره ښیې. VHDLwhiz AXI سټایل UART ماډلونه - UART RXUART TX
د uart_tx.vhd ماډل یو غیر بفر شوی UART لیږدونکی لري. په send_tdata کې ایښودل شوي ډاټا لیږدول کیږي کله چې send_tvalid '1' وي.
لاندې لیست د لیږدونکي ماډل لپاره اداره ښیې.VHDLwhiz AXI سټایل UART ماډلونه - د لیږدونکي ماډل

زپ File منځپانګه

├── loopback_demo د UART لوپ بیک ډیمو پروژې
 │ ├── icecube2_icestick د لاټیس iCEstick بورډ لپاره iCEcube2 پروژه
│ ├── quartus_de10_lite د Terasic DE10-Lite بورډ لپاره د کوارټس پروژه
│ ├── top_sim د ډیمو پروژې لپاره د لوړې کچې ټیسټ بینچ
│ ├── top_src د ډیمو پروژې لپاره د لوړې کچې ماډل
│ ├── vivado_arty_a7_35t د Xilinx Arty A7 35T بورډ لپاره Vivado پروژه
│ └── vivado_arty_s7_50 د Xilinx Arty S7 50 بورډ لپاره Vivado پروژه
├── uart_sim د UART ماډلونو لپاره ټیسټ بینچ
└── uart_src UART VHDL ماډلونه

د ډیزاین سمول

په Zip کې دوه د ځان چک کولو ټیسټ بینچونه شتون لري file، یو د uart_buffered ماډل لپاره او یو د عمومي ټاپ ماډل لپاره چې په ډیمو پروژو کې کارول کیږي.
د VHDL ټیسټ بینچ باید په هر وړ VHDL سمیلیټر کې کار وکړي چې د 2008 بشپړ VHDL بیاکتنې ملاتړ کوي ، مګر چمتو شوي run.do سکریپټونه یوازې په ModelSim/Questa کې کار کوي.

د UART ټیسټ بینچ چلول
موډلسیم/کوستا خلاص کړئ او سمیلیټر کنسول کې ټایپ کړئ: cd do uart_sim/run.do runtb
د لوړې کچې ټیسټ بینچ چلول 
موډلسیم/کوستا خلاص کړئ او سمیلیټر کنسول کې ټایپ کړئ: cd do loopback_demo/top_sim/run.do runtb

د ډیمو پروژو پلي کول

زپ file د ټاکل شوي پراختیایی بورډونو لپاره ډیمو پروژې لري.
که تاسو غواړئ ډیمو په مختلف بورډ کې هڅه وکړئ، تاسو کولی شئ د loopback_demo/top_src/top.vhd ماډل لپاره یو ریپر جوړ کړئ. پورته معاینه کړئ_ .vhd files او یو د خپل بورډ د پن ترتیب او د ساعت فریکونسۍ سره سم تنظیم کړئ.
د پخوانيample ډیزاین د uart_buffered ماډل انسټاګرام کوي او د UART RX پن څخه د TX پن ته هر بایټ ترلاسه کوي.
د باډ نرخ 115200 ته ټاکل شوی ، مګر تاسو کولی شئ دا د پورتنۍ ریپر VHDL بدلولو سره بدل کړئ files په هر لوپ بیک_ډیمو فرعي فولډر کې.
جالی iCEstick 
loopback_demo/icecube2_icestick فولډر کې د لوپ بیک تطبیق شامل دی latticesemi.com/icestick د FPGA بورډ
د تطبیق پروسې پرمخ وړلو لپاره، loopback_demo/icecube2_icestick/icecube2_project/loopback_demo_sbt.project خلاص کړئ file په iCEcube2 | د FPGA ډیزاین سافټویر | لاټیس سیمیکمډکټر ډیزاین سافټویر.
په iCEcube2 GUI کې د پروژې له پورته کولو وروسته، د برنامه کولو بټ میپ تولیدولو لپاره اوزار → ټول چل کړئ کلیک وکړئ file.
تاسو کولی شئ وکاروئ د لاټیس ډیمنډ پروګرامر او د ځای پرځای کولو وسیله (latticesemi.com) د تولید شوي بټ میپ سره د FPGA تنظیم کولو وسیله file. کله چې د ډیمنډ پروګرامر خلاص شي، د ښه راغلاست ډیالوګ بکس کې د موجوده پروګرامر پروژه پرانیزئ کلیک وکړئ.
پروژه غوره کړئ file په زپ کې موندل کیږي:
loopback_demo/icecube2_icestick/diamond_programmer_project.xcf او OK کلیک وکړئ. VHDLwhiz AXI سټایل UART ماډلونه - د موجوده پروګرامر پروژهوروسته له دې چې د پروژې لوډ شي، په درې نقطو کلیک وکړئ File د نوم کالم، لکه څنګه چې پورته ښودل شوي. د بټ میپ غوره کولو لپاره لټون وکړئ file چې تاسو په iCEcube2 کې رامینځته کړی:
loopback_demo/icecube2_icestick/icecube2_project/loopback_demo_Implmnt/sbt/outputs /bitmap/top_icestick_bitmap.bin په پای کې، ستاسو په کمپیوټر کې د USB پورټ سره د iCEstick بورډ سره نښلول، د SPI فلش او GA ترتیبولو لپاره ډیزاین → پروګرام غوره کړئ.
تاسو اوس کولی شئ د سیریل ټرمینل په کارولو سره د لوپ بیک ډیزاین ازموینې ته لاړشئ.

Xilinx Arty A7 35T
تاسو کولی شئ د ډیمو پلي کولو لپاره ومومئ Artix-7 35T آرټي FPGA د ارزونې کټ په loopback_demo/vivado_arty_a7_35t فولډر کې.
خلاص Vivado – ويکيپېډيا او استخراج ته لاړ شئ fileد Tcl کنسول کارول د GUI انٹرفیس په ښکته کې موندل شوي. د ډیمو پروژې فولډر ته د ننوتلو لپاره دا کمانډ ولیکئ:
cd /loopback_demo/vivado_arty_a7_35t/
د Vivado پروژې د بیا جوړولو لپاره create_vivado_proj.tcl Tcl سکریپټ اجرا کړئ:
سرچینه ./create_vivado_proj.tcl
په سائډبار کې د بټ سټریم تولید کلیک وکړئ ترڅو د پلي کولو ټولو مرحلو څخه تیر شي او د برنامه بټ سټریم تولید کړئ file.
په نهایت کې ، د هارډویر مدیر خلاص کړئ کلیک وکړئ او د GUI له لارې FPGA برنامه کړئ.
بټfile باید په دې فولډر کې وي:
<zip_content>/loopback_demo/vivado_arty_a7_35t/loopback_demo.runs/impl_1/top_arty_ a7_35t.bit
تاسو اوس کولی شئ د سیریل ټرمینل په کارولو سره د لوپ بیک ډیزاین ازموینې ته لاړشئ.

Xilinx Arty S7 50
تاسو کولی شئ د ډیمو پلي کولو لپاره ومومئ Spartan-7 FPGA پراختیایی بورډ د شوقیانو لپاره - Digilent Arty S7 - Xilinx په loopback_demo/vivado_arty_s7_50 فولډر کې د پراختیا بورډ.
خلاص Vivado – ويکيپېډيا او استخراج ته لاړ شئ fileد Tcl کنسول کارول د GUI انٹرفیس په ښکته کې موندل شوي. د ډیمو پروژې فولډر ته د ننوتلو لپاره دا کمانډ ولیکئ: cd /loopback_demo/vivado_arty_s7_50/
د Vivado پروژې د بیا جوړولو لپاره create_vivado_proj.tcl Tcl سکریپټ اجرا کړئ: سرچینه ./create_vivado_proj.tcl
په سائډبار کې د بټ سټریم تولید کلیک وکړئ ترڅو د پلي کولو ټولو مرحلو څخه تیر شي او د برنامه بټ سټریم تولید کړئ file.
په نهایت کې ، د هارډویر مدیر خلاص کړئ کلیک وکړئ او د GUI له لارې FPGA برنامه کړئ.
بټfile باید په دې فولډر کې وي: /loopback_demo/vivado_arty_s7_50/loopback_demo.runs/impl_1/top_arty_s 7_50.bit
تاسو اوس کولی شئ د سیریل ټرمینل په کارولو سره د لوپ بیک ډیزاین ازموینې ته لاړشئ.

Terasic DE10-Lite د Digilent Pmod USBUART سره
د لوپ بیک ډیمو لپاره DE10-Lite تخته له Terasic څخه، د Intel's MAX 10 FPGA په کارولو سره، د لوپ بیک_demo/quartus_de10_lite فولډر کې دی.
ځکه چې د DE10-Lite بورډ یو جوړ شوی UART نه USB انٹرفیس نلري، موږ به د Digilent پلګ ایبل وکاروو Pmod USBUART - دقیق حواله د دې لپاره.

DE10-Lite سرلیک پن Pmod USBUART پن
د Arduino سرلیک IO13 2 RXD
د Arduino سرلیک IO12 3 TXD
د Arduino سرلیک GND 5 GND
د Arduino سرلیک VCC3P3 6 VCC

DE10-Lite او Pmod په پورتني جدول کې د پن نقشې مطابق سره وصل کړئ، لکه څنګه چې په لاندې عکس کې ښودل شوي. VHDLwhiz AXI سټایل UART ماډلونه - ډیزاینپروژه پرانیزئ file په کوارټس کې د ډیزاین بارولو لپاره: /loopback_demo/quartus_de10_lite/loopback_demo.qpf
د اړخ بار څخه د تالیف ډیزاین کلیک وکړئ
د سایډبار څخه د برنامه وسیله (خلاص پروګرامر) کلیک وکړئ
برنامه کول file باید په اتوماتيک ډول وټاکل شي. تاسو یې دلته موندلی شئ: /loopback_demo/quartus_de10_lite/output_files/loopback_demo.sof

د UART لوپ بیک ازموینه

تاسو کولی شئ د بورډ سره د خبرو اترو لپاره هر سریال ټرمینل برنامه وکاروئ ، مګر زه وړاندیز کوم sourceforge.net/projects/ya-terminal/ l که تاسو لا دمخه نصب نه وي کړی.
ټرمینل → ترتیباتو ته لاړشئ او د باډ نرخ 115200 ته وټاکئ ، د ډیټا بیټ 8 ته ، هیڅ نه ته برابر کړئ او 1 ته بیټس ودروئ ، لکه څنګه چې لاندې سکرین شاټ کې ښودل شوي. VHDLwhiz AXI سټایل UART ماډلونه - لوپ بیکبورډ یا Pmod UART ماډل خپل کمپیوټر ته د USB له لارې وصل کړئ.
په نهایت کې، ټرمینل → خلاص/ پیل کړئ، د متن لیږلو ساحه کې ځینې حروف دننه کړئ او د متن لیږلو تڼۍ کېکاږئ. لیږل شوی متن به په نیلي کې څرګند شي، او که چیرې FPGA ځواب ورکړي، یو ځل بیا د ارغواني رنګ لاندې به یو ځل بیا راڅرګند شي.
تاسو کولی شئ یو پخوانی وګورئampپه لاندې سکرین شاټ کې د بریالۍ ازموینې څخه. VHDLwhiz AXI سټایل UART ماډلونه - لاندې سکرین شاټ

پیژندل شوي مسایل

د UART ټرانسمیټر ماډل د Yosys اوپن سورس ترکیب سویټ سره سم کار نه کوي.
په uart_tx.vhd کې د clk_counter_wrapped ناپاک فعالیت file لکه څنګه چې په دې وسیله کې هدف نه ترکیب کیږي.

د VHDLwhiz لوگود چاپ حق VHDLwhiz.com

اسناد / سرچینې

VHDLwhiz AXI سټایل UART ماډلونه [pdf] د کارونکي لارښود
AXI-Style UART ماډلونه، UART ماډلونه، ماډلونه

حوالې

یو نظر پریږدئ

ستاسو بریښنالیک پته به خپره نشي. اړین ساحې په نښه شوي *