2017-11-23 4 views
0

Ich kenne den grundlegenden Befehl `include" filename.v ". Aber ich versuche, ein Modul aufzunehmen, das in einem anderen Ordner ist. Dieses Modul enthält nun weitere Module, die sich im selben Ordner befinden. Aber wenn ich versuche, das Modul auf der obersten Ebene auszuführen, erhalte ich einen Fehler.Wie können Dateien in icarus verilog eingebunden werden?

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. 

Hier versuche ich einen MIPS-Prozessor zu machen, der in der Datei "mips.v" enthalten ist. Die erste Anweisung dieser Datei ist "` include "IF/stage_if.v". Und im IF-Ordner sind zahlreiche Dateien vorhanden, die ich in stage_if.v aufgenommen habe, darunter "instruction_memory_if.v" Diagramm ist die Verzeichnisebene

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

Normalerweise wollen Sie eine Datei erstellen, die alle RTL Dateien auflistet (und Pfade) in Ihrem Design verwendet und diese Datei in das Werkzeug übergeben. Eine schnelle Google-Suche ergab, dass dies auch für dieses Tool der Fall ist. – RaZ

+0

hast du '-h' Qualifier für Hilfe versucht? Wenn Sie das getan hätten, hätten Sie '-I includedir' gesehen, das Sie in der Befehlszeile angeben könnten, um die Verzeichnisse anzugeben, in denen nach Include-Dateien gesucht werden soll. – Serge

Antwort

0

Sie müssen iverilog sagen, wo die Verwendung von suchen -I Flagge

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 

die unter Verwendung der Befehle ausgeführt werden können:

iverilog -g2012 top.v -I foo/ 
vvp a.out 

>>> This was printed in the foo module 
Verwandte Themen