(57)【要約】【課題】半導体集積回路におけるグローバル配線の迂回を解消しながら、回路規模の増大を抑制すること。【解決手段】ハードマクロ１０は、入力端子ＩＮ＿ＰＳと、出力端子ＯＵＴと、内部回路２０と、セレクタ３０とを備える。内部回路２０は、出力端子ＯＵＴにつながるリピータ２５を有する。また、内部回路２０は、第１モード時には活性化されて上記リピータ２５を通して出力端子ＯＵＴに内部信号を出力し、一方、第２モード時には非活性化される。セレクタ３０は、当該リピータ２５の前段に設けられる。このセレクタ３０は、第１モード時には内部回路２０から受け取る内部信号をリピータ２５に出力する一方、第２モード時には入力端子ＩＮ＿ＰＳに入力される入力信号をリピータ２５に出力するように構成されている。【選択図】図２
2011035011.tif 000002
【特許請求の範囲】
【請求項１】
ハードマクロを備える半導体集積回路であって、
前記ハードマクロは、
入力端子と、
出力端子と、
前記出力端子につながるリピータを有し、第１モード時には活性化されて前記リピータを通して前記出力端子に内部信号を出力し、第２モード時には非活性化される内部回路と、
前記リピータの前段に設けられ、前記第１モード時には前記内部回路から受け取る前記内部信号を前記リピータに出力する一方、前記第２モード時には前記入力端子に入力される入力信号を前記リピータに出力するように構成されたセレクタと
を備える
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路であって、
前記第１モードはテストモードであり、
前記内部回路は、前記テストモードにおいて前記ハードマクロのテストに用いられるテスト回路である
半導体集積回路。
【請求項３】
請求項１又は２に記載の半導体集積回路であって、
前記ハードマクロは、更に、イネーブル信号が入力されるイネーブル信号入力端子を備え、
前記セレクタは、前記イネーブル信号に応じて選択動作を行い、
前記第１モードにおいて、前記イネーブル信号はイネーブル状態に設定され、前記内部回路は活性化され、前記セレクタは前記内部回路からの前記内部信号を選択し、
前記第２モードにおいて、前記イネーブル信号はディスエーブル状態に設定され、前記内部回路は非活性化され、前記セレクタは前記入力端子からの前記入力信号を選択する
半導体集積回路。
【請求項４】
請求項１乃至３のいずれか一項に記載の半導体集積回路であって、
更に、
出力が前記ハードマクロの前記入力端子に接続された第１機能回路と、
入力が前記ハードマクロの前記出力端子に接続された第２機能回路と
を備え、
前記第２モードにおいて、前記第２機能回路は、前記第１機能回路から出力される信号に基づいて動作する
半導体集積回路。
【請求項５】
請求項４に記載の半導体集積回路であって、
前記ハードマクロは、前記第１機能回路と前記第２機能回路とに挟まれた位置に配置されている
半導体集積回路。
【請求項６】
ハードマクロを備える半導体集積回路であって、
前記ハードマクロは、
入力端子と、
出力端子と、
イネーブル信号が入力されるイネーブル信号入力端子と、
前記出力端子につながるリピータを有し、前記イネーブル信号がイネーブル状態のときに活性化されて前記リピータを通して前記出力端子に内部信号を出力し、前記イネーブル信号がディスエーブル状態のときに非活性化される内部回路と、
前記リピータの前段に設けられ、前記イネーブル信号が前記イネーブル状態の場合は前記内部回路から受け取る前記内部信号を前記リピータに出力する一方、前記イネーブル信号が前記ディスエーブル状態の場合は前記入力端子に入力される入力信号を前記リピータに出力するように構成されたセレクタと
を備える
半導体集積回路。
【請求項７】
請求項６に記載の半導体集積回路であって、
前記イネーブル信号は、テストイネーブル信号であり、
前記内部回路は、前記イネーブル信号が前記イネーブル状態のときに前記ハードマクロのテストに用いられるテスト回路である
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードマクロを備える半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路では様々なマクロ（機能ブロック）が用いられる。半導体集積回路内でマクロ間を接続する配線は、以下「グローバル配線」と参照される。このグローバル配線の長大化は、信号遅延の増大や信号波形の悪化を招き、好ましくない。
【０００３】
例として、第１マクロと第２マクロとに挟まれる位置に、第３マクロが配置されている状況を考える。第２マクロが第１マクロで生成される信号に基づいて動作する場合、第１マクロの出力端子と第２マクロの入力端子との間をグローバル配線でつなぐ必要がある。しかしながら、第１マクロと第２マクロとの間には第３マクロが配置されているため、当該グローバル配線を第３マクロを迂回するようにルーティングせざるを得ない。このような迂回がグローバル配線の長大化を招く。
【０００４】
特許文献１（特開２００３−１８８２５９号公報）は、グローバル配線の迂回の解消に寄与するハードマクロを開示している。そのハードマクロは、グローバル配線を中継するような回路構造を内蔵している。より詳細には、そのハードマクロは、中継入力端子、中継出力端子、それら中継入力端子と中継出力端子との間をつなぐ中継配線、及び中継配線上に設けられたリピータを備えている。それら中継入力端子、中継出力端子、中継配線、及びリピータは、グローバル配線の中継に専ら用いられる。
【０００５】
上記例において、第３マクロが特許文献１で記載されたハードマクロであるとする。その場合、第１マクロの出力端子から第３マクロの中継入力端子にグローバル配線が接続され、また、第３マクロの中継出力端子から第２マクロの入力端子にグローバル配線が接続される。すなわち、第１マクロから第２マクロへのグローバル配線が、第３マクロを貫通するようにルーティングされる。その結果、グローバル配線の迂回や長大化が解消される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１８８２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本願発明者は次の点に着目した。特許文献１に記載された技術の場合、グローバル配線の中継専用のリピータ等を各ハードマクロ内に配置しておく必要がある。このことは、回路規模の増大を招く。
【課題を解決するための手段】
【０００８】
本発明の第１の観点において、ハードマクロを備える半導体集積回路が提供される。そのハードマクロは、入力端子と、出力端子と、内部回路と、セレクタとを備える。内部回路は、出力端子につながるリピータを有する。また、内部回路は、第１モード時には活性化されて上記リピータを通して出力端子に内部信号を出力し、一方、第２モード時には非活性化される。セレクタは、当該リピータの前段に設けられる。このセレクタは、第１モード時には内部回路から受け取る内部信号をリピータに出力する一方、第２モード時には入力端子に入力される入力信号をリピータに出力するように構成されている。
【０００９】
本発明の第２の観点において、ハードマクロを備える半導体集積回路が提供される。そのハードマクロは、入力端子と、出力端子と、イネーブル信号入力端子と、内部回路と、セレクタとを備える。イネーブル信号入力端子には、イネーブル信号が入力される。内部回路は、出力端子につながるリピータを有する。また、内部回路は、イネーブル信号がイネーブル状態のときに活性化されてリピータを通して出力端子に内部信号を出力し、一方、イネーブル信号がディスエーブル状態のときに非活性化される。セレクタは、当該リピータの前段に設けられる。このセレクタは、イネーブル信号がイネーブル状態の場合は内部回路から受け取る内部信号をリピータに出力する一方、イネーブル信号がディスエーブル状態の場合は入力端子に入力される入力信号をリピータに出力するように構成されている。
【発明の効果】
【００１０】
本発明によれば、半導体集積回路におけるグローバル配線の迂回を解消しながら、回路規模の増大を抑制することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施の形態に係るハードマクロの構成を概略的に示す回路図である。
【図２】図２は、本発明の実施の形態に係る半導体集積回路の一例を概略的に示す回路図である。
【図３】図３は、図２で示された半導体集積回路の具体例を示す回路図である。
【図４】図４は、本発明の実施の形態に係る半導体集積回路の設計方法を示すフローチャートである。
【図５】図５は、ステップＳ２００を説明するための図である。
【図６】図６は、ステップＳ３００を説明するための図である。
【発明を実施するための形態】
【００１２】
添付図面を参照して、本発明の実施の形態を説明する。
【００１３】
図１は、本実施の形態に係るハードマクロ１０の構成を概略的に示す回路図である。ハードマクロ１０は、イネーブル信号入力端子ＩＮ＿ＥＮ、貫通信号入力端子ＩＮ＿ＰＳ、出力端子ＯＵＴ、内部回路２０、及びセレクタ３０を備えている。
【００１４】
イネーブル信号入力端子ＩＮ＿ＥＮには、イネーブル信号ＥＮが入力される。そのイネーブル信号ＥＮは、内部回路２０及びセレクタ３０に供給される。
【００１５】
内部回路２０は、イネーブル信号ＥＮによって活性／非活性が制御される回路である。具体的には、イネーブル信号ＥＮがイネーブル状態（ＥＮ＝“１”）のとき、内部回路２０は活性化され、イネーブル信号ＥＮがディスエーブル状態（ＥＮ＝“０”）のとき、内部回路２０は非活性化される。この内部回路２０は、出力端子ＯＵＴにつながるリピータ（バッファ）２５を有している。イネーブル信号ＥＮがイネーブル状態（ＥＮ＝“１”）のとき、すなわち、内部回路２０が活性化されて動作するとき、その内部回路２０は、リピータ２５を通して出力端子ＯＵＴに内部信号を出力する。その内部信号は、出力端子ＯＵＴを通して、ハードマクロ１０の外部に出力される。リピータ２５は、内部回路２０に含まれる出力バッファであると言える。
【００１６】
セレクタ３０（切り替え回路）は、上記リピータ２５の前段に設けられている。つまり、セレクタ３０の出力は、リピータ２５の入力に接続されている。一方、セレクタ３０の入力は、内部回路２０及び貫通信号入力端子ＩＮ＿ＰＳに接続されている。上述の通り、内部回路２０を制御するためのイネーブル信号ＥＮがセレクタ３０にも供給され、セレクタ３０は、そのイネーブル信号ＥＮに応じて選択動作を行う。具体的には、イネーブル信号ＥＮがイネーブル状態（ＥＮ＝“１”）の場合、セレクタ３０は、内部回路２０の側の入力を選択し、内部回路２０から受け取る内部信号をリピータ２５に出力する。一方、イネーブル信号ＥＮがディスエーブル状態（ＥＮ＝“０”）の場合、セレクタ３０は、貫通信号入力端子ＩＮ＿ＰＳの側の入力を選択し、貫通信号入力端子ＩＮ＿ＰＳから受け取る入力信号をリピータ２５に出力する。
【００１７】
イネーブル信号ＥＮは、半導体集積回路の動作モードに応じて切り替えられる。具体的には、第１モードにおいて、イネーブル信号ＥＮはイネーブル状態（ＥＮ＝“１”）に設定され、第２モードにおいて、イネーブル信号ＥＮはディスエーブル状態（ＥＮ＝“０”）に設定される。従って、第１モードにおいては、内部回路２０は活性化され、セレクタ３０は内部回路２０から受け取る内部信号をリピータ２５に出力し、その内部信号がリピータ２５を通して出力端子ＯＵＴに出力される。一方、第２モードにおいては、内部回路２０は非活性化され、セレクタ３０は、貫通信号入力端子ＩＮ＿ＰＳに入力される入力信号をリピータ２５に出力し、その入力信号（貫通信号）がリピータ２５を通して出力端子ＯＵＴに出力される。
【００１８】
第１モードと第２モードとは、排他的な関係にあることが望ましい。例えば、第１モードは「テストモード」であり、第２モードは「通常動作モード（ファンクションモード）」である。その場合、テストモード時に活性化される内部回路２０は、ハードマクロ１０のテストに用いられるテスト回路であり、そのテスト回路２０の活性／非活性を制御するイネーブル信号ＥＮは、テストイネーブル信号である。ハードマクロ１０のテスト回路２０としては、ＢＩＳＴ（Built-In Self Test）回路やスキャンテスト回路が挙げられる。テストモードにおいて、テストイネーブル信号ＥＮはイネーブル状態（ＥＮ＝“１”）に設定され、テスト回路２０は活性化され、ハードマクロ１０のテストが実施される。一方、通常動作モードにおいて、テストイネーブル信号ＥＮはディスエーブル状態（ＥＮ＝“０”）に設定され、テスト回路２０は非活性化される。
【００１９】
図２は、図１で示されたハードマクロ１０を用いた半導体集積回路１の一例を示している。図２に示される半導体集積回路１は、ハードマクロ１０、第１機能回路１００、第２機能回路２００、及び外部出力回路３００を備えている。第１機能回路１００及び第２機能回路２００は、それぞれ所定の機能を提供する回路ブロックである。ハードマクロ１０は、それら第１機能回路１００と第２機能回路２００とに挟まれた位置に配置されている。
【００２０】
ここで、第２機能回路２００は、第１機能回路１００から出力される信号に基づいて動作するとする。その場合、第１機能回路１００のデータ出力端子ＯＵＴ１００と第２機能回路２００のデータ入力端子ＩＮ２００とをグローバル配線で接続する必要がある。もし、一般的なハードマクロが第１機能回路１００と第２機能回路２００との間に挟まれて配置されているとすれば、第１機能回路１００から第２機能回路２００へのグローバル配線を当該ハードマクロを迂回するようにルーティングする必要がある。すなわち、第１機能回路１００から第２機能回路２００への経路は、図２中の破線で示されるような迂回経路ＰＲとなる。しかしながら、そのような迂回経路ＰＲの場合、グローバル配線長が増大し、それは信号遅延の増大や信号波形の悪化を招く。
【００２１】
そこで、図２に示されるように、第１機能回路１００のデータ出力端子ＯＵＴ１００は、ハードマクロ１０の貫通信号入力端子ＩＮ＿ＰＳに接続され、第２機能回路２００のデータ入力端子ＩＮ２００は、ハードマクロ１０の出力端子ＯＵＴに接続される。また、ハードマクロ１０の出力端子ＯＵＴと第２機能回路２００のデータ入力端子ＩＮ２００との間のノードＮＤが、外部出力回路３００に接続されていてもよい。外部出力回路３００は更に、外部出力端子ＥＸＯＵＴに接続されている。
【００２２】
第１モードにおいて、イネーブル信号ＥＮはイネーブル状態（ＥＮ＝“１”）に設定され、内部回路２０は活性化される。セレクタ３０は、内部回路２０から受け取る内部信号をリピータ２５に出力し、その内部信号がリピータ２５を通して出力端子ＯＵＴに出力される。外部出力回路３００は、ハードマクロ１０の出力端子ＯＵＴから出力される信号を受け取り、その信号を外部出力端子ＥＸＯＵＴから半導体集積回路１の外部へ出力する。
【００２３】
第２モードにおいて、イネーブル信号ＥＮはディスエーブル状態（ＥＮ＝“０”）に設定され、内部回路２０は非活性化される。一方、第１機能回路１００及び第２機能回路２００は活性化され、動作する。具体的には、第１機能回路１００は、信号をハードマクロ１０の貫通信号入力端子ＩＮ＿ＰＳに出力する。貫通信号入力端子ＩＮ＿ＰＳに入力された入力信号は、セレクタ３０に送られる。セレクタ３０は、貫通信号入力端子ＩＮ＿ＰＳから受け取る入力信号をリピータ２５に出力する。その入力信号がリピータ２５を通して、そのまま出力端子ＯＵＴに出力される。第２機能回路２００は、ハードマクロ１０の出力端子ＯＵＴから出力される信号を受け取り、その信号に基づいて動作する。
【００２４】
このように、第２モードにおいて第１機能回路１００から出力された信号は、ハードマクロ１０を貫通して、そのまま第２機能回路２００へ供給される。第２モードにおいてハードマクロ１０を貫通する信号は、以下「貫通信号」と参照される。また、その貫通信号が流れる経路は、以下「貫通経路ＰＮ」と参照される。貫通経路ＰＮは、ハードマクロ１０の貫通信号入力端子ＩＮ＿ＰＳ、リピータ２５、及び出力端子ＯＵＴを経由する経路である。本実施の形態に係るハードマクロ１０を用いれば、迂回経路ＰＲをより短い貫通経路ＰＮに切り替えることができる。その結果、グローバル配線長が大幅に減少し、それにより、信号遅延の増大や信号波形の悪化が抑えられる。更に、迂回経路ＰＲがなくなるため、半導体集積回路１において配線性が向上する。
【００２５】
また、リピータ２５や出力端子ＯＵＴは、第１モードと第２モードとで共用される。すなわち、ハードマクロ１０にもともと搭載されている内部回路２０のリピータ２５や出力端子ＯＵＴが、貫通経路ＰＮ上のリピータ２５や出力端子ＯＵＴとしても利用される。従って、グローバル配線の迂回を解消しつつ、回路規模の増大をも抑制することが可能となる。更に、内部回路２０の一部の配線が貫通経路ＰＮとしても利用されるため、ハードマクロ１０内の配線性も向上する。セレクタ３０は、イネーブル信号ＥＮがイネーブル状態のときに元々の内部回路２０の機能を実現し、イネーブル信号ＥＮがディスエーブル状態のときに貫通経路ＰＮを使用可能にする切り替え回路であると言える。
【００２６】
内部回路２０の出力段を第２モードにおいて貫通経路ＰＮとして利用することができるのは、内部回路２０が第１モードでは必要であるが第２モードでは使用されないためである。従って、第１モードと第２モードとは、排他的な関係にあることが望ましい。例えば、第１モードは「テストモード」であり、第２モードは「通常動作モード（ファンクションモード）」である。その場合、テストモード時に活性化される内部回路２０は、ハードマクロ１０のテストに用いられるテスト回路であり、そのテスト回路２０の活性／非活性を制御するイネーブル信号ＥＮは、テストイネーブル信号である。
【００２７】
図３は、内部回路２０が「スキャンテスト回路」である場合の構成例を示している。スキャンテスト回路２０は、スキャンチェーンを構成する複数のスキャンフリップフロップ２１を有している。このスキャンテスト回路２０は、イネーブル信号ＥＮ（スキャンイネーブル信号ＳＣＡＮ＿ＥＮ）に応じて活性化される。ハードマクロ１０の出力端子ＯＵＴは、スキャンチェーンにつながるスキャンアウト端子である。スキャンアウト端子ＯＵＴは、ノードＮＤを通して外部出力回路３００と第２機能回路２００に接続されている。外部出力回路３００は、スキャンチェーンを構成する複数のスキャンフリップフロップ３２１を有しており、外部出力端子ＥＸＯＵＴに接続されている。
【００２８】
テストモード（第１モード）において、スキャンイネーブル信号ＳＣＡＮ＿ＥＮはイネーブル状態（ＳＣＡＮ＿ＥＮ＝“１”）に設定され、スキャンテスト回路２０は活性化される。セレクタ３０は、スキャンチェーンから受け取るスキャンデータをリピータ２５に出力し、そのスキャンデータがリピータ２５を通してスキャンアウト端子ＯＵＴに出力される。更に、そのスキャンデータは、スキャンフリップフロップ３２１を通って、外部出力端子ＥＸＯＵＴから出力される。
【００２９】
ファンクションモード（第２モード）において、スキャンイネーブル信号ＳＣＡＮ＿ＥＮはディスエーブル状態（ＳＣＡＮ＿ＥＮ＝“０”）に設定され、スキャンテスト回路２００は非活性化される。その間、貫通信号入力端子ＩＮ＿ＰＳからリピータ２５を通ってスキャンアウト端子ＯＵＴへ達する経路は、グローバル配線の迂回を解消するための貫通経路ＰＮとして使用可能となる。ファンクションモードにおいて第１機能回路１００から出力された信号は、その貫通経路ＰＮを通して、そのまま第２機能回路２００へ供給される。
【００３０】
図４は、本実施の形態に係る半導体集積回路１の設計方法を示すフローチャートである。
【００３１】
ステップＳ１００において、論理設計やテスト設計が行われる。例えば、ＲＴＬ（Register Transfer
Level）記述の論理合成が行われ、ゲートレベルのネットリストが作成される。このステップＳ１００において、ハードマクロ１０の貫通経路入力端子ＩＮ＿ＰＳを意識する必要はなく、通常通り論理設計やテスト設計が実施されればよい。貫通経路入力端子ＩＮ＿ＰＳはグランドにつながっていればよい。
【００３２】
ステップＳ２００において、レイアウト設計が実施される。具体的には、上記ネットリストに基づいて、通常通り配置配線（placement and routing）が実施される。図５は、配置配線の結果を示している。図５に示されるように、ハードマクロ１０、第１機能回路１００、及び第２機能回路２００が配置されている。特に、ハードマクロ１０は、第１機能回路１００と第２機能回路２００とに挟まれた位置に配置されている。そして、そのハードマクロ１０を迂回する迂回経路ＰＲに沿って、第１機能回路１００のデータ出力端子ＯＵＴ１００から第２機能回路２００のデータ入力端子ＩＮ２００へグローバル配線がルーティングされている。また、ハードマクロ１０の出力端子ＯＵＴは、外部出力回路３００を通して外部出力端子ＥＸＯＵＴに接続されている。ハードマクロ１０の貫通信号入力端子ＩＮ＿ＰＳは、グランド線に接続されている。
【００３３】
ステップＳ３００において、迂回経路ＰＲが貫通経路ＰＮに変更される。具体的には、図６に示されるように、第１機能回路１００のデータ出力端子ＯＵＴ１００が、ハードマクロ１０の貫通信号入力端子ＩＮ＿ＰＳにつなぎ替えられる。また、第２機能回路２００のデータ入力端子ＩＮ２００が、ハードマクロ１０の出力端子ＯＵＴにつなぎ替えられる。このとき、ハードマクロ１０の出力端子ＯＵＴから延びる配線は、ノードＮＤで分岐し、第２機能回路２００と外部出力回路３００の両方につながることになる。このようにして、迂回経路ＰＲが解消され、第１機能回路１００と第２機能回路２００とは貫通経路ＰＮを通して互いに接続されることになる。その結果、信号遅延の増大や信号波形の悪化が抑えられ、且つ、配線性が向上する。
【００３４】
以上に説明されたように、本実施の形態によれば、ハードマクロ１０を利用することによりグローバル配線の迂回を解消することが可能となる。更に、ハードマクロ１０のリピータ２５や出力端子ＯＵＴは、第１モードと第２モードとで共用される。従って、回路規模の増大も抑制される。
【００３５】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【００３６】
１    半導体集積回路
１０    ハードマクロ
２０    内部回路
２１    スキャンフリップフロップ
２５    リピータ
３０    セレクタ
１００    第１機能回路
２００    第２機能回路
３００    外部出力回路
ＩＮ＿ＥＮ  イネーブル信号入力端子
ＩＮ＿ＰＳ  貫通信号入力端子
ＯＵＴ      出力端子
ＰＮ        貫通経路
ＰＲ        迂回経路
【図１】
2011035011.tif 000003
【図２】
2011035011.tif 000004
【図３】
2011035011.tif 000005
【図４】
2011035011.tif 000006
【図５】
2011035011.tif 000007
【図６】
2011035011.tif 000008