FPGA 按键问题

2019-07-16 01:21发布

999999999999999999999.png
第一个问题是圆圈1:为什么要clk啊?我觉得不用也可以。个人觉得。
第一个问题是圆圈2:这句话是什么意思啊?
第一个问题是圆圈3:为什么要if这句呢?为什么不可以是直接的if(!key) led=~led;
会哪个帮我回答那个好了。谢谢拉啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
haozix521
1楼-- · 2019-07-16 22:17
 精彩回答 2  元偷偷看……
九章融碎心平凡
2楼-- · 2019-07-17 01:48
module key(rst_n,clk,key,led);//key:模块名称,rst_n、clk、key、led:信号名称
    input rst_n;//输入复位信号,rst_n只是一个名称,关键是在调用模块时传递进来的信号;
    input clk;//输入时钟信号;
    input key;//输入按键信号;
    output led//输出点灯信号:高低电平使灯闪烁;

    reg led;//因为需要改变输出信号的状态,所以需要申明为reg;
    always @(posedge clk or negedge rst_n)begin//当时钟的上升沿或复位信号下降沿执行
      if(!rst_n)//这儿就是你提的第2个问题:首先,只有时钟上升沿和复位下降沿才执行这里面的内容,
        led<=1'b0;//其次,当复位下降沿的时候,检测到的rst_n就为低电平,所以!(取反)为1,就执行初始化赋值
      else if(!key)//当key为低电平
        led<=~led;//改变电平值
    end
/*
模块的主要作用就是按KEY使LED灯状态改变。
几点忠告:
        1.FPGA注意时序的概念;
        2.FPGA注意并行的概念;
        3.FPGA注意模块的概念;
        4.不懂的可以自己仿真(ISE.Modlesim)查看结果;
        5.多看基本的资料,使得自己入门才能更好的沟通,学习是要靠自己的。
*/
4515515
3楼-- · 2019-07-17 06:32
{:20:}{:20:}{:20:}
haozix521
4楼-- · 2019-07-17 07:25
九章融碎心平凡 发表于 2013-8-25 00:34
module key(rst_n,clk,key,led);//key:模块名称,rst_n、clk、key、led:信号名称
    input rst_n;//输入 ...

谢谢啊。我懂了。
happiness信笺
5楼-- · 2019-07-17 12:13
 精彩回答 2  元偷偷看……
lihanmiaomiao
6楼-- · 2019-07-17 13:41
实用的学习资料,谢谢分享!

一周热门 更多>