VHDLwhiz UART परीक्षण इन्टरफेस जेनरेटर
उत्पादन जानकारी
निर्दिष्टीकरण:
- उत्पादनको नाम: VHDL ले UART परीक्षण इन्टरफेस जेनेरेटर दर्ता गर्छ
- संस्करण: 1.0.4
- मिति: अगस्त १९, २०२३
- लेखक: जोनास जुलियन जेन्सन
- उत्पादन URL: उत्पादन लिङ्क
- सम्पर्क इमेल: jonas@vhdlwhiz.com
विवरण
यो उत्पादनले तपाईंलाई UART प्रयोग गरेर FPGA दर्ता मानहरू पढ्न र लेख्नको लागि अनुकूलन इन्टरफेसहरू उत्पन्न गर्न अनुमति दिन्छ। उत्पन्न गरिएको VHDL मोड्युल र पाइथन स्क्रिप्टले तपाईंको FPGA डिजाइनमा विभिन्न प्रकारका दर्ताहरूसँग अन्तर्क्रिया गर्ने क्षमता प्रदान गर्दछ।
आवश्यकताहरू
- पाइथन ३ दोभासे
- पिसेरियल प्याकेज
प्रोटोकल
उत्पादनले चार नियन्त्रण वर्णहरू भएको डेटा फ्रेमिङ प्रोटोकल प्रयोग गर्दछ:
- नाम: READ_REQ, मान: ०x०ए - सबै दर्ताहरूलाई UART मार्फत फिर्ता पठाउन लेखन अनुक्रम सुरु गर्न होस्टबाट FPGA लाई आदेश दिनुहोस्।
- नाम: START_लेख्नुहोस्, मान: ०x०B - कुनै पनि दिशामा लेखन अनुक्रमको सुरुवातलाई चिन्ह लगाउँछ।
- नाम: END_LEKTE, मान: ०x०C - कुनै पनि दिशामा लेखन अनुक्रमको अन्त्यलाई चिन्ह लगाउँछ।
- नाम: भाग्ने, मान: ०x०D - नियन्त्रण शब्दहरूबाट बच्न प्रयोग गरिने एस्केप क्यारेक्टर
उत्पादन उपयोग निर्देशन
स्क्रिप्टहरू चलाउँदै
उत्पादन प्रयोग गर्न, तपाईंले 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 विवरणहरूको लागि।
Changelog
- यी परिवर्तनहरूले परियोजनालाई सन्दर्भ गर्दछ files, र यो कागजात तदनुसार अद्यावधिक गरिएको छ
संस्करण | टिप्पणीहरू |
1.0.0 | प्रारम्भिक रिलीज |
1.0.1 | पाइथन मोड्युलको रूपमा uart_regs.py आयात गर्दा छुटेको «स्वयं» सन्दर्भ बग समाधान गरियो। लेखन असफल प्रिन्टआउटलाई अपवादमा परिवर्तन गरियो।
आयातित मोड्युलको रूपमा चलाउँदा कन्सोलमा प्रिन्ट गर्नबाट बच्नुहोस्। |
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 fileयस परियोजनाले तपाईंलाई UART प्रयोग गरी विभिन्न प्रकार र चौडाइहरूको FPGA दर्ता मानहरू पढ्न र लेख्नको लागि अनुकूलन इन्टरफेसहरू उत्पन्न गर्न अनुमति दिन्छ।
- तपाईले जेनेरेट गरिएको VHDL मोड्युल र Python स्क्रिप्ट प्रयोग गर्न सक्नुहुन्छ तपाईको डिजाइनमा कुनै पनि नम्बरमा दर्ताहरू पढ्न वा लेख्नको लागि। UART पहुँचयोग्य दर्ताहरूमा std_logic, std_logic_vector, हस्ताक्षरित, वा हस्ताक्षर नगरिएको प्रकारहरू हुन सक्छन्।
- तपाईंले आउटपुट उत्पन्न गर्दा इनपुट र आउटपुट दर्ता र प्रकारहरूको सटीक संरचनामा निर्णय गर्न सक्नुहुन्छ। filegen_uart_regs.py स्क्रिप्ट प्रयोग गर्दै।
- पाइथन स्क्रिप्टहरू आंशिक रूपमा ChatGPT आर्टिफिशियल इन्टेलिजेन्स उपकरणको मद्दतले सिर्जना गरिएको थियो, जबकि VHDL कोड हस्तशिल्प गरिएको छ।
आवश्यकताहरू
- यस परियोजनामा लिपिहरू पाइथन 3 दोभाषे मार्फत चलाइएको हुनुपर्छ र Pyserial प्याकेज स्थापना हुनुपर्छ।
- तपाईंले यो आदेश प्रयोग गरेर Pip मार्फत pyserial स्थापना गर्न सक्नुहुन्छ: pip install pyserial
प्रोटोकल
- VHDL files र पाइथन स्क्रिप्टले चार नियन्त्रणहरू सहितको डेटा-फ्रेमिङ प्रोटोकल प्रयोग गर्दछ
नाम | मूल्य | टिप्पणी गर्नुहोस् |
READ_REQ सम्बन्धी जानकारी | 0x0A | लेखन सुरु गर्न होस्टबाट FPGA लाई आदेश दिनुहोस्
सबै दर्ताहरू UART मार्फत फिर्ता पठाउने क्रम |
START_WRITE | 0x0B | कुनै पनि लेखन अनुक्रमको सुरुवातलाई चिन्ह लगाउँछ
दिशा |
END_WRITE | ०x१ सी | कुनै पनि दिशामा लेख्ने क्रमको अन्त्य चिन्ह लगाउँछ |
एस्केप | 0x0D | एस्केप क्यारेक्टर कुनै पनि नियन्त्रण शब्दहरूबाट भाग्नको लागि प्रयोग गरिन्छ, ESCAPE क्यारेक्टर आफैं सहित, जब तिनीहरू START_WRITE र END_WRITE मार्करहरू बीचको डेटाको रूपमा देखा पर्छन्। |
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, र 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 पहुँचयोग्य दर्ताहरू" खण्ड माथिका सबै कुराहरू प्रत्येक uart_regs मोड्युलको लागि समान हुनेछ, जबकि त्यो रेखा तल पोर्ट संकेतहरूको संरचना जेनेरेटर स्क्रिप्टमा दिइएको तर्कहरूमा निर्भर गर्दछ।
- तलको सूचीले uart_regs मोड्युलको लागि generate command ex को नतिजा देखाउँछ।ampgen_uart_regs.py secti मा देखाइएको छ
- तपाईंले uart_rx सिग्नललाई सिङ्क्रोनाइज गर्न आवश्यक छैन, जसलाई uart_rx मा ह्यान्डल गरिएको छ। मोड्युल।
- जब मोड्युलले पढ्ने अनुरोध प्राप्त गर्दछ, यसले हालको घडी चक्र भित्र सबै इनपुट र आउटपुट संकेतहरूको मानहरू कब्जा गर्नेछ। तत्काल स्न्यापसट UART मा होस्टमा पठाइन्छ।
- जब लेखन हुन्छ, सबै आउटपुट रेजिस्टरहरू नयाँ मानहरूसँग एउटै घडी चक्र भित्र अद्यावधिक हुन्छन्। व्यक्तिगत रूपमा आउटपुट सिग्नल मानहरू परिवर्तन गर्न सम्भव छैन।
- यद्यपि, uart_regs.py स्क्रिप्टले प्रयोगकर्तालाई सबै दर्ताहरूको हालको मानहरू पढेर मात्र चयन गरिएका आउटपुटहरू अद्यावधिक गर्न अनुमति दिन्छ। यसले त्यसपछि अद्यावधिक गरिएका सहित सबै मानहरू लेख्छ।
- uart_regs.py
- generated/uart_regs.py file uart_regs VHDL मोड्युलसँग मिलेर उत्पन्न हुन्छ र यसको हेडरमा अनुकूलन दर्ता जानकारी समावेश गर्दछ। file। यस स्क्रिप्टको साथ, तपाईं सजिलै संग आफ्नो अनुकूलन दर्ताहरू पढ्न वा लेख्न सक्नुहुन्छ।
मद्दत मेनु
- मद्दत मेनु छाप्न python uart_regs.py -h टाइप गर्नुहोस्:
UART पोर्ट सेट गर्दै
- स्क्रिप्टमा -c स्विच प्रयोग गरेर UART पोर्ट सेट गर्ने विकल्पहरू छन्। यो Windows र Linux मा काम गर्छ। यसलाई मद्दत मेनुमा सूचीबद्ध उपलब्ध पोर्टहरू मध्ये एकमा सेट गर्नुहोस्। पूर्वनिर्धारित पोर्ट सेट गर्न, तपाईंले 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
- तपाईंले निम्न समावेश गर्न आवश्यक छ fileतपाईंको 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ती डिजाइनहरूको लागि विशेष गरी बनाइएको हो।
जाली आईसीस्टिक
- डेमो/icecube2_icestick फोल्डरले Lattice iCEstick FPGA बोर्डको लागि दर्ता पहुँच डेमो कार्यान्वयन समावेश गर्दछ।
- कार्यान्वयन प्रक्रिया मार्फत चलाउन, demo/lattice_icestick/icecube2_proj/uart_regs_sbt.project खोल्नुहोस्। file Lattice iCEcube2 डिजाइन सफ्टवेयरमा।
- iCEcube2 GUI मा परियोजना लोड गरिसकेपछि, प्रोग्रामिङ बिटम्याप उत्पन्न गर्न Tools→Run All मा क्लिक गर्नुहोस्। file.
- तपाईंले उत्पन्न बिटम्यापसँग FPGA कन्फिगर गर्न ल्याटिस डायमंड प्रोग्रामर स्ट्यान्डअलोन उपकरण प्रयोग गर्न सक्नुहुन्छ। file। जब डायमंड प्रोग्रामर खुल्छ, स्वागत संवाद बक्समा अवस्थित प्रोग्रामर परियोजना खोल्नुहोस् क्लिक गर्नुहोस्।
- परियोजना चयन गर्नुहोस् file Zip मा फेला पार्नुहोस्: demo/lattice_icestick/diamond_programmer_project.xcf र ठीक क्लिक गर्नुहोस्।
- परियोजना लोड भएपछि, तीनवटा थोप्लाहरूमा क्लिक गर्नुहोस् File नाम स्तम्भ, माथि देखाइएको रूपमा। बिटम्याप चयन गर्न ब्राउज गर्नुहोस् file तपाईंले iCEcube2 मा उत्पन्न गर्नुभएको
- डेमो/ल्याटिस_इसस्टिक/आइसक्यूब२_प्रोज/युआर्ट_रेग्स_इम्प्ल्मेन्ट/एसबीटी/आउटपुट/बिटम्याप/टप_इसस्टिक_बिटम्याप.बिन
- अन्तमा, तपाईंको कम्प्युटरको 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
FAQs
प्रश्न: UART परीक्षण इन्टरफेस जेनेरेटरको उद्देश्य के हो?
A: UART परीक्षण इन्टरफेस जेनरेटरले UART सञ्चार प्रयोग गरेर FPGA दर्ता मानहरूसँग अन्तर्क्रिया गर्न अनुकूलन इन्टरफेसहरू सिर्जना गर्न अनुमति दिन्छ।
प्रश्न: म पाइसेरियल प्याकेज कसरी स्थापना गर्ने?
A: तपाईंले pip install pyserial आदेश प्रयोग गरेर Pip मार्फत Pyserial स्थापना गर्न सक्नुहुन्छ।
कागजातहरू / स्रोतहरू
![]() |
VHDLwhiz UART परीक्षण इन्टरफेस जेनरेटर [pdf] प्रयोगकर्ता पुस्तिका UART परीक्षण इन्टरफेस जेनरेटर, परीक्षण इन्टरफेस जेनरेटर, इन्टरफेस जेनरेटर, जेनरेटर |