1

我正在尝试廉价且准确地预测构建流程的所有 SystemVerilog 依赖项。过度预测依赖关系并找到一些不是 sv 依赖关系的 Verilog 文件是可以的,但我不想错过任何依赖关系。

我是否真的必须解析 Verilog 才能确定它的所有依赖项?有 tick-include 预处理器宏,但那些 tick-include 似乎并没有加载当前正在编译的所有代码。有一个SYSTEM\_VERILOG\_PATH环境变量。我是否需要解析该SYSTEM\_VERILOG\_PATH变量中的每个 SystemVerilog 文件以确定在哪些文件中定义了哪些模块?

4

3 回答 3

1

一种好方法(如果这是可综合的代码)是使用综合工具文件列表(例如 Altera 的 .qsf)。这往往是完整的,但如果不是,您可以查看构建日志以查找它找到的丢失文件。

于 2009-09-10T14:59:29.353 回答
1

从易于编译的环境中,可以转储源文件(例如 Cadence

-- To list source files used by the snapshot 'worklib.top:snap'
% ncls -source -snapshot worklib.top:snap

)
但如果你是从头开始,恐怕没有简单的解决方案。我会选择务实的:有一个配置文件,其中包含所有包含 .sv 文件的目录,然后编译其中的所有内容。如果您的项目具有适当的文件结构,您还可以通过为每个主要块提供配置文件来对其进行模块化。

希望有帮助。

于 2010-02-19T09:42:43.467 回答
0

I know Questa has a command line option where it will generate a makefile for you with all the dependencies in it after you have compiled your design. I'm not sure if the other simulators have that.

Another option is to browse and dump your compiled library in your simulator. You probably won't get the actual filenames the modules are compiled from, but it'll be a lot easier to parse all your verilog files for the module names that show up in the compiled library.

于 2009-10-24T04:37:37.360 回答