完善资料让更多小伙伴认识你,还能领取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仿真结果 FPGA抓取结果 在实际中这样写是无法实现功能的,我该怎么来设计呢,求指教 |
|
相关推荐
3个回答
|
|
本帖最后由 reallmy 于 2017-3-14 18:36 编辑
always@(count)是什么鬼,都改成时钟啊,不要用组合电路,而且组合电路要用“=”不用“<=”,建议你都改成时序电路吧,就是posedge clk这种的,quartus上选无符号数,不要选十进制,那样就有正负了,看着容易误解! |
|
|
|
恩,谢谢,用了你的建议改成时序逻辑就可以了。 |
|
|
|
学习学习学习
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
FPGA零基础学习系列精选:半导体存储器和可编程逻辑器件简介
222 浏览 0 评论
cmos的slvs-ec协议40针引脚该如何连接到xilinx a7开发版上?
354 浏览 0 评论
1303 浏览 1 评论
373 浏览 0 评论
【星嵌电子XQ138F-EVM开发板体验】(原创)8.安全FPGA防御黑客病毒(芯片设计制造级防护)源代码
1391 浏览 0 评论
1080 浏览 23 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 20:10 , Processed in 0.544952 second(s), Total 71, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号