isplever6_x_modelsim_rev1.0.ppt Page: 1 isplever Ver 6.x Lattice 版 ModelSim User Manual
目次 < 項目 > < ページ > 1. はじめに 3 2.Project Navigator から起動した場合のシミュレーション方法 5 2-1.ispLEVER の起動 6 2-2. 新規プロジェクトの作成 7 2-3. デザインエントリー 11 2-4.VHDL ソースの入力 12 2-5. ソースのコンパイル 14 2-6. テストベンチの作成 ( テンプレート機能を使った場合 ) 15 2-7. テストベンチの編集 16 2-8. ファンクションシミュレーションの実行 19 2-9. オペレーションに必要なアイテム紹介 21 2-10. ファンクションシミュレーション詳細 22 2-11. データフロー解析 30 2-12. タイミングシミュレーションの実行 33 3.ModelSimを単体で起動した場合のシミュレーション方法 34 3-1.Modelsimの起動 35 3-2. プロジェクトの作成 36 3-3. プロジェクトを開く /HDLソースのインポート 37 3-4.HDLファイルのコンパイル 38 3-5. コンパイルオプション (VHDL) 39 3-6. コンパイルオプション (Verilog) 41 3-7. シミュレーション 43 3-8. シミュレーション オプション 45 3-9. 波形の表示 47 3-10. その他のウィンドウ 48 4. 参考資料 49 4-1. シミュレーションに際して 50 4-2 タイミングモデルファイルの生成 52 5. 終わりに 54 isplever6_x_modelsim_rev1.0.ppt Page: 2
1. はじめに isplever ver5.0 ( 以後 isplever と略す ) は Lattice Semiconductor 社の PLD 設計ツールです isplever には 言語シミュレータである Mentor Graphics 社の ModelSim がバンドルされております (Lattice 社 PLD 専用のものになります ) 本マニュアルでは Lattice 社 PLD 設計に関して ModelSim を使用して言語 (VHDL,Verilog) によるシミュレーション方法を順を追って解説しています 本マニュアルをご使用頂くことで ModelSim によるシミュレーションの一連の流れを設計フローを通じて理解していただくことができます isplever6_x_modelsim_rev1.0.ppt Page: 3
1. はじめに ~ シミュレーションフロー PLD 設計におけるシミュレーションの位置付け このページでははじめにラティス社 PLD 設計フローを通して シミュレーションがどのような位置付けにあるのかについて記します 尚 下記フローにおける解説の詳細は本マニュアル内の該当箇所をご参照ください RTL( 回路設計 ) 論理合成 ファンクションシミュレーション : 機能シミュレーションともよばれる 文字通り機能的な動作を確認するためのシミュレーションで 各信号間の遅延などのタイミング情報はシミュレーションの実行において加味されない フロア プラン 配置 配線 タイミングシミュレーション : 遅延シミュレーションともよばれる 論理合成後 ターゲットデバイスに回路をフィッティングした結果のシミュレーション デバイスが固有に持っている最大遅延値がシミュレーション実行の際に加味されるため 各信号間においてタイミング的な問題を評価 / 検討することができる タイミング解析 ダウンロード isplever6_x_modelsim_rev1.0.ppt Page: 4
2. Project Navigator から起動した場合のシミュレーション方法 ここでは isplever のトップにある Project Navigator から Modelsim を起動した場合の基本オペレーションについて紹介します 設計フローについての詳細は別途該当のマニュアルをご参照ください isplever6_x_modelsim_rev1.0.ppt Page: 5
2-1 isplever の起動 isplever を起動させます 1. スタートメニューより [ プログラム ] [Lattice Semiconductor] [isplever Project Navigator] を実行します デバイス及び設計ファイル 設計に対する各種プロセス コンパイルログ及びレポートファイル 2. [File] [New Project] を選択して 新規プロジェクトを作成します リビジョン管理 New Project を選択 Open Example を選択するとサンプルソースを選択することが可能です 使い始めはこれを選択して作業の流れを確認するのも良いと思います 新規以外のプロジェクトの場合は Open Project を選択してください isplever6_x_modelsim_rev1.0.ppt Page: 6
2-2 新規プロジェクトの作成 -1 1. Project Wizard が起動します プロジェクト名 プロジェクトのパス 新規プロジェクト用に新しいフォルダを作成します ( 必ず作成してください!) デフォルトでは プロジェクト名と同じ名前のフォルダが作成されます プロジェクトのタイプ 合成ツール プロジェクト名には 日本語 を使用しないでください 上図のようにプロジェクト名を sample として プロジェクトのタイプは VHDL を選択してください ( プロジェクトタイプはエントリー方法に応じてお選びください ) 合成ツールを選択してください 2. 各項目を入力 選択して 次へ をクリックします プロジェクトフォルダを配置する場所としてマイドキュメントやデスクトップを選択しないで下さい ( プロジェクトが保存されているパスに日本語や空白スペースが入っていると問題になることがあります ) isplever6_x_modelsim_rev1.0.ppt Page: 7
2-2 新規プロジェクトの作成 -2 新規プロジェクトで用いるターゲットデバイスを選択します 1. ターゲットデバイスを選択します 1 デバイスファミリーの選択 6 デバイス情報 2 スピードグレード 4 製品グレード 3 パッケージタイプ 5 デバイス名 2. 次へ をクリックします isplever6_x_modelsim_rev1.0.ppt Page: 8
2-2 新規プロジェクトの作成 -3 新規プロジェクトで用いるソースファイル 1. すでに使用するソースファイルがあれば Add Source ボタンを押して追加します ( ここで指定しなくても問題ありません ) 追加の際 各ソースのタイプもあわせて指定します ソース追加ボタン 指定したソースをプロジェクトフォルダにコピーするか指定 2. 指定したソースがリストに追加されます 次へ をクリックします isplever6_x_modelsim_rev1.0.ppt Page: 9
2-2 新規プロジェクトの作成 -4 新規プロジェクトの内容確認 1. プロジェクトの構成が表示されます 内容を確認して完了ボタンを押すと プロジェクト作成が完了します 2. 前画面でテストベンチファイルを指定した場合 そのテストベンチをどこに関連させるか指定します isplever6_x_modelsim_rev1.0.ppt Page: 10
2-3 デザインエントリー 新規プロジェクトのエントリーをします ( 例として 回路図と VHDL で行ないます ) 1. Project Navigator から [Source] [New] を選択します 2. VHDL Module を選択し OK をクリックします 新規作成時は [New] を選択して下さい 既にソースが作成済みの場合の場合は [Import ] を選択してください プロジェクトからソースを外したいときには [Remove] を選択してください この作業ではフォルダ内からファイルは削除されません 3. 表示されたダイアログボックスの各項目を入力して OK をクリックします VHDL Module を選択 Schematic User Document Verilog Module Verilog Test Fixture VHDL Module VHDL Test Bench 回路図入力 (EC/ECP/XPはトップ階層のみ) コメント等のオプション機能 Verilog HDL のソース Verilog HDL のシミュレーション記述 VHDL のソース VHDL のシミュレーション記述 入力参考例 File Name Entity Architecture :counter :counter :behavioral 選択できるファイルタイプは プロジェクトタイプにより変わります isplever6_x_modelsim_rev1.0.ppt Page: 11
2-44 VHDL ソースの入力 ソースファイルを作成します ( 簡単な 4 ビットのアップ / ダウンカウンタを作成しましょう ) 1. 前ページで入力した項目が記載されたテキストエディタが開きます 入力するサンプルソースは次ページ以降を参照してください Save アイコンを選択して保存してください もしくは [File] [Save] を選択して保存してください isplever6_x_modelsim_rev1.0.ppt Page: 12
VHDL サンプルソース (4 ビットアップダウンカウンタ ) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is port( clk :in std_logic; --"port" でピン定義をします rst :in std_logic; c_en :in std_logic; up_dw :in std_logic; count :out std_logic_vector(3 downto 0)); end; architecture behavioral of counter is --architecture 以下にPLDの -- 動作を記述します signal n_count:std_logic_vector(3 downto 0); -- 内部ノードを設定します begin process(clk,rst) begin if(rst='1')then --リセット条件(High active) n_count <= "0000"; elsif(clk 'event and clk ='1')then --クロックの立ち上がり動作 if (c_en = '1') then --クロックイネーブルで動作 if(up_dw ='1')then --アップ/ ダウン信号で動作 n_count <= n_count + 1; --カウントアップ elsif(up_dw ='0')then n_count <= n_count - 1; --カウントダウン else n_count <= n_count; --カウントしません( データ保持 ) end if; end if; end if; end process; count <= n_count; --ピンに出力します End behavioral; 入力が終了しましたら前ページを参考に保存して下さい isplever6_x_modelsim_rev1.0.ppt Page: 13
2-5 ソースのコンパイル ソースファイルをコンパイルします ( ソースのチェックを行ないます ) 1. Place & Route Timing Checkpointをダブルクリック 2. コンパイルが始まります もしくはハイライト表示して Startボタンをクリックしてください ダブルクリック! もしくは ( チェックマークの意味 ) 右クリックで表示されるウィンドウから [Start] を選択してください コンパイル成功です ( エラーはありません ) コンパイル成功です ( ワーニングがあります ) エラーがなければチェックマークがつきます コンパイルエラーです ( ログを確認して下さい ) 記述したソースに文法的な誤りがあるかどうかをチェックします エラーが発生した場合はもう一度記述等を確認してください isplever6_x_modelsim_rev1.0.ppt Page: 14
2-6 テストベンチの作成 ( テンプレート機能を使った場合 ) テストベンチファイルの生成 1 1. isplever のテストベンチ自動生成機能を使ってファイルを作成します 2. レポートビューアーで自動生成されたファイル (counter.vht) が表示されます 1 ソースファイルをハイライト表示 2VHDL Test Bench Template をハイライト表示 ダブルクリック 参考 レポートビューアーが表示されない場合には プロジェクトナビゲータのメニューより [Options] [Environment] を選択していただき 表示されるウィンドウの中から [Log] タグを選択して Using Report Viwer にチェックを入れて OK を押下してください isplever6_x_modelsim_rev1.0.ppt Page: 15
2-7 テストベンチの編集 -1 テストベンチファイルの編集 -1 1. 先に開いていた テキストエディタのメニューから [File] [Open] をクリック もしくは Open アイコンをクリックしてください 2. ファイル名の項目に *.vht と入力してリターンキーを押してください 3. テキストエディタが開きます *.vht とここに入力 これが Open アイコンです counter.vht を選択して開くをクリックすると先程作成したテストベンチファイルがエディタで開きます isplever6_x_modelsim_rev1.0.ppt Page: 16
2-7 テストベンチの編集 -2 テストベンチファイルの編集 -2 1. 右記を参照してファイルを完成させてください 尚 先に開いていた sample.vhd を参照したい場合は [Window] [Tile Horizontal] をクリックしてください 二つのファイルがエディタ上で同時に開きます LIBRARY ieee; LIBRARY generics; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all; USE generics.components.all; ENTITY testbench IS END testbench; ARCHITECTURE behavior OF testbench IS BEGIN COMPONENT counter PORT( clk : IN std_logic; rst : IN std_logic; c_en : IN std_logic; up_dw : IN std_logic; count : OUT std_logic_vector(3 downto 0) ); END COMPONENT; SIGNAL clk : std_logic; SIGNAL rst : std_logic; SIGNAL c_en : std_logic; SIGNAL up_dw : std_logic; SIGNAL count : std_logic_vector(3 downto 0); uut: counter PORT MAP( clk => clk, rst => rst, c_en => c_en, up_dw => up_dw, count => count ); -- *** Test Bench - User Defined Section *** -- *** End Test Bench - User Defined Section *** END; isplever6_x_modelsim_rev1.0.ppt Page: 17
2-7 テストベンチの編集 -3 テストベンチファイルの編集 -3 1. 完成したファイルを名前をつけて保存します [File] [Save As ] をクリックしてファイル名を指定して保存してください (verilog の場合は拡張子を *.tfi から *.tf に変更してください ) 名前をつけて保存します isplever6_x_modelsim_rev1.0.ppt Page: 18
2-8 ファンクションシミュレーションの実行 -1 ファンクションシミュレーションの実行 -1 2. ModelSim が自動的に起動し 自動的にシミュレーションを開始します 1. Project Navigator 上から シミュレーションを実行します まず tb_counter.vhd をハイライト表示にし VHDL Function Simulation もしくは VHDL Post-Route Function Simulation をダブルクリックしてください 配置配線完了前に VHDL Post- Route Function Simulation を実行した場合 シミュレーションを実行する前に配置配線を行なってから シミュレーション結果を表示します ダブルクリック! ハイライト表示にしてください isplever6_x_modelsim_rev1.0.ppt Page: 19
2-8 ファンクションシミュレーションの実行 -2 ファンクションシミュレーションの実行 -2 1. シミュレーションが実行されて 波形が表示されます Undock ボタンを押して wave 画面を単独にとり出します 2. 波形表示の拡大 / 縮小は [Zoom] メニューから選択します Undock ボタン 3. ModelSim を終了する際には 上図 1 の画面において [File] [Quit] を選択して下さい 確認用のウィンドウが開きますので はい を選択して終了してください はい を選択して下さい Quit を選択! isplever6_x_modelsim_rev1.0.ppt Page: 20
2-9 オペレーションに必要なアイテム紹介 ツールバーにある各アイコンの説明をします Load Wave Format: ロードするマクロファイルを指定します Run Continue: ブレークポイントからシミュレーションを再開します (Run で設定した時間内で実行します ) Save Wave Format: マクロファイルをセーブします Run All: ブレークボタンを押下するまでシミュレーションを実行し続けます Print Waveform: 表示された波形を印刷します Add Cursor: カーソルを追加します ( 最大 19 本 ) Delete Cursor: 追加したカーソルを削除します Find Previous Transition: カーソルで指定した場所よりも以前の変化点を検索してカーソルをジャンプさせます Find Next Transition: カーソルで指定した場所の次に来る変化点を検索してカーソルをジャンプさせます Restart: 画像描画を取り消し 最初からやり直します Run: 所定の時間だけシミュレーションを実行します ( デフォルトは 100ns) Break: シミュレーションを強制的にストップします Select Mode: 画面上のポインタでカーソルの位置を自由に動かせるモードになります Zoom Mode: 画面上のポインタを右にドラッグすると拡大 左にドラッグすると縮小表示します Zoom In 2 : 表示波形を 1 クリックあたり 2 倍に拡大します Zoom Out 2 : 表示波形を 1 クリックあたり 2 倍に縮小します Zoom Full: 表示波形を画面内フル表示します Stop Wave Drawing: シミュレーション中に波形描画をストップします Show Drivers: カーソルで指定した波形を Data Flow 画面にリンクさせて表示します isplever6_x_modelsim_rev1.0.ppt Page: 21
2-10 ファンクションシミュレーション詳細 -1 ファンクションシミュレーションの詳細 1 1. カウンターなど 多ビットの信号を 1bit ずつ見たい場合 /tb_sample/count の頭についている + をクリックしてください 各 bit の波形を見ることができます 2. カーソルを表示したい場合 [Insert] [Cursor] を選択するか アイコンから選択して下さい Insert Cursor アイコンをクリック! + をクリック! 隣り合ったカーソル間の時間差が表示されます 3. バス信号などの表示形式を Binary から Hex に変えたい時には 所定の信号を選択した状態で右クリックしてメニューから [ Radix] [ Hexadecimal] を選択して下さい その他の表示形式も選択可能です isplever6_x_modelsim_rev1.0.ppt Page: 22
2-10 ファンクションシミュレーション詳細 -2 ファンクションシミュレーションの詳細 2 1. 表示している信号のパスを簡略化して表示させたい場合 [Tools] [Window Preferences..] を選択して設定ください 2. 任意の波形をカラー表示させたいときには [Format] [Color] を選択して設定してください ここを選択 Color を選択 1 を入力して OK を押下ください Choose Color を選択 気に入った色を選択すると 選択したカラーで波形が表示されました isplever6_x_modelsim_rev1.0.ppt Page: 23
2-10 ファンクションシミュレーション詳細 -3(( 内部ノードの観測 ) ファンクションシミュレーションの詳細 3 1. 内部ノードを観測したい場合には Modelsim のコントロールパネルにおいて [View] [Debug Windows] [Objects] と [View] [Workspace] を開きます 2. 選択した内部ノードを波形ビューアに反映させるためには 任意に選択した波形をビューア側にドラッグ & ドロップして下さい この 2 つを選択してウィンドウを開いて下さい 選択した内部ノードが追加されました UUT をハイライトすると 右の Singal ウィンドウのような表示になります ( 内部ノードが表示されるようになります ) 追加した内部ノード波形の表示方法 本ページの内容に従って内部ノードを追加しただけでは 上図を見れば分るように波形は表示されません ( これはシミュレーション実行時に信号自体が選択されていなかったためです ) ここで選択した波形を表示させるためには アイコンメニューより Restart を選択して Run を実行してください この作業により追加した内部ノードの波形を参照することが可能になります isplever6_x_modelsim_rev1.0.ppt Page: 24
2-10 ファンクションシミュレーション詳細 -4(( マクロファイル *.do の作成 ) ファンクションシミュレーションの詳細 4 1. 表示した信号およびカラー処理などの状態をまとめてマクロファイルとして保存することが可能です これは任意の信号のみを表示したいときなどに有効なテクニックです 波形ビューアに表示されている信号がマクロ化したい状態のものであるかどうかを確認して下さい 2. 作成したマクロファイルを波形表示時に手動で読み出します ( 自動で読み出す方法についてはバッチファイルの処理に関する記述があるページを参照して下さい ) Modelsim を起動した際に波形ビューアに表示される信号を全て選択して削除してください 右クリックメニューにある [Delete] を選択して下さい 続いてメニューより [File] [Save] [Format] を選択して下さい 続いてメニューより [File] [Open] [Format] を選択して ページ左の作業で保存した.do ファイルを選択して開いて下さい ビューア上に先程保存した状態と同じ波形 ( カラー処理についても再現します ) が表示されますので 前ページの囲み内にある内容に従って シミュレーションをリスタートして 必要な観測結果を表示させてください 任意のファイル名.do をつけて保存して下さい 尚 その際に保存先のディレクトリに注意して下さい ( プロジェクトと同ディレクトリに保存することをお勧めします ) isplever6_x_modelsim_rev1.0.ppt Page: 25
2-10 ファンクションシミュレーション詳細 -5(( バッチファイル編集 ) ファンクションシミュレーションの詳細 5 1. isplever のプロジェクトナビゲータから Modelsim を起動した場合には バッチファイルを参照して全ての初期動作が決められています つまり このファイルの中身を編集することによって よりカスタマイズしたシミュレーションを実行することが可能になるということです 以下に カスタマイズの手順 / 方法を示します プロジェクトが保存されているディレクトリを開いて 拡張子が *.udo のファイルを探してください 一度いずれかのシミュレーションを実行すると *.udo ファイルが作成されます 例 ) tb_sample_vhdf.udo Function Simulation で参照 tb_sample_vhdr.udo Post-Route Function Simulation で参照 tb_sample_vhd.udo Post-Route Timing Simulation で参照 ファイルが見つかりましたら適当なテキストエディタでそのファイルを開いて下さい 以下に今回のマニュアル作成に用いたプロジェクトにおける *.udo ファイルを示します *.udo ファイルの例 -- isplever VHDL Functional Simulation Template: test_vhdf.udo. -- You may edit this file to control your simulation. -- You may specify your design unit. vsim test -- You may specify your waveforms. add wave * -- You may specify your simulation run time. run 1000 ns test という名前のテストベンチを実行 波形をビューアに読み出します 初期動作でシミュレーションを 1000ns 実行します ( この数値を変更すればシミュレーション実行時間が変わります ) 上記例において add wave * を前ページで作成した *.do ファイルを読み込むように修正しておけば Modelsim を起動するたびにマクロファイルをロードするのではなく 常に指定したシミュレーション結果を表示するようにカスタマイズすることが可能になります 以下の例を参考にして add wave * を修正してください ( 変更例 ) do C:/Design/test/manual/modelsim/wave_sample.do 変更する際には 実際にマクロファイルが保存されているパスを記述するようにして下さい 上記はあくまでも一例です isplever6_x_modelsim_rev1.0.ppt Page: 26
ファンクションシミュレーションの詳細 6 2-10 ファンクションシミュレーション詳細 -6(( コマンドラインの応用 ) 1. Modelsim においては 下図 1 のウィンドウを DOS プロンプトのようなシェルとして使用し コマンドのみでシミュレーションおよびその他の機能を実行することが可能になっています 以降のページでは基本的なコマンドラインについて紹介します ( コマンドは全て 小文字 で入力するようにしてください ) 図 1: コマンド用ウィンドウ ( 初期起動時に表示されるウィンドウのことです ) この部分にコマンドを直接入力することでシミュレーションに関わる様々な作業を実行することが可能です isplever6_x_modelsim_rev1.0.ppt Page: 27
2-1010 ファンクションシミュレーション詳細 -7(( コマンドラインの応用 ) ファンクションシミュレーションの詳細 7 do コマンド 作成したマクロファイルを呼び出します 尚 マクロファイルは現在起動しているシミュレーションのプロジェクトディレクトリと同じ場所に保存されている必要があります ( 例 ) : sample_wave.do というマクロファイルを呼び出したい場合 VSIM > do sample_wave.do ( do [ 呼び出したいマクロファイル名 ] ) history コマンド 過去に実行したコマンドを一覧表示させることが可能です また表示させた一覧に付加されている番号を使ってコマンドを実行することも可能です ( 表示例参照 ) ( 例 ):VSIM >history VSIM >!3 ( 右参考図のように履歴が表示された時に run を実行したいときにはこのように記述してください ) run コマンド シミュレーションを実行します 記述の方法によって シミュレーション実行時間を調整することが可能です ( 例 1) : 任意の時間だけシミュレーションを実行したい場合 ( ここでは 400ms のシミュレーションを実行 ) VSIM > run 400 ms ( 例 2) : シミュレーションを波形で設定した時間だけ全て実行したい場合 VSIM > run -all delete コマンド 波形消去用のコマンドです このコマンドを入力すればビューアに表示されている波形が全て消去されます ( 例 ) : VSIM > delete wave * ( 書式は delete wave [-window <wname>] <item_name> になります ) restart コマンド ( 表示例 ) VSIM > history # 1 do test.fdo # 2 do wave.do # 3 run -all # 4 history シミュレーションを再実行します 信号の追加などをした際にシェル内に restart と入力して Enter キーを押してください 確認用のダイアログが開きます ( 操作アイコンで restart を選択した時と同じ動作をします ) ( 例 ) : VSIM > restart quit コマンド Modelsim を終了します コマンド実行後に終了を確認するダイアログが開きますので OK を選択して下さい ( 例 ) : VSIM > quit isplever6_x_modelsim_rev1.0.ppt Page: 28
2-10 ファンクションシミュレーション詳細 -8(( コマンドラインの応用 ) ファンクションシミュレーションの詳細 8 前ページで紹介したコマンドラインの他にも多くの有効なコマンドがあります 詳細については以下で紹介するドキュメントをご参照いただきますようお願いいたします ( 資料は全て英語版です ) ユーザーガイドです ( 全般的に Modelsim オペレーションについてが記述されています ) コマンドラインについての詳細が記されています Modelsim の各種ウィンドウについての詳細について記されています プロジェクトの作成方法 デバッグの方法など個別の項目についての詳細が記されています 上記 4 つのファイルの表紙になります この PDF をデスクトップに置いていただければいつでも 4 つのファイルにアクセスしていただくことが可能になります 5 isplever6_x_modelsim_rev1.0.ppt Page: 29
2-11 データフロー解析 -1 データフロー解析 1 データフローを実行することで 回路内における各信号の物理的な接続を容易に確認することが可能になります デザインを通じて伝播するイベントの追跡を行ったり 予期しなかった出力の原因を特定するのに使うことができます 実行に際してはシミュレーションコントロールパネルのメニューより [View] [Debug Windows] [Dataflow] を選択します 左のウインドウが出てくるので ここでのアイコンをクリックして波形画面も表示させます Waveウインドウより確認したい波形を選択してドラッグするとDataflowウインドウに波形が反映されます isplever6_x_modelsim_rev1.0.ppt Page: 30
2-11 データフロー解析 -1 下の波形をダブルクリックすると具体的な接続やデータの流れを確認することができます データフローウィドウ : デザインの物理的な接続関係を調べることができます プロセスからプロセスへビューを展開して 特定のシグナル / ネット / レジスタのドライバ, レシーバを表示させることが可能です 波形ウィンドウ : 波形ビューアを用いてデザインの詳細を解析することも可能です 組み込まれている波形ビューアの操作方法は前ページまでに紹介したものと同じです isplever6_x_modelsim_rev1.0.ppt Page: 31
2-11 データフロー解析 -2 ツールバーにある各アイコンの説明をします Trace input net to event: 次のイベントカーソルを 選択された出力をドライブする次の入力イベントの部分に移動させます Trace Set: 選択された入力イベントのソースにカーソルをジャンプします Erase highlight: デザインをトラバースしたパスを示す緑色のハイライトを解除します Erase all: ウィンドウをクリアします Trace Reset: 次のイベントカーソルを選択された出力に戻します Trace net to drive X: 不定値の最後のドライバまでをステップしてトレースします Regenerate: ディスプレイをクリアして最適なレイアウトで再描画します Show wave: 波形ビューアの ON/OFF をします Expand net to all drivers: 選択されたシグナル / ネット / レジスタのドライバを表示します Expand net to all drivers and readers: 選択されたシグナル / ネット / レジスタのドライバ, レシーバを表示します Expand net to all readers: 選択されたシグナル / ネット / レジスタのレシーバを表示します その他 特にここで説明のないアイコンについては本資料 p.21 を参照して下さい isplever6_x_modelsim_rev1.0.ppt Page: 32
2-12 タイミングシミュレーションの実行 タイミングシミュレーションの実行 1. Project Navigator 上から シミュレーションを実行します まず tb_sample.vhd をハイライト表示にし VHDL Post-Route Timing Simulation をダブルクリックしてください 2. ModelSim が自動的に起動し 自動的にシミュレーションを開始します ダブルクリック! ハイライト表示にしてください タイミングシミュレーションとは 文字通り デバイス個々が持っている最大遅延値を反映したシミュレーションのことをさしています ファンクションシミュレーションではデザインした回路の動きのみをシミュレートしているのに対して タイミングシミュレーションでは実際に各信号間の遅延を含めて観測することが可能になります Modelsim の操作方法としてはファンクション / タイミング両シミュレーションにおいて違いはありませんので前ページまでの解説を参考に作業を進めてください isplever6_x_modelsim_rev1.0.ppt Page: 33
3. ModelSim を単体で起動した場合のシミュレーション方法 前 Section にて isplever からの一連の流れでの ModelSim の使用方法について解説してきました 本 Section では ModelSim を単体で起動し より詳細な操作方法に関して説明していきます isplever6_x_modelsim_rev1.0.ppt Page: 34
3-1 Modelsim の起動 ModelSim を起動 1. スタートメニューより [ プログラム ] [Lattice Semiconductor] [ModelSim] を実行します isplever6_x_modelsim_rev1.0.ppt Page: 35
3-2 プロジェクトの作成 HDL デザインを構成するエンティティを管理するためにプロジェクトを作成プロジェクトを作成するとフォルダが自動的に作成されます 1. ModelSim 起動時に表示される Welcome to ModelSim ウィンドウから Jumpstart ボタンを押して表示されるウィンドウの [Create a Project] をクリックするとプロジェクトの作成を開始します Welcome to ModelSim ダイアログボックスが表示されない場合は Main ウインドウから [Help] [Welcome Menu] を選択することにより表示されます 2. Create Project ダイアログボックスが起動します Create Project ダイアログボックスに Project Name( プロジェクト名 ) Project Home( プロジェクトのフォルダ ) を記入し OK を押します Create Project ダイアログボックスは Main ウインドウの [File] [New] [Project] からでも起動可能です Jumpstart 起動 プロジェクト名 プロジェクト作成開始 フォルダ名 isplever6_x_modelsim_rev1.0.ppt Page: 36
3-3 プロジェクトを開く /HDL/ ソースのインポート 作業を始める前にプロジェクトを開く プロジェクトを作成した直後はすでにプロジェクトが開いています 1. Main ウインドウから [File] [Open] [Project...] を選択します 2. 既存のプロジェクトを選択してプロジェクトを開きます 3.HDL ソースをプロジェクトに呼び込みます マイコンピュータ等でプロジェクトディレクトリにコピーしていただくか [File] [Add to Project] [Existing File] でインポートします HDL ソースを指定 プロジェクトを開く ソースをコピーするか 参照するかを指定 実行 ファイルの種類を指定 (mpf) isplever6_x_modelsim_rev1.0.ppt Page: 37
3-44 HDL ファイルのコンパイル シミュレーションするために HDL ソースをコンパイル 1. Main ウインドウから [Compile] [Compile All] を選択するか ソースをハイライトして [Compile] [Compile Selected] ボタンを押します Order 順にコンパイルを実施 [Compile] [Compile All] の場合 Order に示された順番にコンパイルします 順番を変更する場合は [Compile] [Compile Order] を選択し 順番を指定します エラーがあった場合は Main ウインドウのエラーメッセージ ( 赤色 ) をダブルクリックすればエディタが立ち上がり 問題個所が表示されます ソースをハイライトして右クリック [Compile] [Compile Properties] により コンパイルのコンパイル設定画面に 詳細は次ページ以降 コンパイルするべきファイルについては 参考資料ページを参照下さい isplever6_x_modelsim_rev1.0.ppt Page: 38
3-5 コンパイルオプション (VHDL)-1 VHDL ソースのコンパイルオプション 1 VHDL オプションの選択タブ Language Syntax コンパイル時に使用する規格を指定します Don t put debugging info in library このオプションを指定すると ModelSim のデバック機能が使用不可になります また コード中のブレークポイントやシングルステップ実行もできなくなります Use explicit declarations only 明示的なファンクション定義によって 暗黙的なファンクションのオーバーロードを行う場合の制約を無視するようにします Disable loading messages Main ウインドウでローディングメッセージを非表示にします Show source lines with errors Main ウインドウ上に表示されるエラーメッセージと関連したソースコード行を表示させます Disable all optimizations コンパイルにおいて最適化しないよう指定します Check for Synthesis 合成ルールのチェックを有効または無効にします Vital Compliance Vital 準拠チェックを有効または無効にします Optimize for std_logic_1164 シミュレーションの高速化のため std_logic_1164 パッケージを最適化します Vital Vital パッケージの最適化を行います isplever6_x_modelsim_rev1.0.ppt Page: 39
3-5 コンパイルオプション (VHDL)-2 VHDL ソースのコンパイルオプション 2 Report Warnings on Unbound Component ソースコードから参照されるライブラリ内に 該当するエンティティが存在しないような VHDL のコンポーネントインスタンシエーションに対してワーニングを表示します Process without a WAIT statement wait 文やセンシティビティリストを含まないプロセス文に対してワーニングを表示します Null Range 0 downto 7 のような 無効な範囲の指定に対してワーニングを表示します No space in time literal 数字と時間単位の間にスペースが抜けている時間記述に対してワーニングを表示します Multiple drivers on unresolved signal 複数のドライバを持つ アンリゾルブタイプのシグナルに対してワーニングを表示します Other VHDL Options PSL File ModelSim では Accellera で標準化された Property Specification Language (PSL) のシンプルなサブセットをサポートしています ここで PSL ファイルを取り込むことができます isplever6_x_modelsim_rev1.0.ppt Page: 40
3-6 コンパイルオプション (Verilog)-1 Verilog ソースのコンパイルオプション 1 Language Syntax コンパイル時に使用する規格を指定します Disable debugging data デバッグ用のデータを使用不可にします Convert identifiers to upper-case 通常の Verilog 識別子を大文字に変換します モジュール名に関して大文字 / 小文字を無視できるようにします Disable loading messages Main ウインドウでローディングメッセージを非表示にします Show source lines with errors Main ウインドウ上に表示されるエラーメッセージと関連したソースコード行を表示させます Disable all optimizations コンパイルにおいて最適化しないよう指定します isplever6_x_modelsim_rev1.0.ppt Page: 41
3-6 コンパイルオプション (Verilog)-2 Verilog ソースのコンパイルオプション 2 Other Verilog Options Library Search... バインドされないモジュールを検索するための Verilog ソースライブラリのフォルダを指定します Extension... ライブラリディレクトリ内のファイルの拡張子を指定します 複数の拡張子を指定できます Add Library File... バインドされないモジュールを検索するための Verilog ソースライブラリのファイルを指定します Include Directory... include コンパイラダイレクティブによって組み込まれたファイルを 指定のフォルダから検索します Macro... コンパイル中に実行するマクロ定義を指定します PSL File Accellera で標準化された Property Specification Language (PSL) のシンプルなサブセットをサポートしています ここで PSL ファイルを取り込むことができます isplever6_x_modelsim_rev1.0.ppt Page: 42
3-7 シミュレーションー 1 シミュレーションするためにコンパイル後のデータを取り込む 1. Main ウインドウから [Simulate] [Start Simulation] を選択するか ボタンを押します テストパターンのファイルを選択 2. Work 内の cntbuftb を選択し Function シミュレーションであれば OK ボタンをクリックし デザインを取り込みを完了させます このボタンで時間単位を設定します isplever6_x_modelsim_rev1.0.ppt Page: 43
3-7 シミュレーション -2 Timing シミュレーションをするときの SDF ファイルの取り込み方 ただし HDL ファイルのコンパイル時に前述のファイルをコンパイルしている場合のみです 1. Simulate ダイアログボックスの SDF タブをクリックし Add ボタンをクリックします 2. 下図のように選択し OK ボタンをクリックし Load ボタンをクリックします SDF タブ SDF ファイルを指定する MAX に設定する ( 最悪値しか規定されていないため ) テストパターン上でこのデバイスを呼び出しているインスタンス名を記述する Disable SDF warning SDF リーダーからのワーニングを無効にします Reduce SDF errors to warnings SDF エラーをワーニングに変更します isplever6_x_modelsim_rev1.0.ppt Page: 44
3-8 シミュレーション オプション -1 シミュレーション時のオプション 1 1.Main ウインドウの [Simulate] [Runtime Options..] を選択するとオプション設定のダイアログボックスが起動します デフォルト設定 アサーション設定の選択タブ デフォルト設定ページ Default Radix シミュレーション実行におけるデフォルト基数を設定します Default Force Type デフォルトの force タイプを選択します Suppress Warnings From Synopsys Packages を選択すると Synopsys の std_arith パッケージ内で生成されるワーニングが From IEEE Numeric Std Packages を選択すると numeric_std と numeric_bit パッケージ内で生成されるワーニングが抑止されます Default Run デフォルトのランレングスを設定します Iteration Limit 無限ループを防止するため 同一のシミュレーション時間単位において デルタループ数にリミットを設定します isplever6_x_modelsim_rev1.0.ppt Page: 45
3-8 シミュレーション オプション -2 シミュレーション時のオプション 2 アサーション設定ページ Break on Assertion シミュレーションを停止させるアサーションの severity レベルを選択します Ignore Assertions For 無効にするアサーションタイプを選択します 複数選択可能です アサーションタイプを無効にすると たとえそのタイプに Break on Assertion が設定されていても 何のメッセージも出さずに シミュレーションも停止しなくなります isplever6_x_modelsim_rev1.0.ppt Page: 46
3-9 波形の表示 結果を波形に表示 1. Main ウインドウの [View] [Debug Windows] [Objects] [View] [Debug Windows] [Wave] を実行します 2.Objects ダイアログボックスの中で観測したい信号を選択します (Ctrl キーを押しながら選択すると複数選択できます ) 3.Wave ダイアログボックスにドラックアンドドロップします 4.Wave ダイアログボックスのを実行し ( シミュレーションの実行 ) 適当な時間でを押します ( シミュレーションの停止 ) ドラックアンドドロップにより 信号名を wave ダイアログボックスに表示させる 観測したい信号の選択 実行 停止 isplever6_x_modelsim_rev1.0.ppt Page: 47
3-10 その他のウィンドウ ModelSim にはその他いろいろなウインドウが用意されています それぞれに対し簡単に説明を加えます 1.Main ウインドウの [View] よりいろいろなウインドウを起動することができます WorkSpace ウインドウ sim タブデザインの階層構造を表示します 各階層レベルはデザインの各 HDL 要素に相当します Locals ウインドウ現在のプロセス内にある HDL 要素名と各要素の現在の値を一覧表示します 現在のプロセスのパス名はウインドウの下部に表示されます Objects ウインドウ現在の階層内にある HDL 要素の名前がリストされます List ウインドウシミュレーションの結果をテーブル形式で表示します Active Process ウインドウプロセスリストを表示して プロセスが存在するインスタンスのパス名を指示します Wave ウインドウシミュレーションの結果を波形で表示します Dataflow ウインドウデザイン中の VHDL シグナルや Verilog ネットをトレースします isplever6_x_modelsim_rev1.0.ppt Page: 48
4. 参考資料 Lattice 社 PLD でのタイミングシミュレーションの際に使用するファイルに関する資料です isplever6_x_modelsim_rev1.0.ppt Page: 49
4-1 シミュレーションに際して -1 Function シミュレーションと Timing シミュレーション Function シミュレーションソースレベルでのシミュレーションであり 遅延は含みません ModelSim 上のコンパイルするべきファイルは デザインソースとテストパターンのみとなります Timing シミュレーション Lattice 社 PLD にコンパイルした結果のシミュレーションであり 遅延を含みます VITAL と Non-VITAL のシミュレーションがあり それぞれでコンパイルすべきファイルが異なります 詳細は後述します VITAL と Non-VITAL シミュレーション VITAL シミュレーション機能の情報のファイルとタイミングの情報のファイル (*.sdf) を別々に設けてシミュレーションを実行することにより シミュレータの負荷を軽減し シミュレーションスピードを向上させるやり方です Non-VITAL シミュレーション機能の情報とタイミングの情報を同一のファイルで管理しているためファイルサイズが大きくなり シミュレーションスピードも遅くなります Comment: 本マニュアルにおいては Timing シミュレーションはすべて VITAL シミュレーションを採用しています 次ページに Lattice 社 PLD を使用して Timing シミュレーションをする場合に必要なファイルを記載します isplever6_x_modelsim_rev1.0.ppt Page: 50
4-1 シミュレーションに際して -2 Lattice 社 PLD を使用した場合の Timing シミュレーション時に必要なファイル (VITAL シミュレーション実施時に必要 ) VHDL verilog sdf *.vho *.vo *.sdf 上記の表のファイルを状況に応じて ModelSim 上でコンパイルして シミュレーションを実施します ただし 上記は Lattice 社の PLD でコンパイルした後の機能の情報のファイルであり タイミングの情報のファイルは *.sdf ファイルとなります isplever6_x_modelsim_rev1.0.ppt Page: 51
4-2 タイミングモデルファイルの生成 -1 タイミングモデル ファイルの作成 1 1. Generate Timing Simulation Files をハイライトして右クリック Properties を選択してください 2. Netlist のフォーマットとして VHDL/Verilog のいずれかを選択します isplever6_x_modelsim_rev1.0.ppt Page: 52
4-2 タイミングモデルファイルの生成 -2 タイミングモデル ファイルの作成 2 1. デバイス名をハイライトし Generate Timing Simulation Files をダブルクリックしてください 2. ネットリストと遅延情報を含んだファイル (*.sdf) が生成されます VHDLを指定した場合は以下の通りです *.vhoファイル VITALシミュレーションに用いるファイル 機能の情報を表したもの *.sdfファイル VITALシミュレーションに用いるファイル 遅延の情報を表したもの Verilogを指定した場合は以下の通りです ダブルクリック! *.voファイル VITALシミュレーションに用いるファイル 機能の情報を表したもの *.sdfファイル VITALシミュレーションに用いるファイル 遅延の情報を表したもの isplever6_x_modelsim_rev1.0.ppt Page: 53
終わりに 以上で isplever Ver 6.x Lattice 版 ModelSim User Manual は終了です より詳細なお問合せ ご質問等に関しましては 技術サポート貴社担当 FAE または下記技術サポート窓口までお気軽にお問い合わせ下さい 株式会社マクニカテクスターカンパニーラティス製品技術サポート窓口 電話 045-470-9841/FAX 045-470-9842 Email lattice@macnica.co.jp URL http://www.tecstar.macnica.co.jp/contact/index.html isplever6_x_modelsim_rev1.0.ppt Page: 54
Revision History 日付 Revision Old-page New-Page 変更内容の概要更新担当者 2007/6/1 1.0 改訂版恩賀 isplever6_x_modelsim_rev1.0.ppt Page: 55