微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 很奇怪的问题。编译器不执行代码的逻辑,高手请进。

很奇怪的问题。编译器不执行代码的逻辑,高手请进。

时间:10-02 整理:3721RD 点击:
代码如下:
counter:process(rst,clk.ena,sop)
begin
if(clk'event and clk='1')then --计数  
 if(ena='0' or sop='1')then --清零   //按照代码,应该在ena=0或sop=1时候,计数器cnt清零
                  //可是仿真波形显示的结果却是
                  //在ena=0时,cnt清零;而在sop=1时,计数器cnt没有清零
cnt<=(others=>'0');
end if;
if(ena='1')then
if(cnt=b"1111_1111")then
cnt<=(others=>'0');
else
cnt<=cnt+1;
end if;
end if;
end if;
end process counter;
----------------------
本人菜鸟,能否请高手具体说说为什么在sop=1时,cnt 没有清零

没人说话阿
自己顶

把你的代码以及仿的图发上来一下。
这样很不好说。

设置一个优先级就OK了
吧清零信号的优先级拉高就可以了,就是:
IFENA='0' OR SOP='1'THEN
CNT <= (OTHRES=>'0');
ELSIF ENA='1' THEN
XXXXXXXXXXXXXXXXXXXXXXXX
这样看看如何~~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top