前仿真出来的状态机时钟正确的,
而后仿真出来的状态机中,有些状态之间就会有很短时间的其他状态,时间不到系统时钟的十分之一。
上图是后仿真时序,状态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 编辑 ]
|