JP2012230605A - キャラクタライズ装置およびそのコンピュータ・プログラム - Google Patents
キャラクタライズ装置およびそのコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2012230605A JP2012230605A JP2011099360A JP2011099360A JP2012230605A JP 2012230605 A JP2012230605 A JP 2012230605A JP 2011099360 A JP2011099360 A JP 2011099360A JP 2011099360 A JP2011099360 A JP 2011099360A JP 2012230605 A JP2012230605 A JP 2012230605A
- Authority
- JP
- Japan
- Prior art keywords
- characteristic value
- hard macro
- dynamic verification
- input
- value
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
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)
- Debugging And Monitoring (AREA)
Abstract
【課題】高速に信頼性の高いハードマクロの特性値を抽出することが可能なキャラクタライズ装置を提供すること。
【解決手段】特性値抽出部32は、ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する。動的検証部34は、特性値抽出部32によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証する。したがって、動的検証に要する時間を短くすることができ、高速に信頼性の高いハードマクロの特性値を抽出することが可能となる。
【選択図】図2
【解決手段】特性値抽出部32は、ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する。動的検証部34は、特性値抽出部32によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証する。したがって、動的検証に要する時間を短くすることができ、高速に信頼性の高いハードマクロの特性値を抽出することが可能となる。
【選択図】図2
Description
本発明は、論理回路の検証を行なう技術に関し、特に、SRAM(Static Random Access Memory)などのハードマクロの特性抽出を行なうキャラクタライズ装置およびそのコンピュータ・プログラムに関する。
近年、半導体集積回路の高機能化、多機能化が進んでおり、CPU(Central Processing Unit)、周辺I/O、SRAM等のハードマクロが1つの半導体チップに搭載されることが多くなってきている。このような半導体装置において、SRAMなどのハードマクロのキャラクタライズ(特性抽出)を高速に行なう手法が必要になってくる。これに関連する技術として、下記の特許文献1〜4に開示された発明がある。
特許文献1は、安価なCPUコストで、且つ高精度のタイミング検証を行うタイミング検証方法を提供することを目的とする。データ信号およびクロック信号の各入力時刻および各入力波形なまりを調べ、データ信号およびクロック信号の各入力波形なまりを各関数の変数にそれぞれ入力しデータ信号遅延時間およびクロック信号遅延時間をそれぞれ計算する。そして、データ信号およびクロック信号の各入力時刻とデータ信号遅延時間およびクロック信号遅延時間とから論理回路内のデータ保持素子の内部ノードにおけるデータ信号とクロック信号との到着時刻差を計算する。また、タイミング制約値と到着時刻差を比較し、データ信号およびクロック信号の入力時刻のタイミング制約違反を検出する。
特許文献2は、パラメタライズドメモリの特性値を短時間で高精度に抽出するためのパラメタライズドメモリの回路縮退方法及び論理セルライブラリ生成方法を提供することを目的とする。パラメタライズドメモリのレイアウトデータからリーフセルのネットリストを生成する際に、リーフセルのトランジスタの寄生抵抗及び寄生容量を抽出し、リーフセルを縮退した等価回路に置き換える。上記リーフセルを組み合わせてメモリ全体の等価回路を作成する際に、特性計算に影響のない部分を除去するとともに、特性計算に影響する部分で簡単化できる部分を縮退する。そして、入力ベクトルや解析条件を含む回路シュミレーション実行ネットリストを生成し、回路シュミレーションを実行し、その実行結果に基づいて特性計算を行い論理セルライブラリを自動生成する。
特許文献3は、半導体集積回路装置に内蔵されたメモリーなど機能マクロの入力端子の入力セットアップ・ホールドタイミング値を精度良く測定することを目的とする。セレクタ回路とFF回路とを設け、機能マクロが正常に動作する状態にして外部クロック信号と外部入力信号のタイミングを固定し、セレクタ回路で機能マクロのクロック端子2の信号を選択させ、FF回路に測定用クロック信号を位相をずらしながら与えてFF回路の出力が変移するタイミングを検出する。そして、その時点での測定用クロック信号のタイミングTbを観測し、セレクタ回路で機能マクロの入力端子の信号を選択させ、FF回路に測定用クロック信号を位相をずらしながら与えてFF回路の出力が変移するタイミングを検出し、その時点での測定用クロック信号のタイミングTaを観測し、タイミングTaとTbとの時間差を算出する。
特許文献4は、多数の入出力経路を有する回路のタイミングライブラリ作成における回路シミュレーションの回数を低減し、タイミングライブラリ作成に要する時間を低減することを目的とする。タイミングライブラリ作成装置が4ビットレジスタ回路のタイミングライブラリを作成する場合、一部の1ビットレジスタについてのみ、タイミングライブラリに含まれるすべての動作条件でシミュレーションが行われ、その結果得られた遅延値やタイミング制約値が、他の1ビットレジスタの遅延値やタイミング制約値でもあるとして、タイミングライブラリが作成される。シミュレーションが行われる一部の1ビットレジスタは、まず、4つの1ビットレジスタについて、タイミングライブラリに含まれる複数の動作条件のうちの一部の動作条件でシミュレーションが行われ、それにより求められた遅延値やタイミング制約値が最大であるものが選択される。
特許文献5は、静的タイミング検証部が、第1種ブロックについて、第1種ブロック接続情報、クロック情報、およびデータ入力タイミング情報を参照しつつ、従来周知の手法で静的タイミング検証を実行する。テストパターン生成部は、静的タイミング検証結果とクロック情報とにもとづいて、第2種ブロックに対する動的タイミング検証を行うための入力テストパターンを生成する。そして、動的タイミング検証部は、第2種ブロックについて、入力テストパターンにもとづいて、動的タイミング検証を行う。
ハードマクロのキャラクタライズ手法において用いられる遅延差抽出方法は、後述のように大きく静的な遅延差抽出と動的な遅延差抽出とに分けることができる。静的な遅延差抽出は、高速に遅延計算を行なうことができるが、信頼性が低いといった問題点がある。それに対して、動的な遅延差抽出は、信頼性が高いが、遅延計算に長時間を要するといった問題点がある。
半導体集積回路の高集積化が進んでおり、より高速にハードマクロの特性抽出が行なえるキャラクタライズ手法に対する要望が高まっているが、上述の特許文献1〜5に開示された発明を用いたとしても、このような高速なキャラクタライズ手法を実現することができない。
本発明は、上記問題点を解決するためになされたものであり、その目的は、高速に信頼性の高いハードマクロの特性値を抽出することが可能なキャラクタライズ装置およびそのコンピュータ・プログラムを提供することである。
本発明の一実施例によれば、ハードマクロの特性値を抽出するためのキャラクタライズ装置が提供される。特性値抽出部は、ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する。動的検証部は、特性値抽出部によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証する。
本発明の一実施例によれば、動的検証部が、特性値抽出部によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証するので、動的検証に要する時間を短くすることができる。したがって、高速に信頼性の高いハードマクロの特性値を抽出することが可能となる。
一般に、キャラクタライズ手法において用いられる遅延差抽出方法は、大きく「静的な遅延差抽出」と「動的な遅延差抽出」とに分類される。
静的な遅延差抽出とは、シミュレーションを実行しないで遅延値を得るものであり、たとえば接続情報(ネットリスト)に基づく経路探索を挙げることができる。この静的な遅延差抽出は、シミュレーションを実行しないため高速に行なうことができるが、信頼性が低いといった特徴を有している。
一方、動的な遅延差抽出とは、シミュレーションを実行して遅延値を得るものである。この動的な遅延差抽出は、シミュレーションを実行するため長時間を要するが、信頼性が高いといった特徴を有している。
ここで、シミュレーションとは、ゲートレベル(インバータ、NANDゲート、フリップフロップなどのセル単位)またはより詳細なトランジスタレベルで遅延計算を行なうものである。
ゲートレベルのシミュレーションにおいては、半導体チップの設計で使用する各セルに対して、ある入力に対してどの程度遅延して出力するかを示す遅延情報が予め与えられており、この各セルの遅延情報を用いて、その設計された回路の遅延値などの計算が行なわれる。
トランジスタレベルのシミュレーションにおいては、そのトランジスタの動作に関するパラメータ、たとえばゲート電圧、ドレイン電圧に対してトランジスタにどの程度の電流が生じるかの計算式が予め与えられており、そのパラメータを用いて遅延値などの計算が行なわれる。したがって、トランジスタレベルのシミュレーションは、ゲートレベルのシミュレーションと比較して正確な遅延計算が行なえるが、処理量が大きくなる。
以下、静的経路探索、動的検証などの用語が用いられるが、基本的には上記のようにシミュレーションを実行するか否かによって、静的であるか、または動的であるかが分類される。
図1は、本発明の実施の形態におけるキャラクタライズ装置の構成例を示すブロック図である。キャラクタライズ装置は、一般的なコンピュータによって実現され、コンピュータ本体1、ディスプレイ装置2、FD(Flexible Disk)4が装着されるFDドライブ3、キーボード5、マウス6、CD−ROM(Compact Disc-Read Only Memory)8が装着されるCD−ROM装置7、およびネットワーク通信装置9を含む。ハードマクロのキャラクタライズのためのプログラムは、FD4またはCD−ROM8等の記録媒体によって供給される。プログラムがコンピュータ本体1によって実行されることにより、ハードマクロのキャラクタライズが行なわれる。また、プログラムは他のコンピュータより通信回線を経由し、コンピュータ本体1に供給されてもよい。
また、コンピュータ本体1は、CPU10、ROM(Read Only Memory)11、RAM(Random Access Memory)12およびハードディスク13を含む。CPU10は、ディスプレイ装置2、FDドライブ3、キーボード5、マウス6、CD−ROM装置7、ネットワーク通信装置9、ROM11、RAM12またはハードディスク13との間でデータを入出力しながら処理を行なう。FD4またはCD−ROM8に記録されたプログラムは、CPU10によりFDドライブ3またはCD−ROM装置7を介してハードディスク13に格納される。CPU10は、ハードディスク13から適宜プログラムをRAM12にロードして実行することによって、ハードマクロのキャラクタライズが行なわれる。
図2は、本発明の実施の形態におけるキャラクタライズ装置の機能的構成を示すブロック図である。本実施の形態におけるキャラクタライズ装置は、図1に示すコンピュータが上記プログラムを実行することによって実現され、ベクタテンプレート格納ファイル31と、特性値抽出部32と、ライブラリ生成部33と、動的検証部34と、ライブラリ格納ファイル35と、検証結果格納ファイル36とを含む。
特性値抽出部32は、ベクタテンプレート格納ファイル31に格納されるベクタテンプレートを用いてシミュレーション入力ファイルを生成して静的経路探索を行ない、セットアップ時間、ホールド時間、遅延時間などのハードマクロの特性値を抽出する。なお、ベクタテンプレートとは、値を設定することにより、信号波形に所望のスルーを付加したり、所望のセットアップ時間およびホールド時間だけずらした信号波形を生成したりするためのテンプレートである。
ライブラリ生成部33は、特性値抽出部32によって抽出された特性値からセットアップ時間およびホールド時間のテーブルを作成し、ライブラリとしてライブラリ格納ファイル35に格納する。
動的検証部34は、ライブラリ格納ファイル35に格納されたライブラリを参照してセットアップ時間およびホールド時間を抽出し、動的検証を行なって検証結果を検証結果格納ファイル36に格納する。
図3は、本発明の実施の形態におけるキャラクタライズ装置による特性抽出の対象となるハードマクロを含んだ回路の一例を示す図である。この回路は、バッファ21〜23と、フリップフロップ24と、AND回路25〜29と、ハードマクロ(H/M)30とを含む。
一般に、半導体製品のサインオフ検証で使用される静的タイミング検証(Static Timing Analysis)の検証単位は、Latch to Latch間であることが多い。図3に示すように、フリップフロップ24の出力がAND回路25〜29を経てハードマクロ30に入力される回路構成においては、ハードマクロ30が終点になることが多い。そのため、ハードマクロ30のタイミング制約を高速、高精度に抽出してライブラリからマージンを削除することが重要になる。
図4は、本発明の実施の形態におけるキャラクタライズ装置を用いた経路探索の処理手順を説明するためのフローチャートである。なお、以下の説明においては、ハードマクロ30がSRAMの場合について説明する。
まず、人手によりモード指定、フォルスパス指定などを行ない、経路探索設定を行なう(S11)。ここで、モード設定とは、SRAMの動作モードの設定を意味しており、リードモードおよびライトモードがある。また、フォルスパス指定とは、経路探索を行なわないパスの指定を意味している。
次に、特性値抽出部32は、静的な経路探索を行なって特性抽出を行なう。そして、ライブラリ生成部33は、特性値抽出部32によって抽出された特性値からライブラリを作成してライブラリ格納ファイル35に格納する(S12)。この静的な経路探索は、静的なトランジスタレベルのパス検索であり、その詳細は後述する。ここで抽出される特性として、セットアップ時間、ホールド時間、遅延時間などが挙げられる。
次に、動的検証部34は、ライブラリ生成部33によって生成されたライブラリを用いて動的自動検証を行ない、その検証結果にエラーがあるか否か(NGがあるか否か)を判定する(S14)。エラーがなければ(S14,No)、処理を終了する。
また、エラーがあれば(S14,Yes)、人手により経路確認を行ない(S15)、経路探索設定の見直しを検討する(S16)。たとえば、経路探索結果から、エラーとなったゲーテッド、スルーラッチ、特殊なトポロジなどの誤探索し易い部分を抽出し、それらの部分の状態を動的自動検証のエラー判定に追加したり、フォルスパスに指定したりする。このように、実際の動作状況確認によって、的確な設定修正が行なえるようになる。
そして、ステップS11以降の処理をエラーがなくなるまで繰り返す。なお、経路確認と動的検証結果から的確な修正情報が得られるため、繰り返し回数は少なくなり、ほとんど1回で済むようになる。
図5は、図4に示す特性抽出処理(S12)の詳細を説明するためのフローチャートである。まず、ユーザが生成したいテーブルサイズ(n×n)のインデックス(入力スルー)を指定する(S21)。ここで、データスルーをSc1〜Scn、クロックスルーをSr1〜Srnとする。
次に、特性値抽出部32は、変数iに“0”を設定し(S22)、変数iをインクリメントする(S23)。そして、所望のスルー(Sci,Sri)を得るための容量を決定する(S24)。
遅延値は、入力信号波形の傾き(スルー)によっても変わってくる。正確な遅延値を得るためには、データおよびクロックの信号波形に様々なスルーを付加し、それをハードマクロ30に入力する必要がある。様々なスルーを得るために必要な容量値が予め決められており、その容量値を変えることによって所望のスルーを信号波形に与える。
ベクタテンプレート格納ファイル31に格納されるテンプレートは、容量値を与えることによって信号波形に所望のスルーが与えられるように作成されている。特性値抽出部32は、所望のスルー(Sci,Sri)が得られる容量値をテンプレートに設定することにより、シミュレーション入力ファイルを生成する(S25)。
次に、特性値抽出部32は、生成したシミュレーション入力ファイルを用いてシミュレーションを実行してデータ遅延(Tci)およびクロック遅延(Tri)を測定し、測定結果を測定結果格納ファイル37に格納する(S26)。
図6は、ハードマクロ30におけるデータ遅延(Tci)およびクロック遅延(Tri)を説明するための図である。図6に示すハードマクロ30においては、データ(DATA)およびクロック(CLK)が、組合せ回路41を経てフリップフロップ/ラッチ42やゲート43に入力されている。ステップS26においては、ユーザによって指定された観測点のデータ遅延(Tci)およびクロック遅延(Tri)が測定される。
なお、外部端子であるデータ(DATA)およびクロック(CLK)から観測点までに複数の経路がある場合には、それぞれの経路についてデータ遅延(Tci)およびクロック遅延(Tri)が測定される。
次に、特性値抽出部32は、変数iがnと等しいか否かを判定する(S27)。変数iがnよりも小さければ(S27,No)、等しくなるまでステップS23〜S26の処理を繰り返す。
また、変数iがnと等しければ(S27,Yes)、特性値抽出部32は、変数iに“0”を代入し(S28)、変数iをインクリメントする(S29)。そして、変数jに“0”を代入し(S30)、変数jをインクリメントする(S31)。
次に、特性値抽出部32は、測定結果格納ファイル37から測定結果(Tci,Trj)を読み出し、特性値であるセットアップ時間およびホールド時間を算出して計算結果格納ファイル38に格納する(S32)。ここで、セットアップ時間(setup)およびホールド時間(hold)の算出方法について簡単に説明する。
データ(DATA)から観測点までに複数の経路がある場合、それらの経路の遅延の最大値をMax(Tci)とし、最小値をMin(Tci)とする。同様に、クロック(CLK)から観測点までに複数の経路がある場合、それらの経路の遅延の最大値をMax(Tri)とし、最小値をMin(Tri)とする。そして、遅延のばらつきを考慮した補正係数をocvとすると、セットアップ時間(setup)およびホールド時間(hold)は次式によって算出される。
setup(i,j)=Max(Tci)×(1+ocv)−Min(Tri)×(1−ocv) ・・・(1)
hold(i,j)=Max(Tri)×(1+ocv)−Min(Tci)×(1−ocv) ・・・(2)
次に、特性値抽出部32は、変数jがnと等しいか否かを判定する(S33)。変数jがnと等しくなければ(S33,No)、ステップS31〜S32の処理を繰り返す。また、変数jがnと等しければ(S33,Yes)、特性値抽出部32は、変数iがnと等しいか否かを判定する(S34)。変数iがnと等しくなければ(S34,No)、ステップS29〜S33の処理を繰り返す。
hold(i,j)=Max(Tri)×(1+ocv)−Min(Tci)×(1−ocv) ・・・(2)
次に、特性値抽出部32は、変数jがnと等しいか否かを判定する(S33)。変数jがnと等しくなければ(S33,No)、ステップS31〜S32の処理を繰り返す。また、変数jがnと等しければ(S33,Yes)、特性値抽出部32は、変数iがnと等しいか否かを判定する(S34)。変数iがnと等しくなければ(S34,No)、ステップS29〜S33の処理を繰り返す。
また、変数iがnと等しければ(S34,Yes)、ライブラリ生成部33は、データスルーおよびクロックスルーとセットアップ時間との対応を示すセットアップテーブルと、データスルーおよびクロックスルーとホールド時間との対応を示すホールドテーブルとを生成し、ライブラリとしてライブラリ格納ファイル35に格納し(S35)、処理を終了する。
図7は、図4に示す動的自動検証処理(S13)の詳細を説明するためのフローチャートである。まず、ユーザが検証したいテーブルのインデックス(入力スルー)を指定する(S41)。ここで、検証したいテーブルのデータスルーをSc1〜Scm、クロックスルーをSr1〜Srmとする。
次に、動的検証部34は、変数iに“0”を設定し(S42)、変数iをインクリメントする(S43)。そして、ライブラリ格納ファイル35を参照して、検証したい特性値であるセットアップ時間setup(ci,ri)およびホールド時間hold(ci,ri)を抽出する(S44)。
次に、動的検証部34は、ベクタテンプレート格納ファイル31を参照して、特性値であるセットアップ時間setup(ci,ri)およびホールド時間hold(ci,ri)だけずらした信号波形(ベクタ)を生成する(S45)。
図8は、ステップS45に示すベクタの生成を説明するための図である。動的検証部34は、ライブラリ格納ファイル35に格納されるセットアップテーブルを参照して、データスルーSciおよびクロックスルーSriに対応するセットアップ時間を抽出する。
図8(a)は、セットアップテーブルの一例を示しており、データスルーSci(slew_c)およびクロックスルーSri(slew_r)に対応するセットアップ時間(setup)が抽出されるところを示している。
そして、動的検証部34は、図8(b)に示すように、セットアップ時間の検証を行なう場合には、クロック(CLK)の波形に対して、データ(DATA)をセットアップ時間だけ前にずらした波形を生成し、これをベクタとする。また、ホールド時間の検証を行なう場合には、クロック(CLK)の波形に対して、データ(DATA)をホールド時間だけ後ろにずらした波形を生成し、これをベクタとする。
次に、動的検証部34は、図8(b)に示すように、所望のスルー(Sci,Sri)を得るようにデータ(DATA)およびクロック(CLK)に付加すべき容量を決定する(S46)。
図9は、データ(DATA)およびクロック(CLK)に所望のスルーを付加するための方法を説明するための図である。図9に示すように、ハードマクロ30の入力にドライバ51および52が接続されている場合には、外部からデータ(DATA)およびクロック(CLK)の傾きを制御することができない。そのため、ドライバ51および52の出力に容量C1およびC2を付加し、容量C1およびC2の値を変えることによってデータおよびクロックに所望の傾きを得るようにしている。
動的検証部34は、ベクタテンプレート格納ファイル31を参照し、ハードマクロ30に入力されるデータおよびクロックが図8(b)に示すような遅延値および傾きを持った波形となるように、シミュレーション入力ファイルを生成する(S47)。
次に、動的検証部34は、シミュレーション入力ファイルを用いてハードマクロ30のシミュレーションを実行して、出力信号の遅延時間やグリッチ(スパイク)などの測定結果を測定結果格納ファイル39に格納する(S48)。
そして、動的検証部34は、測定結果格納ファイル39を参照して、測定結果の検証を行ない、検証結果を検証結果格納ファイル36に格納する(S49)。たとえば、セットアップ時間の検証を行なう場合には、クロックの立ち上がりでデータが正しく保持されているか否か、スパイクが発生していないか否か、パルス幅が十分であるか否かなどが判定される。
図10は、セットアップ時間の検証を行なう場合の検証結果の一例を示す図である。データに対してクロックをセットアップ時間だけずらしてハードマクロ30に入力し、シミュレーションを行なった結果、ハードマクロ30の内部で所望の変化があった場合は検証結果が“OK”と判定される。また、ハードマクロ30の内部で所望の変化がなかった場合は検証結果が“NG”と判定される。同様に、外部端子で所望の変化があったか否かも判定される。
また、ハードマクロ30の内部でスパイクが発生しなかった場合は検証結果が“OK”と判定される。また、ハードマクロ30の内部でスパイクが発生した場合は検証結果が“NG”と判定される。
また、ハードマクロ30の内部におけるパルス幅が十分な場合は検証結果が“OK”と判定される。また、ハードマクロ30の内部におけるパルス幅が不十分な場合は検証結果が“NG”と判定される。
また、ホールド時間の検証を行なう場合には、クロックの立ち上がりに対して前のデータが正しく保持されているか否か、スパイクが発生していないか否か、パルス幅が十分であるか否かなどが判定される。
最後に、動的検証部34は、変数iがmと等しいか否かを判定する(S50)。変数iがmと等しくなければ(S50,No)、ステップS43に戻って、以降の処理を繰り返す。また、変数iがmと等しければ(S50,Yes)、処理を終了する。
図11は、ベクタテンプレート格納ファイル31に格納されるベクタテンプレートの一例を示す図である。図11(a)において、ベクタは各入力信号のパターンを記述する部分であり、クロック(CLK)、チップイネーブル(CEN)、ライトイネーブル(WEN)およびアドレス(A[@ADDR])の入力パターンが定義されている。なお、@ADDRはアドレス幅を示しており、テンプレート展開するときに使用される。
図12は、図11(a)に示すWEN信号の波形を示す図である。図11(a)に示すテンプレートの“N”は周期内で“0”から“1”に変化することを示し、“P”は周期内で“1”から“0”に変化することを示している。したがって、たとえば図11(a)に示すテンプレートのWEN信号は、図12に示すような波形となる。
測定指定は、ネットリストの中の測定点における遅延やグリッチを測定するための記述である。yod[@BIT]は、出力端子を測定点として遅延時間を測定するための記述であり、クロック(CLK)をトリガとし、出力端子Q[@BIT]の遅延時間を測定するものである。なお、@BITは、データ幅を示しており、テンプレート展開するときに使用される。
yrd[@ADDR]は、中間ノードを測定点として遅延時間を測定するための記述であり、クロック(CLK)をトリガとし、中間ノードX0.X1.T[@ADDR]の遅延時間を測定するものである。
yg0[@ADDR]は、中間ノードのグリッチを測定するための記述であり、中間ノードX0.X1.D[@ADDR]のグリッチを測定するものである。なお、測定指定の右端に記述される数字は周期を示すものであるが、本発明と直接関連するものではないため、その詳細な説明は行なわない。
計算指定は、測定結果に対して四則演算を行なうことにより検証(OK/NG判定)を行なう記述であり、CHECK(SUB(MUL(delay0,1.1),yod[@BIT]),LE)は、出力端子Q[@BIT]の遅延時間であるyod[@BIT]が、delay0×1.1以下であることを判定するための記述である。
CHECK(SUB(MUL(delay1,1.1),yrd[@ADDR]),LE)は、中間ノードの遅延時間であるyrd[@ADDR]が、delay1×1.1以下であることを判定するための記述である。
CHECK(SUB(0.2,yg0),GE)は、中間ノードのグリッチの幅が0.2以上であることを判定するための記述である。このように、四則演算によって測定点における種々の検証を行なうことができる。
図11(b)は、テンプレート展開の一例を示す図である。ハードマクロがSRAMの場合には、SRAMのビット幅やワード数を柔軟に変更できることが必要とされる。そのため、図11(a)に示すテンプレートの@BITおよび@ADDRに、ビット幅およびワード数に相当する値を設定してテンプレート展開を行なうことにより、そのビット幅およびワード数に対応したシミュレーション入力ファイル群を自動的に生成できるようになる。このシミュレーション入力ファイル群を用いて検証が行なわれる。
以上説明したように、本実施の形態におけるキャラクタライズ装置によれば、特性値抽出部32が静的経路探索によってハードマクロの特性値を抽出し、動的検証部34が抽出された特性値に対して動的検証を行なって、抽出した特性値が適切であるか否かを判定するようにしたので、高速に信頼性の高いハードマクロの特性値を抽出することが可能となった。
また、特性値の検証においてエラーが発生した場合には、人手により経路確認を行なうことにより設定の見直しができるため、誤探索し易い部分により発生したエラーか否かをを容易に判定でき、経路探索の再設定を容易に行うことが可能となった。
また、テンプレートを展開することによってシミュレーション入力ファイル群を生成するようにしたので、任意のビット幅およびワード数を有するSRAMの検証に対応することが可能となった。
また、測定結果が適切であるか否かの複雑な検証を、簡単な四則演算の判定式を用いて行なうようにしたので、ユーザは判定式を容易に作成することができ特性値の検証を容易に行なうことが可能となった。
また、動的検証部34は、ハードマクロ30内部のグリッチやパルス幅に応じて特性値が適切であるか否かも判定できるようにしたので、より高精度に特性値の検証を行なうことが可能となった。
また、ハードマクロ30の入力に接続されるドライバの出力に任意の容量を付加できるようにしたので、ハードマクロ30に入力される信号波形に任意の傾きを与えることができ、より高精度な動的検証を行なうことが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 コンピュータ本体、2 ディスプレイ装置、3 FDドライブ、4 FD、5 キーボード、6 マウス、7 CD−ROM装置、8 CD−ROM、9 ネットワーク通信装置、10 CPU、11 ROM、12 RAM、13 ハードディスク、21〜23 バッファ、24 フリップフロップ、25〜29 AND回路、30 ハードマクロ、31 ベクタテンプレート格納ファイル、32 特性値抽出部、33 ライブラリ生成部、34 動的検証部、35 ライブラリ格納ファイル、36 検証結果格納ファイル、37 測定結果格納ファイル、38 計算結果格納ファイル、39 測定結果格納ファイル。
Claims (10)
- ハードマクロの特性値を抽出するためのキャラクタライズ装置であって、
前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、前記ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する特性値抽出手段と、
前記特性値抽出手段によって抽出された特性値を用いて前記ハードマクロの動的検証を行なうことにより、前記特性値が適切か否かを検証する動的検証手段とを含む、キャラクタライズ装置。 - 前記特性値抽出手段は、前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、前記ハードマクロ内のデータ保持回路までの複数の経路における遅延時間を測定し、該複数の経路における遅延時間の最大値および最小値から前記データ保持回路のセットアップ時間およびホールド時間を算出して前記特性値とする、請求項1記載のキャラクタライズ装置。
- 前記特性値抽出手段は、前記ハードマクロに入力するデータおよびクロックに対して複数のスルーを与えて静的な経路探索を行なうことにより、複数のセットアップ時間およびホールド時間を算出し、データスルーおよびクロックスルーの組合せに対応するセットアップ時間およびホールド時間をテーブルとして保持し、
前記動的検証手段は、前記特性値抽出手段によって保持されるテーブルを参照して、前記ハードマクロの動的検証を行なう、請求項2記載のキャラクタライズ装置。 - 前記動的検証手段は、前記ハードマクロに入力するクロックに対して、前記ハードマクロに入力するデータを前記特性値抽出手段によって算出されたセットアップ時間またはホールド時間だけずらしてシミュレーションを行ない、出力が期待値となるか否かによって前記特性値が適切か否かを検証する、請求項2または3記載のキャラクタライズ装置。
- 前記動的検証手段は、前記シミュレーションによって前記ハードマクロの内部でグリッチが発生するか否かによって前記特性値が適切か否かを検証する、請求項4記載のキャラクタライズ装置。
- 前記動的検証手段は、前記シミュレーションによって前記ハードマクロの内部で発生するパルス幅が所定値以上であるか否かによって前記特性値が適切か否かを検証する、請求項4記載のキャラクタライズ装置。
- 前記動的検証手段は、テンプレートに設定された値に応じて作成されたシミュレーション入力ファイルに基づいて、前記ハードマクロの動的検証を行なう、請求項1〜6のいずれかに記載のキャラクタライズ装置。
- 前記動的検証手段は、テンプレートに設定された値に応じて四則演算の判定式を生成し、該判定式に応じて前記特性値が適切か否かを検証する、請求項1〜6のいずれかに記載のキャラクタライズ装置。
- 前記動的検証手段は、前記ハードマクロの入力に接続されるドライバの出力に容量を付加することにより前記スルーを与える、請求項1〜8のいずれかに記載のキャラクタライズ装置。
- コンピュータにハードマクロの特性値を抽出させるためのコンピュータ・プログラムであって、
前記コンピュータに、前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なわせることにより、前記ハードマクロ内の測定点における遅延時間を算出して特性値を抽出させるステップと、
前記コンピュータに、前記抽出された特性値を用いて前記ハードマクロの動的検証を行なわせることにより、前記特性値が適切か否かを検証させるステップとを含む、コンピュータ・プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011099360A JP2012230605A (ja) | 2011-04-27 | 2011-04-27 | キャラクタライズ装置およびそのコンピュータ・プログラム |
US13/451,091 US8495541B2 (en) | 2011-04-27 | 2012-04-19 | Characterization device and computer program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011099360A JP2012230605A (ja) | 2011-04-27 | 2011-04-27 | キャラクタライズ装置およびそのコンピュータ・プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012230605A true JP2012230605A (ja) | 2012-11-22 |
Family
ID=47068984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011099360A Withdrawn JP2012230605A (ja) | 2011-04-27 | 2011-04-27 | キャラクタライズ装置およびそのコンピュータ・プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8495541B2 (ja) |
JP (1) | JP2012230605A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713502B1 (en) | 2013-02-26 | 2014-04-29 | International Business Machines Corporation | Methods and systems to reduce a number of simulations in a timing analysis |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2809168B2 (ja) | 1995-12-27 | 1998-10-08 | 日本電気株式会社 | タイミング検証方法 |
JP3715706B2 (ja) | 1996-02-06 | 2005-11-16 | 株式会社ルネサステクノロジ | タイミング検証装置 |
JPH10222545A (ja) | 1997-01-31 | 1998-08-21 | Sony Corp | パラメタライズドメモリの回路縮退方法及び論理セルライブラリ生成方法 |
JP3686039B2 (ja) | 2002-01-21 | 2005-08-24 | 松下電器産業株式会社 | 半導体集積回路装置およびその使用方法 |
JP2006350548A (ja) | 2005-06-14 | 2006-12-28 | Matsushita Electric Ind Co Ltd | タイミングライブラリの作成方法、タイミングライブラリの作成プログラム、およびタイミングライブラリの作成装置 |
US7614023B2 (en) * | 2006-10-25 | 2009-11-03 | Infineon Technologies Ag | System for estimating a terminal capacitance and for characterizing a circuit |
-
2011
- 2011-04-27 JP JP2011099360A patent/JP2012230605A/ja not_active Withdrawn
-
2012
- 2012-04-19 US US13/451,091 patent/US8495541B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20120278779A1 (en) | 2012-11-01 |
US8495541B2 (en) | 2013-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4634269B2 (ja) | クロストークを考慮したタイミング分析のためのシステム、方法及び論理装置 | |
JP5410414B2 (ja) | 回路エミュレーションの入力及び遅延入力のマルチプレクシング | |
JP5405451B2 (ja) | 自動回路設計及びシミュレーションに使用するための技術 | |
Liou et al. | Modeling, testing, and analysis for delay defects and noise effects in deep submicron devices | |
US20100313176A1 (en) | Delay library, delay library creation method, and delay calculation method | |
JP2005004268A (ja) | 半導体集積回路装置の動作解析方法、これに用いられる解析装置およびこれを用いた最適化設計方法 | |
CN112069763B (zh) | 修正电路的方法 | |
US9892220B2 (en) | Method and apparatus for adjusting a timing derate for static timing analysis | |
US20150370955A1 (en) | Method for adjusting a timing derate for static timing analysis | |
US8504347B2 (en) | Simulation apparatus, simulation method, and program to perform simulation on design data of a target circuit | |
Singh et al. | Controller architecture for memory BIST algorithms | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
US7945882B2 (en) | Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium | |
US8453090B2 (en) | System and method for optimizing logic timing | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
JP2012230605A (ja) | キャラクタライズ装置およびそのコンピュータ・プログラム | |
JP5119506B2 (ja) | 半導体集積回路の設計装置、そのデータ処理方法、およびその制御プログラム | |
US20110270599A1 (en) | Method for testing integrated circuit and semiconductor memory device | |
JP2008287666A (ja) | 回路動作検証装置、半導体集積回路の製造方法、回路動作検証方法、制御プログラムおよび可読記録媒体 | |
JP6089627B2 (ja) | 消費電力見積り装置および消費電力見積り方法 | |
US8694937B2 (en) | Implementing and checking electronic circuits with flexible ramptime limits and tools for performing the same | |
US20030225562A1 (en) | Method and apparatus for characterizing timing-sensitive digital logic circuits | |
JP2002259488A (ja) | クロックスキュー検証方法 | |
JP4142366B2 (ja) | 電源電圧変動解析方法、電源電流変動解析方法、電源電圧変動解析装置および電源電流変動解析装置 | |
KR101215977B1 (ko) | 집적회로 및 메모리장치의 테스트 방법 |
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: 20140701 |