विषयसूची:

FPGA चक्रवात IV ड्यूप्रोलॉजिक - पुश बटन और एलईडी: 5 कदम
FPGA चक्रवात IV ड्यूप्रोलॉजिक - पुश बटन और एलईडी: 5 कदम

वीडियो: FPGA चक्रवात IV ड्यूप्रोलॉजिक - पुश बटन और एलईडी: 5 कदम

वीडियो: FPGA चक्रवात IV ड्यूप्रोलॉजिक - पुश बटन और एलईडी: 5 कदम
वीडियो: Прошивка FPGA Cyclone IV 2024, नवंबर
Anonim
FPGA चक्रवात IV ड्यूप्रोलॉजिक - पुश बटन और एलईडी
FPGA चक्रवात IV ड्यूप्रोलॉजिक - पुश बटन और एलईडी

इस ट्यूटोरियल में, हम बाहरी एलईडी सर्किट को नियंत्रित करने के लिए FPGA का उपयोग करने जा रहे हैं। हम निम्नलिखित कार्यों को लागू करने जा रहे हैं

(ए) एलईडी को नियंत्रित करने के लिए एफपीजीए चक्रवात IV ड्यूप्रोलॉजिक पर पुश बटन का उपयोग करें।

(बी) फ्लैश एलईडी समय-समय पर चालू और बंद करें

वीडियो डेमो

लैब मेनू:

चरण 1: इलेक्ट्रॉनिक सर्किट बनाएँ

चरण 2: पिन प्लानर की जांच करें और वेरिलोग कोड संपादित करें

पिन प्लानर की जांच करें और वेरिलोग कोड संपादित करें
पिन प्लानर की जांच करें और वेरिलोग कोड संपादित करें

चरण 3: वेरिलोग कोड संपादित करें

वेरिलोग कोड संपादित करें
वेरिलोग कोड संपादित करें

जब आप FPGA DueProLogic खरीदते हैं, तो आपको एक DVD प्राप्त करनी चाहिए। "Projects_HDL" खोलने के बाद, आपको मूल कोड फ़ाइल देखनी चाहिए

हाइलाइट किया गया कोड जोड़ें। यह I/O पोर्ट्स को रजिस्टर करता है और पोर्ट्स को नंबर असाइन करता है।

आउटपुट वायर [7:0] XIO_1, //XIO -- D2-D9

आउटपुट वायर [5:0] XIO_2, //XIO -- D10-D12

आउटपुट वायर [5:0] XIO_3, //XIO -- D22-D29

इनपुट वायर [5:0] XIO_4, //XIO -- D30-D37

इनपुट वायर [५:०] XIO_5, //XIO -- D38-D45

आउटपुट वायर [४:०] XIO_6_OUT, //XIO -- D46-D53

इनपुट वायर [३१:५] XIO_6, //XIO -- D46-D53

आउटपुट वायर [२:०] XIO_7, //XIO -- D69, D70, D71, D74, D75, D76

इनपुट वायर UBA, // पुश बटन स्विच

इनपुट वायर UBB // पुश बटन स्विच

असाइन करें XIO_1[3] = start_stop_cntrl;

असाइन करें XIO_2[1] = start_blinky; // एलईडी फ्लैश एलईडी चालू और बंद

असाइन करें XIO_2[2] = 1'b1; // आउटपुट हाई

असाइन करें XIO_2[3] = ~UBA; // पुश बटन ए

असाइन करें XIO_2[4] = UBB; // पुश बटन बी

असाइन करें c_enable = XIO_5[2];

LEDExt = XIO_5 [5] असाइन करें;

फिर हमें विलंब टाइमर सेट करना होगा। मूल टाइमर कोड पर टिप्पणी करें और एक नया टाइमर फ़ंक्शन लिखें

//-----------------------------------------------

// एलईडी ब्लिंकी स्टार्ट

//-----------------------------------------------

/*

हमेशा @(पोज्ड CLK_66 या negedge RST)

शुरू

अगर (! आरएसटी)

start_blinky <= 1'b0;

अन्यथा

शुरू

अगर (कंट्रोल_रजिस्टर [7:4]> 0)

start_blinky <= 1'b1;

अन्यथा

start_blinky <= 1'b0;

समाप्त

समाप्त

*/

reg [३१:०] पूर्व;

प्रारंभिक शुरुआत

पूर्व <= 32'b0;

start_blinky <= 1'b0;

समाप्त

हमेशा @(पोज CLK_66)

शुरू

उदा <= उदा + 1'b1;

अगर (पूर्व> 100000000) // फ्लैश चालू / बंद ~ 1.6 सेकंड, घड़ी 66 मेगाहर्ट्ज

शुरू

start_blinky <= !start_blinky;

पूर्व <= 32'b0;

समाप्त

समाप्त

//-----------------------------------------------

// एलईडी देरी टाइमर काउंटर

//-----------------------------------------------

/*

हमेशा @(पोज्ड CLK_66 या negedge RST)

शुरू

अगर (! आरएसटी)

LED_delay_counter <= TIMER_LOW_LIMIT;

अन्यथा

शुरू

अगर (राज्य[SELECT_MODE])

LED_delay_counter <= टाइमर_वैल्यू;

और अगर (राज्य [WAIT_FOR_TIMER])

LED_delay_counter <= led_delay_counter - 1'd1;

समाप्त

समाप्त*/

चरण 4: वेरिलोग कोड संकलित करें

वेरिलोग कोड संकलित करें
वेरिलोग कोड संकलित करें
वेरिलोग कोड संकलित करें
वेरिलोग कोड संकलित करें

क्वार्टस में "स्टार्ट कंपाइलेशन" दबाएं, कोई त्रुटि संदेश उत्पन्न नहीं होना चाहिए।

यदि आपको एकाधिक पिन के बारे में त्रुटि संदेश प्राप्त होता है। असाइनमेंट पर जाएं -> डिवाइस -> डिवाइस और पिन विकल्प -> दोहरे उद्देश्य वाले पिन -> उपयुक्त पिन के मान को "नियमित I/O के रूप में उपयोग करें" में बदलें।

संकलन के बाद, आपको सीधे pof आउटपुट फ़ाइल मिलनी चाहिए। यदि आपका सॉफ्टवेयर अप-टू-डेट नहीं है, तो आपको केवल सॉफ्ट फाइल ही मिल सकती है। जब ऐसा होता है, तो क्वार्टस में "फाइल" पर क्लिक करें -> "प्रोग्रामिंग फाइलों को कनवर्ट करें"। लाल बक्सों द्वारा चिह्नित सेटिंग्स को बदलें।

चरण 5: आइए इसे आजमाएं

आखिरकार, यह काम करना चाहिए !!! पीली एलईडी हमेशा चालू रहती है। लाल एलईडी चमकती है। यदि आप बटन बी दबाते हैं तो नीली एलईडी बंद हो जाती है। यदि आप बटन ए दबाते हैं तो हरी एलईडी चालू हो जाती है

सिफारिश की: