FC2カウンター FPGAの部屋 2011年03月04日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

PlanAhead13.1を試してみた1(インプリメント、シミュレーション)

前回、”PlanAhead12.3でCreate New Projectしてみる1(プロジェクトを作るまで)”でやってみて、うまく行かずに諦めた自分のSpartan-3A Starter KitでCMOSカメラ・ディスプレイ回路で、どのようになるか試してみた。

PlanAhead13.1でNew Projectを作成して、Project Navigatorのプロジェクトをロードする。ロードするProject Navigatorのプロジェクトは現在比較しているプロジェクトとする。
プロジェクトをロードすることができた。少しワーニングがある。
ISE131_6_110303.png

インプリメントまで行ったが、問題なく終了したようだ。

Placement: Completed - No errors found.
Routing: Completed - No errors found.
Timing: Completed - No errors found.


ISE131_7_110304.png

ここで左のImplemented DesignからReport Timingをクリックすると、Report Timingダイアログが出てくるので、OKボタンをクリックするとタイミング解析が始まる。
ISE131_8_110304.png

そうすると、タイミングエラーがたくさん出ている。
ISE131_9_110304.png

これはなんでだろうか?タイミングはコンプリートしているはずなんだが?
同じファイルのProject NavigatorのプロジェクトでP&R後のスタティックタイミング解析してみたが、値が違っているし、タイミングエラーも出ていない。
ISE131_10_110304.png

特にddr2_dq0のfallingのデータパスが、PlanAhead、7.41nsに対して、Project Navigator、3.416nsで違いが大きすぎるのはなぜだろう?もう少しマニュアルを読んでみよう。

次に13.1からの新しい機能でPlanAheadプロジェクトからのシミュレーションをテストした。テストベンチとモデルをSimulation-Only SourcesとしてPlanAheadプロジェクトに入れて、Project NavigatorからBehavioral Simulationを行ったが、どうも、テストベンチのCamDispCntrler_DDR2_tb.vがトップとして認識されないようだ。
ISE131_11_110304.png

ISE131_12_110304.png

マニュアルを読んで勉強してみる必要がありそうだ。

(追記)
マニュアルを読んでいて、自分でテストベンチの名前を入れれば良いということに気が付きました。(気がつかないほうがおかしいですね?)
ISE131_13_110304.png

これでやるとfuseのエラーでした。

ERROR: [Runs-7] Fuse application returned error(s). Please see 'H:\HDL\FndtnISEWork\Spartan3A_starter_kit\CamDispCntrler_DDR2_Capt_SCCB_WS\Synth131\CamDisp_Cntrler_DDR2_PA\CamDisp_Cntrler_DDR2_PA.sim\sim_1\fuse.log' file for more details.


結局、fuse.logを見ろということだったんですが、見たところ原因はOVLでした。そういえばISE13.1にしてからライブラリをコンパイルするのを忘れていました。ライブラリをコンパイル、リンクしてから再度PlanAheadプロジェクトからのISimシミュレーションに挑戦します。

(2010/03/05:追記)
まずは環境変数を13.1用に変更した。
次に、”ISimでOVLのVHDL, Verilog混在シミュレーション(OVLライブラリのコンパイルと登録)”を参考にOVLをISimでコンパイルしてライブラリに登録した。今回は環境変数を見て、そのバージョンのコンパイルコマンドを使用するようにバッチファイルを変更した。
Behavioral Simulationをクリックして、シミュレーションするが、その時に、Launch Behavioral SimulationダイアログのOptions...ボタンをクリックすると、Simulation Optionダイアログが出てくる。
ISE131_14_110305.png

Simulation OptionダイアログのLanguage Optionsタブをクリックして、Verilog Options:の脇の...ボタンをクックする。
ISE131_14_110305.png

Verilog Optionsダイアログが開くので、Verilog Search Paths とDefines を設定した。さらにUse Verilog 2001のチェックを入れた。
ISE131_15_110305.png

それでシミュレーションしても、やはりエラーだ。エラーの内容を下に示す。

ERROR:HDLCompiler:1654 - "H:\HDL\FndtnISEWork\Spartan3A_starter_kit\CamDispCntrler_DDR2_Capt_SCCB_WS\Sources\VGA_Display_Controller.v" Line 454: Instantiating from unknown module
ERROR:HDLCompiler:1654 - "H:\HDL\FndtnISEWork\Spartan3A_starter_kit\CamDispCntrler_DDR2_Capt_SCCB_WS\Sources\Arbiter.v" Line 173: Instantiating from unknown module
ERROR:Simulator:778 - Static elaboration of top level Verilog design unit(s) in library work failed


ovl_neverとovl_alwaysが見つからないというエラーだ。
そういえば、accellera_ovl_vlogライブラリへのリンクを指定していない。バッチファイルファイルに書いているのと同じ

-L accellera_ovl_vlog=%XILINX%\verilog\hdp\nt\accellera_ovl_vlog


をLaunch Behavioral SimulationダイアログのOptions...ボタンをクリックして出てきたSimulation OptionダイアログのMore Fuse Optionsに入れても同様にだめだった。
それじゃ、%XILINX%が展開できないのか?とう言うことで、

-L accellera_ovl_vlog=K:\HDL\Xilinx\13.1\ISE_DS\ISE\verilog\hdp\nt\accellera_ovl_vlog


ISE131_16_110305.png

を入れてみたら、ISimが起動した。やったー。やっと起動した。
ISE131_17_110305.png

これでPlanAheadからISimを起動することができた。

今回は、PlanAheadからISimを起動VerilogのincludeパスやDefine値、ライブラリの追加を試すことができた。ライブラリの追加は専用のコンボボックスが欲しい。
  1. 2011年03月04日 05:32 |
  2. PlanAheadについて
  3. | トラックバック:0
  4. | コメント:0