FPGA циклоны IV DueProLogic - түймешігі мен жарық диоды: 5 қадам
FPGA циклоны IV DueProLogic - түймешігі мен жарық диоды: 5 қадам
Anonim
FPGA циклоны IV DueProLogic - басу түймесі мен жарық диоды
FPGA циклоны IV DueProLogic - басу түймесі мен жарық диоды

Бұл оқулықта біз сыртқы жарықдиодты схеманы басқару үшін FPGA қолданамыз. Біз келесі міндеттерді жүзеге асырғалы отырмыз

(A) Жарықдиодты басқару үшін FPGA IV DuePrologic циклонындағы түймелерді пайдаланыңыз.

(B) Жарықдиодты жарық диоды мезгіл -мезгіл қосылады және өшеді

Бейне демо

Зертхана мәзірі:

1 -қадам: Электрондық схеманы құру

2 -қадам: Pin Planner тексеріңіз және Verilog кодын өңдеңіз

Pin Planner тексеріңіз және Verilog кодын өңдеңіз
Pin Planner тексеріңіз және Verilog кодын өңдеңіз

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, // Push Button қосқыштары

кіріс сымы UBB // Push Button қосқыштары

тағайындау XIO_1 [3] = start_stop_cntrl;

тағайындау XIO_2 [1] = start_blinky; // жарықдиодты жарықдиодты жарықдиодты қосу және өшіру

тағайындау XIO_2 [2] = 1'b1; // шығару HIGH

тағайындау XIO_2 [3] = ~ UBA; // А түймесін басыңыз

тағайындау XIO_2 [4] = UBB; // B түймесін басыңыз

тағайындау c_enable = XIO_5 [2];

LEDExt = XIO_5 тағайындау [5];

Содан кейін біз кешіктіру таймерін орнатуымыз керек. Таймердің бастапқы кодына түсініктеме беріңіз және жаңа таймер функциясын жазыңыз

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

// Жыпылықтайтын жарық диоды

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

/*

әрқашан @(CLK_66 белгісін қойыңыз немесе RST қабылдамаңыз)

баста

егер (! RST)

start_blinky <= 1'b0;

басқа

баста

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

start_blinky <= 1'b1;

басқа

start_blinky <= 1'b0;

Соңы

Соңы

*/

reg [31: 0] ex;

бастапқы бастама

мысалы <= 32'b0;

start_blinky <= 1'b0;

Соңы

әрқашан @(сурет CLK_66)

баста

ex <= ex + 1'b1;

егер (мысалы> 100000000) // жыпылықтау/өшіру ~ 1,6 секунд, сағат 66 МГц

баста

start_blinky <=! start_blinky;

мысалы <= 32'b0;

Соңы

Соңы

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

// жарық диодты кідіріс таймерінің есептегіші

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

/*

әрқашан @(CLK_66 белгісін қойыңыз немесе RST қабылдамаңыз)

баста

егер (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

басқа

баста

егер (күй [SELECT_MODE])

led_delay_counter <= таймер_мәні;

егер басқа ([WAIT_FOR_TIMER] күйі)

led_delay_counter <= led_delay_counter - 1'd1;

Соңы

Соңы*/

4 -қадам: Verilog кодын құрастырыңыз

Verilog кодын құрастырыңыз
Verilog кодын құрастырыңыз
Verilog кодын құрастырыңыз
Verilog кодын құрастырыңыз

Quartus -та «Компиляцияны бастау» түймесін басыңыз, қате туралы хабарлама жасалмауы керек.

Егер сіз бірнеше түйреуіш туралы қате туралы хабар алсаңыз. Тапсырмалар -> Құрылғы -> Құрылғы мен түйреуіштер опциялары -> Қос мақсатты түйреуіштер тармағына өтіңіз -тиісті түйреуіштің мәнін «Кәдімгі енгізу -шығару ретінде пайдалану» етіп өзгертіңіз.

Компиляциядан кейін сіз pof шығыс файлын тікелей алуыңыз керек. Егер сіздің бағдарламалық жасақтамаңыз жаңартылмаған болса, сіз тек соф файлын ала аласыз. Бұл кезде Quartus ішіндегі «Файл» түймесін басыңыз -> «бағдарламалау файлдарын түрлендіру». Қызыл жолақтармен белгіленген параметрлерді өзгертіңіз.

5 -қадам: көрейік

Ақыр соңында, бұл жұмыс істеуі керек !!! Сары жарық диоды үнемі жанып тұрады. Қызыл жарық диоды жыпылықтайды. Егер B түймешігін бассаңыз, көк жарық диоды өшеді, егер А түймешігін бассаңыз, жасыл жарық диоды қосылады

Ұсынылған: