我们知道,VCS 提供了如下三个选项:-v 、-y、+libext+。
今天我们一起拿好小黑板,坐稳小板凳,分析一下三个编译选项的含义和正确使用场景。不要大意,还是有陷阱的哦~
关于 -v 选项
-v lib_file :表明我们的设计RTL代码里用到了这个工艺库文件里面定义的源。
【例子1】本例子,目录结构如下,新建目录macros。
里面新建文件my_macros.sv,具体内容如下:
interface lib_if();
endinterface
`celldefine
module my_add(aa,bb,cc);
input aa;
input bb;
output reg [1:0] cc;
assign cc = aa + bb;
endmodule
`endcelldefine
`celldefine
module my_sub(aa,bb,cc);
input [1:0] aa;
input [1:0] bb;
output reg [1:0] cc;
assign cc = aa ^ bb;
endmodule
`endcelldefine
在Makefile中,添加如下一行VCS 编译选项。这里指定我们想要的最小实例化单元。