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

StateCADロゴ

状態図入力によるHDL生成ツールとステート・シミュレータ

VHDL , Verilog-HDL , Altera-AHDL, ABEL-HDL , C

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


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

画面例1


StateCAD全般のご紹介

 現在,設計者はより一層の生産性向上をせまられているためにさまざまな努力をしています.そのなかで設計の自動化を進めることは開発費を減少させるばかりでなく,その設計効率を高め,システムの信頼性向上にも結び付きます.特にステート・マシン設計の自動化は,製品の開発サイクルを短くするばかりでなく,設計者をスムーズにHDLベースの設計に移行させます.

 StateCADには,状態図を入力するためのグラフィカル・エディタがあり,このエディタを使って状態(ステート)図を描くことで,HDLのコードを生成します.生成されたHDLは,さまざまな論理合成ツールやシュミレータで処理されるので,ユニバーサルなフロントエンド・ツールとして使えます.また,そのとき描いた状態図が設計のドキュメントとしての役割も果たします.

 StateCADは,自動的にステートの競合(同じステート・ビットに異なる状態を割り当てた場合),未定義の状態の確定,スタックするような設計などをコンパイルの際に分析し,エラーがあれば設計者に報告します.この自動化されたエラー解析は,論理の一貫性,シュミレーションに費やす時間の削減,信頼性の向上に貢献します.

 今までのステート・マシン設計では,紙に状態図を描き,それを参照しながら各設計者がマニュアルで各HDLに変換していましたが,StateCADは使うベンダーの論理合成やシュミレータに沿ったフォーマットで自動的にVHDL,Verilog-HDL,Altera-AHDL,ABEL-HDLそしてCの各コードに変換します.
 StateCADは,設計を最良の性能に導くために,最適化機能,One-Hotエンコーディング,次の状態を予測するLook-Aheadデコーダなどの機能を搭載しています.

容易な設計入力

 ステート・マシン設計の際に使う状態図は,設計の概念を図(絵)で表したものです.StateCADを使うと,設計の概念,アイデアをそのまま状態図として表すことができ,その状態図を基にStateCADがHDLを生成するので,設計者は状態図をドキュメントとして描画することに集中できます.もちろんStateCADのグラフィカルな操作環境は,状態,状態遷移,ミーリとムーア,同期化,リセット,組み合わせおよび同期ロジック,プライオリティ・ロジック,テスト・ベクタ,コメント記述のための機能をサポートしています.

画面例2  StateCADは,ステート・マシンの描画だけでなく,描画された状態図(バブル・ダイアグラム)と,組み合わせロジックや同期ロジックの混在で設計を入力できます.

 StateCADは,相互に関連して同時に動作するステート・マシン(並行状態)を複数描画することができます.相互のステート・マシンを関連づけるロジックを記述する際に,状態名を遷移条件として使うと,具体的な状態割り当ての変更に依存することなく設計の並列動作が簡単に実現できます.  製品開発の中でドキュメントの作成は非常に重要な仕事です.しかし,現在の短期/高効率を要求される開発環境の中ではしばしば後回しにされがちです.しかし,StateCADを使うと状態図を描画することがドキュメント作成にもなり,また,その状態図をアップデートすると自動的にHDLもアップデートされるので,設計のメンテナンスを非常に容易にします.さらに,状態図をプリント・アウトすることは,非常に高品質なドキュメントを書面にすることと同じです.
 なお,StateCADで描画した状態図は,メタファイルやビットマップとして他のアプリケーションにグラフィック・データとして渡すことができます.

論理的矛盾の発見

画面例3  より早い段階で問題を見つけて対処することは,その製品の成功の鍵を握っていると言っても過言ではありません.しかし,シュミレーションやテストに費やせる時間は,開発期間やリソースによって決められてしまう傾向にあります.

 StateCADは早い段階で問題を見つけるため,自動的にスタックしてしまうステート,論理の矛盾,不確定なコントロール・フローなど100以上の設計の問題を徹底的に分析し,指摘します.そのときStateCADは,問題の部分をグラフィカルに表示し,具体的な解決方法を提供します.
 シュミレーションの実行以前に問題を除去することは,後工程でのテスト時間や リワークのコストを削減することになり,結果的に問題の早期発見が開発コスト削減にも貢献します.




最適化

 積項制限があるFPGAのようなデバイスを使う場合,1つのステートに1つのレジスタを割り当てるOne-Hotエンコーディングでステート・マシンを最適化することが最も効率的です.また,フィッティングを易しくします.

画面例4  Complex-PLDやASICのように一つのレジスタに対し多くの積項が配線できる場合には,マキシマム・エンコーディングでステート・マシンを最適化します.  このように,StateCADはターゲットのハードウェアに最適な状態割り当てでHDLを生成します.

 ステート・マシンは,スピードまたはエリア優先で最適化できます.スピード優先の最適化は,次の状態をクロック入力より先に計算し,レジスタ出力させるLook-aheadデコーディングによって行なわれます.またエリアを最小限にする最適化は,クロック入力の後に出力をデコードし,最少限のレジスタでステート・マシンを実現します.StateCADは,設計が一番効率よく最適化されるセットを選択し,自動的にHDLを生成します.

 StateCADは,同期/非同期リセットや優先順位のある遷移,またミーリとムーア・マシンまでもサポートしています.
 StateCADの最適化機能は,時間の節約と最高のパフォーマンスを設計者に提供します.

HDLの生成

 StateCADで描画した状態図は正確なので,生成されるHDLもエラーがなく,詳細かつ正確です.
 StateCADは,描画した状態図を論理合成可能なVHDL,Verilog-HDL,Altera-AHDL,ABEL-HDLおよびCのコードに変換します.もちろん,すべてのステート・マシンおよび関連のあるロジックを解析して,自動的にVariables(変数),Port(入出力)定義,センシティビティ・リストを生成します.

画面例5  設計の変更や改訂に要する作業は,状態図を描画し直すだけとなるので,リ・コンパイルするだけで自動的にHDLも更新されます.

 StateCADはツール・ベンダに依存した,シュミレーションまたは論理合成可能なHDLも生成できます.
 StateCADによって生成されたHDLは,DATA I/O社のSynario/ABEL,Viewlogic社のPRO-Series,Model Technology社のV-System,Altera社のMAX+plusU,Exempler社のCoreやSynopsys社,Cadence社,Compass社,Mentor社など,多くのツールで論理合成,シュミレーションが可能です.

 StateCADは標準的なASCIIファイルでHDLを出力するので,Unix,DOS,およびWindowsの環境下で動作するツールで出力結果を利用できます.当然,標準的なテキスト・エディタで読み込み,変更も行えます.



設計の移行

 コスト削減とパフォーマンスの向上が要求される中で設計を新しいデバイスに移行させることが難しいケースが多くあります.新しいデバイスのプログラミングを行う際,以前のコード(HDLやネットリスト)のままでは100%の互換性がないために別の合成ツールが必要となったり,デバイスの能力を最大限に引き出し,より高いパフォーマンスを得るためにコード再生成の必要も生じます.
 しかし,StateCADでは抽象度が非常に高い「図(絵)」で設計を入力し,出力されるHDLは各社ツールとの互換性の保持や最適化がなされているので,設計の移行に要する作業といえば単に適切なオプションを選び,StateCADにHDLを更新させるだけです.


信頼性

 StateCADは,IBM社,Motorola社,Intel社などの世界企業で使われています.Visual Software Solutions社は,広範囲に渡り各社ツールとの互換性のテストを行うとともに,各ツール・ベンダとの協力のもとに最高のパフォーマンスをもたらすようStateCADを最適化しました.
 StateCADと,DATA I/O社のSynario/ABEL,Exempler社のCore,Altera社のMAX+plusU,Viewlogic社のPRO-Seriesと共に使うと最適な結果を得ることができます.


StateCADの機能

StateSIMについて

画面例6  StateSIMは,StateCADに統合されたシミュレータです.StateCADで作成した状態遷移図をStateSIMを使ってアニメーション形式でシミュレーションできます.シミュレーション形式は,シングル・ステップあるいはコマンド・ファイルによる連続シミュレーションの二通りです.シミュレーション中はカレント・ステートと出力が赤い枠で囲まれ,専用のウィンドウにはこれらが表示されるので,視覚的に状態遷移を確認することができます.
 このほかシミュレーション終了時には使われなかった状態を赤い枠で囲んで表示してくれるので冗長な状態の存在を確認することも容易です.




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


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