特開2020-154803(P2020-154803A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝デバイス&ストレージ株式会社の特許一覧

<>
  • 特開2020154803-回路設計方法およびプログラム 図000003
  • 特開2020154803-回路設計方法およびプログラム 図000004
  • 特開2020154803-回路設計方法およびプログラム 図000005
  • 特開2020154803-回路設計方法およびプログラム 図000006
  • 特開2020154803-回路設計方法およびプログラム 図000007
  • 特開2020154803-回路設計方法およびプログラム 図000008
  • 特開2020154803-回路設計方法およびプログラム 図000009
  • 特開2020154803-回路設計方法およびプログラム 図000010
  • 特開2020154803-回路設計方法およびプログラム 図000011
  • 特開2020154803-回路設計方法およびプログラム 図000012
  • 特開2020154803-回路設計方法およびプログラム 図000013
  • 特開2020154803-回路設計方法およびプログラム 図000014
  • 特開2020154803-回路設計方法およびプログラム 図000015
  • 特開2020154803-回路設計方法およびプログラム 図000016
  • 特開2020154803-回路設計方法およびプログラム 図000017
  • 特開2020154803-回路設計方法およびプログラム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2020-154803(P2020-154803A)
(43)【公開日】2020年9月24日
(54)【発明の名称】回路設計方法およびプログラム
(51)【国際特許分類】
   G06F 30/333 20200101AFI20200828BHJP
   G06F 30/32 20200101ALI20200828BHJP
   H01L 21/822 20060101ALI20200828BHJP
   H01L 27/04 20060101ALI20200828BHJP
   G01R 31/28 20060101ALI20200828BHJP
【FI】
   G06F17/50 654N
   G06F17/50 656Z
   H01L27/04 T
   G01R31/28 V
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【全頁数】17
(21)【出願番号】特願2019-53313(P2019-53313)
(22)【出願日】2019年3月20日
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】渡邉 裕紀
(72)【発明者】
【氏名】中里 昌人
【テーマコード(参考)】
2G132
5B046
5F038
【Fターム(参考)】
2G132AA01
2G132AK24
2G132AK26
2G132AL35
5B046AA08
5B046BA02
5B046BA09
5B046DA05
5B046GA01
5B046HA05
5B046KA05
5F038DT06
5F038EZ20
(57)【要約】
【課題】 ラッパーロジックの形成において不要なフリップフロップ等が追加される事態を低減し、電力削減や使用エリア削減の効果を改善する。
【解決手段】 実施形態の回路設計方法は、回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定するステップと、前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するステップとを含む。
【選択図】 図5
【特許請求の範囲】
【請求項1】
回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定するステップと、
前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するステップと
を含む、回路設計方法。
【請求項2】
前記ラッパーロジックの構成に使用するフリップフロップと、前記ラッパーロジックの構成に使用しないフリップフロップとを、グループ分けするステップをさらに含み、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項1に記載の回路設計方法。
【請求項3】
前記ラッパーロジックの構成に使用するフリップフロップの決定は、
既存のフリップフロップからの選定と、
新たなフリップフロップの追加と
を含む、請求項1に記載の回路設計方法。
【請求項4】
前記選定は、
任意の外部端子に直接接続される1つまたは複数の素子のいずれもがフリップフロップである場合に、当該素子のそれぞれを、前記ラッパーロジックの構成に使用するものとして選定することを含む、
請求項3に記載の回路設計方法。
【請求項5】
前記追加は、
任意の外部端子に直接接続される1つまたは複数の素子のいずれかがフリップフロップでない場合に、当該素子のいずれよりも前記外部端子側に近く接続される新たなフリップフロップを、前記ラッパーロジックの構成に使用するものとして追加することを含む、
請求項3又は4に記載の回路設計方法。
【請求項6】
前記ラッパーロジックの構成に使用するために選定された既存のフリップフロップと、
前記ラッパーロジックの構成に使用するために追加された新たなフリップフロップと、
前記ラッパーロジックの構成に使用しないフリップフロップと
をグループ分けするステップをさらに含み、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項3乃至5のいずれか1項に記載の回路設計方法。
【請求項7】
前記マルチビットフリップフロップの形成は、
各回路要素の物理的な配置位置を表したDEF(Design Exchange Format)記述の配置情報を用いてマルチビットフリップフロップを形成することを含む、
請求項1乃至6のいずれか1項に記載の回路設計方法。
【請求項8】
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップの中に、前記ラッパーロジックの構成に使用できないフリップフロップが含まれる場合、当該マルチビットフリップフロップの形成を解除するステップをさらに含む、
請求項1乃至7のいずれか1項に記載の回路設計方法。
【請求項9】
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを2つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成するステップをさらに含む、
請求項1乃至8のいずれか1項に記載の回路設計方法。
【請求項10】
前記ネットリストの元となるRTL(register transfer level)記述によるプログラムの中に、前記ラッパーロジックの構成に使用するフリップフロップを特定する事項を記述するステップをさらに含む、
請求項1乃至9のいずれか1項に記載の回路設計方法。
【請求項11】
コンピュータに、
回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定する機能と、
前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成する機能と
を実現させるためのプログラム。
【請求項12】
前記コンピュータに、
前記ラッパーロジックの構成に使用するフリップフロップと、前記ラッパーロジックの構成に使用しないフリップフロップとを、グループ分けする機能をさらに実現させ、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項11に記載のプログラム。
【請求項13】
前記ラッパーロジックの構成に使用するフリップフロップの決定は、
既存のフリップフロップからの選定と、
新たなフリップフロップの追加と
を含む、請求項11に記載のプログラム。
【請求項14】
前記選定は、
任意の外部端子に直接接続される1つまたは複数の素子のいずれもがフリップフロップである場合に、当該素子のそれぞれを、前記ラッパーロジックの構成に使用するものとして選定することを含む、
請求項13に記載のプログラム。
【請求項15】
前記追加は、
任意の外部端子に直接接続される1つまたは複数の素子のいずれかがフリップフロップでない場合に、当該素子のいずれよりも前記外部端子側に近く接続される新たなフリップフロップを、前記ラッパーロジックの構成に使用するものとして追加することを含む、
請求項13又は14に記載のプログラム。
【請求項16】
前記コンピュータに、
前記ラッパーロジックの構成に使用するために選定された既存のフリップフロップと、
前記ラッパーロジックの構成に使用するために追加された新たなフリップフロップと、
前記ラッパーロジックの構成に使用しないフリップフロップと
をグループ分けする機能をさらに実現させ、
前記グループ分けした結果は、それぞれマルチビットフリップフロップの形成に使用される、
請求項13乃至15のいずれか1項に記載のプログラム。
【請求項17】
前記マルチビットフリップフロップの形成は、
各回路要素の物理的な配置位置を表したDEF(Design Exchange Format)記述の配置情報を用いてマルチビットフリップフロップを形成することを含む、
請求項11乃至16のいずれか1項に記載のプログラム。
【請求項18】
前記コンピュータに、
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップの中に、前記ラッパーロジックの構成に使用しないフリップフロップが含まれる場合、当該マルチビットフリップフロップの形成を解除する機能をさらに実現させる、
請求項11乃至17のいずれか1項に記載のプログラム。
【請求項19】
前記コンピュータに、
前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを2つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成する機能をさらに実現させる、
請求項11乃至18のいずれか1項に記載のプログラム。
【請求項20】
前記コンピュータに、
前記ネットリストの元となるRTL(register transfer level)プログラムの中に、前記ラッパーロジックの構成に使用するフリップフロップを特定する事項を記述する機能をさらに実現させる、
請求項11乃至19のいずれか1項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、回路設計方法およびプログラムに関する。
【背景技術】
【0002】
一般に、LSIの実装においては、電力削減の観点からマルチビットフリップフロップ(以下、「MBFF」)が使われる。複数のフリップフロップをMBFFにまとめる(MBFFへ変換する)ことで、クロックやスキャンイネーブルの信号線を減らすことができ、ダイナミックパワー及び使用エリアを削減することができる。LSIの設計においては、複数のフリップフロップのMBFFへの変換を、変換率のよい論理合成の時に行っている。
【0003】
一方、階層スキャン用やLBIST(Logic Build-In Self Test)用にラッパーロジック(wrapper logic)を実装することがある。ラッパーロジックは、階層内外の影響を遮断するためのバウンダリロジックであり、一般に既存のFF(MBFFを含む)をなるべく利用して形成される。
【0004】
例えば通常のシステム動作用に使用されるMBFFをテスト用にも使用する共用ラッパーロジック(shared wrapper logic)を実装しようとする場合に、当該MBFFの一部に、ラッパーロジックの構成に使用できない要素が含まれていると、当該MBFFは共用ラッパーロジックには成り得ないため、新たなフリップフロップ等を追加して専用ラッパーロジック(dedicated wrapper logic)を形成する。その場合、MBFFの使用やラッパーロジックの共用化による電力削減と使用エリア削減の効果が低下する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−233084号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ラッパーロジックの形成において不要なフリップフロップ等が追加される事態を低減し、電力削減や使用エリア削減の効果を改善する。
【課題を解決するための手段】
【0007】
実施形態の回路設計方法は、回路のネットリストに基づき、ラッパーロジックの構成に使用するフリップフロップを決定するステップと、前記決定を行った後に、前記ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、前記ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するステップとを含む。
【図面の簡単な説明】
【0008】
図1】第1の実施形態に係る回路設計方法を実施するために使用される情報処理装置の概略構成の一例を示す図。
図2】論理合成および物理合成の概念を模式的に示す図。
図3】ラッパーロジックが実装される回路の概念を模式的に示す図。
図4A】MBFFの構造の例を示す図。
図4B】MBFFの構造の別の例を示す図。
図5】第1の実施形態に係る回路設計方法による処理手順の一例を示す図。
図6A】外部端子にフリップフロップ以外の素子が接続されている様子を示す図。
図6B】ラッパーロジック用のフリップフロップの追加が必要となることを示す図。
図7A】外部端子に接続される全素子がフリップフロップである様子を示す図。
図7B】外部端子に接続されるフリップフロップをラッパーロジック用に使用できることを示す図。
図8】ラッパーロジックの構成に使用できるフリップフロップと使用できないフリップフロップとを説明するための図。
図9】ラッパーロジックを構成するMBFFの形成と構成しないMBFFの形成とを説明するための図。
図10】ラッパーロジックを構成するMBFFにラッパーチェーン等が繋がれ、ラッパーロジックを構成しないMBFFに内部スキャンチェーンが繋がれることを説明するための図。
図11】一般的な技術による処理を説明するための図。
図12】第2の実施形態に係る回路設計方法による処理手順の一例を示す図。
図13】MBFFを2つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成する場合の例を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照して実施の形態について説明する。
【0010】
[第1の実施形態]
最初に、第1の実施形態について説明する。
【0011】
(構成)
図1は、第1の実施形態に係る回路設計方法を実施するために使用される情報処理装置の概略構成の一例を示す図である。
【0012】
図1に示される情報処理装置100は、例えばコンピュータであり、使用者が情報を入力する入力装置1、情報を表示するディスプレイ等の出力装置2、プログラムやデータを記憶するメモリ等の記録媒体3、当該コンピュータに各種の機能を実現させるためのプログラムを実行したり各種のデータ処理を行ったりするプロセッサ4などを備える。
【0013】
例えばLSI(Large-Scale Integrated Circuit)などの半導体テスト容易化設計に適用される各種のツールとして、合成用ツール11、スキャン用ツール12等が用意され、これらが記録媒体3に記憶される。これらのツールは、プロセッサ4の制御のもとで動作する。プロセッサ4は、入力装置1から入力される情報を各種ツールで使用されるデータに反映させたり、各種ツールで処理された情報を、出力装置2に表示させたり、記録媒体3に記憶させたりする。
【0014】
合成用ツール11は、論理合成を行う機能を備えるほか、物理合成を行う機能をも備える。
【0015】
図2に、論理合成および物理合成の概念を模式的に示す。
【0016】
合成用ツール11は、論理合成により、レジスタ転送レベルの機能記述文(RTL(register transfer level)記述によるプログラム)から、ゲートレベルの回路接続情報(合成ネットリスト)への展開を行う。また、合成用ツール11は、物理合成により、合成ネットリストから、各回路要素の物理的な配置位置を表したDEF(Design Exchange Format)記述の配置情報を生成することもできる。論理合成もしくは物理合成は、設計者が予め設定した制約条件(チップ面積、消費電力、遅延時間などの制約条件)も加味して実施される。
【0017】
なお、物理合成により生成された配置情報に鑑みて回路の論理構成に変更を加えることが好ましい場合は、適宜、上述した機能記述文(RTL記述によるプログラム)の該当する箇所を変更し、再度、論理合成を行って合成ネットリストを更新し、さらに物理合成を行ってDEF記述の配置情報を更新するようにしてもよい。
【0018】
一方、図1に示されるスキャン用ツール12は、合成用ツール11により生成された合成ネットリストに基づいて、ラッパーロジックが形成され且つスキャンイネーブル信号線やスキャンチェーン等が加えられた回路のネットリスト(スキャンネットリスト)を生成する。
【0019】
図3に、ラッパーロジックが実装される回路の概念を模式的に示す。
【0020】
図3に示されるように、チップ内の回路には階層を成す複数のロジック21、22、23、…がある。ラッパーロジックは、このような回路においてスキャンテスト等の際に階層内外の影響を遮断するためのバウンダリロジックである。ラッパーロジックには、当該回路を収容する階層ブロックの入力端子側に設けられる入力側ラッパーロジック21と、同階層ブロックの出力端子側に設けられる出力側ラッパーロジック23とがある。
【0021】
2つのラッパーロジック21、23は、マルチビットフリップフロップ(以下、「MBFF」)を用いて構成される。また、ラッパーロジック21、23の間に配置される内部ロジック22にも、MBFFを用いて構成されるものがある。各MBFFは、複数のフリップフロップからなる。
【0022】
内部ロジック22を構成するMBFFは、入力側ラッパーロジック21内の複数のフリップフロップと出力側ラッパーロジック23内の複数のフリップフロップとの間に接続された複数のフリップフロップからなる。内部ロジック22内の複数のフリップフロップへの信号入力の切り替えは、内部ロジック用のスキャンイネーブル信号seにより制御される。
【0023】
一方、入力側ラッパーロジック21を構成するMBFFは、複数の入力端子PI0〜PI2に直接、あるいは組合せ回路を経由して接続された複数のフリップフロップからなる。これら複数のフリップフロップへの信号入力の切り替えは、入力側ラッパーロジック用のスキャンイネーブル信号Iwrap_seにより制御される。
【0024】
また、出力側ラッパーロジック23を構成するMBFFは、複数の出力端子PO0〜PO2に直接、あるいは組合せ回路を経由して接続された複数のフリップフロップからなる。これら複数のフリップフロップへの信号入力の切り替えは、出力側ラッパーロジック用のスキャンイネーブル信号Owrap_seにより制御される。
【0025】
なお、上記したスキャンイネーブル信号se、Iwrap_se、Owrap_seは、ロジック毎に独立して制御される。クロック信号は共用ラッパーロジックの場合に内部ロジックのクロック信号と同一である。
【0026】
MBFFの構造の例を、図4A図4Bに示す。
【0027】
図4A図4Bは、それぞれ、複数のフリップフロップのMBFFへの変換(MBFFバンキング)が既に施された後の構造の例を模式的に示している。
【0028】
図4A図4Bに共通して示されるように、MBFFは、複数段に接続されたフリップフロップ30〜33およびマルチプレクサ(MUX)M0〜M3を含む。フリップフロップ30〜33には、CKポートから入力されるクロック信号が供給される。マルチプレクサ(MUX)M0〜M3には、SEポートから入力されるスキャンイネーブル信号が供給される。
【0029】
なお、SEポートから入力されるスキャンイネーブル信号は、MBFFが内部ロジック22を構成する場合はスキャンイネーブル信号seに該当し、MBFFが入力側ラッパーロジック21を構成する場合はスキャンイネーブル信号Iwrap_seに該当し、MBFFが出力側ラッパーロジック23を構成する場合はスキャンイネーブル信号Owrap_seに該当する。
【0030】
図4Aの例では、通常動作モードにおいては、D0〜D3ポートからデータが入力され、マルチプレクサM0〜M3を通じてフリップフロップ30〜33に送られ、Q0〜Q3ポートから出力されるパスが形成される。一方、スキャンシフトモードにおいては、SI0〜SI3ポートからテストデータが入力され、マルチプレクサM0〜M3を通じてフリップフロップ30〜33に送られ、Q0〜Q3ポート(通常動作モード時に使用するポートと同じポート)から出力されるパスが形成される。
【0031】
図4Bの例では、通常動作モードにおいては、D0〜D3ポートからデータが入力され、マルチプレクサM0〜M3を通じてフリップフロップ30〜33に送られ、Q0〜Q3ポートから出力されるパスが形成される。すなわち、図4Aの例の同様となる。一方、スキャンシフトモードにおいては、SIポートからテストデータが入力され、マルチプレクサM0を通じてフリップフロップ30に送られ、これより出力されるテストデータがマルチプレクサM1を通じてフリップフロップ31に送られ、これにより出力されるテストデータがマルチプレクサM2を通じてフリップフロップ32に送られ、これより出力されるテストデータがマルチプレクサM3を通じてフリップフロップ33に送られ、これより出力されるテストデータがSOポートから出力されるパスが形成される。すなわち、形成されるスキャンチェーンの経路が図4Aとは異なる。
【0032】
図4Aおよび図4Bにそれぞれ示した構造は、用途に応じていずれを採用してもよく、例えば配置場所の周囲の環境に鑑みて有利となる方を採用するなどしてもよい。また、図4Aおよび図4Bにそれぞれ示した構造は、例として挙げたものであり、これに限定されるものではない。
【0033】
(動作)
次に、図5を参照して、第1の実施形態に係る回路設計方法による処理手順の一例について説明する。
【0034】
最初に、合成用ツール11によって合成の処理(ステップS1)が行われる。ここでは、RTL記述によるプログラムに基づき、論理合成が行われ、合成ネットリストが生成される(ステップS11)。なお、この合成の処理(ステップS1)においては、複数のフリップフロップのMBFFへの変換(MBFFバンキング)は行われない。
【0035】
次に、スキャン用ツール12によってスキャンテストを可能にするための処理(ステップS2)が行われる。ここでは、合成用ツール11により生成された合成ネットリストに基づいて、ラッパーロジックが形成され且つスキャンイネーブル信号線やスキャンチェーンなどが加えられた回路のネットリスト(スキャンネットリスト)が生成される。その具体的な処理を以下に示す。
【0036】
ステップS12では、合成用ツール11によって生成された回路のネットリストの解析が行われ、ラッパーロジック(入力側ラッパーロジック21および出力側ラッパーロジック23の各々)を構成するフリップフロップを決定する処理が行われる。
【0037】
当該ラッパーロジックの構成に使用するフリップフロップの決定には、通常のシステム動作用に予め備えられた既存のフリップフロップからの「選定」と、新たなフリップフロップの「追加」とがある。
【0038】
「追加」には、例えば、階層ブロックの任意の外部端子に直接接続される1つまたは複数の素子のいずれかがフリップフロップでない場合に、当該素子のいずれよりも上記外部端子側に近く接続される新たなフリップフロップを、ラッパーロジックの構成に使用するものとして追加する処理が含まれる。
【0039】
例えば、図6Aに示されるように、階層ブロックの入力端子PIに接続されている全ての素子を探索した結果、フリップフロップのほかに、フリップフロップ以外の素子(例えばブラックボックス(BB)等に該当するもの)がある場合、それらの素子ではラッパーロジックを構成できないものとみなし、図6Bに示されるように、それらの素子のいずれよりも入力端子PI側に近く接続される新たなフリップフロップを追加する処理が行われる。ここで追加されるフリップフロップは、ラッパーロジックの構成のためにだけ新たに追加されるフリップフロップであり、後段の処理において専用ラッパーロジックを構成するものとなる。
【0040】
一方、「選定」には、階層ブロックの任意の外部端子に直接接続される1つまたは複数の素子のいずれもがフリップフロップである場合に、当該素子のそれぞれを、ラッパーロジックの構成に使用するものとして選定する処理が含まれる。
【0041】
例えば、図7Aに示されるように、階層ブロックの入力端子PIに接続されている全ての素子を探索した結果、全ての素子がフリップフロップである場合、それらの素子によりラッパーロジックを構成できるものとみなし、図7Bに示されるように、それらの素子をラッパーロジックの構成に使用するものとして選定する処理が行われる。ここで選定されるフリップフロップは、既存のフリップフロップであり、後段の処理において共用ラッパーロジックを構成するものとなる。
【0042】
なお、テストに使用しないフリップフロップについては、上述した「選定」や「追加」の対象外とする。
【0043】
例えば、図8に示されるように、入力端子PI0、PI1、PI2にそれぞれ最初に接続されている素子はフリップフロップのみであるため、これらのフリップフロップはラッパーロジックの構成に使用するものとして選定の対象とされるが、テストに使用しないロジック40を構成するフリップフロップは、ラッパーロジックの構成に使用されず、上述した「選定」や「追加」の対象にはならない。
【0044】
前述したとおり、ラッパーロジックには、入力側ラッパーロジック21と出力側ラッパーロジック23とがある。例えば、先に階層ブロックの出力端子に接続されている全ての素子を探索して、出力側ラッパーロジック23の構成に使用するフリップフロップを決定し、その後に、入力側ラッパーロジック21の構成に使用するフリップフロップを決定する手順を採用してもよい。その場合、出力側ラッパーロジック23の構成に使用するものとして決定したフリップフロップは、入力側ラッパーロジック21の構成に使用するものとして決定するフリップフロップの対象から除外するようにする。上記手順にて処理を行うことにより、階層ブロックの出力端子側からの探索に際して分岐する経路が少ないため、探索処理の負荷や時間の軽減を図ることができる。
【0045】
ステップS13では、ステップS12の処理で得られた情報を用いて、ラッパーロジック(入力側ラッパーロジック21および出力側ラッパーロジック23の各々)の構成に使用するフリップフロップと、ラッパーロジックの構成に使用しないフリップフロップとを、グループ分けするグルーピングが行われる。具体的には、ラッパーロジックの構成に使用するために選定された既存のフリップフロップと、ラッパーロジックの構成に使用するために追加された新たなフリップフロップと、ラッパーロジックの構成に使用しないフリップフロップとをグループ分けするグルーピングが行われる。
【0046】
グループ分けした各グループのフリップフロップの情報は、追加ネットリストとして纏められ、後述する各MBFFの形成に使用される。
【0047】
ステップS14では、ステップS13の処理で得られた情報を用いて、複数のフリップフロップのMBFFへの変換(MBFFバンキング)が行われる。具体的には、グループ分けされた個々のグループごとに、入力側ラッパーロジック21を構成するためのMBFF、および、出力側ラッパーロジック23を構成するためのMBFFが形成されるほか、これら以外の内部ロジック22等を構成するためのMBFFが形成される。各MBFFは、例えば論理的に近いフリップフロップ同士を用いて形成される。
【0048】
例えば、図9に示されるように、ラッパーロジックを構成するMBFF41が形成される一方で、ラッパーロジックを構成しないMBFF42が形成される。MBFF41は、前述した図8に示される入力端子PI0、PI1、PI2にそれぞれ接続されているフリップフロップをMBFF化したものである。MBFF42は、前述した図8に示されるロジック40に含まれるフリップフロップをMBFF化したものである。
【0049】
なお、図9の例では、図4Bの例に対応するMBFFを採用した場合が例示されている。各MBFFには、データ入力用のD0,D1,…のポート、データ出力用のQ0,Q1,…のポート、テストデータ入力用のSIポート、テストデータ出力用のSOポート、スキャンイネーブル信号入力用のSEポート、クロック信号入力用のCKポートが形成される。
【0050】
当該ステップS14の処理では、グループ分けされた個々のグループ毎に、それぞれMBFFを形成しているため、ラッパーロジックの構成に使用するフリップフロップを含むMBFFを形成するに際し、ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成することができる。
【0051】
ステップS15では、ラッパーロジックを構成するMBFFに対し、ラッパーロジック用のスキャンチェーン(以下、「ラッパーチェーン」)のスティッチが行われ、ステップS16では、内部ロジックを構成するMBFFに対し、内部ロジック用のスキャンチェーン(以下、「内部スキャンチェーン」)のスティッチが行われる。なお、ステップS15、S16の処理の順序は入れ替えても構わない。
【0052】
例えば、図10に示されるように、ラッパーロジックを構成するMBFF41においては、SIポート、SOポートのそれぞれにラッパーチェーンが繋がれる。SEポートにラッパーロジック用のスキャンイネーブル信号Iwrap_seを入力するラインが繋がれる。
【0053】
一方、ラッパーロジックを構成しないMBFF42においては、SIポート、SOポートのそれぞれに内部スキャンチェーンが繋がれる。SEポートには、内部ロジック用のスキャンイネーブル信号seを入力する信号線が繋がれる。
【0054】
ステップS17では、ステップS14〜S16の処理で得られた情報がスキャンネットリストとして纏められ、出力装置2等へ出力される。
【0055】
なお、図8図10では、MBFFの構造として、図4Aに示される例を採用しているが、これに限定されるものではない。例えば、図4Bに示される例を採用してもよく、これとは異なるものを採用してもよい。
【0056】
また、図8図10では、出力側ラッパーロジック23に係わる構成の図示を省略している。また、出力側ラッパーロジック23に係わる構成や処理は、入力側ラッパーロジック21と同様となるため、その説明を省略している。
【0057】
一般的な技術では、複数のフリップフロップのMBFF化(MBFFバンキング)を先に行ってから、ラッパーロジックの構成に必要なフリップフロップの選択や追加が検討される。その場合、ラッパーロジックの形成において本来不要なフリップフロップ等を追加する処理が生じることが多い。例えば共用ラッパーロジックを実装しようとする場合に、当該MBFFの一部に、ラッパーロジックを構成できない要素が含まれていると、当該MBFFは共用ラッパーロジックには成り得ないため、新たなフリップフロップを追加して専用ラッパーロジックを形成する。その場合、MBFFの使用やラッパーロジックの共用化による電力削減と使用エリア削減の効果が低下する。
【0058】
例えば、図11に示されるように、一般的な技術では、形成されたラッパーロジック用のMBFF43の一部に、ラッパーロジックの構成に使用できないD3ポートに対応するビット(もしくはフリップフロップ等)があると、当該MBFF43は共用ラッパーロジックを構成することができない。その場合、入力端子PI0〜PI2とD0〜D2ポートとの間にそれぞれ新たなフリップフロップおよびマルチプレクサを追加すると共にラッパーチェーンのスティッチおよびスキャンイネーブル信号のラインを追加する必要が生じる。
【0059】
これに対し、本実施形態によれば、ラッパーロジックの構成に使用するフリップフロップを決定した後に、ラッパーロジックの構成に使用するフリップフロップを含むマルチビットフリップフロップを、ラッパーロジックの構成に使用しないフリップフロップが含まれないように形成するので、ラッパーロジックの形成において本来不要なフリップフロップ等を追加すること事態を低減することができる。そのため、MBFFの使用やラッパーロジックの共用化による電力削減と使用エリア削減の効果を上げることが可能になる。
【0060】
[第2の実施形態]
次に、第2の実施形態について説明する。以下では、第1の実施形態と重複する部分の説明を省略し、異なる部分を中心に説明する。
【0061】
基本的な構成は第1の実施形態で図1等により示したものと同じであるが、動作が第1の実施形態とは異なる。
【0062】
図12に、第2の実施形態に係る回路設計方法による処理手順の一例を示す。第1の実施形態で図5により既に説明した処理手順と異なる点は、合成の処理(ステップS1)において、さらに、各回路要素の物理的な配置位置を表したDEF記述の配置情報を生成する点と、スキャンの処理(ステップS2)において、この配置情報を利用した情報処理を行う点である。
【0063】
ステップS11では、論理合成により生成した合成ネットリストから、物理合成により配置情報(DEF)が生成される。
【0064】
ステップS12では、配置情報を用いた解析が行われ、ラッパーロジックを構成するフリップフロップを決定(選定または追加)する処理が行われる。
【0065】
ステップS13’では、ステップS12の処理で得られた情報を用いて、さらに、ラッパーロジック構成に使用する各フリップフロップの物理的な配置位置を表したDEF記述の配置情報(以下、「ラッパーFF(def)情報」)も生成される。
【0066】
ステップS14では、さらに、ステップS11の処理で得られた配置情報、および、ステップS13’の処理で得られた「ラッパーFF(def)情報」を含む情報を用いて、複数のフリップフロップのMBFFへの変換(MBFFバンキング)が行われる。例えば、配置情報およびラッパーFF(def)情報から、フリップフロップとフリップフロップとの間が物理的に一定以上離れているMBFFがあることが判明した場合には、当該MBFFはデバンキング(de-banking)される。また、そのデバンキング後にバンキングをし直すようにしてもよい。
【0067】
ステップS15では、ラッパーロジックを構成するMBFFに対し、ラッパーチェーンのスティッチが行われ、ステップS16では、内部ロジックを構成するMBFFに対し、内部スキャンチェーンのスティッチが行われる。
【0068】
ステップS17では、ステップS14〜S16の処理で得られた情報がスキャンネットリストとして纏められ、出力装置2等へ出力される。
【0069】
本実施形態によれば、第1の実施形態で得られる効果に加え、配置情報を使用した情報処理が行われるため、例えばラッパーロジック構成に使用する各フリップフロップの物理的な配置位置などを把握でき、より適切なMBFFバンキングを行える。
【0070】
以下では、第1の実施形態および第2の実施形態で説明した処理の変形例について説明する。
【0071】
[変形例1]
ステップS14のMBFFバンキングの処理において形成される個々のMBFFのうち、任意のMBFF(例えば、ラッパーロジックの構成に使用するフリップフロップを含むMBFF)を、2つの部分に分け、それぞれの部分で使用されるスキャンイネーブル信号線およびスキャンチェーンを別々に形成する処理を行ってもよい。この処理は、2つの部分の動作をそれぞれ個別にテストしたい場合などに有効である。
【0072】
例えば、MBFFが図4Aの例に示される構造に該当するものである場合、図13に示されるように、ポートSEを2つのポートSE_A,SE_Bに分けて配置し、ポートSE_Aから入力されるスキャンイネーブル信号がマルチプレクサ(MUX)M0〜M2に供給され、ポートSE_Bから入力されるスキャンイネーブル信号がマルチプレクサ(MUX)M3に供給されるように構成すればよい。この場合、CKポートから入力されるクロック信号線については変更しなくてもよい。
【0073】
[変形例2]
ステップS14のMBFFバンキングの処理において形成される個々のMBFFのうち、任意のMBFF(例えば、ラッパーロジックの構成に使用するフリップフロップを含むMBFF)の中に、ラッパーロジックの構成に使用できないフリップフロップが含まれている(一部のフリップフロップのみがラッパーロジックの構成に使用できるフリップフロップである)ことが判明した場合、当該MBFFの形成を解除(デバンキング)する処理を行うようにしてもよい。この処理は、意に反して、ラッパーロジックの構成に使用するフリップフロップを含むMBFFの中に、ラッパーロジックの構成に使用できないフリップフロップが含まれてしまった場合などに有効である。上記デバンキング後にバンキングをし直してもよい。
【0074】
[変形例3]
ステップS1の合成の処理において、予め、合成ネットリストの元となるRTL記述によるプログラムの中に、ラッパーロジックの構成に使用するフリップフロップを特定する事項を記述する処理を行うようにしてもよい。この処理は、ラッパーロジックの構成に使用するフリップフロップが、予め予測できる場合、もしくは判明している場合に有効である。この処理により設計の更なる容易化や設計時間の短縮化を図ることができる。
【0075】
以上詳述したように実施形態によれば、ラッパーロジックの形成において不要なフリップフロップ等が追加される事態を低減し、電力削減や使用エリア削減の効果を改善することができる。
【0076】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0077】
1…入力装置、2…出力装置、3…記録媒体、4…プロセッサ、11…合成用ツール、12…スキャン用ツール、21…入力側ラッパーロジック、22…内部ロジック、23…出力側ラッパーロジック、100…情報処理装置。
図1
図2
図3
図4A
図4B
図5
図6A
図6B
図7A
図7B
図8
図9
図10
図11
図12
図13