完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
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个回答
|
|
reg [3:0] key_scan_r;//定义按键寄存器4个0,1,2,3
always @(posedge clk)//测试按键时钟 key_scan_r <= key_scan;//读取的按键值赋给前者 wire [3:0] flag_key = key_scan_r[3:0] & (~key_scan[3:0]);//连接按键的线产生跳变[0->1或1->0]
最佳答案
|
|
|
|
这说的是按键信号锁存一个时钟节拍,但是具体是什么意思呢?
|
|
|
|
|
|
|
|
这是采沿啊!采下降沿!!!!你把所有信号当成1bit去理解,就是一个1bit的下降沿,这里一共四bit,写到一起了而已!
|
|
|
|
还没有敲完上去了,补充1点,最后一句理解成,比如原始位1111,按键之后成为1011,两者取反与后=1011。
|
|
|
|
大神,我也刚开始学,那个1011怎么出来的?能详细点吗 |
|
|
|
比如原来的flag_key=1111,~flag_key就是扫描到的按键值再取反,如果按下一个键=1011,取反后=0100; 1111与0100做逻辑与运算,结果=0100,表示为1的哪个键按下了-如果键分别为Key3,key2,key1,key0,应该是key2按下了。 以前的表达有误,Sorry。 |
|
|
|
zh***1 发表于 2017-3-1 06:57 谢谢你哦,懂了,谢谢谢谢 |
|
|
|
取4个信号的上升沿,脉宽1个clk
|
|
|
|
键盘的扫描寄存器对输入进行检测,当出现scan状态为0,scanr状态为1时,对应位的flag_key变为1
|
|
|
|
边缘检测
|
|
|
|
谢谢。。我就是阻塞赋值理解的不到位。。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
1055 浏览 0 评论
373 浏览 0 评论
求助:遇见诡异问题,FPGA模块A输出端口连接模块B输入后,模块A不能正常工作的
1221 浏览 1 评论
427 浏览 0 评论
1168 浏览 1 评论
4043 浏览 91 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-9 07:20 , Processed in 0.867558 second(s), Total 96, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号