(57)【要約】【課題】  ラッパーロジックの形成において不要なフリップフロップ等が追加される事態を低減し、電力削減や使用エリア削減の効果を改善する。【解決手段】  実施形態の回路設計方法は、回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定するステップと、前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するステップとを含む。【選択図】  図５
2020154803.tif 000002
【特許請求の範囲】
【請求項１】
回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定するステップと、
前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するステップと
を含む、回路設計方法。
【請求項２】
前記ラッパーロジックの構成に使用するフリップフロップと、前記ラッパーロジックの構成に使用しないフリップフロップとを、グループ分けするステップをさらに含み、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項１に記載の回路設計方法。
【請求項３】
前記ラッパーロジックの構成に使用するフリップフロップの決定は、
既存のフリップフロップからの選定と、
新たなフリップフロップの追加と
を含む、請求項１に記載の回路設計方法。
【請求項４】
前記選定は、
任意の外部端子に直接接続される１つまたは複数の素子のいずれもがフリップフロップである場合に、当該素子のそれぞれを、前記ラッパーロジックの構成に使用するものとして選定することを含む、
請求項３に記載の回路設計方法。
【請求項５】
前記追加は、
任意の外部端子に直接接続される１つまたは複数の素子のいずれかがフリップフロップでない場合に、当該素子のいずれよりも前記外部端子側に近く接続される新たなフリップフロップを、前記ラッパーロジックの構成に使用するものとして追加することを含む、
請求項３又は４に記載の回路設計方法。
【請求項６】
前記ラッパーロジックの構成に使用するために選定された既存のフリップフロップと、
前記ラッパーロジックの構成に使用するために追加された新たなフリップフロップと、
前記ラッパーロジックの構成に使用しないフリップフロップと
をグループ分けするステップをさらに含み、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項３乃至５のいずれか１項に記載の回路設計方法。
【請求項７】
前記マルチビットフリップフロップの形成は、
各回路要素の物理的な配置位置を表したＤＥＦ（Design Exchange Format）記述の配置情報を用いてマルチビットフリップフロップを形成することを含む、
請求項１乃至６のいずれか１項に記載の回路設計方法。
【請求項８】
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップの中に、前記ラッパーロジックの構成に使用できないフリップフロップが含まれる場合、当該マルチビットフリップフロップの形成を解除するステップをさらに含む、
請求項１乃至７のいずれか１項に記載の回路設計方法。
【請求項９】
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを２つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成するステップをさらに含む、
請求項１乃至８のいずれか１項に記載の回路設計方法。
【請求項１０】
前記ネットリストの元となるＲＴＬ（register transfer level）記述によるプログラムの中に、前記ラッパーロジックの構成に使用するフリップフロップを特定する事項を記述するステップをさらに含む、
請求項１乃至９のいずれか１項に記載の回路設計方法。
【請求項１１】
コンピュータに、
回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定する機能と、
前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成する機能と
を実現させるためのプログラム。
【請求項１２】
前記コンピュータに、
前記ラッパーロジックの構成に使用するフリップフロップと、前記ラッパーロジックの構成に使用しないフリップフロップとを、グループ分けする機能をさらに実現させ、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項１１に記載のプログラム。
【請求項１３】
前記ラッパーロジックの構成に使用するフリップフロップの決定は、
既存のフリップフロップからの選定と、
新たなフリップフロップの追加と
を含む、請求項１１に記載のプログラム。
【請求項１４】
前記選定は、
任意の外部端子に直接接続される１つまたは複数の素子のいずれもがフリップフロップである場合に、当該素子のそれぞれを、前記ラッパーロジックの構成に使用するものとして選定することを含む、
請求項１３に記載のプログラム。
【請求項１５】
前記追加は、
任意の外部端子に直接接続される１つまたは複数の素子のいずれかがフリップフロップでない場合に、当該素子のいずれよりも前記外部端子側に近く接続される新たなフリップフロップを、前記ラッパーロジックの構成に使用するものとして追加することを含む、
請求項１３又は１４に記載のプログラム。
【請求項１６】
前記コンピュータに、
前記ラッパーロジックの構成に使用するために選定された既存のフリップフロップと、
前記ラッパーロジックの構成に使用するために追加された新たなフリップフロップと、
前記ラッパーロジックの構成に使用しないフリップフロップと
をグループ分けする機能をさらに実現させ、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項１３乃至１５のいずれか１項に記載のプログラム。
【請求項１７】
前記マルチビットフリップフロップの形成は、
各回路要素の物理的な配置位置を表したＤＥＦ（Design Exchange Format）記述の配置情報を用いてマルチビットフリップフロップを形成することを含む、
請求項１１乃至１６のいずれか１項に記載のプログラム。
【請求項１８】
前記コンピュータに、
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップの中に、前記ラッパーロジックの構成に使用しないフリップフロップが含まれる場合、当該マルチビットフリップフロップの形成を解除する機能をさらに実現させる、
請求項１１乃至１７のいずれか１項に記載のプログラム。
【請求項１９】
前記コンピュータに、
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを２つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成する機能をさらに実現させる、
請求項１１乃至１８のいずれか１項に記載のプログラム。
【請求項２０】
前記コンピュータに、
前記ネットリストの元となるＲＴＬ（register transfer level）プログラムの中に、前記ラッパーロジックの構成に使用するフリップフロップを特定する事項を記述する機能をさらに実現させる、
請求項１１乃至１９のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、回路設計方法およびプログラムに関する。
【背景技術】
【０００２】
一般に、ＬＳＩの実装においては、電力削減の観点からマルチビットフリップフロップ（以下、「ＭＢＦＦ」）が使われる。複数のフリップフロップをＭＢＦＦにまとめる（ＭＢＦＦへ変換する）ことで、クロックやスキャンイネーブルの信号線を減らすことができ、ダイナミックパワー及び使用エリアを削減することができる。ＬＳＩの設計においては、複数のフリップフロップのＭＢＦＦへの変換を、変換率のよい論理合成の時に行っている。
【０００３】
一方、階層スキャン用やＬＢＩＳＴ（Logic Build-In Self Test）用にラッパーロジック（wrapper logic）を実装することがある。ラッパーロジックは、階層内外の影響を遮断するためのバウンダリロジックであり、一般に既存のＦＦ（ＭＢＦＦを含む）をなるべく利用して形成される。
【０００４】
例えば通常のシステム動作用に使用されるＭＢＦＦをテスト用にも使用する共用ラッパーロジック（shared wrapper logic）を実装しようとする場合に、当該ＭＢＦＦの一部に、ラッパーロジックの構成に使用できない要素が含まれていると、当該ＭＢＦＦは共用ラッパーロジックには成り得ないため、新たなフリップフロップ等を追加して専用ラッパーロジック（dedicated wrapper logic）を形成する。その場合、ＭＢＦＦの使用やラッパーロジックの共用化による電力削減と使用エリア削減の効果が低下する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２３３０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ラッパーロジックの形成において不要なフリップフロップ等が追加される事態を低減し、電力削減や使用エリア削減の効果を改善する。
【課題を解決するための手段】
【０００７】
実施形態の回路設計方法は、回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定するステップと、前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するステップとを含む。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る回路設計方法を実施するために使用される情報処理装置の概略構成の一例を示す図。
【図２】論理合成および物理合成の概念を模式的に示す図。
【図３】ラッパーロジックが実装される回路の概念を模式的に示す図。
【図４Ａ】ＭＢＦＦの構造の例を示す図。
【図４Ｂ】ＭＢＦＦの構造の別の例を示す図。
【図５】第１の実施形態に係る回路設計方法による処理手順の一例を示す図。
【図６Ａ】外部端子にフリップフロップ以外の素子が接続されている様子を示す図。
【図６Ｂ】ラッパーロジック用のフリップフロップの追加が必要となることを示す図。
【図７Ａ】外部端子に接続される全素子がフリップフロップである様子を示す図。
【図７Ｂ】外部端子に接続されるフリップフロップをラッパーロジック用に使用できることを示す図。
【図８】ラッパーロジックの構成に使用できるフリップフロップと使用できないフリップフロップとを説明するための図。
【図９】ラッパーロジックを構成するＭＢＦＦの形成と構成しないＭＢＦＦの形成とを説明するための図。
【図１０】ラッパーロジックを構成するＭＢＦＦにラッパーチェーン等が繋がれ、ラッパーロジックを構成しないＭＢＦＦに内部スキャンチェーンが繋がれることを説明するための図。
【図１１】一般的な技術による処理を説明するための図。
【図１２】第２の実施形態に係る回路設計方法による処理手順の一例を示す図。
【図１３】ＭＢＦＦを２つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成する場合の例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して実施の形態について説明する。
【００１０】
［第１の実施形態］
最初に、第１の実施形態について説明する。
【００１１】
（構成）
図１は、第１の実施形態に係る回路設計方法を実施するために使用される情報処理装置の概略構成の一例を示す図である。
【００１２】
図１に示される情報処理装置１００は、例えばコンピュータであり、使用者が情報を入力する入力装置１、情報を表示するディスプレイ等の出力装置２、プログラムやデータを記憶するメモリ等の記録媒体３、当該コンピュータに各種の機能を実現させるためのプログラムを実行したり各種のデータ処理を行ったりするプロセッサ４などを備える。
【００１３】
例えばＬＳＩ（Large-Scale Integrated Circuit）などの半導体テスト容易化設計に適用される各種のツールとして、合成用ツール１１、スキャン用ツール１２等が用意され、これらが記録媒体３に記憶される。これらのツールは、プロセッサ４の制御のもとで動作する。プロセッサ４は、入力装置１から入力される情報を各種ツールで使用されるデータに反映させたり、各種ツールで処理された情報を、出力装置２に表示させたり、記録媒体３に記憶させたりする。
【００１４】
合成用ツール１１は、論理合成を行う機能を備えるほか、物理合成を行う機能をも備える。
【００１５】
図２に、論理合成および物理合成の概念を模式的に示す。
【００１６】
合成用ツール１１は、論理合成により、レジスタ転送レベルの機能記述文（ＲＴＬ（register transfer level）記述によるプログラム）から、ゲートレベルの回路接続情報（合成ネットリスト）への展開を行う。また、合成用ツール１１は、物理合成により、合成ネットリストから、各回路要素の物理的な配置位置を表したＤＥＦ（Design Exchange Format）記述の配置情報を生成することもできる。論理合成もしくは物理合成は、設計者が予め設定した制約条件（チップ面積、消費電力、遅延時間などの制約条件）も加味して実施される。
【００１７】
なお、物理合成により生成された配置情報に鑑みて回路の論理構成に変更を加えることが好ましい場合は、適宜、上述した機能記述文（ＲＴＬ記述によるプログラム）の該当する箇所を変更し、再度、論理合成を行って合成ネットリストを更新し、さらに物理合成を行ってＤＥＦ記述の配置情報を更新するようにしてもよい。
【００１８】
一方、図１に示されるスキャン用ツール１２は、合成用ツール１１により生成された合成ネットリストに基づいて、ラッパーロジックが形成され且つスキャンイネーブル信号線やスキャンチェーン等が加えられた回路のネットリスト（スキャンネットリスト）を生成する。
【００１９】
図３に、ラッパーロジックが実装される回路の概念を模式的に示す。
【００２０】
図３に示されるように、チップ内の回路には階層を成す複数のロジック２１、２２、２３、…がある。ラッパーロジックは、このような回路においてスキャンテスト等の際に階層内外の影響を遮断するためのバウンダリロジックである。ラッパーロジックには、当該回路を収容する階層ブロックの入力端子側に設けられる入力側ラッパーロジック２１と、同階層ブロックの出力端子側に設けられる出力側ラッパーロジック２３とがある。
【００２１】
２つのラッパーロジック２１、２３は、マルチビットフリップフロップ（以下、「ＭＢＦＦ」）を用いて構成される。また、ラッパーロジック２１、２３の間に配置される内部ロジック２２にも、ＭＢＦＦを用いて構成されるものがある。各ＭＢＦＦは、複数のフリップフロップからなる。
【００２２】
内部ロジック２２を構成するＭＢＦＦは、入力側ラッパーロジック２１内の複数のフリップフロップと出力側ラッパーロジック２３内の複数のフリップフロップとの間に接続された複数のフリップフロップからなる。内部ロジック２２内の複数のフリップフロップへの信号入力の切り替えは、内部ロジック用のスキャンイネーブル信号seにより制御される。
【００２３】
一方、入力側ラッパーロジック２１を構成するＭＢＦＦは、複数の入力端子ＰＩ０〜ＰＩ２に直接、あるいは組合せ回路を経由して接続された複数のフリップフロップからなる。これら複数のフリップフロップへの信号入力の切り替えは、入力側ラッパーロジック用のスキャンイネーブル信号Iwrap_seにより制御される。
【００２４】
また、出力側ラッパーロジック２３を構成するＭＢＦＦは、複数の出力端子ＰＯ０〜ＰＯ２に直接、あるいは組合せ回路を経由して接続された複数のフリップフロップからなる。これら複数のフリップフロップへの信号入力の切り替えは、出力側ラッパーロジック用のスキャンイネーブル信号Owrap_seにより制御される。
【００２５】
なお、上記したスキャンイネーブル信号se、Iwrap_se、Owrap_seは、ロジック毎に独立して制御される。クロック信号は共用ラッパーロジックの場合に内部ロジックのクロック信号と同一である。
【００２６】
ＭＢＦＦの構造の例を、図４Ａ，図４Ｂに示す。
【００２７】
図４Ａ，図４Ｂは、それぞれ、複数のフリップフロップのＭＢＦＦへの変換（ＭＢＦＦバンキング）が既に施された後の構造の例を模式的に示している。
【００２８】
図４Ａ，図４Ｂに共通して示されるように、ＭＢＦＦは、複数段に接続されたフリップフロップ３０〜３３およびマルチプレクサ（ＭＵＸ）Ｍ０〜Ｍ３を含む。フリップフロップ３０〜３３には、ＣＫポートから入力されるクロック信号が供給される。マルチプレクサ（ＭＵＸ）Ｍ０〜Ｍ３には、ＳＥポートから入力されるスキャンイネーブル信号が供給される。
【００２９】
なお、ＳＥポートから入力されるスキャンイネーブル信号は、ＭＢＦＦが内部ロジック２２を構成する場合はスキャンイネーブル信号seに該当し、ＭＢＦＦが入力側ラッパーロジック２１を構成する場合はスキャンイネーブル信号Iwrap_seに該当し、ＭＢＦＦが出力側ラッパーロジック２３を構成する場合はスキャンイネーブル信号Owrap_seに該当する。
【００３０】
図４Ａの例では、通常動作モードにおいては、Ｄ０〜Ｄ３ポートからデータが入力され、マルチプレクサＭ０〜Ｍ３を通じてフリップフロップ３０〜３３に送られ、Ｑ０〜Ｑ３ポートから出力されるパスが形成される。一方、スキャンシフトモードにおいては、ＳＩ０〜ＳＩ３ポートからテストデータが入力され、マルチプレクサＭ０〜Ｍ３を通じてフリップフロップ３０〜３３に送られ、Ｑ０〜Ｑ３ポート（通常動作モード時に使用するポートと同じポート）から出力されるパスが形成される。
【００３１】
図４Ｂの例では、通常動作モードにおいては、Ｄ０〜Ｄ３ポートからデータが入力され、マルチプレクサＭ０〜Ｍ３を通じてフリップフロップ３０〜３３に送られ、Ｑ０〜Ｑ３ポートから出力されるパスが形成される。すなわち、図４Ａの例の同様となる。一方、スキャンシフトモードにおいては、ＳＩポートからテストデータが入力され、マルチプレクサＭ０を通じてフリップフロップ３０に送られ、これより出力されるテストデータがマルチプレクサＭ１を通じてフリップフロップ３１に送られ、これにより出力されるテストデータがマルチプレクサＭ２を通じてフリップフロップ３２に送られ、これより出力されるテストデータがマルチプレクサＭ３を通じてフリップフロップ３３に送られ、これより出力されるテストデータがＳＯポートから出力されるパスが形成される。すなわち、形成されるスキャンチェーンの経路が図４Ａとは異なる。
【００３２】
図４Ａおよび図４Ｂにそれぞれ示した構造は、用途に応じていずれを採用してもよく、例えば配置場所の周囲の環境に鑑みて有利となる方を採用するなどしてもよい。また、図４Ａおよび図４Ｂにそれぞれ示した構造は、例として挙げたものであり、これに限定されるものではない。
【００３３】
（動作）
次に、図５を参照して、第１の実施形態に係る回路設計方法による処理手順の一例について説明する。
【００３４】
最初に、合成用ツール１１によって合成の処理（ステップＳ１）が行われる。ここでは、ＲＴＬ記述によるプログラムに基づき、論理合成が行われ、合成ネットリストが生成される（ステップＳ１１）。なお、この合成の処理（ステップＳ１）においては、複数のフリップフロップのＭＢＦＦへの変換（ＭＢＦＦバンキング）は行われない。
【００３５】
次に、スキャン用ツール１２によってスキャンテストを可能にするための処理（ステップＳ２）が行われる。ここでは、合成用ツール１１により生成された合成ネットリストに基づいて、ラッパーロジックが形成され且つスキャンイネーブル信号線やスキャンチェーンなどが加えられた回路のネットリスト（スキャンネットリスト）が生成される。その具体的な処理を以下に示す。
【００３６】
ステップＳ１２では、合成用ツール１１によって生成された回路のネットリストの解析が行われ、ラッパーロジック（入力側ラッパーロジック２１および出力側ラッパーロジック２３の各々）を構成するフリップフロップを決定する処理が行われる。
【００３７】
当該ラッパーロジックの構成に使用するフリップフロップの決定には、通常のシステム動作用に予め備えられた既存のフリップフロップからの「選定」と、新たなフリップフロップの「追加」とがある。
【００３８】
「追加」には、例えば、階層ブロックの任意の外部端子に直接接続される１つまたは複数の素子のいずれかがフリップフロップでない場合に、当該素子のいずれよりも上記外部端子側に近く接続される新たなフリップフロップを、ラッパーロジックの構成に使用するものとして追加する処理が含まれる。
【００３９】
例えば、図６Ａに示されるように、階層ブロックの入力端子ＰＩに接続されている全ての素子を探索した結果、フリップフロップのほかに、フリップフロップ以外の素子（例えばブラックボックス（ＢＢ）等に該当するもの）がある場合、それらの素子ではラッパーロジックを構成できないものとみなし、図６Ｂに示されるように、それらの素子のいずれよりも入力端子ＰＩ側に近く接続される新たなフリップフロップを追加する処理が行われる。ここで追加されるフリップフロップは、ラッパーロジックの構成のためにだけ新たに追加されるフリップフロップであり、後段の処理において専用ラッパーロジックを構成するものとなる。
【００４０】
一方、「選定」には、階層ブロックの任意の外部端子に直接接続される１つまたは複数の素子のいずれもがフリップフロップである場合に、当該素子のそれぞれを、ラッパーロジックの構成に使用するものとして選定する処理が含まれる。
【００４１】
例えば、図７Ａに示されるように、階層ブロックの入力端子ＰＩに接続されている全ての素子を探索した結果、全ての素子がフリップフロップである場合、それらの素子によりラッパーロジックを構成できるものとみなし、図７Ｂに示されるように、それらの素子をラッパーロジックの構成に使用するものとして選定する処理が行われる。ここで選定されるフリップフロップは、既存のフリップフロップであり、後段の処理において共用ラッパーロジックを構成するものとなる。
【００４２】
なお、テストに使用しないフリップフロップについては、上述した「選定」や「追加」の対象外とする。
【００４３】
例えば、図８に示されるように、入力端子ＰＩ０、ＰＩ１、ＰＩ２にそれぞれ最初に接続されている素子はフリップフロップのみであるため、これらのフリップフロップはラッパーロジックの構成に使用するものとして選定の対象とされるが、テストに使用しないロジック４０を構成するフリップフロップは、ラッパーロジックの構成に使用されず、上述した「選定」や「追加」の対象にはならない。
【００４４】
前述したとおり、ラッパーロジックには、入力側ラッパーロジック２１と出力側ラッパーロジック２３とがある。例えば、先に階層ブロックの出力端子に接続されている全ての素子を探索して、出力側ラッパーロジック２３の構成に使用するフリップフロップを決定し、その後に、入力側ラッパーロジック２１の構成に使用するフリップフロップを決定する手順を採用してもよい。その場合、出力側ラッパーロジック２３の構成に使用するものとして決定したフリップフロップは、入力側ラッパーロジック２１の構成に使用するものとして決定するフリップフロップの対象から除外するようにする。上記手順にて処理を行うことにより、階層ブロックの出力端子側からの探索に際して分岐する経路が少ないため、探索処理の負荷や時間の軽減を図ることができる。
【００４５】
ステップＳ１３では、ステップＳ１２の処理で得られた情報を用いて、ラッパーロジック（入力側ラッパーロジック２１および出力側ラッパーロジック２３の各々）の構成に使用するフリップフロップと、ラッパーロジックの構成に使用しないフリップフロップとを、グループ分けするグルーピングが行われる。具体的には、ラッパーロジックの構成に使用するために選定された既存のフリップフロップと、ラッパーロジックの構成に使用するために追加された新たなフリップフロップと、ラッパーロジックの構成に使用しないフリップフロップとをグループ分けするグルーピングが行われる。
【００４６】
グループ分けした各グループのフリップフロップの情報は、追加ネットリストとして纏められ、後述する各ＭＢＦＦの形成に使用される。
【００４７】
ステップＳ１４では、ステップＳ１３の処理で得られた情報を用いて、複数のフリップフロップのＭＢＦＦへの変換（ＭＢＦＦバンキング）が行われる。具体的には、グループ分けされた個々のグループごとに、入力側ラッパーロジック２１を構成するためのＭＢＦＦ、および、出力側ラッパーロジック２３を構成するためのＭＢＦＦが形成されるほか、これら以外の内部ロジック２２等を構成するためのＭＢＦＦが形成される。各ＭＢＦＦは、例えば論理的に近いフリップフロップ同士を用いて形成される。
【００４８】
例えば、図９に示されるように、ラッパーロジックを構成するＭＢＦＦ４１が形成される一方で、ラッパーロジックを構成しないＭＢＦＦ４２が形成される。ＭＢＦＦ４１は、前述した図８に示される入力端子ＰＩ０、ＰＩ１、ＰＩ２にそれぞれ接続されているフリップフロップをＭＢＦＦ化したものである。ＭＢＦＦ４２は、前述した図８に示されるロジック４０に含まれるフリップフロップをＭＢＦＦ化したものである。
【００４９】
なお、図９の例では、図４Ｂの例に対応するＭＢＦＦを採用した場合が例示されている。各ＭＢＦＦには、データ入力用のＤ０，Ｄ１，…のポート、データ出力用のＱ０，Ｑ１，…のポート、テストデータ入力用のＳＩポート、テストデータ出力用のＳＯポート、スキャンイネーブル信号入力用のＳＥポート、クロック信号入力用のＣＫポートが形成される。
【００５０】
当該ステップＳ１４の処理では、グループ分けされた個々のグループ毎に、それぞれＭＢＦＦを形成しているため、ラッパーロジックの構成に使用するフリップフロップを含むＭＢＦＦを形成するに際し、ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成することができる。
【００５１】
ステップＳ１５では、ラッパーロジックを構成するＭＢＦＦに対し、ラッパーロジック用のスキャンチェーン（以下、「ラッパーチェーン」）のスティッチが行われ、ステップＳ１６では、内部ロジックを構成するＭＢＦＦに対し、内部ロジック用のスキャンチェーン（以下、「内部スキャンチェーン」）のスティッチが行われる。なお、ステップＳ１５、Ｓ１６の処理の順序は入れ替えても構わない。
【００５２】
例えば、図１０に示されるように、ラッパーロジックを構成するＭＢＦＦ４１においては、ＳＩポート、ＳＯポートのそれぞれにラッパーチェーンが繋がれる。ＳＥポートにラッパーロジック用のスキャンイネーブル信号Iwrap_seを入力するラインが繋がれる。
【００５３】
一方、ラッパーロジックを構成しないＭＢＦＦ４２においては、ＳＩポート、ＳＯポートのそれぞれに内部スキャンチェーンが繋がれる。ＳＥポートには、内部ロジック用のスキャンイネーブル信号seを入力する信号線が繋がれる。
【００５４】
ステップＳ１７では、ステップＳ１４〜Ｓ１６の処理で得られた情報がスキャンネットリストとして纏められ、出力装置２等へ出力される。
【００５５】
なお、図８〜図１０では、ＭＢＦＦの構造として、図４Ａに示される例を採用しているが、これに限定されるものではない。例えば、図４Ｂに示される例を採用してもよく、これとは異なるものを採用してもよい。
【００５６】
また、図８〜図１０では、出力側ラッパーロジック２３に係わる構成の図示を省略している。また、出力側ラッパーロジック２３に係わる構成や処理は、入力側ラッパーロジック２１と同様となるため、その説明を省略している。
【００５７】
一般的な技術では、複数のフリップフロップのＭＢＦＦ化（ＭＢＦＦバンキング）を先に行ってから、ラッパーロジックの構成に必要なフリップフロップの選択や追加が検討される。その場合、ラッパーロジックの形成において本来不要なフリップフロップ等を追加する処理が生じることが多い。例えば共用ラッパーロジックを実装しようとする場合に、当該ＭＢＦＦの一部に、ラッパーロジックを構成できない要素が含まれていると、当該ＭＢＦＦは共用ラッパーロジックには成り得ないため、新たなフリップフロップを追加して専用ラッパーロジックを形成する。その場合、ＭＢＦＦの使用やラッパーロジックの共用化による電力削減と使用エリア削減の効果が低下する。
【００５８】
例えば、図１１に示されるように、一般的な技術では、形成されたラッパーロジック用のＭＢＦＦ４３の一部に、ラッパーロジックの構成に使用できないＤ３ポートに対応するビット（もしくはフリップフロップ等）があると、当該ＭＢＦＦ４３は共用ラッパーロジックを構成することができない。その場合、入力端子ＰＩ０〜ＰＩ２とＤ０〜Ｄ２ポートとの間にそれぞれ新たなフリップフロップおよびマルチプレクサを追加すると共にラッパーチェーンのスティッチおよびスキャンイネーブル信号のラインを追加する必要が生じる。
【００５９】
これに対し、本実施形態によれば、ラッパーロジックの構成に使用するフリップフロップを決定した後に、ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するので、ラッパーロジックの形成において本来不要なフリップフロップ等を追加すること事態を低減することができる。そのため、ＭＢＦＦの使用やラッパーロジックの共用化による電力削減と使用エリア削減の効果を上げることが可能になる。
【００６０】
［第２の実施形態］
次に、第２の実施形態について説明する。以下では、第１の実施形態と重複する部分の説明を省略し、異なる部分を中心に説明する。
【００６１】
基本的な構成は第１の実施形態で図１等により示したものと同じであるが、動作が第１の実施形態とは異なる。
【００６２】
図１２に、第２の実施形態に係る回路設計方法による処理手順の一例を示す。第１の実施形態で図５により既に説明した処理手順と異なる点は、合成の処理（ステップＳ１）において、さらに、各回路要素の物理的な配置位置を表したＤＥＦ記述の配置情報を生成する点と、スキャンの処理（ステップＳ２）において、この配置情報を利用した情報処理を行う点である。
【００６３】
ステップＳ１１では、論理合成により生成した合成ネットリストから、物理合成により配置情報（DEF）が生成される。
【００６４】
ステップＳ１２では、配置情報を用いた解析が行われ、ラッパーロジックを構成するフリップフロップを決定（選定または追加）する処理が行われる。
【００６５】
ステップＳ１３’では、ステップＳ１２の処理で得られた情報を用いて、さらに、ラッパーロジック構成に使用する各フリップフロップの物理的な配置位置を表したＤＥＦ記述の配置情報（以下、「ラッパーＦＦ（def）情報」）も生成される。
【００６６】
ステップＳ１４では、さらに、ステップＳ１１の処理で得られた配置情報、および、ステップＳ１３’の処理で得られた「ラッパーＦＦ（def）情報」を含む情報を用いて、複数のフリップフロップのＭＢＦＦへの変換（ＭＢＦＦバンキング）が行われる。例えば、配置情報およびラッパーＦＦ（def）情報から、フリップフロップとフリップフロップとの間が物理的に一定以上離れているＭＢＦＦがあることが判明した場合には、当該ＭＢＦＦはデバンキング（de-banking）される。また、そのデバンキング後にバンキングをし直すようにしてもよい。
【００６７】
ステップＳ１５では、ラッパーロジックを構成するＭＢＦＦに対し、ラッパーチェーンのスティッチが行われ、ステップＳ１６では、内部ロジックを構成するＭＢＦＦに対し、内部スキャンチェーンのスティッチが行われる。
【００６８】
ステップＳ１７では、ステップＳ１４〜Ｓ１６の処理で得られた情報がスキャンネットリストとして纏められ、出力装置２等へ出力される。
【００６９】
本実施形態によれば、第１の実施形態で得られる効果に加え、配置情報を使用した情報処理が行われるため、例えばラッパーロジック構成に使用する各フリップフロップの物理的な配置位置などを把握でき、より適切なＭＢＦＦバンキングを行える。
【００７０】
以下では、第１の実施形態および第２の実施形態で説明した処理の変形例について説明する。
【００７１】
［変形例１］
ステップＳ１４のＭＢＦＦバンキングの処理において形成される個々のＭＢＦＦのうち、任意のＭＢＦＦ（例えば、ラッパーロジックの構成に使用するフリップフロップを含むＭＢＦＦ）を、２つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成する処理を行ってもよい。この処理は、２つの部分の動作をそれぞれ個別にテストしたい場合などに有効である。
【００７２】
例えば、ＭＢＦＦが図４Ａの例に示される構造に該当するものである場合、図１３に示されるように、ポートＳＥを２つのポートＳＥ＿Ａ，ＳＥ＿Ｂに分けて配置し、ポートＳＥ＿Ａから入力されるスキャンイネーブル信号がマルチプレクサ（ＭＵＸ）Ｍ０〜Ｍ２に供給され、ポートＳＥ＿Ｂから入力されるスキャンイネーブル信号がマルチプレクサ（ＭＵＸ）Ｍ３に供給されるように構成すればよい。この場合、ＣＫポートから入力されるクロック信号線については変更しなくてもよい。
【００７３】
［変形例２］
ステップＳ１４のＭＢＦＦバンキングの処理において形成される個々のＭＢＦＦのうち、任意のＭＢＦＦ（例えば、ラッパーロジックの構成に使用するフリップフロップを含むＭＢＦＦ）の中に、ラッパーロジックの構成に使用できないフリップフロップが含まれている（一部のフリップフロップのみがラッパーロジックの構成に使用できるフリップフロップである）ことが判明した場合、当該ＭＢＦＦの形成を解除（デバンキング）する処理を行うようにしてもよい。この処理は、意に反して、ラッパーロジックの構成に使用するフリップフロップを含むＭＢＦＦの中に、ラッパーロジックの構成に使用できないフリップフロップが含まれてしまった場合などに有効である。上記デバンキング後にバンキングをし直してもよい。
【００７４】
［変形例３］
ステップＳ１の合成の処理において、予め、合成ネットリストの元となるＲＴＬ記述によるプログラムの中に、ラッパーロジックの構成に使用するフリップフロップを特定する事項を記述する処理を行うようにしてもよい。この処理は、ラッパーロジックの構成に使用するフリップフロップが、予め予測できる場合、もしくは判明している場合に有効である。この処理により設計の更なる容易化や設計時間の短縮化を図ることができる。
【００７５】
以上詳述したように実施形態によれば、ラッパーロジックの形成において不要なフリップフロップ等が追加される事態を低減し、電力削減や使用エリア削減の効果を改善することができる。
【００７６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７７】
１…入力装置、２…出力装置、３…記録媒体、４…プロセッサ、１１…合成用ツール、１２…スキャン用ツール、２１…入力側ラッパーロジック、２２…内部ロジック、２３…出力側ラッパーロジック、１００…情報処理装置。
【図１】
2020154803.tif 000003
【図２】
2020154803.tif 000004
【図３】
2020154803.tif 000005
【図４Ａ】
2020154803.tif 000006
【図４Ｂ】
2020154803.tif 000007
【図５】
2020154803.tif 000008
【図６Ａ】
2020154803.tif 000009
【図６Ｂ】
2020154803.tif 000010
【図７Ａ】
2020154803.tif 000011
【図７Ｂ】
2020154803.tif 000012
【図８】
2020154803.tif 000013
【図９】
2020154803.tif 000014
【図１０】
2020154803.tif 000015
【図１１】
2020154803.tif 000016
【図１２】
2020154803.tif 000017
【図１３】
2020154803.tif 000018