فهرست مطالب:

FPGA Cyclone IV DueProLogic - دکمه فشار و LED: 5 مرحله
FPGA Cyclone IV DueProLogic - دکمه فشار و LED: 5 مرحله

تصویری: FPGA Cyclone IV DueProLogic - دکمه فشار و LED: 5 مرحله

تصویری: FPGA Cyclone IV DueProLogic - دکمه فشار و LED: 5 مرحله
تصویری: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, نوامبر
Anonim
FPGA Cyclone IV DueProLogic - دکمه فشار و LED
FPGA Cyclone IV DueProLogic - دکمه فشار و LED

در این آموزش ، ما قصد داریم از FPGA برای کنترل مدار LED خارجی استفاده کنیم. ما قصد داریم کارهای زیر را اجرا کنیم

(الف) از دکمه های فشار روی FPGA Cyclone IV DuePrologic برای کنترل LED استفاده کنید.

(B) LED فلش به صورت دوره ای روشن و خاموش می شود

نمایشی ویدئویی

منوی آزمایشگاه:

مرحله 1: ایجاد مدار الکترونیکی

مرحله 2: Pin Planner و Edit Verilog Code را بررسی کنید

Pin Planner و Edil Verilog Code را بررسی کنید
Pin Planner و Edil Verilog Code را بررسی کنید

مرحله 3: کد Verilog را ویرایش کنید

ویرایش کد Verilog
ویرایش کد Verilog

هنگام خرید FPGA DueProLogic ، باید یک DVD دریافت کنید. پس از باز کردن "Projects_HDL" ، باید فایل کد اصلی را مشاهده کنید

کد برجسته شده را اضافه کنید. پورت های ورودی/خروجی را ثبت کرده و شماره هایی را به پورت ها اختصاص می دهد.

سیم خروجی [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 ؛ // خروجی HIGH

اختصاص XIO_2 [3] = ~ UBA؛ // دکمه A را فشار دهید

اختصاص XIO_2 [4] = UBB ؛ // دکمه B را فشار دهید

اختصاص c_enable = XIO_5 [2]؛

اختصاص LEDExt = XIO_5 [5] ؛

سپس باید تایمر تاخیر را تنظیم کنیم. کد تایمر اصلی را کامنت کنید و یک تابع تایمر جدید بنویسید

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

// شروع LED چشمک زن

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

/*

همیشه @(posedge CLK_66 یا negedge RST)

شروع

اگر (! RST)

start_blinky <= 1'b0؛

دیگری

شروع

if (control_register [7: 4]> 0)

start_blinky <= 1'b1؛

دیگری

start_blinky <= 1'b0؛

پایان

پایان

*/

reg [31: 0] سابق ؛

شروع اولیه

ex <= 32'b0؛

start_blinky <= 1'b0؛

پایان

همیشه @(posedge CLK_66)

شروع

ex <= ex + 1'b1؛

if (ex> 100000000) // فلاش روشن/خاموش ~ 1.6 ثانیه ، کلاک 66 مگاهرتز

شروع

start_blinky <=! start_blinky؛

ex <= 32'b0؛

پایان

پایان

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

// شمارنده تایمر تاخیری LED

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

/*

همیشه @(posedge CLK_66 یا negedge RST)

شروع

اگر (! RST)

led_delay_counter <= TIMER_LOW_LIMIT؛

دیگری

شروع

if (وضعیت [SELECT_MODE])

led_delay_counter <= timer_value؛

else if (وضعیت [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1؛

پایان

پایان*/

مرحله 4: کد Verilog را کامپایل کنید

کامپایل کد Verilog
کامپایل کد Verilog
کامپایل کد Verilog
کامپایل کد Verilog

"شروع گردآوری" را در Quartus فشار دهید ، هیچ پیام خطایی ایجاد نمی شود.

در صورت دریافت پیام خطا در مورد چندین پین. به Assignments -> Device -> Device and Pin Options -> Dual -Purple Pins -بروید و مقدار پین مناسب را به "Use as I/O معمولی" تغییر دهید.

پس از کامپایل ، باید فایل خروجی pof را مستقیماً دریافت کنید. اگر نرم افزار شما به روز نیست ، ممکن است فقط فایل sof دریافت کنید. هنگامی که این اتفاق می افتد ، روی "فایل" در Quartus -> "تبدیل فایل های برنامه نویسی" کلیک کنید. تنظیماتی را که با کادر قرمز مشخص شده اند تغییر دهید.

مرحله 5: بیایید آن را امتحان کنیم

بالاخره باید کار کنه !!! LED زرد همیشه روشن است. LED قرمز چشمک می زند. اگر دکمه B. را فشار دهید LED آبی خاموش می شود اگر دکمه A را فشار دهید LED سبز روشن می شود

توصیه شده: