JP5668457B2 - 回路設計方法、プログラム及び半導体集積回路 - Google Patents

回路設計方法、プログラム及び半導体集積回路 Download PDF

Info

Publication number
JP5668457B2
JP5668457B2 JP2010282349A JP2010282349A JP5668457B2 JP 5668457 B2 JP5668457 B2 JP 5668457B2 JP 2010282349 A JP2010282349 A JP 2010282349A JP 2010282349 A JP2010282349 A JP 2010282349A JP 5668457 B2 JP5668457 B2 JP 5668457B2
Authority
JP
Japan
Prior art keywords
circuit
test
hierarchy
block
model
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
JP2010282349A
Other languages
English (en)
Other versions
JP2012128819A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2010282349A priority Critical patent/JP5668457B2/ja
Publication of JP2012128819A publication Critical patent/JP2012128819A/ja
Application granted granted Critical
Publication of JP5668457B2 publication Critical patent/JP5668457B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Description

本発明は、回路設計方法、プログラム及び半導体集積回路に関する。
近年、半導体集積回路の大規模化、高集積化がますます進んでいる。そのため、半導体集積回路の回路設計時の論理検証の際に、チップ全体の回路データを用いると、シミュレーション実行時間が長くなり、コンピュータの使用メモリ容量も膨大なものとなる。
そこで従来、シミュレーション対象の回路を、特定の回路ブロックごとに分割して、階層設計することが行われている。これにより、一度に検証する回路データの量を減らすことができる。また、回路ブロックごとに、たとえば、異なる設計者が並列に設計及び検証を行うことで、設計効率を上げることができる。
階層設計では、階層ごとに各階層の回路ブロックに対応したネットリストを用いて、テスト回路設計、論理検証、レイアウト設計などが行われていく。
特開昭60−231187号公報 特開平5−72273号公報
しかしながら、従来の階層設計では、下位の階層の回路ブロックを含む上位の階層の回路ブロックの論理検証の際、下位の階層の回路ブロックが論理検証済であっても、下位の階層に関するイベント(信号の変化)が発生する。これによりシミュレーション時間が長くなり、コンピュータの使用メモリ容量も増加してしまうという問題があった。
発明の一観点によれば、コンピュータによって実行される、以下のような回路設計方法が提供される。この回路設計方法では、階層設計データの各階層の回路ブロックに含まれる試験回路モデルを、階層内及び階層間でシリアル接続し、自身の階層の前記試験回路モデルを経由した試験データか、前記自身の階層の前記試験回路モデルを経由しない試験データの何れかを選択して出力する選択部を各階層に設ける。
短時間で効率的に回路設計を行うことができる。
第1の実施の形態の回路設計方法の一例を示す図である。 下位階層の論理検証時の一例の様子を示す図である。 トップ階層の論理検証時の一例の様子を示す図である。 本実施の形態の回路設計方法を実行するコンピュータのハードウェア例を示す図である。 階層設計の一例の流れを示すフローチャートである。 本実施の形態の半導体集積回路の一例を示す図である。 検証用モデルの一例を示す図である。 下位階層の論理検証時の回路ブロックの一例を示す図である。 下位階層の検証用モデルが組み込まれたトップ階層の論理検証モデルの一例を示す図である。 RAMが増加した場合の半導体集積回路の一例を示す図である。 制御部とラッパー回路の一例を示す図である。 2本のスキャンパスを有する半導体集積回路の一例を示す図である。 トップ階層の論理検証時の論理検証モデルの一例を示す図である。 下位階層の回路ブロックが更に下位階層の回路ブロックを含む場合の半導体集積回路の一例を示す図である。 パワードメインが異なる回路ブロックが存在する場合の半導体集積回路の一例を示す図である。
以下、本発明の実施の形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の回路設計方法の一例を示す図である。
本実施の形態の回路設計方法は、図1に示されるようなコンピュータ1で行われる。
階層設計(ステップS1)では、論理合成によって得られたネットリストが、特定の複数の回路ブロックに分割されて、各階層の回路ブロックごとに設計が行われる。本実施の形態の回路設計方法では、図1に示されるような、テスト設計が行われる。
図1では、下位階層の回路ブロックとその回路ブロックを含むトップ階層(最上位の階層)による、2層の階層構造を持つ階層設計データを示している。下位階層の回路ブロックは、試験対象となる試験対象回路モデル2,3と、それらを試験する試験回路モデル4,5と、選択部6を有している。トップ階層の回路ブロックは、上記下位階層の回路ブロックを含むとともに、試験対象回路モデル7,8と、それらを試験する試験回路モデル9,10と、選択部11を有している。
ここで、試験回路モデル4,5,9,10は、階層設計データの各階層内でシリアル接続されており、2つの階層間でも選択部11を介してシリアル接続されている。
また、選択部6は、自身の階層の試験回路モデル4,5を経由した試験データ(試験回路モデル4,5の試験結果)か、自身の階層の試験回路モデル4,5を経由しない試験データの何れかを選択して出力する。選択部11は、自身の階層の試験回路モデル9,10を経由した試験データ(試験回路モデル9,10の試験結果)か、自身の階層の試験回路モデル9,10を経由しない試験データの何れかを選択して出力する。
なお、図1では、試験対象回路モデル2,3,7,8が階層ごと2つの例を示しているが、3つ以上であってもよい。また、図1では、下位階層の回路ブロックが1つの場合について示しているが、複数あってもよい。
上記のようなテスト設計を行うことで、以下に示すように、階層ごと独立に論理検証が行えるとともに、上位の階層の論理検証の際に、下位階層の論理数を削減しても、上位の階層の検証結果に影響を与えることがないため、シミュレーション時間を短縮できる。
図2は、下位階層の論理検証時の一例の様子を示す図である。
下位階層の論理検証時(ステップS2)、下位階層の回路ブロックの選択部6は、自身の階層の試験回路モデル4,5を経由した試験データ、すなわち、試験対象回路モデル2,3の試験結果を選択して出力する。これにより、図2に示されている下位階層の論理検証を独立に行うことができる。
図3は、トップ階層の論理検証時の一例の様子を示す図である。
トップ階層の論理検証時(ステップS3)には、トップ階層の回路ブロックの選択部11は、自身の階層の試験回路モデル9,10を経由した試験データ、すなわち、試験対象回路モデル7,8の試験結果を選択して出力する。また、下位階層の選択部6は、自身の階層の試験回路モデル4,5を経由しない試験データを選択して出力する。これにより、トップ階層での試験データ(試験結果)が、選択部6から出力され、トップ階層の論理検証を独立に行うことができる。
また、コンピュータ1は、トップ階層の論理検証時に組み込む論理検証済の下位階層の回路ブロックにおいて、選択部6以外の論理数を削減する。たとえば、図3に示すように、コンピュータ1は、論理検証済の下位階層の回路ブロックから、試験対象回路モデル2,3及び試験回路モデル4,5を削除して、論理数を削減する。
選択部6では、トップ階層からの試験データが選択されるので、下位階層の回路データから、試験対象回路モデル2,3及び試験回路モデル4,5を削除しても、トップ階層の検証結果に影響を与えない。論理数を削減することで、トップ階層の回路ブロックの論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ1の使用メモリ容量も削減することができる。
以下、第2の実施の形態として、回路設計方法をより詳細に説明する。
(第2の実施の形態)
図4は、本実施の形態の回路設計方法を実行するコンピュータのハードウェア例を示す図である。
コンピュータ20は、CPU(Central Processing Unit)21によって装置全体が制御されている。CPU21には、バス28を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。
RAM22は、コンピュータ20の主記憶装置として使用される。RAM22には、CPU21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、CPU21による処理に使用する各種データが格納される。
バス28に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26及び通信インタフェース27がある。
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD23は、コンピュータ20の二次記憶装置として使用される。HDD23には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、CPU21からの命令に従って、画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた液晶表示装置などが挙げられる。
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をCPU21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどが挙げられる。
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、Blu−ray(登録商標)、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などが挙げられる。
通信インタフェース27は、ネットワーク27aに接続されている。通信インタフェース27は、ネットワーク27aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェアを有する1または複数のコンピュータ20によって、本実施の形態の処理機能を実現することができる。
図5は、階層設計の一例の流れを示すフローチャートである。
図4に示したようなコンピュータ20が、設計者からの指示により、たとえば、HDD23に格納された各種EDA(Electronic Design Automation)ツールを実行することによって、図5に示すような処理が実行される。
論理合成によって得られたネットリスト30に対して、設計者の指示のもと、または自動的にコンピュータ20が特定の機能部分の回路ブロックごとに分割を行う(ステップS5)。図5では、ネットリスト30が、トップ階層のネットリスト31と、1つの下位階層のネットリスト32に分割された例が示されているが、複数の下位階層のネットリストに分割するようにしてもよい。
続いて、下位階層のテスト設計(ステップS10)と、トップ階層のテスト設計(ステップS20)が行われる。
ここでは、一例として、以下のような、半導体集積回路を階層設計するものとする。
図6は、本実施の形態の半導体集積回路の一例を示す図である。
なお、以下では、試験対象の機能マクロとしてRAMを示すが、これに限定されない。
図6に示す半導体集積回路40において、下位階層の回路ブロックは、試験対象となるRAM41,42,43、ラッパー回路44,45,46、制御部47,48、階層制御回路49を有している。
ラッパー回路44〜46と制御部47,48は、図1に示した試験回路モデル4,5の機能を有している。
ラッパー回路44〜46は、RAM41〜43に対応して設けられ、あるテストパターンに対するRAM41〜43からの読み出し値と、そのテストパターンに対するRAM41〜43からの期待値(制御部47,48から供給される)との比較などを行う。
制御部47,48は、入力される試験データに基づき、ラッパー回路44,45,46に供給する期待値の生成などを行い、RAM41〜43の試験を制御する。
階層制御回路49は、セレクタ49a、フリップフロップ49b,49cを有している。
セレクタ49aは、図1に示した選択部6の機能を有し、試験回路の機能をもつラッパー回路44〜46及び制御部47,48を経由した試験データか、これらを経由しない試験データの何れかを選択して出力する。フリップフロップ49bは、端子61から入力されるクロック信号に同期して選択信号をセレクタ49aに供給する。フリップフロップ49cは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
トップ階層の回路ブロックは、上記の下位階層の回路ブロックを含むとともに、試験対象となるRAM50,51,52、ラッパー回路53,54,55、制御部56,57、階層制御回路58を有している。
ラッパー回路53〜55と制御部56,57は、図1に示した試験回路モデル9,10の機能を有している。
ラッパー回路53〜55は、RAM50〜52に対応して設けられ、あるテストパターンに対するRAM50〜52からの読み出し値と、そのテストパターンに対するRAM50〜52からの期待値(制御部56,57から供給される)との比較などを行う。
制御部56,57は、端子59から入力される試験データに基づき、ラッパー回路53,54,55に供給する期待値の生成などを行い、RAM50〜52の試験を制御する。
階層制御回路58は、セレクタ58a、フリップフロップ58b,58cを有している。
セレクタ58aは、図1に示した選択部11の機能を有し、試験回路の機能をもつラッパー回路53〜55及び制御部56,57を経由した試験データか、これらを経由しない試験データの何れかを選択して出力する。
フリップフロップ58bは、セレクタ58aに上記の何れの試験データを選択させるか指定するための端子60から入力される選択信号を保持し、端子61から入力されるクロック信号に同期して選択信号をセレクタ58aに供給する。フリップフロップ58cは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
また、トップ階層と下位階層で、試験回路の機能を有するラッパー回路44〜46,53〜55と、制御部47,48,56,57は、各階層内でシリアル接続されており、階層間でもセレクタ58aとフリップフロップ58cを介してシリアル接続されている。
これにより、各試験回路へ、スター配線で試験データを送出する場合よりも配線の混雑度が低減される。
上記のような半導体集積回路40を階層設計する場合、図5のフローチャートのステップS10の下位階層のテスト設計では、まず、テスト合成が行われ、図6に示したような試験回路の機能を有した下位階層の回路ブロックが生成される(ステップS11)。また、このとき、コンピュータ20は、トップ階層での論理検証の際に用いる下位階層の回路ブロックとして、以下のような検証用モデル33を生成する。
図7は、検証用モデルの一例を示す図である。
ここでは、図6に示した下位階層の回路ブロックの、RAM41〜43、ラッパー回路44〜46、制御部47,48を削除して、階層制御回路49を残した検証用モデル33の例を示している。
なお、検証用モデル33は、階層制御回路49以外の全ての配線、論理などを削除するようにしてもよい。
下位階層のテスト設計では、次に、EDAツールの1つであるATPG(Automatic Test Pattern generator)によって、図6に示した下位階層の回路ブロックに対するテストパターンが自動生成される(ステップS12)。
そして、コンピュータ20は、生成されたテストパターンを用いて論理検証(仮配置シミュレーション)を行う(ステップS13)。
図8は、下位階層の論理検証時の回路ブロックの一例を示す図である。
下位階層の論理検証時には、コンピュータ20は、セレクタ49aが、ラッパー回路44〜46及び制御部47,48を経由した試験データを選択するような選択信号をフリップフロップ49bに設定する。これにより、RAM41〜43の試験結果がセレクタ49aから出力される。
一方、ステップS20のトップ階層のテスト設計でもテスト合成が行われ、図6に示したような試験回路の機能を有したトップ階層の回路ブロックが生成される(ステップS21)。このとき、下位階層の回路ブロックはブランク状態で生成される。
続いて、ATPGによって、トップ階層の回路ブロックに対するテストパターンが自動生成される(ステップS22)。
そして、コンピュータ20は、生成されたテストパターンを用いてトップ階層の論理検証(仮配置シミュレーション)を行う(ステップS23)。このとき、論理検証済の下位階層の検証用モデル33が組み込まれて、論理検証が行われる。
図9は、下位階層の検証用モデルが組み込まれたトップ階層の論理検証モデルの一例を示す図である。
図9では、トップ階層に、図7に示した下位階層の検証用モデル33を組み込んだ例が示されている。
トップ階層の論理検証時には、コンピュータ20は、セレクタ58aが、ラッパー回路53〜55及び制御部56,57を経由した試験データを選択するような選択信号をフリップフロップ58bに設定する。これにより、RAM50〜52の試験結果がセレクタ58aから出力される。
また、コンピュータ20は、組み込まれた検証用モデル33の階層制御回路49のフリップフロップ49bに対しては、トップ階層のフリップフロップ58cから出力される試験データ(RAM50〜52の試験結果)を選択するような選択信号を設定する。これにより、トップ階層のRAM50〜52の試験結果がセレクタ49aから出力され、フリップフロップ49cを介して、端子62から出力される。
このようなトップ階層での論理検証では、図9に示すような階層間のパスp1や、試験結果が出力される端子62に直接接続されるパスp2の接続状態などの検証も行うことができる。
以上のような、テスト設計が終わると、下位階層及びトップ階層のテスト設計で生成されたネットリスト34,35を用いて、下位階層、トップ階層それぞれのレイアウトが行われる(ステップS30,S40)。
レイアウトでは、各階層の回路ブロックごとに、フロアプラン(ステップS31,S41)、配置配線(ステップS32,S42)、最適化(ステップS33,S43)が行われ、ネットリスト36,37が生成される。
その後、ATPGによる、それぞれの階層の回路ブロックに対するテストパターンの生成が行われ(ステップS50,S60)、論理検証(実配線シミュレーション)が行われる(ステップS51,S61)。
トップ階層での論理検証では、たとえば、ステップS23での処理と同様に、論理数が削減された検証用モデル33が適用される。
以上のような階層設計によれば、図7、図9に検証用モデル33として示したように、トップ階層の論理検証時に組み込む論理検証済の下位階層の回路ブロックの論理数を削減している。トップ階層の論理検証時、セレクタ49aは、トップ階層からの試験データを選択するので、下位階層の回路ブロックから、RAM41〜43、ラッパー回路44〜46、制御部47,48を削除しても、トップ階層の検証結果に影響を与えない。
論理数を削減することで、ステップS23やステップS61のトップ階層の論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ20の使用メモリ容量も削減することができる。
ところで、たとえば、テスト設計後に、ある階層の回路ブロックにおいて、RAMなどの機能マクロを増加または減らしたいという要求がでてくる場合がある。
図10は、RAMが増加した場合の半導体集積回路の一例を示す図である。
図10では、図6に示した下位階層の回路ブロックにおいて、たとえば設計変更により、機能マクロであるRAMが1つ増加した半導体集積回路40aが示されている。図6と同一の要素については同一符号を付している。下位階層の回路ブロックでは、増加したRAM70に対応してラッパー回路71、制御部72が設けられている。
このように、機能マクロが増加または減少した場合でも、本実施の形態によれば、トップ階層の論理検証の値に影響を与えないので、トップ階層のテスト設計をやり直さなくて済み、回路設計の時間が増加することを防止でき、効率的な回路設計が行える。
以下、図6に示した半導体集積回路40の各部の構成をより詳細に説明する。
(制御部とラッパー回路の詳細)
図11は、制御部とラッパー回路の一例を示す図である。
図11では、図6に示した制御部56、ラッパー回路53,54の一例を示している。
ラッパー回路53,54は、期待値比較部53a,54a、フリップフロップ53b,54b、セレクタ53c,54cを有している。
制御部56は、制御回路56a、パターン生成部56b、フリップフロップ56c、セレクタ56dを有している。
制御回路56aと、2つのラッパー回路53,54の期待値比較部53a,54aは、図11に示すようにセレクタ53c,54cを介してシリアル接続されており、スキャンパス構造をもっている。
制御回路56aは、入力される試験データをもとに、パターン生成部56bに、あるテストパターンでRAM50,51から出力されると期待される値(期待値)を生成させ、期待値比較部53aに供給させる。なお、制御回路56aは、図示を省略しているが、セレクタ53c,54c,56cへ選択信号を供給し、どのRAM50,51を試験するのか、RAM50,51の試験せずに試験データをスルーさせるのかを選択する。
パターン生成部56bは、制御回路56aから送出される情報をもとにテストパターンや期待値を生成する。
フリップフロップ56cは、入力される試験データをクロック信号に同期してセレクタ56dに供給する。セレクタ56dは、ラッパー回路54の出力信号か、フリップフロップ56cに保持された試験データの何れかを、制御回路56aからの選択信号に応じて選択して出力する。
ラッパー回路53の期待値比較部53aは、パターン生成部56bから送出される期待値と、テストパターンに応じて読み出されるRAM50からのリードデータとを比較し、比較結果を出力する。
フリップフロップ53bは、クロック信号に同期して制御回路56aからの信号を保持し、セレクタ53cに供給する。セレクタ53cは、フリップフロップ53bの出力信号か、期待値比較部53aでの比較結果の何れかを制御回路56aからの選択信号に応じて選択して出力する。
ラッパー回路54の期待値比較部54aは、パターン生成部56bから送出される期待値と、テストパターンに応じて読み出されるRAM51からのリードデータとを比較し、比較結果を出力する。
フリップフロップ54bは、クロック信号に同期してセレクタ53cからの出力信号を保持し、セレクタ54cに供給する。セレクタ54cは、フリップフロップ54bの出力信号か、期待値比較部54aでの比較結果の何れかを制御回路56aからの選択信号に応じて選択して出力し、制御部56のセレクタ56dに供給する。
なお、図11では、各部に供給されるクロック信号については図示を省略している。また、制御回路56aには、RAM50に指定するアドレスを生成するアドレス生成部などが含まれるが図示を省略している。また、ラッパー回路53,54には、RAM50,51に供給するデータ(テストパターンや通常動作時のライトデータやライトイネーブルなど)を選択するデータ選択部などが含まれるが図示を省略している。
(複数本のスキャンパスを有する半導体集積回路の一例)
ところで、前述の図6の例では、簡単のため、制御部47,48,56,57、ラッパー回路44〜46,53〜55のシリアル接続によるパス(スキャンパス)の本数を1本としているが、複数あってもよい。
図12は、2本のスキャンパスを有する半導体集積回路の一例を示す図である。
図12では、図6などで示したRAM、制御部及びラッパー回路を1つの回路ブロック(test/RAM)で示している。
半導体集積回路70において、下位階層の回路ブロックはtest/RAM71,72,73,74,75,76,77,78,79,80,81と、AND回路82,83,84,85,86,87と、OR回路88,89と、階層制御回路90を有している。また、下位階層の回路ブロックの境界には端子91,92,93,94,95,96,97,98,99が設けられている。
図12に示す例では、test/RAM71〜81のうち、test/RAM71と、testRAM72〜77のグループと、test/RAM78〜81のグループは、それぞれ異なるクロックドメイン、すなわち、異なるクロックで動作するものとしている。
test/RAM72〜74と、test/RAM75〜77と、test/RAM78,79と、test/RAM80,81はそれぞれシリアルに接続されている。
AND回路82は、端子91から入力されるクロックドメイン選択信号と、test/RAM71からの出力信号とのAND論理を出力する。AND回路83は、端子91から入力されるクロックドメイン選択信号と、端子94から入力される試験データとのAND論理を出力する。
AND回路84は、端子92から入力されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM72〜74の最後段のtest/RAM74からの出力信号とのAND論理を出力する。AND回路85は、端子92から入力されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM75〜77の最後段のtest/RAM77からの出力信号とのAND論理を出力する。
AND回路86は、端子93から入力されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM78,79の最後段のtest/RAM79からの出力信号とのAND論理を出力する。AND回路87は、端子93から入力されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM80,81の最後段のtest/RAM81からの出力信号とのAND論理を出力する。
OR回路88は、AND回路82,84,86のOR論理を出力する。OR回路89は、AND回路83,85,87のOR論理を出力する。
階層制御回路90は、セレクタ90a,90b、フリップフロップ90c,90d,90eを有している。
セレクタ90aは、端子96からフリップフロップ90cを介して供給される選択信号に応じてOR回路89からの出力信号か、端子94から供給される試験データの何れかを選択して出力する。セレクタ90bは、端子96からフリップフロップ90cを介して供給される選択信号に応じてOR回路88からの出力信号か、端子95から供給される試験データの何れかを選択して出力する。
フリップフロップ90cは、端子96から供給される選択信号をクロック信号に同期して取り込み、セレクタ90a,90bに供給するとともに、端子99から出力する。端子99は別の下位階層の回路ブロックがある場合には、その回路ブロックに接続されるが、図12に示す例ではオープンとしている。
フリップフロップ90dは、クロック信号に同期してセレクタ90aからの出力信号を取り込み、端子97から出力する。フリップフロップ90dは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ90eは、クロック信号に同期してセレクタ90bからの出力信号を取り込み、端子98から出力する。フリップフロップ90eは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
一方、トップ階層の回路ブロックは、test/RAM100,101,102,103,104,105,106,107と、AND回路108,109,110,111と、OR回路112,113と、階層制御回路114を有している。さらに、トップ階層の回路ブロックは、TAPC(Test Access Port Controller)115とMTC(Memory Test Controller)116を有している。また、トップ階層の回路ブロックの境界には端子117,118,119,120,121,122,123が設けられている。
図12に示す例では、test/RAM100〜107のうち、test/RAM100〜104のグループと、test/RAM105〜107のグループは、それぞれ異なるクロックドメイン、すなわち、異なるクロックで動作するものとしている。
test/RAM100〜102と、test/RAM103〜104と、test/RAM105,106はそれぞれシリアルに接続されている。
AND回路108は、MTC116から供給されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM100〜102の最後段のtest/RAM102からの出力信号とのAND論理を出力する。AND回路109は、MTC116から供給されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM103,104の最後段のtest/RAM104からの出力信号とのAND論理を出力する。
AND回路110は、MTC116から供給されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM105,106の最後段のtest/RAM106からの出力信号とのAND論理を出力する。AND回路111は、MTC116から供給されるクロックドメイン選択信号と、test/RAM107からの出力信号とのAND論理を出力する。
なお、MTC116から供給されるクロックドメイン選択信号は、AND回路108,109で共通であり、AND回路110,111で共通である。
OR回路112は、AND回路108,110のOR論理を出力する。OR回路113は、AND回路109,111のOR論理を出力する。
階層制御回路114は、セレクタ114a,114b、フリップフロップ114c,114d,114eを有している。
セレクタ114aは、端子117からフリップフロップ114cを介して供給される選択信号に応じてOR回路113からの出力信号か、端子120から供給される試験データの何れかを選択して出力する。セレクタ114bは、端子117からフリップフロップ114cを介して供給される選択信号に応じてOR回路112からの出力信号か、端子121から供給される試験データの何れかを選択して出力する。
フリップフロップ114cは、端子117から供給される選択信号を、端子119から供給されるクロック信号に同期して取り込み、セレクタ114a,114bに供給するとともに、下位階層の回路ブロックの端子96に供給する。
フリップフロップ114dは、端子119から供給されるクロック信号に同期してセレクタ114aからの出力信号を取り込み、下位階層の回路ブロックの端子94に供給する。フリップフロップ114dは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ114eは、端子119から供給されるクロック信号に同期してセレクタ114bからの出力信号を取り込み、下位階層の回路ブロックの端子95に供給する。フリップフロップ114eは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
TAPC115は、端子117〜119から入力される信号をもとに、半導体集積回路70の試験を制御する。
MTC116は、TAPC115の制御のもと、3種のクロックドメインに対応した3種のクロックドメイン選択信号を出力する。図12に示す例では、あるクロックドメインに対応したクロックドメイン選択信号が“1”のときそのクロックドメインが選択され、“0”のときは選択されない。
端子117には、セレクタ90a,90b,114a,114bへの選択信号が入力される。端子117は、TDI(Test Data Input)と呼ばれることもある。端子118には、TAPC115へのテストモード選択信号が入力される。端子118は、TMS(Test Mode Select input)と呼ばれることもある。端子119には、クロック信号が入力される。端子119は、TCK(Test Clock Input)と呼ばれることもある。端子120には、1本目のスキャンパス用の試験データが入力される。端子121には、2本目のスキャンパス用の試験データが入力される。
半導体集積回路70の製造後の試験において、端子117〜121には、たとえば、試験装置(テスタ)が接続され、上記各種の信号が入力される。半導体集積回路70のコンピュータ20上でのテスト設計の際には、たとえば、これらの端子117〜121に上記各種の信号が設定され、論理検証が行われる。
端子122は、下位階層の回路ブロックの端子98に接続され、ここから1本目のスキャンパスによる試験結果が出力される。端子123は、下位階層の回路ブロックの端子98に接続され、ここから2本目のスキャンパスによる試験結果が出力される。
上記のような半導体集積回路70の製造後において、同じクロックドメインのtest/RAM72〜77の試験を行う場合について説明する。
MTC116は、TAPC115の制御のもと、AND回路84,85に供給するクロックドメイン選択信号を“1”として、その他のAND回路82,83,86,87,108〜111に供給するクロックドメイン選択信号を“0”とする。
また、端子117には、セレクタ114a,114bが端子120,121から入力される試験データを選択し、セレクタ90a,90bがOR回路88,89の出力信号を選択するような選択信号が供給される。たとえば、選択信号が“1”の場合は自身の階層の試験結果を選択し、選択信号が“0”の場合は、自身の階層の試験結果を選択しない、とした場合、フリップフロップ114cには“0”、フリップフロップ90cには、“1”が設定される。
これにより、端子120,121から入力される試験データは、トップ階層の階層制御回路114を介して、下位階層の端子94,95に入力される。そして、シリアル接続されるtest/RAM72〜74と、test/RAM75〜77で、各試験データによる試験が行われ、その結果がAND回路84,85に入力される。
AND回路84,85に入力されるクロックドメイン選択信号は、“1”となっているので、AND回路84,85からは、test/RAM72〜74と、test/RAM75〜77の試験結果に応じた値が出力される。
OR回路88には、AND回路84からの出力信号のほか、AND回路82,86からの出力信号も入力されているが、AND回路82,86の出力信号は“0”で固定されている。そのため、OR回路88は、AND回路84の出力信号に応じた値、すなわち、test/RAM72〜74の試験結果に応じた値を出力する。
一方、OR回路89には、AND回路85からの出力信号のほか、AND回路83,87からの出力信号も入力されているが、AND回路83,87の出力信号は“0”で固定されている。そのため、OR回路89は、AND回路85の出力信号に応じた値、すなわち、test/RAM75〜77の試験結果に応じた値を出力する。
セレクタ90a,90bは、自身の階層の試験結果を出力するように設定されているため、セレクタ90aはtest/RAM75〜77の試験結果を出力し、セレクタ90bはtest/RAM72〜74の試験結果を出力する。セレクタ90a,90bから出力される試験結果は、フリップフロップ90d,90e、端子97,98を経由して、端子122,123から出力される。
このような半導体集積回路70では、同じクロックドメインのtest/RAMをシリアル接続することで、配線が混雑してレイアウトの妨げとなることを防止できる。また、スキャンパスを、各クロックドメインで2つに分割しているため、1本のチェーン長が長くなることを防止できる。なお、分割数は、3つ以上の構造をとることも可能である。その場合は、さらに1本のチェーン長が長くなることを防止できる。
以上のような半導体集積回路70をコンピュータ20上で設計するには、図5で示したような階層設計が行われる。階層設計における下位階層の回路ブロックのテスト設計時には、図12の端子91〜96に各種信号が設定され、上記のような試験が行われる。
トップ階層のテスト設計における論理検証時には、たとえば、以下のような検証用モデルが適用される。
図13は、トップ階層の論理検証時の論理検証モデルの一例を示す図である。
ここでは、図12に示した下位階層の回路ブロックの、test/RAM71〜81を削除した検証用モデル130をトップ階層の回路ブロックに組み込んだ例を示している。
なお、検証用モデル130は、階層制御回路90以外の全ての配線、論理などを削除するようにしてもよい。
トップ階層の回路ブロックの論理検証において、同じクロックドメインのtest/RAM100〜104の試験を行う場合について説明する。
MTC116は、TAPC115の制御のもと、AND回路108,109に供給するクロックドメイン選択信号を“1”として、AND回路110,111に供給するクロックドメイン選択信号を“0”とする。
また、端子117に、セレクタ114a,114bがOR回路112,113の出力信号を選択し、セレクタ90a,90bが端子94,95から入力される試験データを選択するような選択信号を設定する。たとえば、選択信号が“1”の場合は自身の階層の試験結果を選択し、選択信号が“0”の場合は、自身の階層の試験結果を選択しない、とした場合、フリップフロップ114cには“1”、フリップフロップ90cには、“0”が設定される。
端子120,121に試験データが設定されると、シリアル接続されるtest/RAM100〜102と、test/RAM103,104で、各試験データによる試験が行われ、その結果がAND回路108,109に入力される。
AND回路108,109に入力されるクロックドメイン選択信号は、“1”となっているので、AND回路108,109からは、test/RAM100〜102と、test/RAM103,104の試験結果に応じた値が出力される。
OR回路112には、AND回路108からの出力信号のほか、AND回路110からの出力信号も入力されているが、AND回路110の出力信号は“0”で固定されている。そのため、OR回路112は、AND回路108の出力信号に応じた値、すなわち、test/RAM100〜102の試験結果に応じた値を出力する。
一方、OR回路113には、AND回路109からの出力信号のほか、AND回路111からの出力信号も入力されているが、AND回路111の出力信号は“0”で固定されている。そのため、OR回路113は、AND回路109の出力信号に応じた値、すなわち、test/RAM103,104の試験結果に応じた値を出力する。
セレクタ114a,114bは、自身の階層の試験結果を出力するように設定されているため、セレクタ114aはtest/RAM103,104の試験結果を出力し、セレクタ114bはtest/RAM100〜102の試験結果を出力する。セレクタ114a,114bから出力される試験結果は、フリップフロップ114d,114eを介して下位階層の検証用モデル130の端子94,95に入力される。
下位階層の検証用モデル130の階層制御回路90のセレクタ90a,90bは、端子94,95からの試験データを選択するように設定されている。そのため、test/RAM103,104、test/RAM100〜102の試験結果はそれぞれ、フリップフロップ90d,90eと、端子97,98を介して、端子122,123から出力される。
以上のように、トップ階層の検証の際に、下位階層の回路ブロックの論理数を削減することで、トップ階層の論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ20の使用メモリ容量も削減することができる。
(変形例1)
図14は、下位階層の回路ブロックが更に下位階層の回路ブロックを含む場合の半導体集積回路の一例を示す図である。
図14の半導体集積回路70aにおいて、図12、図13に示したトップ階層の回路ブロックについては図示を省略している。また、図12に示した下位階層の回路ブロックの要素に対応する要素については同一符号を付している。
半導体集積回路70aにおいて、図12に示した下位階層の回路ブロック内に設けられる下位階層の回路ブロックは、test/RAM141,142,143,144,145と、AND回路146,147,148,149と、OR回路150,151と、階層制御回路152を有している。この階層の回路ブロックの境界には端子153,154,155,156,157,158,159,160が設けられている。
図14に示す例では、test/RAM141〜145のうち、test/RAM141,142のグループは、test/RAM71と同じクロックドメインである。test/RAM143〜145のグループは、test/RAM72〜77と同じクロックドメインである。
AND回路146は、端子153から入力されるクロックドメイン選択信号と、test/RAM141からの出力信号とのAND論理を出力する。AND回路147は、端子153から入力されるクロックドメイン選択信号と、test/RAM142からの出力信号とのAND論理を出力する。AND回路148は、端子154から入力されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM143,144の最後段のtest/RAM144からの出力信号とのAND論理を出力する。AND回路149は、端子154から入力されるクロックドメイン選択信号と、test/RAM145からの出力信号とのAND論理を出力する。
OR回路150は、AND回路146,148のOR論理を出力する。OR回路151は、AND回路147,149のOR論理を出力する。
階層制御回路152は、セレクタ152a,152b、フリップフロップ152c,152d,152eを有している。
セレクタ152aは、端子157からフリップフロップ152cを介して供給される選択信号に応じてOR回路151からの出力信号か、端子155から供給される試験データの何れかを選択して出力する。セレクタ152bは、端子157からフリップフロップ152cを介して供給される選択信号に応じてOR回路150からの出力信号か、端子156から供給される試験データの何れかを選択して出力する。
フリップフロップ152cは、端子157から供給される選択信号を、クロック信号に同期して取り込み、セレクタ152a,152bに供給するとともに、端子158に供給する。なお、端子158は上位の下位階層の回路ブロックの端子161に接続されている。
フリップフロップ152dは、クロック信号に同期してセレクタ152aからの出力信号を取り込み、端子160に供給する。フリップフロップ152dは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ152eは、クロック信号に同期してセレクタ152bからの出力信号を取り込み、端子159に供給する。フリップフロップ152eは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
なお、端子159,160は、それぞれ上位の下位階層の回路ブロックの端子162,163に接続されている。ここでは図示を省略しているが、端子162,163は、それぞれ、図12に示したトップ階層の回路ブロックの端子122,123に接続されている。
このような半導体集積回路70aの製造後の試験において、test/RAM72〜77,143〜145のクロックドメインの試験を行う場合について説明する。
test/RAM72〜77の試験時の動作については前述しているので省略する。
test/RAM72〜77を介した試験データは、セレクタ90a,90b、フリップフロップ90d,90eを介して、端子155,156に入力される。
test/RAM143〜145のクロックドメインの試験を行う場合、AND回路146,147の出力信号は“0”に固定されるため、OR回路150,151からは、AND回路148,149の出力信号に応じた値が出力される。すなわち、OR回路150,151からは、test/RAM143〜145での試験結果に応じた値が出力される。
test/RAM143〜145における試験を行う場合、セレクタ152a,152bは、この階層の試験結果を出力するように設定されるので、セレクタ152aからは、test/RAM145での試験結果に応じた値が出力される。また、セレクタ152bからは、test/RAM143,144での試験結果に応じた値が出力される。
セレクタ152a,152bから出力される試験結果は、それぞれフリップフロップ152d,152e,端子159,160,162,163を介して、図12に示したトップ階層の端子122,123から出力される。
このような半導体集積回路70aを、たとえば、コンピュータ20で設計する際には、図14の上位の下位階層の回路ブロックと、その回路ブロックに含まれる下位の階層の回路ブロックを別々に設計することができる。
また、上位の下位階層の回路ブロックの論理検証を行う際、この階層を前述のトップ階層とみて、この階層に組み込まれる下位階層の回路ブロックにおいて、test/RAM141〜145などを削除することによって論理数を削減してもよい。これにより、論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ20の使用メモリ容量も削減することができる。
(変形例2)
図15は、パワードメインが異なる回路ブロックが存在する場合の半導体集積回路の一例を示す図である。
半導体集積回路70bは、パワードメインPD1とパワードメインPD2の下位階層の回路ブロックが存在し、パワードメインPD1の下位階層の回路ブロックと、パワードメインPD2の下位階層の回路ブロックでは、異なる電源制御が行われる。トップ階層の回路ブロックについては図示を省略しているが、パワードメインPD1としており、パワードメインPD1の下位階層の回路ブロックとの間で、図12に示したようなスキャンパスが形成されている。また、図15において、図12に示した下位階層の回路ブロックの要素に対応する要素については同一符号を付している。
パワードメインPD2の下位階層の回路ブロックは、test/RAM171,172,173,174,175と、AND回路176,177,178,179と、OR回路180,181と、階層制御回路182を有している。この階層の回路ブロックの境界には端子183,184,185,186,187,188,189,190,191が設けられている。
図15に示す例では、test/RAM171〜175のうち、test/RAM171,172のグループが同じクロックドメインであり、test/RAM173〜175のグループが同じクロックドメインである。
AND回路176は、端子183から入力されるクロックドメイン選択信号と、test/RAM171からの出力信号とのAND論理を出力する。AND回路177は、端子183から入力されるクロックドメイン選択信号と、test/RAM172からの出力信号とのAND論理を出力する。AND回路178は、端子184から入力されるクロックドメイン選択信号と、シリアルに接続されたtest/RAM173,174の最後段のtest/RAM174からの出力信号とのAND論理を出力する。AND回路179は、端子184から入力されるクロックドメイン選択信号と、test/RAM175からの出力信号とのAND論理を出力する。
OR回路180は、AND回路176,178のOR論理を出力する。OR回路181は、AND回路177,179のOR論理を出力する。
階層制御回路182は、セレクタ182a,182b、フリップフロップ182c,182d,182eを有している。
セレクタ182aは、端子188からフリップフロップ182cを介して供給される選択信号に応じてOR回路181からの出力信号か、端子185から供給される試験データの何れかを選択して出力する。セレクタ182bは、端子188からフリップフロップ182cを介して供給される選択信号に応じてOR回路180からの出力信号か、端子186から供給される試験データの何れかを選択して出力する。
端子185,186は、トップ階層の回路ブロックの端子120,121に直接接続されている。
フリップフロップ182cは、端子188から供給される選択信号を、端子187から供給されるクロック信号に同期して取り込み、セレクタ182a,182bに供給するとともに、端子189に供給する。なお、端子187は、トップ階層の回路ブロックの端子119に直接接続されており、端子188は、トップ階層の回路ブロックの端子117に直接接続されている。
フリップフロップ182dは、クロック信号に同期してセレクタ182aからの出力信号を取り込み、端子191に供給する。フリップフロップ182dは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ182eは、クロック信号に同期してセレクタ182bからの出力信号を取り込み、端子190に供給する。フリップフロップ182eは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
また、このような半導体集積回路70bでは、トップ階層の回路ブロックにPMU(Power Management Unit)192と、セレクタ193,194を有している。
PMU192は、TAPC115の制御のもと、セレクタ193,194に、パワードメインPD1,PD2のどちらからの試験結果を出力させるか指定する選択信号を供給する。
セレクタ193は、パワードメインPD1の下位階層の回路ブロックのフリップフロップ90eからの出力信号か、パワードメインPD2の下位階層の回路ブロックのフリップフロップ182eの出力信号の何れかを選択信号に応じて選択する。そして、セレクタ193は、選択した出力信号を端子122から出力する。
セレクタ194は、パワードメインPD1の下位階層の回路ブロックのフリップフロップ90dからの出力信号か、パワードメインPD2の下位階層の回路ブロックのフリップフロップ182dの出力信号の何れかを選択信号に応じて選択する。そして、セレクタ194は、選択した出力信号を端子123から出力する。
たとえば、パワードメインPD1での試験結果を出力する場合には、セレクタ193,194において、フリップフロップ90d,90eからの出力信号が選択される。パワードメインPD2での試験結果を出力する場合には、セレクタ193,194において、フリップフロップ182d,182eからの出力信号が選択される。
上記のような半導体集積回路70bでは、異なるパワードメインの回路ブロックでは異なるスキャンパスとして、セレクタ193,194により、どのパワードメインにおける試験結果を出力するか、選択できるようにしている。
このように、異なるパワードメインの回路ブロックがある場合でも、セレクタ193,194などを追加することによって、図12に示した半導体集積回路70と同様の効果を得ることができる。
なお、本実施の形態の回路設計方法は、前述のように、コンピュータによって実現することができる。その場合、コンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上、実施の形態に基づき、本発明の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
(付記1) コンピュータによって実行される回路設計方法であって、
階層設計データの各階層の回路ブロックに含まれる試験回路モデルを、階層内及び階層間でシリアル接続し、自身の階層の前記試験回路モデルを経由した試験データか、前記自身の階層の前記試験回路モデルを経由しない試験データの何れかを選択して出力する選択部を各階層に設けることを特徴とする回路設計方法。
(付記2) 第1の階層の回路ブロックを含む第2の階層の回路ブロックの論理検証時に、論理検証済みの前記第1の階層の回路ブロックを、前記選択部以外の論理数を削減して前記第2の階層の回路ブロックに組み込み、
論理数を削減した前記第1の階層の回路ブロックに含まれる前記選択部に前記第1の階層の前記試験回路モデルを経由しない試験データを出力させて、前記第2の階層の回路ブロックの論理検証を行うことを特徴とする付記1記載の回路設計方法。
(付記3) 第1の階層の回路ブロックを含む第2の階層の回路ブロックの論理検証時に、論理検証済みの前記第1の階層の回路ブロックから、試験対象回路モデル及び前記試験回路モデルを削除して前記第2の階層の回路ブロックに組み込み、
前記試験対象回路モデル及び前記試験回路モデルを削除した前記第1の階層の回路ブロックに含まれる前記選択部に、前記試験回路モデルを経由しない試験データを出力させて、前記第2の階層の回路ブロックの論理検証を行うことを特徴とする付記1または2に記載の回路設計方法。
(付記4) 同じクロックドメインの複数の試験対象回路モデルを試験する複数の前記試験回路モデルを、複数本のパスでシリアル接続することを特徴とする付記1乃至3の何れか一項に記載の回路設計方法。
(付記5) 前記試験回路モデルは、スキャンパス構造をもつことを特徴とする付記1乃至4の何れか一項に記載の回路設計方法。
(付記6) 階層設計データの各階層の回路ブロックに含まれる試験回路モデルを、階層内及び階層間でシリアル接続し、
自身の階層の前記試験回路モデルを経由した試験データか、前記自身の階層の前記試験回路モデルを経由しない試験データの何れかを選択して出力する選択部を各階層に設ける処理をコンピュータに実行させるプログラム。
(付記7) 階層設計された各階層の回路ブロックに設けられ、階層内及び階層間でシリアル接続された複数の試験回路と、
前記各階層の回路ブロックに設けられ、自身の階層の前記試験回路を経由した試験データか、前記自身の階層の前記試験回路を経由しない試験データの何れかを選択して出力する選択部と、
を有することを特徴とする半導体集積回路。
(付記8) 同じクロックドメインの複数の試験対象回路を試験する複数の前記試験回路は、複数本のパスでシリアル接続されていることを特徴とする付記7記載の半導体集積回路。
(付記9) 前記試験回路は、スキャンパス構造をもつことを特徴とする付記7または8に記載の半導体集積回路。
1 コンピュータ
2,3,7,8 試験対象回路モデル
4,5,9,10 試験回路モデル
6,11 選択部

Claims (6)

  1. コンピュータによって実行される回路設計方法であって、
    第1の階層の第1の回路ブロックに含まれる第1の試験回路モデルと、前記第1の回路ブロックを含む第2の階層の第2の回路ブロックに含まれる第2の試験回路モデルを、前記第1の階層内、前記第2の階層内及び前記第1の階層と前記第2の階層間でシリアル接続し、
    前記第1の試験回路モデルを経由した第1の試験データか、前第1の試験回路モデルを経由しない第2の試験データの何れかを選択して出力する第1の選択部を前記第1の回路ブロック設け、前記第2の試験回路モデルを経由した第3の試験データか、前記第2の試験回路モデルを経由しない第4の試験データの何れかを選択して出力する第2の選択部を前記第2の回路ブロックに設けることを特徴とする回路設計方法。
  2. 前記第2の回路ブロックの論理検証時に、論理検証済みの前記第1の回路ブロックを、前記第1の選択部以外の論理数を削減して前記第2の回路ブロックに組み込み、
    論理数を削減した前記第1の回路ブロックに含まれる前記第1の選択部に前記第2の試験データを出力させて、前記第2の回路ブロックの論理検証を行うことを特徴とする請求項1記載の回路設計方法。
  3. 前記第2の回路ブロックの論理検証時に、論理検証済みの前記第1の回路ブロックから、第1の試験対象回路モデル及び前記第1の試験回路モデルを削除して前記第2の回路ブロックに組み込み、
    前記第1の試験対象回路モデル及び前記第1の試験回路モデルを削除した前記第1の回路ブロックに含まれる前記第1の選択部に、前記第2の試験データを出力させて、前記第2の回路ブロックの論理検証を行うことを特徴とする請求項1または2に記載の回路設計方法。
  4. 同じクロックドメインの複数の試験対象回路モデルを試験する複数の前記第1の試験回路モデルまたは前記第2の試験回路モデルを、複数本のパスでシリアル接続することを特徴とする請求項1乃至3の何れか一項に記載の回路設計方法。
  5. 第1の階層の第1の回路ブロックに含まれる第1の試験回路モデルと、前記第1の回路ブロックを含む第2の階層の第2の回路ブロックに含まれる第2の試験回路モデルを、前記第1の階層内、前記第2の階層内及び前記第1の階層と前記第2の階層間でシリアル接続し、
    前記第1の試験回路モデルを経由した第1の試験データか、前第1の試験回路モデルを経由しない第2の試験データの何れかを選択して出力する第1の選択部を前記第1の回路ブロック設け、前記第2の試験回路モデルを経由した第3の試験データか、前記第2の試験回路モデルを経由しない第4の試験データの何れかを選択して出力する第2の選択部を前記第2の回路ブロックに設ける処理をコンピュータに実行させるプログラム。
  6. 第1の階層の第1の回路ブロックに含まれる第1の試験回路と、
    前記第1の回路ブロックを含む第2の階層の第2の回路ブロックに含まれる第2の試験回路と、
    前記第1の回路ブロックに設けられ、前記第1の試験回路を経由した第1の試験データか、前第1の試験回路を経由しない第2の試験データの何れかを選択して出力する第1の選択部と、
    前記第2の回路ブロックに設けられ、前記第2の試験回路を経由した第3の試験データか、前記第2の試験回路を経由しない第4の試験データの何れかを選択して出力する第2の選択部と、を有し、
    前記第1の試験回路と前記第2の試験回路は、前記第1の階層内、前記第2の階層内及び前記第1の階層と前記第2の階層間でシリアル接続されている、
    ことを特徴とする半導体集積回路。
JP2010282349A 2010-12-17 2010-12-17 回路設計方法、プログラム及び半導体集積回路 Expired - Fee Related JP5668457B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010282349A JP5668457B2 (ja) 2010-12-17 2010-12-17 回路設計方法、プログラム及び半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010282349A JP5668457B2 (ja) 2010-12-17 2010-12-17 回路設計方法、プログラム及び半導体集積回路

Publications (2)

Publication Number Publication Date
JP2012128819A JP2012128819A (ja) 2012-07-05
JP5668457B2 true JP5668457B2 (ja) 2015-02-12

Family

ID=46645727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010282349A Expired - Fee Related JP5668457B2 (ja) 2010-12-17 2010-12-17 回路設計方法、プログラム及び半導体集積回路

Country Status (1)

Country Link
JP (1) JP5668457B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456961B1 (en) * 1999-04-30 2002-09-24 Srinivas Patil Method and apparatus for creating testable circuit designs having embedded cores
JP2004258791A (ja) * 2003-02-24 2004-09-16 Renesas Technology Corp 半導体集積回路のスキャンパス設計方法
JP2005346326A (ja) * 2004-06-02 2005-12-15 Sony Corp マクロ回路設計装置、マクロ回路設計方法、マクロ回路、lsi設計装置、lsi設計方法、記録媒体、およびプログラム

Also Published As

Publication number Publication date
JP2012128819A (ja) 2012-07-05

Similar Documents

Publication Publication Date Title
US8136082B2 (en) Method for testing integrated circuits
US8458629B2 (en) Decision modules in integrated circuit design
US7562321B2 (en) Method and apparatus for structured ASIC test point insertion
US20050268258A1 (en) Rule-based design consultant and method for integrated circuit design
US8051400B2 (en) Modifying integrated circuit layout
US6862717B2 (en) Method and program product for designing hierarchical circuit for quiescent current testing
US10235485B1 (en) Partial reconfiguration debugging using hybrid models
US7856608B2 (en) Method and apparatus for generating current source noise model for creating semiconductor device model used in power supply noise analysis
CN112069763A (zh) 修正电路的方法
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US11256839B1 (en) IP block scan chain construction
US7840924B2 (en) Apparatus, method, and program for verifying logic circuit operating with multiple clock signals
JP5668457B2 (ja) 回路設計方法、プログラム及び半導体集積回路
JP2009517759A (ja) Ic設計方法およびic設計ツール
US7086017B1 (en) Method of post-implementation simulation of a HDL design
Doerre et al. The IBM ASIC/SoC methodology—A recipe for first-time success
JP6316311B2 (ja) パターンベースの電源グランド(pg)ルーティングおよびビア生成
JP7069608B2 (ja) 半導体設計支援装置、半導体設計支援方法及びプログラム
JP5799645B2 (ja) 電源電圧設定方法及び電源電圧設定プログラム
JP5146369B2 (ja) 回路設計プログラム、回路設計方法および回路設計装置
JP5899781B2 (ja) 設計支援装置、設計支援方法および設計支援プログラム
März et al. Rerouting and guided-repair strategies to resolve lithography hotspots
JP2003345851A (ja) 論理検証方法及びプログラム
JP5625241B2 (ja) 半導体装置及びその試験方法
JPWO2010101029A1 (ja) 半導体集積回路設計装置、半導体集積回路設計方法、及び半導体集積回路設計プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140616

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141201

R150 Certificate of patent or registration of utility model

Ref document number: 5668457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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