VCS编译选项:-y及+libext+

电子说

1.2w人已加入

描述

VCS是一款常见的Verilog编译工具,它提供很多编译选项来控制编译过程及其输出。本文主要介绍以下两个编译选项:

-y 

用于指定搜索路径。例如,如果你将一个设计分为若干个不同的模块或模块库,并希望在编译期间找到这些文件,就可以使用-y选项告诉编译器应该去哪里寻找它们。例如,如果你的模块库位于"/path/to/mylib",可以使用以下命令:

 

vcs -y /path/to/mylib mydesign.v
编译器在编译mydesign时会在"/path/to/mylib"中查找任何需要的文件。

 

+libext+<.v>+<.svp>

用于指定库扩展名。默认情况下,VCS会假设库的扩展名为".v"。但是,如果你的模块库使用了其他扩展名(例如".sv"或".vh"),那么你需要通过此选项告诉编译器使用正确的扩展名。例如,如果你的模块库使用".svh"作为其扩展名,则可以使用以下命令:

 

vcs +libext+.svh mydesign.v

 

这样编译器在编译期间将所有包含库引用的".svh"文件视为库文件。

以上两个选项经常一起使用。例如,如果你有一个模块库,其文件位于"/path/to/mylib",并且使用".sv"作为扩展名,则可以将以下命令用于编译:

 

vcs -y /path/to/mylib +libext+.sv mydesign.v

 

编译器在编译过程中会在"/path/to/mylib"中查找任何需要的文件,并将所有包含库引用的".sv"文件视为库文件。

此外,在使用这两个选项时还可以结合使用其他选项来指定编译器的行为。例如:

+incdir+选项:用于指定头文件的搜索路径。与-y选项类似,但是专门用于包含头文件而不是模块库文件。

+define+选项:用于定义预处理器宏。可以通过此选项为代码中的条件编译指令提供值。

+warn=noxxx选项:用于禁用特定的警告信息。例如,"+warn=noDNF"将关闭关于DNF表达式的警告。

如下面的示例:

 

vcs -y /path/to/mylib +libext+.sv +incdir+/path/to/header +define+DEBUG +warn=nodnf mydesign.v

 

这将启用以下行为:

编译器将在"/path/to/mylib"中查找任何需要的文件,并将所有包含库引用的".sv"文件视为库文件。

编译器将在"/path/to/header"中查找任何需要的头文件。

编译器将为代码中的"DEBUG"宏设置值。

 编译器将关闭关于DNF表达式的警告。

最近使用VIP中遇到“cannot find cell in liblist”的编译错误,所以特别介绍以上的两个选项。如果你在工作中也遇到类似问题,可以先检查一下这两个选项是否指定正确。

全文完,感谢阅读。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分