Top Banner
Altera Corporation 1–1 2008 5 暫定サポート この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用 ください。設計の際には、最新の英語版で内容をご確認ください。 1. Quartus II シミュレータ 概要 今日の FPGA はますます高速になり複雑化しているため、設計者はデザ インを検証する上で困難な状況に直面しています。シミュレーションで デザインの正確性を検証することで、ボードのテストとデバッグに要す る時間を短縮できます。 アルテラはデザイン検証作業を支援するために、 Quartus ® II ソフトウェ アの一部としてシミュレータを提供しています。Quartus II シミュレー タは、以下の項で説明する包括的な機能セットを備えています。 「シミュレーション・フロー」 1–7 ページの「Waveform Editor1–19 ページの「シミュレータの設定」 1–28 ページの「シミュレーション・レポート」 1–32 ページの「Quartus II シミュレータによるデバッグ」 1–35 ページの「スクリプトのサポート」 この章では、Quartus II シミュレータで各種シミュレーションを実行す る方法について説明します。 Quartus II シミュレータは、以下のデバイス・ファミリをサポートして います。 Arria GX Stratix ® IIIStratix IIStratixStratix GXStratix II GX Cyclone ® IIICyclone IICyclone HardCopy ® IIHardCopy MAX ® IIMAX 3000AMAX 7000AEMAX 7000BMAX 7000S ACEX ® 1K APEX 20KCAPEX 20KEAPEX II FLEX 10K ® FLEX ® 10KAFLEX 10KEFLEX 6000 Quartus II シミュレータは、Stratix III および Quartus II ソフト ウェアv 8.0以降に発表された新しいデバイスはサポートしていま せん。 Stratix III 以降に発表されたデバイスをターゲットとするデ ザインでシミュレーションを実行するには、ModelSim-Altera Edition を使用します。ModelSim-Altera Edition シミュレータに ついて詳しくは、「Quartus II ハンドブック Volume 3」の Mentor Graphics ModelSim サポート」の章を参照してください。 QII53017-8.0.0
38

1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Nov 01, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–12008年 5月 暫定サポート

この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際には、最新の英語版で内容をご確認ください。

1. Quartus IIシミュレータ

概要 今日の FPGAはますます高速になり複雑化しているため、設計者はデザインを検証する上で困難な状況に直面しています。シミュレーションでデザインの正確性を検証することで、ボードのテストとデバッグに要する時間を短縮できます。

アルテラはデザイン検証作業を支援するために、Quartus® IIソフトウェアの一部としてシミュレータを提供しています。Quartus II シミュレータは、以下の項で説明する包括的な機能セットを備えています。

■ 「シミュレーション・フロー」■ 1–7ページの「Waveform Editor」■ 1–19ページの「シミュレータの設定」■ 1–28ページの「シミュレーション・レポート」■ 1–32ページの「Quartus IIシミュレータによるデバッグ」■ 1–35ページの「スクリプトのサポート」

この章では、Quartus II シミュレータで各種シミュレーションを実行する方法について説明します。

Quartus II シミュレータは、以下のデバイス・ファミリをサポートしています。

■ Arria™ GX■ Stratix® III、Stratix II、Stratix、Stratix GX、Stratix II GX■ Cyclone® III、Cyclone II、Cyclone■ HardCopy® II、HardCopy■ MAX® II、MAX 3000A、MAX 7000AE、MAX 7000B、MAX 7000S■ ACEX® 1K■ APEX™ 20KC、APEX 20KE、APEX II■ FLEX 10K®、FLEX® 10KA、FLEX 10KE、FLEX 6000

Quartus II シミュレータは、Stratix III および Quartus II ソフトウェアv 8.0以降に発表された新しいデバイスはサポートしていません。Stratix III以降に発表されたデバイスをターゲットとするデザインでシミュレーションを実行するには、ModelSim-AlteraEdition を使用します。ModelSim-Altera Edition シミュレータについて詳しくは、「Quartus IIハンドブック Volume 3」の「MentorGraphics ModelSimサポート」の章を参照してください。

QII53017-8.0.0

Page 2: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–2 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

シミュレーション・フロー

Quartus II シミュレータでは、機能とタイミングのシミュレーションを実行できます。いずれのタイプのシミュレーションとも、デザインの正確性と動作を検証します。機能シミュレーションはQuartus IIデザイン・フローの始めに実行され、タイミング・シミュレーションは最後に実行されます。

図 1–1に Quartus IIシミュレータのフローを示します。

Page 3: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–32008年 5月

シミュレーション・フロー

図 1–1.シミュレーション・フロー

図 1–1の注 :(1) EDAシミュレーションについて詳しくは、「Quartus IIハンドブック Volume 3」の 「シミュレーション」 セクショ

ンを参照してください。(2) PowerPlay Power Analyzerの Signal Activityファイル(.saf)または Value Change Dumpファイル(.vcd)を使

用すると、電力リソースを確認できます。

Design Entry

Analysis & Synthesis

Place & Route (Fitter)

Timing Analysis

.saf

.vwf/.tbl/

.vec/.scf/.cvwf/.vcd

.rptSimulationReport File

Input Stimulus

NetlistNetlist

Generate Functional Simulation Netlist

Fast Timing Analysis

Netlist

Timing Simulation Using Fast Timing Model

Functional Simulation Timing Simulation

FunctionalNetlist (db)

Timing Netlist (db)

Fast Timing Netlist (db)

Signal Activity File (2)

NetlistWriter

EDASimulator (1)

Quartus II Simulator

Quartus II Simulator

.vwf/.cvwf/.vcd

Test Bench File

EndSimulation DebuggingYesNo Requirements

Satisfied?

Convert to RTL Testbench

.vt/.vht

.vcd

Page 4: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–4 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

図 1–1に示すように、デザインのシミュレーションは機能レベルで実行できます。すなわちデザインの論理動作が検証され、シミュレーションではタイミング情報が使用されません。タイミング・シミュレーションは、デザインがコンパイルされ(合成および配置配線の後)、デザインのリソースのタイミング・データを使用した後で実行されます。タイミング・シミュレーションでは、デバイスのワースト・ケースのタイミング・モデルを使用して、デザインの論理動作が検証されます。高速タイミング・モデルを使用したタイミング・シミュレーションもタイミング・シミュレーションの一種であり、ベスト・ケースのタイミング・データが使用されます。

Quartus II シミュレータで機能シミュレーションを実行するには、まず機能シミュレーション・ネットリストを生成する必要があります。機能ネットリスト・ファイルは、タイミング情報を含まないデザイン・ファイルから抽出されフラット化されたネットリストです。

タイミング・シミュレーションでは、まず配置配線およびスタティック・タイミング解析を実行して、タイミング・シミュレーションのネットリストを生成する必要があります。タイミング・シミュレーションのネットリストには、各デバイスの素子ブロックのタイミング遅延と、配線遅延が含まれます。

サードパーティ製 EDAシミュレーション・ツールを使用する場合、EDANetlist Writerを使用してネットリストを生成できます。サードパーティ製のシミュレーション・ツールでは、このネットリストをテストベンチ・ファイルと一緒に使用します。

サードパーティ製シミュレータについて詳しくは、「Quartus II ハンドブック Volume 3」の「シミュレーション」セクションの「各 EDA シミュレーション」の章を参照してください。

Quartus IIシミュレータは、機能シミュレーション、タイミング・シミュレーション、および高速タイミング・モデル使用したタイミング・シミュレーションをサポートします。これらのシミュレーションを実行する方法については、以下の項で説明しています。

機能シミュレーション機能シミュレーションを実行するには、以下のステップを実行します。

1. ProcessingメニューのGenerate Functional Simulation Netlistをクリックします。これにより、デザイン・ファイルから抽出された機能シミュレーションのネットリストがフラット化されます。このネットリストにはタイミング情報は含まれていません。

Page 5: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–52008年 5月

シミュレーション・フロー

2. Assignmentsメニューの Settingsをクリックします。Settingsダイアログ・ボックスが表示されます。

3. Categoryリストから Simulator Settingsを選択します。SimulatorSettingsページが表示されます。

4. Simulation modeリストから Functionalを選択します。

5. Simulation inputボックスで、ベクタ・ソースを指定します。シミュレーションを実行するには、ベクタ・ファイルを指定する必要があります。

6. OKをクリックします。

7. Processingメニューの Start Simulationをクリックします。

タイミング・シミュレーションタイミング・シミュレーションを実行するには、以下のステップを実行します。

1. Processing メニューの Start Compilation をクリックするか、またはツールバーの Compilation ボタンをクリックします。これにより、デザインがフラット化され、タイミング遅延情報の注釈を付けた内部ネットリストが生成されます。

2. Assignmentsメニューの Settingsをクリックします。Settingsダイアログ・ボックスが表示されます。

3. Categoryリストから Simulator Settingsを選択します。SimulatorSettingsページが表示されます。

4. Simulation Modeリストから Timingを選択します。

5. Simulation inputリストで、ベクタ・ソースを指定します。シミュレーションを実行するには、ベクタ・ファイルを指定する必要があります。

6. OKをクリックします。

7. Processingメニューの Start Simulationをクリックします。

Page 6: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–6 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

高速タイミング・モデルを使用したタイミング・シミュレーション高速タイミング・モデルを使用したタイミング・シミュレーションを実行するには、以下のステップを実行します。

1. Processing メニューの Start をポイントして、Start Analysis andSynthesisをクリックします。

2. Processing メニューの Start をポイントして、Start Fitter をクリックします。

高速タイミング・モデルを使用したタイミング・シミュレーションを実行する前に、高速タイミング解析を実行しなければなりません。

3. Processingメニューの Startをポイントして、Start Classic TimingAnalyzer (Fast Timing Model)をクリックします。

4. Assignmentsメニューの Settingsをクリックします。Settingsダイアログ・ボックスが表示されます。

5. Categoryリストから Simulator Settingsを選択します。SimulatorSettingsページが表示されます。

6. Simulation mode リストから Timing using Fast Timing Model を選択します。

7. Simulation inputボックスで、ベクタ・ソースを指定します。シミュレーションを実行するには、ベクタ・ファイルを指定する必要があります。

8. OKをクリックします。

9. Processingメニューの Start Simulationをクリックします。

Page 7: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–72008年 5月

Waveform Editor

Waveform Editor

Quartus II シミュレータで最も一般的な入力スティミュラスは VWF です。VWFは Quartus II Waveform Editorを使用して生成できます。

VWFの作成VWFを作成するには、以下のステップを実行します。

1. Fileメニューの Newをクリックします。Newダイアログ・ボックスが表示されます。

2. Other Filesタブをクリックして、Vector Waveform Fileを選択します。

3. OKをクリックします。ブランクのWaveform Editorウィンドウが表示されます(図 1–2)。

図 1–2. Waveform Editorウィンドウ

Page 8: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–8 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

4. ノードとバスを追加します。ノードまたはバスを追加するには、Editメニューの Insertをクリックして、Insert Node or Busをクリックします。Insert Node or Bus ダイアログ・ボックスが表示されます(図 1–3)。すべてのノードとバス、および内部信号が、WaveformEditorウィンドウのName内に一覧表示されます。

Insert Node or Busダイアログ・ボックスは、Waveform EditorのName内でダブルクリックしても開くことができます。

図 1–3. Insert Node or Busダイアログ・ボックス

5. 追加するノードまたはバスのタイプをカスタマイズできます。多くのノードまたはバスが含まれる大規模なデザインの場合、ノードまたはバスの選択に Node Finderを使用できます。Node Finderを使用するには、Node Finderをクリックします。Node Finderダイアログ・ボックスが表示されます(図 1–4)。

Page 9: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–92008年 5月

Waveform Editor

図 1–4. Node Finderダイアログ・ボックス

Node Finder を使用すると、デザインのすべてのノードとバスからシミュレーション用のノードを見つけることができます。NodeFinderは、ノードのフィルタおよび波形へのノードの追加に使用します。Node Finder には、複数のデフォルトのフィルタ・オプションが用意されています。Node Finder に正しいフィルタを使用すると、内部ノードの名前を見つけて、それをシミュレーションのために Vector Waveformファイルに追加することができます。

ノードがシミュレーション波形に現れず、シミュレーションの間に無視されることがあります。この現象が起こるのは、ノード名が変更されているか、または Quartus IIソフトウェアにより合成されている場合です。この現象を回避するために、アルテラではレジスタとピン・ノードを使用してデザインをシミュレーションすることを推奨しています。

Name of the node orbus you want to find

Specify or browse the hierarchyof the design to find the node or bus

List of default filters

Customize your filters

All nodes and buses matchingthe search criteria are listed here

All selected nodes and buses are placed here

Page 10: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–10 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

表 1–1では、12個の Node Finderのデフォルト・フィルタについて説明しています。

Node Finderでユーザー独自のフィルタをカスタマイズするには、以下のステップを実行します。

a. Customizeをクリックします。Customize Filterダイアログ・ボックスが表示されます。

b. 設定をコンフィギュレーションするには、Newをクリックします。New Custom Filterダイアログ・ボックスが表示されます。

c. Filter nameボックスに、カスタム・フィルタの名前を入力します。

d. Copy settings from filterリストで、フィルタ設定を選択します。

e. OKをクリックします。

表 1–1.フィルタ・オプション

フィルタ 説明Pins: input デザイン・ファイルのすべての入力ピン名を検索します。Pins: output デザイン・ファイルのすべての出力ピン名を検索します。Pins: bidirectional デザイン・ファイルのすべての双方向ピン名を検索します。Pins: virtual すべての仮想ピン名を検索します。Pins: all デザイン・ファイルのすべてのピン名を検索します。Registers: pre-synthesis デザイン・エラボレーション後に、フィジカル・シンセシスにより合成が最適化

が行われる前に、デザイン内のすべてのユーザー入力レジスタ名を検索します。Registers: post-fitting フィジカル・シンセシスおよびフィッティング後に残っている、デザイン・ファ

イル内のすべてのユーザー入力レジスタ名を検索します。Design Entry (all names) デザイン・ファイル内のすべてのユーザー入力名を検索します。Post-Compilation ロケーション・アサインメントがなく、またフィッティング後に残っていない、す

べてのユーザー入力名およびコンパイラ生成名を検索します。SignalTap II:pre-synthesis

合成前ネットリストで、SignalTap® II ロジック・アナライザで解析可能なすべての内部デバイス・ノードを検索します。

SignalTap II: post-fitting フィッティング後ネットリストで、SignalTap IIロジック・アナライザで解析可能なすべての内部デバイス・ノードを検索します。

SignalProbe フィッティング後ネットリストの、すべての SignalProbe™デバイス・ノードを検索します。

Page 11: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–112008年 5月

Waveform Editor

f. これにより、Customize Filterダイアログ・ボックスでフィルタをカスタマイズできます。

6. Look in ボックスで、現在の検索階層パスを表示し、編集することができます。検索階層パスを入力するか、Browse ボタンをクリックして階層パスを参照できます。

Select Hierarchy Level ダイアログ・ボックスで階層名を選択すると、検索階層を上に移動できます。この操作により、多くの信号を使用した大規模なデザインで、ノードを取得する階層を指定して、表示される信号数を減らすことができます。

7. フィルタをコンフィギュレーションし、Node Finder ダイアログ・ボックスで正しい階層を指定した後、Listをクリックすると、関連するすべてのノードまたはバスが表示されます。

Nodes Foundリストからノードまたはバスを選択し、>をクリックするとそれが波形に取り込まれます。あるいは >>をクリックして、Nodes Found リストに表示されるすべてのノードとバスを取り込むこともできます。

8. OKをクリックします。

また、Project Navigator、Netlist Viewer、または Block DiagramからノードをWaveform Editorにドラッグ・アンド・ドロップして、Waveform Editorにノードを追加することもできます。

9. 信号用の波形を作成します。Quartus II Waveform Editor のツールバーには、最も一般的な波形設定がいくつか含まれており、波形ベクタを簡単に、分かりやすく描くことができます。図 1–5 に、Waveform Editorツールバーで選択可能なオプションを示します。

Page 12: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–12 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

図 1–5. Waveform Editorツールバー

10. 波形を編集した後、波形を保存します。Fileメニューの Save Asをクリックします。Save As ダイアログ・ボックスが表示されます。ファイル名を入力し、ファイル・タイプを指定して、Saveをクリックします。

Node Finder を使用して VWF のノードを挿入する代わりに、Netlist Viewerからノードを Simulation Vector Waveformファイルにドラッグ・アンド・ドロップすることができます。NetlistViewerについて詳しくは、「Quartus IIハンドブック Volume 1」の「Quartus II Netlist Viewersを使用したデザインの解析」を参照してください。

Count Value

Count Value はバスにカウント値を適用し、バスの値を指定された時間間隔で増分します。各ノードの値を手動で編集する代わりに、WaveformEditorツールバーの Count Value機能を使用すると、自動的にバスのカウント値が作成されます。この機能は、バスの開始値、増分間隔、カウントの停止時間を指定するのに使用できます。また、カウント・タイプと増分数の設定と同時に、遷移の発生もコンフィギュレーションできます。Waveform Editorツールバーの Count Valueボタンをクリックすると、Count Valueダイアログ・ボックスが表示されます(図 1–6)。選択したノードを右クリックして、Value をポイントし、Count Value をクリックして Count Valueダイアログ・ボックスを開くこともできます。

Selection Tool

FullScreen

ForcingUnknown (x)

WeakUnknown (W)

Invert RandomValue (R)

WaveformEditing Tool

Replace ForcingHigh (1)

WeakHigh (H)

OverwriteClock

Sort

Text FindForcingLow (0)

WeakLow (L)

CountValue (C)

Snapto Grid

ZoomTool

Unitialized(U)

HighImpedance

(Z)Don't

Care (DC)Arbitrary

Value

Page 13: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–132008年 5月

Waveform Editor

図 1–6. Count Valueダイアログ・ボックス

Clock

Waveform Editorツールバーの Clock機能を使用すると、クロック波形が自動的に生成され、各クロックのトリガ・パルスを描く必要はありません。Clock ダイアログ・ボックスでクロック信号を生成するには、Waveform EditorツールバーのOverwrite Clockボタンをクリックします。さらに、クロック信号の開始時間と終了時間、期間(オフセットとデューティ・サイクル)を手動で設定するかどうか、あるいは指定されたクロックに基づいてクロックを生成するかどうかを決定できます。図 1–7に、Clockダイアログ・ボックスを示します。

Page 14: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–14 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

図 1–7. Clockダイアログ・ボックス

Arbitrary Value

Arbitrary Valueを使用すると、選択した波形または波形間隔で、あるいは 1つまたは複数のノードまたはグループ全体でノード値を上書きできます。ノード値を上書きするには、以下のステップを実行します。

1. ノードまたはバスを 1 つ選択し、Waveform Editor ツールバーのArbitrary Valueボタンをクリックします(図 1–5)。Arbitrary Valueダイアログ・ボックスが表示されます(図 1–8)。

2. Time rangeで、ノード値を上書きする開始時間と終了時間を指定します。

3. Radixリストで、基数タイプを選択します。

4. Numeric or names valueボックスで、上書きする新しい値を指定します。

5. OKをクリックします。

Page 15: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–152008年 5月

Waveform Editor

図 1–8. Arbitrary Valueダイアログ・ボックス

Random Value

Random Value を使用すると、選択した波形または波形間隔で、あるいは 1つまたは複数のノードまたはグループ全体でランダム・ノード値を生成できます。図 1–9に、Random Valuesダイアログ・ボックスを示します。

ランダム・ノード値は、グリッド間隔またはハーフ・グリッド間隔ごとに、あるいはランダム間隔または固定間隔で生成できます。

図 1–9. Random Valuesダイアログ・ボックス

テストベンチの生成 VWFを VHDLテスト・ベンチ・ファイル(.vht)、または Verilogテスト・ベンチ・ファイル(.vt)としてエクスポートできます。この機能は、異なる EDA ツールでベクタ波形を使用する場合に便利です。解析とエ

Page 16: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–16 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

ラボレーションを実行してから波形ベクタをエクスポートできます。波形ベクタをエクスポートするには、ベクタの波形を開き、以下のステップを実行します。

1. Fileメニューの Exportをクリックします。Exportダイアログ・ボックスが表示されます。

2. Save as type リストから VHDL Test Bench File (*.vht) またはVerilog Test Bench File (*.vt)を選択します。

3. オプションで、Add self-checking code to fileを選択できます。このオプションは、出力の結果をチェックして、オリジナルの VWFと比較するロジックを追加します。

Quartus IIソフトウェアでプロジェクトを開いてから、VWFをエクスポートすることができます。

他の EDA ツールで生成されたテストベンチの使用について詳しくは、「Quartus II ハンドブック Volume 3」の「シミュレーション」セクションの各 EDAシミュレータの章を参照してください。

グリッド・サイズ波形の一部を選択すると、Grid Size ダイアログ・ボックスに指定された時間間隔に選択領域がスナップされます。グリッド・サイズは、Waveform Editor でカスタマイズできます。グリッド・サイズはクロック設定に基づいて、または期間を設定して変更できます。グリッド・サイズをカスタマイズするには、Editメニューの Grid Sizeをクリックします。

タイム・バーWaveform Editor でタイム・バーを追加し、異なる信号間のエッジを比較します。またタイム・バーを使用して、選択した信号の次のエッジ遷移まで前後にジャンプしたり、波形の Time Barをスライドさせて、信号のロジック・レベルを読み出すことができます。ロジック・レベルは、Waveform Editorの Value atカラムに表示されます。

Time Bar Organizer ダイアログ・ボックスでは、タイム・バーの作成、削除、編集、およびマスタ・タイム・バーの作成を実行できます。波形ファイルで作成できるマスタ・タイム・バーは 1つのみです。Time BarOrganizerを使用するには、Editメニューの Time Barをポイントして、Time Bar Organizerをクリックします。

Page 17: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–172008年 5月

Waveform Editor

Existing time barsの Absolute timeカラムで、赤い Mはマスタ・タイム・バーを示します(図 1–10)。

図 1–10. Time Bar Organizerダイアログ・ボックス

波形間隔の拡大または縮小Waveform Editor で波形間隔を拡大または縮小できます。この操作により、波形への影響を解析できます。例えば、圧縮オプションを使用して波形を圧縮し、高速時のデザインの動作を短い間隔でチェックできます。またこの機能を使用し、波形を拡大して信号遷移を遅らせることもできます。

元の開始時間と終了時間、および拡大または縮小する波形の新しい時間を指定する必要があります。すべてのノードまたはバスを拡大または縮小する場合、すべてのノードおよびバスの選択を解除し、拡大または縮小機能を設定します。

波形間隔を拡大または縮小するには、Editメニューの Valueをポイントして、Stretch or Compress Waveform Intervalをクリックします。Stretchor Compress Waveform Intervalダイアログ・ボックスが表示されます。

Stretch or Compress Waveform Interval ダイアログ・ボックスの“Totime value”終了時間には、Settingダイアログ・ボックスの SimulatorSettingsページで指定した“End Time”よりも大きい値を指定できません(図 1–12)。大きい値を指定した場合、Quartus II ソフトウェアは無効時間値を示すメッセージを表示します。

Page 18: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–18 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

終了時間終了時間設定を使用すると、VWF の終了時間を変更できます。終了時間は、VWF の最大時間を表します。終了時間と希望する時間単位を指定し、それぞれのノードまたはバスに異なる拡張値を設定できます。波形を表示し、以下のステップを実行して終了時間を指定します。

1. Edit メニューの End Time をクリックします。End Time ダイアログ・ボックスが表示されます(図 1–11)。

図 1–11. End Timeダイアログ・ボックス

2. Timeボックスで終了時間を指定し、Timeリストで時間の単位を選択します。

3. Default extension optionsの Extension valueリストで、値を選択します。

4. End time extensions per signalの Extension valueカラムをクリックして、信号ごとに特定の拡張値を選択できます。

Page 19: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–192008年 5月

シミュレータの設定

End timeダイアログ・ボックスのオプションは、Settingsダイアログ・ボックスの Simulation periodのオプションとは異なります。シミュレーション期間は、Quartus II ソフトウェアでスティミュラスがシミュレーションされる期間です。終了時間は VWF の最長時間です。シミュレーション期間について詳しくは、 1–21ページの表 1–2を参照してください。

グループまたはバスの LSB順またはMSB順の配置グループまたはバスを、最下位ビット(LSB)順または最上位ビット(MSB)順で配置できます。LSB 順に配置する場合、LSB が先頭、MSBが最後になります。MSB 順に配置する場合、MSB が先頭、LSB が最後になります。

グループまたはバスを LSB順または MSB順に配置するには、以下のステップを実行します。

1. LSB順またはMSB順を変更するバスを選択します。Waveform Editorでは複数のバスを選択することもできます。

2. Edit メニューの Group and Bus Bit Order をポイントして、MSBon top, LSB on BottomをクリックしてバスまたはグループをMSB順に変更するか、LSB on top, MSB on Bottomをクリックして、バスまたはグループを LSB順に変更します。

シミュレータの設定

シミュレーションを実行する前に、出力を拡大し、デバッグ時間を短縮し、カバレッジを拡大できます。この項では、Quartus II シミュレータでサポートされる、各種のシミュレーション・モードについて説明します。また、Quartus IIシミュレータは、グリッチ・フィルタリング、セットアップ時間およびホールド時間の違反検出、シミュレーション・カバレッジなどの共通の設定機能も備えています。

シミュレーション設定をセットアップするには、以下のステップを実行します。

1. Assignmentsメニューの Settingsをクリックします。Settingsダイアログ・ボックスが表示されます。

2. Categoryリストから Simulator Settingsを選択します。SimulatorSettingsページが表示されます(図 1–12)。

Page 20: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–20 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

図 1–12. Simulator Settingsページ

Page 21: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–212008年 5月

シミュレータの設定

表 1–2に、Simulator Settingsページのオプションを示します。

表 1–2. Quartus IIシミュレータ設定(1 /2)

設定とオプション 説明Simulation mode (1) 機能

このシミュレーション・モードでは、合成前コンパイラ・データベースを使用し、タイミング情報なしでプロジェクトの論理性能をシミュレーションします。このモードでは、デザインの機能をチェックできます。このシミュレーションでは、合成、パーティショニング、またはフィッティングの前に機能シミュレーションが実行されるため、すべてのノードとバスが維持されます。このシミュレーション・モードを実行するには VWFが必要です。

タイミングこのシミュレーション・モードでは、タイミング情報を含むコンパイル済みのネットリストが使用されます。このシミュレーション・モードでは、セットアップ、ホールド違反、グリッチ、シミュレーション・カバレッジをチェックできます。ロジックが最適化されたときは、Quartus II コンパイラを使用してノードまたはバスを削除できます。このシミュレーション・モードでは、ワースト・ケースのタイミング・モデルが使用されます。

高速タイミング・モデルを使用したタイミングこのシミュレーション・モードは、タイミング・シミュレーションに似ていますが、このモードではベスト・ケースのタイミング・モデルが使用されます。

Simulation input Simulation inputボックスに、ベクタ・ファイルを含める必要があります。ファイル名を入力するか、Browseボタンを使用して Select Fileダイアログ・ボックスを開きます。Files of typeリストでは、ベクタ波形ファイル(*.vwf)、圧縮ベクタ波形ファイル(*.cvwf)、VCD(Value Change Dump)ファイル(*.vcd)、ベクタ・テーブル出力ファイル(*.tbl)、ベクタ・テキスト・ファイル(*.vec)、シミュレーション・チャネル・ファイル(.scf)、または全ファイル(*.*)を選択できます。

TBLファイルには、入力ベクタと出力ロジック・レベルが表形式リストで格納されています。このファイルは VWFを使用して生成できます。ただし、ベクタを維持、表示、更新する場合は、VWFの方がわかりやすく表示されます。VWFまたは TBLファイル・フォーマットのいずれも使用できます。TBL ファイルを VWF から生成することも、またその逆も可能です。VWF は Waveform Editor で作成できます。Waveform Editorについて詳しくは、1–7ページの「Waveform Editor」を参照してください。

Quartus IIソフトウェアは、VECや SCFなどのMAX+PLUS® IIシミュレーション・ベクタ・ファイルもサポートしています。

CVWFは VWFフォーマットの簡素化された、読み出し不可能なフォーマットです。このファイル・タイプはバイナリ形式で、一般にファイル・サイズが小さくなります。CVWFはWaveform Editorとシミュレーションで使用できます。

VCDファイルは、与えられたデザイン内の指定された変数またはすべての変数に対するヘッダ情報、変数定義、および値の変更が含まれる ASCIIファイルです。変数の値の変更は、変数の性質に基づき、スケーラかベクタ・フォーマットで与えられます。

Page 22: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–22 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

Simulation period シミュレーション期間は、シミュレータがスティミュラスを実行する時間の長さを決定し、最大期間は VWF の終了時間になります。シミュレーション期間が終了時間より短く設定された場合、シミュレーション期間を超えるすべての信号はUnknown(X)として表示されます。したがって、End Simulation atを選択し、時間を指定し、時間単位を選択して、シミュレーション期間を短縮するか、シミュレーションの終了時間を繰り上げることもできます。シミュレーション期間が終了時間よりも長くなるように設定された場合、シミュレーションは終了時間で停止します。終了時間について詳しくは、1–18ページの「終了時間」を参照してください。

Glitch filtering options シミュレーションでグリッチ・フィルタリングをイネーブルにするかどうかを指定します。以下のオプションのいずれかを選択できます。

Auto—Settingsダイアログ・ボックスの Simulation Output Filesページで、SAF生成がイネーブルされている場合、シミュレータはグリッチ・フィルタリングを実行します。

Always—SAF生成がイネーブルされていない場合でも、シミュレータは常にグリッチ・フィルタリングを実行します。

Never—SAF生成がイネーブルされている場合でも、シミュレータはグリッチ・フィルタリングを実行しません。

More Settings More Settings をクリックすると、More Simulator Settings ダイアログ・ボックスが表示されます。Existing options settingsでは、以下のオプションが提供されています。

Cell Delay Model Typeセル遅延に使用される遅延モデルのタイプとして伝播または慣性を指定します。デフォルトは伝播です。

Interconnect Delay Model Typeインタコネクト遅延に使用される遅延モデルのタイプとして伝播または慣性を指定します。デフォルトは伝播です。

Preserve fewer signal transition to reduce memory requirementsこのオプションをオンにすると、メモリからディスクへの信号遷移がフラッシュされてメモリが最適化されるため、このオプションは性能の低いワークステーションで効果があります。

表 1–2の注 :(1) Quartus II シミュレータは、デザインでゼロ・タイム発振が発生した場合、エラー・メッセージをフラグするこ

とがあります。ゼロ・タイム発振は、特定の出力信号が一定期間安定した出力値に達しないときに起こります。これは、デザインに組み合わせロジック・パス・ループが含まれているためと考えられます。

表 1–2. Quartus IIシミュレータ設定(2 /2)

設定とオプション 説明

Page 23: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–232008年 5月

シミュレータの設定

シミュレーション検証オプション図 1–13に、Simulation Verificationページを示します。

図 1–13. Simulation Verificationページ

Page 24: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–24 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

表 1–3に、Simulator Verificationページのオプションを示します。

表 1–3. Quartus IIのシミュレーションの検証(1 /2)

設定とオプション 説明Check outputs Check outputsは、予測される出力をシミュレーション・レポートの実際の出

力と照合します。Check outputsをオンにした後で、Waveform ComparisonSettings ボタンをクリックします。Waveform Comparison Settings ダイアログ・ボックスが表示されます。

Waveform Comparison Settings ダイアログ・ボックスで、波形比較期間と比較オプションを指定できます。また Default comparison timing toleranceボックスで許容制限を指定することで、すべての信号に許容レベルを設定することもできます。Maximum comparison mismatches ボックスの値は、Quartus II シミュレータが比較を停止するまでに認められるミスマッチ量です。

また、Waveform Comparison Settings ダイアログ・ボックスで、比較でトリガする遷移のタイプを設定することもできます。Input signal transitionedges、All signal transition edges、または Selected Signal transition edgesに基づいて、比較とトリガを割り当てることができます。

波形比較のマッチング・ルールをカスタマイズするには、Comparison Rulesボタンをクリックします。Comparison Rulesダイアログ・ボックスが表示され、比較マッチング・ルールをカスタマイズできます。

Setup and hold timeviolation detection

このオプションは、セットアップおよびホールド・タイム違反を検出します。セットアップ・タイムは、クロック・エッジが到達する前に同期信号が安定化するのに必要な期間です。ホールド・タイムは、同じクロック・エッジの後に同期信号を維持するのに必要な時間です。Setup and hold time violationdetection オプションがオンの場合、シミュレーション中にセットアップまたはホールド・タイム違反が検出されると、Message ウィンドウにワーニングが表示されます。このオプションは、タイミング・シミュレーション・モード、および高速タイミング・モデル使用したタイミング・シミュレーション・モードにのみ使用できます。

Glitch detection 複数の信号が同時にトグルした場合に起こる状態で、グリッチまたは不要な短いパルスが発生する可能性があります。Glitch detectionオプションでは、グリッチを検出し、グリッチを定義する時間間隔を指定できます。指定された期間よりも短い期間に 2つのロジック・レベルの遷移が起こった場合は、結果的に生じるグリッチが検出され、Message ウィンドウの Processing タブにレポートされます。

Glitch detectionオプションをオンにした場合は、許容可能なグリッチ幅を指定できます。検出されたパルスが指定されたグリッチ幅よりも小さい場合、Messages ウィンドウが表示されます。Glitch detectionオプションは、タイミング・シミュレーション・モードおよび高速タイミング・モデルを使用したタイミング・シミュレーション・モードにのみ使用できます。

Page 25: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–252008年 5月

シミュレータの設定

Simulation coveragereporting

このオプションは、ネットリスト内の出力数に対して実際にシミュレーションされた出力(カバレッジ)の比率をレポートし、パーセンテージで表されます。Simulation coverage reportingオプションをオンにすると、Report Settingsボタンを利用できます。Report Settingsをクリックすると、Report Settingsダイアログ・ボックスが表示されます。Display complete 1/0 value coveragereport、Display missing 1-value coverage report、および Display missing0-value coverage reportの 3種類のカバレッジ・レポートから選択できます。

Disable setup and hold timeviolation detection for inputregisters of bi-directionalpins

このオプションにより、タイミング・シミュレーションまたは高速タイミング・モデルを使用したタイミング・シミュレーション中に、シミュレーションされるデザインのすべての双方向ピンの入力レジスタでの、セットアップ・タイムおよびホールド・タイム違反の検出をディセーブルにすることができます。

表 1–3. Quartus IIのシミュレーションの検証(2 /2)

設定とオプション 説明

Page 26: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–26 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

シミュレーション出力ファイル・オプション図 1–14に、Simulation Output Filesページを示します。

図 1–14. Simulation Output Filesページ

表 1–4に、Simulation Output Filesページのオプションを示します。

Page 27: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–272008年 5月

シミュレータの設定

表 1–4. Quartus IIシミュレーション出力ファイル

設定とオプション 説明Simulation outputwaveform

シミュレーションの出力波形オプションを指定します。

シミュレーション出力波形に自動的にピンを追加します。Automatically add pins to simulation output waveformsオプションは、デザインで使用可能なすべての出力を自動的に波形レポートに追加します。デザインの出力数が多い場合、このオプションをオンにすると、シミュレーション中にすべての出力を監視できます。

Overwrite simulation input file with simulation resultsこのオプションは、ベクタ・ソース・ファイルをシミュレーション結果で上書きします。このオプションは、Check outputs設定がオンのときには無視されます。このオプションは、ベクタ・ファイルに結果を追加します。一般に、デバッグ・プロセスの可視性が向上します。 (1)

Group bus channel in simulation resultsこのオプションは、シミュレーション・レポートに示される出力波形のバス・チャネルを自動的にグループ化します。このオプションをオフにすると、すべての出力波形は各バス信号を表すノードを持ちます。

Signal activity output forpower analysis

Quartus II シミュレータでシミュレーションを実行するときは、消費電力の解析を支援する PowerPlay Power Analyzerで使用される SAFファイルを生成できます。 (2)、(3)

VCD output for poweranalysis

Quartus II シミュレータでシミュレーションを実行するときは、消費電力の解析を支援する PowerPlay Power Analyzerで使用される VCDファイルを生成できます。 (2)、(3)

表 1–4の注 :(1) ソース・ベクタ・ファイルのバックアップ・コピーは、< プロジェクト >.sim_ori.< ベクタ・ファイルのフォー

マット・タイプ >の名前で、フォルダに保存されます。(2) SAFまたは生成した VCDファイル(*.vcd)を使用する代わりに、消費電力解析を実行するための VCDファイ

ルとして出力波形を保存することも可能です。(3) PowerPlay Power Analyzerツールについて詳しくは、「Quartus IIハンドブック Volume 3」の「PowerPlayによ

る電力解析」の章を参照してください。

Page 28: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–28 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

シミュレーション・レポート

各シミュレーションの終了後に、包括的なレポートが表示されます。これらのレポートは、デザインのタイミングと論理的な正確性を満たすために重要です。また、これらのシミュレーション・レポートは、デバッグにおいても重要な役割を果たします。

シミュレーション波形シミュレーション波形はシミュレーション・レポートの一部です。このレポートでは、スティミュラスとシミュレーションの結果が表示されます。

シミュレーション波形は、他の EDA ツールで使用するために、VHDLテスト・ベンチ・ファイルまたは Verilog テスト・ベンチ・ファイルとしてエクスポートできます。また、シミュレーションを Quartus IIソフトウェアで使用するために、VWF またはベクタ・テーブル出力ファイルとして保存することも可能です。

シミュレーション波形の編集を試みるときは、Edit Input Vector Fileダイアログ・ボックスが表示され、シミュレーションの結果を使用して、ベクタ入力ファイルを編集するかどうか、あるいはベクタ入力ファイルを他のベクタ入力で上書きするかどうか尋ねられます(図 1–15)。

図 1–15.入力ベクタ・ファイルの編集

シミュレーション入力ファイルをシミュレーション結果で上書きすると、入力ベクタ・ファイルをシミュレーション後の結果的な波形で更新できます。詳しくは、表 1–2 の Overwrite simulation input file withsimulation resultsオプションを参照してください。

すべてのシミュレーションの実行で、シミュレーション入力ファイルを上書きしない場合、以下の手順を実行して、シミュレーション入力ファイルをシミュレーション後のシミュレーション結果で上書きします。

Processing メニューの Simulation Debug をポイントして、OverwriteVector Inputs with Simulation Outputsをクリックします。

Page 29: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–292008年 5月

シミュレーション・レポート

双方向ピンのシミュレーション双方向ピンは波形で 2チャネルにより表されます。1チャネルは双方向ピンへの入力を、別のチャネルは双方向ピンからの出力を表します。Node Finderダイアログ・ボックスを使用して、波形に入力チャネルを入力できます。出力チャネルは、Quartus IIシミュレータで自動的に作成され、<双方向ピン名> ~resultの名前が付けられます。

論理メモリ・レポートQuartus II ソフトウェアは、シミュレーション後に各メモリ・モジュールの内容を書き出します。したがって、デザインでメモリ・セルを使用する場合、論理メモリ・レポートでデバイスの論理メモリ構造の内容を解析できます。論理メモリ・レポートには、各メモリ・ブロックの個々のレポートが表示され、シミュレーションの終了時に使用されていたメモリ・セルに格納されたデータが含まれます。

シミュレーション後、メモリ・モジュールの内容はシミュレーション・レポート・ファイルの論理メモリ・セクションに格納されます。

このセクションを表示するには、以下のステップを実行します。

1. Processingメニューの Simulation Reportをクリックします。SimulationReportウィンドウが表示されます。

2. レポート・ウィンドウで、Logical Memoriesの横の“+”をクリックします。

シミュレーション・カバレッジ・レポートCoverage Summaryレポートには、シミュレーションに関する以下のサマリ情報が含まれます。

■ 合計トグル・カバレッジ(%)■ デザインでチェックされた合計ノード数■ チェックされた合計出力ポート■ 完全な 1/0値をカバーした合計出力ポート■ 1/0値をカバーしていない合計出力ポート■ 1値をカバーしていない合計出力ポート■ 0値をカバーしていない合計出力ポート

Page 30: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–30 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

Complete 1/0-Value Coverage レポートには、以下の情報がリストされます。

■ ノード名■ 出力ポート名■ シミュレーション中に1と0でトグルする出力ポートの出力ポート・

タイプ

Missing 0-Value CoverageレポートおよびMissing 1-Value Coverageレポートには、以下の情報がリストされます。

■ ノード名■ 出力ポート名■ 指定された値にトグルしない出力ポートの出力ポート・タイプ

Simulation Coverageレポートについて詳しくは、 1–21ページの表 1–2のSimulation coverage reportingオプションを参照してください。

以下に個々のレポートとそれぞれの定義を示します。

Complete 1/0 value coverageレポートシミュレーション中に 1と 0でトグルする、すべてのノードとバスを表示します。

Missing 1-value coverageレポートとMissing 0-value coverageレポート指定された値にトグルしないすべてのノードを表示します。

2つの波形の比較シミュレーションの結果を、比較オプションを使用して以前のシミュレーションと比較できます。Simulation Report の 2 つの波形を比較するには、Check outputs オプションをオンにします。Check outputs オプションについて詳しくは、 1–21 ページの表 1–2 を参照してください。Check outputsオプションをオンにしている場合、比較可能な 2つの波形が黒と赤で表示されます。黒い波形は元の出力または予測される出力を表し、赤い波形は比較対象の出力または実際の出力を表します。図 1–16に、予測される出力波形と実際の出力波形の例を示します。

Page 31: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–312008年 5月

シミュレーション・レポート

図 1–16. Check Outputをオンにした場合のシミュレーション・レポートからのシミュレーション波形の例

Expected Output Waveform

(in Black)Actual Output Waveform

(in Red)

Page 32: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–32 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

Quartus IIシミュレータによるデバッグ

Quartus II ソフトウェアには、シミュレーションのデバッグに役立つツールが付属しています。この項では、一部のデバッグ・ツールとその使い方について説明します。

ブレークポイントシミュレーション・プロセスにブレークポイントを挿入すると、シミュレータは希望の時間、または希望のノードあるいはバス条件でブレークできます。規定される期間中のノードまたはバスの動作を監視し、予測と実際の信号レベルの不一致の原因を特定できます。ブレークポイントを使用するには、以下のステップを実行します。

1. ProcessingメニューのSimulation Debugをポイントして、Breakpointsをクリックします。Breakpoints ダイアログ・ボックスが表示されます(図 1–17)。

図 1–17. Breakpointsダイアログ・ボックス

2. Newをクリックして、新しいブレークポイントを作成します。NewBreakpoint ダイアログ・ボックスが表示されます。このダイアログ・ボックスで、ブレークポイントの名前、式、処置を指定できます。また、このブレークポイントは、Enable Breakpointチェック・ボックスを使用してイネーブルまたはディセーブルにできます。

3. Equationダイアログ・ボックスの conditionをクリックします。個々のノードまたはバスの論理条件を設定したり、時間を設定できます。

Page 33: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–332008年 5月

Quartus IIシミュレータによるデバッグ

4. 式の条件を設定した後、Quartus II シミュレータの処置を選択します。Actionプルダウン・リストから Stop、Warming Message、ErrorMessage、または Information Message のいずれかを選択します。この選択により、条件が一致したときの処置が定義されます。

5. また、シミュレータがブレークポイントに遭遇すると表示されるテキストも入力できます。このボックスに入力しない場合、Quartus IIソフトウェアはデフォルト・メッセージを表示します。

メモリ内容の更新デザインにメモリが含まれている場合、シミュレータがブレークポイントで停止すると、メモリの内容を表示したり編集することができます。シミュレーションでブレークポイント中のメモリを表示するには、Processingメニューの Simulation Debugをポイントして、EmbeddedMemoryをクリックします。

Last Simulation Vector OutputsLast Simulation Vector Outputsコマンドは、最後のシミュレーションで生成された出力シミュレーション波形レポートを開きます。このコマンドを使用するには、Processingメニューの Simulation Debugをポイントして、Last Simulation Vector Outputsをクリックします。

Simulator Settings ダイアログ・ボックスで定義した現在の入力ベクタを Current Vector Inputsコマンドで表示できます。このコマンドを使用するには、Processing メニューの Simulation Debug をポイントして、Current Vector Inputsをクリックします。最後に、結果ファイルを開くシミュレーション出力でベクタ・ソース・ファイルを上書きできます。

従来のデバッグ・プロセスデザイン・フェーズの間、シミュレーション・エラーをデバッグする一般的な方法は内部信号のタップアウトです。したがって、Quartus II ソフトウェアでは、シミュレーション・デバッグ用の信号をタップアウトでき、また内部信号を物理 I/Oにプルアウトできます。Quartus IIソフトウェアは、デバッグを支援する SignalTap II および SignalProbe 機能も備えています。

Page 34: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–34 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

シミュレーションのための内部信号へのアクセス

内部信号をプローブ・アウトすることによって通常のデバッグが可能であり、合成中に内部信号を維持できます。ノードまたはバスを選択し、名前を指定してから類似する名前の回路図に出力ポートを追加することによって、内部信号をプローブできます。図 1–18に、シミュレーションのために回路図から内部信号にアクセスする例を示します。

図 1–18.内部信号のタップアウトの例

タイミング・シミュレーションの場合、シミュレーション・ネットリストはコンパイルの合成後およびフィッティング後のネットリストに基づきます。したがって、内部ノードまたは内部バスの一部はネットリストのコンパイル中に最適化されます。内部ノードが最適化される場合、MessagesウィンドウのWarningタブに以下のメッセージのようなワーニングが表示されます。

Warning:Compiler packed, optimized or synthesized away node “DataU”.Ignored vector source file node.

この内部ノードは Quartus IIシミュレータで無視されます。

レジスタの Dポートと Qポートをタップアウトする場合、AssignmentEditor で Add D and Q ports of register node to Simulation OutputWaveform をオンにします。この機能は機能シミュレーションに対してのみ使用できます。

Accesing the internalsignal of the bus INTA.

Both the internal signal bus and the output port have the same name.

Page 35: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–352008年 5月

スクリプトのサポート

スクリプトのサポート

この章で説明する手順の実行と設定は Tcl スクリプトで行うことができます。また、一部の手順はコマンド・プロンプトでも実行できます。スクリプティング・コマンド・オプションについて詳しくは、Quartus IICommand-Lineおよび Tcl API Helpブラウザを参照してください。このHelpブラウザを使用するには、コマンド・プロンプトで次のコマンドを入力します。

quartus_sh --qhelp ↵

「Quartus II Scripting Reference Manual」には、同じ情報が PDF形式で付属しています。

Tcl スクリプトについて詳しくは、「Quartus II ハンドブック Volume 2」の「Tclスクリプト」の章を参照してください。Quartus IIソフトウェアにおける設定および制約について詳しくは、「Quartus II Settings FileReference Manual」を参照してください。コマンドライン・スクリプトについて詳しくは、「Quartus IIハンドブック Volume 2」の「Command-LineScripting」の章を参照してください。

機能、タイミング、または高速タイミング・モデルを使用したタイミングの各シミュレーション・モードは、以下のコマンドで変更できます。

simulation_mode <mode> ↵

現在のデザインのシミュレーションを初期化するには、以下のコマンドを使用します。初期化の間、シミュレータによりシミュレーション・ネットリストが構築され、シミュレーション時間がゼロに設定されます。

シミュレーションのためのソース・ベクタ・ファイルが存在する場合、オプション -ignore_vector_file はデフォルトで Off に設定されます。Quartus IIソフトウェアでは、オプション-ignore_vector_fileがOnに設定されている場合、シミュレーション時にソース・ベクタ・ファイルは無視されます。-end_time オプションは、-ignore_vector_fileオプションがOnに設定されている場合にのみ使用されます。

initialize_simulation [-h | -help] [-long_help] [-check_outputs <On | Off>] \[-end_time <end_time>] [-glitch_filtering <On | Off>] [-ignore_vector_file <On | Off>] \[-memory_limiter <On | Off>] [-power_vcd_output <target_file>] [-read_settings_files <On | Off>] \ [-saf_output <target_file>] [-sim_mode <functional | timing | timing_using_fast_timing_model >] \[-vector_source <vector_source_file>] [-write_settings_files <On | Off>] \-simulation_results_format <VWF | CVWF | VCD> -vector_source <vector source file>

指定された信号または信号グループに、指定された値を強制的に設定するには、コマンド・プロンプトで次のとおり入力します。

force_simulation_value [-h | -help] [-long_help] -node <hpath> <value> ↵

Page 36: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–36 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3

指定された時間の間、シミュレータにデザインをシミュレーションさせるには、コマンド・プロンプトで次のとおり入力します。

run_simulation [-h | -help] [-long_help] [-time <time>] ↵

シミュレーションの実行に特定の時間を設定しない場合、最後までシミュレーションが実行されます。

指定された式および処置のブレークポイントを作成するには、コマンド・プロンプトで次のとおり入力します。

create_simulation_breakpoint [-h | -help] [-long_help] \-action [Give Warning | Give Info | Give Error] \-breakpoint <breakpoint_name> -equation <equation> [-user_message <message_text>]↵

指定された名前のブレークポイントを削除するには、コマンド・プロンプトで次のとおり入力します。

delete_simulation_breakpoint [-h | -help] [-long_help] \-breakpoint <breakpoint_name> ↵

まとめ シミュレーションは製品の品質を確保する上で重要な役割を果たします。Quartus II ソフトウェアは、シミュレーションを支援するためのさまざまなツールを提供しています。またグリッチ・フィルタリングやブレークポイントなどの機能を備えており、デバッグ時間を短縮するのに役立ちます。

参考資料 この章では以下のドキュメントを参照しています。

■ 「Quartus IIハンドブック Volume 1」の「Analyzing Designs with theQuartus II Netlist Viewers」

■ 「Quartus IIハンドブック Volume 2」の「コマンドライン・スクリプト」の章

■ 「Quartus IIハンドブック Volume 3」の「Mentor Graphics ModelSimSupport」の章

■ 「Quartus II ハンドブック Volume 3」の「PowerPlay による電力解析」の章

■ 「Quartus II Scripting Reference Manual」■ 「Quartus II Settings File Reference Manual」■ 「Quartus IIハンドブック Volume 3」の「セクション I: シミュレーション」のセクション

■ 「Quartus IIハンドブック Volume 2」の「Tcl Scripting」の章

Page 37: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

Altera Corporation 1–372008年 5月

改訂履歴

改訂履歴 表 1–5 に、本資料の改訂履歴を示します。

表 1–5.改訂履歴

日付およびドキュメント・バージョン

変更内容 概要

2008年 5月 v8.0.0 1–1ページの「概要」を更新。1–36ページの「参考資料」を更新。

Quartus IIソフトウェアv8.0のための更新。

2007年10月 v7.2.0 1–33ページの「参考資料」を再編成。 —

2007年 5月 v7.1.0 ● 「スクリプトのサポート」のコマンドを更新。● 「ブレークポイント」を更新。● 「論理メモリ・レポート」にプロシージャを追加。● 「シミュレータの設定」でセクションを更新、追加、および削除。

● 「シミュレーション・レポート」を更新。● 表 1-2を更新。● グループまたはバスの LSB順または MSB順の配置の追加。● VWFの作成の更新。● 参考資料の項を追加。

Quartus IIソフトウェアv7.1のための更新。

2007年 3月 v7.0.0 Quartus II ソフトウェア 7.0 のリビジョンおよび日付のみ更新。その他の変更はありません。

2006年11月 v6.1.0 Quartus IIソフトウェア v6.1のための更新。● VCD(Value Change Dump)ファイル(.vcd)への参照を追加。● 「ランダム値」の項を追加。● その他のマイナー・チェンジ

Quartus IIソフトウェアv6.1のための更新。

2006年 5月 v6.0.0 初版 —

Page 38: 1. Quartus II シミュレータ - intel.co.jp · Altera Corporation 1–3 2008 年5 月 シミュレーション・フロー 図1–1. シミュレーション・フロー 図1–1

1–38 Altera Corporation2008年 5月

Quartus II ハンドブック Volume 3