序言
记录使用vivado过程种遇到的各种error。如果有错误的地方或者可以补充的地方欢迎提醒~~
Synthesis
- [Synth 9-685] Variable “xxx” should not be used in output port connection.
Solution: vivado中如果是output 需要用wire型,不能使用reg型。
ps:在用vcs compile时候不会报错。 - [Synth 8-5805] Error generated from encrypted envelope.
Solution: 设计中的block box即加密的内容有error,一般需要联系block box vendor去解决。我遇到过在vivado设置中添加include path解决,path就直接指向该block box就可以。 - [Synth 8-2539] port XXX must not be declared to be an array.
Solution:XXX port被声明成了array形式。在vivado里面不允许普通multiple bit声明成array形式,即只能声明成
20221129修改:vivado中只是port不允许用array形式声明,其他中间信号可以,如下:
support:
wire/reg [n:n] XXX;
or
wire/reg [n:n] XXX [n:n];
or
wire/reg XXX [n:n];
unsupport
input/output/inout XXX [n:n];
or
input/output/inout [n:n]XXX [n:n];
- [Synth 8-91] ambiguous clock in event control
Solution:存在不确定的clock,check下clock. - [Synth 8-2913] Unsupported Dual Port Block-BRAM template for mem_reg
Solution:提供的memory model .v 不被支持;vivado不是所有的Asymmetric BRAM coding patterns are supported,可以去和UG901 Doc上提供的match一下.
Implementation
Opt Design
- [Opt 31-306] MIG/Advanced IO Wizard Cores generation Failed.
Solution:IP Core出错。检查IP的setting或者connect。
Example: