完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
程序如下:
module chuangxinjijin( clk_50M,rst_n, count1,count2, SP ); input clk_50M,rst_n; output reg [16:0] count1; output reg [14:0] count2; output reg SP; //-----------------------------SP------------------------------------- reg clear; always @(negedge clk_50M or negedge rst_n) if(!rst_n) count1 <= 1'b0; else if(count1==59996 ) begin clear <= 1; count1 <= 1'b0; end else begin count1 <= count1 + 1'b1; clear <= 0; end //-------------------------------------------------------------- always @(negedge clk_50M or negedge rst_n) if(!rst_n) count2 <= 1'b0; else if(coun2>=0 && count2<281) begin SP <= 1'b0; count2 <= count2 + 1'b1; end else if(count2>=281 && count2<286 ) begin SP <= 1'b1; count2 <= count2 + 1'b1; end else if(count2>=286 && count2<330) begin SP <= 1'b0; count2 <= count2 + 1'b1; end else if (count2 == 330) count2 <= 281; else if (clear == 1) count2 <= 0; else count2 <= count2 + 1'b1; endmodule 问题如下,为什么在clear为1,也就四count1计数到59996时,count2不为0哇 |
|
相关推荐
8个回答
|
|
永远都不会跑到clear那里,因为IF有优先级!
|
|
|
|
要是我想让else if (clear == 1) count2 <= 0; 这条语句生效怎么改一下?调了好半天了,呼呼 |
|
|
|
|
|
|
|
你让count2从1开始逐渐加1,对着程序自己屡一下,发现到了
else if (count2 == 330) count2 <= 281; 这句之后,就返回到刚开始的if语句了,也就是你的clear那一句,一直不会执行。 更正方法: (1) else if (clear == 1) count2 <= 0; 把这一句提前,放到复位后面,如下: if(!rst_n) count2 <= 1'b0;else if (clear == 1) count2 <= 0; else if(coun2>=0 && count2<281) begin SP <= 1'b0; count2 <= count2 + 1'b1; end 这样的话,就可以先判断clear语句。 (2)像楼上一样,将复位和clear合到一块。 如果你的if else 语句的条件不是一个性质的话(不属于一类),例如clear和 count2的变化,你放到一个if else 中之后,如果不注意顺序就会出现你的问题,部分语句永远不会执行。 |
|
|
|
还有就是,程序里最好有注释,然后问问题的时候,可以把你的程序要实现的功能描述一下
|
|
|
|
楼主你这是准备啥计数到什么时候让count2清零,还是说clear出现就清零。如果是出现就清零看5楼,如果是有其他条件那么你应该给出来才能给你改正。。。。。。。。。
|
|
|
|
不好意思,回复那么晚,这种改法会报错! Error (10200): Verilog HDL Conditional Statement error at chuangxinjijin.v(207): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct |
|
|
|
没怎么看,我觉得可能是clear刚好在时钟上升沿吧 采不到,所以条件一直不满足
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
1016 浏览 0 评论
369 浏览 0 评论
求助:遇见诡异问题,FPGA模块A输出端口连接模块B输入后,模块A不能正常工作的
1184 浏览 1 评论
422 浏览 0 评论
1133 浏览 1 评论
4035 浏览 91 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-8 13:16 , Processed in 0.739137 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191