26 |
BSVの階層生成とシミュレーション (3) |
Verilog階層生成
まずソースファイルをコンパイルしてverilogコードを生成します。
$ bsc -verilog testFSM.bsv
Verilog file created: testFSM.v
このようにtestFSM.vが生成されます。
次に最上位ファイルから正しくモジュールが呼び出されるように、最上位ファイルtop.vを修正します。emacsでtop.vを開き、C-c C-aをするだけで(過去記事参照)、自動的にインタフェースが生成されます。最上位には以下の2行を記述します。
- /*AUTOREGINPUT*/及び/*AUTOWIRE*/
以下に最上位top.vにおいて、C-c C-a実行で変化する前とした後のコードを示します。
top.v(実行前)
module top();
/*AUTOREGINPUT*/
/*AUTOWIRE*/
testFSM testFSM_inst(/*AUTOINST*/);
(以下略)
top.v(実行後)
module top();
/*AUTOREGINPUT*/
// Beginning of automatic reg inputs (for undeclared instantiated-module inputs)
reg CLK; // To testFSM_inst of testFSM.v
reg RST_N; // To testFSM_inst of testFSM.v
// End of automatics
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [2:0] read; // From testFSM_inst of testFSM.v
// End of automatics
testFSM testFSM_inst(/*AUTOINST*/
// Outputs
.read (read[2:0]),
// Inputs
.CLK (CLK),
.RST_N (RST_N));
(以下略)
上記はコメントも含め全て、emacs verilog modeにより自動生成されたものです。