JP2000091506A - 半導体集積回路 - Google Patents
半導体集積回路Info
- Publication number
- JP2000091506A JP2000091506A JP10261254A JP26125498A JP2000091506A JP 2000091506 A JP2000091506 A JP 2000091506A JP 10261254 A JP10261254 A JP 10261254A JP 26125498 A JP26125498 A JP 26125498A JP 2000091506 A JP2000091506 A JP 2000091506A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- delay
- clock
- flip
- flop
- 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.)
- Pending
Links
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Pulse Circuits (AREA)
Abstract
(57)【要約】
【課題】 LSIの設計工数を削減するとともに、クロ
ック信号が係わるタイミングエラーを回避する。 【解決手段】 クロック信号線5の駆動回路中に、可変
な遅延値を持つ遅延回路2Aと可変な駆動能力を持つ出
力バッファ回路4とを設け、かつCPU6がデータを書
き込むことができるレジスタ8を設け、レジスタ8に書
き込まれたデータの内容に応じて、遅延回路2Aの遅延
値と出力バッファ回路4の駆動能力を制御できるように
しておく。また、メモリ7上に回路のタイミングをテス
トするソフトウエアとテスト結果に基づいて遅延回路2
Aの遅延値を制御するソフトウエアとを記憶しておき、
チップの初期設定時にソフトウエアをCPU6が実行し
てレジスタ8にデータを書き込みクロック駆動回路を調
整することで、タイミングエラーを防止する。
ック信号が係わるタイミングエラーを回避する。 【解決手段】 クロック信号線5の駆動回路中に、可変
な遅延値を持つ遅延回路2Aと可変な駆動能力を持つ出
力バッファ回路4とを設け、かつCPU6がデータを書
き込むことができるレジスタ8を設け、レジスタ8に書
き込まれたデータの内容に応じて、遅延回路2Aの遅延
値と出力バッファ回路4の駆動能力を制御できるように
しておく。また、メモリ7上に回路のタイミングをテス
トするソフトウエアとテスト結果に基づいて遅延回路2
Aの遅延値を制御するソフトウエアとを記憶しておき、
チップの初期設定時にソフトウエアをCPU6が実行し
てレジスタ8にデータを書き込みクロック駆動回路を調
整することで、タイミングエラーを防止する。
Description
【0001】
【発明の属する技術分野】本発明は、半導体集積回路に
関し、特に大規模システムLSIのクロック供給技術に
係わるものである。
関し、特に大規模システムLSIのクロック供給技術に
係わるものである。
【0002】
【従来の技術】システムLSI設計において現在主流と
なっている同期回路においては、チップ上の複数のフリ
ップフロップに供給されるクロック信号のタイミングに
わずかでもずれがあると、ただちに誤動作の原因にな
る。従って、クロックスキューを抑えることがLSI設
計の大きな課題となっている。
なっている同期回路においては、チップ上の複数のフリ
ップフロップに供給されるクロック信号のタイミングに
わずかでもずれがあると、ただちに誤動作の原因にな
る。従って、クロックスキューを抑えることがLSI設
計の大きな課題となっている。
【0003】従来の半導体集積回路では、クロックスキ
ューの抑制は、例えば以下に示すような手順で行われる
ことが多かった。まず、第一段階として、LSIを構成
する各ブロックのレイアウト設計時に、当該ブロックの
クロック入力端子からブロック内に含まれる各フリップ
フロップのクロック入力端子の間に、複数のバッファセ
ルで構成されるクロックバッファツリーを作り込む。こ
のときに、各バッファセルの駆動能力、各バッファセル
が駆動する後段セルの入力容量、各バッファセルから後
段セルに至る配線の負荷容量および抵抗値を考慮して、
当該ブロックのクロック入力端子からブロック内に含ま
れる各フリップフロップのクロック入力端子までの遅延
値を計算し、この遅延値がブロックに含まれる各フリッ
プフロップ間で一定に揃うように、各バッファセルの駆
動能力や各バッファセルと各フリップフロップの位置ま
たは配線の経路を調整する。これにより、各ブロック内
ではフリップフロップ間でクロックスキューを抑制する
ことが可能である。
ューの抑制は、例えば以下に示すような手順で行われる
ことが多かった。まず、第一段階として、LSIを構成
する各ブロックのレイアウト設計時に、当該ブロックの
クロック入力端子からブロック内に含まれる各フリップ
フロップのクロック入力端子の間に、複数のバッファセ
ルで構成されるクロックバッファツリーを作り込む。こ
のときに、各バッファセルの駆動能力、各バッファセル
が駆動する後段セルの入力容量、各バッファセルから後
段セルに至る配線の負荷容量および抵抗値を考慮して、
当該ブロックのクロック入力端子からブロック内に含ま
れる各フリップフロップのクロック入力端子までの遅延
値を計算し、この遅延値がブロックに含まれる各フリッ
プフロップ間で一定に揃うように、各バッファセルの駆
動能力や各バッファセルと各フリップフロップの位置ま
たは配線の経路を調整する。これにより、各ブロック内
ではフリップフロップ間でクロックスキューを抑制する
ことが可能である。
【0004】次に、第二段階として、チップ全体のレイ
アウト設計時に、クロック生成回路から各ブロックのク
ロック入力端子に至る配線の負荷容量および抵抗値と各
ブロック内でのクロック遅延値を考慮して、クロック生
成回路から各ブロックのフリップフロップのクロック入
力端子までの遅延値が一定に揃うように、クロック信号
線駆動回路の駆動能力やクロック配線の負荷容量や抵抗
値を調整する。これらはレイアウトデータを変更/カス
タマイズすることにより実現する。これにより、最終的
にチップ全体でフリップフロップ間のクロックスキュー
を抑制することができるのである。
アウト設計時に、クロック生成回路から各ブロックのク
ロック入力端子に至る配線の負荷容量および抵抗値と各
ブロック内でのクロック遅延値を考慮して、クロック生
成回路から各ブロックのフリップフロップのクロック入
力端子までの遅延値が一定に揃うように、クロック信号
線駆動回路の駆動能力やクロック配線の負荷容量や抵抗
値を調整する。これらはレイアウトデータを変更/カス
タマイズすることにより実現する。これにより、最終的
にチップ全体でフリップフロップ間のクロックスキュー
を抑制することができるのである。
【0005】
【発明が解決しようとする課題】以上述べたような従来
の半導体集積回路には、以下に示すような課題がある。
まず、半導体製造技術が進歩して回路が微細化されてい
くにつれて、回路遅延に対する配線の影響が大きくなっ
てきており、従来に比べてタイミング設計が困難になっ
てきている。
の半導体集積回路には、以下に示すような課題がある。
まず、半導体製造技術が進歩して回路が微細化されてい
くにつれて、回路遅延に対する配線の影響が大きくなっ
てきており、従来に比べてタイミング設計が困難になっ
てきている。
【0006】従来は、LSIを構成する各セルが駆動す
る負荷容量の中で、セルの入力容量が占める割合が相対
的に大きかったため、配線の負荷容量は大きな影響を与
えなかった。しかし、回路が微細化されるに伴い、配線
の負荷容量の割合が増大しており、現在ではセルの入力
容量と同程度になってきている。この傾向は今後も続く
ため、将来は配線が負荷容量の大きな部分を占めるよう
になる。
る負荷容量の中で、セルの入力容量が占める割合が相対
的に大きかったため、配線の負荷容量は大きな影響を与
えなかった。しかし、回路が微細化されるに伴い、配線
の負荷容量の割合が増大しており、現在ではセルの入力
容量と同程度になってきている。この傾向は今後も続く
ため、将来は配線が負荷容量の大きな部分を占めるよう
になる。
【0007】これは回路遅延を決めるもう一つの要因で
ある抵抗値についても同様であり、今後は配線の負荷容
量と抵抗値が回路遅延を決定することになる。このこと
がLSIのタイミング設計を困難にする理由は、今日の
LSI設計では標準セルとしてあらかじめライブラリ化
されたセルを用いるため、セルの入力容量は各チップ個
別のレイアウト設計の影響を受けないのに対して、配線
はレイアウト設計結果により全く変わってしまうためで
ある。
ある抵抗値についても同様であり、今後は配線の負荷容
量と抵抗値が回路遅延を決定することになる。このこと
がLSIのタイミング設計を困難にする理由は、今日の
LSI設計では標準セルとしてあらかじめライブラリ化
されたセルを用いるため、セルの入力容量は各チップ個
別のレイアウト設計の影響を受けないのに対して、配線
はレイアウト設計結果により全く変わってしまうためで
ある。
【0008】そのために、現在ではレイアウト設計結果
に基づいて回路遅延を計算するバックアノテーション技
術を設計フローの中に取り込むのが一般的であるが、高
精度が要求されるクロック信号に対してはバックアノテ
ーション技術では精度が不十分である。そこでSPIC
Eを用いたより高精度な解析が行われるが、それには大
きな設計工数が必要となっている。
に基づいて回路遅延を計算するバックアノテーション技
術を設計フローの中に取り込むのが一般的であるが、高
精度が要求されるクロック信号に対してはバックアノテ
ーション技術では精度が不十分である。そこでSPIC
Eを用いたより高精度な解析が行われるが、それには大
きな設計工数が必要となっている。
【0009】次に、最近の微細化技術の進歩に伴い、特
定用途向けLSIは、従来のように汎用LSIの隙間を
埋める小規模なグルーロジックからシステム全体を1チ
ップに集積する大規模なシステムLSIへと変わってき
ている。このようなシステムLSIでは、設計工数の増
大を避けるために、従来のように専用回路を最初から設
計していくのではなく、可能な限り汎用回路をマクロと
して再利用し、最小限必要な回路のみを専用設計すると
いう設計手法を取る場合が多い。
定用途向けLSIは、従来のように汎用LSIの隙間を
埋める小規模なグルーロジックからシステム全体を1チ
ップに集積する大規模なシステムLSIへと変わってき
ている。このようなシステムLSIでは、設計工数の増
大を避けるために、従来のように専用回路を最初から設
計していくのではなく、可能な限り汎用回路をマクロと
して再利用し、最小限必要な回路のみを専用設計すると
いう設計手法を取る場合が多い。
【0010】このような状況では回路設計上の自由度が
制限されるため、LSI設計全体としては設計工数を削
減できるが、タイミング設計に関しては従来以上に難し
くなる場合が多い。また現在では、回路規模の増大に伴
い、LSIの消費電力の増大がLSI設計におけるもう
一つの大きな問題となっている。この問題を解決するた
めに、しばしば回路に供給するクロックを動的に制御
し、動作する回路にのみクロックを供給して、動作しな
い回路にはクロックの供給を止めるというアプローチが
取られることが多い。こうした場合、回路ブロックごと
に異なるクロックを供給することが必要になり、前述の
クロックスキューの抑制はさらに困難になる。
制限されるため、LSI設計全体としては設計工数を削
減できるが、タイミング設計に関しては従来以上に難し
くなる場合が多い。また現在では、回路規模の増大に伴
い、LSIの消費電力の増大がLSI設計におけるもう
一つの大きな問題となっている。この問題を解決するた
めに、しばしば回路に供給するクロックを動的に制御
し、動作する回路にのみクロックを供給して、動作しな
い回路にはクロックの供給を止めるというアプローチが
取られることが多い。こうした場合、回路ブロックごと
に異なるクロックを供給することが必要になり、前述の
クロックスキューの抑制はさらに困難になる。
【0011】以上述べたようなクロック設計の難しさ
は、半導体製造技術の微細化に伴うプロセスばらつきの
増大と合わさって、単に設計期間/工数の増大を招くだ
けではなく、設計ミスの増大につながり、試作したLS
Iの誤動作や動作マージン不足を引き起こす要因にな
る。本発明の目的は、以上述べたようなクロック設計上
の課題を解決して、LSIの設計工数を削減できるとと
もに、クロック信号が係わるタイミングエラーを回避し
て誤動作を防止できる半導体集積回路を提供することで
ある。
は、半導体製造技術の微細化に伴うプロセスばらつきの
増大と合わさって、単に設計期間/工数の増大を招くだ
けではなく、設計ミスの増大につながり、試作したLS
Iの誤動作や動作マージン不足を引き起こす要因にな
る。本発明の目的は、以上述べたようなクロック設計上
の課題を解決して、LSIの設計工数を削減できるとと
もに、クロック信号が係わるタイミングエラーを回避し
て誤動作を防止できる半導体集積回路を提供することで
ある。
【0012】
【課題を解決するための手段】請求項1記載の半導体集
積回路は、プロセッサコアと、可変な遅延値を持つ遅延
回路を有するクロック信号線の駆動回路と、プロセッサ
コアにより遅延回路の遅延値を設定するためのデータが
書き込まれるレジスタと、レジスタに書き込まれたデー
タに応じて遅延回路の遅延値を制御する制御回路とを備
えている。
積回路は、プロセッサコアと、可変な遅延値を持つ遅延
回路を有するクロック信号線の駆動回路と、プロセッサ
コアにより遅延回路の遅延値を設定するためのデータが
書き込まれるレジスタと、レジスタに書き込まれたデー
タに応じて遅延回路の遅延値を制御する制御回路とを備
えている。
【0013】この構成によれば、プロセッサコアにより
レジスタに書き込まれたデータに応じてクロック信号線
の駆動回路中の遅延回路の遅延値を制御するようにした
ことにより、クロック信号が係わるタイミングエラーを
回避することができる。従って、従来のように回路修正
/再試作を行う必要がなくなり、開発期間/工数を大幅
に削減することが可能である。また、製造時の素子特性
のばらつきやチップ使用時の電源電圧変動による遅延特
性の変化を補償することができるので、チップ歩留まり
を改善することも可能である。
レジスタに書き込まれたデータに応じてクロック信号線
の駆動回路中の遅延回路の遅延値を制御するようにした
ことにより、クロック信号が係わるタイミングエラーを
回避することができる。従って、従来のように回路修正
/再試作を行う必要がなくなり、開発期間/工数を大幅
に削減することが可能である。また、製造時の素子特性
のばらつきやチップ使用時の電源電圧変動による遅延特
性の変化を補償することができるので、チップ歩留まり
を改善することも可能である。
【0014】請求項2記載の半導体集積回路は、プロセ
ッサコアと、可変な駆動能力を持つ出力バッファ回路を
有するクロック信号線の駆動回路と、プロセッサコアに
より出力バッファ回路の駆動能力を設定するためのデー
タが書き込まれるレジスタと、レジスタに書き込まれた
データに応じて出力バッファ回路の駆動能力を制御する
制御回路とを備えている。
ッサコアと、可変な駆動能力を持つ出力バッファ回路を
有するクロック信号線の駆動回路と、プロセッサコアに
より出力バッファ回路の駆動能力を設定するためのデー
タが書き込まれるレジスタと、レジスタに書き込まれた
データに応じて出力バッファ回路の駆動能力を制御する
制御回路とを備えている。
【0015】この構成によれば、プロセッサコアにより
レジスタに書き込まれたデータに応じてクロック信号線
の駆動回路中の出力バッファ回路の駆動能力を制御する
ようにしたことにより、クロック信号が係わるタイミン
グエラーを回避することができる。従って、従来のよう
に回路修正/再試作を行う必要がなくなり、開発期間/
工数を大幅に削減することが可能である。また、製造時
の素子特性のばらつきやチップ使用時の電源電圧変動に
よる遅延特性の変化を補償することができるので、チッ
プ歩留まりを改善することも可能である。
レジスタに書き込まれたデータに応じてクロック信号線
の駆動回路中の出力バッファ回路の駆動能力を制御する
ようにしたことにより、クロック信号が係わるタイミン
グエラーを回避することができる。従って、従来のよう
に回路修正/再試作を行う必要がなくなり、開発期間/
工数を大幅に削減することが可能である。また、製造時
の素子特性のばらつきやチップ使用時の電源電圧変動に
よる遅延特性の変化を補償することができるので、チッ
プ歩留まりを改善することも可能である。
【0016】請求項3記載の半導体集積回路は、請求項
1または請求項2記載の半導体集積回路において、プロ
セッサコアが実行可能な命令コードからなるソフトウエ
アをプロセッサコアに実行させることにより、レジスタ
にデータを書き込むことを特徴とする。この構成によれ
ば、ソフトウエアによる高度なプログラムに基づいてク
ロック信号線の遅延を制御することにより、高精度なタ
イミング調整が可能になる。
1または請求項2記載の半導体集積回路において、プロ
セッサコアが実行可能な命令コードからなるソフトウエ
アをプロセッサコアに実行させることにより、レジスタ
にデータを書き込むことを特徴とする。この構成によれ
ば、ソフトウエアによる高度なプログラムに基づいてク
ロック信号線の遅延を制御することにより、高精度なタ
イミング調整が可能になる。
【0017】請求項4記載の半導体集積回路は、請求項
1記載の半導体集積回路において、所定回路のタイミン
グをテストするテスト用ソフトウエアと、このテスト用
ソフトウエアを実行したテスト結果に基づいて遅延回路
の遅延値を制御するための駆動回路制御用ソフトウエア
とを記憶するメモリを設け、プロセッサコアがテスト用
ソフトウエアおよび駆動回路制御用ソフトウエアを実行
するようしたことを特徴とする。
1記載の半導体集積回路において、所定回路のタイミン
グをテストするテスト用ソフトウエアと、このテスト用
ソフトウエアを実行したテスト結果に基づいて遅延回路
の遅延値を制御するための駆動回路制御用ソフトウエア
とを記憶するメモリを設け、プロセッサコアがテスト用
ソフトウエアおよび駆動回路制御用ソフトウエアを実行
するようしたことを特徴とする。
【0018】この構成によれば、チップ上に搭載してい
るメモリに記憶したテスト用ソフトウエアをプロセッサ
コアが実行し、そのテスト結果に基づいてメモリ上に記
憶した駆動回路制御用ソフトウエアを実行して遅延回路
の遅延値の制御によりクロック信号線の遅延を制御する
ことにより、自立的で回路動作中にも実行可能な実時間
性を持ったタイミング調整を実現できる。
るメモリに記憶したテスト用ソフトウエアをプロセッサ
コアが実行し、そのテスト結果に基づいてメモリ上に記
憶した駆動回路制御用ソフトウエアを実行して遅延回路
の遅延値の制御によりクロック信号線の遅延を制御する
ことにより、自立的で回路動作中にも実行可能な実時間
性を持ったタイミング調整を実現できる。
【0019】請求項5記載の半導体集積回路は、請求項
2記載の半導体集積回路において、所定回路のタイミン
グをテストするテスト用ソフトウエアと、このテスト用
ソフトウエアを実行したテスト結果に基づいて出力バッ
ファ回路の駆動能力を制御するための駆動回路制御用ソ
フトウエアとを記憶するメモリを設け、プロセッサコア
がテスト用ソフトウエアおよび駆動回路制御用ソフトウ
エアを実行するようしたことを特徴とする。
2記載の半導体集積回路において、所定回路のタイミン
グをテストするテスト用ソフトウエアと、このテスト用
ソフトウエアを実行したテスト結果に基づいて出力バッ
ファ回路の駆動能力を制御するための駆動回路制御用ソ
フトウエアとを記憶するメモリを設け、プロセッサコア
がテスト用ソフトウエアおよび駆動回路制御用ソフトウ
エアを実行するようしたことを特徴とする。
【0020】この構成によれば、チップ上に搭載してい
るメモリに記憶したテスト用ソフトウエアをプロセッサ
コアが実行し、そのテスト結果に基づいてメモリ上に記
憶した駆動回路制御用ソフトウエアを実行して出力バッ
ファ回路の駆動能力の制御によりクロック信号線の遅延
を制御することにより、自立的で回路動作中にも実行可
能な実時間性を持ったタイミング調整を実現できる。
るメモリに記憶したテスト用ソフトウエアをプロセッサ
コアが実行し、そのテスト結果に基づいてメモリ上に記
憶した駆動回路制御用ソフトウエアを実行して出力バッ
ファ回路の駆動能力の制御によりクロック信号線の遅延
を制御することにより、自立的で回路動作中にも実行可
能な実時間性を持ったタイミング調整を実現できる。
【0021】請求項6記載の半導体集積回路は、可変な
遅延値を持つ遅延回路を有するクロック信号線の駆動回
路と、複数の回路ブロックに含まれるフリップフロップ
にそれぞれ入力されるクロック信号間のスキューを検出
するクロックスキュー検出回路と、クロックスキュー検
出回路の検出するクロック信号間のスキューに応じて遅
延回路の遅延値を制御する制御回路とを備えている。
遅延値を持つ遅延回路を有するクロック信号線の駆動回
路と、複数の回路ブロックに含まれるフリップフロップ
にそれぞれ入力されるクロック信号間のスキューを検出
するクロックスキュー検出回路と、クロックスキュー検
出回路の検出するクロック信号間のスキューに応じて遅
延回路の遅延値を制御する制御回路とを備えている。
【0022】この構成によれば、クロックスキュー検出
回路により、複数の回路ブロックに含まれるフリップフ
ロップにそれぞれ入力されるクロック信号間のスキュー
を検出し、その検出したクロック信号間のスキューに応
じてクロック信号線の駆動回路中の遅延回路の遅延値を
制御するようにしたことにより、クロック信号が係わる
タイミングエラーを回避することができる。従って、従
来のように回路修正/再試作を行う必要がなくなり、開
発期間/工数を大幅に削減することが可能である。ま
た、製造時の素子特性のばらつきやチップ使用時の電源
電圧変動による遅延特性の変化を補償することができる
ので、チップ歩留まりを改善することも可能である。
回路により、複数の回路ブロックに含まれるフリップフ
ロップにそれぞれ入力されるクロック信号間のスキュー
を検出し、その検出したクロック信号間のスキューに応
じてクロック信号線の駆動回路中の遅延回路の遅延値を
制御するようにしたことにより、クロック信号が係わる
タイミングエラーを回避することができる。従って、従
来のように回路修正/再試作を行う必要がなくなり、開
発期間/工数を大幅に削減することが可能である。ま
た、製造時の素子特性のばらつきやチップ使用時の電源
電圧変動による遅延特性の変化を補償することができる
ので、チップ歩留まりを改善することも可能である。
【0023】請求項7記載の半導体集積回路は、可変な
駆動能力を持つ出力バッファ回路を有するクロック信号
線の駆動回路と、複数の回路ブロックに含まれるフリッ
プフロップにそれぞれ入力されるクロック信号間のスキ
ューを検出するクロックスキュー検出回路と、クロック
スキュー検出回路の検出するクロック信号間のスキュー
に応じて出力バッファ回路の駆動能力を制御する制御回
路とを備えている。
駆動能力を持つ出力バッファ回路を有するクロック信号
線の駆動回路と、複数の回路ブロックに含まれるフリッ
プフロップにそれぞれ入力されるクロック信号間のスキ
ューを検出するクロックスキュー検出回路と、クロック
スキュー検出回路の検出するクロック信号間のスキュー
に応じて出力バッファ回路の駆動能力を制御する制御回
路とを備えている。
【0024】この構成によれば、クロックスキュー検出
回路により、複数の回路ブロックに含まれるフリップフ
ロップにそれぞれ入力されるクロック信号間のスキュー
を検出し、その検出したクロック信号間のスキューに応
じてクロック信号線の駆動回路中の出力バッファ回路の
駆動能力を制御するようにしたことにより、クロック信
号が係わるタイミングエラーを回避することができる。
従って、従来のように回路修正/再試作を行う必要がな
くなり、開発期間/工数を大幅に削減することが可能で
ある。また、製造時の素子特性のばらつきやチップ使用
時の電源電圧変動による遅延特性の変化を補償すること
ができるので、チップ歩留まりを改善することも可能で
ある。
回路により、複数の回路ブロックに含まれるフリップフ
ロップにそれぞれ入力されるクロック信号間のスキュー
を検出し、その検出したクロック信号間のスキューに応
じてクロック信号線の駆動回路中の出力バッファ回路の
駆動能力を制御するようにしたことにより、クロック信
号が係わるタイミングエラーを回避することができる。
従って、従来のように回路修正/再試作を行う必要がな
くなり、開発期間/工数を大幅に削減することが可能で
ある。また、製造時の素子特性のばらつきやチップ使用
時の電源電圧変動による遅延特性の変化を補償すること
ができるので、チップ歩留まりを改善することも可能で
ある。
【0025】請求項8記載の半導体集積回路は、請求項
6または請求項7記載の半導体集積回路において、クロ
ックスキュー検出回路は、複数の回路ブロックのうち第
1の回路ブロックに設けられ、第1の回路ブロックに含
まれる他のフリップフロップに入力されるクロック信号
と同位相のクロック信号を入力する第1のテスト用フリ
ップフロップと、複数の回路ブロックのうち第1の回路
ブロックの出力信号を入力する第2の回路ブロックに設
けられ、第2の回路ブロックに含まれる他のフリップフ
ロップに入力されるクロック信号と同位相のクロック信
号を入力するとともに第1のテスト用フリップフロップ
の出力データを入力データとする第2のテスト用フリッ
プフロップと、第1のテスト用フリップフロップへデー
タを出力するデータ発生回路と、第1のテスト用フリッ
プフロップの出力データと第2のテスト用フリップフロ
ップの出力データとを用いて第1のテスト用フリップフ
ロップと第2のテスト用フリップフロップとに入力され
るクロック信号間のスキューを検出するデータ解析回路
とからなることを特徴とする。
6または請求項7記載の半導体集積回路において、クロ
ックスキュー検出回路は、複数の回路ブロックのうち第
1の回路ブロックに設けられ、第1の回路ブロックに含
まれる他のフリップフロップに入力されるクロック信号
と同位相のクロック信号を入力する第1のテスト用フリ
ップフロップと、複数の回路ブロックのうち第1の回路
ブロックの出力信号を入力する第2の回路ブロックに設
けられ、第2の回路ブロックに含まれる他のフリップフ
ロップに入力されるクロック信号と同位相のクロック信
号を入力するとともに第1のテスト用フリップフロップ
の出力データを入力データとする第2のテスト用フリッ
プフロップと、第1のテスト用フリップフロップへデー
タを出力するデータ発生回路と、第1のテスト用フリッ
プフロップの出力データと第2のテスト用フリップフロ
ップの出力データとを用いて第1のテスト用フリップフ
ロップと第2のテスト用フリップフロップとに入力され
るクロック信号間のスキューを検出するデータ解析回路
とからなることを特徴とする。
【0026】このように、クロックスキュー検出回路を
構成すればよい。請求項9記載の半導体集積回路は、可
変な遅延値を持つ遅延回路を有するクロック信号線の駆
動回路と、プロセス変動や使用時における電源電圧変動
や温度変化を反映した標準遅延値を検出する遅延評価回
路と、遅延評価回路の検出する標準遅延値に応じて遅延
回路の遅延値を制御する制御回路とを備えている。
構成すればよい。請求項9記載の半導体集積回路は、可
変な遅延値を持つ遅延回路を有するクロック信号線の駆
動回路と、プロセス変動や使用時における電源電圧変動
や温度変化を反映した標準遅延値を検出する遅延評価回
路と、遅延評価回路の検出する標準遅延値に応じて遅延
回路の遅延値を制御する制御回路とを備えている。
【0027】この構成によれば、遅延評価回路により、
プロセス変動や使用時における電源電圧変動や温度変化
を反映した標準遅延値を検出し、その検出した標準遅延
値に応じてクロック信号線の駆動回路中の遅延回路の遅
延値を制御するようにしたことにより、クロック信号が
係わるタイミングエラーを回避することができる。従っ
て、従来のように回路修正/再試作を行う必要がなくな
り、開発期間/工数を大幅に削減することが可能であ
る。また、製造時の素子特性のばらつきやチップ使用時
の電源電圧変動による遅延特性の変化を補償することが
できるので、チップ歩留まりを改善することも可能であ
る。
プロセス変動や使用時における電源電圧変動や温度変化
を反映した標準遅延値を検出し、その検出した標準遅延
値に応じてクロック信号線の駆動回路中の遅延回路の遅
延値を制御するようにしたことにより、クロック信号が
係わるタイミングエラーを回避することができる。従っ
て、従来のように回路修正/再試作を行う必要がなくな
り、開発期間/工数を大幅に削減することが可能であ
る。また、製造時の素子特性のばらつきやチップ使用時
の電源電圧変動による遅延特性の変化を補償することが
できるので、チップ歩留まりを改善することも可能であ
る。
【0028】請求項10記載の半導体集積回路は、可変
な駆動能力を持つ出力バッファ回路を有するクロック信
号線の駆動回路と、プロセス変動や使用時における電源
電圧変動や温度変化を反映した標準遅延値を検出する遅
延評価回路と、遅延評価回路の検出する標準遅延値に応
じて出力バッファ回路の駆動能力を制御する制御回路と
を備えている。
な駆動能力を持つ出力バッファ回路を有するクロック信
号線の駆動回路と、プロセス変動や使用時における電源
電圧変動や温度変化を反映した標準遅延値を検出する遅
延評価回路と、遅延評価回路の検出する標準遅延値に応
じて出力バッファ回路の駆動能力を制御する制御回路と
を備えている。
【0029】この構成によれば、遅延評価回路により、
プロセス変動や使用時における電源電圧変動や温度変化
を反映した標準遅延値を検出し、その検出した標準遅延
値に応じてクロック信号線の駆動回路中の出力バッファ
回路の駆動能力を制御するようにしたことにより、クロ
ック信号が係わるタイミングエラーを回避することがで
きる。従って、従来のように回路修正/再試作を行う必
要がなくなり、開発期間/工数を大幅に削減することが
可能である。また、製造時の素子特性のばらつきやチッ
プ使用時の電源電圧変動による遅延特性の変化を補償す
ることができるので、チップ歩留まりを改善することも
可能である。
プロセス変動や使用時における電源電圧変動や温度変化
を反映した標準遅延値を検出し、その検出した標準遅延
値に応じてクロック信号線の駆動回路中の出力バッファ
回路の駆動能力を制御するようにしたことにより、クロ
ック信号が係わるタイミングエラーを回避することがで
きる。従って、従来のように回路修正/再試作を行う必
要がなくなり、開発期間/工数を大幅に削減することが
可能である。また、製造時の素子特性のばらつきやチッ
プ使用時の電源電圧変動による遅延特性の変化を補償す
ることができるので、チップ歩留まりを改善することも
可能である。
【0030】請求項11記載の半導体集積回路は、請求
項9または請求項10記載の半導体集積回路において、
遅延評価回路は、遅延値が異なる複数の遅延回路と、各
遅延回路へデータを出力するデータ発生回路と、各遅延
回路の出力データを用いてプロセス変動や使用時におけ
る電源電圧変動や温度変化を反映した標準遅延値を検出
するデータ解析回路とからなることを特徴とする。
項9または請求項10記載の半導体集積回路において、
遅延評価回路は、遅延値が異なる複数の遅延回路と、各
遅延回路へデータを出力するデータ発生回路と、各遅延
回路の出力データを用いてプロセス変動や使用時におけ
る電源電圧変動や温度変化を反映した標準遅延値を検出
するデータ解析回路とからなることを特徴とする。
【0031】このように、遅延評価回路を構成すればよ
い。
い。
【0032】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面に基づいて説明する。 〔第1の実施の形態〕図1は本発明の第1の実施の形態
の半導体集積回路の構成図である。図中、1はクロック
原信号生成回路であり、LSIに接続される水晶発振器
が出力する発振信号を整形し、必要に応じて周波数を逓
倍するなどしてクロックの原信号を生成する。2は遅延
手段である。この遅延手段2は、図に示すように、イン
バータ回路を複数段接続した構成であり、インバータ回
路2段毎に信号を出力しており、この各々の出力が、入
力されるクロック原信号を異なった時間だけ遅延させた
信号になっている。もちろん、ここで示した遅延手段2
以外にも様々な遅延手段の例を考えることができ、本発
明はそれらも含んでいることは言うまでもない。3は選
択回路であり、遅延手段2の複数の出力信号の中から1
つを選択して出力することにより、クロック信号線5の
遅延値を変更することができるようになっている。2A
は前述の遅延手段2および選択回路3からなる遅延回路
であり、入力されるクロック原信号を遅延させて出力
し、その遅延時間を変更できるものである。
て図面に基づいて説明する。 〔第1の実施の形態〕図1は本発明の第1の実施の形態
の半導体集積回路の構成図である。図中、1はクロック
原信号生成回路であり、LSIに接続される水晶発振器
が出力する発振信号を整形し、必要に応じて周波数を逓
倍するなどしてクロックの原信号を生成する。2は遅延
手段である。この遅延手段2は、図に示すように、イン
バータ回路を複数段接続した構成であり、インバータ回
路2段毎に信号を出力しており、この各々の出力が、入
力されるクロック原信号を異なった時間だけ遅延させた
信号になっている。もちろん、ここで示した遅延手段2
以外にも様々な遅延手段の例を考えることができ、本発
明はそれらも含んでいることは言うまでもない。3は選
択回路であり、遅延手段2の複数の出力信号の中から1
つを選択して出力することにより、クロック信号線5の
遅延値を変更することができるようになっている。2A
は前述の遅延手段2および選択回路3からなる遅延回路
であり、入力されるクロック原信号を遅延させて出力
し、その遅延時間を変更できるものである。
【0033】4は出力バッファ回路である。出力バッフ
ァ回路4の出力はチップ上の特定ブロックにクロックを
供給するクロック信号線5であるが、通常、クロック信
号線5はブロック間を長い距離配線されるので、負荷容
量および抵抗値が大きくなってしまう。そのため、出力
バッファ回路4には負荷に相当する大きさの駆動能力を
持たせないとクロック信号が訛ってしまい、その結果、
クロックスキューが大きくなってしまう。また、出力バ
ッファ回路4の駆動能力を変えることにより、クロック
信号線5の遅延値を調整することができる。本実施の形
態における出力バッファ回路4は、複数の3ステートバ
ッファ4a,4b,4cを並列に接続した構成になって
おり、同時にオンさせる3ステートバッファの個数を変
更することで、クロック信号線5に対する駆動能力を変
更することができるようになっている。なお、出力バッ
ファ回路4内の3ステートバッファの個数は3個に限定
されるものではなく、クロック信号線5の遅延値を調整
するのに十分な複数個であればよい。
ァ回路4の出力はチップ上の特定ブロックにクロックを
供給するクロック信号線5であるが、通常、クロック信
号線5はブロック間を長い距離配線されるので、負荷容
量および抵抗値が大きくなってしまう。そのため、出力
バッファ回路4には負荷に相当する大きさの駆動能力を
持たせないとクロック信号が訛ってしまい、その結果、
クロックスキューが大きくなってしまう。また、出力バ
ッファ回路4の駆動能力を変えることにより、クロック
信号線5の遅延値を調整することができる。本実施の形
態における出力バッファ回路4は、複数の3ステートバ
ッファ4a,4b,4cを並列に接続した構成になって
おり、同時にオンさせる3ステートバッファの個数を変
更することで、クロック信号線5に対する駆動能力を変
更することができるようになっている。なお、出力バッ
ファ回路4内の3ステートバッファの個数は3個に限定
されるものではなく、クロック信号線5の遅延値を調整
するのに十分な複数個であればよい。
【0034】6はCPUである。CPU6はシステムL
SIに搭載されるプロセッサコアとしては最も一般的な
ものであり、通常、汎用の命令セットを持ち、この命令
セットに含まれる命令を用いて作成されたソフトウエア
を順次実行することにより、様々な応用に対応した信号
処理を実現することができる。7はメモリである。メモ
リ7は比較的大規模な記憶装置であり、前記ソフトウエ
アや信号処理を行う上での中間データなどを記憶させる
のに用いる。本実施の形態では、メモリ7に格納される
ソフトウエアとして、タイミングテストプログラム11
と駆動回路制御プログラム12を含んでいることが特徴
である。
SIに搭載されるプロセッサコアとしては最も一般的な
ものであり、通常、汎用の命令セットを持ち、この命令
セットに含まれる命令を用いて作成されたソフトウエア
を順次実行することにより、様々な応用に対応した信号
処理を実現することができる。7はメモリである。メモ
リ7は比較的大規模な記憶装置であり、前記ソフトウエ
アや信号処理を行う上での中間データなどを記憶させる
のに用いる。本実施の形態では、メモリ7に格納される
ソフトウエアとして、タイミングテストプログラム11
と駆動回路制御プログラム12を含んでいることが特徴
である。
【0035】8はレジスタである。レジスタ8も記憶装
置の一種であるが、メモリ7と比べると記憶容量が小さ
く、特定のデータを記憶するのに用いられる。本実施の
形態では、選択回路3の機能や出力バッファ回路4の能
力を選択するためのデータを記憶させるのに用いてい
る。9はランダムロジック(制御回路)であり、レジス
タ8に格納されたデータをデコードして選択回路3や出
力バッファ回路4の制御信号を出力する。
置の一種であるが、メモリ7と比べると記憶容量が小さ
く、特定のデータを記憶するのに用いられる。本実施の
形態では、選択回路3の機能や出力バッファ回路4の能
力を選択するためのデータを記憶させるのに用いてい
る。9はランダムロジック(制御回路)であり、レジス
タ8に格納されたデータをデコードして選択回路3や出
力バッファ回路4の制御信号を出力する。
【0036】13および15もレジスタである。レジス
タ13にはクロック14が入力される。また、レジスタ
15にはクロック16が入力される。各レジスタ13,
15はそれぞれに入力されるクロック14,16の立ち
上がりエッジに同期してデータを取り込む。17は被テ
スト回路である。現在主流となっている同期設計では、
組み合わせ回路からなる被テスト回路17はレジスタ1
3からのデータを受けて、何らかの処理を加えた後、レ
ジスタ15にデータを書き込むことを行う。本実施の形
態で、被テスト回路17になるのは、チップ上でタイミ
ング的に厳しい部分である。これらの被テスト回路17
は回路設計段階で見つけ出すことができる。なお、被テ
スト回路17は、半導体集積回路の主要回路のうちの一
部として存在するが、レジスタ13,15は半導体集積
回路の主要回路のうちの一部として存在するものを用い
る場合もあるし、テスト専用として設ける場合もある。
タ13にはクロック14が入力される。また、レジスタ
15にはクロック16が入力される。各レジスタ13,
15はそれぞれに入力されるクロック14,16の立ち
上がりエッジに同期してデータを取り込む。17は被テ
スト回路である。現在主流となっている同期設計では、
組み合わせ回路からなる被テスト回路17はレジスタ1
3からのデータを受けて、何らかの処理を加えた後、レ
ジスタ15にデータを書き込むことを行う。本実施の形
態で、被テスト回路17になるのは、チップ上でタイミ
ング的に厳しい部分である。これらの被テスト回路17
は回路設計段階で見つけ出すことができる。なお、被テ
スト回路17は、半導体集積回路の主要回路のうちの一
部として存在するが、レジスタ13,15は半導体集積
回路の主要回路のうちの一部として存在するものを用い
る場合もあるし、テスト専用として設ける場合もある。
【0037】CPU6とメモリ7やレジスタ8、レジス
タ13、レジスタ15はバス信号線10により相互に接
続されている。本実施の形態では直接関係しないので記
述していないが、通常はそれ以外にも複数の周辺回路が
バス信号線10に接続されることが多い。また、メモリ
7と同じくレジスタ8、レジスタ13、レジスタ15に
もアドレスが割り振られているので、CPU6はメモリ
7にデータを記憶させるのと全く同じようにして、ソフ
トウエアを実行する中でレジスタ8、レジスタ13、レ
ジスタ15にデータを記憶させることができる。
タ13、レジスタ15はバス信号線10により相互に接
続されている。本実施の形態では直接関係しないので記
述していないが、通常はそれ以外にも複数の周辺回路が
バス信号線10に接続されることが多い。また、メモリ
7と同じくレジスタ8、レジスタ13、レジスタ15に
もアドレスが割り振られているので、CPU6はメモリ
7にデータを記憶させるのと全く同じようにして、ソフ
トウエアを実行する中でレジスタ8、レジスタ13、レ
ジスタ15にデータを記憶させることができる。
【0038】なお、クロック原信号生成回路1はチップ
上に複数設けてあってもよいが、ここでは、1個設けて
あるものとする。クロック原信号生成回路1からは複数
のクロック原信号が出力され、各々のクロック原信号は
それぞれの駆動回路を通って異なるクロック信号として
各回路ブロックへ供給される。図1では、1つのクロッ
ク信号(クロック信号線5のクロック信号)の駆動回路
として、遅延回路2Aと出力バッファ回路4とを有し、
それらを制御するためにレジスタ8およびランダムロジ
ック9を設けている。なお、他のクロック信号について
は、上記のクロック信号線5のクロック信号と同様に遅
延調整機能を持つ駆動回路(遅延回路2A,出力バッフ
ァ回路4)やレジスタ8およびランダムロジック9を設
けてあってもよいし、あるクロック信号については、遅
延調整機能を持たない構成の駆動回路としてもよい。
上に複数設けてあってもよいが、ここでは、1個設けて
あるものとする。クロック原信号生成回路1からは複数
のクロック原信号が出力され、各々のクロック原信号は
それぞれの駆動回路を通って異なるクロック信号として
各回路ブロックへ供給される。図1では、1つのクロッ
ク信号(クロック信号線5のクロック信号)の駆動回路
として、遅延回路2Aと出力バッファ回路4とを有し、
それらを制御するためにレジスタ8およびランダムロジ
ック9を設けている。なお、他のクロック信号について
は、上記のクロック信号線5のクロック信号と同様に遅
延調整機能を持つ駆動回路(遅延回路2A,出力バッフ
ァ回路4)やレジスタ8およびランダムロジック9を設
けてあってもよいし、あるクロック信号については、遅
延調整機能を持たない構成の駆動回路としてもよい。
【0039】また、本実施の形態において、クロック1
6はクロック信号線5から供給されるクロック信号であ
り、クロック14は図示しない他のクロック信号線から
供給されるクロック信号であるとする。上記のような構
成を持つ本実施の形態の半導体集積回路におけるクロッ
ク調整は、図2に示す設計フローにより実現できる。
6はクロック信号線5から供給されるクロック信号であ
り、クロック14は図示しない他のクロック信号線から
供給されるクロック信号であるとする。上記のような構
成を持つ本実施の形態の半導体集積回路におけるクロッ
ク調整は、図2に示す設計フローにより実現できる。
【0040】本実施の形態の半導体集積回路(LSI)
のレイアウト設計において、各ブロックのレイアウトと
クロック信号線5を含むブロック間配線のレイアウトが
決まった段階(ステップ61)で、ブロック内部のクロ
ック遅延値(各ブロックのクロック入力端子からフリッ
プフロップのクロック端子に至る経路の遅延値)とクロ
ック信号線5の負荷容量および抵抗値とをレイアウトデ
ータから見積る(ステップ62)。これらの見積り値に
基づいて、クロック原信号生成回路1の出力から各ブロ
ックのフリップフロップのクロック端子に至る経路の遅
延値が全てのブロック間で一定値に揃うように、クロッ
ク原信号生成回路1の出力からクロック信号線5までの
目標遅延値を逆算して求める(ステップ63)。
のレイアウト設計において、各ブロックのレイアウトと
クロック信号線5を含むブロック間配線のレイアウトが
決まった段階(ステップ61)で、ブロック内部のクロ
ック遅延値(各ブロックのクロック入力端子からフリッ
プフロップのクロック端子に至る経路の遅延値)とクロ
ック信号線5の負荷容量および抵抗値とをレイアウトデ
ータから見積る(ステップ62)。これらの見積り値に
基づいて、クロック原信号生成回路1の出力から各ブロ
ックのフリップフロップのクロック端子に至る経路の遅
延値が全てのブロック間で一定値に揃うように、クロッ
ク原信号生成回路1の出力からクロック信号線5までの
目標遅延値を逆算して求める(ステップ63)。
【0041】次にステップ64で、SPICEシミュレ
ーション等の方法を用いて、クロック信号線5の遅延値
が上記で算出した適切な値(目標遅延値)になるよう
に、遅延回路2Aの遅延値および出力バッファ回路4の
駆動能力を合わせ込む。ここまでは本実施の形態でも従
来方法でも同じである。しかし、本実施の形態では、こ
の段階で従来のように、チップのレイアウトを修正して
クロックの遅延値を調整することは行わない。その代わ
り、それを実現するようにレジスタ8の初期値を決め
る。従って、従来のレイアウト修正に要していた設計時
間/工数を削減することができる。
ーション等の方法を用いて、クロック信号線5の遅延値
が上記で算出した適切な値(目標遅延値)になるよう
に、遅延回路2Aの遅延値および出力バッファ回路4の
駆動能力を合わせ込む。ここまでは本実施の形態でも従
来方法でも同じである。しかし、本実施の形態では、こ
の段階で従来のように、チップのレイアウトを修正して
クロックの遅延値を調整することは行わない。その代わ
り、それを実現するようにレジスタ8の初期値を決め
る。従って、従来のレイアウト修正に要していた設計時
間/工数を削減することができる。
【0042】その後、LSIを製造して(ステップ6
5)、テスターで評価するに際して、LSIのリセット
後ただちに、CPU6がLSI初期化処理の一環とし
て、あらかじめ求めていた初期値をレジスタ8に設定す
る。次に、CPU6がメモリ7に蓄積されているタイミ
ングテストプログラム11を実行してチップの評価を行
う(ステップ66)。ここで問題がなければ、チップの
正常動作が確認できるはずである。しかしながら、もし
もチップの設計時に行った遅延値の見積りが誤っていた
り、精度的に不十分であった場合には、テストの結果、
タイミングエラーのために、チップが誤動作するという
ことが判明する場合もある。
5)、テスターで評価するに際して、LSIのリセット
後ただちに、CPU6がLSI初期化処理の一環とし
て、あらかじめ求めていた初期値をレジスタ8に設定す
る。次に、CPU6がメモリ7に蓄積されているタイミ
ングテストプログラム11を実行してチップの評価を行
う(ステップ66)。ここで問題がなければ、チップの
正常動作が確認できるはずである。しかしながら、もし
もチップの設計時に行った遅延値の見積りが誤っていた
り、精度的に不十分であった場合には、テストの結果、
タイミングエラーのために、チップが誤動作するという
ことが判明する場合もある。
【0043】もしもそうなった場合には、従来の設計方
法だと、クロック信号線駆動回路のレイアウトを再修正
して、クロックスキューを合わせ込むことが必要にな
り、LSI開発スケジュールを大幅に遅らせる結果にな
る。しかしながら、本実施の形態では、ステップ67
で、CPU6がメモリ7内の駆動回路制御プログラム1
2を実行して、レジスタ8に設定する値(遅延回路2A
の遅延値,出力バッファ回路4の駆動能力を設定するた
めのデータ)を変更するだけで、チップの誤動作を解決
することができ、ここでもLSI開発期間/工数の大幅
な短縮を実現している。
法だと、クロック信号線駆動回路のレイアウトを再修正
して、クロックスキューを合わせ込むことが必要にな
り、LSI開発スケジュールを大幅に遅らせる結果にな
る。しかしながら、本実施の形態では、ステップ67
で、CPU6がメモリ7内の駆動回路制御プログラム1
2を実行して、レジスタ8に設定する値(遅延回路2A
の遅延値,出力バッファ回路4の駆動能力を設定するた
めのデータ)を変更するだけで、チップの誤動作を解決
することができ、ここでもLSI開発期間/工数の大幅
な短縮を実現している。
【0044】次に、ステップ66のタイミングテストお
よびステップ67の駆動回路制御について、図3のフロ
ー図を用いてより詳しく説明する。タイミングテスト6
6は、あるクロックサイクルでCPU6が被テスト回路
17の入力レジスタ13にテストデータを書きこむこと
から始まる(ステップ71)。次のクロックの立ち上が
りに同期してレジスタ13は入力データを取り込む。被
テスト回路17はこの入力データと回路の論理によって
決まる出力データをある遅延時間後に出力レジスタ15
に対して出力する。
よびステップ67の駆動回路制御について、図3のフロ
ー図を用いてより詳しく説明する。タイミングテスト6
6は、あるクロックサイクルでCPU6が被テスト回路
17の入力レジスタ13にテストデータを書きこむこと
から始まる(ステップ71)。次のクロックの立ち上が
りに同期してレジスタ13は入力データを取り込む。被
テスト回路17はこの入力データと回路の論理によって
決まる出力データをある遅延時間後に出力レジスタ15
に対して出力する。
【0045】次のクロックの立ち上がりに同期して被テ
スト回路17の出力データはレジスタ15に取り込まれ
る。この時、もしもタイミングエラーがなければ、レジ
スタ15には正しい出力データが取り込まれるが、もし
もクロック14とクロック16間にスキューがあってク
ロック16がクロック14に対して遅れているような場
合には、レジスタ15には誤ったデータが格納されるこ
とになる。
スト回路17の出力データはレジスタ15に取り込まれ
る。この時、もしもタイミングエラーがなければ、レジ
スタ15には正しい出力データが取り込まれるが、もし
もクロック14とクロック16間にスキューがあってク
ロック16がクロック14に対して遅れているような場
合には、レジスタ15には誤ったデータが格納されるこ
とになる。
【0046】次のクロックサイクルでCPU6はレジス
タ15から出力データを読み出し、一旦CPU6内部の
汎用レジスタに格納しておく(ステップ72)。次にC
PU6は、あらかじめ計算してタイミングテストプログ
ラム11の中に含まれている正しいデータをメモリ7か
ら読み出して、前記出力データと比較する(ステップ7
3)。比較の結果が一致していればタイミングエラーは
ないということでプログラムは終了する。
タ15から出力データを読み出し、一旦CPU6内部の
汎用レジスタに格納しておく(ステップ72)。次にC
PU6は、あらかじめ計算してタイミングテストプログ
ラム11の中に含まれている正しいデータをメモリ7か
ら読み出して、前記出力データと比較する(ステップ7
3)。比較の結果が一致していればタイミングエラーは
ないということでプログラムは終了する。
【0047】比較の結果が一致していない場合には、駆
動回路制御67(図2)を行う。まず、出力データの誤
りを分析する(ステップ74)。多くの回路ではスキュ
ー時間と出力データの間に相関があるので、誤り方を分
析することにより、スキュー時間を逆算することができ
る。次に、駆動回路制御プログラム12に含まれるデー
タを用いて、スキュー時間を補正するようにクロック1
6を早める駆動回路の新しい設定値を逆算する(ステッ
プ75)。最後に、CPU6はクロック16を供給する
クロック信号線5の駆動回路に対応するレジスタ8に新
しい設定値を書き込む(ステップ76)。その結果、ク
ロック16のタイミングが速くなるため、クロック14
との間のスキューはなくなり、タイミングエラーは解消
される。
動回路制御67(図2)を行う。まず、出力データの誤
りを分析する(ステップ74)。多くの回路ではスキュ
ー時間と出力データの間に相関があるので、誤り方を分
析することにより、スキュー時間を逆算することができ
る。次に、駆動回路制御プログラム12に含まれるデー
タを用いて、スキュー時間を補正するようにクロック1
6を早める駆動回路の新しい設定値を逆算する(ステッ
プ75)。最後に、CPU6はクロック16を供給する
クロック信号線5の駆動回路に対応するレジスタ8に新
しい設定値を書き込む(ステップ76)。その結果、ク
ロック16のタイミングが速くなるため、クロック14
との間のスキューはなくなり、タイミングエラーは解消
される。
【0048】以上のように本実施の形態によれば、CP
U6によりレジスタ8に書き込まれたデータに応じてク
ロック信号線5の駆動回路を制御する、すなわち遅延回
路2Aの遅延値および出力バッファ回路4の駆動能力を
制御するようにしたことにより、クロック信号が係わる
タイミングエラーを回避することができる。従って、従
来のように回路修正/再試作を行う必要がなくなり、開
発期間/工数を大幅に削減することが可能である。ま
た、製造時の素子特性のばらつきやチップ使用時の電源
電圧変動による遅延特性の変化を補償することができる
ので、チップ歩留まりを改善することも可能である。
U6によりレジスタ8に書き込まれたデータに応じてク
ロック信号線5の駆動回路を制御する、すなわち遅延回
路2Aの遅延値および出力バッファ回路4の駆動能力を
制御するようにしたことにより、クロック信号が係わる
タイミングエラーを回避することができる。従って、従
来のように回路修正/再試作を行う必要がなくなり、開
発期間/工数を大幅に削減することが可能である。ま
た、製造時の素子特性のばらつきやチップ使用時の電源
電圧変動による遅延特性の変化を補償することができる
ので、チップ歩留まりを改善することも可能である。
【0049】また、本実施の形態では、遅延調整機能を
持つ遅延回路2Aおよび出力バッファ回路4を設け、そ
の両方を制御するようにしたが、遅延回路2Aおよび出
力バッファ回路4のうち一方のみを設けて制御するよう
にしてもよく、その場合、構成および制御が簡単にな
る。また、本実施の形態では、例えば出力バッファ回路
4の調整を主とし、それで調整できないときにのみ遅延
回路2Aにより調整するようにしてもよい。なお、遅延
回路2Aおよび出力バッファ回路4のうち一方のみを設
ける場合に比べ、本実施の形態のように両方設けた方
が、遅延調整能力は増加するが制御および構成が複雑に
なる。
持つ遅延回路2Aおよび出力バッファ回路4を設け、そ
の両方を制御するようにしたが、遅延回路2Aおよび出
力バッファ回路4のうち一方のみを設けて制御するよう
にしてもよく、その場合、構成および制御が簡単にな
る。また、本実施の形態では、例えば出力バッファ回路
4の調整を主とし、それで調整できないときにのみ遅延
回路2Aにより調整するようにしてもよい。なお、遅延
回路2Aおよび出力バッファ回路4のうち一方のみを設
ける場合に比べ、本実施の形態のように両方設けた方
が、遅延調整能力は増加するが制御および構成が複雑に
なる。
【0050】なお、本実施の形態では、タイミングエラ
ーの例としてクロックスキューの問題を取り上げたが、
それ以外にもクロックに係わる様々なタイミングの問題
があり、それらに対しても本発明は有効である。例え
ば、被テスト回路17の遅延時間がクロックサイクル時
間よりも大きい場合には、やはりレジスタ15は正しい
データを取り込めないのでタイミングエラーが起こるこ
とになる。このような場合には、逆にクロック16を遅
らせて、わざとクロック14との間にスキューをつくる
ことによりタイミングエラーを解消することが可能であ
る。
ーの例としてクロックスキューの問題を取り上げたが、
それ以外にもクロックに係わる様々なタイミングの問題
があり、それらに対しても本発明は有効である。例え
ば、被テスト回路17の遅延時間がクロックサイクル時
間よりも大きい場合には、やはりレジスタ15は正しい
データを取り込めないのでタイミングエラーが起こるこ
とになる。このような場合には、逆にクロック16を遅
らせて、わざとクロック14との間にスキューをつくる
ことによりタイミングエラーを解消することが可能であ
る。
【0051】なお、遅延回路2Aの遅延値の制御により
クロック信号線5のクロック16のタイミングを速める
場合には、選択回路3が、遅延手段2からの複数の入力
のうち、クロック原信号生成回路1側に近い入力を選択
するように、選択回路3を制御すればよいし、クロック
信号線5のクロック16のタイミングを遅らせる場合に
は、選択回路3が、遅延手段2からの複数の入力のう
ち、クロック原信号生成回路1側から遠い入力を選択す
るように、選択回路3を制御すればよい。
クロック信号線5のクロック16のタイミングを速める
場合には、選択回路3が、遅延手段2からの複数の入力
のうち、クロック原信号生成回路1側に近い入力を選択
するように、選択回路3を制御すればよいし、クロック
信号線5のクロック16のタイミングを遅らせる場合に
は、選択回路3が、遅延手段2からの複数の入力のう
ち、クロック原信号生成回路1側から遠い入力を選択す
るように、選択回路3を制御すればよい。
【0052】また、出力バッファ回路4の駆動能力の制
御によりクロック信号線5のクロック16のタイミング
を速める場合には、3ステートバッファ4a,4b,4
cの制御入力をイネーブルに設定するものの数を増やせ
ばよい。これは、オンする3ステートバッファの数が増
えると出力バッファ回路4の駆動能力が大きくなり、ク
ロック信号を高速に駆動できるようになるためである。
逆に、クロック信号線5のクロック16のタイミングを
遅らせる場合には、3ステートバッファ4a,4b,4
cの制御入力をイネーブルに設定するものの数を減らせ
ばよい。
御によりクロック信号線5のクロック16のタイミング
を速める場合には、3ステートバッファ4a,4b,4
cの制御入力をイネーブルに設定するものの数を増やせ
ばよい。これは、オンする3ステートバッファの数が増
えると出力バッファ回路4の駆動能力が大きくなり、ク
ロック信号を高速に駆動できるようになるためである。
逆に、クロック信号線5のクロック16のタイミングを
遅らせる場合には、3ステートバッファ4a,4b,4
cの制御入力をイネーブルに設定するものの数を減らせ
ばよい。
【0053】また、本実施の形態では、被テスト回路1
7の入力レジスタ13と出力レジスタ15がともにバス
信号線10に接続され、CPU6から直接読み書きでき
るような構成になっているが、必ずしもそうである必要
はない。ただし、その場合にはテストデータをレジスタ
13に書き込み、レジスタ15から結果データを読み出
すのに、より複雑なシーケンスが必要になる。
7の入力レジスタ13と出力レジスタ15がともにバス
信号線10に接続され、CPU6から直接読み書きでき
るような構成になっているが、必ずしもそうである必要
はない。ただし、その場合にはテストデータをレジスタ
13に書き込み、レジスタ15から結果データを読み出
すのに、より複雑なシーケンスが必要になる。
【0054】また、レジスタ13やレジスタ15はより
大規模なメモリであってもよい。 〔第2の実施の形態〕次に、本発明の第2の実施の形態
について以下に説明する。図4は本発明の第2の実施の
形態の半導体集積回路の構成図である。図4において、
クロック原信号生成回路1、遅延手段2、選択回路3、
出力バッファ回路4、クロック信号線5については、第
1の実施の形態と基本的に同じであるため、説明を省略
する。
大規模なメモリであってもよい。 〔第2の実施の形態〕次に、本発明の第2の実施の形態
について以下に説明する。図4は本発明の第2の実施の
形態の半導体集積回路の構成図である。図4において、
クロック原信号生成回路1、遅延手段2、選択回路3、
出力バッファ回路4、クロック信号線5については、第
1の実施の形態と基本的に同じであるため、説明を省略
する。
【0055】本実施の形態においては、第1の実施の形
態とは異なり、クロック信号線5の駆動回路(遅延回路
2A,出力バッファ回路4)は、ランダムロジック44
を介してクロックスキュー検出回路53が出力するデー
タにより制御される。以下、クロックスキュー検出回路
53について詳しく説明する。クロックスキュー検出回
路53は、データ発生回路45、テスト用のフリップフ
ロップ46、テスト用のフリップフロップ49およびデ
ータ解析回路52等から構成される。データ発生回路4
5の出力はフリップフロップ46に入力され、フリップ
フロップ46の出力はフリップフロップ49およびデー
タ解析回路52に入力されている。また、フリップフロ
ップ49の出力はデータ解析回路52に入力されてい
る。
態とは異なり、クロック信号線5の駆動回路(遅延回路
2A,出力バッファ回路4)は、ランダムロジック44
を介してクロックスキュー検出回路53が出力するデー
タにより制御される。以下、クロックスキュー検出回路
53について詳しく説明する。クロックスキュー検出回
路53は、データ発生回路45、テスト用のフリップフ
ロップ46、テスト用のフリップフロップ49およびデ
ータ解析回路52等から構成される。データ発生回路4
5の出力はフリップフロップ46に入力され、フリップ
フロップ46の出力はフリップフロップ49およびデー
タ解析回路52に入力されている。また、フリップフロ
ップ49の出力はデータ解析回路52に入力されてい
る。
【0056】テスト用のフリップフロップ46は回路ブ
ロック48に含まれてレイアウトされ、テスト用のフリ
ップフロップ49は回路ブロック51に含まれてレイア
ウトされている。なお、回路ブロック48,51のそれ
ぞれには、主要回路を構成する図示しないフリップフロ
ップ(以下「他のフリップフロップ」という)が複数個
レイアウトされており、回路ブロック48中のフリップ
フロップ46および他のフリップフロップには同一(同
位相)のクロック47が入力され、回路ブロック51中
のフリップフロップ49および他のフリップフロップに
は同一(同位相)のクロック50が入力される。回路ブ
ロック48,51のそれぞれのブロック内に含まれる他
のフリップフロップ間ではクロックスキューが十分小さ
くなるようにクロックバッファの構成やサイズが調整さ
れている。
ロック48に含まれてレイアウトされ、テスト用のフリ
ップフロップ49は回路ブロック51に含まれてレイア
ウトされている。なお、回路ブロック48,51のそれ
ぞれには、主要回路を構成する図示しないフリップフロ
ップ(以下「他のフリップフロップ」という)が複数個
レイアウトされており、回路ブロック48中のフリップ
フロップ46および他のフリップフロップには同一(同
位相)のクロック47が入力され、回路ブロック51中
のフリップフロップ49および他のフリップフロップに
は同一(同位相)のクロック50が入力される。回路ブ
ロック48,51のそれぞれのブロック内に含まれる他
のフリップフロップ間ではクロックスキューが十分小さ
くなるようにクロックバッファの構成やサイズが調整さ
れている。
【0057】図5にクロックスキュー検出回路53の構
成例を示す。データ発生回路45はクロックサイクル毎
に変化する1ビットの信号を生成する回路であり、例え
ば図5に示すように、フリップフロップ46の出力を反
転させるインバータ素子81を用いて構成することがで
きる。この例では、データ発生回路45であるインバー
タ素子81が回路ブロック48に含まれてレイアウトさ
れている。フリップフロップ46にはクロック47に同
期して、各クロックサイクル毎に前サイクルとは異なる
値がラッチされる。
成例を示す。データ発生回路45はクロックサイクル毎
に変化する1ビットの信号を生成する回路であり、例え
ば図5に示すように、フリップフロップ46の出力を反
転させるインバータ素子81を用いて構成することがで
きる。この例では、データ発生回路45であるインバー
タ素子81が回路ブロック48に含まれてレイアウトさ
れている。フリップフロップ46にはクロック47に同
期して、各クロックサイクル毎に前サイクルとは異なる
値がラッチされる。
【0058】フリップフロップ46の出力はフリップフ
ロップ49に入力される。この配線はブロック48,5
1間をほぼ最短距離で結ぶようにレイアウトし、フリッ
プフロップ46,49間の信号遅延が小さくなるように
する。このパス遅延値が、回路ブロック48に含まれる
他の全フリップフロップから回路ブロック51に含まれ
る他の全フリップフロップに至る全ての信号パスの遅延
値よりも小さくなるように、フリップフロップ46の駆
動能力を選択する。
ロップ49に入力される。この配線はブロック48,5
1間をほぼ最短距離で結ぶようにレイアウトし、フリッ
プフロップ46,49間の信号遅延が小さくなるように
する。このパス遅延値が、回路ブロック48に含まれる
他の全フリップフロップから回路ブロック51に含まれ
る他の全フリップフロップに至る全ての信号パスの遅延
値よりも小さくなるように、フリップフロップ46の駆
動能力を選択する。
【0059】フリップフロップ49はクロック50に同
期してフリップフロップ46の出力をラッチする。この
時、クロック47とクロック50間のスキューが十分小
さい場合には、フリップフロップ49には前サイクルに
フリップフロップ46にラッチされた値が正しくラッチ
されることになる。従って、同一サイクルではフリップ
フロップ46とフリップフロップ49に異なる値が保持
されることになる。
期してフリップフロップ46の出力をラッチする。この
時、クロック47とクロック50間のスキューが十分小
さい場合には、フリップフロップ49には前サイクルに
フリップフロップ46にラッチされた値が正しくラッチ
されることになる。従って、同一サイクルではフリップ
フロップ46とフリップフロップ49に異なる値が保持
されることになる。
【0060】しかし、クロック50の立ち上がりがクロ
ック47の立ち上がりに対してある遅延値以上遅れる
と、クロック47の立ち上がりに同期してフリップフロ
ップ46にラッチされた値が伝搬してフリップフロップ
49まで到達した後でクロック50が立ち上がり、その
ままフリップフロップ49にラッチされることになる。
このように、タイミングエラーが起こると、同一サイク
ルでフリップフロップ46とフリップフロップ49に同
じ値が保持されることになる。
ック47の立ち上がりに対してある遅延値以上遅れる
と、クロック47の立ち上がりに同期してフリップフロ
ップ46にラッチされた値が伝搬してフリップフロップ
49まで到達した後でクロック50が立ち上がり、その
ままフリップフロップ49にラッチされることになる。
このように、タイミングエラーが起こると、同一サイク
ルでフリップフロップ46とフリップフロップ49に同
じ値が保持されることになる。
【0061】また、データ解析回路52は、フリップフ
ロップ46とフリップフロップ49に保持される値を比
較する回路であり、例えば図5に示すように、フリップ
フロップ46の出力とフリップフロップ49の出力とを
入力するEXNOR(排他的論理和の否定)素子82を
用いて構成することができる。この例では、データ解析
回路52であるEXNOR素子82が回路ブロック51
に含まれてレイアウトされている。EXNOR素子82
は、フリップフロップ46の出力とフリップフロップ4
9の出力とが一致していれば値1を、異なっていれば値
0をクロックスキュー検出信号83として出力する。こ
のクロックスキュー検出信号83の値が1のときにはク
ロックスキューによるタイミングエラーが起こってお
り、0のときにはタイミングエラーは起こっていない。
ロップ46とフリップフロップ49に保持される値を比
較する回路であり、例えば図5に示すように、フリップ
フロップ46の出力とフリップフロップ49の出力とを
入力するEXNOR(排他的論理和の否定)素子82を
用いて構成することができる。この例では、データ解析
回路52であるEXNOR素子82が回路ブロック51
に含まれてレイアウトされている。EXNOR素子82
は、フリップフロップ46の出力とフリップフロップ4
9の出力とが一致していれば値1を、異なっていれば値
0をクロックスキュー検出信号83として出力する。こ
のクロックスキュー検出信号83の値が1のときにはク
ロックスキューによるタイミングエラーが起こってお
り、0のときにはタイミングエラーは起こっていない。
【0062】ブロック48およびブロック51の内部で
はクロックスキューが小さく抑えられており、ブロック
48に含まれる他のフリップフロップとブロック51に
含まれる他のフリップフロップとの間のパス遅延は、フ
リップフロップ46とフリップフロップ49間の信号遅
延よりも大きいため、フリップフロップ49でクロック
スキューによるタイミングエラーが起こらないならば、
ブロック51に含まれる全ての他のフリップフロップで
同様にエラーが起こらないと考えてよい。
はクロックスキューが小さく抑えられており、ブロック
48に含まれる他のフリップフロップとブロック51に
含まれる他のフリップフロップとの間のパス遅延は、フ
リップフロップ46とフリップフロップ49間の信号遅
延よりも大きいため、フリップフロップ49でクロック
スキューによるタイミングエラーが起こらないならば、
ブロック51に含まれる全ての他のフリップフロップで
同様にエラーが起こらないと考えてよい。
【0063】ランダムロジック44は、クロックスキュ
ー検出回路53の出力であるクロックスキュー検出信号
83を受けて選択回路3や出力バッファ回路4の制御信
号を出力する。つぎに、ランダムロジック44およびク
ロック信号線5の駆動回路について説明する。なお、図
4ではクロック信号線5の駆動回路として、遅延回路2
Aおよび出力バッファ回路4を設けた構成としている
が、第1の実施の形態でも説明したように、遅延回路2
Aおよび出力バッファ回路4の両方を設けた場合には制
御および構成が複雑になるため、以下では、遅延回路2
Aおよび出力バッファ回路4のうち一方ずつを設けた2
つの場合について説明する。
ー検出回路53の出力であるクロックスキュー検出信号
83を受けて選択回路3や出力バッファ回路4の制御信
号を出力する。つぎに、ランダムロジック44およびク
ロック信号線5の駆動回路について説明する。なお、図
4ではクロック信号線5の駆動回路として、遅延回路2
Aおよび出力バッファ回路4を設けた構成としている
が、第1の実施の形態でも説明したように、遅延回路2
Aおよび出力バッファ回路4の両方を設けた場合には制
御および構成が複雑になるため、以下では、遅延回路2
Aおよび出力バッファ回路4のうち一方ずつを設けた2
つの場合について説明する。
【0064】第1の場合として、図4の構成において遅
延回路2Aを設けていない場合、すなわちクロック信号
線5の駆動回路として出力バッファ回路4のみを設けた
場合について説明する。この場合のランダムロジック4
4およびクロック信号線5の駆動回路の一例を図6に示
す。クロック原信号生成回路1から出力されたクロック
原信号91が、バッファ回路94および3ステートバッ
ファ95からなる出力バッファ回路4Aに入力されてい
る。出力バッファ回路4Aの出力線であるクロック信号
線5が回路ブロック51に接続されている。したがっ
て、回路ブロック51のクロック50(図5)はクロッ
ク信号線5から供給されるクロック信号である。また、
クロック93および回路ブロック48のクロック47
(図5)は図示しない他のクロック信号線から供給され
るクロック信号であり、クロック93には遅延調整は必
要なく、クロック47には遅延調整が存在する場合も存
在しない場合もある。
延回路2Aを設けていない場合、すなわちクロック信号
線5の駆動回路として出力バッファ回路4のみを設けた
場合について説明する。この場合のランダムロジック4
4およびクロック信号線5の駆動回路の一例を図6に示
す。クロック原信号生成回路1から出力されたクロック
原信号91が、バッファ回路94および3ステートバッ
ファ95からなる出力バッファ回路4Aに入力されてい
る。出力バッファ回路4Aの出力線であるクロック信号
線5が回路ブロック51に接続されている。したがっ
て、回路ブロック51のクロック50(図5)はクロッ
ク信号線5から供給されるクロック信号である。また、
クロック93および回路ブロック48のクロック47
(図5)は図示しない他のクロック信号線から供給され
るクロック信号であり、クロック93には遅延調整は必
要なく、クロック47には遅延調整が存在する場合も存
在しない場合もある。
【0065】ランダムロジック44は、入力するクロッ
ク93を反転させるインバータ回路98と、AND(論
理積)回路99と、シフトレジスタを構成する複数のフ
リップフロップ97で構成されている。シフトレジスタ
を構成する先頭のフリップフロップ97には論理値
「1」を入力する。また、クロックスキュー検出信号8
3とクロック93の反転信号との論理積をフリップフロ
ップ97のクロックとして入力する。フリップフロップ
97のリセット入力にはリセット信号92を入力する。
フリップフロップ97のそれぞれの出力は対応する3ス
テートバッファ95の制御入力に接続している。
ク93を反転させるインバータ回路98と、AND(論
理積)回路99と、シフトレジスタを構成する複数のフ
リップフロップ97で構成されている。シフトレジスタ
を構成する先頭のフリップフロップ97には論理値
「1」を入力する。また、クロックスキュー検出信号8
3とクロック93の反転信号との論理積をフリップフロ
ップ97のクロックとして入力する。フリップフロップ
97のリセット入力にはリセット信号92を入力する。
フリップフロップ97のそれぞれの出力は対応する3ス
テートバッファ95の制御入力に接続している。
【0066】なお、この図6の出力バッファ回路4Aで
は、3ステートバッファではないバッファ回路94が存
在することが、図4に示した出力バッファ回路4とは異
なるが、バッファ回路94を3ステートバッファに置き
換え、ランダムロジック44から常にオン状態に制御す
る(例えば、先頭のフリップフロップ97に入力される
論理値「1」を、置き換えた3ステートバッファの制御
入力に接続する)ことにより、図4の出力バッファ回路
4と同様の構成となる。
は、3ステートバッファではないバッファ回路94が存
在することが、図4に示した出力バッファ回路4とは異
なるが、バッファ回路94を3ステートバッファに置き
換え、ランダムロジック44から常にオン状態に制御す
る(例えば、先頭のフリップフロップ97に入力される
論理値「1」を、置き換えた3ステートバッファの制御
入力に接続する)ことにより、図4の出力バッファ回路
4と同様の構成となる。
【0067】さて、LSIのリセット直後には、全ての
フリップフロップ97はリセットされて論理値「0」を
保持している。その状態では3ステートバッファ95は
全てオフしており、ブロック51に供給されるクロック
信号線5はバッファ回路94のみによって駆動される。
この時、もしもクロックスキューによるタイミングエラ
ーが起こっていないならば、クロックスキュー検出信号
83は論理値「0」になり、フリップフロップ97には
クロックが入力されない。
フリップフロップ97はリセットされて論理値「0」を
保持している。その状態では3ステートバッファ95は
全てオフしており、ブロック51に供給されるクロック
信号線5はバッファ回路94のみによって駆動される。
この時、もしもクロックスキューによるタイミングエラ
ーが起こっていないならば、クロックスキュー検出信号
83は論理値「0」になり、フリップフロップ97には
クロックが入力されない。
【0068】逆にタイミングエラーが起こっている場合
には、クロックスキュー検出信号83は論理値「1」と
なり、フリップフロップ97にクロックが入力される。
その結果、先頭のフリップフロップ97は論理値「1」
を保持するようになり、対応する3ステートバッファ9
5がオンする。その結果、クロック信号線5はより高速
に駆動されるようになり、クロックスキューは改善され
る。これを繰り返してクロックスキューが十分小さくな
り、タイミングエラーを起こさなくなった時点で、フリ
ップフロップ97のシフト動作がストップし、クロック
バッファの駆動能力が固定される。
には、クロックスキュー検出信号83は論理値「1」と
なり、フリップフロップ97にクロックが入力される。
その結果、先頭のフリップフロップ97は論理値「1」
を保持するようになり、対応する3ステートバッファ9
5がオンする。その結果、クロック信号線5はより高速
に駆動されるようになり、クロックスキューは改善され
る。これを繰り返してクロックスキューが十分小さくな
り、タイミングエラーを起こさなくなった時点で、フリ
ップフロップ97のシフト動作がストップし、クロック
バッファの駆動能力が固定される。
【0069】つぎに第2の場合として、図4の構成にお
いて出力バッファ回路4を設けていない場合、すなわち
クロック信号線5の駆動回路として遅延回路2Aのみを
設けた場合について説明する。この場合のランダムロジ
ック44およびクロック信号線5の駆動回路の一例を図
7に示す。クロック原信号生成回路1から出力されたク
ロック原信号91が遅延回路2Aに入力され、遅延回路
2Aの出力線であるクロック信号線5が回路ブロック5
1に接続されている。遅延回路2Aは、複数のインバー
タ回路(120,121を含む)からなる遅延手段2
と、遅延手段2の出力とランダムロジック44の出力と
をそれぞれ入力するAND(論理積)回路122,12
3,・・・・・・,124およびOR(論理和)回路125か
らなる選択回路3とで構成されている。
いて出力バッファ回路4を設けていない場合、すなわち
クロック信号線5の駆動回路として遅延回路2Aのみを
設けた場合について説明する。この場合のランダムロジ
ック44およびクロック信号線5の駆動回路の一例を図
7に示す。クロック原信号生成回路1から出力されたク
ロック原信号91が遅延回路2Aに入力され、遅延回路
2Aの出力線であるクロック信号線5が回路ブロック5
1に接続されている。遅延回路2Aは、複数のインバー
タ回路(120,121を含む)からなる遅延手段2
と、遅延手段2の出力とランダムロジック44の出力と
をそれぞれ入力するAND(論理積)回路122,12
3,・・・・・・,124およびOR(論理和)回路125か
らなる選択回路3とで構成されている。
【0070】また、この図7のランダムロジック44
は、図6のランダムロジック44の構成にインバータ回
路126,127およびAND回路128(図示しない
省略したものも含む)を付加した構成となっている。こ
の図7の場合、LSIのリセット直後には、全てのフリ
ップフロップ97はリセットされて論理値「0」に設定
される。この状態では選択回路3のAND回路122に
入力されるインバータ回路126の出力が論理値「1」
となり、遅延手段2の出力のうち最大に遅延されたイン
バータ回路121の出力がAND回路122により選択
され、OR回路125を通ってクロック信号線5に出力
される。この時、もしもクロックスキューによるタイミ
ングエラーが起こっていないならば、クロックスキュー
検出信号83は論理値「0」になり、フリップフロップ
97にはクロックが入力されない。
は、図6のランダムロジック44の構成にインバータ回
路126,127およびAND回路128(図示しない
省略したものも含む)を付加した構成となっている。こ
の図7の場合、LSIのリセット直後には、全てのフリ
ップフロップ97はリセットされて論理値「0」に設定
される。この状態では選択回路3のAND回路122に
入力されるインバータ回路126の出力が論理値「1」
となり、遅延手段2の出力のうち最大に遅延されたイン
バータ回路121の出力がAND回路122により選択
され、OR回路125を通ってクロック信号線5に出力
される。この時、もしもクロックスキューによるタイミ
ングエラーが起こっていないならば、クロックスキュー
検出信号83は論理値「0」になり、フリップフロップ
97にはクロックが入力されない。
【0071】逆にタイミングエラーが起こっている場合
には、クロックスキュー検出信号83は論理値「1」と
なり、フリップフロップ97にクロックが入力される。
その結果、先頭のフリップフロップ97に論理値「1」
が設定され、今度は選択回路3のAND回路123に入
力されるAND回路128の出力が論理値「1」とな
り、インバータ回路120の出力がAND回路123に
より選択され、OR回路125を通ってクロック信号線
5に出力される。このときのクロック信号線5のクロッ
クは、前述のインバータ回路121の出力が選択された
ときのクロックよりも高速であるので、クロックスキュ
ーが改善される。
には、クロックスキュー検出信号83は論理値「1」と
なり、フリップフロップ97にクロックが入力される。
その結果、先頭のフリップフロップ97に論理値「1」
が設定され、今度は選択回路3のAND回路123に入
力されるAND回路128の出力が論理値「1」とな
り、インバータ回路120の出力がAND回路123に
より選択され、OR回路125を通ってクロック信号線
5に出力される。このときのクロック信号線5のクロッ
クは、前述のインバータ回路121の出力が選択された
ときのクロックよりも高速であるので、クロックスキュ
ーが改善される。
【0072】以上の動作を繰り返して順番により高速な
クロックを選択することにより、クロックスキューを十
分小さくしてタイミングエラーを回避することができ
る。なお、タイミングエラーを起こさなくなった時点
で、フリップフロップ97のシフト動作がストップす
る。以上のように本実施の形態によれば、クロックスキ
ュー検出回路53により、回路ブロック48,51内に
設けたテスト用のフリップフロップ46,49に入力さ
れるクロック信号47,50間のスキューを検出し、そ
の検出したクロック信号間のスキューに応じてクロック
信号線5の駆動回路を制御するようにしたことにより、
クロック信号が係わるタイミングエラーを回避すること
ができる。従って、従来のように回路修正/再試作を行
う必要がなくなり、開発期間/工数を大幅に削減するこ
とが可能である。また、製造時の素子特性のばらつきや
チップ使用時の電源電圧変動による遅延特性の変化を補
償することができるので、チップ歩留まりを改善するこ
とも可能である。
クロックを選択することにより、クロックスキューを十
分小さくしてタイミングエラーを回避することができ
る。なお、タイミングエラーを起こさなくなった時点
で、フリップフロップ97のシフト動作がストップす
る。以上のように本実施の形態によれば、クロックスキ
ュー検出回路53により、回路ブロック48,51内に
設けたテスト用のフリップフロップ46,49に入力さ
れるクロック信号47,50間のスキューを検出し、そ
の検出したクロック信号間のスキューに応じてクロック
信号線5の駆動回路を制御するようにしたことにより、
クロック信号が係わるタイミングエラーを回避すること
ができる。従って、従来のように回路修正/再試作を行
う必要がなくなり、開発期間/工数を大幅に削減するこ
とが可能である。また、製造時の素子特性のばらつきや
チップ使用時の電源電圧変動による遅延特性の変化を補
償することができるので、チップ歩留まりを改善するこ
とも可能である。
【0073】なお、本実施の形態では、フリップフロッ
プ46とフリップフロップ49間はゲートを介さずに配
線で直結しているが、これは必ずしもそうである必要は
ない。また、データ発生回路45やデータ解析回路5
2、ランダムロジック44は本実施の形態で例示したも
の以外にも様々な回路を考えることができる。 〔第3の実施の形態〕次に、本発明の第3の実施の形態
について以下に説明する。
プ46とフリップフロップ49間はゲートを介さずに配
線で直結しているが、これは必ずしもそうである必要は
ない。また、データ発生回路45やデータ解析回路5
2、ランダムロジック44は本実施の形態で例示したも
の以外にも様々な回路を考えることができる。 〔第3の実施の形態〕次に、本発明の第3の実施の形態
について以下に説明する。
【0074】図8は本発明の第3の実施の形態の半導体
集積回路の構成図である。図8において、クロック原信
号生成回路1、遅延手段2、選択回路3、出力バッファ
回路4、クロック信号線5については、第1の実施の形
態と基本的に同じであるため、説明を省略する。本実施
の形態においては、第1の実施の形態や第2の実施の形
態とは異なり、クロック信号線5の駆動回路(遅延回路
2A,出力バッファ回路4)は、ランダムロジック23
を介して遅延評価回路34が出力するデータにより制御
される。
集積回路の構成図である。図8において、クロック原信
号生成回路1、遅延手段2、選択回路3、出力バッファ
回路4、クロック信号線5については、第1の実施の形
態と基本的に同じであるため、説明を省略する。本実施
の形態においては、第1の実施の形態や第2の実施の形
態とは異なり、クロック信号線5の駆動回路(遅延回路
2A,出力バッファ回路4)は、ランダムロジック23
を介して遅延評価回路34が出力するデータにより制御
される。
【0075】以下、遅延評価回路34について詳しく説
明する。遅延評価回路34は、データ発生回路24、フ
リップフロップ25、フリップフロップ30、インバー
タ素子26、抵抗素子27、容量素子28およびデータ
解析回路33から構成される。遅延評価回路34の例を
図9に示す。データ発生回路24としては、例えば図9
に示すようにフリップフロップ25の出力をインバータ
素子101で反転させて入力にフィードバックさせた回
路を用いることができる。データ発生回路24から出力
された信号は、クロック35に同期して、フリップフロ
ップ25にラッチされる。各フリップフロップ25から
の信号は、インバータ素子26、抵抗素子27、容量素
子28を順番に並べたそれぞれのインバータチェーン1
02,105,108を通過する内に、インバータ素子
26の駆動能力、抵抗素子27の抵抗値、容量素子28
の容量値によって決まるある時間だけ遅延して、それぞ
れのフリップフロップ30に到達する。それぞれのイン
バータチェーン102,105,108とフリップフロ
ップ25とフリップフロップ30とで1本の遅延パスを
構成する。各フリップフロップ30もクロック35に同
期して信号をラッチするので、もしも信号が各インバー
タチェーン102,105,108を通過して各フリッ
プフロップ30まで到達するのに要する遅延時間がクロ
ック35のサイクル時間よりも小さければ、フリップフ
ロップ30は1サイクル前にフリップフロップ25にラ
ッチされたデータをラッチすることができる。逆に、遅
延時間がクロック35のサイクル時間よりも大きけれ
ば、フリップフロップ30は1サイクル前にフリップフ
ロップ25にラッチされたデータをラッチすることがで
きない。データ解析回路33によりデータが正しくフリ
ップフロップ30にラッチできたかどうかを判定する。
本実施の形態では、データ解析回路33としては、例え
ば図9に示すように、各フリップフロップ25と各フリ
ップフロップ30の出力を入力とするEXNOR素子1
03,106,109を用いて構成している。
明する。遅延評価回路34は、データ発生回路24、フ
リップフロップ25、フリップフロップ30、インバー
タ素子26、抵抗素子27、容量素子28およびデータ
解析回路33から構成される。遅延評価回路34の例を
図9に示す。データ発生回路24としては、例えば図9
に示すようにフリップフロップ25の出力をインバータ
素子101で反転させて入力にフィードバックさせた回
路を用いることができる。データ発生回路24から出力
された信号は、クロック35に同期して、フリップフロ
ップ25にラッチされる。各フリップフロップ25から
の信号は、インバータ素子26、抵抗素子27、容量素
子28を順番に並べたそれぞれのインバータチェーン1
02,105,108を通過する内に、インバータ素子
26の駆動能力、抵抗素子27の抵抗値、容量素子28
の容量値によって決まるある時間だけ遅延して、それぞ
れのフリップフロップ30に到達する。それぞれのイン
バータチェーン102,105,108とフリップフロ
ップ25とフリップフロップ30とで1本の遅延パスを
構成する。各フリップフロップ30もクロック35に同
期して信号をラッチするので、もしも信号が各インバー
タチェーン102,105,108を通過して各フリッ
プフロップ30まで到達するのに要する遅延時間がクロ
ック35のサイクル時間よりも小さければ、フリップフ
ロップ30は1サイクル前にフリップフロップ25にラ
ッチされたデータをラッチすることができる。逆に、遅
延時間がクロック35のサイクル時間よりも大きけれ
ば、フリップフロップ30は1サイクル前にフリップフ
ロップ25にラッチされたデータをラッチすることがで
きない。データ解析回路33によりデータが正しくフリ
ップフロップ30にラッチできたかどうかを判定する。
本実施の形態では、データ解析回路33としては、例え
ば図9に示すように、各フリップフロップ25と各フリ
ップフロップ30の出力を入力とするEXNOR素子1
03,106,109を用いて構成している。
【0076】遅延評価回路34には、前述の遅延パスが
複数本設けてあり、各々の遅延パスのインバータチェー
ン102,105,108はインバータの段数がそれぞ
れ異なって構成されている。そのため各々の遅延パスで
フリップフロップ25,30間の遅延時間が異なるため
に、複数の遅延パスはデータが正しくラッチできるもの
と失敗するものとに分かれるが、その境界の遅延パスの
遅延値がクロック35のサイクル時間におおむね一致す
る。
複数本設けてあり、各々の遅延パスのインバータチェー
ン102,105,108はインバータの段数がそれぞ
れ異なって構成されている。そのため各々の遅延パスで
フリップフロップ25,30間の遅延時間が異なるため
に、複数の遅延パスはデータが正しくラッチできるもの
と失敗するものとに分かれるが、その境界の遅延パスの
遅延値がクロック35のサイクル時間におおむね一致す
る。
【0077】各遅延パスにはチップ設計時にSPICE
シミュレーションにより求めた遅延値が分かっており、
両者の違いが設計時に想定した遅延と現在のチップ上の
遅延の差を表している。これらの違いの原因としては、
設計時に用いた回路パラメータと現実のデバイスとの違
いや、製造工程上のばらつき、あるいは、チップの温度
や電源電圧の違いといったことが考えられる。しかし、
いずれの要因もチップ上では均一に作用すると考えられ
るので、遅延評価回路34の遅延値が設計値からはずれ
ているということは、チップ上の他の回路の遅延値も同
様にずれていると考えてよい。すなわち、遅延評価回路
34の遅延値を標準遅延値として、それの設計値からの
ずれに基づいてクロック信号線5の駆動回路を制御する
ことで、クロックに係わるタイミングエラーを自動的に
回避することが可能である。なお、標準遅延値は、遅延
評価回路34のインバータチェーンの遅延値のことであ
り、チップ上の他の回路の遅延値と連動しており、チッ
プ全体の動作時の遅延値を代表するものであり、チップ
の動作状況が変われば標準遅延値も変化するが、それと
は独立してクロック35のサイクルは一定である。
シミュレーションにより求めた遅延値が分かっており、
両者の違いが設計時に想定した遅延と現在のチップ上の
遅延の差を表している。これらの違いの原因としては、
設計時に用いた回路パラメータと現実のデバイスとの違
いや、製造工程上のばらつき、あるいは、チップの温度
や電源電圧の違いといったことが考えられる。しかし、
いずれの要因もチップ上では均一に作用すると考えられ
るので、遅延評価回路34の遅延値が設計値からはずれ
ているということは、チップ上の他の回路の遅延値も同
様にずれていると考えてよい。すなわち、遅延評価回路
34の遅延値を標準遅延値として、それの設計値からの
ずれに基づいてクロック信号線5の駆動回路を制御する
ことで、クロックに係わるタイミングエラーを自動的に
回避することが可能である。なお、標準遅延値は、遅延
評価回路34のインバータチェーンの遅延値のことであ
り、チップ上の他の回路の遅延値と連動しており、チッ
プ全体の動作時の遅延値を代表するものであり、チップ
の動作状況が変われば標準遅延値も変化するが、それと
は独立してクロック35のサイクルは一定である。
【0078】つぎに、遅延評価回路34によるクロック
信号線5の駆動回路の制御について説明する。なお、図
8ではクロック信号線5の駆動回路として、遅延回路2
Aおよび出力バッファ回路4を設けた構成としている
が、第1,第2の実施の形態でも説明したように、遅延
回路2Aおよび出力バッファ回路4の両方を設けた場合
には制御および構成が複雑になるため、以下では、遅延
回路2Aおよび出力バッファ回路4のうち一方ずつを設
けた2つの場合について説明する。
信号線5の駆動回路の制御について説明する。なお、図
8ではクロック信号線5の駆動回路として、遅延回路2
Aおよび出力バッファ回路4を設けた構成としている
が、第1,第2の実施の形態でも説明したように、遅延
回路2Aおよび出力バッファ回路4の両方を設けた場合
には制御および構成が複雑になるため、以下では、遅延
回路2Aおよび出力バッファ回路4のうち一方ずつを設
けた2つの場合について説明する。
【0079】第1の場合として、図8の構成において遅
延回路2Aを設けていない場合、すなわちクロック信号
線5の駆動回路として出力バッファ回路4のみを設けた
場合について説明する。この場合の遅延評価回路34,
ランダムロジック23およびクロック信号線5の駆動回
路の一例を図9に示す。この例では、遅延評価回路34
のそのままの出力により出力バッファ回路4を制御して
おり、EXNOR素子103,106,109の出力で
直接3ステートバッファ4a,4b,4cを制御してい
る。クロック原信号生成回路1から出力されたクロック
原信号91が、出力バッファ回路4に入力されている。
出力バッファ回路4の出力であるクロック信号線5は図
示しない回路ブロックに接続されている。なお、クロッ
ク35はクロック原信号生成回路1から供給されてい
る。
延回路2Aを設けていない場合、すなわちクロック信号
線5の駆動回路として出力バッファ回路4のみを設けた
場合について説明する。この場合の遅延評価回路34,
ランダムロジック23およびクロック信号線5の駆動回
路の一例を図9に示す。この例では、遅延評価回路34
のそのままの出力により出力バッファ回路4を制御して
おり、EXNOR素子103,106,109の出力で
直接3ステートバッファ4a,4b,4cを制御してい
る。クロック原信号生成回路1から出力されたクロック
原信号91が、出力バッファ回路4に入力されている。
出力バッファ回路4の出力であるクロック信号線5は図
示しない回路ブロックに接続されている。なお、クロッ
ク35はクロック原信号生成回路1から供給されてい
る。
【0080】LSI設計時には、インバータチェーン1
05を含む遅延パスがクロック35のサイクル時間に一
致するようにインバータの段数を調整しておく。インバ
ータチェーン102はインバータチェーン105よりも
インバータが2段多く、そのため遅延時間はクロック3
5のサイクル時間を越えてしまう。インバータチェーン
108は逆にインバータチェーン105よりもインバー
タが2段少ない。このような状況では、EXNOR素子
103は論理値「1」を出力し、EXNOR素子106
とEXNOR素子109は論理値「0」を出力する。従
って、3ステートバッファ4aのみがオンとなり、3ス
テートバッファ4bと3ステートバッファ4cはオフに
なっている。結局、1個のバッファでクロック信号線5
を駆動することになる。
05を含む遅延パスがクロック35のサイクル時間に一
致するようにインバータの段数を調整しておく。インバ
ータチェーン102はインバータチェーン105よりも
インバータが2段多く、そのため遅延時間はクロック3
5のサイクル時間を越えてしまう。インバータチェーン
108は逆にインバータチェーン105よりもインバー
タが2段少ない。このような状況では、EXNOR素子
103は論理値「1」を出力し、EXNOR素子106
とEXNOR素子109は論理値「0」を出力する。従
って、3ステートバッファ4aのみがオンとなり、3ス
テートバッファ4bと3ステートバッファ4cはオフに
なっている。結局、1個のバッファでクロック信号線5
を駆動することになる。
【0081】ところが、このLSIが製造された後、実
際に使用された状況では、チップの遅延値が設計時に想
定していた遅延値よりも少し大きくなっていたとする
と、インバータチェーン105を含む遅延パスの遅延も
クロック35のサイクル時間よりも大きくなることにな
る。この時にはEXNOR素子103とEXNOR素子
106が論理値「1」を出力し、EXNOR素子109
は論理値「0」を出力する。従って、3ステートバッフ
ァ4aと3ステートバッファ4bがオンとなり、3ステ
ートバッファ4cはオフになる。そのため、2個のバッ
ファでクロック信号線5を駆動することになり、バッフ
ァが1個の場合よりも高速にクロック信号線5を駆動す
ることができる。結局、チップ全体の遅延値の増大に伴
ってクロック遅延も増大しようとするのを、クロックバ
ッファを強化することにより補償できたことになる。
際に使用された状況では、チップの遅延値が設計時に想
定していた遅延値よりも少し大きくなっていたとする
と、インバータチェーン105を含む遅延パスの遅延も
クロック35のサイクル時間よりも大きくなることにな
る。この時にはEXNOR素子103とEXNOR素子
106が論理値「1」を出力し、EXNOR素子109
は論理値「0」を出力する。従って、3ステートバッフ
ァ4aと3ステートバッファ4bがオンとなり、3ステ
ートバッファ4cはオフになる。そのため、2個のバッ
ファでクロック信号線5を駆動することになり、バッフ
ァが1個の場合よりも高速にクロック信号線5を駆動す
ることができる。結局、チップ全体の遅延値の増大に伴
ってクロック遅延も増大しようとするのを、クロックバ
ッファを強化することにより補償できたことになる。
【0082】つぎに第2の場合として、図8の構成にお
いて出力バッファ回路4を設けていない場合、すなわち
クロック信号線5の駆動回路として遅延回路2Aのみを
設けた場合について説明する。この場合の遅延評価回路
34(図9と同じ構成),ランダムロジック23および
クロック信号線5の駆動回路の一例を図10に示す。こ
の例では、クロック原信号生成回路1から出力されたク
ロック原信号91が遅延回路2Aに入力され、遅延回路
2Aの出力線であるクロック信号線5が図示しない回路
ブロックに接続されている。遅延回路2Aは、複数のイ
ンバータ回路(130,131,132を含む)からな
る遅延手段2と、遅延手段2の出力とランダムロジック
23の出力とをそれぞれ入力するAND(論理積)回路
138〜141およびOR(論理和)回路142からな
る選択回路3とで構成されている。
いて出力バッファ回路4を設けていない場合、すなわち
クロック信号線5の駆動回路として遅延回路2Aのみを
設けた場合について説明する。この場合の遅延評価回路
34(図9と同じ構成),ランダムロジック23および
クロック信号線5の駆動回路の一例を図10に示す。こ
の例では、クロック原信号生成回路1から出力されたク
ロック原信号91が遅延回路2Aに入力され、遅延回路
2Aの出力線であるクロック信号線5が図示しない回路
ブロックに接続されている。遅延回路2Aは、複数のイ
ンバータ回路(130,131,132を含む)からな
る遅延手段2と、遅延手段2の出力とランダムロジック
23の出力とをそれぞれ入力するAND(論理積)回路
138〜141およびOR(論理和)回路142からな
る選択回路3とで構成されている。
【0083】また、この図10のランダムロジック23
は、インバータ回路133,135,137およびAN
D回路134,136から構成されている。この図10
の場合、LSI設計時に、前述した図9の場合と同様、
遅延評価回路34のインバータチェーン102,10
5,108のインバータの段数を調整しておくことによ
り、EXNOR素子103は論理値「1」を出力し、E
XNOR素子106とEXNOR素子109は論理値
「0」を出力する。このとき、AND回路139に入力
されるAND回路134の出力が論理値「1」となり、
インバータ回路131の出力がAND回路139により
選択され、OR回路142を通ってクロック信号線5に
出力される。
は、インバータ回路133,135,137およびAN
D回路134,136から構成されている。この図10
の場合、LSI設計時に、前述した図9の場合と同様、
遅延評価回路34のインバータチェーン102,10
5,108のインバータの段数を調整しておくことによ
り、EXNOR素子103は論理値「1」を出力し、E
XNOR素子106とEXNOR素子109は論理値
「0」を出力する。このとき、AND回路139に入力
されるAND回路134の出力が論理値「1」となり、
インバータ回路131の出力がAND回路139により
選択され、OR回路142を通ってクロック信号線5に
出力される。
【0084】ところが、このLSIが製造された後、実
際に使用された状況では、チップの遅延値が設計時に想
定していた遅延値よりも少し大きくなっていたとする
と、インバータチェーン105を含む遅延パスの遅延も
クロック35のサイクル時間よりも大きくなることにな
る。この時にはEXNOR素子103とEXNOR素子
106が論理値「1」を出力し、EXNOR素子109
は論理値「0」を出力する。このとき、AND回路14
0に入力されるAND回路136の出力が論理値「1」
となり、インバータ回路130の出力がAND回路14
0により選択され、OR回路142を通ってクロック信
号線5に出力される。このときのクロック信号線5のク
ロックは、前述のインバータ回路131の出力が選択さ
れたときのクロックよりも遅延が小さくなっているた
め、クロック信号線5の遅延の増大を補償することがで
きる。また逆に、チップの遅延値が設計時に想定してい
た遅延値よりも小さくなっていた場合には、AND回路
138に入力されるインバータ回路133の出力が論理
値「1」となり、インバータ回路132の出力がAND
回路138により選択され、OR回路142を通ってク
ロック信号線5に出力されるため、クロック信号線5の
遅延の減少を補償することができ、タイミングエラーを
回避することができる。
際に使用された状況では、チップの遅延値が設計時に想
定していた遅延値よりも少し大きくなっていたとする
と、インバータチェーン105を含む遅延パスの遅延も
クロック35のサイクル時間よりも大きくなることにな
る。この時にはEXNOR素子103とEXNOR素子
106が論理値「1」を出力し、EXNOR素子109
は論理値「0」を出力する。このとき、AND回路14
0に入力されるAND回路136の出力が論理値「1」
となり、インバータ回路130の出力がAND回路14
0により選択され、OR回路142を通ってクロック信
号線5に出力される。このときのクロック信号線5のク
ロックは、前述のインバータ回路131の出力が選択さ
れたときのクロックよりも遅延が小さくなっているた
め、クロック信号線5の遅延の増大を補償することがで
きる。また逆に、チップの遅延値が設計時に想定してい
た遅延値よりも小さくなっていた場合には、AND回路
138に入力されるインバータ回路133の出力が論理
値「1」となり、インバータ回路132の出力がAND
回路138により選択され、OR回路142を通ってク
ロック信号線5に出力されるため、クロック信号線5の
遅延の減少を補償することができ、タイミングエラーを
回避することができる。
【0085】以上のように本実施の形態によれば、遅延
評価回路34により、プロセス変動や使用時における電
源電圧変動や温度変化を反映した標準遅延値を検出し、
その検出した標準遅延値に応じてクロック信号線5の駆
動回路(遅延回路2A,出力バッファ回路4)を制御す
るようにしたことにより、クロック信号が係わるタイミ
ングエラーを回避することができる。従って、従来のよ
うに回路修正/再試作を行う必要がなくなり、開発期間
/工数を大幅に削減することが可能である。また、製造
時の素子特性のばらつきやチップ使用時の電源電圧変動
による遅延特性の変化を補償することができるので、チ
ップ歩留まりを改善することも可能である。
評価回路34により、プロセス変動や使用時における電
源電圧変動や温度変化を反映した標準遅延値を検出し、
その検出した標準遅延値に応じてクロック信号線5の駆
動回路(遅延回路2A,出力バッファ回路4)を制御す
るようにしたことにより、クロック信号が係わるタイミ
ングエラーを回避することができる。従って、従来のよ
うに回路修正/再試作を行う必要がなくなり、開発期間
/工数を大幅に削減することが可能である。また、製造
時の素子特性のばらつきやチップ使用時の電源電圧変動
による遅延特性の変化を補償することができるので、チ
ップ歩留まりを改善することも可能である。
【0086】なお、本発明のクロック遅延を調整可能と
いう特徴をより積極的に利用するならば、クロック信号
線の駆動回路をハードマクロ化して複数のLSIで共通
に使用することも可能である。この場合にはクロック信
号線の駆動回路にあらかじめ遅延制御能力を実装してお
く必要があるが、従来のようにチップ設計時にクロック
信号線の駆動回路をカスタマイズする必要がなくなるた
め、設計期間/工数を削減することができる。
いう特徴をより積極的に利用するならば、クロック信号
線の駆動回路をハードマクロ化して複数のLSIで共通
に使用することも可能である。この場合にはクロック信
号線の駆動回路にあらかじめ遅延制御能力を実装してお
く必要があるが、従来のようにチップ設計時にクロック
信号線の駆動回路をカスタマイズする必要がなくなるた
め、設計期間/工数を削減することができる。
【0087】また、設計ミスがない場合でも、半導体製
造上のばらつきは常に存在しており、チップ歩留まりを
低下させる要因となっている。素子特性が標準値からは
ずれることにより、遅延値が想定した設計マージンを越
えて回路が誤動作するような状況に対して、従来のよう
な固定したクロック駆動方式だと対応しようがないため
不良品として捨てる以外にない。しかし本発明のように
クロック信号線の駆動回路を可変にしておくことによ
り、対応できる場合もある。これはLSIの製造歩留ま
りを改善することにつながる。
造上のばらつきは常に存在しており、チップ歩留まりを
低下させる要因となっている。素子特性が標準値からは
ずれることにより、遅延値が想定した設計マージンを越
えて回路が誤動作するような状況に対して、従来のよう
な固定したクロック駆動方式だと対応しようがないため
不良品として捨てる以外にない。しかし本発明のように
クロック信号線の駆動回路を可変にしておくことによ
り、対応できる場合もある。これはLSIの製造歩留ま
りを改善することにつながる。
【0088】同様にして、上記実施の形態では、あらか
じめ想定していなかった電源電圧で使用されるような状
況においても、クロック駆動を変更することで対応する
ことが可能である。
じめ想定していなかった電源電圧で使用されるような状
況においても、クロック駆動を変更することで対応する
ことが可能である。
【0089】
【発明の効果】以上で説明したように、従来はクロック
信号が係わるタイミングエラーが起こるような状況で
も、本発明の半導体集積回路ではクロック信号線の駆動
回路を自動調整することによりタイミングエラーを回避
することができる。従って、従来のように回路修正/再
試作を行う必要がなくなり、開発期間/工数を大幅に削
減することが可能である。
信号が係わるタイミングエラーが起こるような状況で
も、本発明の半導体集積回路ではクロック信号線の駆動
回路を自動調整することによりタイミングエラーを回避
することができる。従って、従来のように回路修正/再
試作を行う必要がなくなり、開発期間/工数を大幅に削
減することが可能である。
【0090】また、製造時の素子特性のばらつきやチッ
プ使用時の電源電圧変動による遅延特性の変化を補償す
ることができるので、チップ歩留まりを改善することも
可能である。
プ使用時の電源電圧変動による遅延特性の変化を補償す
ることができるので、チップ歩留まりを改善することも
可能である。
【図1】本発明の第1の実施の形態の半導体集積回路の
構成図。
構成図。
【図2】本発明の第1の実施の形態の半導体集積回路に
おけるクロック調整処理のフロー図。
おけるクロック調整処理のフロー図。
【図3】本発明の第1の実施の形態の半導体集積回路に
おけるタイミングテストおよび駆動回路制御のフロー
図。
おけるタイミングテストおよび駆動回路制御のフロー
図。
【図4】本発明の第2の実施の形態の半導体集積回路の
構成図。
構成図。
【図5】本発明の第2の実施の形態の半導体集積回路に
おけるクロックスキュー検出回路の構成図。
おけるクロックスキュー検出回路の構成図。
【図6】本発明の第2の実施の形態の半導体集積回路に
おけるランダムロジックとクロック駆動回路の第1の構
成図。
おけるランダムロジックとクロック駆動回路の第1の構
成図。
【図7】本発明の第2の実施の形態の半導体集積回路に
おけるランダムロジックとクロック駆動回路の第2の構
成図。
おけるランダムロジックとクロック駆動回路の第2の構
成図。
【図8】本発明の第3の実施の形態の半導体集積回路の
構成図。
構成図。
【図9】本発明の第3の実施の形態の半導体集積回路に
おける遅延評価回路,ランダムロジックおよびクロック
駆動回路の第1の構成図。
おける遅延評価回路,ランダムロジックおよびクロック
駆動回路の第1の構成図。
【図10】本発明の第3の実施の形態の半導体集積回路
における遅延評価回路,ランダムロジックおよびクロッ
ク駆動回路の第2の構成図。
における遅延評価回路,ランダムロジックおよびクロッ
ク駆動回路の第2の構成図。
1 クロック原信号生成回路 2 遅延手段 2A 遅延回路 3 選択回路 4 出力バッファ回路 5 クロック信号線 6 CPU 7 メモリ 8 レジスタ 9 ランダムロジック 10 バス信号線 11 タイミングテストプログラム 12 駆動回路制御プログラム 13 レジスタ 14 クロック 15 レジスタ 16 クロック 17 被テスト回路 23 ランダムロジック 24 データ発生回路 25 フリップフロップ 30 フリップフロップ 33 データ解析回路 34 遅延評価回路 35 クロック 44 ランダムロジック 45 データ発生回路 46 テスト用のフリップフロップ 47 クロック 48 回路ブロック 49 テスト用のフリップフロップ 50 クロック 51 回路ブロック 52 データ解析回路 53 クロックスキュー検出回路
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H03K 5/13 Fターム(参考) 5B079 CC02 CC08 CC14 DD06 DD08 DD13 DD20 5F038 BH19 CD06 CD07 CD08 CD09 DF01 DF04 DT02 DT10 DT12 DT17 EZ10 EZ20 5J001 BB00 BB02 BB05 BB08 BB09 BB12 BB13 BB20 BB23 DD01 DD03 DD09
Claims (11)
- 【請求項1】 プロセッサコアと、 可変な遅延値を持つ遅延回路を有するクロック信号線の
駆動回路と、 前記プロセッサコアにより前記遅延回路の遅延値を設定
するためのデータが書き込まれるレジスタと、 前記レジスタに書き込まれたデータに応じて前記遅延回
路の遅延値を制御する制御回路とを備えた半導体集積回
路。 - 【請求項2】 プロセッサコアと、 可変な駆動能力を持つ出力バッファ回路を有するクロッ
ク信号線の駆動回路と、 前記プロセッサコアにより前記出力バッファ回路の駆動
能力を設定するためのデータが書き込まれるレジスタ
と、 前記レジスタに書き込まれたデータに応じて前記出力バ
ッファ回路の駆動能力を制御する制御回路とを備えた半
導体集積回路。 - 【請求項3】 プロセッサコアが実行可能な命令コード
からなるソフトウエアを前記プロセッサコアに実行させ
ることにより、レジスタにデータを書き込むことを特徴
とする請求項1または請求項2記載の半導体集積回路。 - 【請求項4】 所定回路のタイミングをテストするテス
ト用ソフトウエアと、このテスト用ソフトウエアを実行
したテスト結果に基づいて遅延回路の遅延値を制御する
ための駆動回路制御用ソフトウエアとを記憶するメモリ
を設け、 プロセッサコアが前記テスト用ソフトウエアおよび前記
駆動回路制御用ソフトウエアを実行するようしたことを
特徴とする請求項1記載の半導体集積回路。 - 【請求項5】 所定回路のタイミングをテストするテス
ト用ソフトウエアと、このテスト用ソフトウエアを実行
したテスト結果に基づいて出力バッファ回路の駆動能力
を制御するための駆動回路制御用ソフトウエアとを記憶
するメモリを設け、 プロセッサコアが前記テスト用ソフトウエアおよび前記
駆動回路制御用ソフトウエアを実行するようしたことを
特徴とする請求項2記載の半導体集積回路。 - 【請求項6】 可変な遅延値を持つ遅延回路を有するク
ロック信号線の駆動回路と、 複数の回路ブロックに含まれるフリップフロップにそれ
ぞれ入力されるクロック信号間のスキューを検出するク
ロックスキュー検出回路と、 前記クロックスキュー検出回路の検出する前記クロック
信号間のスキューに応じて前記遅延回路の遅延値を制御
する制御回路とを備えた半導体集積回路。 - 【請求項7】 可変な駆動能力を持つ出力バッファ回路
を有するクロック信号線の駆動回路と、 複数の回路ブロックに含まれるフリップフロップにそれ
ぞれ入力されるクロック信号間のスキューを検出するク
ロックスキュー検出回路と、 前記クロックスキュー検出回路の検出する前記クロック
信号間のスキューに応じて前記出力バッファ回路の駆動
能力を制御する制御回路とを備えた半導体集積回路。 - 【請求項8】 クロックスキュー検出回路は、 複数の回路ブロックのうち第1の回路ブロックに設けら
れ、前記第1の回路ブロックに含まれる他のフリップフ
ロップに入力されるクロック信号と同位相のクロック信
号を入力する第1のテスト用フリップフロップと、 前記複数の回路ブロックのうち前記第1の回路ブロック
の出力信号を入力する第2の回路ブロックに設けられ、
前記第2の回路ブロックに含まれる他のフリップフロッ
プに入力されるクロック信号と同位相のクロック信号を
入力するとともに前記第1のテスト用フリップフロップ
の出力データを入力データとする第2のテスト用フリッ
プフロップと、 前記第1のテスト用フリップフロップへデータを出力す
るデータ発生回路と、 前記第1のテスト用フリップフロップの出力データと前
記第2のテスト用フリップフロップの出力データとを用
いて前記第1のテスト用フリップフロップと前記第2の
テスト用フリップフロップとに入力されるクロック信号
間のスキューを検出するデータ解析回路とからなること
を特徴とする請求項6または請求項7記載の半導体集積
回路。 - 【請求項9】 可変な遅延値を持つ遅延回路を有するク
ロック信号線の駆動回路と、 プロセス変動や使用時における電源電圧変動や温度変化
を反映した標準遅延値を検出する遅延評価回路と、 前記遅延評価回路の検出する前記標準遅延値に応じて前
記遅延回路の遅延値を制御する制御回路とを備えた半導
体集積回路。 - 【請求項10】 可変な駆動能力を持つ出力バッファ回
路を有するクロック信号線の駆動回路と、 プロセス変動や使用時における電源電圧変動や温度変化
を反映した標準遅延値を検出する遅延評価回路と、 前記遅延評価回路の検出する前記標準遅延値に応じて前
記出力バッファ回路の駆動能力を制御する制御回路とを
備えた半導体集積回路。 - 【請求項11】 遅延評価回路は、 遅延値が異なる複数の遅延回路と、 前記各遅延回路へデータを出力するデータ発生回路と、 前記各遅延回路の出力データを用いてプロセス変動や使
用時における電源電圧変動や温度変化を反映した標準遅
延値を検出するデータ解析回路とからなることを特徴と
する請求項9または請求項10記載の半導体集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10261254A JP2000091506A (ja) | 1998-09-16 | 1998-09-16 | 半導体集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10261254A JP2000091506A (ja) | 1998-09-16 | 1998-09-16 | 半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000091506A true JP2000091506A (ja) | 2000-03-31 |
Family
ID=17359283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10261254A Pending JP2000091506A (ja) | 1998-09-16 | 1998-09-16 | 半導体集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000091506A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003036313A1 (fr) * | 2001-10-25 | 2003-05-01 | Advantest Corporation | Appareil et procede de mesure de deplacement lateral d'horloge |
US6720811B2 (en) | 2002-01-18 | 2004-04-13 | Renesas Technology Corp. | Semiconductor device with delay correction function |
DE10307537A1 (de) * | 2003-02-21 | 2004-09-09 | Infineon Technologies Ag | Integrierter Baustein mit einem Verzögerungselement |
JP2007034575A (ja) * | 2005-07-26 | 2007-02-08 | Fuji Xerox Co Ltd | クロック信号供給装置及びクロック信号供給プログラム |
JP2007097133A (ja) * | 2005-09-29 | 2007-04-12 | Hynix Semiconductor Inc | 遅延固定ループ回路 |
JP2009070939A (ja) * | 2007-09-12 | 2009-04-02 | Hitachi Ltd | 半導体集積回路 |
JP2009213048A (ja) * | 2008-03-06 | 2009-09-17 | Fujitsu Microelectronics Ltd | 半導体装置および半導体装置の制御方法 |
JP2010040053A (ja) * | 2002-01-19 | 2010-02-18 | Natl Semiconductor Corp <Ns> | デジタル処理コンポーネント内で使用する適応電圧スケーリングクロック発生器およびその操作方法 |
JP2016138799A (ja) * | 2015-01-27 | 2016-08-04 | 株式会社ソシオネクスト | 半導体集積回路装置及び半導体集積回路装置の試験方法 |
-
1998
- 1998-09-16 JP JP10261254A patent/JP2000091506A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6737852B2 (en) | 2001-10-25 | 2004-05-18 | Advantest Corporation | Clock skew measuring apparatus and method |
WO2003036313A1 (fr) * | 2001-10-25 | 2003-05-01 | Advantest Corporation | Appareil et procede de mesure de deplacement lateral d'horloge |
US6720811B2 (en) | 2002-01-18 | 2004-04-13 | Renesas Technology Corp. | Semiconductor device with delay correction function |
JP2010040053A (ja) * | 2002-01-19 | 2010-02-18 | Natl Semiconductor Corp <Ns> | デジタル処理コンポーネント内で使用する適応電圧スケーリングクロック発生器およびその操作方法 |
DE10307537A1 (de) * | 2003-02-21 | 2004-09-09 | Infineon Technologies Ag | Integrierter Baustein mit einem Verzögerungselement |
US6975131B2 (en) | 2003-02-21 | 2005-12-13 | Infineon Technologies Ag | Integrated module having a delay element |
DE10307537B4 (de) * | 2003-02-21 | 2010-05-12 | Qimonda Ag | Integrierter Baustein mit einem Verzögerungselement und Verfahren zum Einstellen einer zeitlichen Lage eies Signals |
DE10307537B8 (de) * | 2003-02-21 | 2010-09-02 | Qimonda Ag | Integrierter Baustein mit einem Verzögerungselement und Verfahren zum Einstellen einer zeitlichen Lage eines Signals |
JP2007034575A (ja) * | 2005-07-26 | 2007-02-08 | Fuji Xerox Co Ltd | クロック信号供給装置及びクロック信号供給プログラム |
JP4622723B2 (ja) * | 2005-07-26 | 2011-02-02 | 富士ゼロックス株式会社 | クロック信号供給装置、印刷装置及びクロック信号供給プログラム |
JP2007097133A (ja) * | 2005-09-29 | 2007-04-12 | Hynix Semiconductor Inc | 遅延固定ループ回路 |
JP2009070939A (ja) * | 2007-09-12 | 2009-04-02 | Hitachi Ltd | 半導体集積回路 |
JP2009213048A (ja) * | 2008-03-06 | 2009-09-17 | Fujitsu Microelectronics Ltd | 半導体装置および半導体装置の制御方法 |
JP2016138799A (ja) * | 2015-01-27 | 2016-08-04 | 株式会社ソシオネクスト | 半導体集積回路装置及び半導体集積回路装置の試験方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6318911B1 (en) | Gated clock design supporting method, gated clock design supporting apparatus, and computer readable memory storing gated clock design supporting program | |
JP3542967B2 (ja) | クロック位相調整方法、及び集積回路とその設計方法 | |
JP2009147221A (ja) | 半導体装置 | |
JP2006190441A (ja) | 同期式半導体装置用のレイテンシ制御装置及びレイテンシ制御方法 | |
JP2008028345A (ja) | 誤動作検知回路を含む半導体集積回路とその設計方法 | |
TWI806340B (zh) | 用於包括待測試的時序器件的流水線級的測試電路、測試方法和包括測試電路的計算系統 | |
JP2000091506A (ja) | 半導体集積回路 | |
JP4512934B2 (ja) | 論理設計された集積回路に対するレイアウト設計及びタイミング調整の方法及び装置並びにこの方法を実行するためのプログラム及びこのプログラムが記録されたコンピュータ読み取り可能な記録媒体 | |
US6738963B2 (en) | Dynamically reconfiguring clock domains on a chip | |
JP2003316566A (ja) | パイプラインプロセッサ | |
JP4121454B2 (ja) | クロック回路のための方法及び装置 | |
US20150145580A1 (en) | Apparatus for controlling semiconductor chip characteristics | |
CN215180689U (zh) | 测试电路和包括测试电路的计算系统 | |
JPH10133768A (ja) | クロックシステム、半導体装置、半導体装置のテスト方法、及びcad装置 | |
CN112910451B (zh) | 一种异步行波状态机 | |
JP4385234B2 (ja) | 半導体集積回路装置、同装置用クロックパルス最適化方法、及びそのプログラム | |
US9960771B2 (en) | Hum generation using representative circuitry | |
JP2001319494A (ja) | メモリ回路用の組込み自己試験装置 | |
TWI813379B (zh) | 用於靜態隨機存取記憶體的輸出控制介面 | |
JP4869911B2 (ja) | ロジックbist回路及びモジュロ回路 | |
US20240289018A1 (en) | Memory device, memory control device and operating method of memory device | |
JP2001257566A (ja) | イネーブル付きラッチ回路 | |
JP5471437B2 (ja) | 半導体集積回路装置およびキャッシュメモリ制御方法 | |
TW201524130A (zh) | 數位輸出時脈的產生 | |
JP3563280B2 (ja) | クロック制御方法および装置 |