VHDLwhiz-लोगो

VHDLwhiz UART परीक्षण इन्टरफेस जेनरेटर

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 -hVHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१
  • अनुकूलन इन्टरफेस उत्पन्न गर्न, तपाईंले तर्कको रूपमा सूचीबद्ध प्रत्येक इच्छित 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-पहुँचयोग्य संकेत उत्पन्न गर्ने स्क्रिप्टको परिणाम हुनेछ:VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१
  • विभिन्न दिशा, लम्बाइ र प्रकारका धेरै दर्ताहरू भएको इन्टरफेस उत्पन्न गर्न आर्गुमेन्टहरू सहित स्क्रिप्ट चलाउनुहोस्।VHDLwhiz-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 मा देखाइएको छVHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१
  • तपाईंले 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 टाइप गर्नुहोस्:VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१

UART पोर्ट सेट गर्दै

  • स्क्रिप्टमा -c स्विच प्रयोग गरेर UART पोर्ट सेट गर्ने विकल्पहरू छन्। यो Windows र Linux मा काम गर्छ। यसलाई मद्दत मेनुमा सूचीबद्ध उपलब्ध पोर्टहरू मध्ये एकमा सेट गर्नुहोस्। पूर्वनिर्धारित पोर्ट सेट गर्न, तपाईंले uart_regs.py स्क्रिप्टमा UART_PORT चर पनि सम्पादन गर्न सक्नुहुन्छ।

सूचीकरण दर्ताहरू

  • दर्ता म्यापिङको बारेमा जानकारी uart_regs.py स्क्रिप्टको हेडरमा gen_uart_regs.py स्क्रिप्टद्वारा राखिएको छ। तल देखाइए अनुसार, तपाईंले -l स्विचको साथ उपलब्ध दर्ताहरू सूचीबद्ध गर्न सक्नुहुन्छ। यो स्थानीय आदेश हो र लक्षित FPGA सँग अन्तर्क्रिया गर्दैन।VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१

दर्ताहरूमा लेख्दै

  • तपाईंले -w स्विच प्रयोग गरेर कुनै पनि आउट मोड दर्ताहरूमा लेख्न सक्नुहुन्छ। "=" पछि दर्ता नाम र बाइनरी, हेक्साडेसिमल, वा दशमलव मानको रूपमा दिइएको मान, तल देखाइए अनुसार आपूर्ति गर्नुहोस्।VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१
  • ध्यान दिनुहोस् कि VHDL कार्यान्वयनको लागि स्क्रिप्टले सबै आउटपुट दर्ताहरू एकैसाथ लेख्न आवश्यक छ। त्यसकारण, यदि तपाईंले आउटपुट दर्ताहरूको पूर्ण सेट निर्दिष्ट गर्नुभएन भने, स्क्रिप्टले पहिले लक्षित FPGA बाट पढ्नेछ र त्यसपछि छुटेकाहरूको लागि ती मानहरू प्रयोग गर्नेछ। परिणामस्वरूप निर्दिष्ट दर्ताहरू मात्र परिवर्तन हुनेछन्।
  • जब तपाइँ लेखन प्रदर्शन गर्नुहुन्छ, सबै निर्दिष्ट दर्ताहरू उही घडी चक्रमा परिवर्तन हुनेछन्, तिनीहरू UART मा प्राप्त हुने बित्तिकै होइन।

पढाइ दर्ताहरू

  • तल देखाइएका सबै दर्ता मानहरू पढ्न -r स्विच प्रयोग गर्नुहोस्। पहेंलोमा चिन्ह लगाइएका मानहरू हामीले अघिल्लो लेखमा परिवर्तन गरेका थियौंampleVHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१
  • प्रत्येक पढाइले सबै इनपुट र आउटपुट दर्ताहरूको तत्काल स्न्यापसट देखाउँछ। उनीहरु सबै एसampएउटै घडी चक्रमा नेतृत्व गरियो

डिबग गर्दै

यदि तपाइँ संचार प्रोटोकल डिबग गर्न आवश्यक छ भने अन्य कुनै पनि स्विचहरूसँग -d स्विच प्रयोग गर्नुहोस्। त्यसपछि, स्क्रिप्टले सबै पठाइएका र प्राप्त बाइटहरू प्रिन्ट गर्नेछ र tag यदि तिनीहरू नियन्त्रण वर्णहरू हुन् भने, तल देखाइए अनुसार।VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१

अन्य पाइथन लिपिहरूमा इन्टरफेस प्रयोग गर्दै

  • uart_regs.py स्क्रिप्टले UartRegs वर्ग समावेश गर्दछ जुन तपाइँ सजिलैसँग अन्य अनुकूलन पाइथन लिपिहरूमा सञ्चार इन्टरफेसको रूपमा प्रयोग गर्न सक्नुहुन्छ। केवल वर्ग आयात गर्नुहोस्, यसको वस्तु सिर्जना गर्नुहोस्, र तल देखाइएका विधिहरू प्रयोग गर्न सुरु गर्नुहोस्।VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१
  • विधि र विवरण र रिटर्न मान प्रकारहरूको लागि पाइथन कोडमा कागजातहरू हेर्नुहोस्।

instantiation_template.vho

  • तपाईँको सुविधाको लागि uart_regs मोड्युलको साथ इन्स्ट्यान्टिएसन टेम्प्लेट उत्पन्न गरिएको छ। कोडिङ समय बचत गर्न को लागी, तपाइँ तपाइँको डिजाइन मा मोड्युल इन्स्टेन्टिएशन र संकेत घोषणा को प्रतिलिपि गर्न सक्नुहुन्छ।VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१

स्थिर 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 र ठीक क्लिक गर्नुहोस्।VHDLwhiz-UART-परीक्षण-इन्टरफेस-जेनरेटर-चित्र-१
  • परियोजना लोड भएपछि, तीनवटा थोप्लाहरूमा क्लिक गर्नुहोस् 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 परीक्षण इन्टरफेस जेनरेटर, परीक्षण इन्टरफेस जेनरेटर, इन्टरफेस जेनरेटर, जेनरेटर

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *