如何在icarus verilog中包含文件?
Posted
技术标签:
【中文标题】如何在icarus verilog中包含文件?【英文标题】:How to include files in icarus verilog? 【发布时间】:2017-11-23 07:07:56 【问题描述】:我知道基本的`include "filename.v" 命令。但是,我正在尝试包含另一个文件夹中的模块。现在,该模块还包括存在于同一文件夹中的其他模块。但是,当我尝试在最顶层运行该模块时,我遇到了错误。
C:\Users\Dell\Desktop\MIPS>iverilog mips.v
./IF/stage_if.v:2: Include file instruction_memory_if.v not found
No top level modules, and no -s option.
在这里,我正在尝试制作一个 MIPS 处理器,它包含在文件“mips.v”中。该文件的第一条语句是“`include”IF/stage_if.v“。并且,在 IF 文件夹中,有许多文件存在,我已将它们包含在 stage_if.v 中,其中一个是“instruction_memory_if.v”。下面是目录级图。
-IF
instruction_memory_if.v
stage_if.v
+ID
+EX
+MEM
+WB
mips.v
【问题讨论】:
通常您希望创建一个文件,列出您设计中使用的所有 RTL 文件(和路径)并将该文件传递给工具。快速的谷歌搜索显示,这个工具也是如此。 您是否尝试过使用“-h”限定符寻求帮助?如果你这样做了,你应该已经看到-I includedir
这个,你可以在命令行上指定搜索包含文件的目录。
【参考方案1】:
您需要使用-I
标志告诉iverilog
在哪里查看。
在top.v
:
`include "foo.v"
program top;
initial begin
foo();
end
endprogram
在foo/foo.v
:
task foo;
$display("This was printed in the foo module");
endtask
可以使用命令运行:
iverilog -g2012 top.v -I foo/
vvp a.out
>>> This was printed in the foo module
【讨论】:
以上是关于如何在icarus verilog中包含文件?的主要内容,如果未能解决你的问题,请参考以下文章
RTL基本知识:如何正确在敏感信号列表中包含function中的信号