apolloj 发表于 2012-1-8 23:52:48

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:09:35

本帖最后由 apolloj 于 2012-1-9 00:22 编辑

前仿真波形


如果后仿真出错了,是否就是说综合后的电路有问题?但下到板子上后,运行一切正常啊。
不知道左移被综合成了什么电路?环形左移电路,综合器没这么聪明吧。

apolloj 发表于 2012-1-9 14:35:45

自己搞定了,用了altere 的 LPM_CLSHIFT 宏,问题解决,后仿真也通过了。
页: [1]
查看完整版本: ModelSim 前仿真和后仿真的结果为什么不一样啊?