说实话你的代码应该没问题,估计是你时序仿真的设置有问题吧,多搜下后仿得资料看看!
我以前从没用过异步清零和异步置1同时存在的情况,我用过一次,DC中提示出错,就再没用过。
我觉得最好不用。
补充说明:你的时序仿真应该是门级的仿真的是吧,我看的很多资料上说异步复位与异步置位不要同时有效,不知道你加的激励是不是同时的,因为功能仿真的时候编译器会有优先级,但是到了FPGA里面的D触发器不一定会存在优先级(猜的),所以建议你的激励可以改一下,将两个异步信号分开有效。
还有,对于一楼说的,我想说一点就是,一个always里面三个posedge没关系,既然到了时序仿真了,就说明综合已经过了,那就可以的。异步清0和同步置位的编写就是应该这样写的。
我个人觉得你的清零 clr和 置位 set,是电平触发的,而你在该程序中,采用的是时钟沿触发
而且还是posedge上升沿触发,
修改:应该只需要时钟是上升沿触发,而clr和set用电平触发
只需将always @(posedge clk or posedge clr or posedge set)改成always @(posedge clk )应该就没什么问题了
还有你这个是异步清零和设值。代码应该没有问题
问题是你想要的时序是什么样的时序?可以按照你想要的时序修改啊。
fd
1楼都说了 没什么可加的了