এফপিজিএ সাইক্লোন IV ডিউপ্রোলজিক - পুশ বাটন এবং এলইডি: 5 টি ধাপ
এফপিজিএ সাইক্লোন IV ডিউপ্রোলজিক - পুশ বাটন এবং এলইডি: 5 টি ধাপ
Anonim
এফপিজিএ সাইক্লোন IV ডিউপ্রোলজিক - পুশ বাটন এবং এলইডি
এফপিজিএ সাইক্লোন IV ডিউপ্রোলজিক - পুশ বাটন এবং এলইডি

এই টিউটোরিয়ালে, আমরা বহিরাগত LED সার্কিট নিয়ন্ত্রণ করতে FPGA ব্যবহার করতে যাচ্ছি। আমরা নিম্নলিখিত কাজগুলি বাস্তবায়ন করতে যাচ্ছি

(A) LED নিয়ন্ত্রণ করতে FPGA Cyclone IV DuePrologic এ পুশ বোতাম ব্যবহার করুন।

(B) ফ্ল্যাশ LED পর্যায়ক্রমে চালু এবং বন্ধ

ভিডিও ডেমো

ল্যাব মেনু:

ধাপ 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

ইনপুট তার [5: 0] XIO_5, // XIO-D38-D45

আউটপুট তার [4: 0] XIO_6_OUT, // XIO-D46-D53

ইনপুট তার [31: 5] XIO_6, // XIO-D46-D53

আউটপুট তার [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

ইনপুট তারের UBA, // পুশ বোতাম সুইচ

ইনপুট তার UBB // পুশ বোতাম সুইচ

XIO_1 [3] = start_stop_cntrl বরাদ্দ করুন;

XIO_2 [1] = start_blinky বরাদ্দ করুন; // LED ফ্ল্যাশ LED চালু এবং বন্ধ

XIO_2 [2] = 1'b1 বরাদ্দ করুন; // আউটপুট উচ্চ

নিযুক্ত করুন XIO_2 [3] = ~ UBA; // পুশ বোতাম এ

নিযুক্ত করুন XIO_2 [4] = UBB; // পুশ বোতাম বি

বরাদ্দ c_enable = XIO_5 [2];

LEDExt = XIO_5 [5] বরাদ্দ করুন;

তারপর আমাদের একটি বিলম্ব টাইমার সেট করতে হবে। মূল টাইমার কোড মন্তব্য করুন এবং একটি নতুন টাইমার ফাংশন লিখুন

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

// LED ঝলকানি শুরু

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

/*

সর্বদা @(CLK_66 বা negedge RST পোজ)

শুরু

যদি (! RST)

start_blinky <= 1'b0;

অন্য

শুরু

যদি (control_register [7: 4]> 0)

start_blinky <= 1'b1;

অন্য

start_blinky <= 1'b0;

শেষ

শেষ

*/

reg [31: 0] প্রাক্তন;

প্রাথমিক শুরু

প্রাক্তন <= 32'b0;

start_blinky <= 1'b0;

শেষ

সর্বদা @(পোজ CLK_66)

শুরু

ex <= ex + 1'b1;

যদি (ex> 100000000) // ফ্ল্যাশ অন/অফ ~ 1.6 সেকেন্ড, ঘড়ি 66MHz

শুরু

start_blinky <=! start_blinky;

প্রাক্তন <= 32'b0;

শেষ

শেষ

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

// LED বিলম্ব টাইমার কাউন্টার

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

/*

সর্বদা @(পোজ CLK_66 বা negedge RST)

শুরু

যদি (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

অন্য

শুরু

যদি (রাষ্ট্র [SELECT_MODE])

led_delay_counter <= timer_value;

অন্যথায় যদি ([WAIT_FOR_TIMER] রাষ্ট্র)

led_delay_counter <= led_delay_counter - 1'd1;

শেষ

শেষ*/

ধাপ 4: ভেরিলগ কোড কম্পাইল করুন

ভেরিলগ কোড কম্পাইল করুন
ভেরিলগ কোড কম্পাইল করুন
ভেরিলগ কোড কম্পাইল করুন
ভেরিলগ কোড কম্পাইল করুন

কোয়ার্টাসে "স্টার্ট কম্পাইলেশন" টিপুন, কোন ত্রুটি বার্তা তৈরি করা উচিত নয়।

যদি আপনি একাধিক পিন সম্পর্কে ত্রুটি বার্তা পান। Assignments -> Device -> Device and Pin Options -> Dual -Purpose Pins -> যথাযথ পিনের মান পরিবর্তন করে "নিয়মিত I/O হিসাবে ব্যবহার করুন"।

সংকলনের পরে, আপনার সরাসরি pof আউটপুট ফাইল পাওয়া উচিত। যদি আপনার সফটওয়্যারটি আপ-টু-ডেট না হয়, আপনি শুধুমাত্র সফ ফাইল পেতে পারেন। যখন এটি ঘটে, কোয়ার্টাসে "ফাইল" ক্লিক করুন -> "প্রোগ্রামিং ফাইল রূপান্তর করুন"। লাল বাক্স দ্বারা চিহ্নিত করা সেটিংস পরিবর্তন করুন।

ধাপ 5: আসুন এটি চেষ্টা করি

সর্বোপরি, এটি কাজ করা উচিত !!! হলুদ LED সবসময় চালু থাকে। লাল LED ঝলমল করছে। আপনি যদি বোতাম বি টিপেন তবে নীল LED বন্ধ হয়ে যায় যদি আপনি A বোতাম টিপেন তবে সবুজ LED চালু থাকে

প্রস্তাবিত: