Агуулгын хүснэгт:

FPGA циклон IV DueProLogic - товчлуур ба LED: 5 алхам
FPGA циклон IV DueProLogic - товчлуур ба LED: 5 алхам

Видео: FPGA циклон IV DueProLogic - товчлуур ба LED: 5 алхам

Видео: FPGA циклон IV DueProLogic - товчлуур ба LED: 5 алхам
Видео: FPGA-макетная плата ALTERA Cyclone IV EP4CE6,23 ноября 2022 г. 2024, Арваннэгдүгээр
Anonim
FPGA циклон IV DueProLogic - товчлуур ба LED
FPGA циклон IV DueProLogic - товчлуур ба LED

Энэхүү гарын авлагад бид гадаад LED хэлхээг хянахын тулд FPGA -ийг ашиглах гэж байна. Бид дараах ажлуудыг хэрэгжүүлэх гэж байна

(A) LED -ийг хянахын тулд FPGA циклон IV DuePrologic дээрх товчлууруудыг ашиглана уу.

(B) Флэш LED үе үе асаж, унтардаг

Видео демо

Лабораторийн цэс:

Алхам 1: Цахилгаан хэлхээг бий болгох

Алхам 2: Pin Planner -ийг шалгаад Verilog кодыг засварлана уу

Pin Planner -ийг шалгаад Verilog кодыг засварлана уу
Pin Planner -ийг шалгаад Verilog кодыг засварлана уу

Алхам 3: Verilog кодыг засах

Verilog кодыг засах
Verilog кодыг засах

Та 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, // Push Button Switch

оролтын утас UBB // Push Button Switch

XIO_1 [3] = start_stop_cntrl;

XIO_2 [1] = start_blinky оноох; // LED флэш LED асаах ба унтраах

оноох XIO_2 [2] = 1'b1; // гаралт HIGH

оноох XIO_2 [3] = ~ UBA; // А товчийг дарна уу

оноох XIO_2 [4] = UBB; // B товчлуурыг дарна уу

c_enable = XIO_5 [2] оноох;

LEDExt = XIO_5 [5] оноох;

Дараа нь бид саатал таймер тохируулах ёстой. Таймерын анхны кодыг тайлбарлаж, шинэ таймер функцийг бичнэ үү

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

// LED анивчсан эхлэл

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

/*

үргэлж @(posledge CLK_66 эсвэл RST -ийг хасах)

Эхлэх

хэрэв (! RST)

start_blinky <= 1'b0;

өөр

Эхлэх

if (control_register [7: 4]> 0)

start_blinky <= 1'b1;

өөр

start_blinky <= 1'b0;

Төгсгөл

Төгсгөл

*/

рег [31: 0] хуучин;

анхны эхлэл

жишээ нь <= 32'b0;

start_blinky <= 1'b0;

Төгсгөл

үргэлж @(зурагт CLK_66)

Эхлэх

ex <= ex + 1'b1;

хэрэв (жишээ нь> 100000000) // анивчих/унтраах ~ 1.6 секунд, цаг 66МГц

Эхлэх

start_blinky <=! start_blinky;

жишээ нь <= 32'b0;

Төгсгөл

Төгсгөл

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

// LED саатал таймер тоолуур

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

/*

үргэлж @(posledge CLK_66 эсвэл 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: Verilog кодыг эмхэтгэх

Verilog кодыг эмхэтгэх
Verilog кодыг эмхэтгэх
Verilog кодыг эмхэтгэх
Verilog кодыг эмхэтгэх

Quartus дахь "Эмхэтгэлийг эхлүүлэх" товчийг дарна уу, ямар ч алдааны мэдэгдэл үүсгэхгүй.

Хэрэв та олон тээглүүрийн талаар алдааны мессеж хүлээн авбал. Даалгавар -> Төхөөрөмж -> Төхөөрөмж ба зүү сонголтууд -> Хос зориулалттай зүү рүү очоод> зохих зүүний утгыг "Ердийн оролт/гаралт болгон ашиглах" болгож өөрчилнө үү.

Хөрвүүлсний дараа та pof гаралтын файлыг шууд авах ёстой. Хэрэв таны програм хангамж шинэчлэгдээгүй бол та зөвхөн соф файл авах боломжтой. Ийм зүйл тохиолдвол Quartus дээрх "Файл" дээр дарна уу -> "програмчлалын файлуудыг хөрвүүлэх". Улаан нүдээр тэмдэглэгдсэн тохиргоог өөрчилнө үү.

Алхам 5: Үүнийг туршаад үзье

Эцсийн эцэст энэ нь ажиллах ёстой !!! Шар LED үргэлж асдаг. Улаан LED анивчдаг. Хэрэв та В товчлуурыг дарвал цэнхэр LED унтарна. Хэрэв та А товчлуурыг дарвал ногоон гэрэл асна

Зөвлөмж болгож буй: