特許第6673823号(P6673823)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 日本テキサス・インスツルメンツ株式会社の特許一覧 ▶ テキサス インスツルメンツ インコーポレイテッドの特許一覧

特許6673823回路入出力タイミングを制御するための方法及びシステム
<>
  • 特許6673823-回路入出力タイミングを制御するための方法及びシステム 図000004
  • 特許6673823-回路入出力タイミングを制御するための方法及びシステム 図000005
  • 特許6673823-回路入出力タイミングを制御するための方法及びシステム 図000006
  • 特許6673823-回路入出力タイミングを制御するための方法及びシステム 図000007
  • 特許6673823-回路入出力タイミングを制御するための方法及びシステム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6673823
(24)【登録日】2020年3月9日
(45)【発行日】2020年3月25日
(54)【発明の名称】回路入出力タイミングを制御するための方法及びシステム
(51)【国際特許分類】
   H03K 19/0175 20060101AFI20200316BHJP
   H03K 5/00 20060101ALI20200316BHJP
   G06F 13/42 20060101ALI20200316BHJP
【FI】
   H03K19/0175 270
   H03K5/00 K
   G06F13/42 350Z
【請求項の数】16
【全頁数】14
(21)【出願番号】特願2016-521783(P2016-521783)
(86)(22)【出願日】2014年9月29日
(65)【公表番号】特表2016-536865(P2016-536865A)
(43)【公表日】2016年11月24日
(86)【国際出願番号】US2014057974
(87)【国際公開番号】WO2015053968
(87)【国際公開日】20150416
【審査請求日】2017年9月17日
(31)【優先権主張番号】14/048,238
(32)【優先日】2013年10月8日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ合同会社
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【上記1名の代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】アシュトシュ ティワリ
(72)【発明者】
【氏名】イシュ クマール ダム
(72)【発明者】
【氏名】プラナフ マーシー
(72)【発明者】
【氏名】ヴィレンドラ ブリジラル バンサル
【審査官】 工藤 一光
(56)【参考文献】
【文献】 特表2006−516839(JP,A)
【文献】 特開2005−184196(JP,A)
【文献】 特開2010−118748(JP,A)
【文献】 特表2014−514829(JP,A)
【文献】 米国特許第6445231(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H03K19/0175
H03K5/00
H03K5/13−5/159
H03K5/26
G06F13/42
H01L21/82−21/822
H01L27/04
(57)【特許請求の範囲】
【請求項1】
集積回路(IC)であって、
複数の入力/出力(I/O)端子であって、前記複数のI/O端子を介して信号が前記IC内へ又は前記IC外へ通過する、前記複数のI/O端子と、
前記I/O端子と前記ICのI/Oサブシステムとの間を通る信号に伝搬遅延を付加するように構成されるI/Oタイミングモジュールと、
を含み、
前記I/Oタイミングモジュールが、
前記I/O端子の各々に関連付けられる複数の遅延要素と、
前記I/O端子の各々に関連付けられ、前記I/O端子に関連付けられる前記遅延要素の各々に結合される制御レジスタであって、前記関連付けられるI/O端子の遅延要素を選択するための選択データを格納する、前記制御レジスタと、
各I/O端子に対する遅延情報で符号化される不揮発性メモリと、
I/O遅延制御ロジックであって、前記不揮発性メモリから対応する遅延情報をリトリーブし、前記伝搬遅延を生成するために前記遅延要素のどれを組み合わせでイネーブルするかを決定し、前記決定された伝搬遅延を生成するために前記遅延要素のどれが適用されるべきかを選択することによって、前記I/O端子の各々に関連付けられる前記伝搬遅延を初期化するように構成される、前記I/O遅延制御ロジックと、
を含む、IC。
【請求項2】
請求項1に記載のICであって、
前記複数の遅延要素が、複数のコース(coarse)遅延要素と複数のファイン(fine)遅延要素とを含み、
前記ファイン遅延要素が、前記コース遅延要素より小さな遅延を提供するように構成され、
前記I/Oタイミングモジュールが、所定の数のコース遅延要素を直列にコースリング発振器に接続して前記コースリング発振器の周期を測定することにより前記コース遅延要素の各々に対する第1の遅延値を測定し、所定の数のファイン遅延要素を直列にファインリング発振器に接続して前記ファインリング発振器の周期を測定することにより前記ファイン遅延要素の各々に対する第1の遅延値を測定するように構成される遅延キャリブレーション論理を更に含む、IC。
【請求項3】
請求項1に記載のICであって、
前記I/Oタイミングモジュールが、複数の信号の1つをI/O端子に選択的に配路するように構成されるI/Oマルチプレクサを含み、
前記I/O遅延制御ロジックが、前記信号のどれが前記I/O端子に配路されるかを前記I/Oマルチプレクサが変えることに応答して、前記I/O端子に配路されるべき前記信号に基づいて、前記I/O端子に関連付けられる前記伝搬遅延を変更するように、構成される、IC。
【請求項4】
請求項1に記載のICであって、
前記I/Oタイミングモジュールが、前記I/O端子の各々に関連付けられる前記制御レジスタに遅延情報値を書き込むことにより、前記I/Oタイミングモジュールの外の回路要素に、前記I/O端子の各々に関連付けられる前記伝搬遅延を設定させ得るように構成される遅延制御インタフェースを含む、IC。
【請求項5】
請求項1に記載のICであって、
前記遅延情報が、その値が前記ICの他の回路要素と同じ方式でのプロセスでスケーリングする、プロセス可変(gnostic)のコース遅延値と、その値が前記ICの他の回路要素と同じ方式でのプロセスでスケーリングする、プロセス可変のファイン遅延値と、その値がプロセス非依存である、プロセス不変(agnostic)のコース遅延値と、その値がプロセス非依存である、プロセス不変のファイン遅延値とを含む、IC。
【請求項6】
請求項5に記載のICであって、
前記I/O遅延制御ロジックが、I/O端子に対して、前記プロセス不変のコース遅延値とコース遅延要素の予測される遅延値との積と、前記プロセス不変のファイン遅延値とファイン遅延要素の予測される遅延値との積と、前記プロセス可変のコース遅延値とコース遅延要素の測定された遅延値との積と、前記プロセス可変のファイン遅延値とファイン遅延要素の測定された遅延値との積との和として、前記伝搬遅延を演算するように構成される、IC。
【請求項7】
方法であって、
集積回路(IC)の入力/出力(I/O)端子へ又はICのI/O端子から、前記ICのI/Oタイミングモジュールを介して通過する信号を配路することと、
所定の数の遅延要素を直列にリング発振器に接続して前記リング発振器の周期を測定することにより遅延要素のための遅延値を測定することと、
前記I/Oタイミングモジュールにより、各信号に適用し、前記信号の同一性と前記信号のための前記I/Oタイミングモジュールにストアされた遅延情報とに基づいて前記伝搬遅延を提供するために、前記I/Oタイミングモジュールの遅延要素を選択することと、
を含む、方法。
【請求項8】
請求項7に記載の方法であって、
前記選択することが、前記伝搬遅延を生成するように組み合わせるために多数のファイン遅延要素と多数のコース遅延要素とを決定することを含み、
前記ファイン遅延要素が、前記コース遅延要素より小さい遅延を提供する、方法。
【請求項9】
請求項7に記載の方法であって、
前記I/O遅延モジュールにおいて、前記I/O端子の1つに関連付けられる伝搬遅延の初期化の後に、前記I/O端子の1つに配路される前記信号の同一性を変えることと、
前記I/O遅延モジュールにより、前記信号の同一性を前記変えることに応答して、前記信号の前記変えられた同一性に基づいて、前記I/O端子に関連付けられる前記伝搬遅延を変えることと、
を更に含む、方法。
【請求項10】
請求項7に記載の方法であって、
前記I/Oタイミングモジュールの外の回路要素により、前記I/O遅延モジュールに、遅延情報値とI/O端子識別子とを提示することと、
前記I/O遅延モジュールにより、前記I/Oタイミングコントローラの外の回路要素から前記遅延情報値を前記識別されたI/O端子に関連付けられる制御レジスタに書き込むことにより前記識別されたI/O端子に関連付けられる前記伝搬遅延を設定することと、
を更に含む、方法。
【請求項11】
請求項7に記載の方法であって、
前記遅延情報が、その値が前記ICの他の回路要素と同じ方式でのプロセスでスケーリングする、プロセス可変のコース遅延値と、その値が前記ICの他の回路要素と同じ方式でのプロセスでスケーリングする、プロセス可変のファイン遅延値と、その値がプロセス非依存である、プロセス不変のコース遅延値と、その値がプロセス非依存である、プロセス不変のファイン遅延値とを含む、方法。
【請求項12】
請求項11に記載の方法であって、
前記I/Oタイミングモジュールにより、前記プロセス不変のコース遅延値とコース遅延要素の予測される遅延値との積と、前記プロセス不変のファイン遅延値とファイン遅延要素の予測される遅延値との積と、前記プロセス可変のコース遅延値とコース遅延要素の測定された遅延値との積と、前記プロセス可変のファイン遅延値とファイン遅延要素の測定された遅延値との積との和として、前記伝搬遅延を演算することを更に含む、方法。
【請求項13】
集積回路(IC)であって、
信号を前記IC内に又はIC外に渡すように構成される入力/出力(I/O)端子と、
伝搬遅延を前記信号に付加するように構成されるI/Oタイミングモジュールと、
を含み、
前記I/Oタイミングモジュールが、
遅延要素の複数のアレイであって、前記複数のアレイの1つが前記I/O端子の各々に対応する、前記複数のアレイと、
前記信号の各々に対する伝搬遅延値をストアする伝搬遅延値ストレージと、
前記遅延要素の各々によって提供される前記伝搬遅延を測定するように構成されるキャリブレーションコントローラであって、所定の数の遅延要素をリング発振器に直列に接続して前記リング発振器の周期を測定するように作動可能な、前記キャリブレーションコントローラと、
前記信号の各々に対して、前記遅延要素の前記測定された伝搬遅延に基づいて、前記伝搬遅延値により特定される前記伝搬遅延を提供するために前記遅延要素のどれが適用されるべきかを選択するように構成される遅延コントローラと、
を含む、IC。
【請求項14】
請求項13に記載のICであって、
遅延要素の前記アレイの各々が、複数のコース遅延要素と複数のファイン遅延要素とを含み、
前記ファイン遅延要素が、前記コース遅延要素より小さい遅延を提供するように構成され、
前記キャリブレーションコントローラが、前記コース遅延要素によって提供される前記伝搬遅延と前記ファイン遅延要素によって提供される前記伝搬遅延とを測定するように構成される、IC。
【請求項15】
請求項14に記載のICであって、
前記伝搬遅延値の各々が、その値が前記ICの他の回路要素と同じ方式でのプロセスでスケーリングする、プロセス可変のコース遅延値と、その値が前記ICの他の回路要素と同じ方式でのプロセスでスケーリングする、プロセス可変のファイン遅延値と、その値がプロセス非依存である、プロセス不変のコース遅延値と、その値がプロセス非依存である、プロセス不変のファイン遅延値とを含み、
前記遅延コントローラが、前記プロセス不変のコース遅延値とコース遅延要素の予測される遅延値との積と、前記プロセス不変のファイン遅延値とファイン遅延要素の予測される遅延値との積と、前記プロセス可変のコース遅延値とコース遅延要素の前記測定された遅延との積と、前記プロセス可変のファイン遅延値とファイン遅延要素の前記測定された遅延との積との和として、信号に対して、前記伝搬遅延を演算するように構成される、IC。
【請求項16】
請求項15に記載のICであって、
複数の信号の1つを各I/O端子に選択的に配路するように構成されるI/Oマルチプレクサを更に含み、
前記遅延コントローラが、前記信号のどれが前記I/O端子に配路されるかを前記I/Oマルチプレクサが変えることに応答し、前記I/O端子に配路されるべき前記信号の同一性に基づいて、前記I/O端子に関連付けられる前記伝搬遅延を変更するように構成される、IC。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、概して集積回路に関し、特に、回路入力出力タイミングを制御するための方法及びシステムに関連する。
【背景技術】
【0002】
事前に定められたタイミング要件を満たすために集積回路(IC)を改変するプロセスは、「タイミング・クロージャ」と称される。タイミング・クロージャはIC設計のためのタスクには困難となり得る。というのは、タイミングマージンが、プロセス/環境パラメータ(プロセスコーナーなど)に対する変化と共にシフトするためである。従って、一つのプロセスコーナーに対する最適な実装が、別のプロセスコーナーでのタイミング要件を満たすことができない恐れがある。種々のプロセスコーナーにわたってICのための事前に定められたタイミング要件(セットアップ及びホールド時間など)を満たす設計をつくるために、非常に多くの、場所及びルート及び/又は他の設計プロセス反復が要求され得る。従って、タイミング・クロージャは、ICを設計することに関連付けられる時間及びコストを好ましくなく増大させ得る。
【発明の概要】
【0003】
記載される例において、集積回路(IC)が入力/出力(I/O)端子を含み、I/O端子を介して信号がIC内へ又は外へ通る。また、ICは、I/O端子とICのI/Oサブシステムとの間を通る信号に伝搬遅延を付加するように構成されるI/Oタイミングモジュールを含む。I/Oタイミングモジュールは、I/O端子の各々に関連付けられる遅延要素、I/O端子の各々に関連付けられる制御レジスタ、メモリ、及びI/O遅延制御ロジックを含む。制御レジスタは、I/O端子に関連付けられる遅延要素の各々に結合される。メモリは遅延情報で符号化される。I/O遅延制御ロジックは、メモリにストアされた遅延情報に基づいて伝搬遅延を生成するために遅延要素のいずれが適用されるべきかを選択することによって、I/O端子の各々に関連付けられる伝搬遅延を初期化するように構成される。
【図面の簡単な説明】
【0004】
図1】入力/出力(I/O)端子伝搬遅延制御を含む集積回路(IC)のブロック図を示す。
【0005】
図2】IC I/O端子においてタイミングを制御するI/Oタイミング制御モジュールのブロック図を示す。
【0006】
図3】IC I/O端子においてタイミングを制御するように適用される遅延要素の遅延を測定する遅延キャリブレーションコントローラのブロック図を示す。
【0007】
図4】IC I/O端子のためのタイミングを設定する遅延コントローラのブロック図を示す。
【0008】
図5】IC I/O端子に関連付けられる伝搬遅延を制御する方法のためのフローチャートを示す。
【発明を実施するための形態】
【0009】
集積回路(IC)の入力/出力(I/O)端子に配路される信号の伝搬遅延を制御することによってタイミング・クロージャを最適化するための方法及びシステムが本明細書に開示される。(I/O端子に関連付けられる)回路要素が所定のタイミング要件を満たすことを確実にすることが、ICのためのタイミング・クロージャのプロセスの実質的な部分である。同様のICが同様の周辺デバイスを含み得るが、そういった周辺デバイスに関連付けられるI/O信号のためのタイミング・クロージャは、回路配置及び配路の異なるパラメータ及び調整を用いる、時間のかかる反復的な静的タイミング分析を必要とし得る。また、従来のタイミング・クロージャプロセスは、各信号がI/Oタイミング要件を満たすことを確実にするために付加的な労力が要求され得るため、I/Oピン/信号選択を用いてI/O端子への/からの信号を多重化するとき損なわれる。
【0010】
本明細書に開示する集積回路の実施例は、ICのI/O端子に/から配路される信号のためのタイミング・クロージャのプロセスを簡略化するI/Oタイミング回路要素を含む。従って、例示の実施例は、ICを設計する際のコスト及び時間を低減するのに適している。本明細書に開示するI/Oタイミング回路要素は、プログラム可能な遅延をI/O信号に提供し、それにより、I/O信号のタイミングが、実質的な反復的タイミング分析及び従来のICの配置及び配路なしに制御され得る。I/Oタイミング回路要素の実施例は、動作条件下でI/Oタイミング回路要素の遅延要素により提供される遅延を測定し、ICの事前に定められたタイミング要件を満たすように各I/O信号のための事前にプログラムされた伝搬遅延を提供するように遅延要素を適合的に適用する。
【0011】
図1は、種々の実施例に従ったI/O端子伝搬遅延制御を含むIC100のブロック図を示す。IC100は、I/O端子106、I/Oタイミング制御モジュール102、I/O信号マルチプレクサ112、及びI/O周辺機器104を含む。IC100はまた、明確にするため図1には示していない他の回路要素及びシステムを含み得る。I/O端子106は信号伝送構造であり、こういった信号伝送構造を介して、IC100の回路要素がIC100の外の回路要素に結合される。I/O端子106は、導電性ピン、パッド、及び他の要素を含み得る。
【0012】
I/O周辺機器104は、一つ又は複数のI/O端子106への信号を駆動する又は一つ又は複数のI/O端子106から信号を受け取る種々のデバイスを含むサブシステムである。I/O周辺機器に含まれ得るデバイスの例には、汎用I/Oロジック、ユニバーサル非同期/同期・受信/送信ロジック、シリアル・ペリフェラル・インタフェースロジック、インターIC(IC)ロジック、タイマー、オーディオポート、ネットワークアダプタ、メモリコントローラ、及びビデオコントローラが含まれる。I/O周辺機器104とマルチプレクサ112との間で信号108が配路される。
【0013】
マルチプレクサ112は、I/O端子112とI/O周辺機器104との間の信号の選択可能な配路を提供する。例えば、マルチプレクサ112は、I/O周辺機器104により生成される16個の異なる信号108の一つを、各I/O端子106に選択的に配路させ得る。同様に、マルチプレクサ112は、16個の異なるI/O端子106の一つを、I/O周辺104の入力に接続させ得る。信号は、IC100のオペレーションの間、I/O端子106へ/から配路するために選択され得る。I/O端子106の各々とI/O周辺機器の出力との間及び/又はI/O端子106とI/O周辺機器104の各入力との間で選択的に配路され得る信号の数は、マルチプレクサ112の異なる実施例において変化し得る。マルチプレクサ112とI/Oタイミング制御モジュール102との間で信号116が配路される。
【0014】
I/Oタイミング制御モジュール102は、I/O端子106へ/から、I/Oタイミング制御モジュール102を介して、I/O周辺機器104から/へ配路される遅延信号114の伝搬を制御する。I/Oタイミング制御モジュール102は遅延コントローラ110を含む。遅延コントローラ110は、I/Oタイミング制御モジュール102を通過する各I/O信号に特定の所定の量の伝搬遅延がどのように生成され及び適用されるべきかを決定する。適切な伝搬遅延を各I/O信号に適用することにより、I/Oタイミング制御モジュール102は、I/O端子106に/から配路される信号に対してタイミング・クロージャを簡略化する。
【0015】
IC100の幾つかの実施例において、I/O周辺機器104の周辺デバイスの少なくとも幾つかが、I/Oタイミング制御モジュール102及びマルチプレクサ112に関連して、「ハード化された(hardened)」回路構成要素に含まれ得る。そのような実施例では、周辺デバイスとI/Oタイミング制御モジュール102との間の配路が固定され、これにより、I/Oタイミング制御モジュール102により適用される伝搬遅延の決定が簡略化され、及び更には、I/O端子106と周辺デバイスとの間に配路された信号に対してタイミング・クロージャのプロセスが簡略化される。複合周辺デバイス(メモリコントローラ及び/又はビデオコントローラを含む)などのI/O周辺機器104の幾つかの周辺デバイスは、このようなハード化された構成要素の外に配置され得る。I/Oタイミング制御モジュール102は、このような周辺機器に対してもタイミング・クロージャを簡略化する。
【0016】
図2は、I/Oタイミング制御モジュール102のブロック図を示す。I/Oタイミング制御モジュール102は、遅延要素202、遅延インタフェース204、遅延キャリブレーションロジック206、遅延コントローラ110、及び遅延ストレージ210を含む。遅延ストレージ210は、ストレージデバイス(不揮発性メモリ、FLASHストレージ、又は読み出し専用メモリストレージなど)を含む。遅延値220が遅延ストレージ210にストアされる。遅延値220は、I/O端子106への/からの、I/Oタイミング制御モジュール102を通過し得る各I/O信号に適用されるべき伝搬遅延を特定する。遅延値220は、種々のコーナーにわたる遅延の分析によってIC100の設計の間に決定され得る。遅延ストレージ210は、I/O端子106の数に、マルチプレクサ112を介して各I/O端子106に配路され得る信号の数を乗算したものと同等の多数の遅延値をストアするために充分なストレージロケーションを含み得る。
【0017】
遅延要素202は、I/O端子106の各々に対応する遅延要素又は遅延ラインのセットを含む。I/O端子106に関連付けられる信号114、及びマルチプレクサ112に関連付けられる信号116は、伝搬遅延の挿入のために遅延要素202に接続される。遅延要素202は、遅延ストレージ210にストアされる遅延値の各々に従って伝搬遅延を得るために選択可能及び/又はプログラム可能である。各I/O端子106に関連付けられる遅延要素202のセットは、コース(coarse)遅延要素218及びファイン(fine)遅延要素216を含む。コース遅延要素218の各々は、ファイン遅延要素216の各々より実質的に長い遅延を提供する。例えば、コース遅延要素が約1ナノ秒の遅延を提供し得、ファイン遅延要素が100ピコ秒未満の遅延を提供し得る。幾つかの実施例において、I/O端子106に対応する遅延要素202のセットは、22個のコース遅延要素218及び22個のファイン遅延要素216を含み得る。他の実施例が、I/O端子106毎に異なる数のファイン及び/又はコース遅延要素を含み得る。
【0018】
遅延キャリブレーションコントローラ206は、IC100のオペレーションの間、コース遅延要素218により提供される遅延、及びファイン遅延要素216により提供される遅延を測定する。遅延コントローラ110は、遅延ストレージ210からリトリーブされた遅延値220により特定されるように、所与のI/O信号のための伝搬遅延値を達成するために遅延要素202がどのように適用されるべきかを決定するために、測定されたコース及びファイン遅延値を適用する。従って、キャリブレーションコントローラ206は、遅延コントローラ110に、プロセス、温度、及び/又は電圧などの環境条件により生じる、遅延要素202の伝搬遅延における変化を明らかにさせ得る。
【0019】
遅延コントローラ110は、遅延インタフェース204を介して遅延要素202を制御する。遅延インタフェース204は、所与の信号伝搬遅延を生成するためにコース及びファイン遅延要素218、216のいずれが適用されるべきかを選択するために制御信号を生成するロジック(制御レジスタに対応する各I/O端子106など)を含む。例えば、遅延インタフェース204は、(各遅延要素202に結合される)制御レジスタを含み得、制御レジスタは、必要とされる伝搬遅延を達成するために遅延要素202のいずれが用いられるべきかを選択するために信号を提供する。遅延インタフェース204はまた、バス212にインタフェースを提供し、バス212は、I/Oタイミング制御モジュール102の外の回路要素に、遅延要素202のいずれが遅延I/O信号に適用されるかを選択させ得、及び遅延コントローラ110と通信させ得る。従って、遅延インタフェース204を介して、外部回路要素が、遅延コントローラ110により設定される伝搬遅延値をオーバーライド(override)又は調整し得、I/Oタイミング制御モジュール102の種々の機能を開始し得る。
【0020】
遅延コントローラ110は、I/O端子106に配路される信号における変化に基づいて、I/O端子106に関連付けられる伝搬遅延を変更し得る。信号214は、遅延コントローラ110に、I/Oタイミング制御モジュール102を通過する信号の同一性(identity:アイデンティティ、発信元、及び/又は送信先における変化を通知する。信号アイデンティティ、発信元、及び/又は送信先における変化は、マルチプレクサ112を介して達成され得る。信号214を介して、遅延コントローラ110がこのような信号変化を通知された後、遅延コントローラ110は、遅延ストレージ210から新たな信号のための遅延値をリトリーブし得、リトリーブされた遅延値を達成するために遅延要素202がどのように適用されるべきかを決定し得、及び遅延インタフェース204を介して伝搬遅延を達成するために適切な遅延要素を選択し得る。従って、I/Oタイミング制御モジュール102は、I/O端子106に配路される信号のアイデンティティにおける実行時間変化に関連して、I/O端子106に関連して適用された伝搬遅延を変え得る。
【0021】
図3は、遅延キャリブレーションコントローラ206のブロック図を示す。遅延キャリブレーションコントローラ206は、I/O端子106において制御タイミングに適用される遅延要素202の遅延を測定する。遅延キャリブレーションコントローラ206は、遅延カウンタ302及び316、基準カウンタ304及び318、及び遅延計算ロジック306を含む。遅延キャリブレーションコントローラ206は、コース及びファイン遅延要素218、216両方の遅延を測定する。
【0022】
コース遅延要素218により提供される遅延を測定するため、キャリブレーションロジック206(又は遅延測定を促進するための遅延コントローラ110)が、直列に配される、所定の数のコース遅延要素(88個の要素など)を選択する。コース遅延要素218の選択されたセットは、リング発振器として配され、リング発振器の発振出力308は遅延カウンタ302に接続される。
【0023】
基準カウンタ304は、既知の周波数の基準クロック信号310によりインクリメントされる。遅延カウンタ302及び基準カウンタ304のカウント出力は、遅延計算ロジック306に提供される。遅延計算ロジック306は、遅延測定を開始するために所与の時間(同時など)に遅延カウンタ302及び基準カウンタ304によるカウントをイネーブルにし得、その後の或る時間(カウンタ302、304のいずれかが最大カウント値又は所定のカウント値に達するときなど)に両方のカウンタ302、304によるカウントをディセーブルし得る。
【0024】
基準クロック310の既知の周期、及び遅延及び基準カウンタ302、304の最終的カウント値の比に基づいて、遅延計算ロジック306は、リング発振器出力308の周期、及び直列に配されるコース遅延要素218により提供される総遅延を決定する。遅延計算ロジック306は、動作条件下で各個別のコース遅延要素218により提供される遅延を決定するために、総遅延をリング発振器におけるコース遅延要素218の数で除算する。遅延計算ロジック314は、伝搬遅延を達成するために遅延要素202のいずれが適用されるべきかを決定する際に用いるために、測定された遅延を遅延コントローラ110に提供する。要素当りの測定されたコース遅延(CDPE:coarse delay per element)は、下記のように計算され得る。
ここで、RefCntは基準カウンタ304の最終的カウント値であり、RefClkPeriodは基準クロック信号310の既知の周期であり、CrsDlyCntは遅延カウンタ302の最終的カウント値であり、NumCrsElementsはコース遅延リング発振器におけるコース遅延要素の数である。
【0025】
遅延キャリブレーションコントローラ206は、コース遅延要素218に対して説明されたものに類似する方式で、ファイン遅延要素216の遅延を測定する。ファイン遅延要素216の遅延を測定するとき、コース要素キャリブレーションにおいて適用されたコース遅延要素218の数より実質的に大きい多数のファイン遅延要素216が用いられ得る。例えば、264個のファイン遅延要素が、発振信号320を生成するリング発振器を形成するように順次配され得る。基準カウンタ318及び遅延カウンタ316は、遅延計算ロジック306により停止されるまで、それぞれ、基準クロック310及びファイン遅延リング発振器出力クロック320によりインクリメントされる。カウンタ316、318の最終的なカウント値は、要素当りの測定されたファイン遅延(FDPE:fine delay per element)を下記のように演算するために用いられる。
ここで、RefCntは基準カウンタ318の最終的カウント値であり、RefClkPeriodは基準クロック信号310の周期であり、FineDlyCntは遅延カウンタ316の最終的カウント値であり、NumFineElementsはファイン遅延リング発振器におけるファイン遅延要素の数である。
【0026】
遅延キャリブレーションロジック206は、デバイス初期化(パワーオンリセット時間など)において要素216、218によって提供される遅延を測定するためにトリガーされ得る。I/Oタイミング制御モジュール102の幾つかの実施例において、遅延キャリブレーションロジック206は、遅延測定を開始するように信号214を介してトリガーされ得る。例えば、ソフトウェア命令の実行が、電圧又は温度などの動作条件における識別された変化に基づいて再キャリブレーションをトリガーし得る。
【0027】
図4は、遅延コントローラ110のブロック図を示す。遅延コントローラ110は遅延調整ロジック402を含み、遅延調整ロジック402は、遅延ストレージ210からリトリーブされる遅延値220により特定される伝搬遅延を提供するために、I/O端子106に対応する遅延要素202のセットのいずれをI/O信号に適用するかを決定する。遅延調整ロジック402は、遅延キャリブレーションコントローラ206によって提供される測定された遅延314、及び予想/予期される遅延値404を適用し、予想/予期される遅延値404は、遅延値220により特定される伝搬遅延を生成するためにどの遅延要素202が適用されるべきであるかを決定するためにコース及びファイン遅延要素218、216のための設計により予測される遅延値であり得る。
【0028】
相互接続、及び異なる経路(クロック及びデータ経路など)上のその他の遅延は動作条件にわたって異なって変化し得るため、遅延要素202を介する固定の伝搬遅延の適用が、幾つかのプロセス/温度/電圧の組み合わせに対するタイミングを阻害し得る。I/Oタイミング制御モジュール102の実施例が、2つの部分、すなわち、プロセス不変(アグノスティック(agnostic))遅延及びプロセス可変(グノスティック(gnostic))遅延、において伝搬遅延を特定することによってこの困難を克服する。
【0029】
遅延ストレージ210からリトリーブされた遅延値220は、対応するI/O信号I/O端子組み合わせのための伝搬遅延を共同で(conjunctively)特定する、プロセスアグノスティック遅延値406及びプロセスグノスティック遅延値412を含む。プロセスグノスティック遅延値412は、IC100の他の回路要素と同じ方式で、IC100の最大コーナーから最小コーナーまでスケーリングする遅延値220の一部を特定する。プロセスグノスティック遅延値412は、コース遅延値414及びファイン遅延値416を含む。コース遅延値414及びファイン遅延値416は、それぞれ、多数のコース遅延要素218及び多数のファイン遅延要素216を特定し得る。
【0030】
プロセスアグノスティック遅延値406は、プロセス及び動作条件に対して固定される遅延など、IC100のコーナーにわたって同じままである遅延値220の一部を特定する。プロセスアグノスティック遅延値406もまた、コース遅延値408及びファイン遅延値410を含む。コース遅延値408及びファイン遅延値410は、それぞれ、多数のコース遅延要素218及び多数のファイン遅延要素216を特定し得る。しかし、値408、410により特定される遅延は、プロセス不変であり、従って動作条件で変化しない。
【0031】
遅延コントローラ110は、所与のI/O信号に対して所与のI/O端子に適用されるべき総コース遅延(CrsDly)を下記のように演算し得る。
CrsDly=ACrsDly×PredCrsDly+GCrsDly×CDPE
ここで、ACrsDlyは多数のプロセスアグノスティックコース遅延要素(例えば、コース値408)であり、PredCrsDlyはコース遅延要素の予想又は予期される遅延(404)であり、GCrsDlyは多数のグノスティックのコース遅延要素(例えば、コース値414)であり、CDPEはコース遅延要素毎の測定された遅延(314)である。
【0032】
総コース遅延(CrsDly)が演算されたので、遅延調整ロジック402は、適用するコース遅延要素218の数を下記のように決定する。
CrsElements=CrsDly/CDPE
【0033】
同様に、遅延調整ロジック402は、総ファイン遅延を下記のように演算する。
FineDly=AFineDly×PredFineDly+GFineDly×FDPE
ここで、AFineDlyは、多数のプロセスアグノスティックファイン遅延要素(例えば、ファイン値410)であり、PredFineDlyはファイン遅延要素の予想又は予期される遅延(404)であり、GFineDlyは多数のプロセスグノスティックのファイン遅延要素(例えば、ファイン値416)であり、FDPEはファイン遅延要素毎の測定された遅延(314)である。
【0034】
遅延調整ロジック402は、CrsElementsに関連して適用するためファイン遅延要素218の数を下記のように演算する。
FineElements=FineDly/FDPE
【0035】
遅延値220のため遅延調整ロジック402により実装される総遅延は下記である。
TotalDly=CrsDly+FineDly
ここで、特定された遅延のプロセスアグノスティック部分は、プロセス及び動作条件とともに変化しない。これは、プロセスアグノスティック遅延を提供するために適用される遅延要素の数は、測定されたコース及びファイン遅延値314に基づいて変化するためである。従って、実施例は、プロセス不変遅延(金属遅延など)及びプロセス可変遅延(構成要素遅延など)を明らかにする。
【0036】
図5は、種々の実施例に従った、IC I/O端子106に関連付けられる伝搬遅延を制御する方法のためのフローチャートを示す。ブロック502において、IC100が初期化される。例えば、IC100は、パワーオンリセットに関連付けられるオペレーションを実施している可能性がある。遅延キャリブレーションコントローラ206は、ICの初期化の間、動作条件下でコース遅延要素218及びファイン遅延要素216の遅延を測定する。
【0037】
ブロック504において、遅延コントローラ110は、遅延ストレージ210にアクセスし、遅延ストレージ210から遅延値220をリトリーブする。遅延値220は、I/O端子106の各々に対して信号配路に適用されるべき伝搬遅延を特定する。遅延値220の各々は、I/O端子106に配路される信号に対し、コース遅延要素218及びファイン遅延要素216両方のための伝搬遅延のプロセス不変及びプロセス可変部分を特定する。
【0038】
ブロック506において、遅延コントローラ110は、I/O端子106に配路される各信号に適用されるべき総コース遅延及び総ファイン遅延を演算する。所与の信号に対し、総コース遅延は、信号に対して演算されるコースプロセス不変遅延及びコースプロセス可変遅延の和である。総ファイン遅延は、信号に対して演算されるファインプロセス不変遅延及びファインプロセス可変遅延の和である。プロセス不変遅延は、名目の又は計画されたコース/ファイン遅延要素遅延値と、遅延値220のコース/ファインプロセス不変部分において特定されたコース/ファイン遅延要素の数との積として演算される。プロセス可変遅延は、測定されたコース/ファイン遅延要素遅延値と、コース/ファインプロセス可変部分において特定されたコース/ファイン遅延要素遅延値220の数との積として演算される。
【0039】
ブロック508において、遅延コントローラ110は、I/O端子106に配路するために遅延値220により特定される伝搬遅延を提供するために、コース遅延要素218のいずれが及びファイン遅延要素216のいずれが適用されるかを選択する。遅延コントローラ110は、演算された総コース遅延及びコース遅延要素218の測定された遅延に基づいて適用されるべき多数のコース遅延要素218を識別し得る。遅延コントローラ110は、演算された総ファイン遅延及びファイン遅延要素216の測定された遅延に基づいて適用されるべき多数のファイン遅延要素216を識別し得る。遅延コントローラ110は、I/O端子106に対応する遅延要素202に選択信号を提供する制御レジスタに適用されるべきコース遅延要素218の数及びファイン遅延要素216の数を特定する情報を書き込む。例えば、一つの選択信号が各遅延要素202に提供され得る。
【0040】
ブロック510において、遅延コントローラ110は、I/O端子510への信号配路における変化の指示を受け取る。例えば、I/O端子106に配路される信号は、マルチプレクサ112を介して変更され得る。この指示は、I/Oタイミング制御モジュール102の外の回路要素による信号214のアサートの結果生じ得る。信号配路における変化の指示に応答して、遅延コントローラ110は、遅延ストレージ210から、新たな信号に対応する遅延値220をリトリーブする。遅延コントローラ110は、ブロック506に対して説明したように遅延値220に対する遅延を演算し、ブロック508に対して説明したように遅延を実装するために遅延要素を選択する。
【0041】
ブロック512において、遅延キャリブレーションコントローラ206は、コース遅延要素218及びファイン遅延要素216の遅延を測定するためにトリガーされる。このトリガーは、I/Oタイミング制御モジュール102の外の回路要素による信号214のアサートの結果生じ得る。このトリガーに応答して、遅延キャリブレーションコントローラ206は、ブロック502に対して説明したようにコース遅延要素218及びファイン遅延要素216の遅延を測定する。
【0042】
ブロック514において、遅延コントローラ110は、遅延ストレージ210から遅延値220をリトリーブし、I/O端子106に対して実装される伝搬遅延を更新するように、トリガーされる。このトリガーは、I/Oタイミング制御モジュール102の外の回路要素による信号214のアサートの結果生じ得る。このトリガーに応答して、遅延コントローラ110は、ブロック504〜508に対して説明されたオペレーションを実施する。
【0043】
従って、少なくとも一つの実施例において、或る方法が、ICのI/O端子へ又はICのI/O端子から、ICのI/Oタイミングモジュールを介して通る信号を配路することを含む。I/Oタイミングモジュールにおける信号に伝搬遅延が付加される。I/Oタイミングモジュールの遅延要素が、I/Oタイミングモジュールにより、各信号に適用されるように、及び信号のアイデンティティとその信号のためにI/Oタイミングモジュールにストアされた遅延情報とに基づいて伝搬遅延を提供するように、選択される。
【0044】
更なる実施例において、ICが、I/O端子及びI/Oタイミングモジュールを含む。I/O端子は、ICの中へ又は外へ信号を渡すように構成される。I/Oタイミングモジュールは、信号に伝搬遅延を付加するように構成され、遅延要素のアレイ、伝搬遅延値ストレージ、キャリブレーションコントローラ、及び遅延コントローラを含む。遅延要素のアレイの一つが、I/O端子の各々に対応する。伝搬遅延値ストレージは、信号の各々のための伝搬遅延値をストアする。キャリブレーションコントローラは、遅延要素によって提供される伝搬遅延を測定するように構成される。遅延コントローラは、信号の各々について、遅延要素の測定された伝搬遅延に基づいて、伝搬遅延値により特定される伝搬遅延を提供するために遅延要素のいずれを適用するべきかを選択するように構成される。
【0045】
本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得、多くの他の実施例が可能である。
図1
図2
図3
図4
図5