FPGA系统性学习笔记连载_Day6 医院护士灯之Intel 和S-6、 ZYNQ三个平台实现及验证篇

2021-04-01 10:03:41 浏览数 (1)

FPGA系统性学习笔记连载_Day6 医院护士灯之Intel Q和Xilinx S-6、 ZYNQ7020三个平台的实现及验证篇

本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。

连载《叁芯智能fpga设计与研发-第6天》 【医院护士灯实验】之【intel Cyclone IV、Xilinx Spartan-6、Xilinx ZYNQ7020三个平台的实现及验证】

原创作者:紫枫术河 转载请联系群主授权,否则追究责任

本实验,实现一个护士灯实验,要求输入4个按键,输出4个led灯,同一时间只能有一个led灯点亮,key有优先级 key1 > key2 > key3 > key4

一、基本思路

将4路按键信号的值进行判断,先判断key1-->key2-->key3-->key4,如果高优先级的按键按下,低优先级的就不用判断了,代码如下

doctor_leds.v

代码语言:javascript复制
module doctor_leds(
    input  wire  [3:0]keys,
     
    output reg  [3:0]leds
);
 
    wire    [3:0] keys_status;
    assign keys_status = keys;
 
    always @(*) begin
        if(keys_status[0] == 1'b0)
            leds = 4'b0001;
        else if(keys_status[0] == 1'b1 && keys_status[1] == 1'b0)
            leds = 4'b0010;
        else if(keys_status[0] == 1'b1 && keys_status[1] == 1'b1
                && keys_status[2] == 1'b0)
            leds = 4'b0100;
        else if(keys_status[0] == 1'b1 && keys_status[1] == 1'b1
                && keys_status[2] == 1'b1 && keys_status[3] == 1'b0)   
            leds = 4'b1000;
        else
            leds = 4'b0000;
    end
endmodule

二、编写仿真脚本:

doctor_leds_tb.v

代码语言:javascript复制
`timescale 1ns/1ns
 
module doctor_leds_tb();
 
    reg [3:0]keys;
     
    wire  [3:0]leds;
 
    doctor_leds doctor_leds_inst(
        .keys       (keys),
         
        .leds       (leds)
    );
     
    initial begin
        keys = 4'b1111;
        #20;
        repeat(10)begin
            keys = {$random};
            #20;
        end
    end
 
endmodule

仿真结果:

三、Intel Cycle IV FPGA平台验证

我用的是叁芯智能的开发板(intel Cycle IV:EP4CE6E22C8)

3.1、按键原理图

KEY0:PIN_91

KEY1:PIN_90

KEY2:PIN_89

KEY3:PIN_88

3.2、LED灯原理图

LED0:PIN_73

LED1:PIN_74

LED2:PIN_75

LED3:PIN_76

3.3、打开Pin Planner引脚分配工具,分配管脚

3.4、硬件测试效果

四、Xilinx Spartan-6 FPGA 平台验证

我用的是叁芯智能的开发板(Xilinx Spartan-6:XC6SLX9)

4.1、按键原理图

KEY0:PIN_83

KEY1:PIN_82

KEY2:PIN_81

KEY3:PIN_80

4.2、LED灯原理图

LED0:PIN_74

LED1:PIN_75

LED2:PIN_78

LED3:PIN_79

4.3、打开Pin Planner引脚分配工具,分配管脚

4.4、硬件测试效果

五、Xilinx ZYNQ7020 FPGA 平台验证

我用的是广州创龙的开发板(Xilinx ZYNQ7020:xc7z020clg400-2)

5.1、按键原理图

我们用SW1、SW2、SW3、SW4作为与门的输入信号

SW1:C6 这个引脚是连接到PS端,FPGA没法用,这个脚我们必须指定一个(扩展GPIO),否则vavido编译报错

SW2:J15

SW3:H15

SW4:G15

5.2、LED灯原理图

LED0:B5 这个引脚是连接到PS端,FPGA没法用,这个脚我们必须指定一个(扩展GPIO),否则vavido编译报错

LED1:F16

LED2:M14

LED3:M15

5.3、打开Pin Planner引脚分配工具,分配管脚

5.4、硬件测试效果

0 人点赞