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

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

▶ 株式会社ソシオネクストの特許一覧

<>
  • 特許-可変遅延回路および半導体集積回路 図1
  • 特許-可変遅延回路および半導体集積回路 図2
  • 特許-可変遅延回路および半導体集積回路 図3
  • 特許-可変遅延回路および半導体集積回路 図4
  • 特許-可変遅延回路および半導体集積回路 図5
  • 特許-可変遅延回路および半導体集積回路 図6
  • 特許-可変遅延回路および半導体集積回路 図7
  • 特許-可変遅延回路および半導体集積回路 図8
  • 特許-可変遅延回路および半導体集積回路 図9
  • 特許-可変遅延回路および半導体集積回路 図10
  • 特許-可変遅延回路および半導体集積回路 図11
  • 特許-可変遅延回路および半導体集積回路 図12
  • 特許-可変遅延回路および半導体集積回路 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-28
(45)【発行日】2023-09-05
(54)【発明の名称】可変遅延回路および半導体集積回路
(51)【国際特許分類】
   H03K 5/14 20140101AFI20230829BHJP
   H03K 5/135 20060101ALI20230829BHJP
【FI】
H03K5/14
H03K5/135
【請求項の数】 9
(21)【出願番号】P 2021528594
(86)(22)【出願日】2019-06-21
(86)【国際出願番号】 JP2019024670
(87)【国際公開番号】W WO2020255371
(87)【国際公開日】2020-12-24
【審査請求日】2022-05-18
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】沖ノ井 理典
【審査官】工藤 一光
(56)【参考文献】
【文献】特開2013-5177(JP,A)
【文献】特開2005-51673(JP,A)
【文献】特開平10-276074(JP,A)
【文献】米国特許第9564909(US,B1)
【文献】米国特許出願公開第2015/0244357(US,A1)
【文献】米国特許出願公開第2013/0342255(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03K5/00-5/26
(57)【特許請求の範囲】
【請求項1】
第1遅延時間を有する直列に接続した複数の第1遅延素子を有し、前記複数の第1遅延素子の各々を、第1制御信号に応じて、受信した信号を入力側に戻す折り返し状態、または、受信した信号を出力側に転送して出力側から受信した信号を入力側に転送する転送状態に設定し、初段の前記第1遅延素子で受信した信号を遅延させた遅延信号を初段の前記第1遅延素子から出力する少なくとも1つの第1遅延回路と、
直列に接続した、前記第1遅延素子と同じ構成を有する少なくとも1つの第2遅延素子と、前記第1遅延時間より長い第2遅延時間を有する複数の第3遅延素子とを有し、前記第2遅延素子および前記複数の第3遅延素子の各々を、第2制御信号に応じて、受信した信号を入力側に戻す折り返し状態、または、受信した信号を出力側に転送して出力側から受信した信号を入力側に転送する転送状態に設定し、初段の前記第2遅延素子で受信した信号を遅延させた遅延信号を初段の前記第2遅延素子から出力する第2遅延回路と、を有し、
前記第1遅延回路の初段の前記第1遅延素子と前記第2遅延回路の初段の前記第2遅延素子とを直列に接続し、
前記第1遅延回路および前記第2遅延回路の一方で受けた入力信号を所定時間遅延させた遅延信号を、前記第1遅延回路および前記第2遅延回路の他方から出力する、可変遅延回路。
【請求項2】
前記第3遅延素子の遅延時間は、前記第1遅延素子の遅延時間のk倍(kは2以上の整数)である、請求項1に記載の可変遅延回路。
【請求項3】
直列に接続した、前記第1遅延素子と同じ構成を有する少なくとも1つの第4遅延素子と、第3遅延時間を有する複数の第5遅延素子とを有し、前記第4遅延素子および前記複数の第5遅延素子の各々を、第3制御信号に応じて、受信した信号を入力側に戻す折り返し状態、または、受信した信号を出力側に転送して出力側から受信した信号を入力側に転送する転送状態に設定し、初段の前記第4遅延素子で受信した信号を遅延させた遅延信号を初段の前記第4遅延素子から出力する少なくとも1つの第3遅延回路を有し、
前記第3遅延回路の初段の前記第4遅延素子を、前記第1遅延回路の初段の前記第1遅延素子および前記第2遅延回路の初段の前記第2遅延素子と直列に接続する、請求項1または請求項2に記載の可変遅延回路。
【請求項4】
第1可変遅延回路と、前記第1可変遅延回路の遅延時間を制御する第1制御信号および第2制御信号を出力する遅延制御回路とを有する半導体集積回路であって、
前記第1可変遅延回路は、
第1遅延時間を有する直列に接続した複数の第1遅延素子を有し、前記複数の第1遅延素子の各々を、第1制御信号に応じて、受信した信号を入力側に戻す折り返し状態、または、受信した信号を出力側に転送して出力側から受信した信号を入力側に転送する転送状態に設定し、初段の前記第1遅延素子で受信した信号を遅延させた遅延信号を初段の前記第1遅延素子から出力する少なくとも1つの第1遅延回路と、
直列に接続した、前記第1遅延素子と同じ構成を有する少なくとも1つの第2遅延素子と、前記第1遅延時間より長い第2遅延時間を有する複数の第3遅延素子とを有し、前記第2遅延素子および前記複数の第3遅延素子の各々を、第2制御信号に応じて、受信した信号を入力側に戻す折り返し状態、または、受信した信号を出力側に転送して出力側から受信した信号を入力側に転送する転送状態に設定し、初段の前記第2遅延素子で受信した信号を遅延させた遅延信号を初段の前記第2遅延素子から出力する第2遅延回路と、を有し、
前記第1遅延回路の初段の前記第1遅延素子と前記第2遅延回路の初段の前記第2遅延素子とを直列に接続し、
前記第1遅延回路および前記第2遅延回路の一方で受けた入力信号を所定時間遅延させた遅延信号を、前記第1遅延回路および前記第2遅延回路の他方から出力する、半導体集積回路。
【請求項5】
第1モードと第2モードとを有し、
前記遅延制御回路は、前記第1モードでは、前記第2制御信号を変更せずに前記第1制御信号を変更することで前記入力信号の遅延量を調整し、前記第2モードでは、前記第1制御信号を変更せずに前記第2制御信号を変更することで前記入力信号の遅延量を調整する、請求項4に記載の半導体集積回路。
【請求項6】
前記第1可変遅延回路と同じ構成を有する第2可変遅延回路と、
前記第2可変遅延回路に入力するクロック信号の位相と、前記第2可変遅延回路から出力する遅延クロック信号の位相とを比較する位相比較部と、
前記第2可変遅延回路の遅延時間を調整し、前記クロック信号の位相と前記遅延クロック信号の位相とを一致させるクロック遅延調整部と、を有し、
前記入力信号の周期を前記クロック信号の周期に設定し、
前記遅延制御回路は、前記クロック遅延調整部により調整した遅延時間に合わせて前記第1可変遅延回路の遅延時間を調整するために前記第1制御信号または前記第2制御信号を出力する、請求項5に記載の半導体集積回路。
【請求項7】
前記クロック遅延調整部は、前記第1モードでは、前記第2可変遅延回路の前記第1遅延回路の遅延時間を調整し、前記第2モードでは、前記第2可変遅延回路の前記第2遅延回路の遅延時間を調整する、請求項6に記載の半導体集積回路。
【請求項8】
フラッシュメモリに対して信号を入出力するインタフェース部を有し、
前記第1可変遅延回路は、前記フラッシュメモリにデータをライトする場合、前記フラッシュメモリに出力するデータストローブ信号の遷移エッジに対するライトデータの遅延量を調整する、請求項4ないし請求項7のいずれか1項に記載の半導体集積回路。
【請求項9】
フラッシュメモリに対して信号を入出力するインタフェース部を有し、
前記第1可変遅延回路は、前記フラッシュメモリからデータをリードする場合、前記フラッシュメモリがリードデータとともに出力するデータストローブ信号のリードデータに対する遅延量を調整する、請求項4ないし請求項7のいずれか1項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、可変遅延回路および半導体集積回路に関する。
【背景技術】
【0002】
例えば、半導体集積回路は、内部回路の動作タイミングを調整するために、信号の遅延時間を調整する可変遅延回路を有する。この種の可変遅延回路は、遅延時間の調整間隔が粗い粗調整ブロックと、粗調整ブロックに直列に接続し、遅延時間の調整単位が細かい微調整ブロックとを有する。例えば、微調整ブロックは、信号の伝達経路に断続する容量素子を有する。あるいは、可変遅延回路は、信号を遅延させる複数の遅延回路と、複数の遅延回路から出力する遅延信号のいずれかを選択するセレクタとを有する。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第3430046号
【文献】特許第3560319号
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、動作周波数を変更可能なメモリデバイス等のアクセスを制御する半導体集積回路において、メモリデバイス等に出力する出力信号を基準タイミング信号に対して遅延させる場合、動作周波数に応じた遅延量の出力信号を可変遅延回路により生成する。可変遅延回路による出力信号の遅延量は、メモリデバイスの最大動作周波数と最小動作周波数とに対応させる必要がある。しかしながら、粗調整ブロックと微調整ブロックとを直列に接続した可変遅延回路では、最小の遅延量を、粗調整ブロックの遅延素子1段分の遅延量以下にすることができない。このため、メモリデバイスの最大動作周波数によっては、可変遅延回路は、最大動作周波数に対応する遅延量の出力信号を生成できないおそれがある。
【0005】
本発明は、上記の点に鑑みてなされたもので、幅広い遅延量を調整可能な可変遅延回路において、遅延量の調整精度を向上することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様では、可変遅延回路は、第1遅延時間を有する直列に接続した複数の第1遅延素子を有し、前記複数の第1遅延素子の各々を、第1制御信号に応じて、受信した信号を入力側に戻す折り返し状態、または、受信した信号を出力側に転送して出力側から受信した信号を入力側に転送する転送状態に設定し、初段の前記第1遅延素子で受信した信号を遅延させた遅延信号を初段の前記第1遅延素子から出力する少なくとも1つの第1遅延回路と、直列に接続した、前記第1遅延素子と同じ構成を有する少なくとも1つの第2遅延素子と、前記第1遅延時間より長い第2遅延時間を有する複数の第3遅延素子とを有し、前記第2遅延素子および前記複数の第3遅延素子の各々を、第2制御信号に応じて、受信した信号を入力側に戻す折り返し状態、または、受信した信号を出力側に転送して出力側から受信した信号を入力側に転送する転送状態に設定し、初段の前記第2遅延素子で受信した信号を遅延させた遅延信号を初段の前記第2遅延素子から出力する第2遅延回路と、を有し、前記第1遅延回路の初段の前記第1遅延素子と前記第2遅延回路の初段の前記第2遅延素子とを直列に接続し、前記第1遅延回路および前記第2遅延回路の一方で受けた入力信号を所定時間遅延させた遅延信号を、前記第1遅延回路および前記第2遅延回路の他方から出力する。
【発明の効果】
【0007】
開示の技術によれば、幅広い遅延量を調整可能な可変遅延回路において、遅延量の調整精度を向上することができる。
【図面の簡単な説明】
【0008】
図1】第1の実施形態の半導体集積回路の構成を示す図である。
図2図1のライトデータ制御部およびリードタイミング制御部の動作を示す図である。
図3図1の可変遅延回路の回路構成を示す図である。
図4図1のDLL回路の構成を示す図である。
図5図3の可変遅延回路の動作の一例を示す図である。
図6図3の可変遅延回路の動作の別の例を示す図である。
図7図3の可変遅延回路が出力する遅延ライトタイミング信号の波形を示す図である。
図8図1の遅延制御回路による可変遅延回路の制御の説明を示す図である。
図9図3の可変遅延回路の動作のさらなる別の例を示す図である。
図10】半導体集積回路による可変遅延回路の制御フローを示す図である。
図11】第2の実施形態の可変遅延回路の回路構成を示す図である。
図12】第3の実施形態の可変遅延回路の回路構成を示す図である。
図13】第4の実施形態の可変遅延回路の回路構成を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を用いて実施形態を説明する。信号と信号を伝達する信号線とは、同じ符号で示す。
【0010】
(第1の実施形態)
図1は、第1の実施形態の半導体集積回路100の構成を示す。第1の実施形態では、半導体集積回路100をフラッシュメモリ200等のメモリデバイスとともにシステム300に搭載する。例えば、半導体集積回路100は、SoC(System on a Chip)である。フラッシュメモリ200は、例えばNAND型であり、動作モードに応じて動作周波数を変更可能である。半導体集積回路100およびフラッシュメモリ200は、システム基板に搭載され、システム基板上の配線が半導体集積回路100およびフラッシュメモリ200を相互に接続する。なお、半導体集積回路100は、フラッシュメモリ200以外のデバイスを接続してもよい。
【0011】
半導体集積回路100は、CPU(Central Processing Unit)110、メモリコントローラ120および物理インタフェース部(PHY)130を有する。CPU110は、半導体集積回路100に搭載する各種回路(メモリコントローラ120および物理インタフェース部130を含む)を制御する。メモリコントローラ120は、CPU110からの指示に基づいて、フラッシュメモリ200のアクセスを制御する。
【0012】
物理インタフェース部130は、DLL(Delay-Locked Loop)回路10、遅延制御回路20、ライトデータ制御部30、リードデータ制御部40、ライトタイミング制御部50、リードタイミング制御部60およびバッファ部70を有する。物理インタフェース部130は、後述するクロック信号MCLKに基づいてフラッシュメモリ200に供給する信号を生成し、フラッシュメモリ200が出力する信号を受信する。物理インタフェース部130は、フラッシュメモリ200に対して信号を入出力するインタフェース部の一例である。
【0013】
DLL回路10は、クロック信号MCLKを遅延させて遅延クロック信号DMCLKを生成する可変遅延回路VDLY3を有し、クロック信号MCLKの位相と遅延クロック信号DMCLKの位相とを一致させる動作を実行する。クロック信号MCLKは、フラッシュメモリ200のアクセスを制御するための基準クロックであり、フラッシュメモリ200の動作周波数と同じ周波数に設定する。例えば、クロック信号MCLKは、半導体集積回路100で使用するクロック信号の周波数を分周することで生成する。可変遅延回路VDLY3は、第2可変遅延回路の一例である。
【0014】
DLL回路10は、モード信号FCMODEに応じて、制御信号FS3または制御信号CS3を使用して、可変遅延回路VDLY3の遅延時間を調整する。モード信号FCMODEは、フラッシュメモリ200の動作周波数に応じたモード(第1モードまたは第2モード)を識別するために使用する。DLL回路10は、制御信号FS3、CS3を遅延制御回路20に出力する。制御信号FS3、CS3に基づく可変遅延回路VDLY3の動作は、図3で説明し、動作モードについては、図8で説明する。
【0015】
遅延制御回路20は、モード信号FCMODEと制御信号FS3、CS3とに基づいて、制御信号FS1、CS1、FS2、CS2を生成する。制御信号FS1、CS1は、ライトデータ制御部30の可変遅延回路VDLY1の遅延時間を調整するために使用する。制御信号FS2、CS2は、リードタイミング制御部60の可変遅延回路VDLY2の遅延時間を調整するために使用する。
【0016】
ライトデータ制御部30は、フラッシュメモリ200にデータをライトするライトサイクルにおいて動作する。ライトデータ制御部30は、可変遅延回路VDLY1と、データ信号DQ(DQ0-DQ7;ライトデータ)にそれぞれ対応するラッチ回路LTとを有する。なお、データ信号DQのビット数は、8ビットに限定されない。可変遅延回路VDLY1は、第1可変遅延回路の一例である。
【0017】
可変遅延回路VDLY1は、遅延制御回路20からの制御信号FS1、CS1に基づいて、ライトタイミング信号WDQS0を遅延させた遅延ライトタイミング信号WDQSを生成する。各ラッチ回路LTは、遅延ライトタイミング信号WDQSに同期してデータ信号DQi(DQi0-DQi7)をラッチし、ラッチしたデータ信号DQiをデータ信号DQとしてバッファ部70に出力する。ライトデータ制御部30の動作の例は、図2で説明する。
【0018】
リードデータ制御部40は、フラッシュメモリ200からデータをリードするリードサイクルにおいて動作する。リードデータ制御部40は、バッファ部70を介してフラッシュメモリ200が出力するデータ信号DQ(DQ0-DQ7;リードデータ)を、リードタイミング制御部60が出力する遅延リードタイミング信号RDQSに同期して受信する。
【0019】
ライトタイミング制御部50は、ライトサイクルにおいて動作し、バッファ部70を介してフラッシュメモリ200にデータストローブ信号DQSを出力する。また、ライトタイミング制御部50は、例えば、データストローブ信号DQSと同じ位相を有するライトタイミング信号WDQS0を生成する。なお、ライトタイミング信号WDQS0の位相は、データストローブ信号DQSの位相と相違してもよい。また、ライトタイミング信号WDQS0を、ライトタイミング制御部50以外の回路により生成してもよい。
【0020】
リードタイミング制御部60は、リードサイクルにおいて動作し、可変遅延回路VDLY2を有する。可変遅延回路VDLY2は、フラッシュメモリ200がリードデータDQとともに出力するデータストローブ信号DQSの位相を90度ずらして遅延リードタイミング信号RDQSを生成する。90度の位相に対応する遅延時間は、フラッシュメモリ200の動作周波数に応じて異なるため、可変遅延回路VDLY2は、データストローブ信号DQSの90度の位相に対応する遅延時間を示す制御信号FS2、CS2を受けて動作する。
【0021】
可変遅延回路VDLY2は、制御信号FS2、CS2に基づいて、データストローブ信号DQSを遅延させた遅延リードタイミング信号RDQSを生成する。リードタイミング制御部60の動作の例は、図2で説明する。可変遅延回路VDLY2は、第1可変遅延回路の一例である。
【0022】
バッファ部70は、フラッシュメモリ200に信号を出力する出力バッファ、フラッシュメモリ200から信号を入力する入力バッファ、およびフラッシュメモリ200に対して信号を入出力する入出力バッファを有する。例えば、バッファ部70は、リードイネーブル信号REN、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEN、チップイネーブル信号CEN0-CEN7、ライトプロテクト信号WPを、フラッシュメモリ200に出力する。
【0023】
チップイネーブル信号CEN0-CEN7は、半導体集積回路100に接続する複数のフラッシュメモリ200を選択するために使用し、この実施形態では、最大8個のフラッシュメモリ200(チップ)が半導体集積回路100に接続可能である。
【0024】
レディ/ビジー信号RBNは、フラッシュメモリ200から入力する。また、データ信号DQおよびデータストローブ信号DQSは、ライトサイクルでは、フラッシュメモリ200に出力し、リードサイクルでは、フラッシュメモリ200から入力する。
【0025】
例えば、フラッシュメモリ200は、データストローブ信号DQSの立ち上がりエッジと立ち下がりエッジにそれぞれ同期して、データ信号DQを入出力するDDR(Double Data Rate)タイプである。また、データストローブ信号DQSは、相補の信号でもよいが、説明を分かりやすくするため、正論理(True)の信号のみを示す。
【0026】
図2は、図1のライトデータ制御部30およびリードタイミング制御部60の動作を示す。
【0027】
半導体集積回路100は、データをフラッシュメモリ200にライトするライトサイクルにおいて、データ信号DQ0-DQ7の中央(2つの遷移エッジの中間)に遷移エッジを有するデータストローブ信号DQSをフラッシュメモリ200に出力する(図2(a))。このため、ライトデータ制御部30は、例えば、データストローブ信号DQSと位相が等しいライトタイミング信号WDQS0の位相を、可変遅延回路VDLY1を用いて90度遅らせ、遅延ライトタイミング信号WDQSを生成する(図2(b))。
【0028】
可変遅延回路VDLY1は、図1の遅延制御回路20が出力する制御信号FS1、CS1に基づいて、ライトタイミング信号WDQS0を遅延量DLY1だけ遅らせた遅延ライトタイミング信号WDQSを出力する。そして、ライトデータ制御部30のラッチ回路LTは、例えば、遅延ライトタイミング信号WDQSの立ち上がりエッジに同期して内部データ信号DQi0-DQi7をラッチし、データ信号DQ0-DQ7として出力する(図2(c))。これにより、ライトサイクルにおいて、データ信号DQ0-DQ7(ライトデータ)の中央をデータストローブ信号DQSの遷移エッジに合わせることができる。なお、内部データ信号DQi0-DQi7およびデータ信号DQ0-DQ7に付したD0、D1、D2、D3、D4は、データ値を示し、ライトタイミング信号/WDQS0は、ライトタイミング信号WDQS0に対して位相が反転した信号を示す。
【0029】
また、半導体集積回路100は、データをフラッシュメモリ200からリードするリードサイクルにおいて、互いに同じ位相を有するデータストローブ信号DQSとデータ信号DQ0-DQ7とをフラッシュメモリ200から受ける(図2(d))。換言すれば、フラッシュメモリ200は、データストローブ信号DQSに同期してデータ信号DQ0-DQ7(リードデータ)を出力する。
【0030】
半導体集積回路100は、データストローブ信号DQSの位相を、可変遅延回路VDLY2を用いて90度遅らせ、リードデータDQ0-DQ7の中央(遷移エッジの中間)に遷移エッジを有する遅延リードタイミング信号RDQSを生成する(図2(e))。可変遅延回路VDLY2は、図1の遅延制御回路20が出力する制御信号FS2、CS2に基づいて、データストローブ信号DQSを遅延量DLY2だけ遅らせた遅延リードタイミング信号RDQSを出力する。
【0031】
そして、リードデータ制御部40は、フラッシュメモリ200から受信したデータ信号DQ0-DQ7を、遅延リードタイミング信号RDQSに同期して受信する(図2(f))。これにより、リードサイクルにおいて、データ信号DQ0-DQ7(リードデータ)の中央をデータストローブ信号DQSの遷移エッジに合わせることができる。
【0032】
図3は、図1の可変遅延回路VDLY1の回路構成を示す。なお、図1に示した可変遅延回路VDLY2、VDLY3の回路構成は、例えば、可変遅延回路VDLY1と同じである。
【0033】
可変遅延回路VDLY1は、nビットの制御信号FS1[n:1]に基づいて動作する遅延ラインD1と、nビットの制御信号CS1[n:1]に基づいて動作する遅延ラインD2とを有する。なお、遅延ラインD1は、遅延ラインD2の前ではなく、遅延ラインD2の後に接続してもよい。遅延ラインD1は、第1遅延回路の一例であり、遅延ラインD2は、第2遅延回路の一例である。
【0034】
遅延ラインD1は、制御信号FS1[n:1]の各ビット値に応じて動作する直列に接続したn個(例えば、128個)の遅延素子FD(FD1-FDn)を有する。遅延ラインD2は、制御信号FS2[n:1]の各ビット値に応じて動作する直列に接続したn個の遅延素子CD(CD1-CDn)を有する。
【0035】
遅延素子FD1-FDnは、第1遅延素子の一例であり、遅延素子CD1は、第2遅延素子の一例であり、遅延素子CD2-CDnは、第3遅延素子の一例である。制御信号FS1[n:1]は、第1制御信号の一例であり、制御信号FS2[n:1]は、第2制御信号の一例である。
【0036】
遅延素子FD1-FDnおよび遅延素子CD1は互いに同じ回路構成であるため、以下では遅延ラインD1の初段の遅延素子FD1を説明する。また、遅延素子CD2-CDnは互いに同じ回路構成であるため、以下では遅延素子CD2を説明する。
【0037】
遅延素子FD1-FDnおよび遅延素子CD1は、遅延時間が互いに同じであることを示すため、図中に符号"FDLY"(Fine Delay)を付している。遅延素子CD2-CDnは、遅延時間が互いに同じであることを示すため、図中に符号"CDLY"(Coarse Delay)を付している。遅延素子"FDLY"の遅延時間は、遅延素子"CDLY"の遅延時間より短い。なお、以下の説明では、着目する遅延素子FDまたは遅延素子CDの左側を入力側と称し、着目する遅延素子FDまたは遅延素子CDの右側を出力側と称する。
【0038】
遅延素子FD1は、ナンドゲートN1、N2、N3と制御信号FS1[1]の論理を反転するインバータIVとを有する。ナンドゲートN1は、制御信号FS1[1]の論理をインバータIVで反転した信号と入力信号とを受ける。初段の遅延素子FD1では、入力信号は、ライトタイミング信号WDQS0である。ナンドゲートN1は、制御信号FS1[1]が論理0の場合、入力信号の論理を反転して出力側の遅延素子FD2に出力し、制御信号FS1[1]が論理1の場合、論理1を出力側の遅延素子FD2に出力する。
【0039】
ナンドゲートN2は、制御信号FS1[1]が論理1の場合、入力信号の論理を反転してナンドゲートN3に出力し、制御信号FS1[1]が論理0の場合、論理1をナンドゲートN3に出力する。ナンドゲートN3は、ナンドゲートN2の出力の論理と、出力側に隣接する遅延素子FD2のナンドゲートN3の出力の論理とのいずれかが論理0の場合、論理1を出力する。ナンドゲートN3は、ナンドゲートN2の出力の論理と、出力側に隣接する遅延素子FD2のナンドゲートN3の出力の論理とがともに論理1の場合、論理0を出力する。
【0040】
図1に示した遅延制御回路20は、遅延ラインD1によりライトタイミング信号WDQS0を遅延させる場合、nビットの制御信号FS1[n:1]のうちの連続する2ビットを論理1に設定し、他の制御信号FS1を論理0に設定する。これにより、論理1の2つの制御信号FS1のうち、ビット番号が小さい制御信号FS1を受ける遅延素子FDは、入力側から受ける信号を折り返して、ナンドゲートN3から入力側に戻す。以下では、信号を折り返す遅延素子FD(またはCD)を折り返し遅延素子とも称し、折り返し遅延素子の状態を折り返し状態とも称する。なお、遅延ラインD1の最終段の遅延素子FDnを折り返し状態に設定する場合、制御信号FS1[n]のみを論理1に設定し、他の制御信号FS1を論理0に設定する。
【0041】
折り返し遅延素子FDのナンドゲートN1は、論理1を出力する。論理1の2つの制御信号FS1のうち、ビット番号が大きい制御信号FS1を受ける遅延素子FDのナンドゲートN3は、インバータIVを介して制御信号FS1の論理1を反転した信号(論理0)を受け、論理1を出力する。以下では、折り返し遅延素子FD(またはCD)の出力側に接続する遅延素子FD(またはCD)を折り返し制御素子とも称する。
【0042】
折り返し遅延素子FDの入力側の遅延素子FDのナンドゲートN1は、制御信号FS1の論理0を反転した信号を受け、入力信号の論理を反転して出力するインバータとして機能する。折り返し遅延素子FDの入力側の遅延素子FDのナンドゲートN3は、論理0の制御信号FS1に基づいてナンドゲートN2が出力する論理1の信号を受ける。このため、折り返し遅延素子FDの入力側の遅延素子FDのナンドゲートN3は、出力側に隣接する遅延素子FDのナンドゲートN3が出力する信号の論理を反転して出力するインバータとして機能する。
【0043】
このように、折り返し遅延素子FDの入力側に位置する遅延素子FDは、入力側から受信した信号を出力側に転送し、出力側から受信した信号を入力側に転送する。以下では、折り返し遅延素子FD(またはCD)より入力側に位置し、論理0の制御信号FS(またはCD)を受ける遅延素子FD(またはCD)を、転送遅延素子とも称し、転送遅延素子の状態を転送状態とも称する。なお、初段の遅延素子FD1(またはCD1)を折り返し状態に設定する場合、転送遅延素子は存在しない。
【0044】
以上の動作により、遅延ラインD1は、初段の遅延素子FD1で受信するライトタイミング信号WDQS0を所定数の遅延素子FDで遅延させ、初段の遅延素子FD1から遅延信号WDQS1として出力する。なお、遅延ラインD1は、信号を、直列に接続する偶数個のナンドゲートを介して遅延し、出力する。遅延ラインD1にセレクタを設けず、信号を偶数個のナンドゲートで遅延させることで、入力信号と出力信号(遅延した信号)とでデューティ比が変わることを防止することができる。また、使用する遅延素子FDの段数によらず、デューティ比を一定にすることができる。
【0045】
遅延素子CD2-CDnの各々は、遅延素子FD1に対してインバータディレイID1、ID2を追加していることを除き、遅延素子FD1と同じ構成を有する。インバータディレイID1、ID2は、入力側の遅延素子CDに接続する入力端子とナンドゲートN1との間に直列に接続したインバータであり、遅延要素として機能する。遅延素子CD2-CDnの各々は、インバータディレイID1、ID2で遅延した信号を、ナンドゲートN1、N2に供給する。
【0046】
各遅延素子CD2-CDnの遅延時間は、遅延素子FD1の遅延時間に比べて、インバータディレイID1、ID2の遅延時間だけ長い。例えば、各遅延素子CD2-CDnの遅延時間は、遅延素子FD1の遅延時間の4倍に設定してもよく、2以上の整数倍としてもよい。各遅延素子CD2-CDnの遅延時間を、遅延素子FD1の整数倍に設定することで、信号を遅延するために使用する遅延素子(FDまたはCD)によらず、遅延時間を容易に計算することができ、使用する遅延素子の数を容易に計算することができる。遅延素子FD1-FDn、CD1の遅延時間は、第1遅延時間の一例であり、遅延素子CD2-CDnの遅延時間は、第2遅延時間の一例である。
【0047】
遅延ラインD2においても、論理1の制御信号CS1を受ける互いに隣接する2つの遅延素子CDのうち、入力側に位置する遅延素子CDを、折り返し状態に設定し、折り返し遅延素子CDとして機能させる。折り返し遅延素子CDの入力側に位置する遅延素子CDを、転送状態に設定し、転送遅延素子として機能させる。折り返し遅延素子CDの出力側に位置する遅延素子CDは、折り返し制御素子として機能する。なお、遅延ラインD2の最終段の遅延素子CDnを折り返し状態に設定する場合、制御信号CS1[n]のみを論理1に設定する。
【0048】
そして、遅延ラインD2は、初段の遅延素子CD1で受信する遅延信号WDQS1を所定数の遅延素子CDで遅延させ、初段の遅延素子CD1から遅延ライトタイミング信号WDQSとして出力する。遅延ラインD2は、信号を、直列に接続する偶数個のナンドゲートと偶数個のインバータディレイID1、ID2を介して遅延し、出力する。これにより、遅延ラインD1と同様に、入力信号と出力信号(遅延した信号)とでデューティ比が変わることを防止することができる。また、使用する遅延素子CDの段数によらず、デューティ比を一定にすることができる。
【0049】
なお、可変遅延回路VDLY2は、図3の制御信号FS1[n:1]、CS1[n:1]の代わりに制御信号FS2[n:1]、CS2[n:1]を受ける。また、可変遅延回路VDLY2は、ライトタイミング信号WDQS0の代わりにデータストローブ信号DQSを受け、遅延ライトタイミング信号WDQSの代わりに遅延リードタイミング信号RDQSを出力する。
【0050】
同様に、可変遅延回路VDLY3は、図3の制御信号FS1[n:1]、CS1[n:1]の代わりに制御信号FS3[n:1]、CS3[n:1]を受ける。また、可変遅延回路VDLY3は、ライトタイミング信号WDQS0の代わりにクロック信号MCLKを受け、遅延ライトタイミング信号WDQSの代わりに遅延クロック信号DMCLKを出力する。
【0051】
なお、遅延ラインD1、D2は、接続順を逆にしてもよい。この場合、遅延ラインD2は、ライトタイミング信号WDQS0を所定時間遅延させた遅延信号WDQS1を出力し、遅延ラインD1は、遅延信号WDQS1を所定時間遅延させた遅延ライトタイミング信号WDQSを出力する。
【0052】
図4は、図1のDLL回路10の構成を示す。DLL回路10は、可変遅延回路VDLY3、位相比較部12およびクロック遅延調整部14を有する。例えば、可変遅延回路VDLY3は、図3で説明した可変遅延回路VDLY1と同じ回路構成を有し、入力で受けたクロック信号MCLKを遅延して遅延クロック信号DMCLKとして出力する。
【0053】
位相比較部12は、クロック信号MCLKと遅延クロック信号DMCLKとの位相を比較し、比較結果(位相のずれ量を示す情報)をクロック遅延調整部14に出力する。クロック遅延調整部14は、位相の比較結果に基づいて、遅延クロック信号DMCLKの位相をクロック信号MCLKの位相と一致させるための制御信号FS3、CS3を出力する。制御信号FS3、CS3は、実際には、nビットの信号FS3[n:1]、CS3[n:1]である。
【0054】
ここで、クロック遅延調整部14は、モード信号FCMODEが第1モードを示す場合、制御信号CS3を変更せずに制御信号FS3を変更することで、遅延素子FD(図3)を使用して可変遅延回路VDLY3の遅延量を調整する。クロック遅延調整部14は、モード信号FCMODEが第2モードを示す場合、制御信号FS3を変更せずに制御信号CS3を変更することで、遅延素子CD(図3)を使用して可変遅延回路VDLY3の遅延量を調整する。第1モードと第2モードの動作の例は、図5および図6で説明する。
【0055】
DLL回路10では、クロック信号MCLKと遅延クロック信号DMCLKとの位相を一致させることで、クロック信号MCLKの周期を、遅延素子FDの遅延段数または遅延素子CDの遅延段数として表すことができる。クロック遅延調整部14は、第1モードでは、制御信号FS3をクロック信号MCLKの周期(すなわち、動作周波数)を示す情報として遅延制御回路20に出力する。クロック遅延調整部14は、第2モードでは、制御信号CS3をクロック信号MCLKの周期(すなわち、動作周波数)を示す情報として遅延制御回路20に出力する。
【0056】
図5は、図3の可変遅延回路VDLY1の動作の一例を示す。なお、可変遅延回路VDLY2の動作は、制御信号FS1、CS1を制御信号FS2、CS2にそれぞれ置き換えることで表す。また、変遅延回路VDLY2の動作は、ライトタイミング信号WDQS0と遅延ライトタイミング信号WDQSとを、データストローブ信号DQS、遅延リードタイミング信号RDQSとにそれぞれ置き換えることで表す。可変遅延回路VDLY3の動作は、制御信号FS1、CS1を制御信号FS3、CS3にそれぞれ置き換えることで表す。また、可変遅延回路VDLY3の動作は、ライトタイミング信号WDQS0と遅延ライトタイミング信号WDQSとを、クロック信号MCLK、遅延クロック信号DMCLKとにそれぞれ置き換えることで表す。
【0057】
図5は、遅延制御回路20が制御信号FSのみを変更して可変遅延回路VDLY1の遅延時間を調整する第1モードの動作を示す。第1モードは、フラッシュメモリ200の動作周波数が相対的に高いときに使用し、論理0のモード信号FCMODEで示す。
【0058】
図5に示す例では、遅延素子FD1-FD3が転送遅延素子として機能し、遅延素子FD4が折り返し遅延素子として機能し、遅延素子FD5が折り返し制御素子として機能する。なお、第1モードでは、遅延ラインD2の初段の遅延素子CD1が折り返し遅延素子として機能し、遅延時間が遅延素子FDの遅延時間より長い遅延素子CD2-CDnは使用しない。
【0059】
このため、可変遅延回路VDLY1の最小の遅延時間は、遅延ラインD1の遅延素子FD1と、遅延ラインD2の遅延素子CD1の2つ分になる。例えば、遅延素子FD1と遅延素子CD1の遅延時間が30psの場合、可変遅延回路VDLY1の最小の遅延時間は60psになる。なお、遅延素子CD2-CDnの各々の遅延時間は、例えば、120psである。また、各遅延素子FD、CDの遅延時間は、半導体集積回路100を標準的な製造条件で製造した場合の例を示す。
【0060】
これに対して、遅延ラインD2の初段に遅延素子CD2を配置する場合、可変遅延回路VDLY1の最小の遅延時間は150ps(30ps+120ps)になるため、150psより小さい遅延時間を調整することができない。換言すれば、この実施形態では、遅延量が相対的に小さい遅延素子FD1-FDnと、遅延量が相対的に大きい遅延素子CD2-CDnを使用して信号を遅延させる場合、最小の遅延時間を遅延素子CD2の遅延時間以下にすることができる。これにより、可変遅延回路VDLY1は、フラッシュメモリ200の動作周波数が高い場合にも、所望の遅延量の信号を出力することができる。この結果、遅延量が相対的に小さい遅延素子FD1-FDnと、遅延量が相対的に大きい遅延素子CD2-CDnを使用して、幅広い遅延量を調整可能な可変遅延回路VDLY1において、遅延量の調整精度を向上することができる。これら効果は、可変遅延回路VDLY2、VDLY3でも得ることができる。
【0061】
図5に示す例では、4つの遅延素子FD1-FD4と1つの遅延素子CD1とを使用して、ライトタイミング信号WDQS0を150ps遅延させる例を示している。第1モードでは、制御信号FS1のみを使用して可変遅延回路VDLY1の遅延量を調整するため、遅延量の変化量である粒度は、常に30psになる。この際、制御信号CS1[n:1]の論理を変更せず、論理1に設定する制御信号FS1を変更するだけでよい。
【0062】
これに対して、制御信号FS1、CS1の両方を使用して遅延量を30ps単位で調整する場合、例えば、遅延素子CD2の追加とともに3つの遅延素子FDを削除しなくてはならない。これにより、制御信号FS1、CS1を生成するための回路の論理が複雑になってしまう。換言すれば、本実施形態では、遅延ラインD1または遅延ラインD2を排他的に使用して遅延時間を調整することで、制御信号FS1、CS1を生成するための回路の論理を簡易にすることができる。
【0063】
図6は、図3の可変遅延回路VDLY1の動作の別の例を示す。図6においても、図5で説明したように、信号名を置き換えることで、可変遅延回路VDLY2、VDLY3の動作に置き換えることができる。
【0064】
図6は、遅延制御回路20が制御信号CSのみを変更して可変遅延回路VDLY1の遅延時間を調整する第2モードの動作を示す。第2モードは、フラッシュメモリ200の動作周波数が相対的に低いときに使用し、論理1のモード信号FCMODEで示す。
【0065】
図6では、遅延素子CD1、CD2が転送遅延素子として機能し、遅延素子FD3が折り返し遅延素子として機能し、遅延素子CD4が折り返し制御素子として機能する。なお、第2モードでは、遅延ラインD1の初段の遅延素子FD1が折り返し遅延素子として機能し、遅延時間が遅延素子CDの遅延時間より短い遅延素子FD2-FDnは使用しない。
【0066】
図6に示す例では、可変遅延回路VDLY1は、遅延素子FD1と遅延素子CD1-CD3とを使用して、ライトタイミング信号WDQS0を300ps遅延させた遅延ライトタイミング信号WDQSを出力する。第2モードでは、制御信号CS1のみを使用して可変遅延回路VDLY1の遅延量を調整するため、遅延量の変化量である粒度は、常に120psになる。この際、制御信号FS1[n:1]の論理を変更せず、論理1に設定する制御信号CS1を変更するだけでよい。このため、図5と同様に、制御信号FS1、CS1の両方を使用して遅延量を調整する場合に比べて、制御信号FS1、CS1を生成するための回路の論理を簡易にすることができる。
【0067】
図7は、図3の可変遅延回路VDLY1が出力する遅延ライトタイミング信号WDQSの波形を示す。なお、可変遅延回路VDLY2の動作は、制御信号FS1、CS1を制御信号FS2、CS2に置き換えることで表す。また、可変遅延回路VDLY2の動作は、ライトタイミング信号WDQS0と遅延ライトタイミング信号WDQSとを、それぞれデータストローブ信号DQSと遅延リードタイミング信号RDQSとに置き換えることで表す。
【0068】
また、可変遅延回路VDLY3の動作は、制御信号FS1、CS1を制御信号FS3、CS3に置き換えることで表す。また、可変遅延回路VDLY3の動作は、ライトタイミング信号WDQS0と遅延ライトタイミング信号WDQSとを、それぞれクロック信号MCLKと遅延クロック信号DMCLKとに置き換えることで表す。
【0069】
図5で説明したように、第1モードでは、論理1に設定する制御信号FS1のみを変更し、遅延量を30ps単位で変更する。つまり、最小の遅延量は60psである。一方、第2モードでは、論理1に設定する制御信号CS1のみを変更し、遅延量を120ps単位で変更する。
【0070】
なお、例えば、遅延量を180psにする場合、第1モード、第2モードのいずれでも設定可能である。しかしながら、第1モードでは、遅延時間が30psの6個の遅延素子FD1-FD5および遅延素子CD1を使用し、第2モードでは、遅延素子FD1および遅延素子CD1、CD2を使用する。
【0071】
使用する遅延素子の数が多いほど、各遅延素子の遅延時間の誤差を平均化することができるため、遅延時間の精度を向上することができる。例えば、フラッシュメモリ200の動作周波数が高いほど、データストローブ信号DQS等のスキュー(遷移エッジのずれ)の許容量は厳しくなる。このため、第1モードにおいて、遅延素子FD1-FDn、CD1のみを使用して信号を遅延させることで、遅延素子CD2-CDnを使用する場合に比べて、遅延時間の精度を向上することができる。なお、遅延素子の遅延時間の誤差は、半導体集積回路100の製造工程で発生するトランジスタサイズのばらつき等により発生する。
【0072】
図8は、図1の遅延制御回路20による可変遅延回路VDLY1の制御の説明を示す。可変遅延回路VDLY2、VDLY3の制御も図8と同様である。なお、上述したように、各遅延素子FD、CDの遅延時間は、半導体集積回路100を標準的な製造条件で製造した場合の標準値であり、標準値からの変動がないものとする。
【0073】
動作モードに示すMode9からMode0は、NAND型フラッシュメモリのインタフェース規格であるNV-DDR2/DDR3での動作モードを示す。例えば、Mode9は、フラッシュメモリ200の最大動作周波数が333MHzである。フラッシュメモリ200は、DDRで動作するため、Mode9での最大伝送レートは666Mbpsであり、データストローブ信号DQSのトグル時の1周期は約3003psである。この場合、遅延ラインD1の遅延素子FD1を100段使用する。
【0074】
Mode9およびMode8は、遅延ラインD1の遅延素子FD1による遅延時間の調整で対応可能であるため、第1モードで可変遅延回路VDLY1、VDLY2、VDLY3を動作させる。Mode7からMode2までは、遅延ラインD2の遅延素子による遅延時間の調整で対応可能であるため、第2モードで可変遅延回路VDLY1、VDLY2、VDLY3を動作させる。なお、半導体集積回路100は、Mode1およびMode0に対応していないが、256段の遅延素子CDを含む可変遅延回路VDLY1、VDLY2、VDLY3を半導体集積回路100に設けることで対応可能になる。
【0075】
図9は、図3の可変遅延回路VDLY1の動作のさらなる別の例を示す。図9に示すように、半導体集積回路100は、遅延制御回路20により制御信号FS1、CS1の両方を変更して可変遅延回路VDLY1の遅延時間を調整することが可能である。図9では、5つの遅延素子FD1-FD5と遅延素子CD1-CD3とを順次接続する例を示す。このときの可変遅延回路VDLY1の遅延時間は、例えば、420psである。なお、可変遅延回路VDLY2、VDLY3においても、制御信号FS、CSを両方変更して遅延時間を調整することが可能である。
【0076】
図10は、半導体集積回路100による可変遅延回路VDLY1、VDLY2、VDLY3の制御フローを示す。図10に示す制御フローは、ロジック回路により実現してもよく、半導体集積回路100に搭載するCPU等のプロセッサが実行するプログラムにより実現してもよい。
【0077】
まず、ステップS10において、半導体集積回路100は、モード信号FCMODEに基づいて、第1モードまたは第2モードのいずれで制御するかを判定する。第1モードで制御する場合、ステップS12において、半導体集積回路100は、遅延素子FD1-FDnを使用して可変遅延回路VDLY1、VDLY2、VDLY3を動作させることを決定する。次に、ステップS14において、半導体集積回路100は、DLL回路10の可変遅延回路VDLY3の遅延素子FD1-FDnを用いて、クロック信号MCLKの1周期に対応する遅延時間を、使用する遅延素子FD1-FDnの段数として求める。なお、遅延ラインD2の遅延素子CD1は、第1モードおよび第2モードのいずれにおいても使用できる。ここで、使用する遅延素子の段数は、制御信号FS3の論理レベルにより求める。
【0078】
一方、第2モードで制御する場合、ステップS16において、半導体集積回路100は、遅延素子CD2-CDnを使用して可変遅延回路VDLY1、VDLY2、VDLY3を動作させることを決定する。次に、ステップS18において、半導体集積回路100は、DLL回路10の可変遅延回路VDLY3の遅延素子CD2-CDnを用いて、クロック信号MCLKの1周期に対応する遅延時間を、使用する遅延素子CD2-CDnの段数として求める。なお、遅延ラインD1の遅延素子FD1は、第1モードおよび第2モードのいずれにおいても使用する。
【0079】
ステップS14またはステップS18の後、ステップS20において、遅延制御回路20は、図2で説明したように、データストローブ信号DQSの遷移エッジをライトデータの中央に設定するための可変遅延回路VDLY1の遅延素子の段数を求める。第1モードでは、遅延素子FDの使用段数を求め、第2モードでは、遅延素子CDの使用段数を求める。そして、遅延制御回路20は、可変遅延回路VDLY1を、求めた段数に対応する遅延時間に設定する制御信号FS1、CS1を可変遅延回路VDLY1に出力する。
【0080】
次に、ステップS22において、半導体集積回路100は、フラッシュメモリ200をリードアクセスし、リードデータのデータ幅(例えば、エッジ間隔)を求める。次に、ステップS24において、遅延制御回路20は、図2で説明したように、データストローブ信号DQSの遷移エッジをリードデータの中央に設定するための可変遅延回路VDLY2の遅延素子の段数を求める。第1モードでは、遅延素子FDの段数を求め、第2モードでは、遅延素子CDの段数を求める。そして、遅延制御回路20は、可変遅延回路VDLY2を、求めた段数に対応する遅延時間に設定する制御信号FS2、CS2を可変遅延回路VDLY2に出力する。
【0081】
例えば、ステップS10からステップS24までは、フラッシュメモリ200にアクセスするための制御信号のタイミングを補正するためのキャリブレーション期間に実施する。キャリブレーションは、システム300の電源の起動時に実施し、半導体集積回路100によりキャリブレーションの必要性を判断した場合にも実施する。なお、キャリブレーションは、電源起動後に所定の頻度で実施してもよい。
【0082】
ステップS26からステップS30までは、例えば、半導体集積回路100がフラッシュメモリ200にアクセス可能な通常動作期間に実施する。ステップS26において、遅延制御回路20は、可変遅延回路VDLY3において遅延時間の生成に使用する遅延素子の段数が所定の段数以上ずれたか否かを検出することで、クロック信号MCLKの周期が所定時間以上ずれたか否かを検出する。
【0083】
半導体集積回路100は、段数のずれを検出するステップS26を繰り返し実行する。遅延制御回路20は、第1モードでは、制御信号FS3の論理の変化により段数のずれを検出し、第2モードでは、制御信号CS3の論理の変化により段数のずれを検出する。例えば、クロック信号MCLKの周期のずれは、半導体集積回路100の温度の変化または電源電圧の変化により発生する。
【0084】
遅延素子の段数が所定の段数以上ずれた場合、ステップS28において、半導体集積回路100は、キャリブレーションを実施するか否かを判定し、キャリブレーションを実施する場合、動作をステップS10に移行する。例えば、遅延制御回路20は、遅延素子の段数が急激に変化した場合、半導体集積回路100の図示しない制御部に通知する。通知を受けた制御部は、半導体集積回路100の温度または電圧が急激に変化したと判断し、キャリブレーションの実施を決定する。
【0085】
キャリブレーションを実施しない場合、ステップS30において、遅延制御回路20は、可変遅延回路VDLY3の遅延素子の段数のずれ量に合わせて、可変遅延回路VDLY1、VDLY2の遅延素子の段数を変更する。例えば、遅延制御回路20は、制御信号FS3、CS3の論理の変化に対応して、制御信号FS1、CS1、FS2、CS2の論理を変更する。これにより、可変遅延回路VDLY1、VDLY2、VDLY3の遅延時間を、互いに同じに設定する。
【0086】
例えば、可変遅延回路VDLY1-VDLY3を常に同じ動作モードで動作する。このため、論理1の制御信号FS3がFS3[3]、FS3[4]からFS3[4]、FS3[5]に変わった場合、遅延制御回路20は、制御信号FS1[4]、FS1[5]を論理1に設定し、制御信号FS2[4]、FS2[5]を論理1に設定する。このように、遅延制御回路20は、可変遅延回路VDLY3の遅延時間の変化に追従して、簡易な制御により、可変遅延回路VDLY1、VDLY2の遅延時間を変化させることができる。遅延制御回路20は、ステップS30の後、動作をステップS26に戻す。
【0087】
以上、第1の実施形態では、遅延量が大きい遅延素子CD2-CDnを有する遅延ラインD2の初段に遅延量が小さい遅延素子CD1を配置する。これにより、遅延量が小さい遅延素子FD1-FDnと、遅延量が大きい遅延素子CD2-CDnを使用して信号を遅延させる場合、最小の遅延時間を遅延素子CD2の遅延時間以下にすることができる。これにより、可変遅延回路VDLY1-VDLY3は、フラッシュメモリ200の動作周波数が高い場合にも、所望の遅延量の信号を出力することができる。この結果、遅延量が小さい遅延素子FD1-FDnと、遅延量が大きい遅延素子CD2-CDnを使用して、幅広い遅延量を調整可能な可変遅延回路VDLY1-VDLY3において、遅延量の調整精度を向上することができる。
【0088】
フラッシュメモリ200の動作周波数が高い第1モードにおいて、遅延素子FD1-FDn、CD1のみを使用して信号を遅延させることで、遅延素子CD2-CDnを使用する場合に比べて、使用する遅延素子の数を増やすことができる。この結果、可変遅延回路VDLY1-VDLY3による遅延時間の精度を向上することができる。
【0089】
動作モードに応じて、可変遅延回路VDLY1-VDLY3の遅延ラインD1または遅延ラインD2を排他的に使用して遅延時間を調整することで、制御信号FS1、CS1を生成するための回路の論理を簡易にすることができる。可変遅延回路VDLY1-VDLY3を常に同じ動作モードで動作させるため、可変遅延回路VDLY3の遅延時間を調整する制御信号FS3、CS3を利用して、簡易な制御で可変遅延回路VDLY1、VDLY2の遅延時間を調整することができる。
【0090】
各遅延素子CD2-CDnの遅延時間を、遅延素子FD1の整数倍に設定することで、信号を遅延するために使用する遅延素子(FDまたはCD)によらず、遅延時間を容易に計算することができ、使用する遅延素子の数を容易に計算することができる。
【0091】
遅延ラインD1において、直列に接続する偶数個のナンドゲートを介して信号を遅延することで、入力信号と出力信号(遅延した信号)とでデューティ比が変わることを防止できる。遅延ラインD2においても直列に接続する偶数個のナンドゲートと偶数個のインバータディレイID1、ID2を介して信号を遅延することで、入力信号と出力信号(遅延した信号)とでデューティ比が変わることを防止することができる。また、使用する遅延素子FD、CDの段数によらず、デューティ比を一定にすることができる。
【0092】
遅延素子FDに断続可能な容量素子を配置しないため、遅延素子FDにおいて容量値により変化する遅延時間の微調整(トリミング等)は不要である。このため、微調整用の回路の付加が不要になり、遅延素子FDの回路規模の増加を抑制できる。また、遅延ラインD1の出力に接続する負荷に合わせて遅延素子FDの容量素子の容量値を調整しなくてよいため、設計工数を削減することができる。
【0093】
図11は、第2の実施形態の可変遅延回路の回路構成を示す。図3と同様の要素については同じ符号を付し、詳細な説明を省略する。図11は、図1に示した可変遅延回路VDLY1に適用する例を示すが、図1に示した可変遅延回路VDLY2、VDLY3にも適用できる。半導体集積回路100において、可変遅延回路VDLY1-VDLY3を除く構成は、図1と同様である。なお、遅延ラインD1は、遅延ラインD2の前ではなく、遅延ラインD2の後に接続してもよい。
【0094】
図11に示す可変遅延回路VDLY1は、遅延ラインD1および遅延ラインD2を有する。遅延ラインD1の回路構成は、図3と同様である。遅延ラインD2の遅延素子CD2は、遅延素子CD1と同じ回路構成を有する。すなわち、遅延ラインD2の初段側には、遅延素子FD1と同じ遅延時間を有する2つの遅延素子CD1、CD2を直列に接続している。図11に示す遅延素子CD2は、第2遅延素子の一例である。可変遅延回路VDLY1のその他の構成は、図3に示した可変遅延回路VDLY1と同様である。
【0095】
この実施形態においても、第1の実施形態と同様の効果を得ることができる。例えば、遅延ラインD2の初段側に、遅延素子"CDLY"より遅延量が小さい遅延素子CD1、CD2を配置することで、可変遅延回路VDLY1-VDLY3の最小の遅延量を、遅延素子"CDLY"の遅延時間以下にすることができる。これにより、フラッシュメモリ200の動作周波数が高い場合にも、所望の遅延量の信号を出力することができ、幅広い遅延量を調整可能な可変遅延回路VDLY1-VDLY3において、遅延量の調整精度を向上することができる。
【0096】
さらに、この実施形態では、図7で説明したように、遅延時間が相対的に短い遅延素子"FDLY"の数を増やすことで、遅延素子"FDLY"の使用数を増やすことができ、遅延時間の精度を向上することができる。
【0097】
図12は、第3の実施形態の可変遅延回路の回路構成を示す。図3と同様の要素については同じ符号を付し、詳細な説明を省略する。図12は、図1に示した可変遅延回路VDLY1に適用する例を示すが、図1に示した可変遅延回路VDLY2、VDLY3にも適用できる。半導体集積回路100において、可変遅延回路VDLY1-VDLY3を除く構成は、図1と同様である。
【0098】
図12に示す可変遅延回路VDLY1は、2つの遅延ラインD01、D11と遅延ラインD2とを有する。そして、遅延ラインD01、D11と遅延ラインD2とを、この順で接続している。遅延ラインD01、D11は、それぞれ図3に示した遅延ラインD1と同じ回路構成である。
【0099】
遅延ラインD01は、制御信号FS01[n:1]により制御し、ライトタイミング信号WDQS0を所定時間遅延させ、遅延信号WDQS1として出力する。遅延ラインD11は、制御信号FS11[n:1]により制御し、遅延信号WDQS1を所定時間遅延させ、遅延信号WDQS2として出力する。遅延ラインD2は、制御信号CS1[n:1]により制御し、遅延信号WDQS2を所定時間遅延させ、遅延ライトタイミング信号WDQSとして出力する。
【0100】
図1の遅延制御回路20は、図3の制御信号FS1[n:1]を出力する代わりに、制御信号FS01[n:1]、FS11[n:1]を出力する。また、遅延制御回路20は、可変遅延回路VDLY2に対して、制御信号FS2[n:1]を出力する代わりに、図示しない制御信号FS02[n:1]、FS12[n:1]を出力する。制御信号FS02[n:1]、FS12[n:1]は、可変遅延回路VDLY2に設けた遅延ラインD01、D11の遅延時間の調整に使用する。
【0101】
また、図1の可変遅延回路VDLY3は、制御信号FS3[n:1]の代わりに、図示しない制御信号FS03[n:1]、FS13[n:1]を使用して、可変遅延回路VDLY3に設けた遅延ラインD01、D11の遅延時間を調整する。図1のDLL回路10は、遅延制御回路20に制御信号FS03[n:1]、FS13[n:1]を出力する。
【0102】
なお、遅延ラインD01、D11と遅延ラインD2の接続の順序は、図12に限定されない。例えば、遅延ラインD2、遅延ラインD01、D11の順で接続してもよく、遅延ラインD01、遅延ラインD2、遅延ラインD11の順で接続してもよい。また、可変遅延回路VDLY1は、2以上の遅延ラインD11を有してもよい。この場合にも、各遅延ラインD01、D11、D2の初段の遅延素子DF01、FD11、CD1を直列に接続する。
【0103】
この実施形態においても、第1の実施形態と同様の効果を得ることができる。例えば、遅延ラインD11、D2の初段側に、遅延素子"CDLY"より遅延量が小さい遅延素子FD11、CD1("FDLY")を配置することで、可変遅延回路VDLY1-VDLY3の最小の遅延量を、遅延素子"CDLY"の遅延量以下にすることができる。これにより、フラッシュメモリ200の動作周波数が高い場合にも、所望の遅延量の信号を出力することができ、幅広い遅延量を調整可能な可変遅延回路VDLY1-VDLY3において、遅延量の調整精度を向上することができる。
【0104】
さらに、この実施形態では、2つの遅延ラインD01、D11を設けることで、遅延時間が相対的に短い遅延素子FD1(FD01、FD11等)の数を増やすことで、遅延素子FD1で調整可能な遅延時間の範囲を広げることができる。例えば、可変遅延回路VDLY1、VDLY2、VDLY3の遅延ラインD01、D11の各々に128段の遅延素子FDを設けることで、遅延素子CD1を含めて257段の遅延素子"FDLY"を使用することができる。これにより、第1モードで対応可能なフラッシュメモリ200の動作モードの範囲を広げることができる。
【0105】
257段の遅延素子FDおよび遅延素子CD1による最大の遅延時間は、1素子の遅延時間を30psとする場合、7710psである。この場合、図8に示したMode9からMode5まで、第1モードで可変遅延回路VDLY1、VDLY2、VDLY3を動作させることができる。これにより、図8に示した第1モードと第2モードの振り分けに比べて、遅延時間の精度を向上することができる。この結果、例えば、フラッシュメモリ200のデータストローブ信号DQSの遷移エッジとデータ信号DQとの位置関係の精度を向上することができ、フラッシュメモリ200の動作マージンを向上することができる。
【0106】
図13は、第4の実施形態の可変遅延回路の回路構成を示す。図3および図12と同様の要素については同じ符号を付し、詳細な説明を省略する。図13は、図1に示した可変遅延回路VDLY1に適用する例を示すが、図1に示した可変遅延回路VDLY2、VDLY3にも適用できる。半導体集積回路100において、可変遅延回路VDLY1-VDLY3を除く構成は、図1と同様である。
【0107】
図13に示す可変遅延回路VDLY1は、遅延ラインD1と遅延ラインD2との間に遅延ラインD3を接続する。遅延ラインD3は、第3遅延回路の一例である。遅延ラインD1および遅延ラインD2の回路構成は、図3と同様である。遅延ラインD3は、n個の遅延素子MD(MD1-MDn)を有する。遅延素子MD1は、遅延素子FD1と同じ回路構成("FDLY")である。遅延素子MD2-MDnの各々の遅延時間は、遅延素子FD1の遅延時間より長く、遅延素子CD2の遅延時間より短い。遅延素子MD1は、第4遅延素子の一例であり、遅延素子MD2-MDnは、第5遅延素子の一例である。
【0108】
このため、遅延素子MD2-MDnの各々は、遅延素子CD2のインバータディレイID1、ID2の代わりに、インバータディレイID1、ID2より遅延時間が短いインバータディレイIDM1、IDM2を有している。遅延素子MD2-MDnの各々の構成は、インバータディレイID1、ID2の代わりにインバータディレイIDM1、IDM2を有することを除き、遅延素子CD2と同様である。遅延素子MD2-MDnの遅延時間は互いに同じであるため、図中では符号"MDLY"(Middle Delay)を付している。遅延素子MD2-MDnの遅延時間は、第3遅延時間の一例である。
【0109】
遅延ラインD1は、ライトタイミング信号WDQS0を所定時間遅延させ、遅延信号WDQS1として出力する。遅延ラインD3は、制御信号MS1[n:1]により制御し、遅延信号WDQS1を所定時間遅延させ、遅延信号WDQS2として出力する。遅延ラインD2は、遅延信号WDQS2を所定時間遅延させ、遅延ライトタイミング信号WDQSとして出力する。制御信号MS1[n:1]は、第3制御信号の一例である。
【0110】
図1の遅延制御回路20は、図1で説明した機能に加えて、制御信号MS1[n:1]を出力する機能を有している。また、遅延制御回路20は、可変遅延回路VDLY2に対して、制御信号MS2[n:1]を出力する機能を有している。制御信号MS2[n:1]は、可変遅延回路VDLY2に設けた遅延ラインD3の遅延時間の調整に使用する。
【0111】
また、図1の可変遅延回路VDLY3は、図1で説明した機能に加えて、制御信号MS3[n:1]を使用して可変遅延回路VDLY3に設けた遅延ラインD3の遅延時間を調整する機能を有している。図1のDLL回路10は、遅延制御回路20に制御信号MS3[n:1]を出力する。
【0112】
なお、遅延ラインD1、遅延ラインD3および遅延ラインD2の接続の順序は、図13に限定されない。例えば、遅延ラインD1、遅延ラインD2、遅延ラインD3の順で接続してもよく、遅延ラインD3、遅延ラインD1、遅延ラインD2の順で接続してもよい。
【0113】
この実施形態においても、第1の実施形態と同様の効果を得ることができる。例えば、遅延ラインD3、D2の初段側に、遅延素子"CDLY"より遅延量が小さい遅延素子MD1、CD1("FDLY")を配置することで、可変遅延回路VDLY1-VDLY3の最小の遅延量を、遅延素子"CDLY"の遅延量以下にすることができる。これにより、フラッシュメモリ200の動作周波数が高い場合にも、所望の遅延量の信号を出力することができ、幅広い遅延量を調整可能な可変遅延回路VDLY1-VDLY3において、遅延量の調整精度を向上することができる。
【0114】
さらに、この実施形態では、各可変遅延回路VDLY1、VDLY2、VDLY3は、それぞれ3種類の遅延時間の遅延素子"FDLY"、"MDLY"、"CDLY"を任意の数使用できるため、遅延時間をより細かく調整することができる。なお、各可変遅延回路VDLY1、VDLY2、VDLY3は、2段目以降の遅延素子の遅延時間が互いに異なる4つ以上の遅延回路を有してもよい。この場合にも、各遅延回路の初段の遅延素子を直列に接続する。
【0115】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0116】
10 DLL回路
12 位相比較部
14 クロック遅延調整部
20 遅延制御回路
30 ライトデータ制御部
40 リードデータ制御部
50 ライトタイミング制御部
60 リードタイミング制御部
70 バッファ部
100 半導体集積回路
110 CPU
120 メモリコントローラ
130 物理インタフェース部
200 フラッシュメモリ
300 システム
CD1-CDn 遅延素子
CS1、CS2、CS3 制御信号
D1、D2、D3 遅延ライン
DQ データ信号
DQS データストローブ信号
FCMODE モード信号
FD1-FDn 遅延素子
FS1、FS2、FS3 制御信号
MCLK クロック信号
MD1-MDn 遅延素子
MS1 制御信号
VDLY1、VDLY2、VDLY3 可変遅延回路
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13