Vivado综合时出现[Synth 8-91] ambiguous clock in event control

    废话不多说,我们在使用vivado软件进行Run Synthesis综合时,出现这个错误**[Synth 8-91] ambiguous clock in event control** 如下图所示

Vivado综合时出现[Synth 8-91] ambiguous clock in event control_第1张图片
在网上找了一波,改了一波,发现并没有消掉错误,头比较大,最终还是成功解决掉了。产生这种错误有两种情况
第一种情况:
定位在这个always块,我们通常习惯边缘触发,时钟上升沿和复位下降沿写到一起,但是,在always块里面并没有初始化的一些变量,也就是我们并没有用到rst_n,所以综合的时候就会报出上面的错误,将触发模式更改为always@(posedge clk)即可。
Vivado综合时出现[Synth 8-91] ambiguous clock in event control_第2张图片
第二种情况就是赋值冲突:
同一个always块里可以允许两个if并行处理,但是这两个if所处理的内容不能有所交集,不然会产生赋值冲突,硬件电路不知道先处理哪个if的操作,也不能构建硬件电路,举个例子,如下图:第一个if else模块和第二个if else模块都对cnt进行了赋值,这是不允许的,综合是不能通过的,也会报相应错误。
Vivado综合时出现[Synth 8-91] ambiguous clock in event control_第3张图片

你可能感兴趣的:(vivado,verilog,fpga)