Vivado综合时出现[Synth 8-91] ambiguous clock in event control(2021-11-24 )

hegangben
2025-07-17 / 0 评论 / 0 阅读 / 正在检测是否收录...

md701amg.png

在网上找了一波,改了一波,发现并没有消掉错误,头比较大,最终还是成功解决掉了。产生这种错误有两种情况

第一种情况:

定位在这个always块,我们通常习惯边缘触发,时钟上升沿和复位下降沿写到一起,但是,在always块里面并没有初始化的一些变量,也就是我们并没有用到rst_n,所以综合的时候就会报出上面的错误,将触发模式更改为always@(posedge clk)即可。
md70209i.png

第二种情况就是赋值冲突:

同一个always块里可以允许两个if并行处理,但是这两个if所处理的内容不能有所交集,不然会产生赋值冲突,硬件电路不知道先处理哪个if的操作,也不能构建硬件电路,举个例子,如下图:第一个if else模块和第二个if else模块都对cnt进行了赋值,这是不允许的,综合是不能通过的,也会报相应错误。
md7029fq.png

有道云笔记
2021-11-24 18:24:11

0

评论 (0)

取消