FPGA циклону IV DueProLogic - баскыч жана LED: 5 кадам
FPGA циклону IV DueProLogic - баскыч жана LED: 5 кадам
Anonim
FPGA циклону IV DueProLogic - баскыч жана LED
FPGA циклону IV DueProLogic - баскыч жана LED

Бул үйрөткүчтө биз тышкы LED схемасын башкаруу үчүн FPGAны колдонобуз. Биз төмөнкү милдеттерди ишке ашырганы жатабыз

(A) LEDди башкаруу үчүн FPGA Cyclone 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, // Баскыч баскычтары

киргизүү зымы UBB // Баскыч баскычтарын которгучтар

дайындоо 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 Blinky баштоо

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

/*

дайыма @(posedge CLK_66 же negstge RST)

баштоо

эгер (! RST)

start_blinky <= 1'b0;

башка

баштоо

эгер (control_register [7: 4]> 0)

start_blinky <= 1'b1;

башка

start_blinky <= 1'b0;

аяктоо

аяктоо

*/

reg [31: 0] ex;

баштапкы баштоо

ex <= 32'b0;

start_blinky <= 1'b0;

аяктоо

дайыма @(posedge CLK_66)

баштоо

ex <= ex + 1'b1;

эгер (мис.> 100000000) // жарк этүү/өчүрүү ~ 1,6 секунд, саат 66МГц

баштоо

start_blinky <=! start_blinky;

ex <= 32'b0;

аяктоо

аяктоо

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

// LED кечигүү таймеринин эсептегичи

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

/*

дайыма @(pozedge CLK_66 же negstge 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, эч кандай ката билдирүүсү түзүлбөшү керек.

Эгерде сиз бир нече казык жөнүндө ката билдирүүсүн алсаңыз. Тапшырмаларга өтүңүз -> Аспап -> Түзмөк жана Киргизүү Опциялары -> Эки Максаттуу Пиндер -> тиешелүү пиндин маанисин "Кадимки I/O катары колдонуу" деп өзгөртүңүз.

Түзүлгөндөн кийин, сиз түздөн -түз pof чыгаруу файлын алышыңыз керек. Эгерде сиздин программалык камсыздооңуз заманбап болбосо, сиз соф файлын гана ала аласыз. Бул болгондо, Quartus'тогу "Файлды" чыкылдатыңыз -> "программалоо файлдарын айландыруу". Кызыл кутучалар менен белгиленген орнотууларды өзгөртүңүз.

5 -кадам: Кел, аны сынап көрөлү

Кантсе да, иштеши керек !!! Сары LED дайыма күйүп турат. Кызыл LED жаркырап турат. В баскычын бассаңыз, көк LED өчөт. А баскычын бассаңыз жашыл LED күйөт

Сунушталууда: