FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Steps
FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Steps
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

გირჩევთ: