本発明の特定用途向け集積回路の実施の形態について図面を参照しながら説明する。本実施形態の特定用途向け集積回路は、複写機やプリンタのエンジンの制御に用いられるDCコントローラに適用される。
[第1の実施形態]
図1は第1の実施形態における特定用途向け集積回路の構成を示す回路図である。この特定用途向け集積回路(ASIC)126は、本来、独立(個別)のASICとして設計されるはずのロジックであるモジュールA(モジュールA制御部)12〜モジュールD(モジュールD制御部)15を1つのASICとして構成したものである。このASIC126は、外部からの選択信号SEL_A116〜SEL_D119を用いて動作させる場合、それぞれ単独のモジュールとして動作できるように切り替えられるASICである。また、このASICでは、1個のモジュールのサイズは5万ゲート以上であり、かつ、3個以上のモジュール(本実施形態では、4個)が1チップ化される。
選択制御回路11は、信号線128,129の信号(制御情報)に基づき、入力端子123,124,125を、モジュールA12〜モジュールD15のIO端子への接続に切り替えるモジュールである。
具体的に、入力端子123,124、125は、選択制御回路11のIO端子に接続される。入力端子123,124、125の信号は、バス134を通じてモジュールA12に入力され、バス135を通じてモジュールB13に入力され、バス136を通じてモジュールC14に入力され、バス137を通じてモジュールD15に入力される。
また、選択制御回路11には、動作制御回路(動作制御部)18からの信号線128,129が接続されている。
また、モジュールA12からのバス138がセレクタ(セレクタ制御回路)16に接続される。同様に、モジュールB13からのバス139がセレクタ16に接続され、モジュールC14からのバス140がセレクタ16に接続され、モジュールD15からのバス1141がセレクタ16に接続される。セレクタ16からの信号は、出力バス、入力バスにより双方向IOモジュール17中の双方向バッファのIOに接続され、双方向端子120〜122(入出力端子)に前記出力バスの信号を出力するか、前記双方向端子120〜122の信号を前記入力バスに入力するか等の制御が可能である。
セレクタ16は、信号線128で動作制御回路(動作制御部)18に接続されており、その信号線上の信号(制御情報)で制御される。また、前述の通り双方向IOモジュール17は、動作制御回路18に接続されている信号線129の信号(制御情報)でも制御される。
動作制御回路18には、制御用端子116〜119が備わっており、これらの端子から入力される選択信号(SEL_A、SEL_B、SEL_C、SEL_D)の組み合わせで信号線128、129の制御情報を制御することができる。
また、動作制御回路18には、セレクタ153への制御線145が接続されている。また、通信制御ブロック(通信制御回路)112から、クロックおよびデータラインからなる信号線146がセレクタ153に接続されている。
すなわち、動作制御回路18から制御線145を通じてセレクタ153に制御信号が送出される。セレクタ153は、動作制御回路18から制御用端子に入力された制御信号(選択信号)に従って、通信制御ブロック112で受信した、シリアルバス端子115に入力された信号の受信結果であるデータを、端子141を通じてモジュールA12に接続する。なお、シリアルバス端子115には、シリアルクロック端子、シリアル入力信号端子(通信端子)が含まれる。
同様に、セレクタ153は、シリアルバス端子115からのデータを端子142を通じてモジュールB13に接続する。また同様に、セレクタ153は、シリアルバス端子115からのデータを端子143を通じてモジュールC14に接続する。また同様に、セレクタ153は、シリアルバス端子115からのデータを端子144を通じてモジュールD15に接続する。
リセット制御回路19は、信号線127を通じて、モジュールA12〜モジュールD15および通信制御回路112に接続され、RSTX端子(リセット端子)113に入力される信号で上記モジュール内部の回路をリセットする信号を生成する。
クロック制御回路110には、制御信号(選択信号)が伝達される信号線128が接続される。クロック制御回路110は、信号線128の制御情報で、モジュールA12に接続されているクロックライン130に、CLK端子114に入力される外部クロックを送出し、また、クロックの供給を停止させるように動作する。
同様に、クロック制御回路110は、信号線128の制御情報に従って、モジュールB13に接続されているクロックライン131に、CLK端子114に入力される外部クロックを送出し、また、クロックの供給を停止させるように動作する。また同様に、クロック制御回路110は、信号線128の制御情報に従って、モジュールC14に接続されているクロックライン132に、CLK端子114に入力される外部クロックを送出し、また、クロックの供給を停止させるように動作する。また同様に、クロック制御回路110は、信号線128の制御情報に従って、モジュールD15に接続されているクロックライン133に、CLK端子114に入力される外部クロックを送出し、また、クロックの供給を停止させるように動作する。
つぎに、上記構成を有する特定用途向け集積回路(ASIC)126の動作について説明する。モジュールA12〜モジュールD15は、全てそのモジュールの外部からの共通の通信仕様のインタフェース、クロック系統およびリセット系統で動作可能なモジュールであり、同じインタフェースを有する回路と置き換え可能である。
通常、モジュールA12〜モジュールD15は、これらのモジュールのうちの1つを選択して動作に供するように、設計されている。具体的に、動作制御部18は、これに接続されている制御用端子116〜119に入力される選択信号SEL_A、SEL_B、 SEL_C、SEL_Dの組み合わせを替えることで、任意のモジュールを選択できるように構成されている。表1には、任意のモジュールを選択する際の選択信号(SEL_A、SEL_B、SEL_C、SEL_D)の組み合わせ例が示されている。
これらの組み合わせにより、モジュールAを選択する際、動作制御回路18は、信号線128にモジュールAの選択信号を送出する。そして、モジュールA12からのバス138がセレクタ16を通じて双方向IOモジュール17を制御できるように、セレクタ16は動作する。なお、セレクタ16は入出力制御回路の一例である。
同時に、入力端子123〜125の信号がバス134を通じてモジュールA12に入力されるように、動作制御回路18は選択制御回路11を制御する。選択制御回路11も入出力制御回路の一例である。また同時に、動作制御回路18は、クロック制御回路110に対し、モジュールA12のみにクロックを送出し、他のモジュールB〜Dへのクロックが停止するように制御信号を送出する。また同時に、動作制御回路18は、セレクタ153をモジュールAに切り替えることで、通信制御回路112におけるシリアルバス端子115への入力信号の受信結果であるデータを、モジュールA12に設定するように、動作する。
なお、クロック制御回路110、通信制御回路112およびリセット制御回路19、動作制御回路18はそれぞれ動作制御回路の分割された部分の回路である。
同様に、モジュールBを選択する際、動作制御回路18は、信号線128にモジュールBの選択信号を送出する。そして、モジュールB13からのバス139がセレクタ16を通じて双方向IOモジュール17を制御できるように、セレクタ16は制御される。同時に、入力端子123〜125の信号がバス135を通じてモジュールB13に入力されるように、動作制御回路18は選択制御回路11を制御する。また同時に、動作制御回路18は、クロック制御回路110に対し、モジュールB13のみにクロックを送出し、他のモジュールA、C、Dのへのクロックが停止するように制御信号を送出する。また同時に、動作制御回路18は、セレクタ153をモジュールBに切り替えることで、通信制御回路112におけるシリアルバス端子115の信号の受信結果であるデータを、モジュールB13に設定するように、動作する。
また同様に、モジュールCを選択する際、動作制御回路18は、信号線128にモジュールCの選択信号を送出する。そして、モジュールC14からのバス140がセレクタ16を通じて双方向IOモジュール17に接続されるように、セレクタ16は制御される。
同時に、入力端子123〜25の信号がバス136を通じてモジュールC14に入力されるように、動作制御回路18は選択制御回路11を制御する。また同時に、動作制御回路18は、クロック制御回路110に対し、モジュールC14のみにクロックを送出し、他のA、B、Dのモジュールへのクロックが停止するように制御信号を送出する。また同時に、動作制御回路18は、セレクタ153をモジュールCに切り替えることで、通信制御回路112におけるシリアルバス端子115の信号の受信結果であるデータを、モジュールC14に設定するように、動作する。
また同様に、モジュールDを選択する際、動作制御回路18は、信号線128にモジュールDの選択信号を送出する。そして、モジュールD15からのバス1141がセレクタ16を通じて双方向IOモジュール17に接続されるように、セレクタ16は制御される。同時に、入力端子123〜25の信号がバス137を通じてモジュールD15に入力されるように、動作制御回路18は選択制御回路11を制御する。また同時に、動作制御回路18は、クロック制御回路110に対し、モジュールD15のみにクロックを送出し、他のA〜Cのモジュールへのクロックが停止するように制御信号を送出する。また同時に、動作制御回路18は、セレクタ153をモジュールDに切り替えることで、通信制御回路112におけるシリアルバス端子115の信号の受信結果であるデータを、モジュールD15に設定するように、動作する。また同時に、動作制御回路18は、各モジュールA12〜モジュールD15のIOの方向制御情報も有しており、それをベースに選択制御回路11および双方向IOモジュール17に信号線129を通じて方向端子制御(3ステート制御)信号を送出する。これにより、各モジュールの各IOの方向制御及び3ステート制御が実現される。
このように、第1の実施形態の特定用途向け集積回路によれば、複数のモジュールを共通のインタフェースで1個のASICのチップ上に構成するので、縮小化したプロセスルールのチップでも、十分に大きなチップサイズをとることができる(大きくなりすぎる事も縮小化の条件等を変えることで避ける事ができる)。従って、ピンネックを避けつつ、効率的なASICを開発することができる。さらに、量産の数量を増やして生産効率を上げることによって、単価を下げる効果が得られる。
また、全体として、モジュール1個使いの場合より量産の数量を倍以上にすることが可能であるので、低効率の少量個数生産によるコストアップを避ける事ができる。
さらに、個別にASICを作成する場合に比べ、小さなASICを実現できるサブミクロンのプロセス(1/2〜1/16程度のバルクサイズの縮小化が可能)を用いても、チップサイズは、必要なピンを接続するのに必要な大きさのサイズを、複数モジュールをまとめる事でとることができる。これにより、ピンネックとならず、ASICを実装することができる。また、個別に設計した場合に比べ、ASIC単価のコストダウンを図ることができる。また、ASICの開発工数も、複数の機種から1機種の開発になるので、削減することが可能である。
また、共通のインタフェースとして、クロック端子、リセット端子および共通シリアル通信仕様の通信端子を用いるので、IOの端子数を削減し、かつインタフェースの共用が図られる。また、選択したモジュール以外のモジュールに対してクロック供給を停止することで、エネルギー消費を削減し、チップ昇温の低減に寄与することができる。
[第2の実施形態]
図2は第2の実施形態における特定用途向け集積回路の構成を示す回路図である。第2の実施形態における特定用途向け集積回路(ASIC)では、前記第1の実施形態から、モジュールDが削除されている。また、通信制御モジュールが各モジュールA、B,C内に実装されている。さらに、モジュールBとモジュールCの共用(共通)モジュール21が追加されている。この共用モジュール21は、信号線23、24を通じてそれぞれモジュールB13、モジュールC14に接続されている。また、信号線127が、共用モジュール21のリセット端子にも接続されている。
また、選択制御回路11は、セレクタと双方向IOモジュールの組み合わせからなり、セレクタ16と双方向IO17をまとめた回路と同等である。また、前記第1の実施形態における、双方向IOモジュール17の方向を固定するための信号を伝達する信号線129は削除されている。この信号は、あらかじめ選択制御回路11または、セレクタ16中に設定しておくか、モジュール12〜15で制御できるようにしておく。また、制御用端子116、117も2本に変更され、制御用端子116、117には、選択信号SEL_1,SEL_2が入力される。また、動作制御回路18の代わりに、動作制御回路28が設けられる。その他、前記第1の実施形態と同一の構成要素については、同一の符号が付されている。
前述したように、図2に示すASIC226では、モジュールA、B、C内にシリアル通信ブロック(通信制御モジュール、シリアル通信送受信回路)が内蔵されている。シリアルバス端子115には、外部からのクロック信号線やシリアルデータ入力信号線(通信端子)が接続されている。
シリアルバス端子115を経由したデータは、各モジュール内のシリアル通信受信回路に同時に入力される。各モジュールのうち、選択されたモジュールだけ、クロックが動作するのでそのシリアル通信ブロックで受信したデータを利用することができる。それ以外のモジュールは、クロックが止まっているので、データを読み出せない。
ただし、データの読み込み結果を返信するための返信用信号端子は、切り替え可能な双方向端子122を出力端子として、各モジュールで切り替えて割り当てられる。
シリアル通信ブロックは、外部から、モジュールA、B、C内部のレジスタ設定データを送受信できるものであればよい。例えば、汎用のUART(汎用非同期送受信回路)や同期式シリアル通信等が利用可能である。本実施形態の場合、外部からクロックが供給される調歩同期方式が利用される。
つぎに、動作制御回路28およびクロック制御回路110の詳細動作について説明する。図3は動作制御回路28およびクロック制御回路110の構成を示す回路図である。動作制御回路28は、選択信号SEL_1,SEL_2を2入力とするデコーダ回路51で構成される。
選択信号SEL_1,SEL_2の組み合わせにより、動作制御回路28のデコーダ回路51の出力端子0,1,2,3には、それぞれつぎのような信号が出力される。すなわち、選択信号SEL_1,SEL_2が“0”,“0”であるとき、“1”,“0”,“0”,“0”が出力される。また、選択信号SEL_1,SEL_2が“1”,“0”であるとき、“0”,“1”,“0”,“0”が出力される。また、選択信号SEL_1,SEL_2が“0”,“1”であるとき、“0”,“0”,“1”,“0”が出力される。
動作制御回路28のデコーダ回路51の出力信号は、信号線128を通じてクロック制御回路110に入力される。信号線128は後述するセレクタ16にも接続される。セレクタ16は、選択されたモジュールからの信号のみ、双方向IOモジュール17中のIOバッファの、入力(IN)あるいは出力(OUT)端子と接続できるように、双方向IOモジュール17への接続を切り替える。
同時に、クロック制御回路110は、信号線128の信号でクロックを制御する。具体的に、クロック制御回路110は、クロックセレクタ52〜55およびOR回路(ゲート)56から構成される。動作制御回路28を構成するデコーダ回路51の出力端子0はクロックセレクタ52のセレクト端子に接続される。また、デコーダ回路51の出力端子1はクロックセレクタ53のセレクト端子に接続される。また、デコーダ回路51の出力端子2はクロックセレクタ54のセレクト端子に接続される。また、デコーダ回路51の出力端子1,2は2入力ORゲート56の入力にそれぞれ接続される。2入力ORゲート56の出力端子はクロックセレクタ55のセレクト端子に接続される。
また、クロックセレクタ52〜55のクロック端子は、全てCLK端子(クロック端子)114に接続される。また、クロックセレクタ52の出力は、出力端子OUT_1_30を通じて信号線130に接続される。また、クロックセレクタ53の出力は、出力端子OUT_1_31を通じて信号線131に接続される。また、クロックセレクタ54の出力は、出力端子OUT_1_32を通じて信号線132に接続される。また、クロックセレクタ55の出力は、出力端子OUT_2_2を通じて信号線22に接続される。このように、クロック制御回路110は、クロックセレクタ52〜54によりモジュールAからモジュールCに供給するクロックを切り替えることができる。
同時にクロック制御回路110は、2入力ORゲート56およびクロックセレクタ55により、共用モジュール21に供給されるクロックが、この共用モジュール21を使用するモジュールのクロックと同じクロックが供給されるように構成されている。
つぎに、上記構成を有するASIC226の動作について説明する。図4は動作制御回路28およびクロック制御回路110における各部の信号の変化を示すタイミングチャートである。ASIC226では、選択信号SEL_1,SEL_2の組み合わせで、動作モジュールが選択される。すなわち、選択信号SEL_1,SEL_2が“0”、“0”のとき、モジュールAの選択モードで、デコーダ回路51の出力端子0のみが“1”となる。これにより、クロックセレクタ52のセレクト端子に“1”が入力され、クロックセレクタ52のクロック端子に入力されているクロックが信号線130に出力される。この場合、信号線131,132には、“0”が出力され、CLK端子114に入力されたクロックがモジュールAのみに供給される。
また、選択信号SEL_1,SEL_2が“1”,“0”のとき、モジュールB13及び共通モジュール21を選択するモードとなり、デコーダ回路51の出力端子1のみが“1”となる。これにより、クロックセレクタ53のセレクト端子に“1”が入力され、クロックセレクタ53のクロック端子に入力されているクロックが信号線131に出力される。この場合、信号線130,132には、“0”が出力され、CLK端子114に入力されたクロックがモジュールBに供給される。ただし、この場合、デコーダ回路51の出力端子1の信号は、ORゲート56を通じてクロックセレクタ54のセレクト端子にも加わり、モジュールBの選択時、共通モジュール21にもクロックが加わる。
また、選択信号SEL_1,SEL_2が“0”,“1”のとき、モジュールC14及び共通モジュール21を選択するモードとなり、デコーダ回路51の出力端子2のみが“1”となる。これにより、クロックセレクタ54のセレクタのセレクト端子に“1”が入力され、クロックセレクタ54のクロック端子に入力されているクロックが信号線132に出力される。この場合、信号線130,131には、“0”が出力され、CLK端子114に入力されたクロックがモジュールCに供給される。ただし、この場合、デコーダ回路51の出力端子2の信号は、ORゲート56を通じてクロックセレクタ55のセレクト端子にも加わり、モジュールCの選択時,共通モジュール21にもクロックが加わる。
このように、共通ブロックとしての共通モジュール21は、共通に用いる、モジュールA、Bのいずれかのモジュールが動作する場合、クロックが供給されて動作可能となる。
なお、クロックセレクタ52〜55は、2入力AND回路でもよいし、通常クロックドゲートの制御に用いられるラッチで構成されていてもよい。。
このように、クロックを選択することで、図2の回路では、選択されたモジュールおよび共通ブロック(回路)のみに、クロックが供給されるようになる。従って、クロックの供給されない回路は停止状態となり、動作に寄与しなくなる。
ここで、選択信号SEL_1,SEL_2が“1”,“0”のときにおける、ASIC226全体の動作について検討する。図5は選択信号SEL_1,SEL_2が“1”,“0”の場合における初期化シーケンスを示すタイミングチャートの一例である。図5に示す各信号がASIC226の各IOピンから与えられる。すなわち、CLK端子114にクロックが入力しながら、リセット信号RSTXがリセット端子113を通じて外部から与えられる。リセット制御回路19がシュミットバッファからなるIOパッドである場合、リセット信号RSTXは波形整形されてモジュールBに入力し、RSTX信号がLのときのクロックの立ち上がりでモジュールB13及び共通モジュール21のみがリセットされる。ここで、各モジュールのFFはクロック同期である。
そして、シリアルバス端子115を経由したデータでモジュールBの動作に必要なパラメータを設定した後、(例えば、シリアルバスのクロックSCLKの立下り毎にDATAの情報を通信モジュール内部のシフトレジスタ内に取り込みながら、逐次シフトし、その通信1サイクル終了時に(例えば16クロック終了時に)モジュールB内に転送すればよい。データは例えば上位8ビットをアドレス情報、下位8ビットをレジスタ設定情報としても良い)動作スタートのレジスタを設定することにより、選択制御回路11およびセレクタ16の設定情報が決まる。これにより、IOピンASIC_IP01〜06を用いたモジュールBの制御が実行可能となる。このことは、SEL_1,SEL_2が“0”、“1”の場合のモジュールC選択時においても同様である。
また、SEL_1,SEL_2が“0”、“0”の場合のモジュールA選択時の場合も同様であるが、異なる点としては共通モジュール21へのクロックが禁止され、モジュールAのみがリセット及び制御動作が可能となる。
なお、モジュールA,B,Cは、それぞれ5万ゲート以上の、通常10万ゲート〜40万ゲート規模のモジュールである。各モジュールには、5000個以上の数のフリップフロップ(ff)が設けられている。これらのffのクロック端子にCLK端子114からのクロックが加わることで、これらのffはほぼ同時スイッチングに近いタイミングで動作する。
図6はIO端子を制御するためのセレクタ16の構成を示す回路図である。AND回路91〜93は、双方向IOモジュール17への出力を選択し、OR回路94およびXOR回路95を通じて出力するように動作する。AND回路96〜98は、双方向IOモジュール17のIO端子に入力されIO_INバスから出力される信号IO_IN信号を、選択して内部ブロックへ伝送するように動作する。
また、セレクタ99、910、911は、3ステートバッファのコントロール信号を選択し、OR回路912およびインバータ913を通じてIOモジュール17中のIOバッファのコントロール端子の制御信号をTO_BUF_CNT端子上に生成する。
SEL_A,SEL_B,SEL_Cは、動作制御回路28が、信号線128上に出力する信号で、図3に示されているSEL_A,SEL_B,SEL_Cの信号と等価である。SEL_1,SEL_2が“0”、“0”の場合のモジュールA選択時、SEL_Aのみが1となり、ゲート91,96及びセレクタ99が選択され、他のゲートやセレクタは切断されるように動作する。即ち、この条件では、SEL1_IN_TO_OUTに加わる信号だけが、TO_BUF_IN0バスに出力されるように接続される。
同時に、双方向バッファのIO端子の信号がIN_IOバス及び、ゲート96を通じてSEL1_OUT_TO_INに入力するように動作する。即ち、このモードでは、SEL1_IN_TO_OUTをモジュールAの出力端子に接続する事で、モジュールAの出力信号をASICの出力信号としてTO_BUF_IN0バスを通して、出力する事が可能である。その場合、SEL1_CNTに加わる信号と合わせ用いる事で、3ステートバッファとしての動作も実現できる。
入力端子としてのみ使いたい場合、入力したいIOピンのSEL_OUT_TO_IN信号をモジュールAの入力端子に接続すればよい。その場合、そのピンに対するSEL1_CNTはH(固定値)に設定する事で、出力バッファをHインピーダンスにし、内部回路の影響をなくす事が可能である。また、制御信号をモジュールAからSEL1_CNTに出力する事で双方向バッファとしての機能も実現できる。
このように、各ピンに対して上記の3つの信号を適宜組み合わせる事で、モジュールAは、双方向バッファ、3ステートバッファ、出力バッファ、入力バッファの4つのIOの機能を16,17の回路を用いて実現できる。例えばIO120,121,122に対して、モジュールAは、図6の回路を各IOに1個ずつ、計3個用いてそれぞれのIOが双方向バッファ、3ステートバッファ、出力バッファ、入力バッファの4つのIOの機能のどれか1つの機能を選択して実現できる(図12参照)。このことは、モジュールB選択時、モジュールC選択時でも同じことである。なお、端子TESTに“0”あるいは“1”の固定値を入力することで、出力反転制御することが可能となる。双方向バッファ12−1に関して、そのIO端子がASIC_IP04であり、ASIC_IP04へ出力する信号を入力する端子がTO_BUF_IN0_04であり、ASICIP04からの入力信号を出力する端子がIO_IN_04である。TO_BUF_CNT_04はその出力バッファのHインピーダンス制御端子であり、TO_BUF_CNT_04がLのとき出力Hインピダンスとなる。双方向バッファ12−2及び12−3も双方向バッファ12−1と同様である。
なお、図6のTO_BUF_IN0、IO_IN、TO_BUF_CNTと、図12のTO_BUF_IN0バス、IO_INバス、TO_BUF_CNTバスをそれぞれ接続することで、図12中の双方向バッファを制御できる。なお、TO_BUF_IN0バスはTO_BUF_IN0_04〜06、IO_INバスはIO_IN_04〜06、TO_BUF_CNTバスはTO_BUF_CNT_04〜より構成されている。
第2の実施形態の特定用途向け集積回路によれば、前記第1の実施形態と同様の効果を得られる他、さらに、共通モジュールとして同じ回路を共用することで、ゲートを有効に活用することができ、コストダウンが図れる。すなわち、共通モジュールを設けることで、独立に回路を設ける場合に比べ、その部分のチップに占める面積を半分にすることができる。
[第3の実施形態]
第3の実施形態では、前記第1、第2の実施形態のASICにおける電源系統のレイアウトについて説明する。図7は第3の実施形態における電源系統のレイアウトイメージを示す回路図である。電源パッド31〜34として、VDDパッド(+電源端子)31,32およびVSSパッド(−電源端子)33,34が設けられている。VDDパッド31、32は、簡単に説明するためASICを構成するシリコン(Si)のバルク内部で、VDDの配線325によって互いに接続されているものとする。同様に、VSSパッド33,34は、ASICを構成するシリコンのバルク内部で、VSSの配線326によって互いに接続されているものとする。
バルク内部の一部分であるエリア324は、D−フリップフロップ(DFF)310〜313から構成される。DFF310〜313は、DFFを構成しているエリアをシンボリックに表示したものである。図7では、説明を簡単にするために、それぞれのマクロ部へ行く回路は、電源回路のみレイアウトイメージで表現されている。また、クロック以外の他の信号線は省略され、また、クロックもシンボリックな回路としてのみ表現されている。
レジスタreg1となるDFF310の+電源端子には、ライン314を通じて、VDDライン(配線)325が接続される。また、その−電源端子には、ライン327を通じて、VSSライン(配線)326が接続される。同様に、レジスタreg3となるDFF311の+電源端子には、ライン315を通じて、VDDライン325が接続される。また、その−電源端子には、ライン328を通じて、VSSライン326が接続される。 同様に、レジスタreg2となるDFF312の+電源端子には、ライン316を通じて、VDDライン325が接続される。また、その−電源端子には、ライン318を通じて、VSSライン326が接続される。同様に、レジスタreg4となるDFF313の+電源端子には、ライン317を通じて、VDDライン325が接続される。また、その−電源端子には、ライン319を通じて、VSSライン326が接続される。
DFF310、313のクロック端子には、2入力ANDゲート38の出力端子が接続される。また、DFF311、312のクロック端子には、2入力ANDゲート39の出力端子が接続される。
また、2入力ANDゲート38の一方の入力端子は、セレクト端子35に接続され、もう一方の端子は、クロック端子37に接続されている。同様に、2入力ANDゲート39の一方の入力端子は、セレクト端子36に接続され、もう一方の端子は、クロック端子37に接続されている。
ここで、DFF310,313はモジュールAの構成回路の一部であり、DFF311,312はモジュールBの構成回路の一部であるとする。
このように回路が構成されているので、クロック端子37にCLK端子からのクロックが供給され、セレクト端子35に“0”のブロックA非選択信号が供給され、セレクト端子36に“1”のブロックB選択信号が供給されると、つぎのような動作が行われる。すなわち、2入力ANDゲート39により、DFF311,312には、クロック端子37のクロックが供給される。一方、2入力ANDゲート38により、DFF310,313には、クロック端子37のクロックの供給がストップされる。なお、このように、複数のDFFが混在する部分に供給されるクロックとして、本実施形態では、10MHz以上の高速クロックが用いられる。
図8はVDDパッド31とVSSパッド33の間、およびVDDパッド32とVSSパッド34との間に電圧が供給されている状態における各部の信号変化を示すタイミングチャートである。図8には、(a)VDD−VSS間電圧、(b)クロック端子37のクロック信号、(c)全回路同時動作電流、および(d)ブロックBのみ動作時の電流の変化が示されている。
同図(a)に示すように、VDD−VSS間に電圧が供給されている状態で、クロックがクロック端子37に入力されると、同図(d)に示す回路電流がVDD−VSS間の電源に流れる。一方、レイアウト全体が同時に動く場合、つまり、セレクト端子35、36の両方に“1”の信号が入力し、ブロックA、Bが同時に動く場合、同図(c)に示す回路電流が流れる。
一方、ブロックBのみ動作する、同図(d)に示す電流の波形では、同図(c)に示す電流の波形と比べると、電流のピークが半分以下となり、かつ電流の立ち上がり時間trも長くなる。
ここで、仮に、モジュールA、Bで、このようにレイアウトが混在していない場合でも、電流の波形は、同図(d)に示す電流の波形と比べると、ピークの大きなかつ立ち上がり時間trの短い波形となり、急峻な電流が流れることになる。
またここで、等価的に、DFF310のdff部分の等価電源容量をC1、DFF311のdff部分の等価電源容量をC2、DFF312のdff部分の等価電源容量をC3、DFF313のdff部分の等価電源容量をC4とする。
レイアウト全体が同時に動く場合、すなわち、セレクト端子35、36の両方に“1”の信号が入力し、ブロックA、Bが同時に動く場合、つぎのような動作が行われる。すなわち、容量C1,C2,C3,C4の電荷は、DFFがスイッチングする度に、その回路部分で放電されるので、その都度、電荷は電源パッド31,32,33,34を通じて電源から直接供給される必要が生じる。
しかし、セレクト端子35に“0”のブロックA非選択信号が供給され、セレクト端子36に“1”のブロックB選択信号が供給される場合、容量C1,C3では、FFのスイッチングが行われる度に、電荷がその回路部分で放電されてしまう。一方、容量C2、C4では、その回路部分で瞬時の放電が無いので、スイッチングのタイミングでは容量C2の電荷は容量C1に流れ、容量C4の電荷は容量C3に流れ込む。これにより、電源パッド31〜34を通じた、電源からの急峻な電荷の供給が減少する効果が得られる。
また、このことは、急峻な電流が長い線路を流れることによって生じるノイズ源の発生を大きく抑える効果がある。また、ノイズを抑えるために、専用の容量を電源に挿入することなく、ノイズを削減できる効果、つまり電源容量によるノイズ低減効果がある。
また同時に、ASICの発熱、つまり、電流×電圧で決まる回路全体の発熱が抑えられることは勿論である。また、このようなレイアウトをとることで、同時に動作する領域による熱が部分的に集中することなく、部分的な発熱も抑えられる。
第3の実施形態の特定用途向け集積回路によれば、複数のモジュールを選択的に動作させ、かつ、スイッチング動作しているフリップフロップの直近の位置に、クロックが停止しているモジュールのゲート、FF等の論理回路を配置することができる。従って、モジュール単体で構成されたASICに比べ、スイッチング動作するFFの直近の電源配線間に静電容量を増やすことができる。従って、余計な容量をASICの内部に追加しなくても、また、電源ピンを最小限に減らしても、ASIC起因のノイズ発生を抑えることができる。
[第4の実施形態]
第4の実施形態では、前記第2の実施形態におけるASICのレイアウトについて説明する。図9は第4の実施形態におけるASICのレイアウトを示す図である。図2の回路のレイアウトを実現するためには、半導体のレイアウト領域63の中に、モジュールのレイアウト位置の指定が必要となる。
図9では、第2の実施形態におけるASIC226の回路を配置(レイアウト)する場合、まず、半導体チップ61の周辺に、IOピンを取り出すためのIOパッド62の位置および信号を割り当てる。また同時に、内部回路のモジュールを配置する領域を決めてレイアウトを行う。
図9の場合、モジュールAと共通モジュール21のレイアウト領域を重ねて指定する。また、モジュールBとモジュールCのレイアウト領域が互いに重なるように、かつ、モジュールAおよび共通モジュール21とモジュールB、Cのレイアウト領域が互いに重ならないように、レイアウト(配置)を決定する。
このように、同じ領域内で均一の密度にFF等の回路が散らばるように、かつ、できれば入れ子のような位置関係でレイアウトを設定することで、結果として、互いの回路が混在して配置される。
モジュールAと共通モジュール21は互いに同時に動作せず、モジュールBとモジュールCは、互いに同時に動作しない。従って、このように配置することで、モジュールAと共通モジュール21との間で、前記第3の実施形態で示したようなノイズ削減効果を期待することができる。同様に、モジュールBとモジュールCの間で、前記第3の実施形態で示したようなノイズ削減効果を期待することができる。
また、ASIC内部で、確実に入れ子のような位置関係でモジュールが配置(レイアウト)されなくても、平均して2つのモジュールのFF等の回路が混在すればよい。これにより、電源入力端子に対し、内部の直近の回路間で流れる内部電流の効果により、混在する回路がない場合に比べ、スイッチング電流の立ち上がり時間が抑えられる。従って、電源ノイズが削減される効果が生じる。また、これと同時に、部分的な昇温を抑制する効果も得られる。また、IOピンを割り当てる際、必要最小限の内部電源用のIOの個数をIOパッドに割り当てても、ノイズで問題を起こさない効果が期待できる。
このように、動作するモジュールと、クロックが停止したモジュールとが互いに均一に配置されるので、部分的な温度上昇による昇温のトラブルを防ぐことができる。特に、クロックが10MHz以上の高速クロックである場合、ノイズの削減やチップ昇温の低減に有効である。
[第5の実施形態]
第5の実施形態では、モジュールA、Bにおけるフリップフロップのレイアウトについて説明する。図10は第5の実施形態におけるモジュールA、Bにおけるフリップフロップのレイアウトを示す図である。
図10には、図7のFF部を含む、周辺のFF部が示されている。図中、1つの黒部分は、AモジュールのFF(フリップフロップ)、つまり、DFF310、313の1つに相当する。同様に、1つの白部分は、BモジュールのFF(フリップフロップ)、つまり、DFF311、312の1つに相当する。
図10の場合、FFは、千鳥の関係(互い違い)で電源ラインに沿って配列される。一方、電源ラインが配置されている方向でない方向には、図にも含まれているとおり(符号101参照)、千鳥の関係(互い違い)にFFが配列される必然性はない。
図11は他のモジュールA、Bにおけるフリップフロップ(FF)のレイアウトを示す図である。図11には、AモジュールのFFの塊の黒部分212と、BモジュールのFFの塊の部分211が存在したレイアウト例が示される。
ノイズ対策には、図10のレイアウトの方がより効果的であるが、図11のレイアウトでも、FFの塊の部分211、212として、数個〜数100個程度のFFが固まっても、ASIC全体としてノイズを抑えかつ局所的な昇温を抑える効果が得られる。
なお、本発明は、上記実施形態の構成に限られるものではなく、特許請求の範囲で示した機能、または本実施形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。
例えば、上記実施形態では、特定用途向け集積回路は、複写機やプリンタのエンジンに用いられるDCコントローラに適用されたが、特に限定されるものではない。また、上記実施形態では、モジュールの数は4個であったが、任意の数でよいことは勿論である。