สารบัญ:
- ขั้นตอนที่ 1: สร้างวงจรอิเล็กทรอนิกส์
- ขั้นตอนที่ 2: ตรวจสอบ Pin Planner และแก้ไข Verilog Code
- ขั้นตอนที่ 3: แก้ไขรหัส Verilog
- ขั้นตอนที่ 4: รวบรวมรหัส Verilog
- ขั้นตอนที่ 5: มาลองกันเถอะ
วีดีโอ: FPGA Cyclone IV DueProLogic - ปุ่มกดและไฟ LED: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ในบทช่วยสอนนี้ เราจะใช้ FPGA เพื่อควบคุมวงจร LED ภายนอก เราจะดำเนินการตามภารกิจต่อไปนี้
(A) ใช้ปุ่มกดบน FPGA Cyclone IV DuePrologic เพื่อควบคุม LED
(B) เปิดและปิดแฟลช LED เป็นระยะ
วีดีโอสาธิต
เมนูแล็บ:
ขั้นตอนที่ 1: สร้างวงจรอิเล็กทรอนิกส์
ขั้นตอนที่ 2: ตรวจสอบ Pin Planner และแก้ไข Verilog Code
ขั้นตอนที่ 3: แก้ไขรหัส Verilog
เมื่อคุณซื้อ FPGA DueProLogic คุณควรได้รับดีวีดี หลังจากคุณเปิด "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 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 หรือละเลย RST)
เริ่ม
ถ้า(!RST)
start_blinky <= 1'b0;
อื่น
เริ่ม
ถ้า(control_register[7:4] > 0)
start_blinky <= 1'b1;
อื่น
start_blinky <= 1'b0;
จบ
จบ
*/
reg [31:0] เช่น;
เริ่มแรก
อดีต <= 32'b0;
start_blinky <= 1'b0;
จบ
เสมอ @(โพสท่า CLK_66)
เริ่ม
อดีต <= อดีต + 1'b1;
if(ex > 100000000) //เปิด/ปิดแฟลช ~1.6 วินาที, นาฬิกา 66MHz
เริ่ม
start_blinky <= !start_blinky;
อดีต <= 32'b0;
จบ
จบ
//-----------------------------------------------
// LED Delay Timer Counter
//-----------------------------------------------
/*
@ เสมอ (ถูกวาง CLK_66 หรือละเลย RST)
เริ่ม
ถ้า(!RST)
led_delay_counter <= TIMER_LOW_LIMIT;
อื่น
เริ่ม
ถ้า(สถานะ[SELECT_MODE])
led_delay_counter <= timer_value;
อื่น if(state[WAIT_FOR_TIMER])
led_delay_counter <= led_delay_counter - 1'd1;
จบ
จบ*/
ขั้นตอนที่ 4: รวบรวมรหัส Verilog
กด "เริ่มการรวบรวม" ใน Quartus ไม่ควรสร้างข้อความแสดงข้อผิดพลาด
หากคุณได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับพินหลายตัว ไปที่ Assignments -> Device -> Device and Pin Options -> Dual-Purpose Pins -> เปลี่ยนค่าของพินที่เหมาะสมเป็น "ใช้เป็น I/O ปกติ"
หลังจากคอมไพล์แล้ว คุณควรได้รับไฟล์เอาต์พุต pof โดยตรง หากซอฟต์แวร์ของคุณไม่ทันสมัย คุณอาจได้รับไฟล์ sof เท่านั้น เมื่อมันเกิดขึ้น คลิก "ไฟล์" ใน Quartus -> "แปลงไฟล์การเขียนโปรแกรม" เปลี่ยนการตั้งค่าที่ทำเครื่องหมายด้วยกล่องสีแดง
ขั้นตอนที่ 5: มาลองกันเถอะ
ท้ายที่สุดมันควรจะทำงาน !!! ไฟ LED สีเหลืองติดสว่างตลอดเวลา ไฟ LED สีแดงกะพริบ ไฟ LED สีฟ้าจะดับลงหากคุณกดปุ่ม B ไฟ LED สีเขียวจะเปิดขึ้นหากคุณกดปุ่ม A
แนะนำ:
FPGA Cyclone IV DueProLogic ควบคุมกล้อง Raspberry Pi: 5 ขั้นตอน
FPGA Cyclone IV DueProLogic ควบคุมกล้อง Raspberry Pi: แม้ว่า FPGA DueProLogic จะได้รับการออกแบบอย่างเป็นทางการสำหรับ Arduino แต่เราจะทำให้ FPGA และ Raspberry Pi 4B สื่อสารกันได้ มีการใช้งานสามงานในบทช่วยสอนนี้: (A) กดปุ่มสองปุ่มบนพร้อมกัน FPGA เพื่อพลิกมุมของ
FPGA Cyclone IV DueProLogic ควบคุมเซอร์โวมอเตอร์: 4 ขั้นตอน
FPGA Cyclone IV DueProLogic ควบคุมเซอร์โวมอเตอร์: ในบทช่วยสอนนี้ เราจะเขียนโค้ด Verilog เพื่อควบคุมเซอร์โวมอเตอร์ เซอร์โว SG-90 ผลิตโดย Waveshare เมื่อคุณซื้อเซอร์โวมอเตอร์ คุณอาจได้รับแผ่นข้อมูลที่แสดงแรงดันไฟฟ้าขณะทำงาน แรงบิดสูงสุด และ Pu
เกม Arduino Cyclone: 5 ขั้นตอน (พร้อมรูปภาพ)
เกม Arduino Cyclone: ฉันไม่เคยเล่นเกมอาเขตไซโคลนจริง ๆ แต่ฉันชอบแนวคิดที่จะเล่นกับเวลาตอบสนองของเรา ฉันออกแบบเกมย่อขนาด ประกอบด้วยไฟ LED 32 ดวงที่สร้างเป็นวงกลม ไฟ LED จะสว่างขึ้นทีละดวงในฐานะผู้ไล่ล่านำ เป้าหมายคือการกดปุ่ม
Cyclone (เกม Arduino LED): 6 ขั้นตอน (พร้อมรูปภาพ)
Cyclone (เกม Arduino LED): ในบทช่วยสอนนี้ ฉันจะสอนวิธีสร้างเกม LED ที่มีโค้ดหรือประสบการณ์เพียงเล็กน้อย! ฉันมีความคิดนี้มาระยะหนึ่งแล้วและในที่สุดก็เริ่มสร้างมันขึ้นมา เป็นเกมสนุก ๆ ที่ทำให้เรานึกถึงเกมอาร์เคดทั้งหมด มีแบบฝึกหัดอื่นเ
เกมอาเขต Cyclone LED: 4 ขั้นตอน
เกมอาเขต Cyclone LED: จุดประสงค์ของโครงการนี้คือการสร้างเกมง่ายๆ โดยใช้ Arduino ที่จะโต้ตอบและสนุกสนานสำหรับเด็ก ๆ ฉันจำได้ว่าเกมอาเขต Cyclone เป็นหนึ่งในเกมอาร์เคดที่ฉันชอบเมื่อตอนที่ฉันยังเด็ก ดังนั้นฉันจึงตัดสินใจทำซ้ำ NS