वेरिलोग एचडीएल में एक साधारण सीरियल यूएआरटी ट्रांसमीटर कैसे बनाएं
अधिकांश यूनिवर्सल एसिंक्रोनस रिसीवर ट्रांसमीटर (यूएआरटी) जो मुझे ऑनलाइन मिले, वे बहुत जटिल और समझने में मुश्किल हैं, यहां मैं कुछ सरल सिद्धांत और कोड बनाने के तरीके के बारे में बताऊंगा।
सबसे पहले बात करते हैं कि ट्रांसमीटर कैसे काम करते हैं। मूल सिद्धांत एक पंक्ति में कई बिट डेटा भेजना है। हमारे ट्रांसमीटर में, यह डेटा समानांतर है, हालांकि आवश्यक तारों की संख्या को कम करने के लिए, हम सीरियल संचार का उपयोग करते हैं जो प्राप्त करने वाले छोर पर समानांतर में परिवर्तित हो जाता है।
हमें जिन बुनियादी चीजों की आवश्यकता है वे निम्नलिखित हैं:
- एक घड़ी विभक्त (हमारा काउंटर)
यह हमें एक निश्चित गति (बॉड दर) पर डेटा भेजने में सक्षम बनाता है। हमारा रिसीवर नमूना लेगा और डेटा को थोड़ा-थोड़ा करके लेगा।
- एक शिफ्ट रजिस्टर
हमें यह जानने की जरूरत है कि हम एक बार में कितने बिट्स ट्रांसमिट कर रहे हैं, हमारे शिफ्ट रजिस्टर में एक स्टार्ट बिट, डेटा बिट्स, पैरिटी बिट (वैकल्पिक), एंड बिट होगा।
- एक राज्य आरेख
किसी भी कोड को लिखने से पहले, हमें यह सोचना चाहिए कि हमें क्या बनाना है और सबसे अच्छा तरीका है हमारे डिजाइन का स्टेट डायग्राम बनाना। हम जानते हैं कि एक ट्रांसमीटर के लिए हमें 2 राज्यों, आईडीएलई और ट्रांसमिटिंग की आवश्यकता होती है।
स्टेट डायग्राम होने के बाद अब हम कैलकुलेट कर सकते हैं कि हमारा काउंटर क्या होगा। इसका उपयोग करके किया जाता है:
काउंटर = FPGA घड़ी की गति/बॉड दर
इस उदाहरण में मैं 9600 की बॉड दर का उपयोग करता हूं, जिससे मेरा काउंटर = 5208 हो जाता है।
अंत में, हम अपने शिफ्ट रजिस्टर की गणना करते हैं और अपनी स्टेट मशीन लिखना समाप्त करते हैं। मेरे नमूना कोड में मैं एक प्रारंभ बिट, समता बिट, डेटा के 8 बिट और अंत बिट का उपयोग करता हूं। यह कुल 11 बिट है।
चरण 2 और 3 में एक ही मॉड्यूल में दोनों छवियां FPGA को प्रोग्राम करने के लिए आवश्यक हमारे ट्रांसमीटर कोड को पूरा करती हैं। यह कोड क्रमानुसार जुड़े किसी अन्य FPGA के साथ या अन्य हार्डवेयर के बीच विंडोज़ हाइपरटर्मिनल के साथ काम करेगा। बहुत अधिक के साथ काम करने के लिए आसानी से संशोधित किया जा सकता है।
अंत में, हम किसी भी त्रुटि को ठीक करने के लिए एक परीक्षण स्थिरता बनाते हैं और FPGA की प्रोग्रामिंग करने से पहले अपने प्रोग्राम का अनुकरण करते हैं।
यह ट्रांसमीटर का समापन करता है। कृपया टिप्पणी छोड़ें यदि आपके कोई प्रश्न हैं या आपको लगता है कि यहां कुछ कमी है।
टिप्स
ट्रांसमीटर और रिसीवर दोनों को बॉड दर पता होनी चाहिए जिस पर डेटा भेजा जा रहा है।