![]() |
6 |
Emacs Verilog Mode |
![]() |
ルール
大変便利なemacs verilog modeですが、最上位でうまく行かなかったので調査したところ、以下のようなことが分かりました。
中間階層で、下位モジュールインタフェースをパススルーして上位に上げる場合のルールは、
- /*AUTOINPUT*/及び/*AUTOOUTPUT*/
最上位(テストベンチのように)で、信号がその階層内で留まる場合のルールは、
- /*AUTOREGINPUT*/及び/*AUTOWIRE*/
と記述します。
ちなみに、 /*AUTOINPUT*/と/*AUTOREGINPUT*/が同時に存在する場合は /*AUTOINPUT*/が勝ち、/*AUTOOUTPUT*/と/*AUTOWIRE*/が同時に存在する場合は、/*AUTOWIRE*/が勝つようです。
実施結果
まず中間階層に相当する、原始のverilog fileを示します。下位モジュールの信号を上位に上げる場合なので、/*AUTOINPUT*/及び/*AUTOOUTPUT*/と記述し、さらにインターフェース部分には/*AUTOARG*/と記述します。
![図%%.1](/images/fig233-1.png)
これに対してC-c C-aを実行すると、以下のように補完されます。
![図%%.2](/images/fig233-2.png)
次にテストベンチ相当の、原始のverilog fileを示します。下位モジュールからの信号はこの階層内で留まるため、/*AUTOREGINPUT*/及び/*AUTOWIRE*/と記述します。
![図%%.3](/images/fig233-3.png)
これに対してC-c C-aを実行すると、以下のように補完されます。
![図%%.4](/images/fig233-4.png)