Verilog2001版DDR SDRAMコントローラーのModelSimシミュレーションを進めている。大体コンパイル時のエラーは取れてModelSimでSimulateするところまでこぎつけた。でもSimulateメニューからStart Simulation...を選んでテストベンチのトップを選択しするとエラーが出る。それはDCMやBUFG、RAM16X1Dなどのmoduleが見つからないというエラーだ。Transcriptペインを見るとSearched libraries:がworkだけになっている。

これでは見つからないのも無理はない。VerilogでXilinxのunisimライブラリを参照するにはどうしたらいいんだろう。VHDLだとHDLソースに下のように書けばいいんだけど。
library UNISIM;
use UNISIM.VCOMPONENTS.ALL;
Verilogはどうしたらいいんだろうということで困った時のネット検索に頼った。そうするとKyoshowさんの
ModelSimの使い方がヒット。それによるとファイルを右クリックしたメニューからProperties...選ぶとダイアログが出る。ダイアログのVerilogタブを押すとありました”library Search...”ボタンをクリックしてVerilogのunisimの位置を指定。"-y H:/HDL/ModelSim_starter_61e/xilinx/verilog/src/unisims"
早速、再コンパイルしてやってみるがやはりだめ。よくダイアログを見たら"Project Compiler Settings"だった。Compiler Settingsは関係なさそうである。
改めてXilinxのアンサーサーチを検索してみると、
”ModelSim (MXE、SE、PE) - Verilog デザインで UniSim コンポーネントが使用できない”が見つかった。
それによると
`uselib lib=<library_mapping_name>
をVerilogソースに追加するそうだ。
実際には
// synthesis translate_off
`uselib lib = unisims_ver
// synthesis translate_on
をUNISIMライブラリを使うVerilogファイルの最初に入れた。そうしたところ
# ** Error: (vsim-3033) H:/HDL/FndtnISEWork/Spartan3E_starter_kit/DDRtest_org_verilog/ddr_controller_ono/dcm_module.v(51): Instantiation of 'BUFG' failed. The design unit was not found.
# Region: /DDRtest_tb/DDRtest_inst/ddr_sdram_cont_inst/dcm_module_inst
# Searched libraries:
# workというエラーはなくなった。このトラブルはシュートできたようだ。
でもその他のビット幅が合わないとかのエラーは出ている。今度はそれらのバグをシュートしようと思っている。
今回のバグはVerilogを使っている人には既知のことかも知れないがVHDLを使っていた私にはどうするのかわからなかった。
ちなみに仕事用パソコンはまだ完全に復旧していない。明日あたりは大体復旧できそうだ。今度はNortonゴーストを買ってディスクイメージを取っておこうか。。。
- 2007年01月11日 06:28 |
- 入門Verilog
-
| トラックバック:0
-
| コメント:0