完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
对按键计数,编译不通过!!
module dc_counter(rstn,up,down,dout); input rstn; input up; input down; output[8:0] dout; reg[8:0] dout_r; reg[3:0]cnt; always@(posedge up or negedge rstn)//计数范围50~450 begin if(! rstn) dout_r<=9'd450; else begin if(dout_r>=9'd449) dout_r<=450; else dout_r<=dout_r+1; end end always@(posedge down or negedge rstn) begin if(! rstn) dout_r<=9'd450; else begin if(dout_r<=9'd50) dout_r<=9'd50; else dout_r<=dout_r-1; end end assign dout=dout_r; endmodule |
|
相关推荐
3个回答
|
|
是的,不能再两个always块里对一个变量赋值!!你可以再定义一个reg变量,输出等于这两个reg相加就行啦!!不过还是要用时钟信号比较正规,你这个写法本身就是不对的,我刚学fpga的时候也像你这么写,哈哈,posedge后面只能跟时钟!!!!!很重要!
最佳答案
|
|
|
|
不知道报错提示是什么,不过友情提示一下,posedge后面只能跟时钟信号,你可以用时钟信号来采down与up的沿,用沿来控制计数器!
|
|
|
|
Error (10028): Can't resolve multiple constant drivers for net "dout_r[8]" at dc_counter.v(29) 报错说:不能在两个always里边对同一个量进行操作。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-16 08:27 , Processed in 0.590745 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号