Vivadoによる統合シミュレーションの方法


FPGAに実装するシステム全体のシミュレーションを行ってみましょう。

テストベンチとして kite_test.v を作成し、kite_top モジュールを呼び出しま す。KITEプロセッサは、リセット後にメモリに書き込まれたプログラムを実行開 始します。ですから、テストベンチからは 100MHzのCLK と RST のみを連続して与えます。
--- kite_test.v ---
`timescale 1ns/1ns
module kite_test;

reg        clk, rstn;
wire	   hdmi_tx_clk_p, hdmi_tx_clk_n;
wire [2:0] hdmi_tx_p,     hdmi_tx_n;

initial
begin
  $shm_open("waves.shm");
  $shm_pobe("as");
end

initial
begin
  #16000000;
  $finish;
end

initial
begin
  clk = 0;
  while( 1 )
     clk = #5 ~clk;
end

initial
begin
  rstn = 1;
  rstn = #5  0;
  rstn = #30 1;
end

kite_top kite_top (
	 .clk(clk),		        // Clock
	 .cpu_resetn(rstn),	        // Reset (Negative)
	 .hdmi_tx_clk_p(hdmi_tx_clk_n), // HDMI out clock (P)
	 .hdmi_tx_clk_n(hdmi_tx_clk_n), // HDMI out clock (N)
	 .hdmi_tx_p(hdmi_tx_p),	        // HDMI out data (P)
	 .hdmi_tx_n(hdmi_tx_n)	        // HDMI out data (N)
);

endmodule


統合シミュレーションでは、FPGA内部でクロック生成を行うPLLモジュールや DVI信号を生成するdvi_outモジュールを含めてシミュレーションします.
これまで,シミュレーションにはCADENCE社のVerilog-XLを用いていました が,FPGAに依存するクロックモジュールを使用する必要があるた め,Verilog-XLではシミュレーションができません.そのため,FPGA設計ツー ルであるVivado内のシミュレータを使用して全体のシミュレーションを行いま す.
<<以下内容作成中>>
手順
  1. Vivadoを起動する
  2. 新規プロジェクトを作成
  3. プロジェクトにこれまで作成したファイルを登録
    その際 "kite_test.v" は"simulation only"としてファイルを登録
  4. クロックウィザードを使用して,FPGAへ入力される100MHzから,プロセッ サおよびビデオコントローラが使用する75MHzを作成するクロックモジュール を作成する.
    作成方法
    1. "Flow Navigator" の "PROJECT MANAGER" から"IP Catalog" を選ぶ
    2. "IP Catalog" から"FPGA Features and Design" の "Clocking", "Clocking Wizard"を選ぶ.
    3. "Clocking Wizard" において,"Output Clocks" タブ内の "clk_out1"の出力周波数を100.000MHzから75.000MHzに変更する.
    4. "OK"を押して,クロックモジュールを生成する.(次に現れるウィンドウについては"Skip"でよい.)
    5. 生成したモジュールを "kite_top.v" からインスタンス呼び出しする.
         //
         // Clock module
         //
         clk_wiz_0 clk_module (
             .clk_in1( clk ),
             .clk_out1( CLK75 ),
             .reset( ~cpu_resetn ),
             .locked( LOCKED )
         );
      

  5. シミュレーションの実行.シミュレーション上で問題がないことを確認 する.





また,以下の波形から文字画面表示についても,問題なく動作していることが分かります.




次は、最後にFPGAへの実装処理および実機での動作確認を行います。


| Back |