完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
谢谢了,新手,,,希望有人可以解答一下。可能没说太清楚,但希望请教下大家,而且源代码大家觉得哪里写的不好,希望大家指出
下面会给源代码的一些内容,才刚开始学FPGA以前写单片机的。 主要要实现的功能就是3个按键控制8个LED灯的复位,左移,右移。功能已经实现,但又遇到一点问题: (1)LED左右移动的时候,8个灯会很快的全部亮一遍,又熄灭,在移动。最后结果看起来LED是正常移动了,没想通为什么会有一个全部亮灭的过程,(用CLK控制流水灯的时候,LED移动也就永远只亮一个啊。不可能是硬件的问题吧) (2)源代码里面第一个always是为了让Led移动,按一次键只移动一次,因为按键消抖那里,我基本参考的特权同学的例子,(最后出来的按键值,key_value会持续40ms左右吧),所以我这里只在key_value变化时候保存一次CLK的周期。 但问题是,最后把这个always删了,直接判定key_value,LED移动依然只是移动了一次。。。。难道我的想法错了?加的这个锁存多余了?? (源代码中,按键消抖参考的特权同学的,前面的代码太多,就不贴上去了) /*****************************按键消抖****************************/ assign key_value_temp = key_value_40ms[1] & (~key_value_40ms[0]); //下降沿的话为1. assign key_value = key_value_temp; /***************************LED控制******************************/ reg[7:0] led_r; always @(posedge clk_25M or negedge rst_n) //锁存key_value的值一个时钟周期 begin if(!rst_n) key_value_r <= 8'h00; else key_value_r = (key_value_r == key_value) ? 0 : key_value; end always @(posedge clk_25M or negedge rst_n) begin if(!rst_n) led_r<= 8'h00; else case(key_value_r) 3'b001: led_r <= 8'h01; //LED复位 3'b010: led_r<= {led_r[6:0],led_r[7]}; //左移 3'b100: led_r <= {led_r[0],led_r[7:1]}; //右移 default: led_r<= led_r; endcase end assign led_pio = led_r; |
|
相关推荐
5个回答
|
|
是不是第二个always里面去掉rst看看什么效果
|
|
|
|
你好。。去掉什么效果都没有。。。还有我第一个问题全部LED会亮一下。。我怀疑是移位操作那里。他不只是移位了一次。。所以会来个全亮。。但特别恰好的是,最后停下来的结果是正确的。。 |
|
|
|
能否把程序都贴上看看?
|
|
|
|
你好,你看有没有可能是组合逻辑导致的?/*****************************按键消抖****************************/
assign key_value_temp = key_value_40ms[1] & (~key_value_40ms[0]); //下降沿的话为1. assign key_value = key_value_temp; 把这两句话改成时序逻辑试试。 |
|
|
|
风琴的纪念 发表于 2016-10-23 21:15 是的。。是逻辑的问题。。。。谢谢你了 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1415 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1055 浏览 0 评论
2491 浏览 1 评论
2190 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2457 浏览 0 评论
1925 浏览 52 评论
6021 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 11:38 , Processed in 0.584486 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号