Სარჩევი:

FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Steps
FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Steps

ვიდეო: FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Steps

ვიდეო: FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Steps
ვიდეო: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, ნოემბერი
Anonim
FPGA Cyclone IV DueProLogic - Push Button & LED
FPGA Cyclone IV DueProLogic - Push Button & LED

ამ გაკვეთილში, ჩვენ ვაპირებთ გამოვიყენოთ FPGA გარე LED წრედის გასაკონტროლებლად. ჩვენ ვაპირებთ შემდეგი ამოცანების განხორციელებას

(A) გამოიყენეთ ღილაკები FPGA Cyclone IV DuePrologic– ზე LED– ის გასაკონტროლებლად.

(B) პერიოდულად ჩართეთ და გამორთეთ Flash LED

ვიდეო დემო

ლაბორატორიული მენიუ:

ნაბიჯი 1: შექმენით ელექტრონული წრე

ნაბიჯი 2: შეამოწმეთ Pin Planner და შეცვალეთ Verilog კოდი

შეამოწმეთ Pin Planner და შეცვალეთ Verilog კოდი
შეამოწმეთ Pin Planner და შეცვალეთ Verilog კოდი

ნაბიჯი 3: შეცვალეთ 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 Switches

შეყვანის მავთული UBB // Push Button კონცენტრატორები

მიანიჭეთ XIO_1 [3] = start_stop_cntrl;

მიანიჭე XIO_2 [1] = დაწყება_ მოციმციმე; // LED flash LED ჩართული და გამორთული

მინიჭება XIO_2 [2] = 1'b1; // გამომავალი მაღალი

დავალება 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;

სხვა

დაწყება

თუ (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;

თუ (ყოფილი> 100000000) // ჩართვა/გამორთვა ~ 1.6 წამი, საათი 66 MHz

დაწყება

start_blinky <=! start_blinky;

ex <= 32'b0;

დასასრული

დასასრული

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

// LED დაყოვნების ტაიმერის მრიცხველი

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

/*

ყოველთვის @(posedge CLK_66 ან negedge 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 Code

შეადგინეთ Verilog Code
შეადგინეთ Verilog Code
შეადგინეთ Verilog Code
შეადგინეთ Verilog Code

დააჭირეთ ღილაკს "შედგენის დაწყება" Quartus– ში, შეცდომის შეტყობინება არ უნდა იყოს გენერირებული.

თუ თქვენ მიიღებთ შეცდომის შეტყობინებას მრავალი ქინძისთავის შესახებ. გადადით დავალებებზე -> მოწყობილობა -> მოწყობილობისა და პინის პარამეტრები -> ორმაგი დანიშნულების ქინძისთავები -> შეცვალეთ შესაბამისი პინის მნიშვნელობა "გამოიყენეთ როგორც რეგულარული I/O".

შედგენის შემდეგ, თქვენ პირდაპირ უნდა მიიღოთ pof გამომავალი ფაილი. თუ თქვენი პროგრამული უზრუნველყოფა არ არის უახლესი, შეგიძლიათ მიიღოთ მხოლოდ sof ფაილი. როდესაც ეს მოხდება, დააწკაპუნეთ "ფაილზე" Quartus -> "პროგრამირების ფაილების გადაყვანა". შეცვალეთ წითელი ყუთებით მონიშნული პარამეტრები.

ნაბიჯი 5: მოდით ვცადოთ

ყოველივე ამის შემდეგ, ის უნდა იმუშაოს !!! ყვითელი LED ყოველთვის ჩართულია. წითელი LED ანათებს. ლურჯი LED გამორთულია თუ დააჭირეთ ღილაკს B. მწვანე LED ჩართულია თუ დააჭერთ ღილაკს A

გირჩევთ: