2.3 SFL記述からの論理合成


● とりあえず合成してみよう

論理合成を体験してみる

さて,SECONDSによるシミュレーションで動作を確認したSFL記述を,さっそく論理合成してみましょう.2.1節で記述した リスト2.1 を TIMER.sfl,リスト2.9 を DECR8.sfl として,この二つのSFLソース・ファイルをそのまま例題として使用します.なお,これらのSFLソース・ファイルは,PARTHENONをインストールしたディレクトリの example.dir\chapter2内にあらかじめ用意されていますのでそのまま利用できます.ただし,論理合成時にはたくさんの作業用ファイルなどがカレント・ディレクトリ内に作成されてしまいます.そこで,ハード・ディスクのどこかにワーク用のディレクトリを作って,これらのSFLソース・ファイルをそこにコピーし,以下の作業を進めることとします.

とにかく, TIMER.sfl,DECR8.sflの二つのSFLソース・ファイルがカレント・ディレクトリにあるものとします.MS-DOSのコマンド・プロンプトが出ている状態で,以下のコマンドを順番にキー・インしてみてください.

なお,以下の (1), (2), (4) の auto コマンドの第1,第2パラメータは,対象とするモジュール名と処理内容の指定であり,英大文字,小文字は区別して扱われます.これらについては,下記のとおりにキーインしてください.

A>auto TIMER nld1 celldemo ................(1)
A>auto DECR8 nld1 celldemo ................(2)
A>copy DECR8.1st\DECR8.nld TIMER.1st ......(3)
A>auto TIMER ps celldemo ..................(4)

(1), (2), (4) の autoコマンドのキー・インごとに,PARTHENONの論理合成系のプログラムが順に起動され,処理内容を表すたくさんのメッセージが画面上に出力されますが,詳しい説明は後回しにします.これらのコマンドの実行が終わると,論理合成,最適化,テクノロジ・マッピング,最終ネットリストの作成,論理回路図の作成のすべてが完了したことになります.どうです? 意外と簡単でしょう.


作成されたファイル

(1)〜(4)の一連の処理が終わった段階で,カレント・ディレクトリ内に,いくつかのファイルやサブディレクトリが作成されていることが確認できると思います(図2.4).この中で,TIMER.edf が論理合成の最終結果であり,業界標準のEDIF形式のネットリスト(部品の接続情報)になっています.実際にLSIチップにするときは,このファイルを各種の配置配線ツールに読み込ませることになります.

<図2.4> autoコマンド終了後のディレクトリ内容 (dir /od コマンドで表示)


また,TIMER.psというファイルも作られていますが,これが PostScript形式の論理回路図になっています.PostScript対応のプリンタが接続されていたら,さっそくプリントアウトしてみましょう.

A>type TIMER.ps >prn

のようにキー・インすれば,図2.5に示すような回路図が印刷されます.また,Ghostscript のような PostScript のビューワがあれば,ディスプレイ上に回路図を表示することもできます.SFL記述から,わずか数分(PCの機種にもよりますが)で,論理回路図ができてしまいました.しかも,できあがった回路は間違いなく動作するはずです.

<図2.5> TIMER.psのプリンタ出力 (実際は,それぞれA4サイズ)


作成されたファイルなどを消して合成前の状態に戻す

ここで,いま作成したファイルやサブディレクトリを消去して,合成前の状態に戻してみます.

A>auto TIMER clean
A>auto DECR8 clean

「消そうとしたディレクトリがない」といったメッセージが表示されますが,無視してください.これで,また,TIMER.sflとDECR8.sfl のファイルだけになりました.


もっと簡単な方法

じつは,SFLソースがまとめて一つのファイルになっていると,もっと簡単な手順で論理合成することができます.プログラミング言語にたとえていうならば,(1)〜(4)のやり方が分割コンパイルで,今度は一括コンパイルといえるかもしれません.

そのために,まずSFLソースを連結して一つのファイルにします(TIMER.sflの内容にDECR8.sflの内容を継ぎ足す).

A>type DECR8.sfl >> TIMER.sfl ...........(5)

これで,TIMER.sflが,module TIMERを構成するすべてのSFL記述を含むものに書き換わりました.この場合は,いきなり,

A>auto TIMER ps celldemo ................(6)

とキー・インするだけで,すべてできあがりです(autoコマンドでは,以前の合成結果が残っているとあえて再合成しないので,あらかじめauto TIMER cleanできれいにしておくこと).結果として,先ほどと同一の論理回路が合成されることになります.

もちろん,SFLソースのファイル構成をどのようにしておけばよいかは,部品となるmoduleの再利用性などを考慮して決めるべきですので,合成時に便利だからといってむりやり一つのSFLファイルにしておく必要はありません.


PARTHENONによる設計入門 のページへ戻る

ホームページに戻る