完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我需要设计一个计数器,时钟变化几十个才计数一次。我先用了一个计数器随时钟计数,然后用组合逻辑判断做加法,modelsim仿真可以成功但是上板子后无法实现功能,希望大家能帮忙解决一下。 书写的主要代码如下: always@(count) begin if(count==10'd0) begin CNP_ON<=1'b0; CVP_ON<=1'b0; Inter_Num<=7'd0; end else if((count==10'd72)||(count==10'd108)||(count==10'd144)||(count==10'd180)||(count==10'd216)) begin if(Inter_Num==Max_Inter_Num) begin CNP_ON<=1'b0; Inter_Num<=7'd0; end else begin Inter_Num<=7'd1; Inter_Num<=Inter_Num+1'd1; CNP_ON<=1'b1; end end else if ((count==10'd95)||(count==10'd131)||(count==10'd167)||(count==10'd203)||(count==10'd239)) begin CNP_ON<=1'b0; end else begin CNP_ON<=CNP_ON; Inter_Num<=Inter_Num; end end always@(posedge clk) begin if(rst) begin count<=10'd0; end else if(count<=10'd1022) begin count<=count+1'd1; end else begin count<=count; end modelsim仿真结果
|
|
相关推荐
3个回答
|
|
|
本帖最后由 reallmy 于 2017-3-14 18:36 编辑
always@(count)是什么鬼,都改成时钟啊,不要用组合电路,而且组合电路要用“=”不用“<=”,建议你都改成时序电路吧,就是posedge clk这种的,quartus上选无符号数,不要选十进制,那样就有正负了,看着容易误解! |
|
|
|
|
|
恩,谢谢,用了你的建议改成时序逻辑就可以了。 |
|
|
|
|
|
学习学习学习
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
NVMe高速传输之摆脱XDMA设计50:主要功能测试结果与分析2 nvmePCIe高速存储
252 浏览 0 评论
NVMe高速传输之摆脱XDMA设计49:主要功能测试结果与分析1
1501 浏览 0 评论
907 浏览 0 评论
855 浏览 0 评论
658 浏览 0 评论
4427 浏览 63 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 14:03 , Processed in 0.660290 second(s), Total 75, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4945