(57)【要約】      （修正有）【課題】論理回路の面積縮小化を実現しつつ、設計ＴＡＴの短縮を可能とする技術を提供する。【解決手段】複合論理マクロセルを、基本マクロセルに置き換えて面積の総和を抽出し、その面積の総和と複合論理マクロセルの面積とを比較して面積縮小化に有効となる複合論理マクロセルを選択する。その選択された複合論理マクロセルにフラグを設定する。フラグを設定したマクロセルと同等の論理を論理情報から検索する論理構造検索処理を行い、置換対象となる基本マクロセルにフラグを設定する。置換対象のフラグを設定した基本マクロセルを、フラグ設定した複合論理マクロセルに置き換える等価論理置換処理を行う。【選択図】図７Ａ
2012177967.tif 000002
【特許請求の範囲】
【請求項１】
２つ以上の論理構造を持つ複合論理マクロセルの論理情報を、基本マクロセルの回路接続情報に置き換えて基本マクロセルの面積の総和を抽出し、前記基本マクロセルの面積の総和と前記複合論理マクロセルの面積とを比較して面積縮小化に有効となる複合論理マクロセルを選択する任意セル選択ステップと、
前記任意セル選択ステップで選択された前記複合論理マクロセルに、第１フラグを設定する任意セル選択フラグ設定出力ステップと、
前記任意セル選択フラグ設定出力ステップで、前記第１フラグを設定した前記複合論理マクロセルと同等の論理を、前記論理情報から検索する論理構造検索ステップと、
前記論理情報の中から前記検索によって得られた置換対象となる前記基本マクロセルに、第２フラグを設定する置換対象セルフラグ設定出力ステップと、
前記置換対象セルフラグ設定出力ステップで前記第２フラグを設定した前記基本マクロセルを、前記任意セル選択フラグ設定出力ステップで前記第１フラグを設定した前記複合論理マクロセルに置き換える等価論理置換ステップと
を有する
半導体装置の設計方法。
【請求項２】
請求項１に記載の半導体装置の設計方法において、
前記任意セル選択ステップは、
（ａ１）マクロセルライブラリに定義されている前記基本マクロセルの論理定義情報を、第１論理情報を生成するステップと、
（ａ２）前記マクロセルライブラリに定義されている前記複合論理マクロセルの論理定義情報を、前記第１論理情報に追加して第２論理情報を生成するステップと、
（ａ３）前記第２論理情報に定義されている前記基本マクロセルと前記複合論理マクロセルの面積値情報を含む面積情報を生成するステップと、
（ａ４）前記第２論理情報で定義された前記複合論理マクロセルの論理情報に、前記基本マクロセルの論理情報を当てはめて、論理構造情報を生成するステップと、
（ａ５）前記複合論理マクロセルの面積値と前記基本マクロセルの面積値とを前記面積情報から取得し、前記複合論理マクロセルの論理に対応する論理の前記基本マクロセルの面積値の総和を求め、前記総和と前記複合論理マクロセルの面積値とを比較するステップと、
（ａ６）前記比較の結果に基づいて、前記面積値が最小値となる論理構造の複合論理マクロセル示す判定結果情報を生成するステップと
を備える
半導体装置の設計方法。
【請求項３】
請求項２に記載の半導体装置の設計方法において、
前記任意セル選択フラグ設定出力ステップは、
（ｂ１）前記判定結果情報に含まれる前記複合論理マクロセル名称を特定し、前記マクロセルライブラリに含まれる特定した前記名称に対応する複合論理マクロセルに、任意セルを表すフラグを設定するステップと、
（ｂ２）前記任意セルを表すフラグを有するマクロセルライブラリを、フラグ付マクロセルライブラリとして出力するステップ
を備える
半導体装置の設計方法。
【請求項４】
請求項３に記載の半導体装置の設計方法において、
前記論理構造検索ステップは、
（ｃ１）作成済みの論理接続情報を読み出すステップと、
（ｃ２）前記判定結果情報を読み出すステップと、
（ｃ３）前記判定結果情報に記述される論理構造に該当する論理接続部を、前記論理接続情報から検索するステップと
を備え、
前記置換対象セルフラグ設定出力ステップは、
（ｄ１）検索によって得られた前記論理接続部に対して、置換対象のセルを表すフラグを設定するステップと、
（ｄ２）前記置換対象のセルを表すフラグを有するフラグ付論理接続情報を生成するステップと
を備える
半導体装置の設計方法。
【請求項５】
請求項４に記載の半導体装置の設計方法において、
前記等価論理置換ステップは、
（ｅ１）前記フラグ付論理接続情報と前記フラグ付マクロセルライブラリとを読み出すステップと、
（ｅ２）前記フラグ付論理接続情報に含まれる複合論理マクロセルの名称と、前記フラグ付マクロセルライブラリで示されるフラグが付加された複合論理マクロセル名称とが一致するか否かの判断を実行するステップと、
（ｅ３）その判断の結果に基づいて、前記フラグ付マクロセルライブラリに存在する置換対象セルを特定するステップと、
（ｅ４）論理合成ツールに利用する遅延・タイミングの条件が示されたファイルである制約条件を読み出すステップと、
（ｅ５）前記制約条件に基づいて、前記置換対象セルのフラグが付属しているフラグ付論理接続情報の該当セルを、フラグ付マクロセルライブラリの前記任意セルのフラグが付属している複合論理マクロセルに置換するステップ
を備える
半導体装置の設計方法。
【請求項６】
請求項１から５の何れか一項に記載の半導体装置の設計方法において、
前記基本マクロセルは、
ＮＯＴ回路と、ＡＮＤ回路と、ＯＲ回路と、ＮＡＮＤ回路と、ＮＯＲ回路と、ＸＯＲ回路と、前記ＮＯＴ回路の入力端子の反転論理をもつ回路と、前記ＡＮＤ回路の入力端子の反転論理をもつ回路と、前記ＯＲ回路の入力端子の反転論理をもつ回路と、前記ＮＡＮＤ回路の入力端子の反転論理をもつ回路と前記ＮＯＲ回路の入力端子の反転論理をもつ回路と、前記ＸＯＲ回路の入力端子の反転論理をもつ回路のマクロセルのうちの少なくとも一つを含む
半導体装置の設計方法。
【請求項７】
請求項１から６の何れか一項に記載の半導体装置の設計方法において、
前記複合論理マクロセルは、
前記基本マクロセルを複数有するマクロセルの機能を備える
半導体装置の設計方法。
【請求項８】
２つ以上の論理構造を持つ複合論理マクロセルの論理情報を、基本マクロセルの回路接続情報に置き換えて基本マクロセルの面積の総和を抽出し、前記基本マクロセルの面積の総和と前記複合論理マクロセルの面積とを比較して面積縮小化に有効となる複合論理マクロセルを選択する任意セル選択部と、
前記任意セル選択部で選択された前記複合論理マクロセルに、第１フラグを設定する任意セル選択フラグ設定出力部と、
前記任意セル選択フラグ設定出力部で、前記第１フラグを設定した前記複合論理マクロセルと同等の論理を、前記論理情報から検索する論理構造検索部と、
前記論理情報の中から前記検索によって得られた置換対象となる前記基本マクロセルに、第２フラグを設定する置換対象セルフラグ設定出力部と、
前記置換対象セルフラグ設定出力部で前記第２フラグを設定した前記基本マクロセルを、前記任意セル選択フラグ設定出力部で前記第１フラグを設定した前記複合論理マクロセルに置き換える等価論理置換部と
を有する
半導体装置の設計支援装置。
【請求項９】
請求項８に記載の半導体装置の設計支援装置において、
前記任意セル選択部は、さらに、
マクロセルライブラリに定義されている前記基本マクロセルの論理定義情報を、第１論理情報を生成する基本マクロセル論理式抽出部と、
前記マクロセルライブラリに定義されている前記複合論理マクロセルの論理定義情報を、前記第１論理情報に追加して第２論理情報を生成する複合論理マクロセル論理式抽出部と、
前記第２論理情報に定義されている前記基本マクロセルと前記複合論理マクロセルの面積値情報を含む面積情報を生成する面積値抽出部と、
前記第２論理情報で定義された前記複合論理マクロセルの論理情報に、前記基本マクロセルの論理情報を当てはめて、論理構造情報を生成する論理構造情報抽出部と、
前記複合論理マクロセルの面積値と前記基本マクロセルの面積値とを前記面積情報から取得し、前記複合論理マクロセルの論理に対応する論理の前記基本マクロセルの面積値の総和を求め、前記総和と前記複合論理マクロセルの面積値とを比較する論理構造／面積値判定部と、
前記比較の結果に基づいて、前記面積値が最小値となる論理構造の複合論理マクロセル示す判定結果情報を生成する判定結果情報抽出部と
を備える
半導体装置の設計支援装置。
【請求項１０】
請求項９に記載の半導体装置の設計支援装置において、
前記任意セル選択フラグ設定出力部は、
前記判定結果情報に含まれる前記複合論理マクロセル名称を特定し、前記マクロセルライブラリに含まれる特定した前記名称に対応する複合論理マクロセルに、任意セルを表すフラグを設定し、
前記任意セルを表すフラグを有するマクロセルライブラリを、フラグ付マクロセルライブラリとして出力する
を備える
半導体装置の設計支援装置。
【請求項１１】
請求項１０に記載の半導体装置の設計支援装置において、
前記論理構造検索部は、
作成済みの論理接続情報と前記判定結果情報とを読み出し、前記判定結果情報に記述される論理構造に該当する論理接続部を、前記論理接続情報から検索し、
前記置換対象セルフラグ設定出力部は、
検索によって得られた前記論理接続部に対して、置換対象のセルを表すフラグを設定して記置換対象のセルを表すフラグを有するフラグ付論理接続情報を生成する
半導体装置の設計支援装置。
【請求項１２】
請求項１１に記載の半導体装置の設計支援装置において、
前記等価論理置換部は、
前記フラグ付論理接続情報に含まれる複合論理マクロセルの名称と、前記フラグ付マクロセルライブラリで示されるフラグが付加された複合論理マクロセル名称とが一致するか否かの判断を実行し、その判断の結果に基づいて、前記任意セルフラグ付マクロセルライブラリに存在する置換対象セルを特定し、
論理合成ツールに利用する遅延・タイミングの条件が示されたファイルである制約条件
に基づいて、前記置換対象セルのフラグが付属しているフラグ付論理接続情報の該当セルを、前記フラグ付マクロセルライブラリの前記任意セルのフラグが付属している複合論理マクロセルに置換する
半導体装置の設計支援装置。
【請求項１３】
請求項８から１２の何れか一項に記載の半導体装置の設計支援装置において、
前記基本マクロセルは、
ＮＯＴ回路と、ＡＮＤ回路と、ＯＲ回路と、ＮＡＮＤ回路と、ＮＯＲ回路と、ＸＯＲ回路と、前記ＮＯＴ回路の入力端子の反転論理をもつ回路と、前記ＡＮＤ回路の入力端子の反転論理をもつ回路と、前記ＯＲ回路の入力端子の反転論理をもつ回路と、前記ＮＡＮＤ回路の入力端子の反転論理をもつ回路と前記ＮＯＲ回路の入力端子の反転論理をもつ回路と、前記ＸＯＲ回路の入力端子の反転論理をもつ回路のマクロセルのうちの少なくとも一つを含む
半導体装置の設計支援装置。
【請求項１４】
請求項８から１３の何れか一項に記載の半導体装置の設計支援装置において、
前記複合論理マクロセルは、
前記基本マクロセルを複数有するマクロセルの機能を備える
半導体装置の設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：半導体集積回路）を設計する技術に関する。
【背景技術】
【０００２】
情報処理装置に対する処理の高速化や多様化の要求が高まってきている。そのため、情報処理装置に搭載されるＬＳＩに対しても、多機能化や高性能化などの要求が高まってきている。多機能なＬＳＩや高性能なＬＳＩは、大規模なものとなってしまうことがある。ＬＳＩの大規模化は、製造コストの増大を引き起こす場合がある。そのため、多機能化や高性能化などの要求を満たしつつ、製造コストの増大を抑制する技術が求められている。
【０００３】
製造コストの増大を抑えるために、ＬＳＩの大規模化を抑制する技術が知られている。例えば、論理合成ツールを利用するＬＳＩの設計技術の分野において、論理回路における面積縮小化の技術が知られている（例えば、特許文献１〜５参照）。
【０００４】
特許文献１には、ＬＳＩ全体の面積縮小化を図るための技術が開示されている。特許文献１に記載の技術は、論理合成後の論理接続情報を入力として、等価論理抽出置換部により、面積縮小化を行って論理接続情報を出力している。
【０００５】
図１は、特許文献１に記載の等価論理抽出置換装置の動作手順を示すフローチャートである。まず、等価論理抽出置換部１０５は、論理合成部（図示されず）からの論理合成によって得られた論理接続情報１１１を受け取る。その論理接続情報は、読み込まれた後メモリに格納される（ステップＳＴ１）。
【０００６】
次に、入力仕様情報１１２としての“マクロセル名”，“抽出する論理パターン”、“置き換えを行う論理パターン”および“新規マクロセル名”を指定し（ステップＳＴ２）、入力された論理接続情報１１１に対して、２つのマクロセルの組み合わせを網羅的に抽出し、全ての組み合わせおよび使用されている数を抽出する（ステップＳＴ３）。この結果、設計者は、どのようなマクロセルの組み合わせの使用頻度が高い傾向にあるかを把握することができる。
【０００７】
特許文献１に記載の技術において、ステップＳＴ２で“マクロセル名”が指定された場合は、指定されたマクロセルを含む２つのマクロセルで構成される論理パターンおよびその数を抽出するとともに、“抽出する論理パターン”が指定された場合は、指定された論理パターンの数を抽出し、等価論理パターン情報１１３として表示し、さらに、入力仕様情報１１２において、“置き換えを行う論理パターンおよび新規マクロセル名”が指定された場合、指定された論理パターンおよび数を抽出する（ステップＳＴ３）。ここでの“論理パターン”とは、２つのマクロセルの組み合わせである。
【０００８】
次に、ステップＳＴ３で抽出された等価論理パターン情報を参照しながら、該当する論理パターンを新規マクロセルに置き換えを行い、論理接続情報１１１を更新する（ステップＳＴ４）。そして、マクロセルライブラリ１１４より置換前の論理接続情報の遅延・面積の算出および、新規マクロセルに置き換えた論理接続情報１１１の遅延・面積の見積りを行い、置換前後の面積および遅延の情報を、遅延面積見積り情報１１５として出力し（ステップＳＴ５）、この遅延面積見積り情報１１５に基づいて新規マクロセルを作成するために必要な新規マクロセル情報１１６を出力する（ステップＳＴ６）。最後に、新規マクロセル情報１１６を論理接続情報１１７に書き込み、出力する（ステップＳＴ７）。
【０００９】
また、特許文献２には、低スタンバイ電力、高速動作、および低消費電力を満足する回路を容易に設計することができるようにするための技術が開示されている。特許文献２に記載の技術では、条件設定部には、回路の設計情報が入力されている。また、記憶部には、セルライブラリが格納されている。セルライブラリには、閾値電圧Ｖｔｈ、セルの幅、およびそれぞれの端子の位置と機能が同じで、セルの高さを変えることにより駆動能力が異なる２種類のセルが記憶されている。レイアウト部によるセルの配置およびセル間の配線の後、動作速度算出部は、回路の動作速度を算出する。置換部は、動作速度を満足しないセルがある場合には、記憶部に記憶された他の動作速度の速いセルと置き換えて回路を出力する。
【００１０】
また、特許文献３には、マクロセルの配置や配線がタイミング解析の結果にもたらす影響を低減させた上で、配置配線後の回路がタイミング条件を満たすか否かを的確に判定できる技術が開示されている。その特許文献３に記載の技術では、供給されるネットリストに含まれる複数のセルの情報の中からマクロセルの情報が抽出部において抽出される。この抽出されたマクロセルの情報を、これと同等の機能を有するとともに面積が小さいセルの情報に置換したセルライブラリが、置換部において作成される。次いで、作成されたセルライブラリとネットリストに基づいて、セルの配置設計および配線設計が行なわれる。この配置配線処理がなされた回路情報に基づいて、回路中の各パスにおける伝播遅延時間が解析される。そして、解析された各パスの伝播遅延時間が所定の基準を満たしているかが判定される。
【００１１】
また、特許文献４には、回路接続情報から論理情報を抽出し、この論理情報に最小の面積を有するブロックをマッピングすることにより、半導体集積回路の面積を縮小することが可能な半導体集積回路の設計方法に関する技術が開示されている。その特許文献４に記載の技術では、半導体集積回路に含まれる順序回路の出力端子を起点として、順序回路毎の論理グループを生成する。また、論理パス毎の論理情報を抽出する。そして、論理パス毎の論理情報に対応する面積情報付き論理情報を抽出し、この中から最小の面積を有するブロックを選択する。そのうえで、最小の面積を有するブロックを用いて回路接続情報を生成し、この回路接続情報を用いて自動レイアウトを行っている。
【００１２】
また、特許文献５には、ＨＤＬ記述を対象とした最適化処理において、回路の処理規模調整及び特定部分に着目した最適化処理調整の作業を自動化するための技術がかいじされている。その特許文献５に記載の技術では、部分回路抽出部が、最適化対象となる部分回路を、階層を持たない構造として抽出する。そして、属性情報を付加した後に回路構造変更部でセルの変換を実施する。このとき変換の対象となったセルがそれぞれ異なる階層に所属する場合は、各セルに所属が複数階層であることを示す新たな属性情報を付加する。部分回路復元部は、最適化された部分回路を前記新たに付加された属性情報に基づいて全体回路に戻すようにしている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１０−２３２８８８号公報
【特許文献２】特開２００４−１９３２６０号公報
【特許文献３】特開２００３−３３０９８５号公報
【特許文献４】特開２００３−０７６７２９号公報
【特許文献５】特開平１０−３２０４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
例えば、特許文献１に記載されているような技術では、論理接続情報のマクロセルにおいて、２つのマクロセルの組み合わせを網羅的に抽出し、全ての組み合わせおよび使用されている数を抽出している。そのため、２つのマクロセルの組み合わせを１つのマクロセルに置き換える事で論理回路の面積を縮小化することが可能である。しかしながら、特許文献１に記載の技術では、３つ以上のマクロセルの組み合わせ部分の面積縮小化を行う際は、２つのマクロセルの組み合わせを網羅的に抽出する処理を複数回実施する必要がある。そのため、設計ＴＡＴが増大してしまう。近年のＬＳＩの設計においては、回路の大規模化により設計ＴＡＴが長くなっており、設計ＴＡＴ短縮の要求（必要性）が高まってきている。本発明が解決しようとする課題は、論理回路の面積縮小化を実現しつつ、設計ＴＡＴの短縮を可能とする技術を提供することにある。
【課題を解決するための手段】
【００１５】
上記の課題を解決するために、２つ以上の論理構造を持つ複合論理マクロセルの論理情報（論理式）を、基本マクロセルの回路接続情報に置き換えて基本マクロセルの面積の総和を抽出し、基本マクロセルの面積の総和と複合論理マクロセルの面積とを比較して面積縮小化に有効となる複合論理マクロセルを選択する任意セル選択（等価論理抽出）処理を行う。そして、任意セル選択処理で選択された複合論理マクロセルにフラグを設定する任意セル選択フラグ設定出力処理を行う。
任意セル選択フラグ設定出力処理にてフラグを設定したマクロセルと同等の論理を論理情報から検索する論理構造検索処理を行う。論理情報の中から置換対象となる基本マクロセルにフラグを設定する置換対象セルフラグ設定出力処理を行う。置換対象セルフラグ設定出力処理にてフラグ設定した基本マクロセルを、任意セル選択フラグ設定出力処理でフラグ設定した複合論理マクロセルに置き換える等価論理置換処理を行う。
【発明の効果】
【００１６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、論理回路の面積縮小化を実現しつつ、設計ＴＡＴの短縮を可能とする技術を提供することが可能となるという効果がある。
具体的には、３つ以上のマクロセルの組み合わせ部分の等価論理置換が可能になった事で、一度の処理で論理回路の面積縮小化が可能となり設計ＴＡＴが短縮できるという効果がある。
【図面の簡単な説明】
【００１７】
【図１】図１は、特許文献１に記載の等価論理抽出置換装置の動作手順を示すフローチャートである。
【図２】図２は、本実施形態の半導体装置設計支援システム８５の構成を例示するシステム構成図である。
【図３】図３は、コンピュータ装置８３の構成を例示するブロック図である。
【図４】図４は、任意セル選択ツール３４の構成を例示するブロック図である。
【図５】図５は、ファイル格納部３５の構成を例示するブロック図である。
【図６】図６は、本実施形態の任意セル選択部１２の構成を例示するブロック図である。
【図７Ａ】図７Ａは、任意セル選択ツール３４の全体的な動作を例示するフローチャートである。
【図７Ｂ】図７Ｂは、任意セル選択ツール３４の全体的な動作を例示するフローチャートである。
【図８】図８は、選択情報２の構成を例示するリストである。
【図９Ａ】図９Ａは、任意セル選択部１２の動作を例示するフローチャートである。
【図９Ｂ】図９Ｂは、任意セル選択部１２の動作を例示するフローチャートである。
【図１０】図１０は、第２論理情報５２の構成を例示するリストである。
【図１１】図１１は、面積情報５３の構成を例示するリストである。
【図１２】図１２は、論理構造情報５４の構成を例示するリストである。
【図１３】図１３は、本実施形態の判定結果情報４の構成を例示するリストである。
【図１４Ａ】図１４Ａは、任意セル選択部１２の動作を例示するフローチャートである。
【図１４Ｂ】図１４Ｂは、任意セル選択部１２の動作を例示するフローチャートである。
【図１５】図１５は、フラグ付マクロセルライブラリ５の構成を例示するリストである。
【図１６】図１６は、フラグ付論理接続情報７の構成を例示するリストである。
【図１７】図１７は、置換後の論理接続情報の構成を例示するリストである。
【図１８】図１８は、置換前の論理回路の回路構成を例示する回路図である。
【図１９】図１９は、置換後の論理回路の構成を例示する回路図である。
【図２０】図２０は、第２実施形態の任意セル選択部１２の構成を例示するブロック図である。
【図２１Ａ】図２１Ａは、第２実施形態の任意セル選択部１２の動作を例示するフローチャートである。
【図２１Ｂ】図２１Ｂは、第２実施形態の任意セル選択部１２の動作を例示するフローチャートである。
【図２１Ｃ】図２１Ｃは、第２実施形態の任意セル選択部１２の動作を例示するフローチャートである。
【図２２】図２２は、順序セル論理情報の構成を例示するリストである。
【図２３】図２３は、論理構造情報６８の構成を例示するリストである。
【図２４】図２４は、第３実施形態の任意セル選択部１２の構成を例示するブロック図である。
【図２５Ａ】図２５Ａは、第３実施形態の任意セル選択部１２の動作を例示するフローチャートである。
【図２５Ｂ】図２５Ｂは、第３実施形態の任意セル選択部１２の動作を例示するフローチャートである。
【図２５Ｃ】図２５Ｃは、第３実施形態の任意セル選択部１２の動作を例示するフローチャートである。
【図２５Ｄ】図２５Ｄは、第３実施形態の任意セル選択部１２の動作を例示するフローチャートである。
【図２６】図２６は、多ビットセル論理情報の構成を例示するリストである。
【図２７】図２７は、論理接続情報形式として出力される論理構造情報７８の構成を例示するリストである。
【発明を実施するための形態】
【００１８】
［第1実施形態］
以下、本発明の実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１９】
図２は、本実施形態の半導体装置設計支援システム８５の構成を例示するシステム構成図である。半導体装置設計支援システム８５は、サーバ８０と記録媒体８１とネットワーク８２とコンピュータ装置８３を備えている。また、コンピュータ装置８３は記憶装置を備えている。
【００２０】
記録媒体８１は、任意セル選択置換プログラムを格納する。その記録媒体８１は、サーバ８０に保持されている。サーバ８０は、インターネットなどのネットワーク８２を介して、エンジニアリングワークステーション等のコンピュータ装置８３に接続される。記録媒体８１に格納されている任意セル選択置換プログラムは、ネットワーク８２を介してコンピュータ装置８３にダウンロードされる。
【００２１】
ダウンロードされた任意セル選択置換プログラムは、コンピュータ装置８３のローカルなハードディスク、あるいは、メモリなどの記憶装置にストアされる。コンピュータ装置８３は、任意セル選択置換プログラムに示される手順にしたがって情報処理を行う。具体的には、コンピュータ装置８３は、記憶装置に格納されているマクロセルライブラリ、論理接続情報を元に、コンピュータ装置８３に供給された選択情報及び制約条件にしたがって、実行処理を行う。
【００２２】
コンピュータ装置８３は、任意セル選択置換プログラムに示される手順にしたがって、中間データとなる論理構造／面積値判定結果情報と、置換情報付マクロセルライブラリと、置換情報付論理接続情報とを生成する。生成された置換情報付論理接続情報は、コンピュータ装置８３の記憶装置に保持される。なお、本実施形態の半導体装置設計支援システム８５において、コンピュータ装置８３に外部記憶装置を接続し、その外部記憶装置に各ファイルを格納する構成であってもよい。
【００２３】
図３は、コンピュータ装置８３の構成を例示するブロック図である。図３に示されているように、コンピュータ装置８３は、コンピュータ装置本体８６と、入力装置８７と、出力装置８８とを備えている。
【００２４】
コンピュータ装置本体８６は、コンピュータプログラムに示される手順に従って情報処理を高速に行う。本実施形態のコンピュータ装置本体８６は、任意セル選択ツール３４（任意セル選択置換プログラム）に示される手順に従って動作することで、任意セルを選択し置換するためのツールとしての機能を提供する。コンピュータ装置本体８６は、入力、記憶、演算、制御および出力の機能を備えている。入力装置８７は、マウスやキーボードなどに代表されるマンマシンインターフェースである。入力装置８７は、ユーザの操作に応答して、コンピュータ装置本体８６へデータを入力する。出力装置８８は、液晶ディスプレイやプリンターなどに代表されるマンマシンインターフェースである。出力装置８８は、コンピュータ装置本体８６の処理結果を、ユーザに認識できる形式で出力する。上述のコンピュータ装置本体８６は、演算処理部３１と、情報記憶部３２とを備え、それらは、バス３３を介して接続されている。
【００２５】
演算処理部３１は、コンピュータ装置本体８６に備えられた各種装置の制御やデータ処理を実行する。演算処理部３１は、コンピュータ装置本体８６が入力装置８７を介して受け取ったデータを解釈して演算し、その演算結果を出力装置８８などで出力する。情報記憶部３２は、ＲＡＭやハードディスクなどに代表されるデータを記憶するための装置である。コンピュータ装置本体８６は、外部ネットワークを介して他の機器とデータ通信するための通信処理装置を備えていてもよい。
【００２６】
情報記憶部３２は、任意セル選択ツール３４（任意セル選択置換プログラム）と、ファイル格納部３５とを備えている。その任意セル選択ツール３４は、半導体集積回路の設計を、コンピュータシステムを用いて自動的に行うためのソフトウェアである。その任意セル選択ツール３４に示される手順に従ってコンピュータ装置本体８６が動作する。ファイル格納部３５は、半導体集積回路を設計するために必要な情報を保持している。
【００２７】
図３に示されているように、その任意セル選択ツール３４は、半導体集積回路の設計の第１段階を実行するための手順を示す第１段階実行部３６と、第２段階を実行するための手順を示す第２段階実行部３７とを含んでいる。
【００２８】
図４は、任意セル選択ツール３４の構成を例示するブロック図である。任意セル選択ツール３４の第１段階実行部３６は、選択仕様入力部１１と任意セル選択部１２と任意セル選択フラグ設定部１３とを含んでいる。また、任意セル選択ツール３４の第２段階実行部３７は、論理接続情報入力部１４と、判定結果情報入力部１５と、論理構造検索部１６と、置換対象セルフラグ設定部１７と、置換情報入力部１８と、等価論理置換部１９と、論理接続情報生成部２０とを含んでいる。
【００２９】
図５は、ファイル格納部３５の構成を例示するブロック図である。ファイル格納部３５は、選択情報２と、マクロセルライブラリ３と、判定結果情報４と、フラグ付マクロセルライブラリ５と、論理接続情報６と、フラグ付論理接続情報７と、制約条件８と、置換後論理接続情報９とを保持している。本実施形態で述べるマクロセルとは、インバータ、ＡＮＤ、ＯＲといった単純な論理のセルである。
【００３０】
本実施形態の任意セル選択ツール３４において、選択仕様入力部１１は、選択仕様の入力処理を実行する。選択仕様入力部１１は、論理回路の面積縮小化に有効となるマクロセル（以降、任意セルと称す）の選択情報２を、任意セル選択ツール３４の入力として受け取る。また、任意セル選択部１２は、等価論理の抽出に対応する処理を実行する。具体的には、任意セル選択部１２は、マクロセルライブラリ３を受け取り、論理情報の抽出と、面積情報の抽出と、論理構造／面積値の判定と、最小論理構造の検索と、判定結果情報の抽出を行う。その任意セル選択部１２は、上記の複数の処理を行うことで、判定結果情報４を生成する。任意セル選択フラグ設定部１３は、フラグ付マクロセルライブラリ５を生成する。以上のように、選択仕様入力部１１、任意セル選択部１２および任意セル選択フラグ設定部１３によって、任意セル選択ツール３４の第１段階実行部３６による第１段階の処理が行われる。
【００３１】
論理接続情報入力部１４は、論理回路の論理接続情報６を任意セル選択ツール３４の入力として受け取る。判定結果情報入力部１５は、第１段階の処理で生成された、判定結果情報４を任意セル選択ツール３４の入力として受け取る。論理構造検索部１６は、判定結果情報４の論理構造により、論理接続情報から該当する論理接続部の検索を行う。置換対象セルフラグ設定部１７は、論理構造の検索処理により、該当した論理接続部をフラグ付論理接続情報７として出力する。
【００３２】
置換情報入力部１８は、フラグ付マクロセルライブラリ５とフラグ付論理接続情報７とを任意セル選択ツール３４の入力として受け取る。等価論理置換部１９は、遅延、タイミング、パワーなどの制約条件（論理合成に利用する最適化条件）を示す制約条件８を受け取り、任意セルフラグ情報と置換対象セルフラグ情報が一致する任意セルに置換する処理を実行する。論理接続情報生成部２０は、最終的に面積縮小化が行われた論理回路の置換後論理接続情報９を生成する。以上のように、論理接続情報入力部１４〜論理接続情報生成部２０によって、任意セル選択ツール３４の第２段階実行部３７による第２段階の処理が行われる。
【００３３】
図６は、本実施形態の任意セル選択部１２の構成を例示するブロック図である。本実施形態の任意セル選択部１２は、マクロセルライブラリ入力部３８と、基本マクロセル論理式抽出部３９と、複合論理マクロセル論理式抽出部４０と、論理情報入力部４１と、面積値抽出部４２と、論理構造情報抽出部４３と、面積情報入力部４４と、論理構造情報入力部４５と、論理構造／面積値判定部４６と、最小論理構造検索部４７と、判定結果情報抽出部４８と、任意選択マクロセル論理式抽出部４９とを備えている。
【００３４】
マクロセルライブラリ入力部３８は、論理合成ツールに利用されるテクノロジ情報が定義されたマクロセルライブラリ３を任意セル選択部１２の入力として受け取る。
【００３５】
基本マクロセル論理式抽出部３９は、マクロセルライブラリ３に定義されている基本マクロセル（ＩＮＶＥＲＴＥＲ、ＡＮＤ、ＮＡＮＤ、ＯＲ、ＮＯＲ、ＸＯＲ、及びこれらの入力端子の反転論理をもつマクロセル、但しＢＵＦＦＥＲセルは除く）の論理定義情報（論理式）を、第１論理情報５１として抽出する。抽出された第１論理情報５１は、ファイル格納部３５に格納される。
【００３６】
複合論理マクロセル論理式抽出部４０は、基本マクロセルを除くマクロセル（複合論理マクロセル）の論理定義情報（論理式）を、先の第１論理情報５１に追加した、第２論理情報５２として抽出する。抽出された第２論理情報５２は、ファイル格納部３５に格納される。
【００３７】
論理情報入力部４１は、抽出された第２論理情報５２を任意セル選択部１２の入力として受け取る。
【００３８】
面積値抽出部４２は、第２論理情報５２に定義されている基本マクロセル、及び、複合論理マクロセルの面積値情報を面積情報５３として抽出する。抽出された面積情報５３は、ファイル格納部３５に格納される。
【００３９】
論理構造情報抽出部４３は、第２論理情報５２で定義された複合論理マクロセルの論理式に基本マクロセルの論理式を当てはめて、論理構造情報５４として抽出する。抽出された論理構造情報５４は、ファイル格納部３５に格納される。論理構造情報５４には、第２論理情報５２の複合論理マクロセルの論理式に対し、基本マクロセルの論理式で構成可能な論理の組み合わせ分が全て抽出されている
【００４０】
面積情報入力部４４は、面積情報５３を任意セル選択部１２の入力として受けとる。論理構造情報入力部４５は、論理構造情報５４を任意セル選択部１２の入力として受けとる。
【００４１】
論理構造／面積値判定部４６は、複合論理マクロセルの面積値を面積情報５３から取得する。また、基本マクロセルの面積値を面積情報５３から取得し、複合論理マクロセルの論理を構成する論理を持つ基本マクロセルの面積値の総和を求める。その基本マクロセルの面積値の総和と、複合論理マクロセルの面積値との比較を行い、どちらが大きいかの判定を実行する。複合論理マクロセルの面積値の方が小さい場合は、このマクロセル名称を維持する。
【００４２】
最小論理構造検索部４７は、面積最小値と判定された複合論理マクロセルに対し、更に複合論理マクロセル同士で論理構造が最小となる複合論理マクロセルが含まれていないか検索を行う。
【００４３】
判定結果情報抽出部４８は、最終的に最小面積となる論理構造の複合論理マクロセルを、判定結果情報４として抽出する。抽出された判定結果情報４は、ファイル格納部３５に格納される。
【００４４】
任意選択マクロセル論理式抽出部４９は、任意セル名称に該当する複合論理マクロセルのみ抽出し、第２論理情報５２に保存する。
【００４５】
図７Ａ、図７Ｂは、本実施形態の半導体装置設計支援システム８５における、任意セル選択ツール３４の全体的な動作を例示するフローチャートである。任意セル選択ツール３４の動作の第１段階では、ステップＳ１０１において、選択仕様の入力処理を実行する。選択仕様入力部１１は、論理回路の面積縮小化に有効となるマクロセル（以降、任意セルと称す）の選択情報２を、任意セル選択ツール３４の入力として受け取る。
【００４６】
図８は、選択情報２の構成を例示するリストである。本実施形態の任意セル選択ツール３４において、任意セルの選択を実行する場合、選択情報２に基づいて、
１）任意セルの自動選択
２）任意セルの任意選択
を切り替えることが可能である。
【００４７】
ステップＳ１０１では、選択仕様入力部１１において、任意セルの選択方法が、
１）任意セルの自動選択
２）任意セルの任意選択
の何れかであるかを認識する。図８に示されているように、選択情報２は、
ＡＵＴＯ：ｔｒｕｅ  ｜  ｆａｌｓｅ
の選択を行うスイッチ設定を有している。ｔｒｕｅに設定された場合は、後述する図９Ａ、図９Ｂに例示される動作フローにしたがって面積縮小化に有効となる任意セルの判定結果情報４が出力される。
【００４８】
また、ｆａｌｓｅに設定された場合で、かつ、ＣｅｌｌＮａｍｅ：に任意セルの任意選択対象のマクロセル名称が指定された場合は、図１０に例示される動作フローにしたがって、任意選択されたマクロセルに関する判定結果情報４が出力される。尚、ｆａｌｓｅに設定された場合でかつ、ＣｅｌｌＮａｍｅ：に任意セルの任意選択対象のマクロセル名称が指定されない場合は、任意セルの設定が無い事を表示し、処理を終了させる。
【００４９】
図７Ａに戻り、ステップＳ１０２において、任意セル選択部１２は、任意セル選択（等価論理抽出）処理を実行する。任意セル選択部１２は、マクロセルライブラリ３を任意セル選択ツール３４の入力として受け取る。任意セル選択部１２は、マクロセルライブラリ３基づいて、論理情報の抽出と、面積情報の抽出と、論理構造／面積値の判定と、最小論理構造の検索と、判定結果情報の抽出とを行う。任意セル選択部１２は、上記の処理を行うことで、判定結果情報４を生成する。
【００５０】
ステップＳ１０３において、任意セル選択フラグ設定部１３は、フラグ付マクロセルライブラリ５を生成する。フラグ付マクロセルライブラリ５を生成した後、処理は第２段階に移行する。
【００５１】
図７Ｂに示されるように、任意セル選択ツール３４の動作の第２段階では、ステップＳ１０４において、論理接続情報の入力処理を実行する。このとき、論理接続情報入力部１４は、論理回路の論理接続情報６を、任意セル選択ツール３４の入力として受け取る。
【００５２】
ステップＳ１０５において、判定結果情報入力部１５は、第１段階の処理によって生成された判定結果情報４を、任意セル選択ツール３４の入力として受け取る。
【００５３】
ステップＳ１０６において、論理構造検索部１６は、判定結果情報４の論理構造により論理接続情報から該当する論理接続部の検索を行う。ステップＳ１０７において、置換対象セルフラグ設定部１７は、論理構造の検索により該当した論理接続部を、フラグ付論理接続情報７として出力する。
【００５４】
ステップＳ１０８において、置換情報入力部１８は、フラグ付マクロセルライブラリ５とフラグ付論理接続情報７とを任意セル選択ツール３４の入力として受け取る。ステップＳ１０９において、等価論理置換部１９は、遅延、タイミング、パワーなど制約条件（論理合成に利用する最適化条件）である制約条件８に基づいて、フラグ付マクロセルライブラリ５の任意セルフラグ情報と、フラグ付論理接続情報７の置換対象セルフラグ情報が一致する任意セルに、置換処理を実行する。ステップＳ１１０において、論理接続情報生成部２０により、最終的に面積縮小化が行われた論理回路の判定結果情報４が出力される。
【００５５】
ここで、上述のステップＳ１０２における任意セル選択部１２の動作の詳細について説明する。図９Ａ、図９Ｂは、ステップＳ１０１で、ＡＵＴＯ：ｔｒｕｅが選択された場合の任意セル選択部１２の動作を例示するフローチャートである。
【００５６】
ステップＳ２０１において、マクロセルライブラリ入力部３８は、論理合成ツールに利用されるテクノロジ情報が定義されたマクロセルライブラリ３を、任意セル選択部１２の入力として受け取る。
【００５７】
ステップＳ２０２において、基本マクロセル論理式抽出部３９は、マクロセルライブラリ３に定義されている基本マクロセルの論理定義情報（論理式）を、第１論理情報５１として抽出する。ここで、その基本マクロセルとは、ＢＵＦＦＥＲセルを除く、ＩＮＶＥＲＴＥＲ、ＡＮＤ、ＮＡＮＤ、ＯＲ、ＮＯＲ、ＸＯＲ、及びこれらの入力端子の反転論理をもつマクロセルであるものとする。
【００５８】
ステップＳ２０３において、複合論理マクロセル論理式抽出部４０は、基本マクロセルを除くマクロセル（複合論理マクロセル）の論理定義情報（論理式）を、先の第１論理情報５１に追加して第２論理情報５２とし、その第２論理情報５２を抽出する。
【００５９】
図１０は、その第２論理情報５２の構成を例示するリストである。基本マクロセルの論理式は、
Ｂａｓｅ  ｃｅｌｌ（…）｛  ｝
で示されたグループ内の、
ｆｕｎｃｔｉｏｎ
という文字列で定義されている。また、複合論理マクロセルの論理式は、
Ｍａｃｒｏ  ｃｅｌｌ（…）｛  ｝
で示されたグループ内の、
ｆｕｎｃｔｉｏｎ
という文字列で定義されている。
【００６０】
図９Ａに戻り、ステップＳ２０４において、論理情報入力部４１は、抽出された第２論理情報５２を任意セル選択部１２の入力として受けとる。
【００６１】
ステップＳ２０５において、面積値抽出部４２は、第２論理情報５２の、
Ｂａｓｅ  ｃｅｌｌ（…）｛  ｝
で示された基本マクロセル、及び、
Ｍａｃｒｏ  ｃｅｌｌ（…）｛  ｝
で示された複合論理マクロセルを特定する。そして、マクロセルライブラリ３に定義されている基本マクロセルに対応する面積値情報と、マクロセルライブラリ３に定義されている複合論理マクロセルに対応する面積値情報とを、面積情報５３として抽出する。
【００６２】
図１１は、面積情報５３の構成を例示するリストである。図１１を参照すると、基本マクロセルの面積値は、
Ｂａｓｅ  ｃｅｌｌ（…）｛  ｝
で示されたグループの、
ａｒｅａ
という文字列で定義されている。同様に、複合論理マクロセルの面積値は、
Ｍａｃｒｏ  ｃｅｌｌ（…）｛  ｝
で示されたグループの、
ａｒｅａ
という文字列で定義されている。
【００６３】
図９Ａに戻り、ステップＳ２０６において、論理構造情報抽出部４３は、第２論理情報５２の
Ｍａｃｒｏ  ｃｅｌｌ（…）｛  ｝
で示されたグループの、
ｆｕｎｃｔｉｏｎ
という文字列で定義された複合論理マクロセルの論理式に、
Ｂａｓｅ  ｃｅｌｌ（…）｛  ｝
で示されたグループの、
ｆｕｎｃｔｉｏｎ
という文字列で定義された基本マクロセルの論理式を当てはめる。これによって、基本マクロセルを用いて論理構造化を行った論理構造情報５４を抽出する。このとき、第２論理情報５２に定義された複合論理マクロセルの論理式に対し、基本マクロセルの論理式で構成可能な論理組み合わせ分を全て抽出する。
【００６４】
ここで、上述の図１０、図１１に示されているＭＵＸ２Ｌの論理式を例に説明する。この場合、ＡＮＤ演算子＊からＡＮＤ２Ｌが論理組み合わせ分として抽出される。また、ＯＲ演算子＋からＯＲ２Ｌが論理組み合わせ分として抽出される。また、反転演算子！からＩＮＶＬが論理組み合わせ分として抽出される。
【００６５】
図１２は、論理構造情報５４の構成を例示するリストである。図１２の論理構造情報５４は、ＭＵＸ２Ｌ、及び、ＭＵＸ２Ｈの複合論理マクロセルを構成する論理の組み合わせ分を抽出した論理構造情報を例示している。
【００６６】
図１２を参照すると、その論理構造情報５４の１行目、
ＭＵＸ２Ｌ＝
及び、６行目、
ＭＵＸ２Ｈ＝
は、第２論理情報５２の
Ｍａｃｒｏ  ｃｅｌｌ（ＭＵＸ２Ｌ）
及び
Ｍａｃｒｏ  ｃｅｌｌ（ＭＵＸ２Ｈ）
に定義されている複合論理マクロセル名称を指している。
【００６７】
また、２行目及び７行目、
ＩＮＶＬ（．Ａ（Ｓ），．Ｘ（ＮＥＴ１））
は、第２論理情報５２の
Ｂａｓｅ  ｃｅｌｌ（ＩＮＶＬ）｛  ｝
グループ内で定義されている、論理式
ｐｉｎ（Ｘ）｛ｆｕｎｃｔｉｏｎ：！（Ａ）｝
を論理接続情報で表現したものである。
【００６８】
また、３行目及び８行目の、
ＡＮＤ２Ｌ（．Ａ（Ｄ０），．Ｂ（ＮＥＴ１），．Ｘ（ＮＥＴ２））
４行目及び９行目の、
ＡＮＤ２Ｌ（．Ａ（Ｓ），．Ｂ（Ｄ１），．Ｘ（ＮＥＴ３））
は、第２論理情報５２の
Ｂａｓｅ  ｃｅｌｌ（ＡＮＤ２Ｌ）｛  ｝
グループ内で定義されている、論理式
ｐｉｎ（Ｘ）｛ｆｕｎｃｔｉｏｎ：（Ａ＊Ｂ）｝
を論理接続情報で表現したものである。
【００６９】
また、５行目及び１０行目、
ＯＲ２Ｌ（．Ａ（ＮＥＴ２），．Ｂ（ＮＥＴ３），．Ｘ（Ｘ））
は、第２論理情報５２の
Ｂａｓｅ  ｃｅｌｌ（ＯＲ２Ｌ）｛  ｝
グループ内で定義されている、論理式
ｐｉｎ（Ｘ）｛ｆｕｎｃｔｉｏｎ：（Ａ＋Ｂ）｝
を論理接続情報で表現したものである。
【００７０】
図９Ｂを参照すると、ステップＳ２０７において、面積情報入力部４４は、抽出された面積情報５３を任意セル選択部１２の入力として受け取る。ステップＳ２０８において、論理構造情報入力部４５は、論理構造情報５４を任意セル選択部１２の入力として受け取る。
【００７１】
ステップＳ２０９において、論理構造／面積値判定部４６は、複合論理マクロセルの面積値を、入力された面積情報５３から取得する。また、基本マクロセルの面積値を、その面積情報５３から取得する。そして、複合論理マクロセルの論理を構成する基本マクロセルの面積値の総和を求める。このとき、論理構造／面積値判定部４６は、求めた基本マクロセルの面積値の総和と、複合論理マクロセルの面積値とを比較する。その比較の結果に基づいて、どちらの面積が大きいかを判定する。論理構造／面積値判定部４６は、複合論理マクロセルの面積値の方が、求めた基本マクロセルの面積値の総和よりも小さい場合は、このマクロセル名称を保持する。
【００７２】
ステップＳ２１０において、最小論理構造検索部４７は、面積最小値と判定された複合論理マクロセルに対し、更に複合論理マクロセル同士で論理構造が最小となる複合論理マクロセルが含まれているか否かの検索を実行する。ステップＳ２１１において、判定結果情報抽出部４８は、最終的に最小面積となる論理構造の複合論理マクロセルを、判定結果情報４として抽出する。
【００７３】
図１３は、本実施形態の判定結果情報４の構成を例示するリストである。図１３を参照すると、面積値の判定結果により、複合論理マクロセルの面積値が小さい複合論理マクロセル名称は、
Ｍａｃｒｏ  ｃｅｌｌ（ＭＵＸ２Ｌ）
で定義されている。また、その面積値は、
ａｒｅａ：４
として定義されている。複合論理マクロセルの論理を構成する基本マクロセルの情報は、
Ｂａｓｅ  ｃｅｌｌ  １
で論理接続情報として定義されている。また、基本マクロセルの面積値の和は、
ａｒｅａ：７
として定義されている。このように、基本マクロセルを使用した論理構造１０が定義される。
【００７４】
また、ＭＵＸ２Ｌの複合論理マクロセルの論理を構成する他の組み合わせが存在する場合は、
Ｂａｓｅ  ｃｅｌｌ  １…Ｎ（１から昇順でＮまで）
として、論理接続情報で定義される。また、
Ｂａｓｅ  ｃｅｌｌ  １…Ｎ
のそれぞれの面積値の和は、
Ｂａｓｅ  ｃｅｌｌ  １…Ｎ
のそれぞれのａｒｅａに定義される。
【００７５】
以上が、ステップＳ１０１において、ＡＵＴＯ：ｔｒｕｅが選択された場合の任意セル選択部１２の動作フローの説明である。以下に、ステップＳ１０１において、ＡＵＴＯ：ｆａｌｓｅが選択された場合の任意セル選択部１２の動作について説明を行う。
【００７６】
図１４Ａ、図１４Ｂは、ＡＵＴＯ：ｆａｌｓｅが選択された場合の任意セル選択部１２の動作を例示するフローチャートである。ステップＳ２０１、ステップＳ２０２の動作は、ＡＵＴＯ：ｔｒｕｅが選択された時の動作と同様である。図１４ＡのステップＳ２１２において、任意選択マクロセル論理式抽出部４９は、任意セルを選択するための選択情報２を参照する。このとき任意選択マクロセル論理式抽出部４９は、ＣｅｌｌＮａｍｅ：に指定された任意セル名称であるＭＵＸ２Ｌ、ＭＵＸ２Ｈに該当する複合論理マクロセルのみを抽出する。任意選択マクロセル論理式抽出部４９は、抽出した複合論理マクロセルを示す情報を、第２論理情報５２に保持する。以降、ステップＳ２０４〜ステップＳ２１１までは、ＡＵＴＯ：ｔｒｕｅが選択された時と同様に動作する。
【００７７】
以下に、本実施形態の任意セル選択フラグ設定部１３の動作について詳細に説明する。任意セル選択フラグ設定部１３は、上述のステップＳ１０３において、任意セル選択フラグの設定を出力する処理を行う。任意セル選択フラグ設定部１３は、判定結果情報４の
Ｍａｃｒｏ  ｃｅｌｌ（  ）
で示されたグループに定義された複合論理マクロセル名称に対して、マクロセルライブラリ３の
ｃｅｌｌ（  ）
で示されたグループに該当する複合論理マクロセルを特定する。そして、特定した複合論理マクロセルに、
ｕｓｅ＿ｉｔ：ｔｒｕｅ
で示されるフラグを設定する。任意セル選択フラグ設定部１３は、
ｕｓｅ＿ｉｔ：ｔｒｕｅ
で示されるフラグを有するマクロセルライブラリ３を、フラグ付マクロセルライブラリ５として出力する。
【００７８】
図１５は、フラグ付マクロセルライブラリ５の構成を例示するリストである。図１５に示されているように、フラグ付マクロセルライブラリ５は、一般的に論理合成ツールで利用されるマクロセルライブラリ３に対して、
ｃｅｌｌ（  ）
のグループ内のセル情報定義に、任意セルのフラグ定義を備えている。
【００７９】
本実施形態の任意セル選択ツール３４は、第１段階において、上述のような動作を行う。次に、任意セル選択ツール３４の動作の第２段階について説明を行う。上述の図７ＡにおけるステップＳ１０４において、論理接続情報入力部１４は、論理合成結果または作成済みの論理接続情報６を、任意セル選択ツール３４の入力として受け取る。また、ステップＳ１０５において、判定結果情報入力部１５は、第１段階で生成された判定結果情報４を任意セル選択ツール３４の入力として受け取る。その判定結果情報４には、面積縮小化に有効となる任意セルに関する情報を、論理構造／面積値判定結果情報として保持している。
【００８０】
ステップＳ１０６において、論理構造検索部１６は、判定結果情報４に記述される論理構造１０に該当する論理接続部を、論理接続情報６から検索する。
【００８１】
ステップＳ１０７において、置換対象セルフラグ設定部１７は、検索によって得られた論理接続部に対して、
／／ｔｏｕｃｈ＿ｉｔ  ｔｏ  （任意セル名称）
で示されるフラグを設定する。置換対象セルフラグ設定部１７はそのフラグを有するフラグ付論理接続情報７を生成する。生成されたフラグ付論理接続情報７は、ファイル格納部３５に保存される。
【００８２】
図１６は、フラグ付論理接続情報７の構成を例示するリストである。図１６を参照すると、フラグ付論理接続情報７には、置換対象となる論理接続行に、
／／ｔｏｕｃｈ＿ｉｔ  ｔｏ  ＭＵＸ２Ｌ，，，
で示されるフラグが設定されている。その“ｔｏ  ＭＵＸ２Ｌ”とは、図１３に例示されている判定結果情報４の
Ｍａｃｒｏ  ｃｅｌｌ（ＭＵＸ２Ｌ）
の複合論理マクロセル名称である。なお、置換対象セルとなる複合論理マクロセルが複数存在することもある。そのため、置換対象セルが複数存在した場合は、”，”（カンマ）で区切って複数の複合論理マクロセルを指定することも可能である。
【００８３】
上述の図７ＢにおけるステップＳ１０８において、置換情報入力部１８は、フラグ付論理接続情報７と、上述の第１段階で生成されたフラグ付マクロセルライブラリ５とを任意セル選択ツール３４の入力として受け取る。置換情報入力部１８は、フラグ付論理接続情報７の
／／ｔｏｕｃｈ＿ｉｔ  ｔｏ  （任意セル名称）
の複合論理マクロセル名称と、フラグ付マクロセルライブラリ５の
ｕｓｅ＿ｉｔ：ｔｒｕｅ
で示されるフラグが付加された複合論理マクロセル名称とが一致するか否かの判断を実行する。その判断の結果、両者が一致することが認識された場合、置換対象セルが、任意セルフラグ付マクロセルライブラリ５に存在することが確認されたことになる。
【００８４】
ステップＳ１０９において、等価論理置換部１９は、制約条件８を任意セル選択ツール３４の入力として受け取る。ここで、制約条件とは、論理合成ツールに利用する遅延・タイミングの制約条件が示されたファイルである。本実施形態において、置換対象セルのフラグが付属しているフラグ付論理接続情報７の該当セルの名称が、任意セルのフラグが付属しているフラグ付マクロセルライブラリ５から、この制約条件８を考慮した上で選択置換される。それによって、遅延・タイミングを満たした面積最小化マクロセルへの一括置換が可能となる。その後、ステップＳ１１０において、論理接続情報生成部２０により、置換後論理接続情報９が出力される。出力された置換後論理接続情報９は、ファイル格納部３５に保存される。
【００８５】
図１７は、置換後の論理接続情報の構成を例示するリストである。上述の図１６に例示したフラグ付論理接続情報７には、置換対象フラグが設定されていた。図１７を参照すると、置換後論理接続情報９では、図１６のフラグ付論理接続情報７の置換対象フラグ
／／ｔｏｕｃｈ＿ｉｔ  ｔｏ  （任意セル名称）
が、面積最小化となるマクロセル
ＭＵＸ２Ｌ
に置き換えられている。
【００８６】
図１８は、置換前の論理回路の回路構成を例示する回路図である。図１８に例示されている置換前論理回路５５は、モジュールＣ１を備えている。置換前論理回路５５のモジュールＣ１は、“Ｕ１”というインスタンス名のインバータセル（ＩＮＶＬ）と、“Ｕ２”、“Ｕ３”というインスタンス名の２入力ＡＮＤセル（ＡＮＤ２Ｌ）と、“Ｕ４”というインスタンス名の２入力ＯＲセル（ＯＲ２Ｌ）を備えている。
【００８７】
図１９は、置換後の論理回路の構成を例示する回路図である。図１９に例示されている置換後論理回路５６は、モジュールＣ１を備えている。置換後論理回路５６のモジュールＣ１は、“Ｕ５”というインスタンス名の２入力ＭＵＸセル（ＭＵＸ２Ｌ）を備えている。本実施形態における任意セル選択ツール３４では、複数回の処理を実施することなく、置換前論理回路５５を置換後論理回路５６へ置換することが可能である。
【００８８】
本実施形態の任意セル選択ツール３４のような機能を備えていない装置では、２つのマクロセルの組み合わせを網羅的に抽出する処理を複数回実施する必要がある。例えば、Ｕ４を起点とした場合は、Ｕ４→Ｕ３、Ｕ４→Ｕ２の２系統の論理構造において面積縮小化を行う。また、Ｕ２を起点にした場合は、Ｕ２→Ｕ１の１系統の論理構造において面積縮小化を行う。そして、Ｕ４→Ｕ３，Ｕ４→Ｕ２、Ｕ２→Ｕ１のそれぞれの面積縮小化の処理を実施する。その後、Ｕ４→Ｕ２→Ｕ１の論理構造において、面積縮小化の処理を実施する。このように、任意セル選択ツール３４のような機能を備えていない装置では、複数の工程を実行する事で、置換後論理回路５６のモジュールＣ１のような面積最小化が可能である。しかしながら、２つのマクロセルの組み合わせを網羅的に抽出する処理を複数回実施する必要があるため、設計ＴＡＴが増大してしまっていた。
【００８９】
本実施形態では、マクロセルライブラリから面積縮小化が可能となる等価論理の複合論理マクロセルを任意に選択し、最小面積化が可能な複合論理マクロセルに対して、マクロセルライブラリにフラグ設定を行っている。また、置換対象となる論理接続情報の論理回路構成から論理構造／面積値判定結果情報４を元に置換対象論理接続部を検索しフラグ設定を行っている。そして、マクロセルライブラリのフラグと論理接続情報のフラグの一致部分に対して、等価論理置換により一括置換を行う事で、一度の処理で論理回路の面積縮小化が可能となり、設計ＴＡＴの短縮を実現することができる。
【００９０】
［第２実施形態］
以下に、本願発明の第２実施形態について説明を行う。第２実施形態の半導体装置設計支援システム８５は、任意セルを選択するときに、順序セルを含める場合に対応している。図２０は、第２実施形態の任意セル選択部１２の構成を例示するブロック図である。第２実施形態の任意セル選択部１２は、第１実施形態の選択情報２に対し、さらに、順序セル検出部６１と、順序セル論理式抽出部６２と、順序セル論理情報入力部６３と、順序セル面積値抽出部６４と、順序セル論理構造情報抽出部６５とを備えている。
【００９１】
順序セル検出部６１は、順序セルがあるか否かの判定を行う。順序セル論理式抽出部６２は、全ての順序セルの論理情報を抽出し、順序セル論理情報６６を生成する。順序セル論理情報入力部６３は、第２論理情報５２と順序セル論理情報６６とを、任意セル選択部１２の入力として受け取る。順序セル面積値抽出部６４は、第１実施形態の面積情報５３に、さらに、順序セルの面積値を追加した面積情報６７を生成する。その面積情報６７は、ファイル格納部３５に保持される。順序セル論理構造情報抽出部６５は、基本マクロセルと順序セルとの組み合わせに対して論理構造化を行った論理構造情報６８を生成する。
【００９２】
図２１Ａ、図２１Ｂ、図２１Ｃは、第２実施形態の任意セル選択部１２の動作を例示するフローチャートである。第２実施形態では、ステップＳ３０１において、任意セル選択部１２の順序セル検出部６１が、順序セルが存在するか否かの判断を行う。その判断の結果、順序セルが存在しない場合、処理は、図２１Ｃに示されるような、第１実施形態と同様の処理を行う。順序セルが存在すると判断された場合、第１実施形態のステップＳ２０２、ステップＳ２０３と同様の処理を行った後、ステップＳ３０２の処理を実行する。そのステップＳ３０２において、順序セル論理式抽出部６２は、順序セル論理情報６６として全ての順序セルの論理情報を抽出する。
【００９３】
図２２は、抽出した順序セル論理情報の構成を例示するリストである。
Ｓｅｑｕｅｎｔｉａｌ  ｃｅｌｌ  （ＭＵＸ−Ｎ−ＤＦＦＬ）
は、順序回路における複合論理マクロセル名称を表している。
ｆｕｎｃｔｉｏｎ：”ＩＱ”
は、出力端子ｐｉｎ（Ｑ）における論理である。
【００９４】
この論理を形成する情報は、
ｆｆ（ＩＱ、ＩＱＮ）｛  ｝
で囲まれるグループ内で定義されている。
ｃｌｏｃｋｅｄ＿ｏｎ：”！（ＣＫ）”
は、クロック端子ＣＫの反転論理のエッジであることを示している
ｎｅｘｔ＿ｓｔａｔｅ：”（Ｄ＊！（ＳＥ））＋（ＳＩ＊ＳＥ）”
は、クロックが動いた場合に、出力Ｑに出力される論理である。
【００９５】
上述の
ｆｕｎｃｔｉｏｎ：”ＩＱ”
は、この
ｎｅｘｔ＿ｓｔａｔｅ
に定義された論理式が正転出力される事を意味している。仮に、
ｆｕｎｃｔｉｏｎ：”ＩＱＮ”
と定義された場合は、
ｎｅｘｔ＿ｓｔａｔｅ
に定義された論理式が反転出力される事を意味する。
【００９６】
図２１Ａに戻り、ステップＳ３０３において、順序セル論理情報入力部６３は、抽出済みの第２論理情報５２と順序セル論理情報６６とを、任意セル選択部１２の入力として受け取る。
【００９７】
図２１Ｂを参照すると、ステップＳ３０４において、順序セル面積値抽出部６４は、第１実施形態で抽出したような面積情報５３に対して、さらに、順序セルの面積値を追加した面積情報６７を生成する。その面積情報６７は、ファイル格納部３５に保持される。
【００９８】
ステップＳ３０５において、順序セル論理構造情報抽出部６５は、順序回路（Ｄ−ＦＦ）と組み合わせ論理構造とをばらした構造情報として、
ｃｌｏｃｋｅｄ＿ｏｎ
で定義されている”！ＣＫ”の論理記述で示される論理構造を、インバータセルと順序回路（ＤＦＦＬ）の組み合わせとして処理を行う。
【００９９】
次に、順序セル論理構造情報抽出部６５は、
ｎｅｘｔ＿ｓｔａｔｅ
で定義されている”（Ｄ＊！（ＳＥ））＋（ＳＩ＊ＳＥ）”の論理記述で示される論理構造を、第２論理情報５２に基づいて、ＭＵＸ２Ｌと順序回路（ＤＦＦＬ）の組み合わせの場合と、ＩＮＶＬ、ＡＮＤ２Ｌ、ＡＮＤ２Ｌ、ＯＲ２Ｌと順序回路（ＤＦＦＬ）の組み合わせとして処理を行う。順序セル論理構造情報抽出部６５は、これらを論理接続情報形式で表した論理構造情報６８を生成する。論理構造情報６８は、ファイル格納部３５に保持される。
【０１００】
図２３は、論理構造情報６８の構成を例示するリストである。論理構造情報６８は、第１実施形態の抽出したような論理構造情報５４のような情報に、さらに、順序セルにおける論理構造情報を備えている。以降、ステップＳ３０６からステップＳ３１０までは、第１実施形態と同様に動作する。
【０１０１】
上述のように、第２実施形態では、マクロセルライブラリに組み合わせ論理と順序回路論理構造を有する複合論理マクロセルが存在する場合においても、面積最小化に有効となる任意セルの選択と置換が可能である。
【０１０２】
［第３実施形態］
以下に、本願発明の第２実施形態について説明を行う。第３実施形態の半導体装置設計支援システム８５は、任意セルを選択するときに、順序セルを含める場合に対応している。図２４は、第３実施形態の任意セル選択部１２の構成を例示するブロック図である。第３実施形態の任意セル選択部１２は、第１、第２実施形態の選択情報２に対し、さらに、多ビットセル検出部７１と、多ビットセル論理式抽出部７２と、多ビットセル論理情報入力部７３と、多ビットセル面積値抽出部７４と、多ビットセル論理構造情報抽出部７５とを備えている。
【０１０３】
多ビットセル検出部７１は、多ビットセルがあるか否かの判定を行う。多ビットセル論理式抽出部７２は、全ての多ビットセルの論理情報を抽出し、多ビットセル論理情報７６を生成する。多ビットセル論理情報入力部７３は、第２論理情報５２と順序セル論理情報６６と多ビットセル論理情報７６とを、任意セル選択部１２の入力として受け取る。多ビットセル面積値抽出部７４は、第２実施形態の面積情報６７に、さらに、多ビットセルの面積値を追加した面積情報７７を生成する。その面積情報７７は、ファイル格納部３５に保持される。多ビットセル論理構造情報抽出部７５は、基本マクロセルと順序セルと多ビットセルの組み合わせに対して論理構造化を行った論理構造情報７８を生成する。
【０１０４】
図２５Ａ、図２５Ｂ、図２５Ｃ、図２５Ｄは、第３実施形態の任意セル選択部１２の動作を例示するフローチャートである。第３実施形態では、ステップＳ３０１において、第２実施形態と同様に、順序セルが存在するか否かの判断を行う。その判断の結果、順序セルが存在しない場合、図２５Ｄに示されるように、第１実施形態と同様の処理を行う。その判断の結果、順序セルが存在する場合、処理はステップＳ４０１に進む。
【０１０５】
ステップＳ４０１において、任意セル選択部１２の多ビットセル検出部７１は、多ビットセルが存在するか否かの判断を行う。その判断の結果、多ビットセルが存在しない場合、図２５Ｃに示されるように、第２実施形態と同様の処理を行う。
【０１０６】
多ビットセルが存在する場合、第１実施形態のステップＳ２０２、ステップＳ２０３と同様の処理を行った後、第２実施形態のステップＳ３０２と同様の処理を行って、順序セルの論理情報を抽出する。
【０１０７】
図２５Ａを参照すると、ステップＳ４０２において、多ビットセル論理式抽出部７２は、多ビットセル論理情報７６として全ての多ビット論理端子（ｂｕｎｄｌｅ）を持つセルの論理情報と端子情報を抽出する。
【０１０８】
図２６は、抽出した多ビットセル論理情報の構成を例示するリストである。
Ｍｕｌｔｉｂｉｔ  ｃｅｌｌ（ＤＦＦＬ−２Ｂ）
は、多ビットセルにおける複合論理マクロセル名称を表している。
ｂｕｎｄｌｅ（Ｑ）
及び、
ｂｕｎｄｌｅ（Ｄ）
は、出力Ｑ端子及び入力Ｄ端子が束ねられている事を表している。
ｍｅｍｂｅｒｓ（Ｑ０、Ｑ１）
及び、
ｍｅｍｂｅｒｓ（Ｄ０、Ｄ１）
は、それぞれ束ねられた端子をばらした際の端子名情報となる。
ｆｕｎｃｔｉｏｎ：”ＩＱ”
は、束ねられた出力端子ｂｕｎｄｌｅ（Ｑ）における論理である。
【０１０９】
更に、この論理を形成する情報は、
ｆｆ＿ｂａｎｋ（ＩＱ、ＩＱＮ、２）  ｛  ｝
で囲まれるグループ内で定義される。なお、
ｆｆ＿ｂａｎｋ（  ）
で囲まれるグループ内の数字“２”は、２ビットの幅を持つマクロセルであることを意味する。
ｃｌｏｃｋｅｄ＿ｏｎ
及び、
ｎｅｘｔ＿ｓｔａｔｅ
の意味は、第２実施形態で説明した意味と同様である。
【０１１０】
図２５Ａに戻り、ステップＳ４０３において、多ビットセル論理情報入力部７３は、既に抽出済みの第２論理情報５２と、順序セル論理情報６６と、多ビットセル論理情報７６とを入力として受け取る。
図２５Ｂを参照すると、ステップＳ４０４において、多ビットセル面積値抽出部７４は、第２実施形態で抽出したような面積情報６７に対して、多ビットセルの面積値を追加した面積情報７７を生成する。その面積情報７７は、ファイル格納部３５に保持される。
【０１１１】
ステップＳ４０５において、多ビットセル論理構造情報抽出部７５は、多ビットセル論理情報７６の
ｆｆ＿ｂａｎｋ（ＩＱ、ＩＱＮ、２）｛  ｝
で囲まれるグループ内の、
ｃｌｏｃｋｅｄ＿ｏｎ
及び、
ｎｅｘｔ＿ｓｔａｔｅ
に定義されている論理定義と同様な論理定義を持つ複合論理マクロセルが、順序セル論理情報６６に含まれるか否かを検索する。該当する複合論理マクロセルがあった場合は、多ビットセル論理構造情報抽出部７５は、該当する複合論理マクロセルが、
ｆｆ＿ｂａｎｋ（  ）
で囲まれるグループ内に定義されたビット幅（ここでは２であるため２ビット）構成であると判断する。そして、多ビットセルの端子情報である
ｍｅｍｂｅｒ（Ｑ０、Ｑ１）
及び、
ｍｅｍｂｅｒ（Ｄ０、Ｄ１）
から、論理構造情報７８を生成する。図２７は、論理接続情報形式として出力される論理構造情報７８の構成を例示するリストである。図２７に例示されている多ビットセルにおける論理構造情報７８には、これらを論理接続情報形式で表した論理構造情報が含まれている。
【０１１２】
また同様に、複合論理マクロセルが多ビット化されたマクロセルにおいても対応は可能である。その場合は、順序セル論理情報６６から該当セルを検索するのではなく、第２論理情報５２から該当する複合論理マクロセルを検索し、ビット幅の確認には、多ビットセルの端子情報である
ｍｅｍｂｅｒ（Ａ０、Ａ１、Ａ２、Ａ３）
で示される定義から、４ビット幅を持つセルと認識することができる。このように、順序セル同様に論理構造情報を導くことが可能であり、複合論理マクロセルの多ビット化にも対応可能である。これらを論理接続情報形式で表した論理構造情報は、面積情報７７として追加出力され、ファイル格納部３５に保持される。
【０１１３】
図２５Ｂに戻り、以降のステップＳ４０６からステップＳ４１０の処理を実行する。これらの処理は、第１実施形態または第２実施形態での動作と同様である。第３実施形態では、マクロセルライブラリに多ビット論理構造を有する複合論理マクロセルが存在する場合においても、面積最小化に有効となる任意セルの選択と置換が可能である。
【０１１４】
以上、本願発明の実施の形態を具体的に説明した。本願発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０１１５】
２…選択情報
３…マクロセルライブラリ
４…判定結果情報
５…フラグ付マクロセルライブラリ
６…論理接続情報
７…フラグ付論理接続情報
８…制約条件
９…置換後論理接続情報
１０…論理構造
１１…選択仕様入力部
１２…任意セル選択部
１３…任意セル選択フラグ設定部
１４…論理接続情報入力部
１５…判定結果情報入力部
１６…論理構造検索部
１７…置換対象セルフラグ設定部
１８…置換情報入力部
１９…等価論理置換部
２０…論理接続情報生成部
３１…演算処理部
３２…情報記憶部
３３…バス
３４…任意セル選択ツール
３５…ファイル格納部
３６…第１段階実行部
３７…第２段階実行部
３８…マクロセルライブラリ入力部
３９…基本マクロセル論理式抽出部
４０…複合論理マクロセル論理式抽出部
４１…論理情報入力部
４２…面積値抽出部
４３…論理構造情報抽出部
４４…面積情報入力部
４５…論理構造情報入力部
４６…論理構造／面積値判定部
４７…最小論理構造検索部
４８…判定結果情報抽出部
４９…任意選択マクロセル論理式抽出部
５１…第１論理情報
５２…第２論理情報
５３…面積情報
５４…論理構造情報
５５…置換前論理回路
５６…置換後論理回路
６１…順序セル検出部
６２…順序セル論理式抽出部
６３…順序セル論理情報入力部
６４…順序セル面積値抽出部
６５…順序セル論理構造情報抽出部
６６…順序セル論理情報
６７…面積情報
６８…論理構造情報
７１…多ビットセル検出部
７２…多ビットセル論理式抽出部
７３…多ビットセル論理情報入力部
７４…多ビットセル面積値抽出部
７５…多ビットセル論理構造情報抽出部
７６…多ビットセル論理情報
７７…面積情報
７８…論理構造情報
８０…サーバ
８１…記録媒体
８２…ネットワーク
８３…コンピュータ装置
８５…半導体装置設計支援システム
８６…コンピュータ装置本体
８７…入力装置
８８…出力装置
１０５…等価論理抽出置換部
１１１…論理接続情報
１１２…入力仕様情報
１１３…等価論理パターン情報
１１４…マクロセルライブラリ
１１５…遅延面積見積り情報
１１６…新規マクロセル情報
１１７…論理接続情報
【図１】
2012177967.tif 000003
【図２】
2012177967.tif 000004
【図３】
2012177967.tif 000005
【図４】
2012177967.tif 000006
【図５】
2012177967.tif 000007
【図６】
2012177967.tif 000008
【図７Ａ】
2012177967.tif 000009
【図７Ｂ】
2012177967.tif 000010
【図８】
2012177967.tif 000011
【図９Ａ】
2012177967.tif 000012
【図９Ｂ】
2012177967.tif 000013
【図１０】
2012177967.tif 000014
【図１１】
2012177967.tif 000015
【図１２】
2012177967.tif 000016
【図１３】
2012177967.tif 000017
【図１４Ａ】
2012177967.tif 000018
【図１４Ｂ】
2012177967.tif 000019
【図１５】
2012177967.tif 000020
【図１６】
2012177967.tif 000021
【図１７】
2012177967.tif 000022
【図１８】
2012177967.tif 000023
【図１９】
2012177967.tif 000024
【図２０】
2012177967.tif 000025
【図２１Ａ】
2012177967.tif 000026
【図２１Ｂ】
2012177967.tif 000027
【図２１Ｃ】
2012177967.tif 000028
【図２２】
2012177967.tif 000029
【図２３】
2012177967.tif 000030
【図２４】
2012177967.tif 000031
【図２５Ａ】
2012177967.tif 000032
【図２５Ｂ】
2012177967.tif 000033
【図２５Ｃ】
2012177967.tif 000034
【図２５Ｄ】
2012177967.tif 000035
【図２６】
2012177967.tif 000036
【図２７】
2012177967.tif 000037