(58)【調査した分野】(Int.Cl.,DB名)
Kビットの入力データをNビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段と(KおよびNは正の整数で、K<N)、
前記複数の変換段の最終段の出力データのビット数である所定ビット数Mに対応した個数の物理的に連続したM個の出力選択回路を有し、前記複数の変換段の最終段の出力データと前記最終段より前の変換段の出力データの一方を選択して出力する出力回路と、を備え、
前記最終段より前の変換段の出力データが、前記出力回路の物理的に不連続な前記出力選択回路に入力することを特徴とするシリアル−パラレル変換回路。
前記出力回路の前記最終段より前の変換段の出力データが入力しない前記出力選択回路には、所定の固定値が入力することを特徴とする請求項1に記載のシリアル−パラレル変換回路。
Nビットの入力データをKビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段と(NおよびKは正の整数で、N>K)、
前記複数の変換段の初段の入力データのビット数である所定ビット数Mに対応した個数の物理的に連続したM個の入力選択回路を有し、入力データの一方を選択して前記複数の変換段の初段と前記初段より後の変換段に入力させる入力回路と、を備え、
前記初段より後の変換段への入力データが、前記入力回路の物理的に不連続な前記入力選択回路に入力することを特徴とするパラレル−シリアル変換回路。
Kビットの入力データをNビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段と(KおよびNは正の整数で、K<N)、
前記複数の変換段の最終段の出力データのビット数である所定ビット数Mに対応した個数の物理的に連続したM個の出力選択回路を有し、前記複数の変換段の最終段の出力データと前記最終段より前の変換段の出力データの一方を選択して出力する出力回路と、を備え、
前記最終段より前の変換段の出力データが、前記出力回路の物理的に不連続な前記出力選択回路に入力するシリアル−パラレル変換回路と、
Nビットの入力データをKビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段と(NおよびKは正の整数で、N>K)、
前記複数の変換段の初段の入力データのビット数である所定ビット数Mに対応した個数の物理的に連続したM個の入力選択回路を有し、入力データの一方を選択して前記複数の変換段の初段と前記初段より後の変換段に入力させる入力回路と、を備え、
前記初段より後の変換段への入力データが、前記入力回路の物理的に不連続な前記入力選択回路に入力するパラレル−シリアル変換回路と、
を備えることを特徴とするシリアライザ/デシリアライザ。
Kビットの入力データをNビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段と(KおよびNは正の整数で、K<N)、
前記複数の変換段の最終段の出力データのビット数である所定ビット数Mに対応した個数の物理的に連続したM個の出力選択回路を有し、前記複数の変換段の最終段の出力データと前記最終段より前の変換段の出力データの一方を選択して出力する出力回路と、を備え、
前記最終段より前の変換段の出力データが、前記出力回路の物理的に不連続な前記出力選択回路に入力するシリアル−パラレル変換回路と、
Nビットの入力データをKビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段と(NおよびKは正の整数で、N>K)、
前記複数の変換段の初段の入力データのビット数である所定ビット数Mに対応した個数の物理的に連続したM個の入力選択回路を有し、入力データの一方を選択して前記複数の変換段の初段と前記初段より後の変換段に入力させる入力回路と、を備え、
前記初段より後の変換段への入力データが、前記入力回路の物理的に不連続な前記入力選択回路に入力するパラレル−シリアル変換回路と、
前記シリアル−パラレル変換回路から出力されるパラレルデータを受けて処理を行い、パラレルデータを前記パラレル−シリアル変換回路に出力するコア回路と、
を備えることを特徴とする半導体装置。
【背景技術】
【0002】
LSI内およびLSI間の通信は、送信側で、パラレル−シリアル変換で多ビットデータを1ビットデータに変換した後、差動伝送線路を介して送信し、受信側では、受信した1ビットデータをシリアル−パラレル変換して多ビットデータを生成する。従って、送受信回路を有するLSIは、シリアル−パラレル変換を行い回路およびパラレル−シリアル変換を行う回路を有しており、シリアライザ/デシリアライザ(SERDES)マクロとして実現され、LSIに搭載される。
【0003】
有線通信の高速化が進む中、LSIに搭載するSERDESマクロの高速化、汎用化が求められている。そこで、伝送速度が広いレンジに対応でき、かつASIC内部のコア部(コアロジック)とのインターフェイス部分であるパラレルデータのビット幅が可変であるマクロを準備し、ユーザーの仕様に合わせて設定することにより、幅広い用途に対応できることが考えられる。このようなSERDESマクロは、例えば、伝送速度が5Gbps〜32Gbps(bps:bit per second)の広いレンジに対応でき、パラレルデータのビット幅が16ビット/32ビットの間で可変であるマクロである。以下このようなSERDESマクロを例として説明を行う。
【0004】
例えば、SERDESマクロとコアロジックとの間で32Gビット/sの速度でデータを入出力する場合、コアロジックと接続されるパラレル信号1本(1ビット)当たりの最大速度は、ビット幅が16ビットの時には2GHzに、32ビットの時には1GHzになる。
【0005】
一般的に、ビット幅を多くすればパラレル信号一本当たりの速度は遅くなり、コアロジックのタイミング設計が容易になる利点がある。しかし、ビット幅を多くすれば、処理をする信号の本数が多くなり、シリアル信号の入力からパラレル信号の出力あるいはパラレル信号の入力からシリアル信号の出力までの時間(レイテンシ)が長くなってしまうデメリットがある。これは、高速のシリアル−パラレル変換およびパラレル−シリアル変換では、1ビットから16/32ビットへの変換あるいは16/32ビットから1ビットへの変換を1段で行うことが難しく、複数段に分割して変換を行うため、段数が増加するためである。そのため、システム設計全体の観点から最適なビット幅が決定され、それに応じてSERDESマクロのビット幅を設定することが求められる。そこで、SERDESマクロのビット幅を可変にし、ユーザーの要求に応じて設定することが考えられる。
【発明を実施するための形態】
【0013】
実施形態を説明する前に、図を参照して一般的なシリアライザ/デシリアライザ(SERDES)マクロの構成および使用例について説明する。
図1は、SERDESマクロを有するLSIの構成例を示す図である。
【0014】
LSI10は、コアロジック11と、2個のSERDESマクロ12Lおよび12Rと、を有する。SERDESマクロ12Lおよび12Rは、同じ構成を有し、2つの外部入出力チャネルを実現するために設けられる。SERDESマクロ12Lおよび12Rは、外部との間では差動信号の形で1ビットシリアルデータを入出力し、コアロジック11との間ではNビットパラレルデータを入出力する。
【0015】
図2は、SERDESマクロ12の構成例を示す図である。
図2のSERDESマクロ12は4個のデシリアライザ(DES)20A−20Dと、4個のシリアライザ(SER)30A−30Dと、クロック部40を有し、4チャネルの入出力インターフェースを形成する。DES20A−20Dは、それぞれ外部から入力される差動信号INPおよびINNの1ビットシリアルデータを、NビットパラレルデータDOUTに変換してコアロジック11に出力する。SER30A−30Dは、それぞれコアロジック11から出力されるNビットパラレルデータDINを、差動信号OUTPおよびOUTNの1ビットシリアルデータに変換して外部に出力する。
【0016】
DES20A−20Dは、それぞれ、入力部21と、デマルチプレクサ(DEMUX)22と、クロック生成部23と、クロックデータリカバリィ(CDR)部24と、を有する。入力部21は、差動信号INPおよびINNを受け、1ビットシリアルデータとして出力する。DEMUS22は、入力部21からの1ビットシリアルデータをNビットパラレルデータに変換し、出力データDOUTとしてコアロジック11に出力する。クロック生成部23は、クロック部40から内部クロックを受けて分周クロックを生成し、DEMUX22に供給する。CDR部24は、入力部21で生成された1ビットシリアルデータから、差動信号INPおよびINNの受信クロックを再生する。再生された受信クロックは、入力部21が差動信号INPおよびINNを最適な位相で取り込むための制御等に使用される。
【0017】
SER30A−30Dは、それぞれマルチプレクサ(MUX)31と、出力部32と、クロック生成部33と、を有する。MUX31は、コアロジック11から出力されるNビットパラレルデータを1ビットシリアルデータに変換して、出力部32に出力する。出力部32は、1ビットシリアルデータを受け、差動信号OUTPおよびOUTNとして外部に出力する。クロック生成部33は、クロック部40から内部クロックを受けて分周クロックを生成し、MUX31に供給する。
【0018】
クロック部40は、外部から供給される差動外部クロックCLK、/CLKを受けるクロック入力部41と、クロック入力部41からのクロックに基づいて内部クロックを発生するPLL回路42と、を有する。
【0019】
以下、N=32として、32Gbpsで送信される1ビットシリアルデータを32ビットパラレルデータに変換する場合、および32ビットパラレルデータを1ビットシリアルデータに変換し、32Gbpsで送信する場合を例として説明する。
【0020】
一般的に、ビット幅を多くすれば、パラレル信号一本当たりの速度は遅くなり、コアロジックのタイミング設計が容易になるという利点がある。しかし、反面ビット幅を多くすれば、処理をする信号の本数が多くなる、シリアル信号の入力からパラレル信号の出力あるいは、パラレル信号の入力からシリアル信号の出力までの時間(レイテンシと呼ばれる)が長くなってしまう問題点がある。そのため、システム設計全体の観点から最適なビット幅が求められる。ここで、コアロジック11に出力する出力データDOUTのビット幅を32ビットと16ビットのいずれかに設定できるようにする場合を考える。
【0021】
図3の(A)は、ビット幅を32ビットと16ビットの間で切替可能にしたDES20の構成を示す図であり、DEMUX22の構成をより詳細に示した図である。
図3の(B)は、DEMUX22の動作を示すタイムチャートである。
TERM25は、入力部21の直前に設けられた差動信号INPおよびINNの終端部である。
【0022】
32GHzの1ビットシリアルデータを、1段で32ビットパラレルデータに変換するのは難しいため、DEMUX22は、Kビットの入力データをNビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段を有する。ここでは、DEMUX22は、DEMUX51−54を有する。DEMUX51は、1ビットシリアルデータを4ビットパラレルデータに変換する。DEMUX52は、DEMUX51の出力する4ビットパラレルデータを8ビットパラレルデータに変換する。DEMUX53は、DEMUX52の出力する8ビットパラレルデータを16ビットパラレルデータに変換する。DEMUX54は、DEMUX53の出力する16ビットパラレルデータを32ビットパラレルデータ32ODに変換する。32ビットパラレルデータ32ODが、出力データDOUTとしてコアロジック11に出力される。
【0023】
図3の(A)の回路では、DEMUX51が出力する4ビットパラレルデータが2セット揃った時に、DEMUX52が8ビットパラレルデータを出力する。さらに、DEMUX52が出力する8ビットパラレルデータが2セット揃った時に、DEMUX53が16ビットパラレルデータを出力する。さらに、
図3の(B)に示すように、DEMUX53が出力する16ビットパラレルデータ16ODが2セット揃った時に、DEMUX54が32ビットパラレルデータ32ODを出力する。そのため、32ビットパラレルデータ32ODは、対応する16ビットパラレルデータ16ODが出力されてから32シリアルデータ分、すなわち1ns遅れて出力される。この遅れがレイテンシである。
【0024】
図4は、デシリアライザ(DES)20において、出力データDOUTのビット幅を32ビットと16ビットの間で切り替え可能にするための回路構成を示す図である。DES20は、DEMUX53およびDEMUX54に加えて、32個のセレクタを有する。32個のセレクタは、信号遅延を考慮してコアロジック11の接続端子と対応して配置され、図示のような順番で物理的に連続して配置されているものとする。これは、後述するシリアライザ(SER)においても同様である。
【0025】
前述のように、DEMUX53は、8ビットパラレルデータ8OD0−8OD7を受け、16ビットパラレルデータ16OD0−16OD15を出力する。16ビットパラレルデータ16OD0−16OD15は、DEMUX54に入力すると共に、32個のセレクタの下位16ビットに対応する16個のセレクタに入力する。DEMUX54は、16ビットパラレルデータ16OD0−16OD15を受け、32ビットパラレルデータ32OD0−32OD31を出力する。32ビットパラレルデータ32OD0−32OD31は、32個のセレクタに入力する。32個のセレクタの上位16ビットに対応する16個のセレクタには、クリップ固定値CLPが入力される。
【0026】
32ビットの出力データDOUTを出力する場合には、32個のセレクタがDEMUX54からの32ビットパラレルデータ32OD0−32OD31を選択するように、切替信号を設定する。16ビットの出力データDOUTを出力する場合には、下位16ビットに対応する16個のセレクタが16ビットパラレルデータ16OD0−16OD15を選択し、上位16ビットに対応する16個のセレクタがクリップ固定値CLPを選択するように設定する。このようにして、出力データDOUTのビット幅を32ビットと16ビットの間で切り替えることができる。
【0027】
図5の(A)は、ビット幅を32ビットと16ビットの間で切り替え可能にしたSER30の構成を示す図であり、MUX31の構成をより詳細に示した図である。
図5の(B)は、MUX31の動作を示すタイムチャートである。
【0028】
MUX31も、Kビットの入力データをNビットのデータに変換する変換段を、前段の出力データが後段の入力データとなるように接続した複数の変換段を有する。ここでは、MUX31は、MUX61−66と、バッファ67と、セレクタ68と、を有する。MUX61は、コアロジック11からの32ビットパラレルデータ32IDを16ビットパラレルデータに変換する。MUX62は、MUX61の出力する16ビットパラレルデータを8ビットパラレルデータに変換し、セレクタ68に出力する。MUX63は、コアロジック11からの16ビットパラレルデータ16IDを8ビットパラレルデータに変換し、セレクタ68に出力する。セレクタ68は、切替信号に応じて、一方の8ビットパラレルデータを選択し、MUX64に出力する。MUX64は、8ビットパラレルデータを4ビットパラレルデータに変換し、MUX65は、4ビットパラレルデータを2ビットパラレルデータに変換し、MUX66は、2ビットパラレルデータを1ビットシリアルデータに変換する。バッファ67は、1ビットシリアルデータを受けて、出力部32に出力する。
【0029】
TERM34は、出力部32の直後に設けられた差動信号OUTPおよびOUTNの終端部である。
図5の(A)の回路では、
図5の(B)に示すように、MUX61が2セットの16ビットパラレルデータを続けて出力し、MUX62が2セットの16ビットパラレルデータを受けて4セットの8ビットパラレルデータとして順次出力する。また、MUX63は、コアロジック11からの16ビットパラレルデータ16IDを受けて、8ビットパラレルデータを順次出力する。そのため、MUX31でも、32ビットパラレルデータ32IDを受けてから対応する16ビットパラレルデータ16XDが出力されるまで、1.5nsの遅れ(レイテンシ)がある。
【0030】
図6は、シリアライザ(SER)30において、入力データDINのビット幅を32ビットと16ビットの間で切り替え可能にするための回路構成を示す図である。SER30は、MUX61−64およびセレクタ68に加えて、32個のフリップフロップ(FF)を有する。
【0031】
32個のFFは、データ端子で32ビットパラレルデータ32ID0−32ID31を受ける。32個のFFの下位16ビットに対応する16個のFFのクロック端子には、コアクロックICLKが入力される。32個のFFの上位16ビットに対応する16個のFFのクロック端子には、コアクロックICLKと切替信号を入力とするANDゲートの出力が入力される。これにより、上位16ビットに対応する16個のFFのクロック端子には、切替信号が32ビット幅に設定する時にはコアクロックICLKが入力され、切替信号が32ビット幅に設定する時にはクロックが入力されず、FFの出力は変化しない。一方、下位16ビットに対応する16個のFFは、32ビット幅の時も16ビット幅の時も、コアクロックICLKが入力され、出力が変化する。なお、32個のFFは、コアロジック11からの信号が入力されるため、コアクロックICLKをクロック信号として動作する。
【0032】
32ビット幅に設定する切替信号の時、MUX61は、32個のFFから32ビット入力パラレルデータ32ID0−32ID31を受け、16ビットパラレルデータ16ID0−16ID15をMUX62に出力する。MUX62は、16ビットパラレルデータ16ID0−16ID15を8ビットパラレルデータ8ID0−8ID7に変換し、8個のセレクタに出力する。一方、16ビット幅に設定する切替信号の時、MUX63は、下位16個のFFから32ビットパラレルデータ32ID0−32ID31の下位16ビットである16ビット入力パラレルデータ16ID0−32ID15を受ける。MUX63は、16ビット入力パラレルデータ16ID0−32ID15を8ビットパラレルデータ8ID0−8ID7に変換し、8個のセレクタに出力する。8個のセレクタは、32ビット幅に設定する切替信号の時には、MUX62の出力する8ビットパラレルデータ8ID0−8ID7を選択し、16ビット幅に設定する切替信号の時には、MUX63の出力する8ビットパラレルデータ8ID0−8ID7を選択する。MUX64は、8個のセレクタから入力する8ビットパラレルデータ8ID0−8ID7を4ビットパラレルデータ4ID0−4ID3に変換し、後段に出力する。
【0033】
32ビットの入力データDINが入力する場合には、32個のFFにコアクロックICLKが入力し、8個のセレクタがMUX62の出力する8ビットパラレルデータ8ID0−8ID7を選択するように、切替信号を設定する。16ビットの入力データDINが入力する場合には、下位16個のFFにコアクロックICLKが入力し、上位16個のFFにはクロックが入力せず、8個のセレクタがMUX63の出力する8ビットパラレルデータを選択するように、切替信号を設定する。このようにして、入力データDINのビット幅を32ビットと16ビットの間で切り替えることができる。
【0034】
ユーザーは、コアロジック11でのタイミング設計、上記のレイテンシを勘案して、コアロジックがDESから受けるパラレルデータのビット幅およびコアロジックがSERDESマクロに出力するパラレルデータのビット幅を設定する。ユーザーの幅広い要求に対応できるマクロを提供するため、上記のように、ビット幅を16ビットと32ビットの間で切替えが可能なSERDESマクロを準備しておき、ユーザーの要求に応じて、いずれかに設定して出荷するようにする。これにより、SERDESマクロの設計リードタイムを短縮することができる。
【0035】
しかし、SERDESマクロのハードウエアのレイアウト設計あるいは、SERDESマクロに接続するコアロジックのレイアウト設計において、ビット幅の選択によっては、電力が局所的に集中する場合がある。電力が局所的に集中すると、E−MIG (Electromigration)や電圧ドロップの問題が発生する。以下、この問題を説明する。
【0036】
図7は、
図4のDES20における電力の局所的な集中を説明する図であり、(A)は出力データDOUTを32ビット幅に設定した場合を、(B)は出力データDOUTを16ビット幅に設定した場合を示す。
【0037】
出力データDOUTを32ビット幅に設定する場合、DES20の32個のセレクタに32ビットパラレルデータ32OD0−32OD31が入力し、32ビットパラレルデータ32OD0−32OD31は1GHzで変化する。したがって、データの変化に伴い発生する消費電力は、32個のセレクタの全体に分布する。
【0038】
これに対して、出力データDOUTを16ビット幅に設定する場合、DES20の32個のセレクタに16ビットパラレルデータ16OD0−16OD15が入力し、16ビットパラレルデータ16OD0−16OD15は2GHzで変化する。したがって、データの変化に伴い発生する消費電力は、下位ビットの16個のセレクタに集中し、上位ビットの16個のセレクタでは電力は発生しない。言い換えれば、出力データDOUTを16ビット幅に設定する場合に下位ビットの16個のセレクタで発生する電力は、動作周波数が2倍となるので、32ビット幅に設定する場合に比べて2倍となる。
【0039】
電力が集中すると、LSIにおいてE−MIG(Electromigration)や電圧降下の問題が発生する。
以下に説明する実施形態のSERDESマクロは、電力の集中を避けるよう改良し、上記の問題の発生を回避する。
【0040】
図8は、ビット幅を32ビットと16ビットの間で切り替え可能な実施形態のSERDES12を、32ビット幅と16ビット幅に設定した時の、DES20の出力回路(端子)とコアロジック11の入力回路(端子)との間の、信号の配置を示す図である。
【0041】
図8に示すように、32ビット幅に設定する時には、32個の端子に順に32ビットのパラレルデータ32OD0−32OD31を割り当てる。これは、
図7の(A)と同じである。これに対して、162ビット幅に設定する時には、32個の端子に入れ子に16ビットのパラレルデータ16OD0−32OD15を割り当てる。
【0042】
したがって、32ビット幅に設定した時には、DES20でシリアル−パラレル変換により生成された32ビットパラレルデータ32OD0−32OD31は32個の端子に並列に出力される。コアロジック11は、32個の端子から入力する32OD0−32OD31を、32ビットパラレルデータとして処理する。
【0043】
一方、16ビット幅に設定した時には、DES20でシリアル−パラレル変換により生成された16ビットパラレルデータ16OD0−16OD15は、32個の端子のうちの奇数番目の16個の端子に並列に出力される。コアロジック11は、奇数番目の16個の端子から入力する16OD0−16OD15を、16ビットパラレルデータとして処理する。この場合、コアロジック11は、32個の端子のうちの偶数番目の16個の端子自体を有さないか、有していても入力回路を有さないようにする。
【0044】
上記の例では、16ビットパラレルデータ16OD0−16OD15は、32個の端子のうちの奇数番目の16個の端子に出力されたが、偶数番目の16個の端子に出力することも可能である。
【0045】
ビット幅を切り替え可能で、実際に出力するデータのビット数が、存在している出力回路(端子)数より小さい場合、
図8に示すように、出力するデータ信号を、物理的に不連続な出力回路から出力することにより、電力の集中を回避できる。
上記の構成は、コアロジック11の出力回路(端子)とSER30の入力回路(端子)との間でも有効である。
【0046】
図9は、ビット幅を32ビットと16ビットの間で切り替え可能な実施形態のSERDES12のDES20において、
図8の信号配置を実現する1つの構成例を示す図である。
【0047】
DES20は、
図4と同様に、DEMUX53、DEMUX54、および32個のセレクタを有する。DEMUX53、DEMUX54および32個のセレクタの構成は、
図4の場合と同様であるが、ここでは、DEMUX53の出力する16ビットパラレルデータ16OD0−16OD15の32個のセレクタへの入力位置が異なる。具体的には、16ビットパラレルデータ16OD0−16OD15は、32個のセレクタの奇数番目の16個のセレクタの一方の入力端子に入力される。16ビットパラレルデータが入力されない偶数番目の16個のセレクタの一方の入力端子には、クリップ固定値CLPが入力される。また、32個のセレクタの他方の入力端子には、DEMUX54の出力する32ビットパラレルデータ32OD0−32OD31が入力される。
【0048】
したがって、
図9のDES20では、32ビット幅に設定する切替信号の時には、32個のセレクタは、32ビットパラレルデータ32OD0−32OD31を出力する。また、16ビット幅に設定する切替信号の時には、32個のセレクタの奇数番目の16個のセレクタは、16ビットパラレルデータ16OD0−16OD15を出力が、偶数番目の16個のセレクタは、クリップ固定値CLPを出力する。
【0049】
図10は、ビット幅を32ビットと16ビットの間で切り替え可能な実施形態のSERDES12のSER30において、前述の信号配置を実現する1つの構成例を示す図である。
【0050】
SER30は、
図6と同様に、MUX61−64、および32個のフリップフロップ(FF)を有する。
図10では、MUX61−63をまとめて1つのブロックで示し、MUX64は図示を省略している。MUX61−64、および32個のFFの構成は、
図6の場合と同様であるが、ANDゲートを設けるFFの位置が異なる。具体的には、32個のFFの奇数番目16個のFFのクロック端子には、コアクロックICLKが入力される。したがって、奇数番目16個のFFは、32ビット幅の時も16ビット幅の時も、コアクロックICLKが入力され、出力が変化する。
【0051】
一方、32個のFFの偶数番目の16個のFFのクロック端子には、コアクロックICLKと切替信号を入力とするANDゲートの出力が入力される。これにより、偶数番目の16個のFFのクロック端子には、切替信号が32ビット幅に設定する時にはコアクロックICLKが入力され、切替信号が32ビット幅に設定する時にはクロックが入力されず、FFの出力は変化しない。
【0052】
32ビット幅の時には、コアロジック11からの32ビットパラレルデータ32ID0−32ID31は、32個のFFに入力され、コアクロックICLKにより、32個のFFにラッチされ、MUX61に供給される。
【0053】
16ビット幅の時には、コアロジック11からの16ビットパラレルデータ16ID0−16ID15は、奇数番目16個のFFに入力し、コアクロックICLKにより、奇数番目16個のFFにラッチされ、MUX63に供給される。
【0054】
上記の実施形態では各種の変形例があり得る。例えば、
図5の(A)に示した実施形態のSER30のMUX31は、16ビットパラレルデータを8ビットパラレルデータに変換する2個のMUX62および63を有したが、MUX63を設けない変形例もあり得る。
【0055】
図11は、SER30のMUX31Aの変形例の構成を示す図である。
変形例のSER30のMUX31Aは、MUX63を有さず、MUX61の代わりにMUX69を有することが、実施形態のMUX31と異なる。
MUX69は、MUX61と同様の構成を有するが、16ビット幅の時、コアロジック11からの16ビットパラレルデータ16IDを下位16ビットでラッチすることが異なる。MUX69は、32ビット幅の時には上記の実施形態と同様に動作し、16ビット幅の時には、FIFO(First-In-First-Out)として動作する。16ビット幅の時、MUX69の出力は、セレクタ68に出力される。
変形例のMUX31Aの動作タイムチャートは、
図5の(B)と同じである。
【0056】
さらに、他にも各種の変形例があり得る。例えば、記載した例では、データ幅を32ビットと16ビットのいずれかに設定する例を示したが、32ビット、16ビットまたは8ビットのいずれかに設定するようにしてもよい。また、最大ビットは、32ビットに限定されず、例えば64ビットでも、16ビットでもよい。
また、変換段は4ビットから8ビット、8ビットから16ビット、16ビットから32ビットというようにビット数が1増加する変換段またはビット数が1減少する変換段に限定されず、2ビット以上変化する変換段でも、それらの組合せでもよい。
【0057】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に、記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。