私は、Verilogを書くときにwire宣言をしないとエラーにするために、Verilogコードの最初に必ず`default_nettype noneを書くが、この設定で、ほかの暗黙のwire宣言を使っているその他のVerilogコードをコンパイルするとエラーになってしまう。
そのためにテストベンチの最後に必ず`default_nettype wireを書いておく。
endmodule
`default_nettype wire
なお、ModelSimでは、コンパイル済みのライブラリを使っているので、こう書く必要はないが、Veritakではライブラリもコンパイルしているので、必要のようだ。ということはVeritakはライブラリのVerilogファイルのコンパイルは最後ということになるのかな?
- 2007年11月26日 06:20 |
- 入門Verilog
-
| トラックバック:0
-
| コメント:2
たっく
はい、Veritak3.32Bから、ライブラリに関しては、XLに準じたコンパイル順序になっています。(Veritak F.A.Q.364) インスタンス化の際に、インスタンス化するモジュールがコンパイルされていない場合のみ、ライブラリディレクトリ中の同名ファイルを探索、パース、Elaborateというロジックになっています。パース終了後に、TOPを確定させ、TOPからインスタンス化展開していますので、結果的には、最後にコンパイルされるように見えます。
- 2007/11/26(月) 09:56:03 |
- URL |
- #-
- [ 編集 ]
たっくさん、サポートをしていただいているようで、どうも申し訳ありません。
了解しました。Elaborateの時に、ライブラリからコンパイルとなって、エラーが出るわけですね。
今度から`default_nettype noneを書いたVerilogファイル終わりに`default_nettype wireを書こうと思います。
- 2007/11/26(月) 17:31:45 |
- URL |
- marsee #-
- [ 編集 ]