前仿真与后仿真结果不同,原因是什么?

2019-03-25 10:25发布

前仿真出来的状态机时钟正确的, 而后仿真出来的状态机中,有些状态之间就会有很短时间的其他状态,时间不到系统时钟的十分之一。 上图是后仿真时序,状态3后应该是状态4,但是实际却是状态7 和 6 ,而且时间很短,不到一个时钟周期,这导致了后仿真失败 是什么原因造成的? 另外:状态可以这样写吗?还是必须0 2 4 8 16 这样写?           st0=8'b00000010,
          st1=8'b00000011,
          st2=8'b00000100,
          st3=8'b00000101,
          st4=8'b00000110,
          st5=8'b00000111,
          st6=8'b00001000,
          st7=8'b00001001,  我程序的其中一个状态是这样的: st3:     //for reg ale==1
         begin
         ale<=1'b1;    
         oe<=1'b0;
         lock<=1'b0;
         tx_send<=1'b0;
         trig_1<=1'b0;
         trig_2<=1'b0;
         trig_3<=1'b0;
         trig_4<=1'b0;
         trig_5<=1'b0;
         trig_6<=1'b0;
         trig_7<=1'b0;
         trig_8<=1'b0;
         trig_9<=1'b0;
         next_state<=st4;
         end 和阻塞性幅值有关系吗?   编译时有条警告: Warning: Can't find clock settings "clk" in current project -- ignoring clock settings 于是添加时钟约束 如附件图 重新编译后结果如下:Critical Warning: Timing requirements were not met   请问这个问题该怎么解决呢?   平时只有自己弄这个,找不到讨论的人, 请高手帮我看看 非常感谢
Hi

[ 本帖最后由 shumin748646 于 2011-4-29 11:36 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
wstt
2019-03-25 18:41
你写独热码或者正常累加的编码是不影响的,quartus会全都转换成独热码。其实即使出现不对的状态未必是有问题的,这要看你的输出逻辑

一周热门 更多>