ModelSim 前仿真和后仿真的结果为什么不一样啊?
本帖最后由 apolloj 于 2012-1-9 09:07 编辑如下面一段代码,我是想动态扫描8个数码管,前仿真通过了,下到板子上去运行也OK了,但为什么在后仿真中,led_com的左移操作出现了问题呢?最上面的1是怎么来的?
begin
if (com_cnt<7)
begin
com_cnt<=com_cnt+1;
led_com<=led_com<<1;
end
else
begin
com_cnt<=0;
led_com<=1;
end
end//end else if (dis_circ==0)
后仿真图片,
改成如下代码也是一样的仿真结果,
begin
if (com_cnt<7)
begin
led_com<=led_com;
led_com<=led_com;
led_com<=led_com;
led_com<=led_com;
led_com<=led_com;
led_com<=led_com;
led_com<=led_com;
led_com<=led_com;
com_cnt<=com_cnt+1;
// led_com<=led_com<<<1;
end
else
begin
led_com<=0;
led_com<=0;
led_com<=0;
led_com<=0;
led_com<=0;
led_com<=0;
led_com<=0;
led_com<=1;
com_cnt<=0;
// led_com<=1;
end
end//end else if (dis_circ==0)
难道是仿真器的BUG? 要不用门级描述做个带复位和置位D触发器,然后再串起来,会不会解决呢? 本帖最后由 apolloj 于 2012-1-9 00:22 编辑
前仿真波形
如果后仿真出错了,是否就是说综合后的电路有问题?但下到板子上后,运行一切正常啊。
不知道左移被综合成了什么电路?环形左移电路,综合器没这么聪明吧。 自己搞定了,用了altere 的 LPM_CLSHIFT 宏,问题解决,后仿真也通过了。
页:
[1]