JP4082568B2 - 集積回路設計支援装置及び方法、並びにそのプログラム - Google Patents
集積回路設計支援装置及び方法、並びにそのプログラム Download PDFInfo
- Publication number
- JP4082568B2 JP4082568B2 JP2002082446A JP2002082446A JP4082568B2 JP 4082568 B2 JP4082568 B2 JP 4082568B2 JP 2002082446 A JP2002082446 A JP 2002082446A JP 2002082446 A JP2002082446 A JP 2002082446A JP 4082568 B2 JP4082568 B2 JP 4082568B2
- Authority
- JP
- Japan
- Prior art keywords
- logic
- condition
- api
- signal
- circuit
- 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
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータを利用したLSI等の集積回路の設計を支援する技術に関し、特に集積回路に対応する回路記述データに基づき、集積回路の動作検証以外の項目を検証する技術に関する。
【0002】
【従来の技術】
現在、LSIをはじめとする半導体デバイスの回路設計の主流は、回路の動作を、HDL(Hardware Description Language:ハードウエア記述言語)によりRTL(Register Transfer Level:レジスタ転送レベル)で記述し、それを論理合成技術によりゲートレベルのネットリストに変換する方法を採っている。図6にRTL記述例を示す。これは、図5の論理回路に対応するRTL記述例である。論理合成実施後、ゲートレベルのネットリストに対して各種設計ルールを満足しているか否かを検証する。
【0003】
設計ルールの例としてはテスト容易化設計ルールがある。このルールは例えば、「外部入力クロック信号を使って、各フリップ・フロップのクロック端子を制御できる必要がある」などである。このクロック制御に関するルールについて図5を使って説明する。図5において、a、b、ckは外部信号であり、このうち、ckがクロックである。図5の回路の場合、フリップフロップ(FF)のクロック信号はcknetであるが、このcknetは外部入力クロックckにより制御することはできない。ここでいう制御とは、ckの論理値が1の場合は、cknetは必ず1になり、ckの論理値が0の場合は、cknetは必ず0になることをいう。しかし、図5では、外部入力bが0の場合、ckの論理値に関係なく、cknetは0となる。したがって、図5の回路は上述のクロック制御ルールを満足していない。一方、外部入力bを1に固定した状況ではこのルールを満たす。
【0004】
ゲートレベルにおいて各種設計ルールをチェックする場合、ルール違反が発見されると、RTLデータを修正し、再び論理合成を実施することになる。これではLSI設計にかかる期間を増大させるため、できればRTLデータに対して直接各種設計ルールをチェックしたいところである。しかし、RTLデータに対して設計ルールチェックを実施する装置を一から開発するのは非常に手間がかかり、その実現が困難な状況にある。
【0005】
【発明が解決しようとする課題】
本発明は、上述の事情に鑑みなされたもので、その目的は、既存の論理シミュレータおよび論理シミュレータにあらかじめ用意されているAPI(Application Procedure Interface)を利用し、RTLデータに基づき、集積回路の動作検証以外の項目を検証する装置及び方法を実現することにある。詳しくは、既存の論理シュミレータおよび論理シュミレータにあらかじめ用意されているAPIを利用し、RTLデータに対して、条件漏れチェックを実施する装置及び方法を実現することにある。
【0006】
【課題を解決するための手段】
本発明は、論理シミュレーション機能と、該論理シミュレーション機能に対する論理値の設定や参照、回路記述データの構文解析木情報の参照を可能とするAPIを含む論理シミュレータを利用して、集積回路に対応する回路記述データに基づき、該集積回路の動作検証以外の項目を検証することを特徴とする。
【0007】
具体的には、を回路記述データから条件記述部前記APIを使って抽出する手段と前記抽出された条件記述部の各条件信号に対して、すべての論理値の組み合わせを前記APIにより設定し、該論理値の組み合わせに対して、シミュレーション機能により論理シミュレーションを実施せしめる手段、前記条件記述部において代入先となっている信号の論理値を前記APIにより読み出し、該読み出された論理値から、条件記述部に条件漏れがあるか否か判定する手段等により、条件漏れチェックを実施する。
【0008】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
図1は本発明にかかる集積回路設計支援装置の第1の実施例を示す構成図で、論理シミュレータ及びそれにあらかじめ用意されているAPIを利用して、HDL記述のRTLデータに対し、テスト容易化設計ルールチェックを実施する場合の構成例を示したものである。図1において、110は回路記述データファイル、120は信号制約ファイル、130は信号制約ファイル読込み部、140は論理シミュレータ、150はフリップ・フロップ情報ファイル、160はテスト容易化設計ルール判定部を示している。
【0009】
回路記述データファイル110には、設計対象の集積回路に対応する回路記述データであるHDL記述のRTLデータが保持されている。HDLのフォーマットとしては、例えば、IEEE標準1304−1995であるVerilog−HDLなどが挙げられる。信号制約ファイル120には、チェック対象ルールとともに、設計ルールチェックを行う際に固定すべき信号とその論理等が記述されている。また、外部入部クロック信号名も記述されている。
【0010】
論理シミュレータ140は、論理シミュレーション部141とAPI部142で構成される。ここで、API部142はC言語等のプログラミング言語で記述された関数として論理シミュレータ140の中に通常組み込まれているものである。この組み込まれた関数を使って、次のようなことが可能となっている。
(1) 論理シミュレーション部中で任意の信号に論理値を設定する。
(2) 論理シミュレーション部から任意の信号の論理値を参照する。
(3) HDL記述データの構文解析木情報を参照する。
【0011】
APIの例としては、Verilog−HDLのAPIであるVPI(Verilog Procedure Interface)などが挙げられる。
【0012】
本来、論理シミュレータ140は、回路が正しく動作するかどうかを検証するために用いられてきた。本実施例は、この論理シミュレータ140及びそれにあらかじめ組み込まれているAPI部142を利用して、HDL記述のRTLデータに対し、テスト容易化設計ルールチェックを実施するものである。図2に、クロック・ルール・チェックの処理手順を示す。以下、図2にもとづいて、図1の実施例の動作を具体的に説明する。
【0013】
まず、論理シミュレーション部141では、回路記述データファイル110から回路記述データとしてHDL記述のRTLデータを読み込む(S201)。次に、信号制約ファイル読込み部130では、信号制約ファイル120の信号制約情報を読み、論理シミュレータ140のAPI部142に渡す(S202)。先にも述べたように、信号制約ファイル120には、設計ルールチェックを行う際に固定すべき信号とその論理値等が記述されている。また、外部入力クロック信号名も記述されている。ここでは、図5の回路において、外部信号bが固定信号で、固定値は1であり、また、外部クロック信号はckであるとする。
【0014】
論理シミュレータ140のAPI部142では、論理シミュレーション部141に読み込まれたRTLデータに対し、信号制約ファイル120の信号制約情報中の信号に論理値を設定する(S203)。さらに、外部クロック信号に、まず、論理値0を設定する(S204)。このステップS203、S204により、図5の回路では、外部信号bの論理値は0に固定され、外部クロック信号ckは、論理値1に設定される。
【0015】
論理シミュレーション部141では、回路記述データファイル110から読み込まれたRTLデータにより、API部142によって設定された条件のもとに、論理シミュレーションを実行する(S205)。論理シミュレーションの実行後、API部142では、フリップ・フロップ情報を読み出し、フリップ・フロップ情報ファイル150に出力する(S206)。フリップフロップ名はRTLデータから抽出することができる。フリップフロップ情報には、各フリップフロップの名前、そのクロック端子の論理値等が含まれる。ここでは、それに外部クロック信号の論理値も付加する。これにより、図5の回路では、フリップ・フロップFFのクロック信号cknetと人力クロック信号の論理値がともに0の情報がフリップ・フロップ情報ファイル150に出力される。
【0016】
テスト容易化設計ルール判定部160では、フリップフロップ情報ファイル150を参照して、API部142により検出されたフリップ・フロップのクロック端子が論理シミュレーション後にどのような論理になっているか調べる(S207)。ここで、外部入力クロック信号の論理値と、フリップ・フロップのクロック端子の論理値が同じであれば設計ルールを満たしていると判定する。図5の回路では、ck=0、cknet=0が判定される。
【0017】
次に、API部142では、外部クロックを論理値1に設定する(S208)。これにより、図5の回路では、外部クロック信号ckの論理値が0から1に変更される。外部入力信号bは1に固定のままである。
【0018】
論理シミュレーション部141では、API部142によって設定された条件のもとに、再び論理シミュレーションを実行し(S209)、論理シミュレーション実行後、SPI部142では、再びフリップ・フロップの情報をフリップ・フロップ情報ファイル150に読み出す(S210)。そして、テスト容易化設計ルール判定部160では、再びフリップロップ情報ファイル150を参照して、フリップフロップのクロツク端子の論理値をチェックする(S211)。この結果、図5の回路では、ck=1、cknet=1が判定される。
【0019】
なお、図2の処理手順において、ステップ206の後、ステップS208〜210を実行し、外部クロックの論理値が0と1の場合のそれぞれの論理シミュレーション実行後、テスト容易化設計ルール設定部160において、ステップS207とS211のルール判定チェックをまとめて実施することでもよい。
【0020】
図3は本発明にかかる集積回路設計支援装置の第2の実施例を示す構成図で、論理シミュレータ及びそれにあらかじめ用意されているAPIを利用して、HDL記述のRTLデータについて、条件漏れチェックを実施する場合の構成例を示したものである。図3において、310は回路記述データファイル、320は論理シミュレータ、330は条件記述情報ファイル、340は論理値設定部、350は代入先信号チェック部を示している。
【0021】
回路記述データファイル310には、図1の回路記述データファイル110と同様に、設計対象の集積回路に対応する回路記述データであるHDL記述のRTLデータが保持されている。先にも述べたように、HDLのフォーマットとしては、例えば、IEEE標準1364−1995であるVerilog−HDLなどが挙げられる。
【0022】
論理回路シミュレータ320は、論理シミュレーション部321とAPI部322で構成される。API部322は、先にも述べたように、C言語等のプログラミング言語で記述された関数として論理シミュレータ320の中に通常組み込まれているものであり、この関数を使って、論理シミュレーション部中の任意の信号に対する論理値の設定や参照、さらには、HDL記述データの構文解析木情報の参照などを可能にするものである。
本実施例は、この論理シミュレータ320及びそれにあらかじめ組み込まれているAPI部322を利用して、回路記述データに対し、条件漏れチェックを実施するものである。図4に、条件漏れチェックの処理手順を示す。以下、図4にもとづいて、図3の実施例の動作を具体的に説明する。
【0023】
ます、論理シミュレーション部321では、回路記述データファイル310から回路記述データとしてHDL記述のRTLデータを読み込む(S401)。API部322では、このHDL記述のRTLデータ中におけるif文などの条件記述部分から条件記述情報を抽出し、条件記述情報ファイル330に出力する(S402)。
【0024】
図7にif文の例を示す。以降、この図7のif文を例にとり説明する。ここで、条件記述情報とは、以下のような情報である。
(1) 条件記述信号はa,bである。
(2) 代入先信号はq1である。
【0025】
論理値設定部340では、条件記述情報ファイル330を参照して、まず、信号c,d,eを選択し、API部322を使って、論理シミュレーション部321中の当該信号c,d,eを論理値0あるいは1で初期化する(S403)。次に、論理値設定部340では、同様にAPI部322を使って、論理シミュレーション部321の代入先信号q1を論理値Xで初期化した後(S404)、条件記述信号a,bについて、そのすべての論理値の組み合わせを一つずつ選択し、API部322により、論理シミュレーション部321中の該当信号a,bに該論理値を設定し(S405)、シミュレーション部321で論理シミュレーションを実施する(S406)。
【0026】
ここで、条件記述信号a,bの取り得る論理値の組み合わせは、(a,b)=(0,0),(0,1),(1,0),(1,1)の4通りである。論理値設定部340では、4つの組み合わせのうちの1つ、例えば(0,0)を選択し、API部322を使って論理シミュレーション部321の該当信号に論理値を設定する。そして、シミュレーション部321において、論理シミュレーションを実施する。ただし論理値設定部340では該当信号に論理値を代入する前に、代入先信号q1を論理値Xで、その他の信号c、d、eは0あるいは1で必ず初期化する。
【0027】
論理シミュレーション後、代入先信号チェック部350では、API部320を使って信号q1の論理値を取り込み、条件記述情報ファイル330の信号q1を参照して、該信号q1の論理値がXから他の値に変化しているかどうかを調べ(S407)、Xのまま(初期値のまま)であれば、条件漏れがありと判定する(S410)。
【0028】
上記ステップS404〜S405の処理を、(a,b)=(0,0),(0,1),(1,0),(1,1)の4通りすべてに対して繰り返し(S408)、いずれも信号q1の論理値がXから変化していれば、代入先信号チェック部350では、条件漏れなしと判定する(S409)。
【0029】
図7のif文の例では、(a,b)=(0,0)の場合は、700の文が実行され、q1の論理値は1または0になる。また(a,b)=(1,0)の場合は、図7中のどの文も実行されることはなく、q1の値はXのままとなる。代入先信号チェック部350にて、q1の論理値がXであることが確認されると、条件漏れを検出したことになる。
【0030】
なお、図1及び図3で示した装置における各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図2及び図4で示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、FDや、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。
【0031】
【発明の効果】
本発明によれば、HDL記述のRTLデータの構文解析および論理値の伝播を論理シミュレータに実施させ、RTLデータの構文解析情報の取得や論理値の設定および観測を、論理シミュレータに組み込まれているAPIにより行い、if文中の条件漏れを検出するので、一から開発する場合に比べ容易に条件漏れチェック・システムを構築することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施例の構成図である。
【図2】 図1の第1の実施例の動作を説明するための処理フロー図である。
【図3】 本発明の第2の実施例の構成図である。
【図4】 図3の第2の実施例の動作を説明するための処理フロー図である。
【図5】 論理回路の一例を示す図である。
【図6】 図5に対するRTL記述例を示す図である。
【図7】 RTLデータのif文の例を示す図である。
【符号の説明】
110 回路記述データファイル
120 信号制約ファイル
130 信号制約ファイル読み込み部
140 論理シミュレータ
150 フリップ・フロップ情報ファイル
160 テスト容易化設計ルール判定部
310 回路記述データファイル
320 論理シミュレータ
330 条件記述情報ファイル
340 論理値設定部
350 代入先信号チェック部
Claims (3)
- 論理シミュレーション機能と、該論理シミュレーション機能の論理値の設定や参照、回路記述データの構文解析木情報の参照を可能とするAPIを含む論理シミュレータと、
集積回路に対応する回路記述データを入力する手段と、
前記回路記述データから条件記述部を前記APIを使って抽出する手段と、
前記抽出された条件記述部の各条件信号に対して、すべての論理値の組み合わせを前記APIにより設定し、該論理値の組み合わせに対して、前記論理しュミレーション機能により論理シミュレーションを実施せしめる手段と、
前記条件記述部において代入先となっている信号の論理値を前記APIにより読み出し、該読み出された論理値から、条件記述部に条件漏れがあるか否か判定する手段と、
を有することを特徴とする集積回路設計支援装置。 - 論理シミュレーション機能と、該論理シミュレーション機能の任意の信号に対する論理値の設定や参照、回路記述データの構文解析木情報の参照を可能とするAPIを含む論理シミュレータを備えたコンピュータが、
集積回路に対応する回路記述データを入力するステップと、
前記回路記述データから条件記述部を前記APIを使って抽出するステップと、
前記抽出された条件記述部の各条件信号に対して、すべての論理値の組み合わせを前記APIにより設定し、該論理値の組み合わせに対して、論理シミュレーションを実施せしめるステップと、
前記条件記述部において代入先となっている信号の論理値を前記APIにより読み出し、該読み出された論理値から、条件記述部に条件漏れがあるか否か判定するステップと、
を実行することを特徴とする集積回路設計支援方法。 - 請求項2記載の集積回路設計支援方法の各ステップをコンピュータで実行するためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002082446A JP4082568B2 (ja) | 2002-03-25 | 2002-03-25 | 集積回路設計支援装置及び方法、並びにそのプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002082446A JP4082568B2 (ja) | 2002-03-25 | 2002-03-25 | 集積回路設計支援装置及び方法、並びにそのプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003281216A JP2003281216A (ja) | 2003-10-03 |
| JP4082568B2 true JP4082568B2 (ja) | 2008-04-30 |
Family
ID=29230627
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002082446A Expired - Fee Related JP4082568B2 (ja) | 2002-03-25 | 2002-03-25 | 集積回路設計支援装置及び方法、並びにそのプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4082568B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011180841A (ja) | 2010-03-01 | 2011-09-15 | Ricoh Co Ltd | 半導体設計支援装置 |
-
2002
- 2002-03-25 JP JP2002082446A patent/JP4082568B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003281216A (ja) | 2003-10-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10372858B2 (en) | Design-for-testability (DFT) insertion at register-transfer-level (RTL) | |
| US8336016B2 (en) | Eliminating, coalescing, or bypassing ports in memory array representations | |
| US20050097484A1 (en) | Method for clock synchronization validation in integrated circuit design | |
| JP4994393B2 (ja) | 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法 | |
| US9600398B2 (en) | Method and apparatus for debugging HDL design code and test program code | |
| US8291359B2 (en) | Array concatenation in an integrated circuit design | |
| US8307313B2 (en) | Minimizing memory array representations for enhanced synthesis and verification | |
| US10437946B1 (en) | Using implemented core sources for simulation | |
| US20070294647A1 (en) | Transferring software assertions to hardware design language code | |
| US7231627B2 (en) | Merging a hardware design language source file with a separate assertion file | |
| US8448113B2 (en) | Efficiently applying a single timing assertion to multiple timing points in a circuit using creating a deffinition | |
| JP2008511894A (ja) | 電子回路の構造レベル記述を設計する方法及びシステム | |
| CN119808701B (zh) | 芯片后仿真的方法及装置 | |
| US7260792B2 (en) | Modeling a mixed-language mixed-signal design | |
| US8910097B2 (en) | Netlist abstraction | |
| JP4082568B2 (ja) | 集積回路設計支援装置及び方法、並びにそのプログラム | |
| US8949766B2 (en) | Detecting corresponding paths in combinationally equivalent circuit designs | |
| US7496869B1 (en) | Method and apparatus for implementing a program language description of a circuit design for an integrated circuit | |
| US20190384867A1 (en) | Methods for Automatic Engineering Change Order (ECO) Bug Fixing in Integrated Circuit Design | |
| JP4881769B2 (ja) | 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム | |
| CN1815480B (zh) | 从波形图产生硬件设计语言触发的方法与系统 | |
| US6442738B1 (en) | RTL back annotator | |
| TW201040766A (en) | Performing logic optimization and state-space reduction for hybrid verification | |
| US7191412B1 (en) | Method and apparatus for processing a circuit description for logic simulation | |
| US7493580B2 (en) | Critical path estimating program, estimating apparatus, estimating method, and integrated circuit designing program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050202 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071001 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071010 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071210 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080206 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080207 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140222 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |