JPH07319928A - Cad装置、及びcad装置による順序回路合成方法 - Google Patents

Cad装置、及びcad装置による順序回路合成方法

Info

Publication number
JPH07319928A
JPH07319928A JP6108335A JP10833594A JPH07319928A JP H07319928 A JPH07319928 A JP H07319928A JP 6108335 A JP6108335 A JP 6108335A JP 10833594 A JP10833594 A JP 10833594A JP H07319928 A JPH07319928 A JP H07319928A
Authority
JP
Japan
Prior art keywords
circuit
ffs
logic
pair
state transition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP6108335A
Other languages
English (en)
Inventor
Taeko Matsunaga
多苗子 松永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6108335A priority Critical patent/JPH07319928A/ja
Publication of JPH07319928A publication Critical patent/JPH07319928A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 本発明はCAD装置、及びCAD装置による
順序回路合成方法に関し、論理の爆発を防止し、効率良
く状態割当てができるようにし、FFと組み合わせ論理
回路部分を合わせた全体のサイズを小さくすることを目
的とする。 【構成】 ハードウェアの動作記述を基に順序回路を自
動合成する過程で、その回路の制御論理を有限状態機械
(FSM)として実現する順序回路合成部に、動作記述
を基に多段論理の形で表現された状態遷移情報を生成す
る状態遷移情報生成手段と、状態遷移情報を基に各状態
に対して1個ずつFFを割当てることで、状態数分のF
F、及び多段論理回路からなる初期回路を生成する初期
回路生成手段と、FF間の関係を調べ合成するFFのペ
アを決定するペア決定手段と、FFのペアに対し付加回
路を加えて論理の簡単化を行うことでFFの合成を行う
FF合成手段と、合成した結果の回路について評価を行
う評価手段を備えている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、例えば、LSI、VL
SI等の順序回路の合成を行うCAD(CAD:Comput
er Aided Design )装置(計算機支援設計装置)、及び
CAD装置による順序回路合成方法に関する。
【0002】近年、VLSI技術の進歩に伴って、回路
が大規模化、複雑化するのに従い、計算機による設計支
援(CAD)の重要性が非常に大きくなってきている。
VLSIの設計は、一般に、方式設計、機能設計、論理
設計、及び実装設計という過程を通して実現され、計算
機による支援、或いは設計の自動化は、実装設計から始
まり、徐々に抽象度の高いレベルへと進んできている。
【0003】特に、最近では、組み合わせ回路の自動合
成技術の進歩により、論理設計の過程を自動化する論理
設計ツールが広く実用化されてきた。そして、より高い
レベルである機能設計の過程を自動化する高位レベル合
成の研究、実用化が活発になってきている。
【0004】前記高位レベル合成とは、一般的に、ハー
ドウェアの動作記述を入力として、スケジューリング、
アロケーション等の処理を経て、レジスタ転送レベルの
回路構成を決定するものである。
【0005】このレジスタ転送レベルの回路は、レジス
タ、機能ユニット(加算器等)、マルチプレクサ等から
なるデータパス部と、そのデータパス上で所望の動作を
実現するための制御回路部から構成される。この後、制
御回路部は、ランダムロジックや、マイクロコードで実
現され、データパスの構成要素は、それぞれ具体的な構
造へと変換される。
【0006】本発明では、前記のように高位レベル合成
の流れに現れるように、順序回路の状態遷移の仕様が、
状態遷移表ではなく、多段論理の形で表現された動作記
述の形で与えられた時に、それを、有限状態機械(FS
M:Finite State Machine)として実現する機能を備え
たCAD装置(またはCADシステム)を対象としてい
る。
【0007】
【従来の技術】従来、有限状態機械(FSM)の合成
は、設計者が、所望の順序回路の動作を、状態遷移表、
或いは状態遷移図の形で表し、それを元にして、状態最
小化、状態割当てを行い、論理の簡単化を行うというア
プローチが一般的であった。
【0008】ここで、状態最小化とは、同値な順序回路
の中から状態数が最小のものを求める処理である。ま
た、状態割当てとは、記号として表現されていた個々の
状態に対して、2進コードを割当てる処理である。
【0009】状態割当てが終了すると、FF(フリップ
フロップ回路)と、組み合わせ論理から成る回路が構成
され、この組み合わせ論理部に対して、論理の簡単化を
行うことにより、最終的な回路が得られる。
【0010】状態割当ては、その後、論理の簡単化を行
って得られる回路の大きさに大きな影響を与えるため、
順序回路の合成において重要な問題である。最終的な組
み合わせ論理部を2段で実現するか、多段で実現するか
で、状態割当ての目標が異なってくる。
【0011】通常、2段論理で実現することを対象とし
た場合、論理簡単化後の積項数の最小化、多段論理を対
象とした場合は、リテラル数の最小化を目標として、各
状態にコードが割当てられる。ここでは、多段論理で実
現することを考える。
【0012】従来の順序回路の合成手法は、状態遷移
表、或いは状態遷移図で表された情報に基づいて行われ
る。前記状態遷移表の1例を次の表1に示す。 前記表1に示したように、状態遷移表は、入力(I)、
現状態(P)、次状態(N)、出力(O)からなる4つ
の情報の組で表される。この状態遷移表によれば、各行
は入力(I)、現状態(P)、次状態(N)、出力
(O)からなる4つのフィールドからなり、1つの状態
遷移を表している。
【0013】例えば、状態S1で入力が0の時は、状態
S1に遷移し1を出力する。また、状態S1で入力が1
の時は、状態S2に遷移し0を出力する。更に、状態S
2で入力が1の時は、状態S2に遷移し0を出力する。
【0014】このように、従来の状態遷移表では、或る
状態が、別の状態へ遷移するための条件が、外部入力に
よる2段論理式(AND+OR)で表されていると見な
すことができる。
【0015】一方、動作記述については、任意の形の論
理式が可能であり、また、「if・・・then・・・
else・・・」等の条件分岐や、ループも記述可能で
ある。従って、動作記述から生成、或いは抽出される状
態遷移の条件を表す論理は、多段論理で表されていると
見なすことができる。
【0016】
【発明が解決しようとする課題】前記のような従来のも
のにおいては、次のような課題があった。レジスタ転送
レベル、或いはアルゴリズムレベルの動作記述から、順
序回路を合成する場合に、既存の手法を用いるために
は、各状態から、次状態への遷移条件や、外部出力信号
の出力条件を表す論理式を、一旦、2段論理式の形に平
坦化して、状態遷移表と等価なものを生成する必要があ
る。
【0017】状態遷移表が生成できれば、従来通りの状
態遷移表をベースとした手法を、そのまま用いることに
よって、状態割当てを行うことができる。しかし、動作
記述から始めるようになれば、扱う回路の規模も大きく
なるし、論理によっては、多段論理で表すことにより、
簡易な表現になっても、2段論理で表そうとすると、爆
発してしまう場合がある。
【0018】そのような場合、既存の状態遷移表を基本
とした状態割当て手法を用いることは不可能である。ま
た、元々、多段論理で表されているものを、一度2段論
理に落として、また多段化するのは無駄である。2段論
理に落とせないものに対しては、ランダムにコードを割
当てて多段論理のまま扱うか、ワンホットエンコーディ
ング(one-hot encoding)を行えば、とりあえず組み合
わせ回路を生成することはできるが、必ずしも品質が良
いとは限らない。
【0019】本発明は、このような従来の課題を解決
し、動作記述に現れた状態遷移の多段論理を2段論理に
落とすことなく、多段論理のままで扱うことで、論理の
爆発を防止し、効率良く状態割当てが実現できるように
することを目的としている。
【0020】また、本発明は、段階的にFFのマージを
繰り返すことにより、FFと組み合わせ論理回路部分を
合わせた全体のサイズを小さくすることを目的としてい
る。
【0021】
【課題を解決するための手段】図1は本発明の原理説明
図であり、FFはフリップフロップ回路、f01は付加
されたフリップフロップ回路、s1〜s8は各状態を示
す。
【0022】本発明は前記の課題を解決するため、CA
D装置に、ハードウェアの動作記述データを入力し、前
記動作記述データを基に、順序回路を自動合成する過程
で、その回路の制御論理を有限状態機械(FSM)とし
て実現する順序回路合成部を備えた。
【0023】そして、前記順序回路合成部には、動作記
述データを基に多段論理の形で表現された状態遷移情報
を生成する状態遷移情報生成手段と、生成された状態遷
移情報を基に、各状態に対して1個ずつFF(フリップ
フロップ回路)を割当てる処理を行うことで、状態数分
のFF、及び多段論理回路からなる初期回路を生成する
初期回路生成手段と、生成された初期回路を対象とし
て、FF間の関係を調べ、合体(マージ)するFFのペ
アを決定するペア決定手段と、決定したFFのペアに対
し、付加回路を加えて論理の簡単化を行うことでFFの
合体を行うFF合体手段と、合体した結果の回路につい
て評価を行う評価手段を備えた。
【0024】
【作用】前記構成に基づく本発明の作用を、図1に基づ
いて説明する。CAD装置の順序回路合成部では、外部
からハードウェアの動作記述データを入力すると、その
動作記述データを基に順序回路を自動合成する。前記順
序回路合成部では、この順序回路の自動合成過程におい
て、その回路の制御論理を有限状態機械(FSM)とし
て実現する。
【0025】順序回路合成部では、先ず、前記動作記述
データを2段論理に展開することなく、多段論理のまま
扱うことで、多段論理の形で表現された状態遷移情報を
生成する。
【0026】次に、生成した状態遷移情報を基に、各状
態に対して1個ずつFF(フリップフロップ回路)を割
当てる、ワンホットエンコーディング(one-hot encodi
ng)処理を行うことにより、状態数分のFF、及び多段
論理回路からなる初期回路を生成する。
【0027】続いて、順序回路合成部では、前記FF間
の関係を調べて、合体するFFのペアを決定し、付加回
路(1個のFF)を加えて論理の簡単化を行うことでF
Fの合体(マージ)を行う。
【0028】例えば、8つの状態s1、s2、s3・・
・s8に対して1個ずつのFFが割当てられる。次に、
前記8つの状態が、(s1、s2、s3、s4)のグル
ープ1と、(s5、s6、s7、s8)のグループ2と
の2つのグループに分割(1回分割)される。
【0029】この場合、s1−s5、s2−s6、s3
−s7、s4−s8がそれぞれペアとして対応づけられ
たとすると、前記各ペアに対して、1個ずつのFFが割
当てられ、各FFがどちらのグループのものかを判定す
るために、新たに1個のFF(f01)が導入される。
この状態でFF数は、(8/2)+1=5で、5個にな
る。
【0030】前記のようにして合体した結果の回路につ
いて評価を行い、FF数を更に減らす必要がある場合に
は、前記FFのペア決定と、FFの合体(マージ)を繰
り返して行うことで、FF数を段階的に、最小数まで減
らす。
【0031】以上のようにして、動作記述に現れた状態
遷移の多段論理を2段論理に落とすことなく、多段論理
のままで扱う。そして、FF2個を1個に合成する処理
を繰り返すことにより、最終的に、最小数のFFによる
状態割当てが実現できる。また、論理の爆発を防止し、
効率良く状態割当てが実現できる。
【0032】
【実施例】以下、本発明の実施例を図面に基づいて説明
する。図2〜図6は、本発明の実施例を示した図であ
り、図2〜図6中、2はCAD装置本体、3は表示装
置、4は入力装置、5、6はディスク装置、7はCPU
(CPU:Central Processing Unit )、8はRAM
(Random Access Memory)、9はバッファメモリ、10
はレジスタを示す。また、以下の説明では、フリップフ
ロップ回路をFFと記す。
【0033】§1:CAD装置(又はCADシステム)
の説明・・・図2参照 図2は実施例の装置構成図である。以下、図2に基づい
て、実施例のCAD装置を説明する。
【0034】このCAD装置(又はCADシステム)
は、CAD装置本体2、表示装置3、入力装置4、ディ
スク装置5、6等で構成されている。そして、CAD装
置本体2には、CPU7、RAM8、バッファメモリ
9、レジスタ10等が設けてある。前記各部は次の通り
である。
【0035】(1) :表示装置3は、CAD装置本体2か
ら出力されたデータを表示するものである。 (2) :入力装置4は、CAD装置本体2に対して、デー
タを入力したり、各種の指示を与えたりする場合に使用
する装置であり、キーボード、マウス、タブレット等で
構成されている。
【0036】(3) :ディスク装置5は、設計データ(動
作記述データ等)、プログラム(CPU7が実行するプ
ログラム)等を格納しておく外部記憶装置である。な
お、このディスク装置としては、磁気ディスク装置、光
磁気ディスク装置等が使用される。
【0037】(4) :ディスク装置6は、処理結果のデー
タ(合成した結果の順序回路データ等)を格納するため
の外部記憶装置である。なお、このディスク装置として
は、磁気ディスク装置、光磁気ディスク装置等が使用さ
れる。
【0038】(5) :CPU7は、CAD装置本体内の各
種制御、或いは各種処理を行うものである。また、CP
U7は、RAM8、バッファメモリ9、レジスタ10、
ディスク装置5、6等へのアクセスも行う。
【0039】なお、電源投入時には、CPU7は、ディ
スク装置5に格納されている設計データ、及びプログラ
ムを読み出して、RAM8へ転送する。以降、CPU7
はRAM8にアクセスして制御、或いは処理を行う。
【0040】(6) :RAM8は、ディスク装置5から読
み出した設計データ(動作記述データ等)や、プログラ
ムを格納したり、CPU7がワーク用として使用するメ
モリである。
【0041】(7) :バッファメモリ9は、例えば、設計
処理を行う際、CPU7がワーク用として使用するもの
である。 (8) :レジスタ10は、例えば、設計処理を行う際、C
PU7がワーク用として使用するものである。
【0042】なお、前記ディスク装置5、6の代わり
に、磁気テープ装置等の外部記憶装置を使用することも
可能である。 §2:CAD装置における順序回路合成処理の基本的な
説明 図2に示したCAD装置では、CPU7が実行するプロ
グラム(順序回路合成用のプログラム等)、及び設計デ
ータ(動作記述データ等)を、予め作成してディスク装
置5に格納しておく。
【0043】そして、CAD装置のCPU7は、電源投
入時に、ディスク装置5に格納されているプログラム
(順序回路合成用のプログラム)と、設計データ(動作
記述データ等)を読み出して、RAM8へ転送する。以
降、CPU7では、RAM8の設計データ(動作記述デ
ータ等)を使用し、前記プログラムを実行することによ
り、順序回路の合成を行う。
【0044】この場合、CPU7では、前記動作記述デ
ータを基に順序回路を自動合成するが、この順序回路の
自動合成過程において、その回路の制御論理を有限状態
機械(FSM)として実現する。
【0045】CPU7では、前記動作記述データに現れ
る状態遷移の論理を、2段論理式に落とすことなく、多
段論理のまま扱って状態割当てを行うが、この場合、順
序回路合成の手法として、ワンホットエンコーディング
(one-hot encoding)から始める2分割法を使用する。
【0046】この2分割法は、状態数をns とすると、
先ず、各々の状態に、1個ずつのFF(フリップフロッ
プ回路)を割当て、ns 個のFFと多段論理からなる初
期回路を生成する。
【0047】次に、全体を2分割し、
【0048】
【数1】
【0049】(nS /2より大きい最小の整数)個のF
Fからなるグループを2つ作り、それぞれのグループか
ら、1個ずつFF対応させる。すなわち、
【0050】
【数2】
【0051】(nS /2より大きい最小の整数)個のF
Fのペアを決める。そして、そのペアをマージ(merge
:合体)し、1つのFFを対応させ、そのFFの出力
がどちらのグループのFFを表すのかを示すために、新
たに1個のFFを加える。この1回の分割によって、F
Fの個数は、
【0052】
【数3】
【0053】個になる。この操作を繰り返せば、FFの
個数は最小数
【0054】
【数4】
【0055】(log2 s より大きい最小の整数)に
まで減少させることができる。前記処理では、先ず、動
作記述から状態遷移情報の生成を行う。この場合、入力
として与えられた動作記述を基に、多段論理の形で表現
された状態遷移情報を生成する。これは、次の表2に示
したような、各状態での出力信号や、次状態を表現する
ものである。
【0056】 なお、前記表2において、各条件の項に記載したcnd
1、cnd2・・・等は任意の論理式である。この過程
は、動作記述を表現するハードウェア記述言語の種類や
レベルによって、必要となる処理が異なってくる。
【0057】アルゴリズムレベルでの動作記述の場合
は、いわゆる高位レベル合成の処理を行う必要がある。
また、前記各状態毎に、動作を記述したレジスタ転送レ
ベルの記述が入力できれば、略直接的に、動作記述から
前記表2への変換ができる。この過程は、状態割当て手
法の前処理段階として、別途行うものとする。
【0058】前記のようにして、動作記述から、状態遷
移情報を生成した後、ワンホットエンコーディング(on
e-hot encoding)による初期回路の生成を行う。この処
理では、各状態(s0、s1・・・)に対して、1個ず
つFFを割当てる。
【0059】これによって、状態数が、ns であるとす
ると、ns 個のFFと多段論理回路からなる初期回路が
生成される。続いて、マージ(合体)するFFのペアを
決定する。この処理では、FFのマージの仕方によっ
て、マージ後に簡単化を行なった結果の論理の大きさは
影響される。マージして簡単化を行なった時に、論理が
小さくなるようなペアを求めるために、FF間の関係を
調べ、マージするペアを決定する。
【0060】その後、FFのマージと論理の簡単化を行
う。この処理では、FFをマージするために必要な付加
回路を加えて、論理の簡単化を行う。最後に、回路の評
価を行う。この処理では、前記の処理結果の回路を評価
し、FF数を更に減らす必要があれば、再び前記2分割
法による2分割処理を繰り返す。
【0061】前記のように、ワンホットエンコーディン
グ(one-hot encoding)を行った場合、「各FFの出力
は同時に1にはならず、どれか1つだけ1になる」とい
う性質があるため、「2分割してペアを作り、それらを
マージして1つのFFで区別する」ということができ
る。
【0062】この性質は、2分割してマージした結果に
対しても保持される。すなわち、「ペアを区別するため
のFFを除いたFFの出力は、同時には1にならない」
という性質を持つ。
【0063】従って、2分割の結果に対して、また2分
割、マージを行うことができる。このように、前記の方
法では、最終的にFF数最小にまで到達できること、及
びFFの部分と組み合わせ回路部分の大きさのトレード
オフを考慮することも可能である。
【0064】§3:フローチャートに基づく実施例の処
理説明・・・図3、図4参照 図3は実施例の処理フローチャートである。また、図4
は実施例の処理説明図であり、A図は動作記述例、B図
は状態遷移に関する情報例、C図は初期回路例である。
以下、図3、図4に基づいて、実施例の処理を説明す
る。
【0065】なお、以下の処理は、CPU7が、RAM
8に格納されている設計データ(動作記述データ)を使
用し、RAM8に格納されているプログラムを実行する
ことで行う処理であり、S11〜S19は各処理ステッ
プを示す。
【0066】先ず、CPU7は、RAM8から動作記述
のデータを読み出し(S11)、その動作記述データか
ら状態遷移に関する情報(状態遷移情報)の生成を行う
(S12)。この場合、2段論理式に落とすことなく、
多段論理のまま扱い、多段論理の形で表現された状態遷
移に関する情報を生成する(S13)。
【0067】前記動作記述は、例えば、図4のA図に示
したように、「s1:cnd:=a&(b|c&d);
if(cnd&inl)then goto s2 e
lse(if・・・」のような記述となっている。前記
動作記述において、s1は状態名(現状態)、cndは
中間変数、a、b、c、d、in1は外部入力、s2は
状態名(次状態)を示す。
【0068】また、前記状態遷移に関する情報は、例え
ば、図4のB図に示したように、現状態がs1、条件が
(a&(b|c&d)&inl、次状態がs2のような
情報である。この情報では、s1の状態で、(a&(b
|c&d)&inlの条件を満たせば、s2の状態に遷
移することを表している。
【0069】CPU7では、前記のようにして生成した
状態遷移に関する情報(状態遷移情報)を基に、ワンホ
ットエンコーディング(one-hot encoding)処理を実行
(S14)して、状態変数分のFFと、多段論理回路か
らなる初期回路の生成を行う(S15)。
【0070】このワンホットエンコーディング処理で
は、各状態に対して、1個ずつFFを割当てる。これに
よって、状態数が、ns であるとすると、ns 個のFF
と、多段論理回路からなる初期回路が生成される。
【0071】前記初期回路は、例えば、図4のC図に示
したようになる。前記初期回路では、次状態ns_1か
らns_nに対してそれぞれ1個ずつのFF(ff1〜
ffn)が対応し、前記各FF(ff1〜ffn)の出
力が、次の時刻の現状態cs_1〜cs_nとなる。
【0072】次に、CPU7は、マージ(合成)するF
Fのペアを決定する(S16)。その後、FFのマージ
と論理の簡単化を行う(S17)。この処理では、FF
をマージするために必要な付加回路を加えて、論理の簡
単化を行う。
【0073】その後、簡単化された回路を対象として
(S18)、回路の評価を行う(S19)。そして、分
割の継続が必要か否かを判断し、分割の必要があれば、
前記S16の処理に戻って、処理を繰り返す。このよう
にして、分割の継続が必要で無くなれば、処理を終了す
る。
【0074】§4:具体例による2分割法の処理説明・
・・図5、図6参照 図5は2分割法の説明図1、図6は2分割法の説明図2
である。以下、図5、図6に基づき、状態数8の例につ
いて、2分割法によるFFマージの処理を説明する。な
お、この処理もCPU7が実行する処理である。
【0075】先ず、図5のA図に示したように、8つの
状態s1、s2、s3・・・s8に対して1個ずつのF
Fが割当てられる。次に、図5のB図に示したように、
前記8つの状態が、(s1、s2、s3、s4)のグル
ープと、(s5、s6、s7、s8)のグループとの2
つのグループに分割(1回分割)される。
【0076】この場合、s1−s5、s2−s6、s3
−s7、s4−s8がそれぞれペアとして対応づけられ
たとすると、前記各ペアに対して、1個ずつのFFが割
当てられ、各FFがどちらのグループのものかを判定す
るために、新たに1個のFF(f01)が導入される。
この状態でFF数は、(8/2)+1=5で、5個にな
る。
【0077】次に、前記4個のFFを、図6に示したよ
うに、{(s1−s5),(s2−s6)}と、{(s
3−s7),(s4−s8)}の2つのグループに分割
(2回分割)する。
【0078】そして、(s1−s5)−(s3−s
7),(s2−s6)−(s4−s8)をペアとして対
応づけたとすると、グループ内の要素が半分(4/2=
2)になり、ペアを区別するためのFFが1個加わり、
FF数は、合計1+1+{(8/2)/2}=4で、4
個になる。
【0079】この場合、例えば、状態s1は、f01、
f02、f1が001である場合に対応している。実際
には、この時点でグループ内のFFは2個で、かつ同時
には1にならないため、1個のFFにすることができ、
結果的には、log2 8=3で、3個にすることができ
る。以降、同様にして分割処理を繰り返す。
【0080】§5:グループ分け等の説明 前記具体例で説明したように、本実施例では、状態集合
Sを、2つのグループS1 、S2 に分割し、その2つの
状態ペア(si ,sj )、si ∈S1 、sj ∈S2 に1
つのFF(+分割用のFF)を対応させることになる。
グループの分け方、及び1つのFFに対応させる状態ペ
アの組み方が結果に影響を与える。
【0081】従って、前記処理を実行するためには、何
を基準にグループ分けを行い、状態(FF)ペアを作る
かを決定する必要がある。これには、例えば、通常の状
態割当てを行うような、状態間の重みを利用しても良
い。状態の重みは、状態間の近さの度合い(affinity)
を表すもので、共通部分の大きい状態ペア(例えば、同
じ状態から遷移してくるもの、同じ状態に遷移するも
の、共通部分の多いもの)を近いコードに割当てること
によって、多段論理の簡単化において共通部分式を括り
出した時の効果(リテラル数の減少)が大きくなるとい
うものである。
【0082】1回のマージによりペアにされた状態は、
最初に導入されたFFで区別される以外は、それ以後区
別されない。つまり、最終的なコードとして見た場合、
1ビットのみ値が異なり(0か1)、後のビットは同じ
値となる。
【0083】例えば、図5、図6に示したs1、s5の
コードは、001、101であり、最初のビットだけ値
が異なる。すなわち、結果的に近いコードが割当てられ
る。従って、分割の対象としている回路の各FFの入力
となる論理を調べて、その状態の重みを計算し、それに
基づいて、重みの大きい状態ペアを最初にマージしてい
く。
【0084】
【発明の効果】以上説明したように、本発明によれば次
のような効果がある。 (1) :動作記述に現れた多段論理を、2段論理に展開す
ることなく、段階的にFFのマージを繰り返すことによ
り、FFと組み合わせ論理回路部分を合わせた全体のサ
イズを小さくすることができる。
【0085】また、FF2個を1個にマージ(合体)す
る処理を繰り返すことにより、最終的に最小数のFFに
よる状態割当てを実現することができる。 (2) :2段論理に展開すると論理が爆発するような回路
でも、容易に扱うことが可能である。また、FFと組み
合わせ論理のトレードオフを考慮しながら、FF数を段
階的に減らすことができる。
【0086】(3) :動作記述に現れた多段論理を、2段
論理に展開することなく、多段論理のまま処理するの
で、処理の無駄がなく、効率良く処理を行うことができ
る。また、処理量も少なくなり処理の高速化が可能であ
る。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】実施例の装置構成図である。
【図3】実施例の処理フローチャートである。
【図4】実施例の処理説明図である。
【図5】実施例における2分割法の説明図1である。
【図6】実施例における2分割法の説明図2である。
【符号の説明】
2 CAD装置本体 3 表示装置 4 入力装置 5、6 ディスク装置 7 CPU 8 RAM

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 ハードウェアの動作記述データを入力
    し、 前記動作記述データを基に、順序回路を自動合成する過
    程で、その回路の制御論理を有限状態機械(FSM)と
    して実現する順序回路合成部を備えたCAD装置であっ
    て、 前記順序回路合成部には、 前記動作記述データを基に、多段論理の形で表現された
    状態遷移情報を生成する状態遷移情報生成手段と、 前記状態遷移情報生成手段で生成された状態遷移情報を
    基に、各状態に対して、1個ずつFF(フリップフロッ
    プ回路)を割当てる処理を行うことで、前記状態数分の
    FF(フリップフロップ回路)、及び多段論理回路から
    なる初期回路を生成する初期回路生成手段と、 前記初期回路生成手段で生成された初期回路を対象とし
    て、FF間の関係を調べ、合体(マージ)するFF(フ
    リップフロップ回路)のペアを決定するペア決定手段
    と、 前記ペア決定手段で決定したFFのペアに対し、付加回
    路を加えて論理の簡単化を行うことでFF(フリップフ
    ロップ回路)の合体を行うFF合体手段と、 前記FF合体手段で合体した結果の回路について評価
    し、FF数を更に減らす必要があるか否かの判断を行う
    評価手段を備えていることを特徴としたCAD装置。
  2. 【請求項2】 前記状態遷移情報生成手段は、 前記動作記述データに現れた状態遷移の多段論理を、2
    段論理に展開することなく、多段のまま扱うことで、前
    記状態遷移情報の生成を行う状態遷移情報生成手段であ
    ることを特徴とした請求項1記載のCAD装置。
  3. 【請求項3】 前記ペア決定手段は、 前記初期回路のFF(フリップフロップ回路)全体を2
    分割して、2つのグループに分け、それぞれのグループ
    から1個ずつのFFを対応させることで、FFのペアを
    決定するペア決定手段であり、 前記FF合体手段は、 前記決定したFFのペアを1つのFFに対応させると共
    に、前記FFの出力がどちらのグループのFFを表すの
    かを示すために、新たに1個のFFを付加回路として加
    えることで、FFの合体を行うFF合体手段であること
    を特徴とした請求項1記載のCAD装置。
  4. 【請求項4】 前記ペア決定手段、及びFF合体手段
    は、 前記評価手段で、FF数を更に減らす必要があると判断
    した際、 合体(マージ)した結果の回路に対し、更に、FFのペ
    ア決定、及びFFの合体を繰り返して行うことで、FF
    数を段階的に、最小数まで減らすペア決定手段、及びF
    F合体手段であることを特徴とした請求項1記載のCA
    D装置。
  5. 【請求項5】 ハードウェアの動作記述データを入力
    し、前記動作記述データを基に順序回路を自動合成する
    過程で、その回路の制御論理を有限状態機械(FSM)
    として実現するCAD装置による順序回路合成方法であ
    って、 前記動作記述データを、2段論理に展開することなく、
    多段論理のまま扱うことで、多段論理の形で表現された
    状態遷移情報を生成し、 前記状態遷移情報を基に、各状態に対して1個ずつFF
    (フリップフロップ回路)を割当てる、ワンホットエン
    コーディング処理を行うことで、前記状態数分のFF
    (フリップフロップ回路)、及び多段論理回路からなる
    初期回路を生成した後、 前記FF間の関係を調べて、合体するFFのペアを決定
    し、付加回路を加えて論理の簡単化を行うことでFF
    (フリップフロップ回路)の合体を行い、 更に、合体した結果の回路について評価を行い、FF数
    を更に減らす必要がある場合には、前記FFのペア決定
    と、FFの合体を繰り返して行うことで、FF数を段階
    的に、最小数まで減らすことにより、順序回路を合成す
    ることを特徴としたCAD装置による順序回路合成方
    法。
JP6108335A 1994-05-23 1994-05-23 Cad装置、及びcad装置による順序回路合成方法 Withdrawn JPH07319928A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6108335A JPH07319928A (ja) 1994-05-23 1994-05-23 Cad装置、及びcad装置による順序回路合成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6108335A JPH07319928A (ja) 1994-05-23 1994-05-23 Cad装置、及びcad装置による順序回路合成方法

Publications (1)

Publication Number Publication Date
JPH07319928A true JPH07319928A (ja) 1995-12-08

Family

ID=14482091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6108335A Withdrawn JPH07319928A (ja) 1994-05-23 1994-05-23 Cad装置、及びcad装置による順序回路合成方法

Country Status (1)

Country Link
JP (1) JPH07319928A (ja)

Similar Documents

Publication Publication Date Title
US20160299998A1 (en) Logic circuit generation device and method
Sklyarov et al. High-performance implementation of regular and easily scalable sorting networks on an FPGA
JP6082753B2 (ja) ステートマシンにおけるデータ解析用の方法およびシステム
KR101920956B1 (ko) 상태 기계에서의 검출을 위한 방법들 및 시스템들
US7865346B2 (en) Instruction encoding in a hardware simulation accelerator
Aloul et al. Faster SAT and smaller BDDs via common function structure
JPH0877221A (ja) 消費電力を低減する有限状態マシンを設計するシステム及び方法
KR20030057397A (ko) 시스템 엘에스아이 설계 방법
JPH11502646A (ja) Asic設計における合成シェルの生成及び使用
US10628543B1 (en) Systems and methods for estimating a power consumption of a register-transfer level circuit design
US6460166B1 (en) System and method for restructuring of logic circuitry
JPH03116281A (ja) 論理合成装置
JPS6142031A (ja) ソ−ト処理装置
US6282695B1 (en) System and method for restructuring of logic circuitry
Khan et al. Accelerating SpMV multiplication in probabilistic model checkers using GPUs
Chang et al. Post-placement rewiring and rebuffering by exhaustive search for functional symmetries
US20230252192A1 (en) Hardware trojan detection method, hardware trojan detection device, and program for hardware trojan detection
JPH07319928A (ja) Cad装置、及びcad装置による順序回路合成方法
US11443088B1 (en) Simulation using accelerated models
Meerwein et al. Linking codesign and reuse in embedded systems design
Bhargav et al. Power and area efficient FSM with comparison-free sorting algorithm for write-evaluate phase and read-sort phase
US6367066B1 (en) System for synthesizing a circuit by re-writing signed variables into unsigned variables and sharing resources for identical operations having different timing
Fujita et al. Delay estimation and optimization of logic circuits: a survey
JPH1091677A (ja) シミュレーション/エミュレーションの効率を増すための論理変換方法
Sklyarov et al. FPGA-based accelerators for parallel data sort

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010731