以下、本発明の実施形態について図面を用いて詳細に説明する。
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.回路構成
図1に示すように本実施形態の集積回路装置(データ転送制御装置)は、マクロセルMC1(第1のマクロセル)とマクロセルMC2(第2のマクロセル)を含む。なお、これらのマクロセルMC1、MC2(メガセル、マクロブロック)は、論理機能を有する中規模又は大規模な回路の単位である。また、本実施形態の集積回路装置は3個以上のマクロセルを含むようにしてもよい。
図1においてMC1は、バス(例えばシリアルバス)を介してデータ転送を行うインターフェース規格(例えばUSB又はIEEE1394等)の物理層の回路を少なくとも含むマクロセルである。USB2.0(或いはUSB2.0を発展させた規格)を例にとれば、MC1として、UTMI(USB2.0 Transceiver Macrocell Interface)の仕様に準拠したトランシーバマクロセルを用いることができる。この場合には、MC1は、物理層回路、及び論理層回路の一部を含むことになる。
一方、MC2は、物理層よりも上位層(論理層、プロトコル層又はアプリケーション層等)の回路を含むマクロセルである。USB2.0を例にとれば、MC2は、SIE(Serial Interface Engine)やユーザロジック(デバイス固有の回路)などの論理層回路(MC1が含む論理層回路の他の部分)を含むことになる。
なお、図1において、MC1として、物理層の回路のみを含むマクロセルを用いてもよい。また、MC2は、少なくとも物理層よりも上位の層の回路を含むものであればよい。
図2に、マクロセルMC1の回路構成の一例を示す。
マクロセルMC1(第1のマクロセル)は、データハンドラ回路10、クロック制御回路12、クロック生成回路14、HS(High Speed)回路20、FS(Full Speed)回路30を含む。これらの回路は論理層回路である。また、MC1は、物理層回路であるアナログフロントエンド回路40(送受信回路)を含む。なお、マクロセルMC1は、図2に示す回路ブロックの全てを含む必要はなく、それらの一部を省略する構成としてもよい。
データハンドラ回路10(広義には、データ転送を行うための所与の回路)は、USB2.0に準拠したデータ転送のための種々の処理を行う。より具体的には、送信時には、送信データにSYNC(SYNChronization)、SOP(Start Of Packet)、EOP(End Of Packet)を付加する処理や、ビットスタッフィング処理等を行う。一方、受信時には、受信データのSYNC、SOP、EOPを検出し、削除する処理や、ビットアンスタッフィング処理などを行う。更に、データハンドラ回路10は、データの送受信を制御するための各種のタイミング信号を生成する処理も行う。
なお、受信データはデータハンドラ回路10から後段の回路であるSIE(Serial Interface Engine)に出力され、送信データはSIEからデータハンドラ回路10に入力されることになる。そして、このSIEは、USBパケットIDやアドレスを識別するためのSIE制御ロジックと、エンドポイント番号の識別やFIFO制御などのエンドポイント処理を行うためのエンドポイントロジックとを含む。
クロック制御回路12は、SIEからの各種の制御信号を受け、クロック生成回路14を制御する処理などを行う。
クロック生成回路14は、装置内部で使用する480MHzのクロックや、装置内部及びSIEで使用する60MHzのクロックを生成する回路であり、OSC、PLL480M、PLL60Mを含む。
ここでOSC(発振回路)は、例えば外部振動子との組み合わせによりベースクロックを生成する。
PLL480Mは、OSC(発振回路)で生成されたベースクロックに基づいて、HS(High Speed)モードで必要な480MHzのクロックと、FS(Full
Speed)モード、装置内部及びSIEで必要な60MHzのクロックを生成するPLL(Phase Locked Loop)である。
PLL60Mは、OSC(発振回路)で生成されたベースクロックに基づいて、FSモード、装置内部及びSIEで必要な60MHzのクロックを生成する。
HS回路20は、データ転送速度が480MbpsとなるHSモードでのデータの送受信を行うためのロジック回路であり、FS回路30は、データ転送速度が12MbpsとなるFSモードでのデータの送受信を行うためのロジック回路である。
HS回路20は、サンプリングクロック生成回路22(HSDLL。High Speed Delay Line PLL)、エラスティシティバッファ(elasticity buffer)24を含む。
ここで、サンプリングクロック生成回路22は、クロック生成回路14によって生成されたクロックと、受信データとに基づいて、受信データのサンプリングクロックを生成する。
また、エラスティシティバッファ24は、装置内部と、外部装置(バスに接続される外部装置)とのクロック周波数差(クロックドリフト)等を吸収するための回路である。
アナログフロントエンド回路40(送受信回路)は、FSやHSモードでの送受信を行うためのドライバやレシーバを含むアナログ回路である。USBでは、データ端子DP(Data+)及びDM(Data−)を用いた差動信号によりデータを送受信する。
USB2.0では、HSモード(広義には、第1のモード)とFSモード(広義には、第2のモード)が、転送モードとして定義されている。HSモードは、USB2.0により新たに定義された転送モードである。FSモードは、従来のUSB1.1で既に定義されている転送モードである。
このため、本実施形態の集積回路装置では、アナログフロントエンド回路40が、HSモードでの送受信を行うためのHSモード用ドライバ及びレシーバと、FSモードで送受信を行うためのFSモード用ドライバ及びレシーバを含む。
より具体的には、アナログフロントエンド回路40は、FSドライバ42、FS差動レシーバ44、シングルエンド(Single ended)DPレシーバ46、シングルエンドDMレシーバ48、HS電流ドライバ50(送信回路)、低速用スケルチ(Squelch)回路52(検出回路)、高速用スケルチ回路54(検出回路)、HS差動レシーバ56(受信回路)を含む。
FSドライバ42は、FSモードにおいて、FS回路30からのFS_DPout及びFS_DMoutからなる差動信号を、データ端子DP、DMを用いて差動出力する。このFSドライバ42は、FS回路30からのFS_OutDisにより出力制御される。
FS差動レシーバ44は、FSモードにおいて、DP、DMを介して入力される差動信号を増幅し、FS_DataInとしてFS回路30に対して出力する。このFS差動レシーバ44は、FS_CompEnbにより増幅制御される。
シングルエンドDPレシーバ46は、FSモードにおいて、DPを介して入力されるシングルエンドの信号を増幅し、SE_DPinとしてFS回路30に対して出力する。
シングルエンドDMレシーバ48は、FSモードにおいて、DMを介して入力されるシングルエンドの信号を増幅し、SE_DMinとしてFS回路30に対して出力する。
HS電流ドライバ50(送信回路)は、HSモードにおいて、HS回路20からのHS_DPout及びHS_DMoutからなる差動の入力信号を増幅し、DP、DMを介して出力する。即ち、HS電流ドライバ50は、DP又はDMの信号ラインを一定の電流値でドライブすることにより、J(DPが400mV、DMが0V)或いはK(DPが0V、DMが400mV)の状態を生成する。このHS電流ドライバ50は、HS回路20からのHS_OutDisにより出力制御されると共に、HS_CurrentSourceEnbにより駆動電流の制御が行われる。
低速用スケルチ回路52(検出回路。低速用トランスミッション・エンベロープ・ディテクタ)は、FSモードにおいて、DP、DMを介して入力される差動信号(データの有無)を検出し、HS_SQ_Lとして出力する。即ち、データとノイズを区別して検出する。この低速用スケルチ回路52は、HS_SQ_L_Enbにより動作制御され、HS_SQ_L_Pwrにより省電力制御される。
高速用スケルチ回路54(検出回路。高速用トランスミッション・エンベロープ・ディテクタ)は、HSモードにおいて、DP、DMを介して入力される差動信号(データの有無)を検出し、HS_SQとしてHS回路20に対して出力する。即ち、データとノイズを区別して検出する。この高速用HS_SQ回路54は、HS回路20からのHS_SQ_Enbにより動作制御され、HS_SQ_Pwrにより省電力制御される。
HS差動レシーバ56(受信回路)は、HSモードにおいて、DP、DMを介して入力される差動信号を増幅し、HS_DataIn、HS_DataIn_Lを出力する。即ち、HSモードにおいて、DP、DMのラインがJ或いはKのいずれの状態なのかを検出する。このHS差動レシーバ56は、HS_RxEnbにより増幅制御される。
差動のデータ端子のうちのDPは、スイッチ素子(トランジスタ)SW1及びプルアップ抵抗Rpuを介して、高電位側の電源電圧(例えば3.3V)と接続される。また、差動のデータ端子のうちのDMは、スイッチ素子SW2に接続される。これらのSW1、SW2は、RpuEnbにより制御される。即ち、RpuEnbをアクティブにして、SW1及びRpuを介してDPをプルアップすることで、HSデバイスをFSデバイスとして使用できるようになる。
なお本実施形態では、DP、DM間での負荷バランスを保つために、DMについても、SW2を介してダミーの抵抗Rpu’が接続されている。
2.マクロセルの配置
本実施形態では図3(A)に示すように、マクロセルMC1(第1のマクロセル。トランシーバマクロ)の辺SD1、SD2(第1、第2の辺)の交差部分であるコーナ部分CNが、集積回路装置ICD(半導体チップ)のコーナ部分に一致(ほぼ一致する場合も含む)するように、MC1を配置している。そして、マクロセルMC1の配置領域以外の領域に、マクロセルMC2(第2のマクロセル。SIE、ユーザロジックのマクロセル)を配置している。
ここで、図3(A)において、MC1は、配線及び回路セル配置が固定化されるハードマクロになっている。より具体的には、例えば、配線や回路セル配置が手作業のレイアウトにより行われる(配線、配置の一部を自動化してもよい)。
一方、MC2は、配線及び回路セル配置が自動配置配線されるソフトマクロになっている。より具体的には、例えば、ゲートアレイの自動配置配線ツールにより基本セル間の配線等が自動的に行われる(配置、配線の一部を固定化してもよい)。
マクロセルMC1は、図2に示すように、微少信号で高速に動作することが要求されるアナログフロントエンド回路40や、480MHzで動作することが要求されるHS回路20や、480MHzのクロックを生成することが要求されるクロック生成回路14などを含む。従って、マクロセルMC1のこれらの回路の配置、配線を、ゲートアレイなどで用いられている自動配置配線ツールで行うと、マクロセルMC1の高性能を維持できない。従って、マクロセルMC1での回路セルの配置、配線は、手作業のレイアウトで行うことが望ましい。
一方、マクロセルMC2は、物理層回路(アナログフロントエンド回路)を含まず、マクロセルMC1ほどには高速な動作が要求されない。そして、マクロセルMC2の回路構成は、集積回路装置を使用するユーザの要望や集積回路装置が組み込まれる電子機器の用途に応じて多様に変化する。従って、マクロセルMC2での回路セルの配置、配線は、自動配置配線ツールにより行うことが望ましい。
そこで本実施形態では、図3(A)に示すように、マクロセルMC1のコーナ部分CNが、集積回路装置ICDのコーナ部分に位置するように、MC1を配置している。このようにすれば、例えば、マクロセルMC2の回路の構成や規模が変化した場合にも、これに容易に対処できるようになる。
例えば、マクロセルMC2の回路が小規模の場合には、MC1、MC2を図3(B)に示すように配置すればよく、MC2の回路が大規模の場合には、MC1、MC2を図3(C)に示すように配置すればよい。
そして、この場合に本実施形態では、集積回路装置ICDのコーナにマクロセルMC1が配置されているため、マクロセルMC2の回路構成や規模がユーザの要望に応じて変化しても、マクロセルMC1のコア内での回路セルの配置、配線やI/O領域での端子(パッド)の配置をほぼ固定化できる。従って、多様なユーザの要望に応えながらも、マクロセルMC1の高性能を維持できる。
また本実施形態では、集積回路装置ICDのコーナにマクロセルMC1を固定配置しているため、図3(B)、(C)に示すように、マクロセルMC1、MC2間でデータをやり取りするためのインターフェース領域IFR(信号をバッファリングするためのバッファが配置される領域)についても、辺SD1に対向する辺SD3(或いは辺SD2に対向する辺SD4)の場所に固定配置できるようになる。ここで、インターフェース領域IFRとは、マクロセルMC1からの信号をバッファリングしてマクロセルMC2に出力するバッファや、MC2からの信号をバッファリングしてMC1に入力するバッファなどを含む領域である。
このようにインターフェース領域IFRを固定配置することで、マクロセルMC1、MC2間でやり取りされる信号の遅延や受け渡しタイミングを許容範囲内に収めることが、容易になり、マクロセルMC2の回路構成や規模が変化した場合にも、安定した回路動作を保証できるようになる。
即ち、インターフェース領域IFRの場所が固定化されていれば、マクロセルMC1、MC2間の信号線の寄生容量を容易に見積もることが可能になる。従って、これらの信号線の寄生容量が許容範囲内に収まるように設定して、ソフトマクロであるマクロセルMC2の自動配置配線を行うことが可能になり、信号タイミングの設計を容易化できる。
なお、信号タイミングの設計を更に容易化するために、マクロセルMC2側のインターフェース領域(バッファ領域)についても、マクロセルMC1側のインターフェース領域IFRに隣接した領域(辺SD3に沿った領域)に固定配置することが望ましい。
また本実施形態では、図3(D)に示すようにマクロセルMC1、MC2を配置してもよい。即ち、図3(A)、(B)、(C)ではマクロセルMC1の辺SD4(第4の辺)の右側(第2の方向側)にマクロセルMC2の領域が存在するが、図3(D)では存在しない。即ち、マクロセルMC2の辺SD4’(第4の辺)の位置に、マクロセルMC1の辺SD4(第4の辺)が位置している。図3(D)の配置は、マクロセルMC1の回路規模が小さい場合や端子数が少ない場合に、有効である。
3.データ端子、電源端子、クロック端子の配置
本実施形態では図4に示すように、マクロセルMC1の辺SD1(第1の辺)に沿ったI/O領域IOR1(第1のI/O領域)に、データ端子DP、DM(パッド)を配置し、辺SD2(第2の辺)に沿ったI/O領域IOR2に、電源端子VDD、VSSやクロック端子XI、XOを配置している。
ここで、DP、DMはUSBのバスに接続されるデータ端子である。USBでは、これらの差動のデータ端子DP、DMを用いてデータの送受信が行われる。
また、VDD、VSS(PVDD、PVSS、XVDD、XVSS)は、DP、DMを介したデータ転送のためのクロックを生成する回路(例えば図2のクロック生成回路14又はサンプリングクロック生成回路22等)の電源端子であり、XI、XOはクロック端子である。例えば、図2のクロック生成回路14やサンプリングクロック生成回路22は、これらの電源端子VDD、VSSから供給される電源により動作する。また、XI、XOは、各々、図2の発振回路OSCの入力端子、出力端子である。なお、外部クロックをXIを介して入力するようにしてもよい。
このように、DP、DMを辺SD1に沿ったIOR1に配置し、VDD、VSS、XI、XOを辺SD2に沿ったIOR2に配置すれば、方向DR1(辺SD1から対向する辺SD3へと向かう第1の方向)に沿って流れるデータを、方向DR2(辺SD2から対向する辺SD4へと向かう第2の方向)に沿って入力されるクロックを利用してサンプリングすることが可能となる。そして、サンプリングされたデータを、辺SD3に沿った領域であるインターフェース領域IFRを介してマクロセルMC2に出力できる。これにより、無駄の無い合理的なデータ転送を実現できる。
特に、USB2.0のHSモードでのサンプリングクロックの周波数は480MHzであり、非常に高速である。従って、クロックスキュー等を引き起こさないためには、DP、DMを介して受信されたデータをなるべく早い段階でサンプリングすることが望ましい。
本実施形態では図4に示すように、集積回路装置ICDのコーナにマクロセルMC1を配置し、辺SD1に沿ったIOR1にDP、DMを配置し、辺SD2に沿ったIOR2にサンプリングクロック生成のためのVDD、VSS、XI、XOを配置している。従って、データがサンプリングされる場所までの距離である図4のL1、L2を短くすることが可能になり、DP、DMを介して入力されたデータを早い段階でサンプリングできるようになる。これにより、USB2.0のHSモードのように周波数の速い転送モードにおいても、受信エラーの発生を効果的に防止できる。
なお、インターフェース領域IFRは、辺SD4に沿った方向に配置してもよいが、データの流れる方向がDR1であることを考慮すると、辺SD3に沿った方向にIFRを配置することが望ましい。
4.クロック生成回路等の配置
本実施形態では図5に示すように、I/O領域IOR1のDR1側(辺SD1からSD3へと向かう第1の方向側)に、受信回路100(図2のHS差動レシーバ56)を配置している。
また、I/O領域IOR2のDR2側(辺SD2から対向する辺SD4に向かう第2の方向側)に、図2のクロック生成回路14を配置している。
そして、受信回路100のDR1側(上側)であり、クロック生成回路14のDR2側(右側)に、サンプリングクロック生成回路22を配置している。
図5に示すような配置にすれば、受信回路100とサンプリングクロック生成回路22の間の距離を短くできる。従って、受信回路100とサンプリングクロック生成回路22を結ぶ配線の長さを短くでき、DP、DMを介して受信回路100により受信されるデータの配線に不要な容量が寄生するのを防止できる。この結果、データの立ち上がり・立ち下がり波形になまりが生るのを防止できると共に、受信回路100からのデータを少ない信号遅延でサンプリングクロック生成回路22に伝えることが可能になる。
また図5に示すような配置にすれば、クロック生成回路14とサンプリングクロック生成回路22の間の距離も短くできる。従って、クロック生成回路14とサンプリングクロック生成回路22を結ぶ配線の長さを短くでき、クロック生成回路14で生成された高周波数(480MHz)のクロック(周波数が同一で位相が異なる多相の第1〜第Nのクロック)の配線に不要な容量が寄生するのを防止できる。この結果、クロック信号の立ち上がり・立ち下がり波形になまりが生じたり、多相のクロック間に信号遅延差が生じたりするなどの事態を防止できる。
そして、このように受信回路100とサンプリングクロック生成回路22の間の距離やクロック生成回路14とサンプリングクロック生成回路22の間の距離を短くすることで、USB2.0のHSモードで要求されるような高周波数のサンプリングクロックを生成する回路を、最新の半導体プロセスを用いなくても、実現することが可能になる。
図6に、本実施形態のサンプリングクロック生成回路22(HSDLL回)の構成例を示す。
クロック生成回路14が含むPLL480Mは、周波数が同一で位相が互いに異なるクロックCLK0、CLK1、CLK2、CLK3、CLK4(広義には第1〜第Nのクロック)を出力する。より具体的には、PLL480MのVCO(発振周波数が可変に制御される発振手段)が含む5個の差動出力コンパレータ(広義には奇数段の第1〜第Nの反転回路)の出力が、クロックCLK0〜4として用いられることになる。
サンプリングクロック生成回路22はエッジ検出回路70、クロック選択回路72を含む。そして、このエッジ検出回路70は、受信回路100(図2のHS差動レシーバ56)から入力されるデータのエッジを検出し、そのエッジ検出情報をクロック選択回路72に出力する。
より具体的には、PLL480MからのCLK0〜4のエッジ(立ち上がり又は立ち下がりエッジ)の中のいずれのエッジ間にデータHS_DataInのエッジがあるかを検出し、そのエッジ検出情報をクロック選択回路72に出力する。
すると、クロック選択回路72は、このエッジ検出情報に基づいて、クロックCLK0〜4の中からいずれかのクロックを選択し、選択したクロックをサンプリングクロックSCLKとして後段のエラスティシティバッファ24に出力する。
図7(A)、(B)にサンプリングクロック生成回路22の動作を説明するためのタイミング波形図を示す。
図7(A)、(B)に示すように、CLK0〜4は周波数が同一の480MHzとなるクロックである。また、クロックの周期をTとした場合に、各クロック間の位相がT/5(広義にはT/N)だけシフトしている。
そして図7(A)では、サンプリング対象となるHS_DataIn(受信データ)のエッジEDが、クロックCLK0とCLK1の間にあることが図6のエッジ検出回路70により検出される。すると、HS_DataInのエッジEDから例えば3個(広義には設定数M個)だけずれたエッジEC3を有するクロックCLK3が図6のクロック選択回路72により選択され、この選択されたCLK3が、HS_DataInのサンプリングクロックSCLKとして後段の回路(エラスティシティバッファ24)に出力される。
一方、図7(B)では、HS_DataInのエッジEDが、CLK2とCLK3の間にあることがエッジ検出回路70により検出される。すると、HS_DataInのエッジEDから例えば3個(広義には設定数M個)だけずれたエッジEC0を有するクロックCLK0がクロック選択回路72により選択され、この選択されたCLK0が、HS_DataInのサンプリングクロックSCLKとして後段の回路(エラスティシティバッファ24)に出力される。
このように本実施形態のサンプリングクロック生成回路22によれば、HS_DataInのエッジEDを検出し、得られたエッジ検出情報に基づいてCLK0〜CLK4からクロックを選択するという簡素な構成で、HS_DataInのサンプリングクロックSCLKを生成できる。従って、USB2.0のHSモードのように、HS_DataInが外部装置の480MHzに同期する高速な転送データである場合にも、このHS_DataInを適正にサンプリングできるクロックSCLKを生成できる。
また本実施形態によれば、図7(A)、(B)に示すように、生成されたサンプリングクロックSCLKのエッジESをHS_DataInのエッジ間の真ん中付近に位置させることができる。従って、後段の回路(エラスティシティバッファ24)は、データの保持のためのセットアップタイムやホールドタイムを十分に確保できるようになり、データ受信の信頼性を格段に高めることができる。
また本実施形態によれば、HS_DataInのエッジ検出やSCLKの生成のために使用する5相(多相)のクロックCLK0〜4として、PLL480MのVCOが含む差動出力コンパレータ(反転回路)の出力を有効利用している。従って、CLK0〜4を生成するために別の新たな回路を設ける必要が無いため、回路の小規模化を図れる。
図8に、クロック生成回路14が含むPLL480Mの詳細な構成例を示す。
このPLL480Mは、位相比較器80、チャージポンプ回路82、フィルタ回路84、VCO(Voltage Controlled Oscillator)86、分周器88などを含む。
ここで位相比較器80は、ベースクロックRCLK(例えば12〜24MHz)と分周器88からのクロックDCLK4の位相を比較し、位相誤差信号PUP、PDWを出力する(PUPは位相進み信号、PDWは位相遅れ信号)。
チャージポンプ回路82は、位相比較器80からのPUP、PDWに基づいてチャージポンプ動作を行う。より具体的には、PUPがアクティブになると、フィルタ回路84が含むコンデンサを充電する動作を行い、PDWがアクティブになると、コンデンサを放電する動作を行う。そして、フィルタ回路84により平滑化された制御電圧VCがVCO86に与えられる。
VCO86は、制御電圧VCに応じてその発振周波数が可変に制御される発振動作を行い、480MHzのクロックQCLK0〜4を生成する。例えば、制御電圧VCが高くなると発振周波数も高くなり、制御電圧VCが低くなると発振周波数も低くなる。
VCO86により生成されたクロックQCLK0、1、2、3、4は、バッファBF00〜04、BF10〜14を介して、各々、CLK0、3、1、4、2として外部に出力される。なお、BF20〜23はBF24との負荷合わせのためのダミーのバッファである。
分周器88は、バッファBF04、BF24を介してVCO86から入力されるクロックQCLK4を分周(1/N)して、分周後のクロックDCLK4を位相比較器80に出力する。
図8の構成のPLL480Mによれば、ベースクロックRCLK(発振回路OSCにより生成されたクロック)に位相同期した高周波数の480MHzのクロックCLK0〜4を生成できるようになる。
以上のように図6のサンプリングクロック生成回路22では、受信回路100(差動レシーバ56)からのHS_DataInのエッジ情報とクロック生成回路14(PLL480M)からの多相の480MHzのクロックCLK0〜4に基づいて、サンプリングクロックSCLKを生成している。従って、HS_DataInやクロックCLK0〜4の配線に不要な容量が寄生してしまうと、適正なサンプリングクロックを生成できなくなるおそれがある。
本実施形態によれば、マクロセルMC1を集積回路装置ICDのコーナに配置し、受信回路100、クロック生成回路14、サンプリングクロック生成回路22を図5に示すように配置している。従って、受信回路100とサンプリングクロック生成回路22の間の配線長やクロック生成回路14とサンプリングクロック生成回路22の間の配線長を極力短くすることが可能となる。この結果、図6のような構成のサンプリングクロック生成回路22を採用した場合にも、適正なサンプリングクロックを生成できるようになる。
5.キャパシタ領域の配置
本実施形態では図9に示すように、クロック生成回路14に電源を供給する電源端子PVDD、PVSS(第1の電源端子)と、サンプリングクロック生成回路22や他の論理回路112(図2のエラスティシティバッファ24、FS回路30、データハンドラ回路10)に電源を供給する電源端子XVDD、XVSS(第2の電源端子)を、辺SD2に沿ったI/O領域IOR2に配置している。
そして本実施形態では、クロック生成回路14を、方向DR2(第2の方向)において電源端子PVDD、PVSSに隣接して配置している。
一方、電源端子XVDD、XVSSの電源電圧の変動を安定化させるためのキャパシタ素子領域110を、方向DR2において電源端子XVDD、XVSSに隣接して配置している。ここでキャパシタ素子CPは、図10に示すように、一端(正極側)がXVDDに接続され、他端(負極側)がXVSSに接続される素子であり、基板電位を安定化させるガードリング(環状電源)などを利用して構成される。
図9に示すように電源端子PVDD、PVSSに隣接してクロック生成回路14を配置すれば、PVDD、PVSSとクロック生成回路14の間の電源配線の長さを短くできる。従って、クロック生成回路14で流れる電流による電圧ドロップを最小限に抑えることができ、クロック生成回路14の安定動作を保証できる。
特に、クロック生成回路14が含むPLL480M(図8参照)は、高周波数(480MHz)のクロックを生成する必要があるため、消費電流が非常に多い。そして、この消費電流により、電源に大きな電圧ドロップが生じると、PLL480Mが含む反転回路のゲインが低下してしまい、480MHzの発振動作を保証できなくなる事態が生じる。
本実施形態のように 電源端子PVDD、PVSSに隣接してクロック生成回路14を配置すれば、このような事態が生じるのを効果的に防止できる。
また、図9に示すように電源端子XVDD、XVSSに隣接してキャパシタ素子領域110を配置すれば、XVDD、XVSSの電源電圧変動を、XVDD、XVSSに近い場所で効果的に安定化できる。
特に、サンプリングクロック生成回路22や論理回路112が含むエラスティシティバッファは、高周波数(480MHz)で動作する。従って、MOSトランジスタのゲート容量の充放電に起因する電源電圧変動により、これらのサンプリングクロック生成回路22やエラスティシティバッファが誤動作する事態が生じるおそれがある。
本実施形態のように 電源端子XVDD、XVSSの直ぐ近くにキャパシタ素子領域110を配置すれば、このような事態が生じるのを効果的に防止できる。また、クロック生成回路14のDR1側(上側)のデッドスペース(空き領域)を有効利用できるという効果もある。
なお図9において、アナログ回路114は、基準電圧や基準電流を生成するための回路である。また、例えば、クロック生成回路14の発振回路OSCを、アナログ回路114が配置されている領域付近に配置してもよい。
6.受信回路と検出回路の配置関係
本実施形態では図9に示すように、アナログフロントエンド回路40が、バス上の信号が有効なデータなのかノイズなのかを区別するための検出回路102(図2の高速用スケルチ回路54。エンベロープディテクタ)を含む。
この検出回路102は、バスの信号のピーク値を保持し、信号の包絡線を検波することで、バスの信号の振幅を検出する。そして例えば、その振幅が100mV以下であれば信号はノイズであると判断し、150mV以上であれば有効なデータであると判断する。そして、有効なデータであると判断した場合には、検出回路102は図11(A)の検出信号HS_SQをHレベル(アクティブ)にする。これにより、AND回路103が導通状態になり、受信回路100からの受信データがサンプリングクロック生成回路22に伝わるようになる。
さて、USB2.0においては、この検出回路102の信号検出動作を非常に高速に行わなければならないことが判明した。
即ち、USB2.0では、ハブ装置を通過するたびに、図11(B)のSYNCのビットが削られて行く。このため、末端のデバイスがデータを受信した時には、SYNCのビット数が非常に少なくなっている可能性がある。従って、検出回路102の信号検出動作が遅いと、HS_SQがHレベルになるタイミングが遅れてしまい、受信データが喪失してしまうおそれがある。
そこで本実施形態では図9に示すように、マクロセルMC1の辺SD2からSD4に向かう方向DR2において、受信回路100と検出回路102(スケルチ回路)を隣接して配置している。
このようにすれば、図11(A)の経路PT1、PT2での配線の寄生容量、寄生抵抗を同等にすることが可能になる。従って、例えば、バスの信号がノイズであると検出された場合には、検出回路102の出力HS_SQが即座にLレベルになることで、誤ったデータが経路PT1及びAND回路103を介してサンプリングクロック生成回路22に伝わるのを防止できる。一方、バスの信号が有効なデータであると検出された場合には、検出回路102の出力HS_SQがHレベルになることで、受信回路100で受信されたデータが経路PT1及びAND回路103を介してサンプリングクロック生成回路22に即座に伝わるようになる。このように本実施形態では、経路PT1、PT2での配線の寄生容量、寄生抵抗を同等にすることで、安定した回路動作を実現することに成功している。
図12に、検出回路102(スケルチ回路)の構成例を示す。
図12の検出回路102は、差動アンプ回路60、第1及び第2のピークホールド回路62、64、定電位設定回路66、比較回路68を含む。
差動アンプ回路60は、DP、DMからの差動入力信号の差分の電圧を増幅し、差動出力信号GP、GMを生成する。
第1のピークホールド回路62は、差動出力信号の一方の出力信号GPのピーク値を検出し、ノードPKHに保持する。
第2のピークホールド回路64は、差動出力信号の他方の出力信号GMのピーク値を検出し、ノードPKHに保持する。
定電位設定回路66は、ノードPKHの電位変化速度よりもゆっくり変化するような時定数で、ノードPKHの電位を、信号の未検出状態に対応した一定電位に戻す。
比較回路68は、基準電位RPとノードPKHの電位を比較し、その結果をHS_SQとして出力する。
このように図12の検出回路102は、DP、DMに基づき得られた差動出力信号GP、GMのピーク値をノードPKHに保持し、このPKHの電位を、信号未検出状態に関連付けられた一定電位に、ゆっくりとした時定数で戻すようにした。そして、このノードPKHの電位を、基準レベルRPと比較するようにしたので、DP、DMの差動入力信号が微小振幅かつ高速の場合でも、受信データの有無を精度良く判別できるようになる。
7.受信回路と送信回路の配置関係
本実施形態では図9に示すように、送信回路104(図2のHS電流ドライバ50)を、受信回路100(HS差動レシーバ56)のDR2側(SD2からSD4へと向かう第2の方向側。右側)に配置している。
例えば本実施形態の比較例となるレイアウト手法として、図13(A)に示すように、送信回路104を、受信回路100の方向XDR2側(DR2の反対側。左側)に配置する手法も考えることができる。
しかしながら、この手法では図13(A)に示すように、クロック生成回路14からのクロックの配線領域と、送信回路104に送信データを供給する論理回路112の領域とが重なってしまう。このため、レイアウト効率が悪くなるという問題がある。
特に、図6、図7(A)、(B)の手法でサンプリングクロックを生成する場合には、クロック生成回路14からのクロック(多相クロック)の配線に寄生する容量や抵抗は、なるべく小さくなることが望ましい。しかしながら、図13(A)のレイアウト手法では、クロック生成回路14とサンプリングクロック生成回路22との間の距離が離れてしまい、クロック生成回路14からのクロック配線に、無駄な寄生容量、寄生抵抗が付加されてしまう。
更に図13(A)のレイアウト手法では、送信回路104の下側に配置されるデータ端子DP、DMも、コーナ部分CNに近い場所に配置されてしまう。このため、データ端子DP、DMのボンディングワイヤが斜めに配線されてしまい、DP、DMのボンディングワイヤの長さに差が生じてしまう。この結果、DP、DMのボンディングワイヤに寄生するインダクタンスにも差が生じてしまい、DP、DMの負荷バランスが崩れ、送信回路104の性能が低下するおそれがある。
これに対して図13(B)に示すように、送信回路104を受信回路100のDR2側(右側)に配置すれば、受信回路100を、コーナ部分CNから近い場所に配置できる。この結果、クロック生成回路14からのクロックの配線領域と論理回路112の領域とが重なってしまう事態を防止でき、レイアウト効率を高めることができる。
また、図13(B)のレイアウト手法によれば、クロック生成回路14とサンプリングクロック生成回路22との間の距離を近づけることができ、クロック生成回路14からのクロック配線に寄生する容量や抵抗を最小限に抑えることができる。
更に図13(B)のレイアウト手法では、データ端子DP、DMを、コーナ部分CNから遠い場所に配置できる。これにより、データ端子DP、DMのボンディングワイヤを真っ直ぐに配線でき、DP、DMのボンディングワイヤの長さの差を最小限に抑えることができる。この結果、DP、DMのボンディングワイヤの寄生インダクタンスの差も最小限に抑えることができ、DP、DMの負荷バランスを同等にでき、高性能な送信回路104を実現できるようになる。
8.送信回路とデータ端子の配置関係
本実施形態の送信回路104は、図14(A)に示すように、定電流源IS(ゲート電極が定電位に設定されたP型トランジスタ)と、N型トランジスタ(スイッチ素子)NTP、NTA、NTMとにより構成される電流ドライバを含む。ここで、N型トランジスタNTP、NTA、NTMのゲート電極は、DPG、AVG、DMGにより制御される。そして図14(B)に示すように、DPGをHレベル(アクティブ)に設定することで、定電流源ISからN型トランジスタNTPを介してDPに定電流が流れ、バスのステートがJ状態になる。一方、DMGをHレベルに設定することで、定電流源ISからN型トランジスタNTMを介してDMに定電流が流れ、バスのステートがK状態になる。そして、送信データに応じてバスをJ又はK状態にすることで、HSモードでの送信が可能になる。
一方、送信(HS送信)期間以外の期間では、図14(B)に示すように、AVGをHレベルに設定することで、定電流源ISからN型トランジスタNTAを介してAVSSに定電流が流れる(ISからの定電流が破棄される)。このように送信期間以外の期間においても、定電流源ISの定電流をN型トランジスタNTAを介してAVSSに流し続けることで、送信開始時に直ぐに、安定した定電流をNTP又はNTMを介してDP又はDMに流すことが可能となり、送信回路104のレスポンスを高めることができる。
さて、このように送信回路104として電流ドライバを用いる場合には、図14(A)の経路PTP、PTMに寄生する抵抗・容量・インダクタンスを互いに整合させて、DP、DMの負荷バランスを保つことが望ましい。
そこで本実施形態では、図9に示すように、送信回路104とデータ端子DP、DMを、方向DR1(SD1からSD3へと向かう第1の方向。上方向)において隣接して配置している。
より具体的には図15に示すように、データ端子DP、DMの真上(方向DR1)に、送信回路104(図14(A)の電流ドライバ)のN型トランジスタNTP、NTMを配置している。また、送信期間以外の期間において定電流源ISからの定電流を流す電源端子AVSSを、データ端子DP、DMの間の領域に配置し、このAVSSの真上(方向DR1)にN型トランジスタNTAを配置している。
このように配置すれば、DP、NTP間の配線の寄生抵抗・容量・インダクタンスと、DM、NTM間の配線の寄生抵抗・容量・インダクタンスを整合させて、DP、DMの負荷バランスを保つことが容易になる。これにより、送信回路104の性能を高めること可能になる。
特に本実施形態では、図13(B)で説明したように、送信回路104を、受信回路100のDR2側(右側)に配置している。そして図15で説明したように、送信回路104は、データ端子DP、DMのDR1側(上側)に隣接して配置される。従って、結局、データ端子DP、DMの配置位置がコーナ部分CNから離れることになり、図13(B)で説明したように、DP、DMのボンディングワイヤに寄生するインダクタンスの差も少なくできる。これにより、DP、DMの負荷バランスを更に良好に保つことができる。
なお、図15では、NTP、NTA、NTMのDR1側(上側)に、図2の抵抗Rpu、Rpu’及びスイッチ素子SW1、SW2を配置している。即ち、NTP、SW1、Rpuのレイアウトと、NTM、SW2、Rpu’のレイアウトとが対称になるようにしている。これにより、DP、DMに寄生する抵抗・容量・インダクタンスを等価にすることが可能になる。なお、図15において、定電流源ISを、NTP、NTA、NTMのDR1側(上側)や、Rpu、Rpu’のDR1側に配置してもよい。
9.電子機器
次に、本実施形態の集積回路装置(データ転送制御装置)を含む電子機器の例について説明する。
例えば図16(A)に電子機器の1つであるプリンタの内部ブロック図を示し、図17(A)にその外観図を示す。CPU(マイクロコンピュータ)510はシステム全体の制御などを行う。操作部511はプリンタをユーザが操作するためのものである。ROM516には、制御プログラム、フォントなどが格納され、RAM517はCPU510のワーク領域として機能する。DMAC518は、CPU510を介さずにデータ転送を行うためのDMAコントローラである。表示パネル519はプリンタの動作状態をユーザに知らせるためのものである。
USBを介してパーソナルコンピュータなどの他のデバイスから送られてきたシリアルの印字データは、集積回路装置500によりパラレルの印字データに変換される。そして、変換後のパラレル印字データは、CPU510又はDMAC518により、印字処理部(プリンタエンジン)512に送られる。そして、印字処理部512においてパラレル印字データに対して所与の処理が施され、プリントヘッダなどからなる印字部(データの出力処理を行う装置)514により紙に印字されて出力される。
図16(B)に電子機器の1つであるスキャナの内部ブロック図を示し、図17(B)にその外観図を示す。CPU520はシステム全体の制御などを行う。操作部521はスキャナをユーザが操作するためのものである。ROM526には制御プログラムなどが格納され、RAM527はCPU520のワーク領域として機能する。DMAC528はDMAコントローラである。
光源、光電変換器などからなる画像読み取り部(データの取り込み処理を行う装置)522により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部(スキャナエンジン)524により処理される。そして、処理後の画像データは、CPU520又はDMAC528により集積回路装置500に送られる。集積回路装置500は、このパラレルの画像データをシリアルデータに変換し、USBを介してパーソナルコンピュータなどの他のデバイスに送信する。
図16(C)に電子機器の1つであるCD−RWドライブの内部ブロック図を示し、図17(C)にその外観図を示す。CPU530はシステム全体の制御などを行う。操作部531はCD−RWをユーザが操作するためのものである。ROM536には制御プログラムなどが格納され、RAM537はCPU530のワーク領域として機能する。DMAC538はDMAコントローラである。
レーザ、モータ、光学系などからなる読み取り&書き込み部(データの取り込み処理を行う装置又はデータの記憶処理を行うための装置)533によりCD−RW532から読み取られたデータは、信号処理部534に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、CPU530又はDMAC538により集積回路装置500に送られる。集積回路装置500は、このパラレルのデータをシリアルデータに変換し、USBを介してパーソナルコンピュータなどの他のデバイスに送信する。
一方、USBを介して他のデバイスから送られてきたシリアルのデータは、集積回路装置500によりパラレルのデータに変換される。そして、このパラレルデータは、CPU530又はDMAC538により信号処理部534に送られる。そして、信号処理部534においてこのパラレルデータに対して所与の信号処理が施され、読み取り&書き込み部533によりCD−RW532に記憶される。
なお、図16(A)、(B)、(C)において、CPU510、520、530の他に、集積回路装置500でのデータ転送制御のためのCPUを別に設けるようにしてもよい。
本実施形態の集積回路装置を電子機器に用いれば、USB2.0におけるHSモードでのデータ転送を実現できるようになる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、CD−RWからのデータの読み取りや、CD−RWへのデータの書き込みを高速に行うことができるようになる。
また、本実施形態の集積回路装置を電子機器に用いれば、製造コストが安い通常の半導体プロセスでも、HSモードでのデータ転送が可能な集積回路装置を製造できるようになる。従って、データ転送制御装置の低コスト化を図れ、電子機器の低コスト化も図れるようになる。また、データ転送の信頼性を向上でき、電子機器の信頼性も向上できるようになる。
また、本実施形態の集積回路装置を電子機器に用いれば、集積回路装置の高性能を維持しながらも、電子機器を製造する多様なユーザの要望に応えることが可能となり、電子機器の付加価値を高めることができる。
なお本実施形態の集積回路装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ(CD−ROM、DVD)、光磁気ディスクドライブ(MO)、ハードディスクドライブ、TV、VTR、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
例えば、本発明の集積回路装置の第1のマクロセルの回路構成は、図2に示す構成に限定されるものではなく、種々の変形実施が可能である。
また、本発明の集積回路装置の各回路の配置も、図3(A)〜図15で説明したものに限定されず、種々の変形実施が可能である。
また、本発明は、USB2.0のインターフェース(データ転送)に適用されることが特に望ましいが、これに限定されるものではない。例えばUSB2.0と同様の思想に基づく規格やUSB2.0を発展させた規格のインターフェースにも本発明は適用できる。