IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

特開2022-119157半導体集積回路及びその設計方法、設計支援システム、及びプログラム
<>
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図1A
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図1B
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図1C
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図1D
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図1E
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図1F
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図2A
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図2B
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図3
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図4
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図5
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図6
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図7
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図8
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図9
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図10
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図11
  • 特開-半導体集積回路及びその設計方法、設計支援システム、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022119157
(43)【公開日】2022-08-16
(54)【発明の名称】半導体集積回路及びその設計方法、設計支援システム、及びプログラム
(51)【国際特許分類】
   G11C 29/16 20060101AFI20220808BHJP
   G01R 31/28 20060101ALI20220808BHJP
【FI】
G11C29/16
G01R31/28 B
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2021110627
(22)【出願日】2021-07-02
(31)【優先権主張番号】P 2021015745
(32)【優先日】2021-02-03
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【弁理士】
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(74)【代理人】
【識別番号】100098327
【弁理士】
【氏名又は名称】高松 俊雄
(72)【発明者】
【氏名】山際 貴志
【テーマコード(参考)】
2G132
5L206
【Fターム(参考)】
2G132AA08
2G132AB01
2G132AG01
2G132AH00
2G132AK29
2G132AL21
5L206AA17
5L206DD50
5L206EE08
(57)【要約】
【課題】半導体集積回路において、メモリのグループ分けの再試行の削減とメモリテスト中の同時スイッチングによるピークパワーの増加を防止する。
【解決手段】実施の形態に係る半導体集積回路は、複数のメモリと、複数のメモリを制御する第1制御回路とを備える。第1制御回路は、複数のメモリの動作時において、ライト制御及びリード制御の少なくともいずれかを行う第1の状態遷移回路と、第1の状態遷移回路に接続され、複数のメモリのテストを第1の状態遷移回路に順次実行させることが可能である第2の状態遷移回路とを備える。
【選択図】図1E
【特許請求の範囲】
【請求項1】
複数のメモリと、
前記複数のメモリを制御する第1制御回路と
を備え、
前記第1制御回路は、前記複数のメモリの動作時において、ライト制御及びリード制御の少なくともいずれかを行う第1の状態遷移回路と、
前記第1の状態遷移回路に接続され、前記複数のメモリのテストを前記第1の状態遷移回路に順次実行させることが可能である第2の状態遷移回路を備える、半導体集積回路。
【請求項2】
前記第1制御回路によって制御されるメモリとは異なる少なくとも1つのメモリを制御可能である第2制御回路を更に備え、
前記第1制御回路は、前記第2制御回路のクロック信号の位相に対して、前記第1制御回路のクロック信号の位相を制御するクロック位相制御回路を備える、請求項1に記載の半導体集積回路。
【請求項3】
前記第1制御回路は、クロック位相制御回路を更に備え、
前記クロック位相制御回路は、オリジナルのクロック信号に対して前記第1制御回路のクロック信号の位相をずらす遅延論理素子と、前記オリジナルのクロック信号に対する前記第1制御回路のクロック信号の位相差を設定する位相設定レジスタと、前記オリジナルのクロック信号及び前記位相差が設定されたクロック信号のいずれかを選択するセレクタとを備える、請求項1に記載の半導体集積回路。
【請求項4】
前記複数のメモリの動作時とは、前記複数のメモリのテスト時である、請求項1~3のいずれか1項に記載の半導体集積回路。
【請求項5】
少なくとも第1のメモリ、第2のメモリ、及び第3のメモリからなる複数のメモリと、前記第1のメモリ及び前記第2のメモリと、前記第3のメモリとを独立して制御可能な制御回路とを備える複数の機能ブロックと、
前記制御回路に接続され、前記制御回路にアクセス可能なアクセス回路と
を備え、
前記アクセス回路は、前記第1及び第2のメモリの制御動作終了後に、前記第3のメモリの制御動作を開始するか、又は前記第3のメモリの制御動作終了後に、前記第1及び第2のメモリの制御動作を開始するためのイネーブル信号を前記制御回路に伝達可能である、半導体集積回路。
【請求項6】
前記アクセス回路は、前記イネーブル信号により前記制御回路を起動させるカウンタ制御回路を備える、請求項5に記載の半導体集積回路。
【請求項7】
前記カウンタ制御回路は、前記複数の機能ブロックの内の1つの機能ブロックの動作時において、動作開始後に供給されるクロック信号のパルス数をカウントした後、次の機能ブロックの動作を開始させるカウンタ回路を備える、請求項6に記載の半導体集積回路。
【請求項8】
前記カウンタ制御回路は、前記クロック信号のパルス数をカウントするカウンタ設定レジスタを備える、請求項7に記載の半導体集積回路。
【請求項9】
半導体集積回路に搭載される複数のメモリについて、メモリの配置情報と機能情報とに基づいて、前記複数のメモリを複数のブロックにグループ化し、
前記複数のブロックのうちの少なくとも一つのブロックにおいて、テストサイクル数に基づき、前記少なくとも一つのブロックを複数のサブブロックに分割し、
前記複数のサブブロックに分割した後、前記複数のブロックがメモリテスト時にそれぞれ消費する電力である消費電力情報を計算し、
前記複数のブロックの前記消費電力情報に基づいて、前記複数のブロックを複数の上位ブロックにグループ化する、半導体集積回路の設計方法。
【請求項10】
前記複数のメモリを複数のブロックにグループ分けするとき、同じメモリタイプのメモリ同士を同じグループにする請求項9に記載の半導体集積回路の設計方法。
【請求項11】
前記複数のメモリを複数のブロックにグループ分けするとき、同じクロック信号に接続されたメモリ同士を同じグループにする請求項9に記載の半導体集積回路の設計方法。
【請求項12】
前記ブロックに含まれる複数のメモリを前記複数のサブブロックに分割するとき、
メモリテスト時に最大のテストサイクル数を必要とする複数のメモリの一つを、一つのサブブロックに設定し、
メモリのテストサイクル数の合計が前記最大のテストサイクル数以下になるように、他のサブブロックに残りのメモリを設定する、請求項9に記載の半導体集積回路の設計方法。
【請求項13】
前記複数のブロックを複数の上位ブロックにグループ分けするとき、
メモリテスト時に最大の消費電力を必要とする一つのブロックを、一つの上位ブロックに設定し、
ブロックの消費電力の合計が前記最大の消費電力以下になるように、他の上位ブロックに残りのブロックを設定する、請求項9に記載の半導体集積回路の設計方法。
【請求項14】
前記テストサイクル数はメモリテスト時に実行されるメモリのテスト回数である、請求項9~13のいずれか1項に記載の導体集積回路の設計方法。
【請求項15】
CPUサーバと、
前記CPUサーバのデータを格納する記憶媒体と
を備え、
前記CPUサーバは、複数のブロックが複数のメモリを含むとき、前記複数のブロック及び前記複数のメモリについて分割処理を実行するメモリ分割処理部と、前記複数のメモリのテストを実行可能なメモリBIST回路生成部とを含み、
前記メモリ分割処理部は、
前記複数のメモリのそれぞれのテストサイクル数を算出可能なテストサイクル算出部と、
前記それぞれのテストサイクル数の少なくとも一つをテストサイクル閾値として設定可能なテストサイクル閾値設定部と、
テストサイクル数に基づいて一つのブロックが含む複数のメモリについて複数のサブブロックに分割する第1メモリ分割部と、
消費電力算出部と、
消費電力閾値設定部と、
前記複数のブロックの消費電力情報に基づいて前記複数のブロックを複数の上位ブロックにグループ化するメモリグループ化部と、を有し、
前記記憶媒体は、メモリ情報格納部と、テストアルゴリズム情報格納部と、テストサイクル値格納部と、消費電力値格納部と、閾値格納部と、メモリ分割情報格納部とを備える、設計支援システム。
【請求項16】
前記テストサイクル算出部は、メモリ定義データとテストアルゴリズム定義データに基づいて前記複数のメモリのそれぞれのテストサイクル数を算出し、前記複数のメモリのテストサイクル値データとして前記テストサイクル値格納部に格納し、
前記テストサイクル閾値設定部は、前記テストサイクル閾値を設定し、前記閾値格納部に格納し、
前記第1メモリ分割部は、分割処理を実行し、分割処理後のデータを前記メモリ分割情報格納部にサブブロックの近傍メモリの分割情報データとして格納し、
前記消費電力算出部は、前記複数のメモリのテストサイクル値データに基づいて消費電力を算出し、消費電力値データとして前記消費電力値格納部に格納し、
前記消費電力閾値設定部は、前記消費電力値データに基づいて消費電力の閾値を設定し、前記消費電力の閾値データとして前記閾値格納部に格納し、
前記メモリグループ化部は、グループ化を実行し、グループ化後のデータを前記メモリ分割情報格納部に上位ブロックの機能ブロックの分割情報データとして格納し、
前記メモリBIST回路生成部は、前記メモリ分割情報格納部に格納されている前記サブブロックの近傍メモリの分割情報データ及び前記上位ブロックの機能ブロックの分割情報データに基づいて、メモリBIST回路を生成する、請求項15に記載の設計支援システム。
【請求項17】
設計支援システムに用いられるコンピュータのプログラムであって、
複数のメモリについて、メモリの配置情報と機能情報とに基づいて、前記複数のメモリを複数のブロックにグループ化すること、
前記複数のメモリのそれぞれのワード数及び又はビット幅構成とテストアルゴリズムから、前記複数のメモリのテストに必要なテストサイクル数を計算すること、
前記複数のブロックのうちの少なくとも一つのブロックが含む複数のメモリの最大テストサイクル数を第1閾値として設定すること、
前記最大テストサイクル数を持つメモリを一つのサブブロックに振り分け、前記少なくとも一つのブロックが含む残りのメモリを、前記第1閾値に収まる範囲で他のサブブロックに振り分けること、
前記複数のブロックのテストサイクル数から各ブロックの同時スイッチング率による消費電力を計算すること、
前記消費電力から、最大の消費電力を有する前記複数のブロックの一つを上位ブロックに振り分け、前記最大の消費電力を第2閾値として設定すること、
前記複数のブロックの他のブロックに対して、前記第2閾値を超えないように上位ブロックに振り分けること、
を前記コンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、半導体集積回路及びその設計方法、設計支援システム及びプログラムに関する。
【背景技術】
【0002】
半導体集積回路において、組み込み自己テスト(BIST:Build-In Self-Test)によるテスト対象メモリのグループ分けは、配置ベース主体の分割へ移行している。メモリタイプやテストサイクル情報による分割で発生する配線混雑を緩和するためである。一方、現在主流となっている配置ベースのメモリグループ分けでは、1つのBIST制御回路が多くのメモリを制御する。メモリの構成に関係なくグループ分けされる。また、テスト時のテストサイクルに関係なくグループ分けされる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010-250905号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の一実施形態では、メモリのグループ分けの再試行の削減とメモリテスト中の同時スイッチングによるピークパワーの増加を防止する半導体集積回路及びその設計方法、設計支援システム、及びプログラムを提供する。
【課題を解決するための手段】
【0005】
実施の形態に係る半導体集積回路は、複数のメモリと、複数のメモリを制御する第1制御回路とを備える。第1制御回路は、複数のメモリの動作時において、ライト制御及びリード制御の少なくともいずれかを行う第1の状態遷移回路と、第1の状態遷移回路に接続され、複数のメモリのテストを第1の状態遷移回路に順次実行させることが可能である第2の状態遷移回路とを備える。
【図面の簡単な説明】
【0006】
図1A】第1実施形態に係る半導体集積回路のメモリの分割状態を説明する模式図である。
図1B】第1実施形態に係る半導体集積回路のメモリの分割状態を説明する模式図である。
図1C】第1実施形態に係る半導体集積回路のメモリの分割状態を説明する模式図である。
図1D】第1実施形態に係る半導体集積回路のブロック図である。
図1E】第1実施形態に係るBIST制御回路の説明図である。
図1F】シリアル制御用FSMの動作説明図である。
図2A】第1実施形態の第1例に係る半導体集積回路の動作タイミングチャートである。
図2B】第1実施形態の第2例に係る半導体集積回路の動作タイミングチャートである。
図3】第2実施の形態に係る半導体集積回路のブロック図である。
図4】クロック位相制御回路のブロック図である。
図5】第2実施形態に係る半導体集積回路の動作タイミングチャートである。
図6】第3実施形態に係る半導体集積回路のメモリの分割状態を説明する模式図である。
図7】第3実施形態に係る半導体集積回路のブロック図である。
図8】カウンタ制御回路のブロック図である。
図9】第3実施形態に係る半導体集積回路の動作タイミングチャートである。
図10】実施形態に係る設計支援システムの構成を示す模式図である。
図11】実施形態に係る設計支援システムのサーバ、および記憶媒体の詳細な機能ブロック構成図である。
図12】実施形態に係る設計支援システムで適用するメモリ分割のフローチャートである。
【発明を実施するための形態】
【0007】
次に、図面を参照して、実施の形態について説明する。以下に説明する明細書又は図面の記載において、同様の構成要素には同一の符号を付して説明を省略する。図面は模式的なものである。また、以下に示す実施の形態は、技術的思想を具体化するための装置や方法を例示するものである。実施の形態は、特許請求の範囲において、種々の変更を加えることができる。
【0008】
(第1実施形態に係る半導体集積回路)
図1Aに示すように半導体基板100において、複数のメモリMEMA1~MEMAN、MEMB1~MEMBN、MEMC1~MEMCN、MEMC1~MEMCNが分割されている。メモリMEMA1~MEMANはブロックAに配置され、メモリMEMB1~MEMBNはブロックBに配置され、メモリMEMC1~MEMCNはブロックCに配置され、メモリMEMD1~MEMDNはブロックDに配置される。
【0009】
それぞれのブロックは機能ブロックとしてもよい。機能ブロックとは、特定の機能を有する半導体集積回路(IC:Integrated Circuits)構造のことである。例えば、スタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)、リードオンリメモリ(ROM:Read Only Memory)、ダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)、中央演算処理装置(CPU:Central Processing Unit)などの集積回路が機能ブロックとなる。あるいは機能ブロックは、配置距離が近いメモリ同士でブロックに分けたものでもよい。
【0010】
メモリタイプには、1ポートメモリや2ポートメモリなど複数の種類が存在する。異なるメモリタイプのメモリを同じグループにした場合はテスト制御回路が複雑になるので、同じタイプのメモリ同士でブロックに分けたものでもよい。すなわち、複数のメモリを複数のブロックにグループ分けするとき、同じメモリタイプのメモリ同士を同じグループにしても良い。
【0011】
メモリに接続されるクロック信号の周波数が異なる場合も、テスト制御回路が複雑になる。すなわち、複数のメモリを複数のブロックにグループ分けするとき、同じクロック信号に接続されたメモリ同士を同じグループにしても良い。他に、これらを組み合わせてブロックに分けられたものであってもよい。このような分割を配置ベースによる分割としてもよい。
【0012】
以降の説明において、ブロックA、B、C、Dはすべて同一の周波数のクロックで作動し、ブロック内におけるメモリは1ポートメモリや2ポートメモリ等の分類において、メモリタイプが同じものであるとする。
【0013】
図1Bは、ブロックAに含まれるメモリのグループ分けの実施例を示す。
【0014】
図1Bで示すように、ブロックAは例えば3個のメモリを含んでいるとする。Cycleの数値は、それぞれのメモリが必要とするテストサイクル値を表している。
【0015】
ブロックAに含まれるメモリは、メモリテスト時に実行されるメモリのテスト回数であるテストサイクル数を指標に用いて分割され、サブブロックA1、サブブロックA2に分割されている。このようなテストサイクルベースの分割は図1Aで示す配置ベースによって分けられたブロックの中が対象となっている。指標となるテストサイクル数は、それぞれのメモリのワード数及び又はビット幅構成、及びテストアルゴリズム情報等から導出し、それに応じてメモリグループが分割される。最大のテストサイクル数を持つメモリを閾値として、残りのメモリは、閾値に収まる範囲で分割される。このように第1の実施形態では、テストサイクル数を指標として3個のメモリはグループA1、A2の2つに分けられる。グループA1はテストサイクル10000のMEMA1を含む。グループA2は6000サイクルのMENA2と4000サイクルのMEMA3とを含む。MEMA1の10000サイクルが閾値となり、MEMA2とMEMA3のテストサイクル数を足した値は閾値を超えていない。また、グループA1、グループA2にはメモリテストを制御するBIST制御回路A1、A2がそれぞれ配置される。これらのテストサイクル数を指標として用いたブロック内のメモリグループの分割を近傍メモリの分割としてもよい。ここで、近傍メモリとは、同じBIST制御回路でテストされる可能性のあるメモリを表す。
【0016】
ブロックに含まれる複数のメモリを複数のサブブロックに分割するとき、メモリテスト時に最大のテストサイクル数を必要とする複数のメモリの一つを、一つのサブブロックに設定し、メモリのテストサイクル数の合計が最大のテストサイクル数以下になるように、他のサブブロックに残りのメモリを設定しても良い。
【0017】
なお、BISTとは、BIST(Built-In Self Test)のことであり、例えば「テストパターンの発生」や「テスト結果と期待値を照合する」こと等を含むテスタ動作をチップ内で行うことをいう。BIST制御回路とは、これらのテスタ動作を制御するチップ内の回路を含む。
【0018】
図示しないがブロックB、C、Dも同様に分割されている。なお、メモリは、ワード数とビット数の大きさに比例して、必要なテストサイクル数が長くなり、BIST制御回路の面積も大きくなる。テストサイクル数の小さいメモリとテストサイクル数の大きいメモリを同じグループにした場合、全体のテストサイクル数は、テストサイクル数の大きいメモリに律速される。そのため、テストサイクル数の近いメモリ同士を同じグループにした方が、全体のテストサイクル数やBIST制御回路の面積に与える影響が小さくなる。
【0019】
図1Cは、第1の実施形態を用いて、ブロックA、B、C、D間の分割がなされている状態を示す。同一ブロックのメモリテストサイクル数は、一番大きなメモリのテストサイクル数に律速される。このため、一番大きなメモリのテストサイクル数をテストサイクル数の上限として閾値として設定する。グループ分けを行う際、メモリのテストサイクル数を加算した値が、この閾値を超えないようにグループ分けを行う。
【0020】
ブロックA1とA2とはそれぞれ、BIST制御回路A1とA2とを有する。
【0021】
ブロックB1とB2とはそれぞれ、BIST制御回路B1とB2とを有する。
【0022】
ブロックC1とC2とはそれぞれ、BIST制御回路C1とC2とを有する。
【0023】
ブロックD1とD2とはそれぞれ、BIST制御回路D1とD2とを有する。
【0024】
図1DでブロックA1とA2と、B1とB2との半導体集積回路1を詳細に説明する。
【0025】
半導体集積回路1は、クロック生成回路53と、クロック生成回路53に接続されたブロックA1、ブロックA2、ブロックB1、ブロックB2と、アクセス制御回路54と、アクセス制御回路54に接続されたBISTアクセス回路56と、BISTアクセス回路56に接続されたBIST制御回路A1、A2、B1、B2とを備える。
【0026】
クロック生成回路53は、リファレンスクロック信号RCLKから、ある周波数のクロック信号CLK1を生成し、内部回路に供給する回路であり、例えば、位相同期回路(PLL:Phase Locked Loop)等で構成される。ここで、内部回路は、ブロックA1、ブロックA2、ブロックB1、ブロックB2等の各回路である。
【0027】
BIST制御回路A1、A2、B1、B2は、メモリBISTテストを制御する回路である。BIST制御回路A1、A2、B1、B2とメモリI/Fは、クロック生成回路53から供給されるクロック信号CLK1に同期している。BISTアクセス回路56は、BIST制御回路A1、A2、B1、B2を管理する回路である。
【0028】
アクセス制御回路54は、BISTアクセス回路56を制御する。アクセス制御回路54には、例えば、IEEE1149.1規格で定義されたジェイタグ(JTAG:Joint Test Action Group)コントローラ(TAPC)を用いる。尚、BISTアクセス回路56は、外部端子から直接制御しても良い。
【0029】
メモリI/Fは、クロック信号CLK1とBIST制御回路A1、A2、B1、B2から生成されるテスト用信号の選択や、期待値比較などを行う回路である。例えば、メモリMEMA2とメモリMEMA3の1つにつき、1つのメモリI/Fが組み込まれている。
【0030】
それぞれのメモリMEMA2、MEMA3は、テスト対象となるメモリである。テスト対象となるメモリには、例えば、SRAM、ROM、DRAM等が適用可能である。
【0031】
なお、図1DではブロックC1、C2、D1、D2を図示しないが、同様に構成される。ブロックC1、C2、D1、D2においても、ブロックA1、A2、B1、B2と同様に、BISTアクセス回路56及びクロック信号CLK1を伝搬する信号線が同様に接続されている。
【0032】
第1実施形態に係る半導体集積回路は、図1Eに示すように、複数のメモリMEMA2、MEMA3と、複数のメモリMEMA2、MEMA3を制御するBIST制御回路A2とを備える。BIST制御回路A2は、複数のメモリの動作時において、ライト制御及びリード制御の少なくともいずれかを行う第1の状態遷移回路(BIST制御FSM)64と、第1の状態遷移回路64に接続され、複数のメモリのテストを第1の状態遷移回路64に順次実行させることが可能である第2の状態遷移回路(シリアル制御用FSM)74とを備える。ここで、複数のメモリの動作時とは、例えば、複数のメモリのテスト時である。
【0033】
図1Eに示すように、ブロックA2内には、BIST制御回路A2と、メモリインターフェイス(I/F)と、メモリMEMA2とメモリMEMA3が配置されている。
【0034】
BIST制御回路A2は、複数のメモリインターフェイス(I/F)に接続されている。
【0035】
BIST制御回路A2は、メモリインターフェイス(I/F)を介してそれぞれメモリメモリMEMA2とメモリMEMA3に接続されている。
【0036】
BIST制御回路A2は、第1の状態遷移回路64と、データジェネレータ66と、アドレスジェネレータ68と、制御信号ジェネレータ70と、結果比較制御回路72とを備える。第1の状態遷移回路64は、BIST制御ステートマシン(FSM:Finite State Machine)で構成される。第1の状態遷移回路64によりデータジェネレータ66、アドレスジェネレータ68、制御信号ジェネレータ70、及び結果比較制御回路72は制御される。
【0037】
第1の状態遷移回路64は、メモリテストにおけるリード(Read)制御及び又はライト(Write)制御等の一連の制御を行うステートマシンである。データジェネレータ66は、メモリのリード(Read)値及びライト(Write)値の少なくともいずれかを生成する回路である。アドレスジェネレータ68は、メモリのアドレス値を生成する回路である。制御信号ジェネレータ70は、メモリのリード制御及びライト制御の少なくともいずれかを行う制御信号を生成する回路である。結果比較制御回路は、BIST制御回路58で生成した期待値と実際のメモリデータ値の比較から、フラグなどを生成する回路である。
【0038】
データジェネレータ66、アドレスジェネレータ68、制御信号ジェネレータ70、及び結果比較制御回路72は、メモリインターフェイス(I/F)に接続されている。
【0039】
BIST制御回路A2には、クロック信号CLK、リセット信号RS、イネーブル信号ENが外部から供給される。リセット信号RSは、BIST制御回路A2の設定を初期化する信号であり、イネーブル信号ENは、BIST制御回路A2のオンオフ動作を制御する信号である。クロック信号CLKはクロック生成回路53から供給される。
【0040】
また、BIST制御回路A2からはデータ出力信号DOが出力される。データ出力信号DOは、内部レジスタの値などを出力するための信号である。ブロックA1、B1、B2、C1、C2、D1、D2もブロックA2と同様に構成される。
【0041】
第1実施の形態に係る半導体集積回路1では、シリアル制御用FSM(ステートマシン)74を組み込むことによって、ブロックA2に含まれるメモリMEMA2、MEMA3のテストが順次開始される。図1Fにシリアル制御用FSM74を備えるBIST制御FSM64の動作を示す。グループA2に含まれるMEMA2、MEMA3に対して、メモリテストを順次開始できる。
【0042】
同様にBIST制御回路B2は、MEMB2、MEMB3のメモリテストの開始タイミングを制御でき、MEMB2の後にMEMB3のテストを行うというように順次開始できるようにしている。
【0043】
同様にBIST制御回路C2は、MEMC2、MEMC3のメモリテストの開始タイミングを制御でき、MEMC2の後にMEMC3のテストを行うというように順次開始できるようにしている。
【0044】
同様にBIST制御回路D2は、MEMD2、MEMD3のメモリテストの開始タイミングを制御でき、MEMD2の後にMEMD3のテストを行うというように順次開始できるようにしている。
【0045】
BIST制御回路A1、B1、C1、D1はそれぞれ、MEMA1、MEMB1、MEMC1、MEMD1のメモリテストの開始タイミングを制御できる。
【0046】
(第1実施形態の第1例に係る半導体集積回路のメモリテスト動作例)
(動作タイミングチャート)
図2Aは第1の実施の形態に係る半導体集積回路の動作タイミングチャートの第1例である。図2Aでは、クロック信号CLKで動作する2つのブロックA1とA2が示されている。メモリMEMA2、MEMA3は、イネーブル信号EN1のオンと共に順次ステートマシンに従って駆動され、メモリMEMA1は、イネーブル信号EN2のオンと同時に駆動される。イネーブル信号EN1がオンの期間では、メモリMEMA2、MEMA3のライト及び又はリード動作及びウエイト動作が実行される。このように、イネーブル信号EN1がオンの期間では、メモリMEMA2、MEMA3のライト及び又はリード動作が順次実行される。イネーブル信号EN2がオンの期間では、メモリMEMA1のライト及び又はリード動作が実行される。
【0047】
イネーブル信号EN1とイネーブル信号EN2が同時にオンの期間t1-t11では、メモリMEMA1、MEMA2へアクセスされ、期間t11-t12では、メモリMEMA3、MEMA1へアクセスされる。
【0048】
図2Aにおいて、メモリMEMA2のライト及び又はリード動作は、t1-t11期間中に6000サイクル繰り返し実行されている。メモリMEMA3のライト及び又はリード動作は、t11-t12期間中に4000サイクル繰り返し実行されている。メモリMEMA1のライト及び又はリード動作は、t1-t12期間中に10000サイクル繰り返し実行されている。
【0049】
(第1実施形態の第1例における効果)
本実施形態の第1例においては、メモリアクセスの分散化が可能となる。このため、ピークパワーの集中を回避できるようになる。
【0050】
また、ピークパワーの集中を回避するため、MEMA1、MEMA2、MEMA3を順番に駆動した場合、ライト及び又はリード動作は合わせて20000サイクル必要になる。第1例においては、メモリテストを分散駆動することで、ピークパワーの集中を低減しテスト時間を短縮できる。
【0051】
(第1実施形態の第2例に係る半導体集積回路のメモリテスト動作例)
図2Bは第1の実施の形態に係る半導体集積回路の動作タイミングチャートの第1例である。図2Bはブロックごとにも第1例のようなメモリアクセスの分散駆動を適用している。図2Bに示すように、機能ブロックA、B、C、Dの間でメモリテスト開始のタイミングを調整し、さらにブロック内でもメモリテスト開始のタイミングを調整することで、メモリアクセスに伴う同時スイッチングを抑制することができる。例えば、10000サイクルまでの間に同時にスイッチングされているメモリは必ず6つ以下になるように調整されている。ここで、機能ブロックとは、特定の機能を有する集積回路構造のことである。例えば、SRAM、ROM、DRAM、中央演算処理装置(CPU:Central Processing Unit)などの集積回路が機能ブロックである。例えば、SRAMという機能ブロックの中で、第1BIST制御回路でテストされる可能性のあるメモリは第1BIST制御回路の近傍メモリである。
【0052】
(第1実施形態の第2例における効果)
本実施形態の第2例においても、メモリアクセスの分散化が可能となる。このため、ピークパワーの集中を回避できるようになる。
【0053】
また、ピークパワーの集中を回避するため、ブロックA、ブロックB、ブロックC、ブロックDと順番に駆動した場合よりも、テスト時間を短縮できる。
【0054】
(第2実施形態に係る半導体集積回路)
第2実施形態に係る半導体集積回路は、図3に示すように、複数のメモリMEMA2、MEMA3と、複数のメモリMEMA2、MEMA3を制御する第1制御回路(BIST制御回路A2)とを備える。BIST制御回路A2は、複数のメモリMEMA2、MEMA3の動作時において、ライト制御及びリード制御の少なくともいずれかを行う第1の状態遷移回路(BIST制御FSM)64と、第1の状態遷移回路(BIST制御FSM)64に接続され、複数のメモリMEMA2、MEMA3のテストを第1の状態遷移回路64に順次実行させることが可能である第2の状態遷移回路(シリアル制御用FSM)74とを備える。複数のメモリMEMA2、MEMA3の動作時とは、複数のメモリMEMA2、MEMA3のテスト時である。
【0055】
第2実施形態に係る半導体集積回路は、第1制御回路(BIST制御回路A2)によって制御されるメモリとは異なる少なくとも1つのメモリを制御可能である第2制御回路を更に備え、第1制御回路(BIST制御回路A2)は、第2制御回路のクロック信号の位相に対して、第1制御回路(BIST制御回路A2)のクロック信号の位相を制御するクロック位相制御回路76を備える。
【0056】
図3に示すように、第2実施形態に係る半導体集積回路では、更に、BIST制御回路A2内にクロック位相制御回路76を備えている。クロック系統が同じ場合、例えば、BIST等の複数のメモリの動作時において、クロック位相制御回路76の動作により、オリジナルのクロック信号CLKに対してクロックの位相をずらし、メモリアクセスに伴う同時スイッチングを減らすことができる。BIST制御回路A1、B1、C1、C2、D1、D2の構成もBIST制御回路A2と同様である。
【0057】
(クロック位相制御回路の具体例)
図4はクロック位相制御回路76のブロック図である。
【0058】
クロック位相制御回路76は、遅延論理素子78と、位相設定レジスタ80と、セレクタ82とを備える。
【0059】
遅延論理素子78は、オリジナルのクロック信号CLKに対して第1制御回路(BIST制御回路A2)のクロック信号CLKOの位相をずらすための論理回路である。
【0060】
位相設定レジスタ80は、オリジナルのクロック信号CLKに対する第1制御回路(BIST制御回路A2)のクロック信号の位相差を設定する。すなわち、位相設定レジスタ80は、オリジナルのクロック信号CLKに対して出力クロック信号CLKOの位相を決定するためのレジスタである。データチェインDCHは、IEEE1149.1規格で定められたデータレジスタのチェインであり、位相設定レジスタ80に供給され、かつ位相設定レジスタ80から出力される。
【0061】
セレクタ82は、オリジナルのクロック信号CLK及び位相差が設定されたクロック信号のいずれかを選択する。
【0062】
図4において、クロック信号CLKは、BIST制御回路A2へ入力されるクロック信号CLK1(図1D)と同じものである。出力クロック信号CLKOは、オリジナルのクロック信号CLKと同相若しくはオリジナルのクロック信号CLKに対して位相がずれたクロック信号である。
【0063】
セレクト信号SELは、クロック信号CLKを選択する信号である。
【0064】
オリジナルのクロック信号CLKに対する出力クロック信号CLKOの位相差によって位相設定レジスタ80の長さが変わる。位相差が、例えば、45°、90°、135°の3段階の場合、レジスタの長さは2ビット必要となる。
【0065】
(動作タイミングチャート)
図5は第2実施の形態に係る半導体集積回路の動作タイミングチャートである。一例として、ブロックAの動作についてのみ示す。
【0066】
(a)まず、メモリテスト開始前に、データチェインDCHから位相設定レジスタ80へアクセスし、所望の位相差の値を設定する。REGISTER SETTINGの期間は、位相設定レジスタ80を設定するアクセス期間である。
【0067】
(b)次に、メモリテスト開始後、時刻t1において、イネーブル信号ENとセレクト信号SELを同時にオンする。
【0068】
(c)イネーブル信号ENとセレクト信号SELがハイレベルHに変化したら、設定した位相差の値をもとに、オリジナルのクロック信号CLKに対して位相がずれた出力クロック信号CLKOをメモリMEMA1、MEMA2、MEMA3へ伝搬し、時刻t2でテストを開始する。ここで、矢印Aに示すように、オリジナルのクロック信号CLKに対して、出力クロック信号CLKOは、位相がずれている。
【0069】
(d)時刻t2―t5の期間において、メモリのライト及び又はリード動作を実行する。MEMA1はCLK0に同期して動作し、MEMA2、MEMA3はCLK1に同期して動作する。
【0070】
(e)時刻t41において、メモリのライト及び又はリード動作が完了し、イネーブル信号ENとセレクト信号SELがローレベルに戻ると、通常のクロックの位相に戻す。ここで、矢印Bに示すように、クロック信号CLKに対して、出力クロック信号CLKOは、位相差がゼロに戻り、位相差が解消されている。
【0071】
なお、ブロックB、ブロックC、ブロックDについても同様の駆動方式を適用することができる。また、第1実施形態に本動作を適用することもできる。
【0072】
(第2実施形態における効果)
メモリアクセスに伴う同時スイッチングをさらに抑制することができる。
【0073】
(第3実施形態に係る半導体集積回路)
図6に第3実施形態における、半導体集積回路のメモリの分割状態を示す。それぞれの機能ブロックA、B、C、Dが含むメモリの最大テストサイクル数を示す。
【0074】
第3実施形態に係る半導体集積回路は、図7に示すように、少なくとも第1のメモリ、第2のメモリ、及び第3のメモリからなる複数のメモリと、第1のメモリ及び第2のメモリと、第3のメモリとを独立して制御可能な制御回路(BIST制御回路A~D)とを備える複数の機能ブロック(A~D)と、制御回路(BIST制御回路A~D)に接続され、制御回路(BIST制御回路A~D)にアクセス可能なBISTアクセス回路56とを備える。
【0075】
BISTアクセス回路56は、第1及び第2のメモリの制御動作終了後に、第3のメモリの制御動作を開始するか、又は第3のメモリの制御動作終了後に、第1及び第2のメモリの制御動作を開始するためのイネーブル信号ENを制御回路(BIST制御回路A~D)に伝達可能である。
【0076】
BISTアクセス回路56は、イネーブル信号ENにより制御回路(BIST制御回路A~D)を起動させるカウンタ制御回路84を備える。
【0077】
図7に示すように、第3実施形態のBISTアクセス回路56には、カウンタ制御回路84が組み込まれている。尚、カウンタ制御回路84は、BISTアクセス回路56と独立に配置されても良い。また、ブロックAにはメモリが2つ、ブロックBにはメモリが1つ、ブロックCにはメモリが2つ、ブロックDにはメモリが1つあるように記載されているがこれに限られない。第1、第2実施形態で説明したように、各ブロック内でさらに近傍メモリによる分割が行われていてもよいし、行われていなくてもよい。
【0078】
BISTアクセス回路56は、すべてのBIST制御回路A、B、C、Dを統括管理する制御回路である。テストを開始する際に、BISTアクセス回路56からBIST制御回路A、B、C、Dを起動するイネーブル信号が出力される。イネーブル信号は、各機能ブロックA、B、C、DのBIST制御回路A、B、C、Dに供給される。カウンタ制御回路84の動作により、異なるタイミングで各機能ブロックにイネーブル信号が伝達するよう制御する。
【0079】
(カウンタ制御回路の具体的例)
図8は、カウンタ制御回路84のブロック図である。任意のタイミングでBIST制御回路A、B、C、Dを起動可能な回路構造である。
【0080】
カウンタ制御回路84は、カウンタ回路86と、カウンタ設定レジスタ88と、ANDゲート90とを備える。
【0081】
カウンタ回路86は、複数の機能ブロックA、B、C、Dの内の1つの機能ブロックの動作時において、動作開始後に供給されるクロック信号CLKのパルス数をカウントした後、次の機能ブロックの動作を開始させる。カウンタ回路86は、クロック信号CLKをカウントし、設定したカウント値がきたらハイレベルHを出力する信号である。
【0082】
カウンタ設定レジスタ88は、カウント値を設定するためのレジスタ回路である。すなわち、カウンタ設定レジスタ88は、クロック信号CLKのパルス数をカウントするレジスタ回路である。データチェインDCHは、IEEE1149.1規格で定められたデータレジスタのチェインであり、カウンタ設定レジスタ88に供給され、かつカウンタ設定レジスタ88から出力される。
【0083】
ANDゲート90は、イネーブル信号ENとカウンタ回路86を通過したクロック信号CLKとの論理積により、イネーブル信号ENOを出力するゲート回路である。
【0084】
(動作タイミングチャート)
図9において、機能ブロックBのメモリのライト及び又はリード動作は、tE1-t1期間中に2000サイクル繰り返し実行されている。機能ブロックCのメモリのライト及び又はリード動作は、tE2-t2期間中に1200サイクル繰り返し実行されている。機能ブロックDのメモリのライト及び又はリード動作は、tE3-t4期間中に5000サイクル繰り返し実行されている。機能ブロックAのメモリのライト及び又はリード動作は、tE1-t4期間中に9500サイクル繰り返し実行されている。
【0085】
図9は第3の実施の形態に係る半導体集積回路の動作タイミングチャートである。図9は、カウンタ制御のタイミングチャートの具体例を示す図である。図9において、機能ブロックA、B、C、Dに属するメモリをそれぞれMEMA、MEMB、MEMC、MEMDで表している。以下に動作を説明する。
【0086】
(a)まず、メモリテスト開始前に、時刻t01において、データチェインDCHからカウンタ設定レジスタ88へアクセスし、ブロックCとブロックDに対して、所望のカウント値を設定する。REGISTER SETTINGの期間は、カウンタ設定レジスタ88を設定するアクセス期間である。
【0087】
(b)次に、メモリテスト開始後、カウント値を設定していないブロックAとブロックBに対して、時刻tE1において、イネーブル信号EN1とイネーブル信号EN4を同時にオンにし、メモリテストを実施する。tE1-t1の期間が機能ブロックBのテスト期間である。tE1-t4の期間が機能ブロックAのテスト期間である。
【0088】
(c)次に、機能ブロックCで設定したカウント値に到達したら時刻tE2において、矢印Cで示すようにブロックCのイネーブル信号EN2をONに変化し、機能ブロックCのテストを開始する。tE2-t2の期間が機能ブロックCのテスト期間である。
【0089】
(d)次に、機能ブロックDで設定したカウント値に到達したら時刻tE3において、矢印Dで示すように機能ブロックDのイネーブル信号EN3をONに変化し、機能ブロックDのテストを開始する。tE3-t4の期間が機能ブロックDのテスト期間である。
【0090】
(第3実施形態における効果)
第3の実施の形態に係る半導体集積回路は、テストサイクルベースの分割(ブロックレベル)で、メモリアクセスに伴う同時スイッチングを抑制するBIST制御回路を提供することができる。
【0091】
第3の実施の形態に係る半導体集積回路は、BIST制御回路を起動させるイネーブル信号を、カウンタ制御回路で個別に制御可能とすることにより、任意のサイクルで、機能ブロック単位でBIST制御回路を起動し、メモリアクセスに伴う同時スイッチングを改善させることができる。
【0092】
テストサイクルベースの分割(ブロックレベル)で、各BIST制御回路のテストサイクル(消費電力)をパラメータとして、ブロックレベルのBIST制御回路を起動し、メモリアクセスに伴う同時スイッチングを改善させることができる。
【0093】
(他の実施形態)
(a)第3実施形態に対して第2実施形態のように機能ブロック内の複数のメモリについてクロックをずらしてもよい。この場合図9において、ブロックAのクロックとブロックB、C、Dのクロックとが異なるクロックになる。この場合、第3実施形態の効果に加えてメモリアクセスに伴う同時スイッチングを改善させることができる。
【0094】
(b)上記実施形態において、機能ブロックA、B、C、DはすべてCLK1のラインに接続されている(図1D図7)。しかし異なったクロックのラインに接続していてもかまわない。例えば、機能ブロックA、BはCLK1、機能ブロックC、DはCLK2と接続していてもよい。このときも上記実施形態は適用可能である。
【0095】
(c)上記実施形態(図7)において、分割された機能ブロックの数は4つであるが、これに限らない。もっと多くてもよいし少なくてもよい。
【0096】
(d)上記実施形態(図1D)において、機能ブロック内での近傍メモリベースによる分割数は最大2つ(例えばブロックAをブロックA1とA2とに分ける)であるがこれに限られず、もっと多く分割してもよい。
【0097】
(e)上記実施形態(図1D)において、近傍メモリベースで分割された機能ブロックの中に含まれるメモリは最大2つだが(例えば機能ブロックA2にはMEMA2とMEMA3を含む)これに限られず、もっと多く含んでいてもよい。
【0098】
(半導体集積回路の設計方法)
以下に、実施の形態に係る半導体集積回路の設計方法について説明する。
【0099】
(a)まず、半導体集積回路に搭載される複数のメモリについて、メモリの配置情報と機能情報とに基づいて、複数のメモリを複数のブロック(A,B、C、D)にグループ化する(例えば、図1A及び図6参照)。
【0100】
(b)次に、複数のブロックのうちの少なくとも一つのブロック(A)において、メモリテスト時に実行されるメモリのテスト回数であるテストサイクル数に基づき、少なくとも一つのブロックを複数のサブブロック(A1、A2)に分割する(例えば、図1B参照)。
【0101】
(c)次に、複数のサブブロックに分割した後、複数のブロックがメモリテスト時にそれぞれ消費する電力である消費電力情報を計算し、複数のブロックの消費電力情報に基づいて、複数のブロックを複数の上位ブロックU1(A)、上位ブロックU2(B,C,D)にグループ化する(例えば、図6及び図9参照)。
【0102】
実施の形態に係る半導体集積回路の設計方法においては、複数のメモリを複数のブロックにグループ分けするとき、同じメモリタイプのメモリ同士を同じグループにしても良い。
【0103】
また、複数のメモリを複数のブロックにグループ分けするとき、同じクロック信号に接続されたメモリ同士を同じグループにしても良い。
【0104】
また、ブロックに含まれる複数のメモリを複数のサブブロックに分割するとき、メモリテスト時に最大のテストサイクル数を必要とする複数のメモリの一つを、一つのサブブロックに設定し、メモリのテストサイクル数の合計が最大のテストサイクル数以下になるように、他のサブブロックに残りのメモリを設定しても良い。
【0105】
また、実施の形態に係る半導体集積回路の設計方法においては、複数のブロックを複数の上位ブロックにグループ分けするとき、メモリテスト時に最大の消費電力を必要とする一つのブロック(A)を、一つの上位ブロックU1に設定し、ブロックの消費電力の合計が最大の消費電力以下になるように、他の上位ブロックU2に残りのブロック(B,C,D)を設定しても良い。
【0106】
(設計支援システム)
本実施形態に係る半導体集積回路及びその設計方法は、低消費電力化を考慮したメモリテストにおける設計技術及び検証装置に適用可能である。以下に、本実施形態に係る設計支援システムについて説明する。
【0107】
図10は実施形態に係る設計支援システム2の構成を示す模式図である。設計支援システム2は、コンピュータ装置10と、CPUサーバ20と、ネットワーク30と、記憶媒体40とを備える。
【0108】
設計支援システム2は、ネットワーク30を介して、ユーザが操作するコンピュータ装置10と、設計支援システム2に用いられるコンピュータのプログラムを格納するCPUサーバ20と、記憶媒体40とを備える。記憶媒体40は、設計支援システム2に用いられるコンピュータのプログラムを実行するための入力情報データ、検証結果のメッセージを格納する。
【0109】
コンピュータ装置10は、例えば、パソコン(PC:Personal Computer)、シンクライアント端末、携帯端末、PDA(Personal Digital Assistant)でもよい。CPUサーバ20は、例えば、エンジニアリングワークステーション、メインフレーム、スーパーコンピュータでもよい。ネットワーク30は、例えば、インターネット、イントラネット、LAN、電話通信網、専用線でもよい。記憶媒体40は、例えば、ハードディスクの外部記憶装置、メモリの半導体記憶装置、記憶媒体(メディア)でもよい。ただし、実際には、これらの例に限定されない。
【0110】
図11は実施形態に係る設計支援システム2のCPUサーバ20、及び記憶媒体40の詳細な機能ブロック構成図である。設計支援システム2は、CPUサーバ20と、CPUサーバ20のデータを格納する記憶媒体40とを備える。
【0111】
CPUサーバ20は、複数のブロックが複数のメモリを含むとき、複数のブロック及び複数のメモリについて分割処理を実行するメモリ分割処理部22と、複数のメモリのテストを実行可能なメモリBIST回路生成部24とを含む。
【0112】
尚、メモリ分割処理部22は、例えば、CPUやマイクロプロセッサの処理装置、又は同様な機能をする半導体集積回路(IC)でもよい。ただし、実際には、これらの例に限定されない。
【0113】
メモリ分割処理部22は、テストサイクル算出部221と、テストサイクル閾値設定部222と、第1メモリ分割部223と、消費電力算出部224と、消費電力閾値設定部225と、第2メモリ分割部226と、を有する。
【0114】
テストサイクル算出部221は、複数のメモリのそれぞれのテストサイクル数を算出可能である。
【0115】
テストサイクル閾値設定部222は、それぞれのテストサイクル数の少なくとも一つをテストサイクル閾値として設定可能である。
【0116】
第1メモリ分割部223は、テストサイクル数に基づいて一つのブロックが含む複数のメモリについて複数のサブブロックに分割可能である。
【0117】
第2メモリ分割部226は、複数のブロックの消費電力情報に基づいて複数のブロックを複数の上位ブロックにグループ化するものである。したがって、第2メモリ分割部226は、メモリグループ化部と称しても良い。
【0118】
記憶媒体40は、メモリ情報格納部42と、テストアルゴリズム情報格納部44と、テストサイクル値格納部46と、消費電力値格納部48と、閾値格納部50と、メモリ分割情報格納部52とを備える。
【0119】
メモリ情報格納部42はメモリ定義データ42Dを格納する。ここで、メモリ定義データとは、メモリのタイプ(例えば、SRAM、DRAM、Clock数、ワード線及び又はデータ線情報等)を定義するデータである。テストアルゴリズム情報格納部44はテストアルゴリズム定義データ44Dを格納する。テストアルゴリズム定義データとは、例えば、BISTのテストパターン、テストの繰り返し回数等を定義するデータである。テストサイクル値格納部46は各メモリのテストサイクル値データ46Dを格納する。消費電力値格納部48は各機能ブロックの消費電力値データ48Dを格納する。閾値格納部50はテストサイクルの閾値データ50T及び消費電力の閾値データ50Pを格納する。メモリ分割情報格納部52は近傍メモリの分割情報データ52P及び機能ブロックの分割情報データ52Fを格納する。
【0120】
テストサイクル算出部221は、メモリ定義データ42Dとテストアルゴリズム定義データ44Dに基づいて複数のメモリのそれぞれのテストサイクル数を算出し、複数のメモリのテストサイクル値データ46Dとしてテストサイクル値格納部46に格納する。
【0121】
テストサイクル閾値設定部222は、テストサイクル数の閾値を設定し、設定結果をテストサイクル数の閾値データ50Tとして閾値格納部50に格納する。
【0122】
第1メモリ分割部223は、各メモリのテストサイクル値データ46D、テストサイクル数の閾値データ50T及び消費電力の閾値データ50Pに基づいて、近傍メモリベースの分割処理を実行し、分割処理後のデータをメモリ分割情報格納部52にサブブロックの近傍メモリの分割情報データ52Pとして格納する。
【0123】
前記消費電力算出部224は、複数のメモリのテストサイクル値データ46Dに基づいて消費電力を算出し、この算出結果を各機能ブロックの消費電力値データ48Dとして消費電力値格納部48に格納する。
【0124】
消費電力閾値設定部225は、各機能ブロックの消費電力値データ48Dに基づいて消費電力の閾値を設定し、この設定結果を消費電力の閾値データ50Pとして閾値格納部50に格納する。
【0125】
第2メモリ分割部(メモリグループ化部)226は、各機能ブロックの消費電力値データ48D、テストサイクル数の閾値データ50T及び消費電力の閾値データ50Pに基づいて、機能ブロックレベルのグループ化を実行し、グループ化後のデータをメモリ分割情報格納部52に上位ブロックの機能ブロックの分割情報データ52Fとして格納する。
【0126】
メモリBIST回路生成部24は、メモリ分割情報格納部52に格納されているサブブロックの近傍メモリの分割情報データ52P及び上位ブロックの機能ブロックの分割情報データ52Fに基づいて、実施形態に係る設計支援システム2のためのメモリBIST回路を生成する。
【0127】
(メモリ分割のフローチャート)
図12は実施形態に係る設計支援システム2に適用するメモリ分割のフローチャートである。図12を参照して、実施形態に係る設計支援システムの動作を説明する。
【0128】
(A)まず、ステップS11において、メモリグループにおいて、メモリのワード数及び又はビット幅構成とテストアルゴリズムから、メモリのテストサイクル数を計算する。
【0129】
(B)次に、ステップS12において、テストサイクル数が最長となるメモリを求め、独立したグループに分割し、テストサイクル数を閾値として設定する。
【0130】
(C)次に、ステップS13において、他のメモリに対して、閾値を超えないようにグループ分割を行う。
【0131】
(D)次に、ステップS14において、近傍メモリにおいて、グループ分割が完了したか否かを判断する。判断結果がNOであれば、ステップS13に戻る。判断結果がYESWであれば、ステップS15に移行する。
【0132】
(E)次に、ステップS15において、各機能ブロックに含まれるメモリグループの最長のテストサイクル数から、各機能ブロックの同時スイッチング率による消費電力を計算する。
【0133】
(F)次に、ステップS16において、計算した消費電力から、最大値を持つ機能ブロックを独立したグループに分割し、その消費電力を閾値として設定する。
【0134】
(G)次に、ステップS17において、他の機能ブロックに対して、閾値を超えないようにグループ分割を行う。
【0135】
(H)次に、ステップS17において、機能ブロックにおいて、グループ分割が完了
したか否かを判断する。判断結果がNOであれば、ステップS17に戻る。判断結果がYESであれば、メモリ分割の処理を終了する。
【0136】
実施形態に係る設計支援システムでは、配置情報を主体とするメモリグループ分けと、テストサイクル数を主体とするメモリグループ分けを連携させて、上記の動作フローチャートでメモリグループ分けを行う。テストサイクル数の影響を最小限に抑え、メモリアクセスに伴う同時スイッチングを抑制し、テスト時のピークパワーの増加を防ぐことができる。
【0137】
(設計支援システムに用いられるコンピュータのプログラム)
設計支援システムに用いられるコンピュータのプログラムは、コンピュータに実行させる、以下の命令を有する。すなわち、(1)複数のメモリについて、メモリの配置情報と機能情報とに基づいて、複数のメモリを複数のブロックにグループ化すること、(2)複数のメモリのそれぞれのワード数及び又はビット幅構成とテストアルゴリズムから、複数のメモリのテストに必要なテストサイクル数を計算すること、(3)複数のブロックのうちの少なくとも一つのブロックが含む複数のメモリの最大テストサイクル数を第1閾値として設定すること、(4)最大のテストサイクル数を持つメモリを一つのサブブロックに振り分け、少なくとも一つのブロックが含む残りのメモリを、第1閾値に収まる範囲で他のサブブロックに振り分けること、(5)複数のブロックのテストサイクル数から各ブロックの同時スイッチング率による消費電力を計算すること、(6)消費電力から、最大の消費電力を有する前記複数のブロックの一つを上位ブロックに振り分け、最大の消費電力を第2閾値として設定すること、(7)複数のブロックの他のブロックに対して、第2閾値を超えないように上位ブロックに振り分けること、である。
【0138】
実施形態は、例示であり、発明の範囲はそれらに限定されない。
【符号の説明】
【0139】
1…半導体集積回路
2…設計支援システム
10…コンピュータ装置
20…CPUサーバ
22…メモリ分割処理部
24…メモリBIST回路生成部
30…ネットワーク
40…記憶媒体
42…メモリ情報格納部
44…テストアルゴリズム情報格納部
46…テストサイクル値格納部
48…消費電力値格納部
50…閾値格納部
52…メモリ分割情報格納部
53…クロック生成回路
54…アクセス制御回路
56…BISTアクセス回路
58…BIST制御回路
64…BIST制御FSM
74…シリアル制御用FSM
76…クロック位相制御回路
84…カウンタ制御回路
100…半導体基板
221…テストサイクル算出部
222…テストサイクル閾値設定部
223…第1メモリ分割部
224…消費電力算出部
225…消費電力閾値設定部
226…第2メモリ分割部
図1A
図1B
図1C
図1D
図1E
図1F
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12