JP2924882B1 - 論理シミュレーションモデルの作成方法および装置ならびに記録媒体 - Google Patents

論理シミュレーションモデルの作成方法および装置ならびに記録媒体

Info

Publication number
JP2924882B1
JP2924882B1 JP10014185A JP1418598A JP2924882B1 JP 2924882 B1 JP2924882 B1 JP 2924882B1 JP 10014185 A JP10014185 A JP 10014185A JP 1418598 A JP1418598 A JP 1418598A JP 2924882 B1 JP2924882 B1 JP 2924882B1
Authority
JP
Japan
Prior art keywords
logic
logical
program code
simulation model
optimizing
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.)
Expired - Fee Related
Application number
JP10014185A
Other languages
English (en)
Other versions
JPH11213025A (ja
Inventor
裕之 池上
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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP10014185A priority Critical patent/JP2924882B1/ja
Priority to KR10-1999-0002347A priority patent/KR100412964B1/ko
Priority to US09/238,093 priority patent/US6377909B1/en
Application granted granted Critical
Publication of JP2924882B1 publication Critical patent/JP2924882B1/ja
Publication of JPH11213025A publication Critical patent/JPH11213025A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Abstract

【要約】 【課題】 プログラムコードの最適化を高速に処理し、
その処理に多くのメモリを必要としない。 【解決手段】 論理合成部119により検証済み論理回
路101の論理合成を行う際に、論理式の各入力変数、
主項、最小論理和形、被覆条件等を再利用可能要素とし
てFFR属性テーブル112に保存しておく。専用コン
パイラによるプログラムコードの最適化処理(ステップ
113)では、この再利用可能要素を用いてプログラム
コードの最適化を行う。したがって、プログラムコード
の最適化の処理時間を短くできるとともに使用するメモ
リ量を削減することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、半導体装置におけ
る回路検証の際に用いられる論理シミュレーションモデ
ルの作成方法に関する。
【0002】
【従来の技術】半導体装置における回路設計では、設計
段階でその回路の論理が正常に動作するかどうかを回路
検証を行うための論理シミュレーションを行なう必要が
ある。この論理シミュレーションを実際のハードウェア
モデルで行うにはモデル化に制限が生じる。そのため、
論理回路の動作を論理的、タイミング的に正確に表現し
たオブジェクトコードで記述したソフトウェアモデルを
作成し、このソフトウェアモデルを実行することにより
論理シミュレーションを高速に行うようにしてい。
【0003】このようなソフトウェア論理シミュレーシ
ョンモデルの作成方法として、例えば特開平8−263
530号公報には、検証済み論理回路から、論理情報と
遅延情報を抽出し、最適化した論理表現を有していると
ともの元の論理回路と論理シミュレーション上等価でか
つシミュレーション速度が高速なモデルの作成を可能と
する論理シミュレーションモデルの作成方法が提案され
ている。
【0004】しかし、回路規模が大きくなってくると全
ての回路の検証を行うのは多大な時間と手間を必要とす
る。そこで、一回検証を行ない正常なことが確認できた
回路ブロックはブロック単位でライブラリとして保存し
ておき、新たな回路を設計する際にはその検証済みの回
路ブロックをそのまま使用することで検証の時間を短く
するようにしていた。この場合には、この検証済みの回
路ブロックが表現する論理と等価な論理をソフトウェア
により論理表現し、全体の論理回路の論理シミュレーシ
ョンを行っている。
【0005】このような従来の論理シミュレーションモ
デルの作成方法の方法を図16を用いて説明する。
【0006】先ず、論理合成部1619により論理設計
データベース102と検証済み論理回路101とから論
理合成を行う。
【0007】論理合成部1619は、先ず検証済みの論
理回路101に含まれる論理ゲートの機能が論理設計デ
ータベース102から抽出される(ステップ103)、
次に接続情報に従ってゲート論理の接続が行われ論理ネ
ットワークが作成される(ステップ104)、次に論理
回路中の組み合わせ回路部分についてFFR(Fano
ut Free Region)分割が行われる(ステ
ップ105)。
【0008】ここで、FFR分割とは、組み合わせ回路
部分の接続関係を解析し、信号線がファンアウトしてい
る箇所で回路を分割することをいう。
【0009】次に、論理式をアンドとオアの2段論理を
用いた表現に変換する2段論理化が行われ(ステップ1
06)、最後に論理最適化が行われる(ステップ160
7)。そして、最適化された組み合わせ回路部分と順序
回路部分とから構成される論理ネットワーク1601が
得られる。
【0010】ここで、論理の最適化とは、与えられた論
理式を最も演算数の少ない論理式に変換することをい
う。
【0011】次に、図17を参照して、この2段論理化
の処理(ステップ106)と論理最適化の処理(ステッ
プ1607)を具体的な例を用いてもっと詳細に説明す
る。
【0012】ここでは、図18に示す論理回路の論理最
適化を行う場合を例として説明する。図18の論理回路
はA、B、Cの3つの入力を論理演算し1つの出力であ
るYを求めるものである。
【0013】ステップ105において分割されたFFR
の論理関数201は、先ず最小項展開されキューブリス
ト203が作成される(ステップ202)。ここで、キ
ューブとは、論理式における項のことを示している。
【0014】図18の論理回路を2段論理化した論理式
で表わすと、図18中に示した式(1)のように表わす
ことができる。ここで、“ABC”は“A”と“B”と
“C”の論理積を表わしていて、文字の上の傍線は反転
を示していて、“+”は論理和を示している。
【0015】この論理式がキューブリスト203として
作成され、カルノー図215はこの論理式を表わしたも
のである。
【0016】次に、このキューブリスト203に含まれ
ている論理式から主項を生成し、主項表205として記
憶する(ステップ204)。
【0017】次に、主項の中から必須項のみを選択し、
選択した被覆条件を被覆表207に記憶する(ステップ
206)。カルノー図217は、この必須項を示したも
のである。主項の中から必須項選択する方法は複数ある
場合があり、被覆とはどの主項を必須項として選択する
かのことを示している。
【0018】そして、この必須項の論理和を演算するこ
とにより論理式218に示すような最小論理和形208
を得ることができる。
【0019】最後に、この最小論和形209をキューブ
表現の真理値表219に変換して論理ネットワーク16
01として記憶する(ステップ209)。
【0020】次に、論理ネットワーク1601を用い
て、LCC(レベライズド・コンパイルド・コード)処
理順序の決定が行われる(ステップ1602)。
【0021】遅延を考慮する必要が無い論理回路では、
その論理回路を構成している各ゲート回路を1回づつ動
作させることによりその論理回路の最終的な結果を得る
ことができる。
【0022】そして、この各ゲート回路を動作させる順
番を決定するための方法がLCC解析である。従来は、
このLCC解析では組み合わせ回路のみから構成された
論理解析にしか適用することができなかった。回路に条
件をつけることにより順序回路にも適用することができ
るような方法が、特願平9−165341に記載されて
いる。
【0023】遅延情報作成部116では、検証済み論理
回路101における論理回路情報からタイミング情報を
抽出する。ここで、静的遅延解析が行われ(ステップ1
20)、入出力間遅延計算が行われる(ステップ12
1)。そして、ハッシュ表117と遅延データベース1
18が得られる。
【0024】ハッシュ表117は、入力、出力端子の名
称と値をキーとして遅延データベース118を高速に検
索するために設けられたものである。
【0025】そして最後に、汎用コンパイラによりプロ
グラムコードの最適化が行われ、シミュレーションモデ
ルオブジェクトコード115が作成される(ステップ1
603)。
【0026】ここで、この従来の論理シミュレーション
モデルの作成方法では、プログラムコードの最適化の際
に汎用コンパイラは通常のプログラムを解析するのと同
様に独自にプログラム解析を行っていた。
【0027】例えば、プログラムコードの最適化の例で
は、既にプログラムコード化されたシミュレーションモ
デルに対して最適化コンパイラがプログラムの解析を行
ない、論理演算、変数値のロード/ストアがプログラム
のどこで行われているかの情報を集めた上で、不要なコ
ードを省略している。
【0028】この従来の論理シミュレーションモデルの
作成方法におけるプログラムコードの最適化を、図19
を用いて具体的に説明する。
【0029】ある論理式FFR1、FFR2をプログラ
ムコードに変換したものがプログラムコード(最適化
前)511である。このプログラムコードでは、ステッ
プ1602におけるLCC処理順序決定処理により論理
式FFR1を論理式FFR2より先に実行することが決
定されている。
【0030】この汎用コンパイラにより解析において、
“r1”、“r2”から“r”3を求める演算と“r1
1”、“r12”から“r13”を求める演算とがとも
に“x1・x2”という演算により行われてるため、後
に処理される演算を省略して“r13”の代わりに“r
3”を置き換えることにより、プログラムコード510
が不要となり演算数を減らすことができる。
【0031】このようにして、プログラムコード511
を汎用コンパイラにより解析し最適化することによりプ
ログラムコード(最適化後)512を得ることができ
る。
【0032】この従来の論理シミュレーションモデルの
作成方法では、既にプログラムコード化されたシミュレ
ーションモデルに対して最適化コンパイラがプログラム
の解析を行ない、論理演算、変数値のロード/ストアが
プログラムのどこで行われているかの情報を集めた上
で、不要なコードを省略している。
【0033】上記で説明したように、この従来の論理シ
ミュレーションモデルの作成方法では、論理合成による
組み合わせ論理の最適ステップとコンパイラによるプロ
グラムコードの最適化のステップが独立していて、最適
化に必要な情報を個別に得ている。そのため、シミュレ
ーションモデルのプログラムの最適化に多くのメモリと
長い処理時間を必要としていた。
【0034】
【発明が解決しようとする課題】上述した従来の論理シ
ミュレーションモデルの作成方法では、回路規模が大き
くなると論理シミュレーションモデルのプログラムコー
ドの最適化に多くのメモリと長い処理時間を必要とする
という問題点があった。
【0035】本発明の目的は、プログラムコードの最適
化を高速に処理することができるとともにその処理に多
くのメモリを必要としない論理シミュレーションモデル
の作成方法を提供することである。
【0036】
【課題を解決するための手段】上記目的を達成するため
に、本発明の論理シミュレーションモデルの作成方法
は、検証済みの論理回路情報より論理ブロックを抽出
し、該論理ブロックの論理を最適化する論理合成を行う
処理と、最適化された前記論理ブロックをプログラムコ
ードに変換し、該プログラムコードの最適化を行う処理
と、最適化された前記プログラムコードをシミュレーシ
ョンモデルオブジェクトに変換する処理とから構成され
た論理シミュレーションモデルの作成方法において、前
記論理合成の処理の際に生成された前記論理ブロックの
論理表現を表わした論理式の要素である、少なくとも演
算順位と論理関数とを再利用可能要素としてテーブルに
記憶する処理と、前記プログラムコードの最適化を行う
処理の際に前記テーブルに記憶した論理関数を演算順位
順に取り出して前記論理ブロック間に渡って同じ論理関
数の有無を検索する処理と、前記検索結果に従って前記
プログラムコードの最適化処理を行う処理とを有する
とを特徴とする。
【0037】本発明は、論理合成時の際に得られる論理
回路の論理に関する情報を再利用可能要素として保存し
ておき、プログラムコードの最適化を行う際にその再利
用可能要素を用いるようにしたものである。
【0038】したがって、プログラムコードの最適化の
処理時間を短くすることができるとともに使用するメモ
リ量を削減することができる。
【0039】また、本発明の実施態様によれば、前記再
利用可能要素は、前記論理式の各入力変数、主項、最小
論理和形、被覆条件である。
【0040】
【発明の実施の形態】次に、本発明の実施形態について
図面を参照して詳細に説明する。
【0041】図1は本発明の一実施形態の論理シミュレ
ーションモデルの作成方法を示した図である。図16、
17中と同番号は同じ構成要素を示す。
【0042】本実施形態の論理シミュレーションモデル
の作成方法では、論理合成部1619の代わりに論理合
成部119により検証済み論理回路101を論理設計デ
ータベース102を用いて論理合成する処理が行われ
る。、論理合成部119は、従来の論理シミュレーショ
ンモデルの作成方法における論理合成部1619に対し
て、FFR分割の処理(ステップ105)においてFF
Rブロックネットワーク108を取り出すようにし、論
理最適化処理(ステップ1607)のかわりに論理最適
化処理(ステップ107)を行うものである。ここで、
FFRブロックネットワーク108は、論理回路の接続
情報を元に、FFRブロックを1つのノードと考えたも
のであり、FFRブロックの接続関係のみを有していて
FFRブロック内の論理情報は有していない。
【0043】次に、ステップ107における論理最適化
処理を図2を用いて説明する。
【0044】この処理において、最小論理和形208に
変換されるまでの処理は、従来の論理シミュレーション
モデルの作成方法と同様である。そして、ステップ10
7における論理最適化処理では、最小論理和形208か
ら要素分解を行ない(ステップ211)、得られた要素
を真理値表に変換し(ステップ212)、再利用可能要
素220としてFFR属性テーブル112に記憶する。
【0045】また、最小論理和形208は真理値表に変
換された後にFFR論理関数テーブル111に記憶され
る(ステップ209)。
【0046】また、図1におけるFFRブロックネット
ワーク108は、LCC解析が行われる(ステップ10
9)。この、LCC解析は、論理回路の接続構造からゲ
ートの演算優先順位を解析し、優先順位の高いものから
各ゲートを一度ずつ演算する演算順位を決定する。この
LCC解析は、図3に示されるように、先ずFF段数解
析が行われ(ステップ301)、組み合わせ段数解析が
行われる(ステップ302)。そして、このLCC解析
で得られた演算順位はFFR演算順位テーブル110に
記憶される。
【0047】次に、FFR演算順位テーブル110、F
FR論理関数テーブル111、FFR属性テーブル11
2を用いて専用コンパイラによる最適化が行われる(ス
テップ113)。このステップ113の処理を図4を参
照して詳しく説明する。
【0048】先ず、FFR演算順位テーブル110を用
いて各FFRの演算順位を調べ、一番演算順位の早いも
のを選択する。この際に、同一演算順位のFFRがあれ
ばそれらを同時に選択する。(ステップ404)そし
て、その選択した論理関数をFFR論理関数テーブル1
11から読み出し、読み出した論理関数の属性をFFR
属性テーブル112から読み出す。
【0049】そして、プログラムコードを再利用するこ
とによる等価な演算の省略、メモリアクセスを減らすた
めのプログラムコードの再配置等が、属性再利用テーブ
ル406を用いて行なわれ、最適化されたプログラムコ
ード407が得られる。
【0050】このステップ405におけるプログラムコ
ードの再利用、再配置の処理において、論理最適化の処
理において得られた再利用可能要素220を利用するこ
とにより、どのFFRブロックで、どの変数にアクセス
し、どのような論理演算が行われているかを、あらため
てプログラムコードを解析することなく知ることができ
る。そのため、従来の汎用コンパイラによる処理に比べ
て処理時間、メモリ使用量の面で効率的なにプログラム
コードの最適化を行うことができる。
【0051】最後に、最適化されたプログラムコード4
07をマシンコードに変換してシミュレーションモデル
オブジェクト115を得る処理(ステップ114、)、
検証済み論理回路101から遅延情報作成部116によ
りハッシュ表117、遅延データベース118を作成
し、静的遅延解析等によって得られた外部端子間の遅延
情報をデータベース化しシミュレーションモデルに付加
する処理は、従来の論理シミュレーションモデルの作成
方法と同様である。
【0052】次に、ステップ405におけるプログラム
コードの最適化の方法について図5を参照して具体的に
説明する。
【0053】この説明において、最適化前のプログラム
コード511として従来の論理シミュレーションモデル
の作成方法の説明において用いた図19のプログラムコ
ードと同じものを用いる。
【0054】論理式FFR1、2の論理合成の処理の際
に得られた再利用可能要素513を保存しておく。ここ
では。再利用可能要素513として、変数“x1”、
“x2”、論理式“x1・x2”が保存されている。
【0055】そして、この再利用可能要素513を用い
てプログラムコードの最適化処理を行う。FFR1、2
はLCC処理によりシミュレーション時の演算順位に並
べられているため、図のようにFFR2にある演算“x
1・x2”はFFR1で既に実行されており、FFR1
での演算結果を流用することによりFFR2においては
この演算を省略することができる。また、変数“x
1”、“x2”の値についてもFFR1でレジスタにロ
ードされた値を使用すれば余計なメモリアクセスを抑え
ることができる。
【0056】このように、省略可能な変数、論理式に関
する情報を最適化コンパイラに渡すことにより最適化コ
ンパイラはプログラムコードをあらためて解析すること
無く不要なコードを削除することができる。
【0057】次に、各種テーブルの具体的な構成を図6
〜図11を用いて説明する。
【0058】図6は、FFR演算順位テーブル110の
構成を示した図である。
【0059】FFR演算順位テーブル110は、演算順
位502と、FFR数503と、FFR−IDテーブル
のアドレス504とから構成されている。
【0060】FFR−IDテーブルのアドレス504
は、それぞれFFR−IDテーブル505に記憶されて
いるFFR−ID506を、FFR数503と同じ数だ
け示している。
【0061】図7は、FFR論理関数テーブル111の
構成を示した図である。
【0062】FFR論理関数テーブル111は、FFR
毎の論理式を記憶するためのテーブルであり、FFR毎
に設けられている番号であるFFR−IDからFFRの
中身を検索することができるようになっている。
【0063】FFR論理関数テーブル111は、FFR
−IDテーブル601と、論理式テーブル604と、入
力信号線テーブル612と、真理値表614とから構成
されている。
【0064】FFR−IDテーブル601は、FFR−
ID602と、論理式テーブル604の要素605を示
した論理式テーブルのアドレス603とから構成されて
いる。
【0065】論理式テーブルの要素605は、それぞれ
入力信号線数606と、入力信号線テーブルのアドレス
607と、キューブ数608と、真理値表へのポインタ
609と、入力信号線ID合計610と、出力信号線I
D611とから構成されている。
【0066】また、入力信号線テーブルのアドレス60
7は、入力信号線テーブル612における信号線ID6
13を入力信号線数606と同じ数だけ示している。真
理値表へのポインタ609は、真理値表614を示して
いる。この真理値表614は、キューブ数ビットと入力
信号線数×2ビットの2次元配列により構成されてい
る。
【0067】図8、図9は、FFR属性テーブル112
の構成を示した図である。
【0068】FFR属性テーブル112は、FFR−I
Dテーブル701と、属性テーブル705と、属性ID
テーブル705と、属性テーブル707と、論理式テー
ブル712とから構成されている。
【0069】FFR−IDテーブル701は、FFR−
ID702と、属性ID数703と、属性IDテーブル
705に記憶されている属性ID706を属性ID数7
03と同じ数だけ示している属性IDテーブルのアドレ
ス704とから構成されている。
【0070】属性テーブル707は、属性ID706に
対応してそれぞれ要素708を有している。そして、属
性テーブルの要素708は、再利用レジスタID709
と、再利用フラグ710と、論理式ID711とから構
成されている。
【0071】論理式テーブル712は、論理式IDに対
応してそれぞれ要素714を有している。そして、論理
式テーブルの要素712は、それぞれ入力信号線数71
5と、入力信号線テーブルのアドレス716と、キュー
ブ数717と、真理値表へのポインタ718と、入力信
号線ID合計719と、出力信号線ID720とから構
成されている。
【0072】また、入力信号線テーブルのアドレス71
6は、入力信号線テーブル721における信号線ID7
22を入力信号線数715と同じ数だけ示している。真
理値表へのポインタ718は、真理値表723を示して
いる。この真理値表723は、キューブ数ビットと入力
信号線数×2ビットの2次元配列により構成されてい
る。
【0073】図10、図11は、属性再利用テーブル4
06の構成を示した図である。
【0074】属性再利用テーブル406は、属性ID検
索表801と、属性登録順リスト805と、属性テーブ
ル809と、論理式テーブル814とから構成されてい
る。属性ID検索表801は、高速に目的の属性IDを
検索するためのものであり、ハッシュ値が同一の属性I
D802をハッシュ値毎に登録しておくハッシュ表の構
造となっている。1つのハッシュ値に対して複数の属性
ID802が登録されており、ヌル803は登録されて
いる属性ID802がもう無いことを示すためのデータ
である。
【0075】ここで、ハッシュ値とは、下記の式(2)
で現されるハッシュ関数により求まる値である。
【0076】 ハッシュ値=h(キューブ数、入力信号線数、入力信号線ID合計)・・・( 2) 属性登録順リスト805は、ある程度以上古い属性ID
802を廃棄するために属性ID802を古い順番で並
べたものである。
【0077】属性テーブル809は、属性ID802に
対応してそれぞれ要素810を有している。そして、属
性テーブルの要素810は、再利用レジスタID811
と、再利用フラグ812と、論理式ID813とから構
成されている。
【0078】論理式テーブル814は、論理式ID81
3に対応してそれぞれ要素815を有している。そし
て、論理式テーブルの要素815は、それぞれ入力信号
線数817と、入力信号線テーブルのアドレス818
と、キューブ数819と、真理値表へのポインタ820
と、入力信号線ID合計821と、出力信号線ID82
2とから構成されている。
【0079】また、入力信号線テーブルのアドレス81
8は、入力信号線テーブル823における信号線ID8
24を入力信号線数817と同じ数だけ示している。真
理値表へのポインタ820は、真理値表825を示して
いる。この真理値表825は、キューブ数ビットと入力
信号線数×2ビットの2次元配列により構成されてい
る。
【0080】次に、図12のフローチャートを用いて専
用コンパイラによるコード最適化処理(ステップ11
3)における、FFR読み出し(ステップ404)、プ
ログラムコード再利用、配置(ステップ405)処理を
説明する。
【0081】先ずFFR演算順位テーブル110の各順
位について読み出す演算順位が残っているかどうかを判
定し(ステップ901)、全ての順位を読み出し終わっ
ている場合には全ての処理を終了する。ステップ901
において未だ読み出す順位が残っている場合には、FF
R演算順位テーブル110から1つの順位のFFRを読
み出す(ステップ902)。
【0082】そして、読み出した各FFRについて未処
理のFFRがあるかどうか判定し、未処理のFFRが無
い場合にはステップ901の処理に戻る。ステップ90
3において未処理のFFRがある場合には、FFR論理
関数テーブル111から論理関数を読み込み(ステップ
904)、FFR属性テーブル112からその論理関数
の属性を読み込む(ステップ905)。そして、FFR
をプログラムコードに変換し(ステップ906)、期限
切れの属性を属性再利用テーブル406から削除する
(ステップ907)。そして、最後にFFRの属性を属
性再利用テーブル406に登録してステップ903の処
理に戻る(ステップ908)。
【0083】次に、図13のフローチャートを用いて図
12のフローチャートにおけるFFRをコードに変換す
る処理(ステップ906)を説明する。
【0084】先ず、FFR内の各論理式について全ての
論理式を処理し終わっているかどうか判定し(ステップ
1001)、全ての論理式を処理し終わっていれば全て
の処理を終了する。ステップ1001において未処理の
論理式が残っている場合にはその論理式が再利用可能か
どうか判定し(ステップ1002)、再利用が可能であ
ると判定した場合には、論理式の値として再利用レジス
タを流用するコードの出力を行ない(ステップ100
3)、再利用フラグをオンとしステップ1001の処理
に戻る(ステップ1004)。
【0085】ステップ1001において論理式が再利用
不可能であると判定した場合には、論理式内の各キュー
ブについて全てのキューブを処理し終わったかどうか判
定する(ステップ1005)。ステップ1005におい
て、全てのキューブを処理し終わったと判定した場合に
は、全てのキューブ間の論理和を論理式の値とするコー
ドを出力しステップ1001の処理に戻る(ステップ1
019)。
【0086】ステップ1005において、未処理のキュ
ーブが残っていると判定した場合には、キューブが再利
用可能かどうか判定する。ステップ1006においてキ
ューブが再利用可能であると判定した場合には、キュー
ブの値として再利用レジスタを流用するコードを出力す
る(ステップ1007)。そして、再利用フラグをオン
し(ステップ1008)、キューブ間の論理和を演算す
るコードを出力しステップ1005の処理に戻る(ステ
ップ1018)。
【0087】ステップ1006においてキューブが再利
用不可能であると判定した場合には、論理式内の各リテ
ラルについて処理が終了したかどうかを判定する(ステ
ップ1009)。ここで、リテラルとは図17において
説明した論理式における“A”、“B”等の入力変数の
ことを示している。ステップ1009において、全ての
リテラルを処理し終わったと判定した場合には、ステッ
プ1018の処理を行う。ステップ1009において未
処理のリテラルが残っていると判定した場合には、その
リテラルが再利用可能かどうかを判定する(ステップ1
010)。
【0088】ステップ1010においてリテラルが再利
用可能であると判定した場合には、リテラルの値として
再利用レジスタを流用するコードを出力し(ステップ1
011)、再利用フラグをオンし(ステップ101
2)、リテラル間の論理和を演算するコードを出力して
ステップ1009の処理に戻る(ステップ1017)。
【0089】ステップ1010においてリテラルが再利
用不可能であると判定した場合には、リテラルの値をメ
モリからロードするコードを出力する(ステップ101
3)。そして、リテラルが負論理かどうかを判定し(ス
テップ1014)、負論理である場合にはロードしたリ
テラルの値を反転するコードを出力し(ステップ101
5)、再利用フラグをオンした後にステップ1017の
処理に戻る(ステップ1016)。
【0090】ステップ1014において、リテラルが負
論理ではないと判定した場合にはステップ1017の処
理に戻る。
【0091】次に、図14のフローチャートを用いて図
13のフローチャートにおける論理式、キューブ、リテ
ラルが再利用可能かを判定する処理(ステップ100
2、1006、1010)を説明する。
【0092】先ず、検索する属性のハッシュ値を計算し
(ステップ1101)、ハッシュ表に計算したハッシュ
値が存在するかどうか判定し、存在しないと判定した場
合には全ての処理を終了する(ステップ1102)。
【0093】ステップ1102においてハッシュ値が存
在すると判定した場合には、同じハッシュ値を持つ属性
について検証が終了しているかどうかを判定し、全ての
属性を検証し終わっていると判定した場合には全ての処
理を終了する(ステップ1103)。
【0094】ステップ1103において未検証の属性が
残っていると判定した場合には、検索している属性と一
致するかどうかを検証し、一致しなければステップ11
03の処理に戻る(ステップ1104)。
【0095】ステップ1104において一致していると
判定した場合には、再利用レジスタIDを読み出し、全
ての処理を終了する(ステップ1105)。
【0096】次に、図15のフローチャートを用いて図
12のフローチャートにおけるFFRの属性を登録する
処理(ステップ908)を説明する。
【0097】先ず、FFRの中の各属性について処理が
終了したかどうかを判定し、全ての属性を処理している
と判定した場合には全ての処理を終了する(ステップ1
201)。
【0098】ステップ1201の処理において未処理の
属性が残っていると判定した場合には、再利用フラグが
オンかどうかを判定し、再利用フラグがオフの場合には
ステップ1201の処理に戻る(ステップ1202)。
【0099】ステップ1202の処理において再利用フ
ラグがオンの場合には、再利用フラグをオフにし(ステ
ップ1203)、追加によってテーブルが溢れるかどう
かを判定する(ステップ1204)。
【0100】ステップ1204においてテーブルが溢れ
ると判定した場合には、溢れる分のデータを削除し、ス
テップ1206の処理に進む(ステップ1205)。ス
テップ1204においてテーブルが溢れないと判定した
場合には、そのままステップ1206の処理に進む。
【0101】次に、属性のハッシュ値を計算し(ステッ
プ1206)、そのハッシュ値をキーとしてハッシュ表
に属性IDを追加する(ステップ12107)。そし
て、属性テーブルにデータを追加し(ステップ120
8)、論理式テーブルにデータを追加しステップ120
1の処理に戻る(ステップ1209)。
【0102】本実施形態の論理シミュレーションモデル
の作成方法は、論理合成における論理最適化において論
理式から抽出した要素を、プログラムコードの最適化に
も使用するようにしたものである。
【0103】メモリからレジスタにデータを読み込むに
は、レジスタからデータを読み込むのに比較して長い時
間を必要とする。よって、レジスタからレジスタにデー
タを転送するのに要する時間は、メモリからレジスタに
データを転送するのに要する時間に比べれば短くなる。
よって、レジスタに保持されているデータを用いてプロ
グラムコードの最適化を行う本実施形態の方法を用いれ
ば、メモリからデータを読み込んでプログラムコードの
最適化を行う従来の方法を用いるより処理時間を短くす
ることができる。
【0104】また、プログラムコードを解析せずに最適
化処理を行うことができるので使用するメモリ量を減ら
すことができる。
【0105】図には示されていないが、本実施形態の論
理シミュレーションモデルの作成方法を実行する装置
は、プログラムを記録した記録媒体を備えている。この
記録媒体は磁気ディスク、半導体メモリまたはその他の
記録媒体であってもよい。
【0106】このプログラムは、記録媒体から論理シミ
ュレーションモデルの作成を実行する装置に読み込ま
れ、この装置の動作を制御する。そして、この装置はプ
ログラムの制御により上記で説明した論理シミュレーシ
ョンモデルの作成方法を実行する。
【0107】
【発明の効果】以上説明したように、本発明は、論理合
成の論理最適化の過程において得られる要素の情報をプ
ログラムコードの最適化の過程においても用いることに
よりプログラムコードの解析の過程を省略することがで
きるため、論理シミュレーションモデルを作成する過程
における処理速度が速くなるとともにメモリ使用量が少
なくてすむという効果を有する。
【図面の簡単な説明】
【図1】本発明の一実施形態の論理シミュレーションモ
デルの作成方法を説明するためのフローチャートであ
る。
【図2】図1中の論理合成部119における2段論理化
(ステップ106)、論理最適化(ステップ107)を
説明するためのフローチャートである。
【図3】LCC解析(ステップ109)を説明するため
のフローチャートである。
【図4】専用コンパイラによるプログラムコードの最適
化(ステップ113)を説明するためのフローチャート
である。
【図5】専用コンパイラによるプログラムコードの最適
化(ステップ113)を具体例を用いて説明した図であ
る。
【図6】FFR演算順位テーブル110の構成を示した
図である。
【図7】FFR論理関数テーブル111の構成を示した
図である。
【図8】FFR属性テーブル112の構成を示した図で
ある。
【図9】FFR属性テーブル112の構成を示した図で
ある。
【図10】属性再利用テーブル406の構成を示した図
である。
【図11】属性再利用テーブル406の構成を示した図
である。
【図12】専用コンパイラによるコード最適化処理(ス
テップ113)における、FFR読み出し(ステップ4
04)、プログラムコード再利用、配置(ステップ40
5)処理を説明するためのフローチャートである。
【図13】図12のフローチャートにおけるFFRをコ
ードに変換する処理(ステップ906)を説明するため
のフローチャートである。
【図14】図13のフローチャートにおける論理式、キ
ューブ、リテラルが再利用可能かを判定する処理(ステ
ップ1002、1006、1010)を説明するための
フローチャートである。
【図15】図12のフローチャートにおけるFFRの属
性を登録する処理(ステップ908)を説明するための
フローチャートである。
【図16】従来の論理シミュレーションモデルの作成方
法を説明するためのフローチャートである。
【図17】図16中の論理合成部1619における2段
論理化(ステップ106)、論理最適化(ステップ16
07)を説明するためのフローチャートである。
【図18】論理合成の処理を説明するために用いる具体
的な論理回路の回路図である。
【図19】汎用コンパイラによるプログラムコードによ
る最適化(ステップ1603)を具体例を用いて説明し
た図である。
【符号の説明】
101 検証済み論理回路 102 論理設計データベース 103〜107 ステップ 108 FFRブロックネットワーク 109 ステップ 110 FFR演算順位テーブル 111 FFR論理関数テーブル 112 FFR論理属性テーブル 113、114 ステップ 115 シミュレーションモデルオブジェクト 116 遅延情報作成部 117 ハッシュ表 118 遅延データベース 119 論理合成部 120、121 ステップ 201 FFRの論理関数 202 ステップ 203 キューブリスト 204 ステップ 205 主項表 206 ステップ 207 被覆表 208 最小論理和形 209 ステップ 211、212 ステップ 215〜217 カルノー図 218 論理式 219 真理値表 220 再利用可能要素 301、302 ステップ 404、405 ステップ 406 属性再利用テーブル 407 最適化プログラムコード 501 演算順位 503 FFR数 504 FFR−IDテーブルのアドレス 505 FFR−IDテーブル 506 FFR−ID 510 プログラムコードの一部 511 最適化前のプログラムコード 512 最適化後のプログラムコード 513 再利用可能要素 601 FFR−IDテーブル 602 FFR−ID 603 論理式テーブルのアドレス 604 論理式テーブル 605 論理式テーブルの要素 606 入力信号線数 607 入力信号線テーブルのアドレス 608 キューブ数 609 真理値表へのポインタ 610 入力信号線ID合計 611 出力線ID 612 入力信号線テーブル 613 信号線ID 614 真理値表 701 FFR−IDテーブル 702 FFR−ID 703 属性ID数 704 属性IDテーブルのアドレス 705 属性IDテーブル 706 属性ID 707 属性テーブル 708 属性テーブルの要素 709 再利用レジスタ 710 再利用フラグ 711 論理式ID 712 論理式テーブル 714 論理式テーブルの要素 715 入力信号線数 716 入力信号線のアドレス 717 キューブ数 718 真理値表へのポインタ 719 入力信号線ID合計 720 出力信号線ID 721 入力信号線テーブル 722 信号線ID 723 真理値表 801 属性ID検索表 802 属性ID 803 ヌル 805 属性登録順リスト 806 最も新しいデータ 808 最も古いデータ 809 属性テーブル 810 属性テーブルの要素 811 再利用レジスタID 812 再利用フラグ 813 論理式ID 814 論理式テーブル 815 論理信号テーブルの要素 817 入力信号線 818 出力信号線テーブルのアドレス 819 キューブ数 820 真理値表へのポインタ 821 入力信号線ID合計 822 出力信号線ID 823 入力信号線テーブル 824 信号線ID 825 真理値表 901〜908 ステップ 1001〜1019 ステップ 1101〜1105 ステップ 1201〜1209 ステップ 1601 論理ネットワーク 1602、1603 ステップ 1607 ステップ

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 検証済みの論理回路情報より論理ブロッ
    クを抽出し、該論理ブロックの論理を最適化する論理合
    成を行う処理と、 最適化された前記論理ブロックをプログラムコードに変
    換し、該プログラムコードの最適化を行う処理と、 最適化された前記プログラムコードをシミュレーション
    モデルオブジェクトに変換する処理とから構成された論
    理シミュレーションモデルの作成方法において、 前記論理合成の処理の際に生成された前記論理ブロック
    の論理表現を表わした論理式の要素である、少なくとも
    演算順位と論理関数とを再利用可能要素としてテーブル
    に記憶する処理と、 前記プログラムコードの最適化を行う処理の際に前記テ
    ーブルに記憶した論理関数を演算順位順に取り出して前
    記論理ブロック間に渡って同じ論理関数の有無を検索す
    る処理と、 前記検索結果に従って前記プログラムコードの最適化処
    理を行う処理とを有する ことを特徴とする論理シミュレ
    ーションモデルの作成方法。
  2. 【請求項2】 前記再利用可能要素は、前記論理式の各
    入力変数、主項、最小論理和形、被覆条件である請求項
    1記載の論理シミュレーションモデルの作成方法。
  3. 【請求項3】 検証済みの論理回路情報より論理ブロッ
    クを抽出し、該論理ブロックの論理を最適化する論理合
    成を行う処理と、 前記論理合成の処理の際に生成された前記論理ブロック
    の論理表現を表わした論理式の要素である、少なくとも
    演算順位と論理関数とを再利用可能要素としてテーブル
    に記憶する処理と、 最適化された前記論理ブロックをプログラムコードに変
    換する処理と、 前記テーブルに記憶した論理関数を演算順位順に取り出
    して前記論理ブロック間に渡って同じ論理関数の有無を
    検索する処理と、 前記検索結果に従って前記プログラムコードの最適化処
    理を行う処理と 最適化された前記プログラムコードをシ
    ミュレーションモデルオブジェクトに変換する処理とを
    コンピュータに実行させるためのプログラムを記録した
    記録媒体。
  4. 【請求項4】 前記再利用可能要素は、前記論理式の各
    入力変数、主項、最小論理和形、被覆条件である請求項
    3記載の記録媒体。
  5. 【請求項5】 検証済みの論理回路情報より論理ブロッ
    クを抽出し、該論理ブロックの論理を最適化する論理合
    成を行う論理合成手段と、 最適化された前記論理ブロックをプログラムコードに変
    換し、該プログラムコードの最適化を行う最適化手段
    と、 最適化された前記プログラムコードをシミュレーション
    モデルオブジェクトに変換する変換手段とを有する論理
    シミュレーションモデルの作成装置において、 前記論理合成手段は、論理合成を行う際に生成された前
    記論理ブロックの論理表現を表わした論理式の要素を再
    利用可能要素として保存しておき、前記最適化手段は、
    前記プログラムコードの最適化を行う際に前記再利用可
    能要素を用いることを特徴とする論理シミュレーション
    モデルの作成装置。
  6. 【請求項6】 前記再利用可能要素は、前記論理式の各
    入力変数、主項、最小論理和形、被覆条件である請求項
    5記載の論理シミュレーションモデルの作成装置。
JP10014185A 1998-01-27 1998-01-27 論理シミュレーションモデルの作成方法および装置ならびに記録媒体 Expired - Fee Related JP2924882B1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10014185A JP2924882B1 (ja) 1998-01-27 1998-01-27 論理シミュレーションモデルの作成方法および装置ならびに記録媒体
KR10-1999-0002347A KR100412964B1 (ko) 1998-01-27 1999-01-26 논리 시뮬레이션 모델의 작성방법, 장치 및 기록매체
US09/238,093 US6377909B1 (en) 1998-01-27 1999-01-27 Method and apparatus for preparing a logic simulation model and recording medium for storing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10014185A JP2924882B1 (ja) 1998-01-27 1998-01-27 論理シミュレーションモデルの作成方法および装置ならびに記録媒体

Publications (2)

Publication Number Publication Date
JP2924882B1 true JP2924882B1 (ja) 1999-07-26
JPH11213025A JPH11213025A (ja) 1999-08-06

Family

ID=11854078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10014185A Expired - Fee Related JP2924882B1 (ja) 1998-01-27 1998-01-27 論理シミュレーションモデルの作成方法および装置ならびに記録媒体

Country Status (3)

Country Link
US (1) US6377909B1 (ja)
JP (1) JP2924882B1 (ja)
KR (1) KR100412964B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519742B1 (en) * 2000-03-06 2003-02-11 Synplicity, Inc. Local naming for HDL compilation
US7039909B2 (en) * 2001-09-29 2006-05-02 Intel Corporation Method and apparatus for performing compiler transformation of software code using fastforward regions and value specialization
JP2008112318A (ja) * 2006-10-31 2008-05-15 Matsushita Electric Ind Co Ltd 半導体集積回路の消費電力最適化方法及び半導体設計装置
US10706193B1 (en) * 2018-12-04 2020-07-07 Xilinx, Inc. Computer processing during simulation of a circuit design

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978571A (en) * 1993-03-19 1999-11-02 Digital Equipment Corporation Method and apparatus for synchronous circuit simulation design by eliminating unneeded timing behaviors prior to simulation run-time
JP2845154B2 (ja) 1995-02-28 1999-01-13 日本電気株式会社 論理シミュレーション用モデルの作成方法
US5673199A (en) * 1995-05-01 1997-09-30 Hughes Electronics Computer aided reuse tool
US5805861A (en) * 1995-08-29 1998-09-08 Unisys Corporation Method of stabilizing component and net names of integrated circuits in electronic design automation systems
US5870588A (en) * 1995-10-23 1999-02-09 Interuniversitair Micro-Elektronica Centrum(Imec Vzw) Design environment and a design method for hardware/software co-design
US5703789A (en) * 1995-12-29 1997-12-30 Synopsys, Inc. Test ready compiler for design for test synthesis
US5963724A (en) * 1996-02-16 1999-10-05 Analogy, Inc. Component-based analog and mixed-signal simulation model development
GB2321322B (en) * 1996-10-28 2001-10-10 Altera Corp Remote software technical support
US6026220A (en) * 1996-11-19 2000-02-15 Unisys Corporation Method and apparatus for incremntally optimizing a circuit design
US5872957A (en) * 1997-05-01 1999-02-16 International Business Machines Corporation Method for flexible simulation modeling of multi-component systems
JP3080037B2 (ja) 1997-06-06 2000-08-21 日本電気株式会社 論理シミュレーション用モデルの作成方法

Also Published As

Publication number Publication date
KR100412964B1 (ko) 2003-12-31
JPH11213025A (ja) 1999-08-06
US6377909B1 (en) 2002-04-23
KR19990068124A (ko) 1999-08-25

Similar Documents

Publication Publication Date Title
US5051911A (en) Apparatus for effecting simulation of a logic circuit and method for producing a semiconductor device using the simulation approach
US7124070B2 (en) Method of and apparatus for, and program for verifying equivalence between behavioral description and register transfer level description
US6697981B2 (en) System and method for evaluating the location of a failure in a logic circuit, and machine-readable recording medium having a recorded program
JP2000242672A (ja) 形式的論理検証装置および形式的論理検証方法
US6834379B2 (en) Timing path detailer
US7472371B2 (en) Description style conversion method, program, and system of logic circuit
JP2924882B1 (ja) 論理シミュレーションモデルの作成方法および装置ならびに記録媒体
JP3272915B2 (ja) スタティックタイミング解析装置
Chen et al. A new framework for static timing analysis, incremental timing refinement, and timing simulation
CN114638184A (zh) 门级电路的仿真方法、系统、存储介质及设备
JP2853649B2 (ja) 論理シミュレーション用モデルの作成方法
JP3080037B2 (ja) 論理シミュレーション用モデルの作成方法
JP2845154B2 (ja) 論理シミュレーション用モデルの作成方法
JP2970600B2 (ja) 論理シミュレーション方式
JP4448048B2 (ja) 構造解析プログラム
JP2996153B2 (ja) Asic検証方法
JP2927137B2 (ja) 回路の自動設計方法とその装置およびそのシステム
JP2785708B2 (ja) 論理シミュレーション方法
JP2812257B2 (ja) 論理シミュレーションモデル作成方法
JPH06251103A (ja) 高位合成装置
JP3156343B2 (ja) データ依存関係情報処理方法
JPH05342295A (ja) 論理回路設計装置
JPH06274332A (ja) プログラム部品の登録・検索方法
JP2000339359A (ja) 論理シミュレーション方法及び装置
JPH0581369A (ja) 遅延時間解析装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090507

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees