菜鸟一只,刚学FPGA,希望大神帮忙看看这段代码什么意思。。谢谢了

2019-07-15 21:59发布

reg [3:0] key_scan_r;
always @(posedge clk)
    key_scan_r <= key_scan;      

wire [3:0] flag_key = key_scan_r[3:0] & (~key_scan[3:0]);

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
zhjb1
1楼-- · 2019-07-16 19:33
shouyingjiang 发表于 2017-2-28 16:13
大神,我也刚开始学,那个1011怎么出来的?能详细点吗

比如原来的flag_key=1111,~flag_key就是扫描到的按键值再取反,如果按下一个键=1011,取反后=0100;
1111与0100做逻辑与运算,结果=0100,表示为1的哪个键按下了-如果键分别为Key3,key2,key1,key0,应该是key2按下了。
以前的表达有误,Sorry。
shouyingjiang
2楼-- · 2019-07-17 01:03
 精彩回答 2  元偷偷看……
mabiao8201
3楼-- · 2019-07-17 06:09
取4个信号的上升沿,脉宽1个clk
D调の鑫爷
4楼-- · 2019-07-17 11:50
键盘的扫描寄存器对输入进行检测,当出现scan状态为0,scanr状态为1时,对应位的flag_key变为1
胜率付款换个地方是
5楼-- · 2019-07-17 15:39
边缘检测
清华20156
6楼-- · 2019-07-17 19:03
zhjb1 发表于 2017-2-28 10:41
还没有敲完上去了,补充1点,最后一句理解成,比如原始位1111,按键之后成为1011,两者取反与后=1011。

谢谢。。我就是阻塞赋值理解的不到位。。

一周热门 更多>