मदद कृपया .... एक VHDL मॉड्यूल में एक निर्गम कनेक्ट करने की विधि

L

LF_LF

Guest
अरे, सब लोग. मैं घड़ी विभक्त और 2 पिनों के विनिर्देशन के लिए एक VHDL कोड का निर्माण कर रहा हूँ. मैं 2 1 घड़ी चक्र (1 घड़ी चक्र के बाद स्वत: ही नीचे ट्रिगर) के लिए DE2 बोर्ड का उपयोग कर पिंस ट्रिगर की जरूरत है. हालांकि, मैं पता नहीं कैसे मेरे पिन विनिर्देश की घड़ी के लिए है कि मेरी घड़ी विभक्त के उत्पादन में परिवर्तित किया है. किसी कृपया मेरी मदद कर सकते हैं? मेरी घड़ी विभक्त 500KHz करने के लिए 27MHz बदलने और मैं 500kHz का उपयोग करने के लिए इन 2 पिंस (DE2 बोर्ड से बटन) को ट्रिगर की जरूरत है. प्रक्रिया (clkin) --- मुझे लगता है कि यहाँ मेरी समस्या है: पिन विनिर्देशन के लिए मेरा कोड हैं!! शुरू अगर A0 = '1 'और ((clkin) rising_edge) तो A0_out
 
तुम कहाँ करने के लिए घड़ी का उपयोग करना चाहते हैं? यदि आप विभाजन के इस प्रकार के लिए किसी भी FPGA का उपयोग करें (xillinx) डीसीएम या PLL (अन्य) का उपयोग कर रहे हैं, तैयार कोर वहाँ विभाजन के लिए किया जाएगा ..... क्योंकि आप प्रभाग द्वारा 500k सटीक मिल नहीं जा रहे हैं.
 
मैं 27MHz से मेरे एडीसी (- 500Khz ADS7861) मेरे DE2 बोर्ड (altera) की घड़ी सिंक्रनाइज़ की जरूरत है. जैसा कि मैं एडीसी को सत्यापित करने की आवश्यकता है, इसलिए मैं DE2 बोर्ड में एक VHDL कोड निर्माण को कहा गया है और परीक्षण के लिए एडीसी से कनेक्ट. एडीसी के Datasheet के अनुसार, दो जानकारी के लिए एक घड़ी चक्र के लिए ट्रिगर ही है, इसलिए मैं करने के लिए कोड के निर्माण के लिए एक घड़ी चक्र ही के बाद इसे वापस ट्रिगर करने की कोशिश की जरूरत है. के रूप में यह मेरी पहली बार DE2 बोर्ड का उपयोग है, मुझे पता नहीं है क्या यह है कि बोर्ड के लिए है (मैं पाठ्यक्रम के उपयोगकर्ता पुस्तिका के अनुसार चिप्स और उनके कार्यों को पता) समारोह है. मैं PLL और DCM.Can किसी के बारे में कोई विचार है संक्षेप में प्रक्रियाओं को समझाने के लिए या किसी को भी मेरे किसी भी लिंक या प्रलेखन दिखा सकते हैं?
 
समस्या को बहुत स्पष्ट नहीं है. आप कहते हैं, नहीं, जहां एडीसी इनपुट घड़ी से आता है, तुम क्यों करने के लिए 27 मेगाहर्ट्ज FPGA घड़ी का उपयोग करें और आप जिस पर एडीसी संकेत सिंक्रनाइज़ वान का इरादा. मुझे लगता है, समस्या एडीसी धारावाहिक डेटा पढ़ रही है, यह करने के लिए 8 मेगाहर्ट्ज बिट घड़ी पर प्रदर्शन किया गया है. VHDL कोड लिखने के लिए, कृपया साहित्य में बुनियादी ढांचे के नियमों या जैसे Altera Q.uartus VHDL टेम्पलेट्स देखें. नेस्टेड rising_edge () अभिव्यक्ति निश्चित रूप से आप क्या हासिल करने की कोशिश कर रहे हैं में परिणाम नहीं होगा.
 
खैर, मेरे एडीसी इनपुट घड़ी Altera DE2 बोर्ड से आया है. Altera DE2 बोर्ड 3 घड़ी इनपुट है, जो 27MHz, 50Mhz और SMA बाहरी घड़ी इनपुट है. इसलिए मैं 27MHz उपयोग (मैं अच्छी तरह से चयन नहीं किया है बाहरी घड़ी इनपुट एक और घड़ी जनरेटर के निर्माण की जटिलता की वजह से है). एडीसी 500Khz डेटापत्रक के लिए अनुसार निर्दिष्ट किया जाता है. इसलिए मैं सिंक्रनाइज़ या 27MHz करने के लिए 500 KHz में परिवर्तित करने की कोशिश की. खैर, आप के बारे में उल्लेख किया है 8MHz के बारे में यह कहा गया कि यह बाह्य घड़ी, optinal 8MHz लेकिन वर्णन पिन के अनुसार, यह इस घड़ी पिन नियंत्रण नमूने = 16 * च (नमूना समीकरण घड़ी दर राज्य है ).... अच्छी तरह से, मैं * 16 (500kHz) = 8MHz guese. तो है कि मैं गलत समझा है कि मैं घड़ी पिन के बजाय 500Khz के एडीसी 8 मेगाहर्ट्ज की आपूर्ति की जरूरत है? क्षमा करें, मैं थोड़ा उलझन में हूँ. कोड के बारे में, मुझे लगता है मैं वापस उल्लेख के रूप में मैं सिर्फ इस programing भाषा के लिए एक नौसिखिया हूँ की जरूरत है.
 
यदि आप दर 500 / KS एस हासिल करना चाहते हैं हैं, आप एडीसी 8 मेगाहर्ट्ज की आपूर्ति की है. यह सबसे आसान है 8 मेगाहर्ट्ज या इसे का एक बहु (जैसे 16 या 32 मेगाहर्ट्ज) पर एडीसी डेटा receiption चलाने निर्भर करता है, जिस पर घड़ियों अपने FPGA डिजाइन में उपयोग किया जाता है. वास्तव में इस आवृत्ति उत्पन्न करने के लिए, आप के लिए एक PLL MegaFunction का उपयोग किया है.
 
FvM के लिए धन्यवाद. घड़ी के लिए. मैं जानता हूँ कि कैसे अगले प्रक्रिया के लिए घड़ी चक्र के उत्पादन में पारित करने के लिए पहले से ही (मैं MegaFubction PLL पढ़ा है और मैं इसे बाद में की कोशिश करेंगे) हालांकि, मैं ट्रिगर समस्या का सामना करना पड़ रहा है. मैं काउंटर का उपयोग करने के लिए 0 1 घड़ी चक्र के बाद ट्रिगर करने की कोशिश की, लेकिन यह काम नहीं करता (मैं भी यह VHDL कोड के लिए सफलतापूर्वक को प्रोत्साहित कर सकते हैं, लेकिन यह तरंग उत्तेजना में ट्रिगर के बिना 0 करने के लिए वापस 1 करने के लिए लगातार दिखाने) मेरे कोड हैं: + + + ऊपर घड़ी विभक्त कोड है जो एक ही वास्तुकला प्रक्रिया (clk) में प्रारंभ करना अगर = '1 रीसेट 'तो A0_out
 
मुझे डर है, आप के लिए कई कदम वापस जाओ और जानने के लिए, कैसे VHDL काम करता है. यह एक [ख] हार्डवेयर विवरण भाषा [/b], एक प्रक्रियात्मक प्रोग्रामिंग भाषा से अलग रूप में सी. एक संकेत असाइनमेंट जैसे वर्तमान घड़ी बढ़त के बाद प्रभावी हो जाता है. यह आसान हो सकता है एक हार्डवेयर सर्किट के रूप में आवश्यक तर्क के बारे में सोचना और यह तर्क फाटकों से निर्माण हो सकता है, फ्लिप फ्लॉप, काउंटर और पाली रजिस्टरों.
 
[] (Clk) बोली प्रक्रिया [/ उद्धरण] आप एक रीसेट संकेत है. "प्रक्रिया (clk, रीसेट)" का उपयोग बेहतर हो सकता है. [बोली] elsif ((mux) rising_edge और A0 = '1 ') तो [/ उद्धरण] इसे लिखने का सही तरीका है: elsif (clk'event और clk = '1') और फिर अपने VHDL कार्यक्रम में कुछ बिट्स की जरूरत के रूप में अच्छी तरह से बदला जा.
 
सभी को धन्यवाद. मैं फिर से बनाने के बाद से पिछले एक खिचड़ी भाषा का इस्तेमाल किया जा तरंग मैं इस समय मिल गया. हालांकि, convst के काउंटर के बारे में, मैं कुछ समस्या का सामना करना पड़ता है. मैं दालों हर 16 घड़ी चक्र उत्पन्न करने की आवश्यकता है, लेकिन यह मुझे 17 घड़ी चक्र चलता है. किसी की मदद मुझे इस के लिए एक नज़र रखना. मैं घड़ी चक्र है कि मैं द्वारा निर्दिष्ट की संख्या (परीक्षण और त्रुटि के द्वारा) करने की कोशिश की है. उपयोग IEEE.std_logic_1164.all, उपयोग IEEE.std_logic_arith.all, उपयोग IEEE.std_logic_unsigned.all, लाइब्रेरी काम, यह भी गलत तरंग पुस्तकालय आईईईई इकाई siggen बंदरगाह (clkin: std_logic में; रीसेट: std_logic में; convst: बाहर std_logic; A0: std_logic बाहर), अंत siggen, siggen की वास्तुकला fpga संकेत count1 है, count2 संकेत पूर्णांक रेंज 0 करने के लिए 2: पूर्णांक रेंज 0 से 15, प्रक्रिया शुरू (clkin) प्रारंभ करना अगर = '1 'तो convst रीसेट
 
आप count1 के लिए 17 राज्यों, एक राज्य की गिनती कर रहे हैं count2 के लिए = 0 और 16 राज्यों = 0 .. 15. मैं दो काउंटर का उपयोग करने के उद्देश्य से नहीं देखते हैं. बस एक (0 गिनती .. 15) है और यह मूल्य से सभी कार्यों प्राप्त. आप के मामले constructs या बयान अगर का उपयोग करना चाहते हैं, के रूप में आप की तरह हो सकता है. एक डिबगिंग संकेत के रूप में: आप सिम्युलेटर में आंतरिक संकेतों (जैसे काउंटर मान) को प्रदर्शित कर सकते हैं. तुम भी द्वितीय Q.uartus SignalTap का उपयोग करने के लिए अपने सर्किट के हार्डवेयर डिबगिंग प्रदर्शन कर सकते हैं. विशेष रूप से दिलचस्प है, जब एक असली एडीसी interfacing. पुनश्च: मैं देख रहा हूँ कि आप 100 मेगाहर्ट्ज पर समय अनुकार चल रहे हैं. बेहतर होगा कि तुम 8 मेगाहर्ट्ज का उपयोग के रूप में चिप द्वारा अपेक्षित और भी आवश्यक सेटअप करने के लिए ध्यान देने और समय पकड़ चाहिए. यह बजाय बढ़ती इनपुट घड़ी बढ़त गिरने CONVST सेट की सिफारिश की है.
 
आप FvM धन्यवाद. 100Mhz के लिए, मैं बस उद्देश्य परीक्षण के लिए इस्तेमाल किया. 8MHz के लिए, यह 16 500kHz * है. हालांकि, एडीसी से पहले सर्किट (मोटर कनेक्शन: - - वर्तमान transducer इंस्ट्रूमेंटेशन amp - एडीसी - DE2) 50Hz है. कि गणना के लिए, यह है मैं curcuit की देखभाल करने की आवश्यकता है जो पहले 50 हर्ट्ज (च नमूना) है? यदि 50Hz का उपयोग करते हुए, यह 800Hz ही है. Diag से, यह convst तरह देखा falling_edge पर ट्रिगर है मैं भी अपने कोड में rising_edge लिखा. यह घड़ी देरी की वजह? है कि किसी भी सुविधा / Q'tus में विधि देरी को समाप्त कर सकते हैं? एचएम, एक और. कोई मुझे अलग VHDL फ़ाइल से 2 ब्लॉक आपस में कदम प्रदान कर सकते हैं? मैं ऑनलाइन उपयोगकर्ता tut के लिए, लेकिन यह नहीं था कि मुझे पता है एक ब्लॉक अनुसार बनाने के लिए कैसे पता मैं कैसे ब्लॉक कि अलग फ़ाइल में सहेजा गया है इनपुट कर सकते हैं. मैंने कोशिश की ब्लॉक कॉपी और इसे पेस्ट, लेकिन यह नहीं कर सकते फ़ाइल का पता लगाने जब मैं करने के लिए ब्लॉक से कोड खोलना चाहते हैं. (मैं भी योजनाबद्ध पर डबल क्लिक करके "डालने प्रतीक से ब्राउज़ करने की कोशिश की लेकिन यह भी खिचड़ी भाषा फ़ाइल का पता लगाने) आप उन्नत में धन्यवाद.
 
नमूना दरों के बारे में, यदि इनपुट संकेत 50 हर्ट्ज (सबसे अधिक संभावना एसी) है, आप के लिए यह एक काफी उच्च दर पर नमूना गणना आरएमएस, harmonics, whatsover उदाहरण चाहते हो सकता है. यह एक अलग विषय बुनियादी एडीसी FPGA अंतरफलक कोड को सीधे संबंधित नहीं है, मुझे लगता है. यदि आप केवल 50 (या संभवतः 1 kHz) हर्ट्ज नमूना दर की जरूरत है, तो आप एक अलग एडीसी प्रकार का प्रयोग करेंगे. हाँ, वहाँ के बारे में 5 मानक FPGA के साथ एक एनएस उत्पादन देरी घड़ी है. हालांकि, अगर आप एडीसी CLK और FPGA से CONVST स्रोत, रिश्तेदार देरी छोटा है. बल्कि एक छोटे से 8 मेगाहर्ट्ज घड़ी आवृत्ति में, समय व्यवस्थित FPGA के व्यवहार का उपयोग देरी समायोजन के बिना काम करना चाहिए. बढ़ती या गिरने घड़ी बढ़त का चयन सबसे अधिक संभावना पर्याप्त है. घटकों और उदाहरणों के साथ कार्य करना VHDL पाठ्य पुस्तकों का एक विषय है, वहाँ एक बहुत वहाँ बाहर है.
 

Welcome to EDABoard.com

Sponsor

Back
Top