FPGA——按键控制LED设计流程(二选一选择器)

目录

设计定义

设计输入 (画出设计图)

代码编写(根据上面设计图设计代码)

设计图解析

由以上分析编写代码

功能仿真

仿真代码分析:

仿真代码:


设计定义

  • 按键控制LED灯
  • 按下时LED灯亮
  • 松开时LED灯灭

设计输入 (画出设计图)

  •  按键进行选择
  • 按键按下将信号A传给LED
  • 按键松开将信号B传给LED

代码编写(根据上面设计图设计代码)

设计图解析

  1. A,B,KEY 为输入信号
  2. LED 为输出信号
  3. 故设置A,B,KEY为输入类型
  4. LED为输出类型
  5. 以KEY为条件利用连续赋值语句完成信号的选择

由以上分析编写代码

注:模块名必须和项目名称一致否则会有错误

module selecter(KEY,A,B,LED);
    
    input KEY; 
    input A;
    input B;

    output LED;

    assign LED= (KEY == 0)? A :B;

endmodule 

功能仿真

仿真代码分析:

时间定义:

`timescale 1ns/1ns //仿真单位/仿真精度 
  • /前面为 时间单位(做延迟时 1个单位代表 多少)
  • /后面为 时间精度(做仿真时时间精确到多少)

模块例化:

//激励信号定义,对应连接到待测试模块的输入端口	    
    reg KEY;
    reg A;
    reg B;
//待测试信号定义,对应连接到待测试模块的输出口	
    wire LED;
//例化待测试模块	    
    selecter selecter1 //例化模块
    (
     .KEY(KEY),
     .A(A),
     .B(B),
     .LED(LED)
     );
  • 激励信号(输入信号)必须定义为 reg 类型
  • 测试信号(输出信号)必须定义为 wire 类型
  • 例化时 输入固定格式即可
    <模块名>  <例化模块名> //例化模块
    (
     .变量名(例化变量名),
     .变量名(例化变量名),
     .变量名(例化变量名),
     .变量名(例化变量名)
     );

例化变量赋值:

  •         将激励信号赋初值
  •         #<延迟时间>  仿真延迟
  •         $stop 停止仿真
    initial 
    begin
    KEY=0;A=0;B=0; //激励信号赋初值
    #20
    ....
    $stop
    end

仿真代码:

`timescale 1ns/1ns

module selecter;
    reg KEY;
    reg A;
    reg B;

    wire LED;
    
    selecter selecter1 //例化模块
    (
     .KEY(KEY),
     .A(A),
     .B(B),
     .LED(LED)
     );

    initial
    begin
    KEY=0;A=0;B=0;
    #20
    KEY=0;A=0;B=1;
    #20
    KEY=0;A=1;B=0;
    #20
    KEY=0;A=1;B=1;
    #20
    KEY=1;A=0;B=0;
    #20
    KEY=1;A=0;B=1;
    #20
    KEY=1;A=1;B=0;
    #20
    KEY=1;A=1;B=1;
    $stop
    end

endmodule
  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白变形计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值