VHDLwhiz UART चाचणी इंटरफेस जनरेटर
उत्पादन माहिती
तपशील:
- उत्पादनाचे नाव: VHDL UART चाचणी इंटरफेस जनरेटरची नोंदणी करते
- आवृत्ती: 1.0.4
- तारीख: 18 ऑगस्ट 2024
- लेखक: जोनास ज्युलियन जेन्सन
- उत्पादन URL: उत्पादन लिंक
- संपर्क ईमेल: jonas@vhdlwhiz.com
वर्णन
हे उत्पादन तुम्हाला UART वापरून FPGA रजिस्टर मूल्ये वाचण्यासाठी आणि लिहिण्यासाठी कस्टम इंटरफेस तयार करण्याची परवानगी देते. जनरेट केलेले VHDL मॉड्यूल आणि पायथॉन स्क्रिप्ट तुमच्या FPGA डिझाइनमध्ये विविध प्रकारच्या रजिस्टरशी संवाद साधण्याची क्षमता प्रदान करतात.
आवश्यकता
- पायथॉन ३ इंटरप्रिटर
- पिसिरियल पॅकेज
प्रोटोकॉल
हे उत्पादन चार नियंत्रण वर्णांसह डेटा फ्रेमिंग प्रोटोकॉल वापरते:
- नाव: रीड_आरईक्यू, मूल्य: 0x0A – सर्व रजिस्टर्स UART वर परत पाठवण्यासाठी लेखन क्रम सुरू करण्यासाठी होस्टकडून FPGA ला आदेश.
- नाव: START_लिहा, मूल्य: ०x०बी - दोन्ही दिशेने लेखन क्रमाची सुरुवात दर्शवते.
- नाव: शेवट_लिहा, मूल्य: ०x०सी - दोन्ही दिशेने लेखन क्रमाचा शेवट चिन्हांकित करते.
- नाव: पलायन, मूल्य: 0x0D - नियंत्रण शब्दांमधून बाहेर पडण्यासाठी वापरले जाणारे एस्केप कॅरेक्टर.
उत्पादन वापर सूचना
स्क्रिप्ट्स चालवणे
उत्पादन वापरण्यासाठी, तुमच्याकडे Python 3 आणि Pyserial पॅकेज स्थापित असल्याची खात्री करा. Python 3 इंटरप्रिटरद्वारे स्क्रिप्ट चालवा.
कस्टम इंटरफेस तयार करणे
FPGA रजिस्टर व्हॅल्यूज वाचण्यासाठी आणि लिहिण्यासाठी कस्टम इंटरफेस जनरेट करण्यासाठी gen_uart_regs.py स्क्रिप्ट वापरा. आउटपुट जनरेट करताना तुम्ही इनपुट आणि आउटपुट रजिस्टरची रचना आणि प्रकार निर्दिष्ट करू शकता. files.
रजिस्टर्सशी संवाद साधणे
तुम्ही जनरेट केलेल्या VHDL मॉड्यूल आणि पायथॉन स्क्रिप्टचा वापर करून तुमच्या FPGA डिझाइनमधील कितीही रजिस्टर वाचू शकता किंवा लिहू शकता. प्रवेशयोग्य रजिस्टरमध्ये std_logic, std_logic_vector, signed किंवा unsigned असे प्रकार असू शकतात.
परवाना
- MIT परवान्यामध्ये स्त्रोत कोडच्या कॉपीराइट आवश्यकता आणि वापराच्या अटींचा समावेश आहे. LICENSE.txt चा संदर्भ घ्या file जिप मध्ये file तपशीलांसाठी.
चेंजलॉग
- हे बदल प्रकल्पाशी संबंधित आहेत files, आणि हे दस्तऐवज त्यानुसार अद्यतनित केले आहे
आवृत्ती | शेरा |
1.0.0 | प्रारंभिक प्रकाशन |
1.0.1 | uart_regs.py म्हणून Python मॉड्यूल म्हणून आयात करताना गहाळ "स्वतः" संदर्भ बग दुरुस्त केला. लेखन अयशस्वी प्रिंटआउट अपवादात बदलला.
आयातित मॉड्यूल म्हणून चालवताना कन्सोलवर प्रिंट करणे टाळा. |
1.0.2 | आउट मोड रेग नसताना Vivado [Synth 8-248] त्रुटी दुरुस्त करा. |
1.0.3 | विवाडो लिंटर चेतावणी दुरुस्त करा: रजिस्टरमध्ये सक्षम केले आहे
सिंक्रोनस रीसेट |
1.0.4 | जेव्हा एखादा विकृत शब्द येतो तेव्हा शेवटचा बाइट म्हणून एस्केप कॅरेक्टर वापरून कोपरा केस दुरुस्त करा. IDLE वर परतताना आम्ही recv_data_prev_is_escape साफ न केल्यामुळे पुढचा शब्द देखील गमावला जाईल.
gen_uart_regs.py स्क्रिप्ट आता फक्त अद्वितीय reg नावे वापरण्यास परवानगी देते. |
वर्णन
- हा दस्तऐवज खालील वर्णन करतो files आणि फोल्डर्स:
- 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/
- gen_uart_regs.py स्क्रिप्ट आणि सपोर्टिंग VHDL files या प्रकल्पात तुम्हाला UART वापरून FPGA रजिस्टर व्हॅल्यूज आणि रुंदीचे वाचन आणि लिहिण्यासाठी सानुकूल इंटरफेस तयार करण्याची परवानगी मिळते.
- तुम्ही व्युत्पन्न केलेले VHDL मॉड्यूल आणि Python स्क्रिप्ट तुमच्या डिझाइनमधील कितीही रजिस्टर्समधून वाचण्यासाठी किंवा लिहिण्यासाठी वापरू शकता. UART प्रवेशयोग्य रजिस्टर्समध्ये std_logic, std_logic_vector, स्वाक्षरी केलेले किंवा स्वाक्षरी न केलेले प्रकार असू शकतात.
- आउटपुट व्युत्पन्न करताना तुम्ही इनपुट आणि आउटपुट रजिस्टर्सची नेमकी रचना आणि प्रकार ठरवू शकता. filegen_uart_regs.py स्क्रिप्ट वापरत आहे.
- पायथन स्क्रिप्ट चॅटजीपीटी आर्टिफिशियल इंटेलिजेंस टूलच्या मदतीने अंशतः तयार केल्या गेल्या आहेत, तर व्हीएचडीएल कोड हस्तकला आहे.
आवश्यकता
- या प्रकल्पातील स्क्रिप्ट्स Python 3 इंटरप्रिटरद्वारे चालवल्या पाहिजेत आणि Pyserial पॅकेज स्थापित केले जाणे आवश्यक आहे.
- तुम्ही खालील कमांड वापरून Pip द्वारे pyserial इन्स्टॉल करू शकता: pip install pyserial
प्रोटोकॉल
- VHDL files आणि Python स्क्रिप्ट चार नियंत्रणांसह डेटा-फ्रेमिंग प्रोटोकॉल वापरतात
नाव | मूल्य | टिप्पणी द्या |
READ_REQ | 0x0A | लेखन सुरू करण्यासाठी होस्टकडून FPGA ला आदेश द्या.
सर्व रजिस्टर्स UART वर परत पाठवण्याचा क्रम |
START_WRITE | 0x0B | दोन्हीपैकी कोणत्याही मध्ये लेखन क्रमाची सुरुवात दर्शवते
दिशा |
END_WRITE | 0x0 सी | लेखन क्रमाचा शेवट कोणत्याही दिशेने चिन्हांकित करते |
एस्केप | 0x0D | एस्केप कॅरेक्टर जेंव्हा ते START_WRITE आणि END_WRITE मार्कर दरम्यान डेटा म्हणून दिसतात तेव्हा ESCAPE कॅरेक्टरसह कोणतेही नियंत्रण शब्द बाहेर काढण्यासाठी वापरले जाते. |
FPGA ला पाठवलेला कोणताही अनस्केप केलेला READ_REQ बाईट हा UART वरील सर्व UART-अॅक्सेसिबल रजिस्टर्स (इनपुट आणि आउटपुट) होस्टला परत पाठवण्याची सूचना आहे. ही आज्ञा सामान्यतः uart_regs.py स्क्रिप्टद्वारे जारी केली जाते.
हा आदेश मिळाल्यावर, FPGA सर्व रजिस्टर्सची सामग्री होस्टला परत पाठवून प्रतिसाद देईल. प्रथम, इनपुट सिग्नल, नंतर आउटपुट सिग्नल. त्यांची लांबी 8 बिट्सच्या पटीत जोडली नसल्यास, शेवटच्या बाईटचे खालचे बिट्स पॅड केलेले शून्य असतील.
लेखन क्रम नेहमी START_WRITE बाइटने सुरू होतो आणि END_WRITE बाइटने संपतो. त्यामधील कोणतेही बाइट डेटा बाइट मानले जातात. जर कोणत्याही डेटा बाइटचे मूल्य नियंत्रण वर्णासारखेच असेल, तर डेटा बाइट एस्केप करणे आवश्यक आहे. याचा अर्थ डेटा बाइट प्रत्यक्षात डेटा आहे हे दर्शविण्यासाठी डेटा बाइटच्या आधी एक अतिरिक्त ESCAPE वर्ण पाठवणे.
एखादे अनस्केप केलेले START_WRITE बाइट्सच्या प्रवाहात कुठेही आले, तर ते लेखन क्रमाची सुरुवात मानली जाते. uart_regs_backend मॉड्युल या माहितीचा वापर संप्रेषण समक्रमणातून बाहेर पडल्यास पुन्हा सिंक्रोनाइझ करण्यासाठी करते.
gen_uart_regs.py
- ही स्क्रिप्ट आहे जी तुम्ही इंटरफेस व्युत्पन्न करण्यासाठी सुरू केली पाहिजे. खाली मदत मेनूचा स्क्रीनशॉट आहे जो तुम्ही चालवून मिळवू शकता: python gen_uart_regs.py -h
- सानुकूल इंटरफेस व्युत्पन्न करण्यासाठी, तुम्ही वितर्क म्हणून सूचीबद्ध केलेल्या प्रत्येक इच्छित UART नियंत्रणयोग्य नोंदणीसह स्क्रिप्ट चालवणे आवश्यक आहे. उपलब्ध प्रकार आहेत std_logic, std_logic_vector, unsigned, and signed.
- डीफॉल्ट मोड (दिशा) मध्ये आहे आणि डीफॉल्ट प्रकार std_logic_vector आहे जोपर्यंत रजिस्टर लांबीचे नाही: 1. नंतर, ते std_logic वर डीफॉल्ट असेल.
- अशा प्रकारे, जर तुम्हाला std_logic इनपुट सिग्नल तयार करायचा असेल, तर तुम्ही यापैकी कोणतेही वितर्क वापरू शकता:
- my_sl=1
- my_sl=1:in
- my_sl=1:in:std_logic
- वरील सर्व प्रकारांचा परिणाम स्क्रिप्टमध्ये हा UART-अॅक्सेसिबल सिग्नल निर्माण होईल:
- चला वेगवेगळ्या दिशानिर्देश, लांबी आणि प्रकारांच्या अनेक रजिस्टरसह इंटरफेस तयार करण्यासाठी आर्ग्युमेंट्ससह स्क्रिप्ट चालवूया.
व्युत्पन्न files
- gen_uart_regs.py स्क्रिप्ट यशस्वीरित्या चालवल्यास तीनसह व्युत्पन्न केलेले आउटपुट फोल्डर तयार होईल fileखाली सूचीबद्ध आहे. ते आधीच अस्तित्वात असल्यास, ते अधिलिखित केले जातील.
- generated/uart_regs.vhd
- generated/uart_regs.py
- generated/instantiation_template.vho
- uart_regs.vhd
- हे स्क्रिप्टद्वारे व्युत्पन्न केलेले सानुकूल इंटरफेस मॉड्यूल आहे. तुम्हाला ते तुमच्या डिझाइनमध्ये इन्स्टंट करणे आवश्यक आहे, जिथे ते UART वापरून तुम्ही नियंत्रित करू इच्छित असलेल्या रजिस्टर्समध्ये प्रवेश करू शकतात.
- प्रत्येक uart_regs मॉड्यूलसाठी “– UART प्रवेशयोग्य नोंदणी” विभागाच्या वरील सर्व काही एकसारखे असेल, तर त्या रेषेखालील पोर्ट सिग्नलची रचना जनरेटर स्क्रिप्टला दिलेल्या वितर्कांवर अवलंबून असते.
- खाली दिलेली सूची generate कमांड ex च्या परिणामी uart_regs मॉड्यूलसाठी अस्तित्व दर्शवतेample gen_uart_regs.py secti मध्ये दर्शविले आहे
- तुम्हाला uart_rx सिग्नल सिंक्रोनाइझ करण्याची आवश्यकता नाही, कारण ते uart_rx मध्ये हाताळले जाते. मॉड्यूल
- जेव्हा मॉड्यूलला वाचण्याची विनंती प्राप्त होते, तेव्हा ते सध्याच्या घड्याळ चक्रातील सर्व इनपुट आणि आउटपुट सिग्नलची मूल्ये कॅप्चर करेल. त्यानंतर तात्काळ स्नॅपशॉट UART वर होस्टला पाठवला जातो.
- जेव्हा लेखन होते, तेव्हा सर्व आउटपुट रजिस्टर्स त्याच घड्याळ चक्रात नवीन मूल्यांसह अद्यतनित केले जातात. आउटपुट सिग्नल मूल्ये वैयक्तिकरित्या बदलणे शक्य नाही.
- तथापि, uart_regs.py स्क्रिप्ट वापरकर्त्याला सर्व रजिस्टर्सची वर्तमान मूल्ये वाचून फक्त निवडक आउटपुट अपडेट करण्याची परवानगी देते. ते नंतर अपडेट केलेल्या मूल्यांसह सर्व मूल्ये परत लिहितात.
- uart_regs.py
- व्युत्पन्न/uart_regs.py file uart_regs VHDL मॉड्युलसह एकत्रितपणे व्युत्पन्न केले जाते आणि त्यात सानुकूल नोंदणीची माहिती हेडरमध्ये असते. file. या स्क्रिप्टसह, तुम्ही तुमच्या सानुकूल रजिस्टरमधून सहजतेने वाचू किंवा लिहू शकता.
मदत मेनू
- मदत मेनू प्रिंट करण्यासाठी python uart_regs.py -h टाइप करा:
UART पोर्ट सेट करत आहे
- स्क्रिप्टमध्ये -c स्विच वापरून UART पोर्ट सेट करण्याचे पर्याय आहेत. हे विंडोज आणि लिनक्सवर काम करते. हेल्प मेनूमध्ये सूचीबद्ध केलेल्या उपलब्ध पोर्टपैकी एकावर सेट करा. डिफॉल्ट पोर्ट सेट करण्यासाठी, तुम्ही uart_regs.py स्क्रिप्टमध्ये UART_PORT व्हेरिएबल देखील संपादित करू शकता.
यादी रजिस्टर
- रजिस्टर मॅपिंगची माहिती uart_regs.py स्क्रिप्टच्या हेडरमध्ये gen_uart_regs.py स्क्रिप्टद्वारे दिली जाते. खाली दाखवल्याप्रमाणे, तुम्ही -l स्विच वापरून उपलब्ध रजिस्टर्सची यादी करू शकता. ही एक स्थानिक कमांड आहे आणि लक्ष्य FPGA शी संवाद साधणार नाही.
नोंदणीसाठी लिहित आहे
- -w स्विच वापरून तुम्ही कोणत्याही आउट मोड रजिस्टरवर लिहू शकता. खाली दर्शविल्याप्रमाणे “=” नंतर नोंदणीचे नाव आणि बायनरी, हेक्साडेसिमल किंवा दशांश मूल्य म्हणून दिलेले मूल्य द्या.
- लक्षात ठेवा की VHDL अंमलबजावणीसाठी स्क्रिप्टला सर्व आउटपुट रजिस्टर एकाच वेळी लिहिणे आवश्यक आहे. म्हणून, जर तुम्ही आउटपुट रजिस्टरचा संपूर्ण संच निर्दिष्ट केला नाही, तर स्क्रिप्ट प्रथम लक्ष्य FPGA मधून वाचन करेल आणि नंतर गहाळ असलेल्यांसाठी त्या मूल्यांचा वापर करेल. परिणामी फक्त निर्दिष्ट रजिस्टर बदलतील.
- जेव्हा तुम्ही लेखन कराल, तेव्हा सर्व निर्दिष्ट रजिस्टर्स त्याच घड्याळाच्या चक्रादरम्यान बदलतील, ते UART वर प्राप्त होताच नाही.
रजिस्टर वाचत आहे
- खाली दर्शविल्याप्रमाणे, सर्व नोंदणी मूल्ये वाचण्यासाठी -r स्विच वापरा. पिवळ्या रंगात चिन्हांकित केलेली मूल्ये ही आम्ही मागील लेखनात बदलली आहेतample
- प्रत्येक रीड सर्व इनपुट आणि आउटपुट रजिस्टर्सचा तात्काळ स्नॅपशॉट दाखवते. ते सर्व एसampत्याच घड्याळाच्या चक्रात नेतृत्व केले
डीबगिंग
तुम्हाला संप्रेषण प्रोटोकॉल डीबग करायचा असल्यास इतर कोणत्याही स्विचसह -d स्विच वापरा. त्यानंतर, स्क्रिप्ट सर्व पाठवलेले आणि प्राप्त केलेले बाइट्स मुद्रित करेल आणि tag खाली दर्शविल्याप्रमाणे ते नियंत्रण वर्ण असल्यास.
इतर पायथन स्क्रिप्टमध्ये इंटरफेस वापरणे
- uart_regs.py स्क्रिप्टमध्ये UartRegs क्लास आहे जो तुम्ही इतर सानुकूल पायथन स्क्रिप्ट्समध्ये कम्युनिकेशन इंटरफेस म्हणून सहजपणे वापरू शकता. फक्त क्लास इंपोर्ट करा, त्याचा एक ऑब्जेक्ट तयार करा आणि खाली दाखवल्याप्रमाणे पद्धती वापरणे सुरू करा.
- पद्धत आणि वर्णन आणि रिटर्न व्हॅल्यू प्रकारांसाठी पायथन कोडमधील डॉकस्ट्रिंग्सचा संदर्भ घ्या.
instantiation_template.vho
- तुमच्या सोयीसाठी uart_regs मॉड्युलसह इन्स्टंटिएशन टेम्प्लेट तयार केले आहे. कोडिंगचा वेळ वाचवण्यासाठी, तुम्ही तुमच्या डिझाइनमध्ये मॉड्यूल इन्स्टंटिएशन आणि सिग्नल घोषणा कॉपी करू शकता.
स्थिर RTL files
- आपण खालील समाविष्ट करणे आवश्यक आहे files तुमच्या VHDL प्रकल्पात आहे जेणेकरून ते uart_regs मॉड्यूल प्रमाणेच लायब्ररीमध्ये संकलित केले जातील:
- rtl/uart_regs_backend.vhd
- rtl/uart_rx.vhd
- rtl/uart_tx.vhd
- uart_regs_backend मॉड्युल मर्यादित-स्टेट मशीन्स लागू करते जे रजिस्टर डेटामध्ये घड्याळ घालतात. होस्टसह UART संप्रेषण हाताळण्यासाठी ते uart_rx आणि uart_tx मॉड्यूल्स वापरते.
डेमो प्रकल्प
- जि.प.मध्ये तीन डेमो प्रकल्पांचा समावेश आहे file. ते तुम्हाला वेगवेगळ्या बोर्डांवरील परिधीय तसेच काही मोठ्या, अंतर्गत रजिस्टर्सवर नियंत्रण ठेवू देतात.
- डेमो फोल्डरमध्ये पूर्व-निर्मित uart_regs.vhd आणि uart_regs.py समाविष्ट आहे fileत्या डिझाईन्ससाठी खास बनवलेले आहे.
जाळीदार iCEstick
- डेमो/icecube2_icestick फोल्डरमध्ये Lattice iCEstick FPGA बोर्डसाठी नोंदणी ऍक्सेस डेमो अंमलबजावणी आहे.
- अंमलबजावणी प्रक्रियेतून चालण्यासाठी, demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project उघडा file लॅटिस iCEcube2 डिझाइन सॉफ्टवेअरमध्ये.
- iCEcube2 GUI मध्ये प्रोजेक्ट लोड केल्यानंतर, प्रोग्रामिंग बिटमॅप तयार करण्यासाठी टूल्स→रन ऑल वर क्लिक करा. file.
- व्युत्पन्न बिटमॅपसह FPGA कॉन्फिगर करण्यासाठी तुम्ही लॅटिस डायमंड प्रोग्रामर स्टँडअलोन टूल वापरू शकता file. डायमंड प्रोग्रामर उघडल्यावर, स्वागत संवाद बॉक्समध्ये विद्यमान प्रोग्रामर प्रोजेक्ट उघडा क्लिक करा.
- प्रकल्प निवडा file झिपमध्ये आढळले: demo/lattice_icestick/diamond_programmer_project.xcf आणि ओके क्लिक करा.
- प्रोजेक्ट लोड झाल्यानंतर, मध्ये तीन बिंदूंवर क्लिक करा File नाव स्तंभ, वर दर्शविल्याप्रमाणे. बिटमॅप निवडण्यासाठी ब्राउझ करा file तुम्ही iCEcube2 मध्ये जे तयार केले आहे
- डेमो/लॅटिस_आयस्टिक/आयसक्यूब2_प्रोज/यूआर्ट_रेग्स_इम्प्ल्मेंट/एसबीटी/आउटपुट्स/बिटमॅप/टॉप_आयस्टिक_बिटमॅप.बिन
- शेवटी, तुमच्या संगणकावरील USB पोर्टमध्ये iCEstick बोर्ड प्लग इन करून, SPI फ्लॅश प्रोग्राम करण्यासाठी आणि FPGA कॉन्फिगर करण्यासाठी Design→Program निवडा.
- uart_regs.py विभागात वर्णन केल्याप्रमाणे demo/lattice_icestick/uart_regs.py स्क्रिप्ट वापरून तुम्ही आता रजिस्टर वाचू आणि लिहू शकता.
Xilinx Digilent Arty A7-35T
- डेमो/arty_a7_35 फोल्डरमध्ये तुम्ही Artix-7 35T Arty FPGA मूल्यमापन किटसाठी डेमो अंमलबजावणी शोधू शकता.
- Vivado उघडा आणि काढलेल्या वर नेव्हिगेट करा files GUI इंटरफेसच्या तळाशी आढळलेले Tcl कन्सोल वापरत आहे. डेमो प्रोजेक्ट फोल्डर प्रविष्ट करण्यासाठी ही आज्ञा टाइप करा:
- सीडी /डेमो/आर्टि_ए७_३५/विवाडो_प्रोज/
- Vivado प्रकल्प पुन्हा निर्माण करण्यासाठी create_vivado_proj.tcl Tcl स्क्रिप्ट कार्यान्वित करा:
- स्रोत ./create_vivado_proj.tcl
- सर्व अंमलबजावणीचे चरण पार पाडण्यासाठी साइडबारमधील बिटस्ट्रीम व्युत्पन्न करा क्लिक करा आणि प्रोग्रामिंग बिटस्ट्रीम व्युत्पन्न करा file.
- शेवटी, ओपन हार्डवेअर मॅनेजर क्लिक करा आणि GUI द्वारे FPGA प्रोग्राम करा.
- uart_regs.py विभागात वर्णन केल्याप्रमाणे demo/arty_a7_35/uart_regs.py स्क्रिप्ट वापरून तुम्ही आता रजिस्टर वाचण्यास आणि लिहिण्यास पुढे जाऊ शकता.
Xilinx Digilent Arty S7-50
- डेमो/arty_s7_7 फोल्डरमध्ये तुम्ही Arty S7: Spartan-50 FPGA डेव्हलपमेंट बोर्डसाठी डेमो अंमलबजावणी शोधू शकता.
- Vivado उघडा आणि काढलेल्या वर नेव्हिगेट करा files GUI इंटरफेसच्या तळाशी आढळलेले Tcl कन्सोल वापरत आहे. डेमो प्रोजेक्ट फोल्डर प्रविष्ट करण्यासाठी ही आज्ञा टाइप करा:
- सीडी /डेमो/आर्टि_एस७_५०/विवाडो_प्रोज/
- Vivado प्रकल्प पुन्हा निर्माण करण्यासाठी create_vivado_proj.tcl Tcl स्क्रिप्ट कार्यान्वित करा:
- स्रोत ./create_vivado_proj.tcl
- सर्व अंमलबजावणीचे चरण पार पाडण्यासाठी साइडबारमधील बिटस्ट्रीम व्युत्पन्न करा क्लिक करा आणि प्रोग्रामिंग बिटस्ट्रीम व्युत्पन्न करा file.
- शेवटी, ओपन हार्डवेअर मॅनेजर क्लिक करा आणि GUI द्वारे FPGA प्रोग्राम करा.
- uart_regs.py विभागात वर्णन केल्याप्रमाणे demo/arty_s7_50/uart_regs.py स्क्रिप्ट वापरून तुम्ही आता रजिस्टर वाचण्यास आणि लिहिण्यास पुढे जाऊ शकता.
अंमलबजावणी
- कोणतीही विशिष्ट अंमलबजावणी आवश्यकता नाहीत.
अडथळे
- या डिझाइनसाठी कोणत्याही विशिष्ट वेळेच्या मर्यादांची आवश्यकता नाही कारण UART इंटरफेस मंद आहे आणि अॅसिंक्रोनस इंटरफेस म्हणून हाताळला जातो.
- uart_regs मॉड्यूलमध्ये uart_rx इनपुट uart_rx मॉड्यूलमध्ये समक्रमित केले जाते. अशा प्रकारे, ते उच्च-स्तरीय मॉड्यूलमध्ये सिंक्रोनाइझ करण्याची आवश्यकता नाही.
ज्ञात समस्या
- तुमचे FPGA आर्किटेक्चर डीफॉल्ट रजिस्टर व्हॅल्यूजला सपोर्ट करते की नाही यावर अवलंबून, ते वापरण्यापूर्वी तुम्हाला ते मॉड्यूल रीसेट करावे लागेल.
अधिक माहिती
- कॉपीराइट VHDLwhiz.com
वारंवार विचारले जाणारे प्रश्न
प्रश्न: UART चाचणी इंटरफेस जनरेटरचा उद्देश काय आहे?
अ: UART चाचणी इंटरफेस जनरेटर UART कम्युनिकेशन वापरून FPGA रजिस्टर मूल्यांशी संवाद साधण्यासाठी कस्टम इंटरफेस तयार करण्यास अनुमती देतो.
प्रश्न: मी पायसेरियल पॅकेज कसे स्थापित करू?
अ: तुम्ही pip install pyserial या कमांडचा वापर करून Pip द्वारे Pyserial इंस्टॉल करू शकता.
कागदपत्रे / संसाधने
![]() |
VHDLwhiz UART चाचणी इंटरफेस जनरेटर [pdf] वापरकर्ता मॅन्युअल UART चाचणी इंटरफेस जनरेटर, चाचणी इंटरफेस जनरेटर, इंटरफेस जनरेटर, जनरेटर |