我正在运行我的芯片设计代码的合成(Verilog)在Vivado。行为模拟效果很好。但是,在合成过程中,它返回以下错误:
**[Synth 8-27] - primitive not supported**
这是Vivado抛出此错误的代码:
primitive VIS_mux (q, d0, d1, s);
output q;
input s, d0, d1;
`protect
table
// d0 d1 s : q
0 ? 0 : 0 ;
1 ? 0 : 1 ;
? 0 1 : 0 ;
? 1 1 : 1 ;
0 0 x : 0 ;
1 1 x : 1 ;
endtable
`endprotect
endprimitive
如果有人能帮忙解决这个问题,我将不胜感激。
如何将原语转换为模块?
发布于 2022-08-05 10:21:58
此错误意味着您无法使用primitive
关键字来使用此工具进行综合。正如您所推测的,您可以使用module
代替。
编写合成器复用器的标准方法是使用条件运算符。下面是一个module
版本:
module VIS_mux (q, d0, d1, s);
output q;
input s, d0, d1;
assign q = (s) ? d1 : d0;
endmodule
https://stackoverflow.com/questions/73244933
复制相似问题