支持 Verilog `uselib
指令,该指令用于设置库的搜索顺序。
`uselib 语法
<uselib compiler directive> ::= `uselib [<Verilog-XL uselib directives>|<lib
directive>]
<Verilog-XL uselib directives> :== dir = <library_directory> | file = <library_file>
| libext = <file_extension>
<lib directive>::= <library reference> {<library reference>}
<library reference> ::= lib = <logical library name>
`uselib 库语义
`uselib lib
指令无法搭配 Verilog-XL `uselib
指令一起使用。例如,下列代码违规:
`uselib dir=./ file=f.v lib=newlib
在一条 `uselib
指令内可指定多个库。
指定库的顺序决定了搜索顺序。例如:
`uselib lib=mylib lib=yourlib
指定搜索已例化的模块的操作首先在 mylib
内执行,而后在 yourlib
内执行。
正如 `uselib dir
、`uselib
file
和 `uselib libext
指令,在任一给定的解析和分析调用中,`uselib
lib
指令跨 HDL 文件保持有效,就像解析调用保持有效一样。除非遇到另一条 `uselib
指令,否则 HDL 源代码中的 `uselib
(包括任何 Verilog XL `uselib
)指令保持有效。不含任何实参的 `uselib
会移除当前处于活动状态的任意 `uselib
<lib|file|dir|libext>
的效果。
以下模块搜索机制用于通过 Verific Verilog 细化算法来解析已例化的模块或 UDP:
- 首先,按当前处于活动状态的
`uselib lib
(如有)的逻辑库的排序列表来搜索已例化的模块。 - 如未找到任何结果,请按在
xelab
命令行中搜索库的相同方式,在库的有序列表内搜索已例化的模块。 - 如未找到任何结果,请在父模块的库中搜索已例化的模块。例如,如果库
work
的模块 A 例化了库mylib
的模块 B,而 B 例化了模块 C,那么请在模块 B 的 /mylib 库(C 的父级库)中搜索模块 C。 - 如未找到任何结果,请在
work
库中搜索已例化的模块,此库为下列库之一:- HDL 源文件编译到的库
- 显式设置为
work
库的库 - 默认 work 库名称为
work
`uselib 示例
已编译到名为 adder_lib 的逻辑库中的 half_adder.v 文件 | 已编译到名为 Work 的逻辑库中的 full_adder.v 文件 |
---|---|
|
|