JP2006127449A - シミュレーションモデル生成方法 - Google Patents

シミュレーションモデル生成方法 Download PDF

Info

Publication number
JP2006127449A
JP2006127449A JP2005063752A JP2005063752A JP2006127449A JP 2006127449 A JP2006127449 A JP 2006127449A JP 2005063752 A JP2005063752 A JP 2005063752A JP 2005063752 A JP2005063752 A JP 2005063752A JP 2006127449 A JP2006127449 A JP 2006127449A
Authority
JP
Japan
Prior art keywords
simulation model
input
output
clock
flip
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.)
Granted
Application number
JP2005063752A
Other languages
English (en)
Other versions
JP4530883B2 (ja
Inventor
Nobutake Takaba
信豪 高場
Atsushi Sakurai
厚 桜井
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 JP2005063752A priority Critical patent/JP4530883B2/ja
Priority to US11/116,406 priority patent/US7720664B2/en
Publication of JP2006127449A publication Critical patent/JP2006127449A/ja
Application granted granted Critical
Publication of JP4530883B2 publication Critical patent/JP4530883B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】 ゲートシミュレーションを可能にしつつ、機能ブロック(IP)の回路情報を秘匿にすることができるシミュレーションモデルを提供することを課題とする。
【解決手段】 機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップ(S108))と、ネットリストを基に回路情報を削除し、機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップ(S109)とを有するシミュレーションモデル生成方法が提供される。
【選択図】 図1

Description

本発明は、シミュレーションモデル生成方法に関し、特に電子回路のタイミング検証を行うためのシミュレーションモデルの生成方法に関する。
従来から標準的に用いられる形式の回路情報に基づいてシミュレーションを行えるようにすることにより、ベンダとカスタマが協調して製品を作成しようとした場合などで、種々の製造元から提供される半導体集積回路を用いた電子回路の動作のシミュレーションをすることができるものの、上記のような形式の回路情報は、公開された一定の規則に従って記述されたものであるため、提供を受けた側などが回路情報を解読することによって、半導体集積回路に用いられている素子の種類や各素子の接続関係、信号を伝わる信号の遅延情報など、すなわち回路設計上のノウハウや開発傾向などの設計情報を容易に把握することが可能であった。
カスタマがシミュレーションを行えるようにするために、ベンダはカスタマに機能ブロックの回路情報を提供する必要がある。カスタマは、その機能ブロックを用いた電子回路を設計し、その機能ブロックの回路情報を基にシミュレーションを行う。しかし、回路情報をカスタマに提供してしまうと、回路設計上のノウハウ等の知られたくない情報がカスタマに知られてしまう問題点がある。
下記の特許文献1は、上記の問題を解決するために、回路情報を暗号化することによって回路設計上のノウハウや開発傾向などの設計情報を秘匿化するなどの対策がとられている。
特開2004−171367号公報
しかし、暗号化しても回路情報は残っているため、暗号を解読することにより元の回路情報を復元することが出来る。近年のコンピュータの処理能力の向上、ネットワーク技術の向上によって、暗号鍵を解いて回路情報を復号化することが比較的容易になりつつある。
また、近年の集積回路技術の進歩に伴い、大規模化が進み、そして、IP(Intellectual Property)が流通するようになり、同じ半導体回路内にIPの回路情報を保護するために秘匿が必須となる部分と必ずしも秘匿する必要のない部分がはっきりとしてきた。
本発明の目的は、ゲートシミュレーションを可能にしつつ、機能ブロック(IP)の回路情報を秘匿にすることができるシミュレーションモデルを提供することである。
本発明の一観点によれば、機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップと、ネットリストを基に回路情報を削除し、機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップとを有するシミュレーションモデル生成方法が提供される。
ベンダはカスタマに対してブラックボックスであるゲートシミュレーションモデルを提供するだけでよく、ネットリストを提供しなくてもよいため、機能ブロック(IP)の回路情報及び設計ノウハウの秘匿が可能になる。また、ゲートシミュレーションモデルは、ネットリストと異なり、回路情報がないので、ゲートシミュレーションの速度を向上させることができる。また、ゲートシミュレーションモデルは、入出力間の遅延情報のみ含めばよいので、そのサイズが小さくなり、必要なファイルサイズ及びメモリサイズを大幅に減少させることができる。
図1は、本発明の実施形態による、ベンダ及びカスタマが協調して半導体集積回路(電子回路)を作成する処理例の流れを示すフローチャートである。
ステップS101では、ベンダはある機能ブロック(IP)の論理シミュレーションモデルを生成する。機能ブロックは、例えばCPU等である。論理シミュレーションモデルは、その機能ブロックの回路情報を含まないブラックボックスであり、その機能ブロックの入出力間の論理情報を含み、論理検証を行うためのDSM(Design Simulation Model)である。次に、ステップS102では、ベンダはその論理シミュレーションモデルをカスタマに提供する。この論理シミュレーションモデルは、例えばHDL(Hardware Description Language)のシミュレーション用言語で記述したものをコンパイルしたバイナリコードである。
次に、ステップS103では、カスタマはその論理シミュレーションモデルをベンダから受け取る。次に、ステップS104では、カスタマはその論理シミュレーションモデルに対応する機能ブロックを用いた半導体集積回路を設計する。ただし、その機能ブロックは、ブラックボックスのままであるので、カスタマは回路情報を知ることができず、回路情報のノウハウを秘匿にすることができる。次に、ステップS105では、カスタマはその機能ブロックの論理シミュレーションモデルを用いて半導体集積回路の論理シミュレーションを行う。論理シミュレーションは、半導体集積回路の論理動作を確認する論理検証のためのRTLベースのプリレイアウトの論理シミュレーションである。論理シミュレーションで論理検証された後、ステップS106では、カスタマはその半導体集積回路の設計データをベンダに渡す。
次に、ステップS107では、ベンダはその半導体集積回路の設計データをカスタマから受け取る。次に、ステップS108では、ベンダはその半導体集積回路のレイアウト設計を行い、ネットリストを生成する。ネットリストは、上記の半導体集積回路の回路情報を含む。上記の機能ブロックのブラックボックスは、この段階でレイアウト設計される。
次に、ステップS109では、ベンダは上記のネットリストを基に上記の半導体集積回路のゲートシミュレーションモデルを生成する。ゲートシミュレーションモデルは、上記のネットリストを基に回路情報を削除したブラックボックスであり、上記の機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのDSM(Design Simulation Model)である。具体的には、ゲートシミュレーションモデルは、上記の論理シミュレーションモデルに遅延情報を付加することにより生成される。次に、ステップS110では、ベンダはそのゲートシミュレーションモデルをカスタマに提供する。この論理シミュレーションモデルは、例えばHDLで記述したものをコンパイルしたバイナリコードであり、その遅延情報はSDF(Standard Delay Format)でアノテーションされている。
次に、ステップS111では、カスタマはそのゲートシミュレーションをベンダから受け取る。ここで、上記の機能ブロックは、ブラックボックスのままであるので、カスタマは回路情報を知ることができず、回路情報のノウハウを秘匿にすることができる。次に、ステップS112では、カスタマはそのゲートシミュレーションモデルを用いて上記の半導体集積回路のゲートシミュレーションを行う。ゲートシミュレーションは、半導体集積回路のセットアップタイム及びホールドタイム等のタイミング検証を行うためのポストレイアウト(実配線レベル)のシミュレーション(バリデーション)である。ゲートシミュレーションでタイミング検証された後、ステップS113では、カスタマはその半導体集積回路をベンダに発注する。
次に、ステップS114では、ベンダはその半導体集積回路をカスタマから受注する。次に、ステップS115では、ベンダは上記の半導体集積回路のネットリストを基にその半導体集積回路を製造する。次に、ステップS116では、ベンダはその半導体集積回路をカスタマに納品する。
図2は、図1のステップS101で生成される論理シミュレーションモデル202の構成例を示す図である。以下に、ARM社のCPUコア(IP)を例に示す。英国ARM社が開発したARM7ファミリ、ARM9ファミリプロセッサは組み込み業界では非常に良く使われている。特に、ASICのコアとして、ユーザロジックとともにシングルチップに統合され、携帯電話、デジタルスチルカメラ等のコンシューマ商品に幅広く採用されている。
半導体チップ内に階層201がインスタンスされている。階層201は、例えばA926階層(A926_I8D8_I16D16_M)である。例えば、命令キャッシュ=8KB、データキャッシュ=8KB、命令TCM(Tightly Coupled Memory)=16KB、データTCM=16KB、ETM(Embedded Trace Macrocell)=mediumの構成例を示す。さらに、階層201の下に階層202が論理シミュレーションモデルとしてインスタンスされる。階層202は、例えばARM926EJ−S階層であり、DSMの論理シミュレーションモデルである。論理シミュレーションモデル202は、機能ブロックの論理シミュレーションモデル203からなる。機能ブロック203は、例えばクロック同期のプロセッサモデル(PLI-Object)であり、D型フリップフロップ211〜214及び論理回路LGを有する。
階層201は、外部クロック信号CLKを入力する。論理シミュレーションモデル202は、入力信号Ii,Ij及び外部クロック信号CLKを入力し、出力信号Oi及びOjを出力する。フリップフロップ211〜214は、クロック端子、入力端子D及び出力端子Qを有する。クロック信号CLKは、フリップフロップ211及び212のクロック端子に入力される。
入力信号Iiは、論理回路LGを介してフリップフロップ211の入力端子Dに入力される。フリップフロップ211は、クロック信号CLKに同期して入力端子Dの信号を保持して、出力端子Qから出力する。その出力信号は、フリップフロップ213及び論理回路LGを介して出力信号Oiとして出力される。
入力信号Ijは、論理回路LGを介してフリップフロップ212の入力端子Dに入力される。フリップフロップ212は、クロック信号CLKに同期して入力端子Dの信号を保持して、出力端子Qから出力する。その出力信号は、フリップフロップ214及び論理回路LGを介して出力信号Ojとして出力される。
論理シミュレーションモデル202は、その機能ブロック203の回路情報を含まないブラックボックスであり、その機能ブロック203の入出力間の論理情報のみを含み、HDLで記述されている。この論理シミュレーションモデル202により、論理シミュレーションが可能になる。
図3は、図1のステップS109で生成されるゲートシミュレーションモデル310の構成例を示す図である。上記の機能ブロックのゲートシミュレーションモデル310は、図2の論理シミュレーションモデル203にSDFの遅延情報のタイミングラッパ311を被せたものである。タイミングラッパ311は、入出力バッファ301〜305を有し、機能ブロック203の遅延情報を入出力バッファ301〜305に分配する。
入力バッファ301は、入力信号Iiを遅延させて論理シミュレーションモデル203内の論理回路LGに供給する。入力バッファ302は、入力信号Ijを遅延させて論理シミュレーションモデル203内の論理回路LGに供給する。入力バッファ303は、クロック信号CLKを遅延させて論理シミュレーションモデル203内のフリップフロップ211及び212のクロック端子に供給する。出力バッファ304は、論理シミュレーションモデル203内の論理回路LGの出力信号を遅延させて出力信号Oiとして出力する。出力バッファ305は、論理シミュレーションモデル203内の論理回路LGの出力信号を遅延させて出力信号Ojとして出力する。
ゲートシミュレーションモデル310は、その機能ブロック203の回路情報を含まないブラックボックスであり、その機能ブロック203の入出力間の論理情報及び遅延情報を含み、HDLで記述されている。このゲートシミュレーションモデル310により、ゲートシミュレーションが可能になる。
図2の論理シミュレーションモデル202では、タイミングラッパは必要でなく、遅延は0又はデルタ遅延でよい。一方、図3のゲートシミュレーションモデル310では、レイアウト情報から抽出した遅延情報をタイミングラッパ311にアノテートし、実配線レベルでのゲートシミュレーションを行う。
図4は、図1のステップS108で生成されるネットリストの構成例を示す図である。階層401は図2の階層201に対応し、階層402は図2の階層202に対応する。
図4の回路が設計上で図2の回路と異なる点を説明する。クロック信号CLKは、階層401の外部でルートバッファ411を介してクロック信号CLKi及びCLKjに分岐される。これは、図1のステップS104におけるカスタマの設計段階のクロックツリー合成により階層402の外部クロック端子が増加する。クロックツリー合成は、例えばフリップフロップ211及び212に入力されるクロック信号のタイミングが同じになるように遅延調整するために行われる。
また、ネットリストでは、論理シミュレーションモデルと異なり、テスト入力信号SCAN−INの端子及びテスト出力信号SCAN−OUTの端子が階層402に設けられる。テスト信号SCAN−IN及びSCAN−OUTの端子は、階層402の機能ブロックの内部回路をテストするためにその内部回路に接続される。これは、図1のステップS108のベンダのレイアウト設計段階のDFT(Design For Test)処理によりScan又はBIST(Boundary Scan Test)等の入出力テスト端子が増加するものである。
ネットリストは、階層402の機能ブロックを用いた全体電子回路の回路情報を含む。すなわち、階層402の機能ブロック内のすべての回路情報及び遅延情報を含む。フリップフロップ211のクロック端子には、ルートバッファ411の出力クロック信号が、遅延時間αi1のバッファ、遅延時間αi2のバッファ及び遅延時間αi3のバッファを介して入力される。フリップフロップ212のクロック端子には、ルートバッファ411の出力クロック信号が、遅延時間αj1のバッファ、遅延時間αj2のバッファ及び遅延時間αj3のバッファを介して入力される。
入力信号Iiは、遅延時間βiのバッファを介して論理回路LGに入力される。入力信号Ijは、遅延時間βjのバッファを介して論理回路LGに入力される。出力信号Oiは、論理回路LGの出力信号が遅延時間γiのバッファを介して出力される信号である。出力信号Ojは、論理回路LGの出力信号が遅延時間γjのバッファを介して出力される信号である。
遅延時間αi1及びαj1のバッファは、ルートバッファ411の出力から階層401の入力までの間の遅延時間を表す。遅延時間αi2及びαj2のバッファは、階層401の入力から階層402の入力までの間の遅延時間を表す。遅延時間αi3、αj3、βi及びβjのバッファは、階層402の入力から階層402の初段回路入力までの間の遅延時間を表す。遅延時間γi及びγjのバッファは、階層402の最終段回路出力から階層402の出力までの間の遅延時間を表す。
以上のように、ネットリストは、図2の論理シミュレーションモデル202に比べて機能ブロック外の境界が変わることが多い。特に、クロックツリーに関してはレイアウト設計を行う毎に変わるため、予め定まった論理シミュレーションモデルをDSMとして提供することが困難である。端子の増加だけであれば図3のタイミングラッパ311を修正するだけで済むが、実際のレイアウトでは異なるクロック信号CLKi及びCLKjからの遅延が定義されるべきところを、図2の論理シミュレーションモデル202はクロック端子が1つしかなく、その縮退(クロック端子の数を減らすこと)に関するタイミング情報の修正を全ての入出力タイミング情報に関して行う必要がある。
以上のように、ネットリストは、論理シミュレーションモデルに比べ、設計上2点が異なる。第1は、図4のネットリストでは、クロックツリーが任意の階層で張られることである。第2は、DFT処理が行われることである。そのため、階層402としてはクロック信号CLKi,CLKjのクロック端子及びテスト信号SCAN−IN及びSCAN−OUTのテスト端子が増加する。クロックツリーは、階層401の内部で張られることもあるが、その外で張られるとしても一般性を失わないため、その場合を図4に示す。いずれにしろ、クロックツリーはある階層内で張られ、任意の階層にルートバッファ411がインスタンスされる。
図4の場合において、階層402での任意のクロック入力信号をCLKi,・・・,CLKjとする。それらが駆動するフリップフロップ211,212について、それぞれ階層402に出力を持つフリップフロップ213,214をとり、おのおのの出力端子Qの出力信号をOi及びOjとする。出力信号Oi及びOjの出力遅延時間をそれぞれγi及びγjとする。また、同様に階層402に入力を持つフリップフロップ211,212に対する入力信号をそれぞれIi及びIjとする。入力信号Ii及びIjの入力遅延時間をそれぞれβi及びβjとする。
出力信号Oiの出力遅延時間γiはクロック信号CLKiに依存し、出力信号Ojの出力遅延時間γjはクロック信号CLKjに依存する。入力信号Iiの入力に関するフリップフロップ211のセットアップタイム及びホールドタイムはクロック信号CLKiに依存し、入力信号Ijの入力に関するフリップフロップ212のセットアップタイム及びホールドタイムはクロック信号CLKjに依存する。セットアップタイムは、フリップフロップにおいて入力端子Dの信号を確定してからクロック信号を立ち上げるまでの時間である。ホールドタイムは、フリップフロップにおいてクロック信号の立ち上がりから入力端子Dの信号を変えてはならない時間である。
ベンダは、カスタマに対してブラックボックスであるゲートシミュレーションモデルを提供する。上記のようにクロック信号CLKi,CLKjの端子が増加し、かつテスト信号SCAN−IN,SCAN−OUTの端子が増加すると、階層のタイミングラッパの端子を増加させる必要がある。ゲートシミュレーションモデルでは、ゲートシミュレーションが目的であることから、テスト信号SCAN−IN及びSCAN−OUTの端子は単に端子だけの増加のみで、テスト機能が動作しなくても問題ない。一方、クロック端子に関しては、図4のネットリストでは複数あったクロック端子が図5のゲートシミュレーションモデルでは1本に戻し、レイアウト情報から抽出した入力遅延時間及び出力遅延時間の補正を行う。
すなわち、ネットリストは、論理シミュレーションモデルに比べて、クロック端子及びテスト端子が増加する。その増加数は、レイアウト毎に変わり、定まっていない。そこで、ゲートシミュレーションモデルでは、論理シミュレーションモデルのクロック端子数を同じ又はそれに近い数とし、統一化を図る。
図5は、図1のステップS109で生成されるゲートシミュレーションモデル502の構成例を示す図であり、図4のネットリストを基に生成したゲートシミュレーションモデル502である。ゲートシミュレーションモデル502は、図4の階層402のネットリストに対応するものであり、図3のゲートシミュレーションモデル310と同様に論理シミュレーションモデル203にタイミングラッパ503を被せたものである。ゲートシミュレーションモデル502は、その機能ブロックの回路情報を含まないブラックボックスであり、その機能ブロックの入出力間の論理情報及び遅延情報を含む。
ゲートシミュレーションモデル502は、ゲートシミュレーションが目的であることから、テスト信号SCAN−IN及びSCAN−OUTの端子によるテスト機能が動作しなくても問題ないので、テスト信号SCAN−IN及びSCAN−OUTの端子は内部回路に接続されていない。
ゲートシミュレーションモデル502は、論理シミュレーションモデル203にタイミングラッパ503を被せたものである。図4のネットリストでは階層402が2つのクロック信号CLKi及びCLKjの端子を有していたが、このゲートシミュレーションモデル502では図2の論理シミュレーションモデル202と同様に1つのクロック信号CLKjの端子を有する。遅延時間αi2のバッファの出力クロック信号CLKiは、ゲートシミュレーションモデル502の外部で切断される。その代わりに、フリップフロップ211のクロック端子には、フリップフロップ212のクロック端子と同じく、クロック信号CLKjが遅延時間αj3のバッファを介して入力される。
タイミングラッパ503では、図4のネットリストの遅延時間βi,βj,γi,γjが遅延時間β'i,β'j,γ'i,γ'jに置き換えられる。フリップフロップ211のクロック端子に入力されるクロック信号が変わったことにより、その変化前後のクロック信号間の遅延情報は、フリップフロップ211の入力バッファの遅延時間β'i及び出力バッファの遅延時間γ'iに分配される。以下、遅延時間β'i,β'j,γ'i,γ'jの算出方法を説明する。
仮定として、図4のネットリストにおいて、ルートバッファ411から階層402内の任意のフリップフロップ211及び212等のクロック端子までの遅延時間の集合{Σαi,・・・,Σαj}において、Σαjが最小とする。ここで、Σαj=αj1+αj2+αj3とする。
Σαj≦Σαn(ただしn≠j)
また、以下の議論において、タイミングの基準点は任意の階層にインスタンスされるルートバッファ411の出力点とする。出力信号Oi(ただしi≠j)の出力タイミングToiは、図4より、フリップフロップ211のクロック信号の入力から出力端子Qの出力までの遅延時間をTQとすると、以下のようになる
Toi=Σαi+TQ+γi
ところが図5よりゲートシミュレーションモデル502のクロック端子が1本しかなくなり、フリップフロップ211のクロック信号の遅延はΣαjで表される。また、ゲートシミュレーションモデル502では回路情報がないので、フリップフロップ211の出力遅延時間TQは、0になる。したがって、図5では、出力タイミングToiは、次式で表される。
Toi=Σαj+(Σαi−Σαj)+0+(TQ+γi
=Σαj+(TQ+γi+Si) (ただしSi=Σαi−Σαjとした)
=Σαj+γ'i
従って、γ'iは、γi、TQとSiを使用して以下のような関係式で表すことができる。
γ'i =(TQ+γi+Si
よって、クロック信号をCLKiからCLKjに変更しても、出力遅延γiにクロック信号のルートバッファ411からのスキュー(遅延差Si=Σαi−Σαj)とフリップフロップ211の出力遅延TQを加えることで出力タイミングToiは補償できることがわかる。
同様に、図4のネットリストにおいて、入力信号Ii(ただしi≠j)に関するフリップフロップ211のセットアップタイムTsuiは、論理遅延をTlogic、クロック周期をTperiodとすると、次式で表される。
sui=Tperiod−Tlogic−βi +Σαi
ところが、図5では、ゲートシミュレーションモデル502のクロック端子が1本しかなくなり、フリップフロップ211のクロック信号の遅延時間はΣαjで表されるため、セットアップタイムTsuiは、次式で表される。
sui=Tperiod−Tlogic−βi+Σαj+(Σαi−Σαj
=Tperiod−Tlogic−(βi−Si)+Σαj (ただしSi=Σαi−Σαjとした)
=Tperiod−Tlogic−β'i+Σαj
以上のことから、遅延時間β'iは、以下のような関係式となる。
β'i=βi −Si
よって、フリップフロップ211のクロック入力信号をCLKiからCLKjに変更しても、入力遅延時間βiからクロック信号のルートバッファ411からのスキュー(遅延差Si=Σαi−Σαj)を差し引くことでセットアップタイムTsuiは補償できることがわかる。
同様に、図4において、入力信号Ii(ただしi≠j)に関するフリップフロップ211のホールドタイムThdiは、論理遅延をTlogicとすると、次式で表される。
hdi=Tlogic+βi−Σαi
ところが、図5では、ゲートシミュレーションモデル502のクロック端子が1本しかなくなり、フリップフロップ211のクロック信号の遅延時間はΣαjで表されるため、ホールドタイムThdiは、次式で表される。
hdi=Tlogic+βi−Σαj−(Σαi−Σαj
=Tlogic+(βi−Si)−Σαj (ただしSi=Σαi−Σαjとした)
=Tlogic+β'i−Σαj
以上のことから、遅延時間β'iは、以下のような関係式となる。
β'i =βi−Si
よって、フリップフロップ211のクロック信号をCLKiからCLKjに変更しても、入力遅延時間βiからクロック信号のルートバッファ411からのスキュー(遅延差Si=Σαi−Σαj)を差し引くことでホールドタイムThdiは補償できることがわかる。
また、前記までの議論から除いていた出力信号Ojの遅延時間Tojは、図5よりΣαjのクロック端子1本が残ることから、次式で表される。
Toj=Σαj+0+TQ+γj
=Σαj+γ'j
これより、遅延時間γ'jは、以下の関係式が成り立つ。
γ'j=TQ+γj
さらに、入力信号IjのセットアップタイムTsuj及びホールドタイムThdjは、以下の関係式となる。
suj=Tperiod−Tlogic−βj+Σαj
=Tperiod−Tlogic−β'j+Σαj
hdj=Tlogic+βj−Σαj
=Tlogic+β'j−Σαj
これより、遅延時間β'iは、以下のような関係式となる。
β'j=βj
以上のように、図5のゲートシミュレーションモデルにおける機能ブロックの外部クロック端子数を、図4のネットリストにおける機能ブロックの外部クロック端子数よりも少なくし、論理シミュレーションモデルにおける機能ブロックの外部クロック数と同一又はそれに近づけ、統一的処理を行うことができる。
図4のネットリストでは、フリップフロップ(論理回路)212のクロック端子に第1のクロック信号が入力され、フリップフロップ211のクロック端子に第2のクロック信号が入力される。第1及び第2のクロック信号は同一クロック信号から分岐された信号である。図5のゲートシミュレーションモデルでは、フリップフロップ211及び212のクロック端子に第1のクロック信号が入力される。第1及び第2のクロック信号間の遅延情報はフリップフロップ211の入力端子及び出力端子に接続される入力バッファ(β'i)及び出力バッファ(γ'i)に分配される。
フリップフロップ211の出力遅延情報TQは、フリップフロップ211の出力端子に接続される出力バッファ(γ'i)に分配される。フリップフロップ212の出力遅延情報TQは、フリップフロップ212の出力端子に接続される出力バッファ(γ'j)に分配される。
図6は、図1のステップS109で生成されるゲートシミュレーションモデル502の他の構成例を示す図である。図6のゲートシミュレーションモデルは、図5のものに対して、遅延時間αj3のバッファが削除された点が異なる。
この場合、遅延時間γ'i及びβ'iは、次式で表される。
γ'i =(TQ+γi+Si
β'i =βi−Si
ここで、Si=Σαi−(αj1+αj2)になる。
また、遅延時間γ'j及びβ'jは、次式で表される。
γ'j =(TQ+γj+Sj
β'j =βj−Sj
ここで、Sj=αj3になる。
また、同様に、遅延時間αj1及びαj2のバッファを削除し、遅延時間遅延時間γ'i、β'i、γ'j及びβ'jを計算するようにしてもよい。
以上のように、図4のネットリストでは、フリップフロップ212のクロック端子に第1のクロック信号が入力され、フリップフロップ211のクロック端子に第2のクロック信号が入力される。第1及び第2のクロック信号は同一クロック信号から分岐された信号である。図6のゲートシミュレーションモデル502では、フリップフロップ211及び212に第3のクロック信号が入力され、第1及び第3のクロック信号間の遅延情報はフリップフロップ212の入出力バッファ(β'j及びγ'j)に分配され、第2及び第3のクロック信号間の遅延情報はフリップフロップ211の入出力バッファ(β'i及びγ'i)に分配される。
図8(A)は、インバータ(ゲート)801及びその出力端子に接続される配線802を示す図である。SDFでは、インバータ801の遅延情報及び配線802の遅延情報を表現することができる。
図8(B)は、図4に対応し、図1のステップS108で生成されるネットリストの構成例を示す図である。インバータ811の出力端子及びインバータ813の入力端子は、配線812により接続される。インバータ811は、階層401の外に配置される。インバータ813は、遅延情報(時間)D1を有し、機能ブロック階層402の中に配置される。配線812は、遅延情報D2を有し、階層401及び402の境界に存在する。階層401及び402の境界において配線812の遅延情報を定義するとき、この境界においてSDFを分離する必要がある。しかし、ゲートシミュレーションモデル化により、受信側の階層402内のゲートが隠蔽されるため、配線812の遅延時間D2が定義できなくなる。
図8(C)は、図5に対応し、図1のステップS109で生成されるゲートシミュレーションモデル502の構成例を示す図であり、図8(B)のネットリストを基に生成される。ゲートシミュレーションモデル502は、図8(B)の機能ブロック階層402のネットリストに対応するものである。本実施形態では、上位階層401の最終段の配線812の遅延情報D2を削除し(0にし)、その遅延情報D2を下位階層502の初段ゲート813の遅延情報D1に加算する処理を行い、精度を保つ。ゲート813は、図5のタイミングラッパ503においてSDFの遅延情報として記述される。
以上のように、ゲートシミュレーションモデル対象の階層402と上位階層401を繋ぐ配線812の遅延情報はD2である。ゲートシミュレーションモデルの遅延情報を生成するとき、配線812の遅延情報D2をゲートシミュレーションモデル502内のゲート813の遅延情報D1に加算して含めてしまうことにより、シミュレーションモデルを含んだ設計情報と元の設計情報との遅延情報の等価性を一致させることができる。
ハードIPをDSMに置き換える場合、ゲートシミュレーションモデルの対象となる機能ブロック階層402と上位階層401の間の境界に存在する配線812の遅延情報D2をゲートシミュレーションモデル502内のゲート813の遅延情報D1に付加することにより、DSMの出力信号の変化タイミングを元のハードIPと正確に一致させることができる。これにより、実際のLSIの動作をゲートシミュレーションにおいて、より正確に再現することが可能となる。
図9は、図4に対応し、図1のステップS108で生成されるネットリストの構成例を示す図である。機能ブロック階層402は、例えば3個のD型フリップフロップ911〜913、否定論理積(NAND)回路921、否定論理和(NOR)回路922及び出力端子O1を有する。NAND回路921は、フリップフロップ911及び912の出力信号を入力し、そのNAND信号を出力する。NOR回路922は、NAND回路921の出力信号及びフリップフロップ913の出力信号を入力し、そのNOR信号を出力端子O1に出力する。ルートバッファ901は、機能ブロック階層402の外に設けられ、クロック信号CLKを増幅して出力する。
フリップフロップ911のクロック端子には、遅延時間α1のバッファを介してルートバッファ901の出力クロック信号が供給される。フリップフロップ912のクロック端子には、遅延時間α2のバッファを介してルートバッファ901の出力クロック信号が供給される。フリップフロップ913のクロック端子には、遅延時間α3のバッファを介してルートバッファ901の出力クロック信号が供給される。
出力端子O1には3つのフリップフロップ911〜913が接続されており、それぞれの出力端子Qの信号は別々の時間に別々の経路A1,A2,A3を通って出力端子O1に伝播する。機能ブロック階層402をDSMに置き換えた場合、フリップフロップ911〜913は見えなくなってしまい、出力端子O1に出力された信号が経路A1〜A3のうちのどの経路を通って出力されたものであるかという情報が削除されてしまう。
上記では、複数の回路の温度、電圧等のパラメータを変えて信号の伝わり方が最も遅くなる経路と最も早くなる経路を選択する方法を説明した。
しかし、本来は複数の経路A1〜A3があるため、DSMに置き換えた状態でゲートシミュレーションを行うと、出力端子O1において、DSMを置き換える前のシミュレーション結果と信号の変化タイミングにおいて不一致が生じることとなり、完全な一致シミュレーションを行うことができない。
この問題を解決するために、DSMに遅延制御用の端子を追加する。ゲートシミュレーションで使用されるSDFには、ブラックボックスの入力から出力までの経路上の信号遅延時間をセレクト信号に応じて選択的に変えることができる機能を記述する。DSMに追加した遅延制御用の端子にこのSDFの記述を割り当てる。このことにより、複数の経路A1〜A3のうちの有効になっているものを採用することが可能となる。
図10は、図5に対応し、図1のステップS109で生成されるゲートシミュレーションモデル502の構成例を示す図であり、図9のネットリストを基に生成される。ゲートシミュレーションモデル502は、図9の機能ブロック階層402のネットリストに対応するものであり、論理シミュレーションモデル203にタイミングラッパ503を被せたものである。
タイミングラッパ503は、遅延時間B1のバッファ、遅延時間B2のバッファ、遅延時間B3のバッファ及びセレクタ931を有する。遅延時間B1は、経路A1を通過して出力端子O1から出力信号が出力されるときの出力信号の遅延時間である。遅延時間B2は、経路A2を通過して出力端子O1から出力信号が出力されるときの出力信号の遅延時間である。遅延時間B3は、経路A3を通過して出力端子O1から出力信号が出力されるときの出力信号の遅延時間である。タイミングラッパ503は、SDFの遅延情報として記述してもよいし、上記のような回路情報そのものを記述してもよい。
NOR回路922の出力信号は、遅延時間B1のバッファ、遅延時間B2のバッファ及び遅延時間B3のバッファをそれぞれ介してセレクタ931に出力される。セレクタ931は、セレクト信号SELに応じて、その3つの入力信号のうちのいずれか1つを選択して出力端子O1に出力する。
ステートマシン932は、自己の状態信号及び入力信号を基に経路A1〜A3のうちのどの経路を介して信号が出力端子O1に出力されるかを示すセレクト信号SELを出力する。なお、セレクト信号SELは、ステートマシン932により生成される場合に限定されず、組み合わせ回路により生成してもよいし、外部信号そのものであってもよい。
これにより、経路A1を介して出力端子O1に出力信号が出力されるときには出力信号に遅延時間B1が付与され、経路A2を介して出力端子O1に出力信号が出力されるときには出力信号に遅延時間B2が付与され、経路A3を介して出力端子O1に出力信号が出力されるときには出力信号に遅延時間B3が付与される。
以上のように、図9のネットリストが同一出力端子O1に複数の経路A1〜A3の信号を出力可能な機能ブロック階層402を有する場合、図10のゲートシミュレーションモデル502は、複数の経路A1〜A3のうちの通過する経路に応じて出力端子O1から出力される信号の遅延時間B1〜B3を変化させる遅延情報を含む。これにより、全ての経路A1〜A3の信号の時間変化を元のハードIPとまったく同じにすることができる。
以上のように、本実施形態によれば、ベンダはカスタマに対してブラックボックスであるゲートシミュレーションモデルを提供するだけでよく、ネットリストを提供しなくてもよいため、機能ブロック(IP)の回路情報及び設計ノウハウの秘匿が可能になる。また、ゲートシミュレーションモデルは、ネットリストと異なり、回路情報がないので、ゲートシミュレーションの速度を向上させることができる。また、ゲートシミュレーションモデルは、入出力間の遅延情報のみ含めばよいので、そのサイズが小さくなり、必要なファイルサイズ及びメモリサイズを大幅に減少させることができる。
図7は、図1の処理を行うコンピュータのハードウエア構成例を示すブロック図である。ベンダはベンダのコンピュータで処理を行い、カスタマはカスタマのコンピュータで処理を行う。これらのコンピュータは、CAD(computer-aided design)により論理シミュレーションモデル、ネットリスト及びゲートシミュレーションモデルの生成等を行うことができる。バス701には、中央処理装置(CPU)702、ROM703、RAM704、ネットワークインタフェース705、入力装置706、出力装置707及び外部記憶装置708が接続されている。
CPU702は、データの処理及び演算を行うと共に、バス701を介して接続された上記の構成ユニットを制御するものである。ROM703には、予めブートプログラムが記憶されており、このブートプログラムをCPU702が実行することにより、コンピュータが起動する。外部記憶装置708にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM704にコピーされ、CPU702により実行される。このコンピュータは、コンピュータプログラムを実行することにより、図1のステップS101〜S114の処理等を行う。
外部記憶装置708は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置708は、コンピュータプログラム、論理シミュレーションモデル、ネットリスト及びゲートシミュレーションモデル等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
ネットワークインタフェース705は、ネットワークに対してコンピュータプログラム及びゲートシミュレーションモデル等を入出力することができる。すなわち、ベンダ及びカスタマのコンピュータ間で論理シミュレーションモデル及びゲートシミュレーションモデル等の送受信を行うことができる。入力装置706は、例えばキーボード及びポインティングデバイス(マウス)等であり、各種指定又は入力等を行うことができる。出力装置707は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態は、例えば以下のように種々の適用が可能である。
(付記1)
機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップと、
前記ネットリストを基に回路情報を削除し、前記機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップと
を有するシミュレーションモデル生成方法。
(付記2)
前記ゲートシミュレーションモデルは、前記機能ブロックの遅延情報が前記機能ブロックの入出力バッファで表現される付記1記載のシミュレーションモデル生成方法。
(付記3)
前記ゲートシミュレーションモデルにおける前記機能ブロックの外部端子数は、前記ネットリストにおける前記機能ブロックの外部端子数よりも少ない付記2記載のシミュレーションモデル生成方法。
(付記4)
前記機能ブロックは第1及び第2の論理回路を含み、
前記ネットリストでは、前記第1の論理回路に第1の信号が入力され、前記第2の論理回路に第2の信号が入力され、前記第1及び第2の信号は同一信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第1及び第2の論理回路に前記第1の信号が入力され、前記第1及び第2の信号間の遅延情報は前記第2の論理回路の入出力バッファに分配される付記3記載のシミュレーションモデル生成方法。
(付記5)
前記第1及び第2の信号は、第1及び第2のクロック信号である付記4記載のシミュレーションモデル生成方法。
(付記6)
前記第1及び第2の論理回路は、クロック端子、入力端子及び出力端子を含む第1及び第2のフリップフロップであり、
前記ネットリストでは、前記第1のフリップフロップのクロック端子に第1のクロック信号が入力され、前記第2のフリップフロップのクロック端子に第2のクロック信号が入力され、前記第1及び第2のクロック信号は同一クロック信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第1及び第2のフリップフロップのクロック端子に前記第1のクロック信号が入力され、前記第1及び第2のクロック信号間の遅延情報は前記第2のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配される付記5記載のシミュレーションモデル生成方法。
(付記7)
前記第1のフリップフロップの出力遅延情報は、前記第1のフリップフロップの出力端子に接続される出力バッファに分配され、
前記第2のフリップフロップの出力遅延情報は、前記第2のフリップフロップの出力端子に接続される出力バッファに分配される付記6記載のシミュレーションモデル生成方法。
(付記8)
前記第1及び第2のクロック信号は、前記機能ブロックの外部で同一クロック信号から分岐された信号であり、前記機能ブロックの異なる外部クロック端子に入力される付記7記載のシミュレーションモデル生成方法。
(付記9)
さらに、前記機能ブロックの回路情報を含まず、前記機能ブロックの入出力間の論理情報を含み、前記機能ブロックの論理検証を行うための論理シミュレーションモデルを生成するステップを有し、
前記ゲートシミュレーションモデルを生成するステップは、前記論理シミュレーションモデルに遅延情報を付加することによりゲートシミュレーションモデルを生成する付記8記載のシミュレーションモデル生成方法。
(付記10)
前記ゲートシミュレーションモデルにおける前記機能ブロックの外部クロック端子数は、前記論理シミュレーションモデルにおける前記機能ブロックの外部クロック端子数と同じである付記9記載のシミュレーションモデル生成方法。
(付記11)
前記ネットリストでは前記機能ブロックは内部回路をテストするために前記内部回路に接続されるテスト端子を有し、
前記ゲートシミュレーションモデルでは前記機能ブロックのテスト端子は内部回路に接続されていない付記10記載のシミュレーションモデル生成方法。
(付記12)
前記遅延情報は、前記機能ブロックの境界に存在する配線の遅延情報を含む付記1記載のシミュレーションモデル生成方法。
(付記13)
前記機能ブロックは第1及び第2の論理回路を含み、
前記ネットリストでは、前記第1の論理回路に第1の信号が入力され、前記第2の論理回路に第2の信号が入力され、前記第1及び第2の信号は同一信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第1及び第2の論理回路に第3の信号が入力され、前記第1及び第3の信号間の遅延情報は前記第1の論理回路の入出力バッファに分配され、前記第2及び第3の信号間の遅延情報は前記第2の論理回路の入出力バッファに分配される付記3記載のシミュレーションモデル生成方法。
(付記14)
前記第1〜第3の信号は、第1〜第3のクロック信号である付記13記載のシミュレーションモデル生成方法。
(付記15)
前記第1及び第2の論理回路は、クロック端子、入力端子及び出力端子を含む第1及び第2のフリップフロップであり、
前記ネットリストでは、前記第1のフリップフロップのクロック端子に第1のクロック信号が入力され、前記第2のフリップフロップのクロック端子に第2のクロック信号が入力され、前記第1及び第2のクロック信号は同一クロック信号から分岐された信号であり、
前記ゲートシミュレーションモデルでは、前記第1及び第2のフリップフロップのクロック端子に第3のクロック信号が入力され、前記第1及び第3のクロック信号間の遅延情報は前記第1のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配され、前記第2及び第3のクロック信号間の遅延情報は前記第2のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配される付記14記載のシミュレーションモデル生成方法。
(付記16)
前記第1のフリップフロップの出力遅延情報は、前記第1のフリップフロップの出力端子に接続される出力バッファに分配され、
前記第2のフリップフロップの出力遅延情報は、前記第2のフリップフロップの出力端子に接続される出力バッファに分配される付記15記載のシミュレーションモデル生成方法。
(付記17)
前記第1及び第2のクロック信号は、前記機能ブロックの外部で同一クロック信号から分岐された信号であり、前記機能ブロックの異なる外部クロック端子に入力される付記16記載のシミュレーションモデル生成方法。
(付記18)
さらに、前記機能ブロックの回路情報を含まず、前記機能ブロックの入出力間の論理情報を含み、前記機能ブロックの論理検証を行うための論理シミュレーションモデルを生成するステップを有し、
前記ゲートシミュレーションモデルを生成するステップは、前記論理シミュレーションモデルに遅延情報を付加することによりゲートシミュレーションモデルを生成する付記17記載のシミュレーションモデル生成方法。
(付記19)
前記ゲートシミュレーションモデルにおける前記機能ブロックの外部クロック端子数は、前記論理シミュレーションモデルにおける前記機能ブロックの外部クロック端子数と同じである付記18記載のシミュレーションモデル生成方法。
(付記20)
前記ネットリストは、同一出力端子に複数の経路の信号を出力可能な機能ブロックを有し、
前記ゲートシミュレーションモデルは、前記複数の経路のうち通過する経路に応じて前記出力端子から出力される信号の遅延時間を変化させる遅延情報を含む付記1記載のシミュレーションモデル生成方法。
本発明の実施形態による、ベンダ及びカスタマが協調して半導体集積回路(電子回路)を作成する処理例の流れを示すフローチャートである。 図1のステップS101で生成される論理シミュレーションモデルの構成例を示す図である。 図1のステップS109で生成されるゲートシミュレーションモデルの構成例を示す図である。 図1のステップS108で生成されるネットリストの構成例を示す図である。 図1のステップS109で生成される他のゲートシミュレーションモデルの構成例を示す図である。 図1のステップS109で生成される他のゲートシミュレーションモデルの構成例を示す図である。 コンピュータのハードウエア構成例を示すブロック図である。 図8(A)〜(C)は機能ブロックの境界の配線の遅延情報を示す図である。 図1のステップS108で生成される他のネットリストの構成例を示す図である。 図1のステップS109で生成される他のゲートシミュレーションモデルの構成例を示す図である。
符号の説明
201 階層
202 論理シミュレーションモデル
203 機能ブロックの論理シミュレーションモデル
211〜214 フリップフロップ
301〜303 入力バッファ
304,305 出力バッファ
310 ゲートシミュレーションモデル
311 タイミングラッパ
401,402 階層
411 ルートバッファ
502 ゲートシミュレーションモデル
503 タイミングラッパ
701 バス
702 CPU
703 ROM
704 RAM
705 ネットワークインタフェース
706 入力装置
707 出力装置
708 外部記憶装置

Claims (10)

  1. 機能ブロックを用いた電子回路の回路情報を含むネットリストを生成するステップと、
    前記ネットリストを基に回路情報を削除し、前記機能ブロックの入出力間の論理情報及び遅延情報を含むタイミング検証を行うためのゲートシミュレーションモデルを生成するステップと
    を有するシミュレーションモデル生成方法。
  2. 前記ゲートシミュレーションモデルは、前記機能ブロックの遅延情報が前記機能ブロックの入出力バッファで表現される請求項1記載のシミュレーションモデル生成方法。
  3. 前記ゲートシミュレーションモデルにおける前記機能ブロックの外部端子数は、前記ネットリストにおける前記機能ブロックの外部端子数よりも少ない請求項2記載のシミュレーションモデル生成方法。
  4. 前記機能ブロックは第1及び第2の論理回路を含み、
    前記ネットリストでは、前記第1の論理回路に第1の信号が入力され、前記第2の論理回路に第2の信号が入力され、前記第1及び第2の信号は同一信号から分岐された信号であり、
    前記ゲートシミュレーションモデルでは、前記第1及び第2の論理回路に前記第1の信号が入力され、前記第1及び第2の信号間の遅延情報は前記第2の論理回路の入出力バッファに分配される請求項3記載のシミュレーションモデル生成方法。
  5. 前記第1及び第2の信号は、第1及び第2のクロック信号である請求項4記載のシミュレーションモデル生成方法。
  6. 前記第1及び第2の論理回路は、クロック端子、入力端子及び出力端子を含む第1及び第2のフリップフロップであり、
    前記ネットリストでは、前記第1のフリップフロップのクロック端子に第1のクロック信号が入力され、前記第2のフリップフロップのクロック端子に第2のクロック信号が入力され、前記第1及び第2のクロック信号は同一クロック信号から分岐された信号であり、
    前記ゲートシミュレーションモデルでは、前記第1及び第2のフリップフロップのクロック端子に前記第1のクロック信号が入力され、前記第1及び第2のクロック信号間の遅延情報は前記第2のフリップフロップの入力端子及び出力端子に接続される入力バッファ及び出力バッファに分配される請求項5記載のシミュレーションモデル生成方法。
  7. 前記第1のフリップフロップの出力遅延情報は、前記第1のフリップフロップの出力端子に接続される出力バッファに分配され、
    前記第2のフリップフロップの出力遅延情報は、前記第2のフリップフロップの出力端子に接続される出力バッファに分配される請求項6記載のシミュレーションモデル生成方法。
  8. 前記第1及び第2のクロック信号は、前記機能ブロックの外部で同一クロック信号から分岐された信号であり、前記機能ブロックの異なる外部クロック端子に入力される請求項7記載のシミュレーションモデル生成方法。
  9. 前記遅延情報は、前記機能ブロックの境界に存在する配線の遅延情報を含む請求項1記載のシミュレーションモデル生成方法。
  10. 前記ネットリストは、同一出力端子に複数の経路の信号を出力可能な機能ブロックを有し、
    前記ゲートシミュレーションモデルは、前記複数の経路のうち通過する経路に応じて前記出力端子から出力される信号の遅延時間を変化させる遅延情報を含む請求項1記載のシミュレーションモデル生成方法。

JP2005063752A 2004-09-30 2005-03-08 シミュレーションモデル生成方法 Expired - Fee Related JP4530883B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005063752A JP4530883B2 (ja) 2004-09-30 2005-03-08 シミュレーションモデル生成方法
US11/116,406 US7720664B2 (en) 2004-09-30 2005-04-28 Method of generating simulation model while circuit information is omitted

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004287463 2004-09-30
JP2005063752A JP4530883B2 (ja) 2004-09-30 2005-03-08 シミュレーションモデル生成方法

Publications (2)

Publication Number Publication Date
JP2006127449A true JP2006127449A (ja) 2006-05-18
JP4530883B2 JP4530883B2 (ja) 2010-08-25

Family

ID=36100338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005063752A Expired - Fee Related JP4530883B2 (ja) 2004-09-30 2005-03-08 シミュレーションモデル生成方法

Country Status (2)

Country Link
US (1) US7720664B2 (ja)
JP (1) JP4530883B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100873885B1 (ko) 2006-06-28 2008-12-15 후지쯔 가부시끼가이샤 설계 검증 장치, 설계 검증 방법 및 cad 시스템

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037278A (ja) * 2007-07-31 2009-02-19 Nec Corp 動作タイミング検証装置、方法、及び、プログラム
US7895029B2 (en) * 2007-10-30 2011-02-22 International Business Machines Corporation System and method of automating the addition of RTL based critical timing path counters to verify critical path coverage of post-silicon software validation tools
US8549461B2 (en) * 2010-12-09 2013-10-01 Synopsys, Inc. Generation of independent logical and physical hierarchy
US11263379B2 (en) * 2019-06-18 2022-03-01 Samsung Electronics Co., Ltd. Hierarchical clock tree implementation
KR20200144462A (ko) * 2019-06-18 2020-12-29 삼성전자주식회사 계층적 클럭 트리 구현

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04113469A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 論理シミュレーションプロセッサ
JPH05266124A (ja) * 1992-03-19 1993-10-15 Fujitsu Ltd 論理回路シミュレーション用回路素子ライブラリの作成方法
JPH08263530A (ja) * 1995-02-28 1996-10-11 Nec Corp 論理シミュレーション用モデルの作成方法
JPH10340291A (ja) * 1997-06-06 1998-12-22 Nec Corp 論理シミュレーション用モデルの作成方法
JP2000339359A (ja) * 1999-05-28 2000-12-08 Nec Corp 論理シミュレーション方法及び装置
JP2002245112A (ja) * 2001-02-19 2002-08-30 Fujitsu Ltd 素子モデル自動修正プログラム、素子モデル自動修正装置および素子モデル自動修正方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
JPH06194415A (ja) * 1992-09-30 1994-07-15 American Teleph & Telegr Co <Att> 論理回路の試験方法とその装置
JPH1183959A (ja) * 1997-09-09 1999-03-26 Mitsubishi Electric Corp テストパターン発生装置、テストパターン発生方法およびテストパターン発生プログラムを記録した媒体
JP2004171367A (ja) * 2002-11-21 2004-06-17 Matsushita Electric Ind Co Ltd 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04113469A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 論理シミュレーションプロセッサ
JPH05266124A (ja) * 1992-03-19 1993-10-15 Fujitsu Ltd 論理回路シミュレーション用回路素子ライブラリの作成方法
JPH08263530A (ja) * 1995-02-28 1996-10-11 Nec Corp 論理シミュレーション用モデルの作成方法
JPH10340291A (ja) * 1997-06-06 1998-12-22 Nec Corp 論理シミュレーション用モデルの作成方法
JP2000339359A (ja) * 1999-05-28 2000-12-08 Nec Corp 論理シミュレーション方法及び装置
JP2002245112A (ja) * 2001-02-19 2002-08-30 Fujitsu Ltd 素子モデル自動修正プログラム、素子モデル自動修正装置および素子モデル自動修正方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100873885B1 (ko) 2006-06-28 2008-12-15 후지쯔 가부시끼가이샤 설계 검증 장치, 설계 검증 방법 및 cad 시스템

Also Published As

Publication number Publication date
US20060069539A1 (en) 2006-03-30
JP4530883B2 (ja) 2010-08-25
US7720664B2 (en) 2010-05-18

Similar Documents

Publication Publication Date Title
Churiwala et al. Designing with Xilinx® FPGAs
US9111060B2 (en) Partitioning designs to facilitate certification
US20140165022A1 (en) Relative timing architecture
JP4530883B2 (ja) シミュレーションモデル生成方法
JP2006048525A (ja) シミュレーション方法
US8650513B2 (en) Reducing x-pessimism in gate-level simulation and verification
JP2010531001A (ja) 自動回路設計及びシミュレーションに使用するための技術
JP2005293163A (ja) 消費電力計算方法及び装置
JP2006309643A (ja) 遅延計算装置
US7254793B2 (en) Latch modeling technique for formal verification
JP5040758B2 (ja) シミュレーション装置、シミュレーション方法及びプログラム
US9449127B1 (en) System for verifying timing constraints of IC design
JP4200465B2 (ja) 半導体集積回路の設計方法及び設計システム
Chang et al. Logic synthesis and circuit customization using extensive external don't-cares
US9390292B2 (en) Encrypted digital circuit description allowing circuit simulation
JP2007233842A (ja) リセット動作検証回路の生成方法
JP2006268165A (ja) 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体
US11556676B2 (en) Scalable formal security verification of circuit designs
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
JP5849973B2 (ja) データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム
JP2006285860A (ja) シミュレーションモデル生成方法およびその装置
JP2007241836A (ja) マルチサイクルパス検証方法
EP2793149B1 (en) Partitioning designs to facilitate certification
Ganai et al. Synthesizing" Verification Aware" Models: Why and How?

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080125

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100205

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: 20100511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100608

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140618

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees