Как включить файлы в icarus verilog?

Я знаю базовую команду `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, один из которых - "struction_memory_if.v ". Ниже - это диаграмма уровня каталога.

-IF
  instruction_memory_if.v
  stage_if.v
+ID
+EX
+MEM
+WB
mips.v

person Harshit Gupta    schedule 23.11.2017    source источник
comment
Обычно вы хотите создать файл, в котором перечислены все файлы RTL (и пути), используемые в вашем дизайне, и передать этот файл инструменту. Быстрый поиск в Google показал, что это также относится к этому инструменту.   -  person RaZ    schedule 23.11.2017
comment
Вы пробовали использовать квалификатор '-h' для получения помощи? если вы это сделали, вы должны были увидеть -I includedir это, и вы могли бы указать в командной строке каталоги, в которых искать включаемые файлы.   -  person Serge    schedule 23.11.2017


Ответы (1)


Вам нужно указать iverilog, где искать, используя флаг -I.

In top.v:

`include "foo.v"

program top;
    initial begin
        foo();
    end
endprogram

In 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
person Charles Clayton    schedule 24.11.2017