CQ EDA icon CQ出版社のトップページへ戻る
EDA toolのページへ戻る

WaveFormerProロゴ

Verilog-HDLシミュレータ付き波形入力ソフトウェア

VHDL, Verilog-HDL, SPICE, QuickSimU形式などで波形生成ができる

Verilog-HDLシミュレーション機能を新たに装備!

この商品は取扱いを終了いたしました


このページ内の画像はクリックすると拡大表示できます



概要

 回路設計において,設計した回路のシミュレーションは必須の作業ですが,シミュレータに与えるテスト・スティミュラスの準備は面倒な作業で,テストに十分なスティミュラス・セットやドキュメントを用意するには多大な労力が要求されます.
 Waveformer Pro/TestBencher Proは,こうした波形に関する作業を容易にするツールです.

WaveFormer Proの概要

 WaveFormer Proは,タイミング・ダイヤグラムの編集および解析機能とテスト・スティミュラスの自動生成機能を合わせ持っているEDAツールです.
 タイミング・ダイヤグラムのエディタは,デジタル回路のタイミング・ダイヤグラムの作成と解析に使います.
画面例1  またテスト・スティミュラスの自動生成機能には,シミュレータやATEに与えるいろいろなフォーマットのテスト波形の生成,取り込みおよび変換の機能が含まれます.これらの機能を一つの商品に組み込むことにより, WaveFormer Proはタイミング・ダイヤグラムの作成,解析,変換およびデジタル信号波形のドキュメント化のための統合された環境を提供します.標準でサポートする Bitmap, EPS, VHDL, Verilog-HDL,SPICEなどのフォーマット以外にも,Perl言語をベースとした組み込みスクリプト言語によるプログラミングで,どんな波形フォーマットも生成できます.

なぜタイミング・ダイヤグラム・エディタが必要か

○回路設計以前のタイミング解析
 シミュレータは回路の設計後にしか使えませんが,タイミング・ダイヤグラムの検証/解析はデバイスのデータ・ブックに記載されているタイミング・パラメータのみで行え,回路のネットリストやシミュレーション・モデルを必要としません.たとえデジタル・シミュレータが使えたとしても,設計条件の厳しい部分の動作を把握するためにタイミング・ダイヤグラムを描くことが必要です.WaveFormer Proは,この作業をきわめて容易にしてくれます.

○設計の総合解析
 タイミングの計算が対話的に行え,WaveFormer Proのパラメータ・スプレッド・シートを通してタイミング・パラメータを変化させることにより,パラメータの変更結果を即座に評価できます.これはLotus1-2-3やExcelでのシミュレーションに似ています.これにより不必要に高速な部品の使用を排除でき,プリント基板のコスト・ダウンができます.周波数を変化させてシミュレーション(スプレッド・シート)することにより回路の最高動作周波数がわかります.

○ドキュメントの作成
 タイミング・ダイヤグラムは回路図やHDL ソース・リスト同様に重要な設計ドキュメントです.これを正確に維持/管理することは非常に重要ですが,WaveFormer Proを設計やデバッグを通して使うことにより自然に実行できます.

○テスト・データの自動変換
 シミュレータやATEに与えるテスト・データをHDLや装置固有の言語で手動記述することは大変間違えやすく非効率な作業です.これは視覚的な補助のもとに行われるべきです.

タイミング編集−わかりやすく簡単な操作でのタイミング・ダイヤグラムの描画と編集

画面例2
 図1にダイヤグラム・ウインドウ上の操作ボタンのようすを示しました.ほとんどの描画が,この機能別に分類されたボタン群の操作だけでできるようになっています.





信号の付加,命名,移動

画面例3
 WaveFormer Proは信号,バスおよびクロックを波形の絵で示します.図2はこの三種の異なった波形を示しています.それぞれツール・バーの左上角の信号付加ボタンのグループから,対応するボタンを左クリックすることにより生成されます.



波形セグメントの編集

 マウス操作回数の少ない効率的な方法で波形セグメント(信号のある遷移から次の遷移まで)の描画と編集ができます.はじめは目盛りを参考にしながらおおざっぱな描画を行い,必要に応じて正確な値を数値で指定し直すことにより,すばやく描画と編集ができます.波形セグメント編集後の,ロジック・ステートの変更,遷移時間の変更および波形セグメントの挿入/消去なども自由に簡単な操作で行え,時間間隔の計測もすばやく行えます.

バス波形

 バスまたはこれを構成する信号のうちどちらか一方が変化すると,他方にも対応するアップ・デートが起こります.したがって,個々の波形よりバスとして扱うほうが,波形作成やメンテナンスの時間を節約できます(バスの場合,これを構成する信号波形を自動生成する).なお,値は2進または16進のいずれかで入力できます.

クロック波形

 クロック波形は,周期(または周波数),デューティ・サイクル,エッジ・ジッタなどのクロック固有の属性を設定することにより自動生成されます.またクロックに関する属性は,他のクロックのタイミング・パラメータを参照しながら指定することも可能です.たとえば ( CLK1.period = CLK0.period / *2)とすれば,クロック分周やPLL周波数ジェネレータなどが簡単にモデリングできます.
 また周波数を変えて,動作可能な最高周波数を即座に求めることなどもできます.

式による波形の生成

 信号によっては,時間規定を式で表したほうが,個々の波形セグメントをマウスで描画するより適した場合があります.

例1) 周波数が25[MHz]の波形を4周期分生成した後,50[MHz]の波形を5周期分持つ信号CK25_50の生成をWaveFormer Proに指示する場合は下記の式で表現でき,図3内上部の波形を生成します.
CK25_50 (20ns=0 20ns=1)*4 (10ns=0 10ns=1)*5
(20ns=0 20ns=1)*4 は,最初の20[ns]は0,次の20[ns]は1の値を持つ波形を一周期とし,これを4回繰り返すことを示します.
例2) 波形を式で入力できる機能と,時間と値を変数で表せるWaveFormer Pro のスクリプト言語処理機能を使うと,きわめて複雑な波形の生成が容易にできます.たとえば,スイープするような図3内下部の波形の生成(100[MHz]から10[MHz]へ)は以下の簡単なスクリプトで可能です.
	for ($i = 0;$i < 10; $i++)
	{
	 $time = 5 * $i;
	wfm SIG1 $time=0 $time=1;
	}
画面例4



タイミング解析− 遅延,セットアップ・タイム,ホールド・タイムによるパラメータ解析

 タイミング・ダイヤグラム・エディタの真価は,タイミング・パラメータを通した異なる信号遷移間の関連付けにあります.Waveformer Proはタイミング・パラメータの三つの基本的な型である遅延時間,セットアップ・タイム,ホールド・タイムを最大値,最小値などの幅をもたせて波形に条件付けすることができます.これらの作業は,ダイヤグラム・ウインドウでの遷移位置の指定,パラメータ・ウインドウでのパラメータ名と数値の代入による簡単な操作でできます(図4).
 また,これらの制約条件の監視も行い,マージンを計算して不足分に対してはダイヤグラム・ウインドウとパラメータ・ウインドウ上で該当個所を赤色で警告するので,問題の箇所がすばやく発見できます(図6).


画面例5

 WaveFormer Pro は自動的にこのマージンを計算してスプレッド・シートに表示するので,設計者はこれを基に,必要十分な余裕を持つよう回路のタイミング調整を行えます.すべてのマージンはタイミング・パラメータの変更のつど自動的に計算し直され,結果が表示される(スプレッド・シート機能)ので,いろいろな設定を容易にシミュレーションでき,回路を最適化することができます(図5).

 タイミング・パラメータは数値の直接代入ではなく,変数やマクロ変数として設定することもできるので,同じ値を何度も使う場合や,プロセスやデバイス・ファミリの変更に柔軟に対応でき,以前作成したダイヤグラムを再利用できます.また WaveFormer Proには多くの標準ロジック・デバイスのタイミング・ライブラリがオプションで用意されており,これを使えば標準ロジック・デバイスを使った回路の場合,デバイスの選択だけでタイミング解析ができます.他にインテル社のx86シリーズCPUのモデルもあります.

画面例6



画面例7
 WaveFormer Proは信号間の遅延の計算において,パスの共通部分を認識し,共通部分の遅延はタイミング計算に取り込まず,信号が分かれた所から計算を始めます(図6).これにより,不必要に厳しい条件を導き出しません.



スティミュラス生成機能−VHDL, Verilog-HDL, QuickSimU, SPICE...

 WaveFormer Proは一つのタイミング・ダイヤグラムからいろいろなフォーマットのスティミュラスが生成可能です. WaveFormer Proは標準でVHDL, Verilog-HDL, SPICE,QuickSimU(Mentor Graphics)などの形式でタイミング・ダイヤグラムの変換/生成をサポートしていますが,スクリプトにより任意のフォーマットでの生成も可能です.このため,シミュレータ以外にもATEへのテスト・ベクタの準備という用途も考えられます.

スティミュラス生成例

 ここでは変換出力の例として,WaveFormer Proに標準で用意されている"VHDL transport"スクリプトを使って,信号遷移をVHDLの処理信号代入文で置き換える例を示します.このスクリプトは完全なentity-architectureの構造を含むテスト・ベンチを生成し,シミュレータで直接コンパイル,リンクできます.
 VHDLで許される複雑なデータ型をモデリングするため,"VHDL transport"スクリプトはWaveformer Proのオブジェクト・プロパティと拡張されたステートを使います.これらの機能は,"VHDL transport"スクリプトがVHDLコードの生成に必要とする情報をタイミング・ダイヤグラムの信号オブジェクトに付加します.

画面例8
 なお,下に示すVHDLコードは,WaveFormer Proに含まれる"VHDL transport"スクリプトを使い,図7より得たものです.



	library ieee, std;
	use std.textio.all;
	use ieee.std_logic_1164.all;

	entity testbench is
	  port( SIG0, CLK0 : out std_logic; SIG1 : out integer);
	end testbench;

	architecture test of testbench is begin

	  process begin
	    CLK0 <= '1'; wait for 0 ps;
	    while true loop
	      CLK0 <= '0'; wait for 50000 ps;
	      CLK0 <= '1'; wait for 50000 ps;
	    end loop;
	  end process;

	process
	  begin
	    SIG0 <=
	    	transport '1' after 0 ps,
	    	transport '0' after 50000 ps,
	    	transport '1' after 90000 ps,
	    	transport '0' after 180000 ps,
	    	transport '1' after 240000 ps;
	    SIG1 <=
	    	transport 4 after 0 ps,
	    	transport 16 after 60000 ps,
	    	transport 9 after 120000 ps,
	    	transport 12 after 185000 ps,
	    	transport 3 after 238000 ps;
	  end process;

	end test;

強力なスクリプト言語

 WaveFormer ProはPerl言語 (Practical Extraction and Report Language)をもとにした強力なスクリプト言語(Waveperl)を備えています. WaveFormer Proのあらゆる有用なAPIが公開されており,スクリプト・プログラミングを通して適切に引用することにより,任意の波形フォーマットのWaveFormer Proへの読み込みや出力,複雑な波形の生成および編集機能の強化ができます.これによりWaveFormer Proをユーザの環境に必要な形にカスタマイズできます.


TDML言語のサポート

 現在タイミング・ダイヤグラムのフォーマットに関する標準化作業が進められています.これが確定すると今までは紙のデータシートに印刷されて配布されていたタイミング・チャートが,統一された言語フォーマット(TDML)で流通できるようになり,ビューワを使って簡単にコンピュータ上でタイミング・チャートの閲覧ができるようになります.
 この標準化作業にあたり,WaveFormer Proの波形処理技術が採用されています.
 詳細については以下のドキュメントをお読みください.

    FD タイミング・ダイヤグラムの標準化とTDMLについて をダウンロードする(TDML.PDF 16Kバイト)



インタラクティブHDLシミュレーション

 WaveFormer ProおよびTestBencher ProはインタラクティブHDLシミュレーション技術を採用した最初のEDAツールです.これは,設計情報(論理式,タイミング情報および使うモデル)や入力信号波形が変更されると,新たに装備されたVerilog-HDLシミュレータ・エンジンによりオンラインで自動的にシミュレーション結果を更新するもので,この機能により回路の機能やパフォーマンスの変更に伴う影響を簡単に調べることができます.
画面例9  一般的なシミュレータでは,シミュレーション結果を更新するためにテスト・ベンチや回路図とテスト・ベクタもその都度変更しなくてはなりませんが,WaveFormer ProおよびTestBencher ProのインタラクティブHDLシミュレーション機能を使えば,シミュレーションの都度シミュレーションのための完全なセットを準備し直す必要がありません.これにより,すばやく設計の誤りを発見したり設計時間を短縮できるので,設計の最適化に専念することができます.
 このほか,WaveFormer ProおよびTestBencher Proでは論理式やVerilog-HDLを直接記述して波形を定義したのち,これをperlスクリプトによりVerilog-HDL形式へ自動変換できるほか,既存のVerilog-HDLソースを取り込んで実装することも可能です.

  信号clock,resetおよびpresetはモジュールc4(4ビット・カウント)の入力信号として働きます.
 resetやpreset信号のエッジ位置を移動させると,出力c4outの変化を即座に確認できます!




TestBencher Proの機能

 TestBencher ProはWaveFormer Proの全機能を継承したうえ,バス・ファンクション.モデルを利用したテスト・ベンチの作成ができます.
 大規模なシステムのテストを行う場合も設計者はコンポーネント内の複雑で大規模な動作記述を直接行う必要がなく,バス・インターフェースとバス・トランザクションの定義をTestBencher Pro上で行うことにより,容易にテスト環境を構築できます(本件についてはDesignwave Magazine No.9に掲載の記事「バス・ファンクション・モデルによるテスト・ベンチ・コーディング法」を参照のこと).



 これらの商品に関するご質問はこちらへ………


Copyright CQ Publishing Co.,Ltd. 1999
edasupport@cqpub.co.jp