(57)【要約】【課題】  プログラマブル回路内の複数の接続切り替え回路の回路規模を削減する。【解決手段】  それぞれデータ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述をデータ記憶装置２から取得する第１取得部１１、複数の接続切り替え回路のそれぞれが複数のデータ処理回路間を接続可能な範囲を設定する接続範囲設定記述を含む設定データをデータ記憶装置２から取得する第２取得部１２、及び設定データを第１及び第２機能記述に設定し、設定後の第１及び第２機能記述をデータ記憶装置２に格納する設定部１３を備える。【選択図】  図１
2006172219.tif 000002
【特許請求の範囲】
【請求項１】
それぞれデータ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び前記複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述を含むライブラリと、前記複数の接続切り替え回路のそれぞれが前記複数のデータ処理回路間を接続可能な範囲を設定する接続範囲設定記述を含む設定データとを格納したデータ記憶装置と、
前記データ記憶装置から前記ライブラリを取得する第１取得部と、
前記データ記憶装置から前記設定データを取得する第２取得部と、
前記設定データを前記第１及び第２機能記述に設定し、設定後の前記前記第１及び第２機能記述を前記データ記憶装置に格納する設定部
とを備えることを特徴とする半導体集積回路の自動設計装置。
【請求項２】
前記設定データは、前記複数のデータ処理回路のそれぞれの内部回路の回路構成を設定する内部回路設定記述と前記複数のデータ処理回路のそれぞれが処理するデータのビット幅を設定するビット幅設定記述とを更に含み、前記設定部は、前記内部回路設定記述及び前記ビット幅設定記述を前記第１機能記述に設定することを特徴とする請求項１に記載の半導体集積回路の自動設計装置。
【請求項３】
前記設定後の第１及び第２記述格納を論理合成してネットリストを生成し、前記ネットリストを前記データ記憶装置に格納する論理合成部と、
前記ネットリストから前記複数のデータ処理回路及び前記複数の接続切り替え回路のレイアウトデータを作成し、前記レイアウトデータを前記データ記憶装置に格納するレイアウト作成部と、
前記設定後の第１及び第２記述格納、前記ネットリスト、及び前記レイアウトデータのいずれかを解析する解析部
とを更に備え、前記第２取得部は、前記解析部の解析結果に基づいて前記データ記憶装置から前記設定データを取得することを特徴とする請求項１又は２に記載の半導体集積回路の自動設計装置。
【請求項４】
第１取得部が、それぞれデータ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び前記複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述を含むライブラリをデータ記憶装置から取得するステップと、
第２取得部が、前記複数の接続切り替え回路のそれぞれが前記複数のデータ処理回路間を接続可能な範囲を設定する接続範囲設定記述を含む設定データを前記データ記憶装置から取得するステップと、
設定部が、前記設定データを前記第１及び第２機能記述に設定し、設定後の前記前記第１及び第２機能記述を前記データ記憶装置に格納するステップ
とを含むことを特徴とする半導体集積回路の自動設計方法。
【請求項５】
コンピュータに、
それぞれデータ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び前記複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述を含むライブラリをデータ記憶装置から取得する手順と、
前記複数の接続切り替え回路のそれぞれが前記複数のデータ処理回路間を接続可能な範囲を設定する接続範囲設定記述を含む設定データを前記データ記憶装置から取得する手順と、
前記設定データを前記第１及び第２機能記述に設定し、設定後の前記前記第１及び第２機能記述を前記データ記憶装置に格納する手順
とを実行させることを特徴とする半導体集積回路の自動設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計技術に関し、特に、リコンフィギュラブルプロセッサ等のプログラマブル回路を自動的に設計する半導体集積回路の自動設計装置、半導体集積回路の自動設計方法、及び半導体集積回路の自動設計プログラムに関する。
【背景技術】
【０００２】
回路構成を再構成可能なプログラマブル回路として、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）が知られている。ＦＰＧＡの回路構成は、コンフィギュレーションメモリに記憶されたコンフィギュレーション情報により再構成可能である。一方、複数のデータ処理回路のそれぞれの回路規模をＦＰＧＡよりも増大させて、高度なデータ処理を可能としたリコンフィギュラブルプロセッサが実用化されている。リコンフィギュラブルプロセッサは、複数系統のコンフィギュレーション情報に応じて、動的に回路構成を再構成し、画像処理回路又は通信処理回路等として動作する。複数のデータ処理回路のそれぞれは、他のすべてのデータ処理回路と接続可能なように構成されている。即ち、リコンフィギュラブルプロセッサ等のプログラマブル回路内には、複数のデータ処理回路に加えて、複数のデータ処理回路間の接続関係を再構成する複数の接続切り替え回路が備えられる。各接続切り替え回路は多数のセレクタにより構成される。一方、リコンフィギュラブルプロセッサの利用者が、用途や要求する性能に合わせて、データ処理回路の処理ビット幅及び回路構成等を選択可能とする手法が提案されている（例えば、特許文献１参照。）。
【０００３】
しかしながら、リコンフィギュラブルプロセッサ等のプログラマブル回路に関しては、汎用性は非常に高いものの、実動作時に冗長な回路構成が多く含まれることとなる。よって、特定用途向け集積回路（ＡＳＩＣ）を使用した方が回路規模を削減可能である場合が多い。また、回路規模と比例して遅延時間及び消費電力も増大するために、利用者の要求する仕様を満たせない恐れがある。したがって、プログラマブル回路全体に対する、複数の接続切り替え回路の回路規模の削減が望まれている。
【特許文献１】国際公開第０１／０１６７１１号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、プログラマブル回路内の複数の接続切り替え回路の回路規模を削減可能な半導体集積回路の自動設計装置、半導体集積回路の自動設計方法、及び半導体集積回路の自動設計プログラムを提供する。
【課題を解決するための手段】
【０００５】
上記目的を達成する為に、本発明の一態様は、（イ）それぞれデータ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述を含むライブラリと、複数の接続切り替え回路のそれぞれが複数のデータ処理回路間を接続可能な範囲を設定する接続範囲設定記述を含む設定データとを格納したデータ記憶装置；（ロ）データ記憶装置からライブラリを取得する第１取得部；（ハ）データ記憶装置から設定データを取得する第２取得部；（ニ）設定データを第１及び第２機能記述に設定し、設定後の第１及び第２機能記述をデータ記憶装置に格納する設定部を備える半導体集積回路の自動設計装置であることを要旨とする。
【０００６】
本発明の一態様は、（イ）第１取得部が、それぞれデータ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述を含むライブラリをデータ記憶装置から取得するステップ；（ロ）第２取得部が、複数の接続切り替え回路のそれぞれが複数のデータ処理回路間を接続可能な範囲を設定する接続範囲設定記述を含む設定データをデータ記憶装置から取得するステップ；（ハ）設定部が、設定データを第１及び第２機能記述に設定し、設定後の第１及び第２機能記述をデータ記憶装置に格納するステップを含む半導体集積回路の自動設計方法であることを要旨とする。
【０００７】
本発明の一態様は、コンピュータに、（イ）それぞれデータ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述を含むライブラリをデータ記憶装置から取得する手順；（ロ）複数の接続切り替え回路のそれぞれが複数のデータ処理回路間を接続可能な範囲を設定する接続範囲設定記述を含む設定データをデータ記憶装置から取得する手順；（ハ）設定データを第１及び第２機能記述に設定し、設定後の第１及び第２機能記述をデータ記憶装置に格納する手順を実行させるための半導体集積回路の自動設計プログラムであることを要旨とする。
【発明の効果】
【０００８】
本発明によれば、プログラマブル回路内の複数の接続切り替え回路の回路規模を削減可能な半導体集積回路の自動設計装置、半導体集積回路の自動設計方法、及び半導体集積回路の自動設計プログラムを提供できる。
【発明を実施するための最良の形態】
【０００９】
次に、図面を参照して、本発明の実施の形態を説明する。この実施の形態における図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００１０】
本発明の実施の形態に係る半導体集積回路の自動設計装置は、図１に示すように、中央演算処理装置（ＣＰＵ）１、データ記憶装置２、入力装置３、出力装置４、主記憶装置５、及び補助記憶装置６を備える。データ記憶装置２、入力装置３、出力装置４、主記憶装置５、及び補助記憶装置６はＣＰＵ１にそれぞれに接続される。ＣＰＵ１は、第１取得部１１、第２取得部１２、設定部１３、論理合成部１４、レイアウト作成部１５、及び解析部１７を備える。第１取得部１１は、データ処理を行う複数のデータ処理回路の構成を記述した第１機能記述、及び複数のデータ処理回路間の接続関係を切り替える複数の接続切り替え回路の構成を記述した第２機能記述をデータ記憶装置２から取得する。ここで、「機能記述」とは、例えばレジスタトランスファレベル（ＲＴＬ）設計段階においてハードウェア記述言語（ＨＤＬ）等を用いて記述された論理式等を意味する。或いは、ＨＤＬに代えてＣ言語等の高級言語を使用しても良い。この場合、Ｃ言語をＨＤＬ記述に変換する高位合成部がＣＰＵ１に備えられる。更に、ＨＤＬに代えてＰｅｒｌ言語等を利用しても良い。
【００１１】
更に、第２取得部１２は、複数の接続切り替え回路のそれぞれが複数のデータ処理回路間を接続可能な範囲（以下において単に「接続可能範囲」という。）を設定する接続範囲設定記述を含む設定データをデータ記憶装置２から取得する。設定部１３は、設定データを第１及び第２機能記述に設定し、設定後の第１及び第２機能記述をデータ記憶装置２に格納する。
【００１２】
また、図１に示す自動設計装置は、図２に示すように、例えば行列状に配置された複数のデータ処理回路Ｄ11〜Ｄ44及び複数の接続切り替え回路Ｓ11〜Ｓ44を具備するリコンフィギュラブルプロセッサのレイアウトを自動設計する。図２に示すリコンフィギュラブルプロセッサは、複数のデータ処理回路Ｄ11〜Ｄ44及び複数の接続切り替え回路Ｓ11〜Ｓ44に加えて、複数の入出力（Ｉ／Ｏ）回路５１ａ〜５１ｌを備える。Ｉ／Ｏ回路５１ａ〜５１ｌは、複数のデータ処理回路Ｄ11〜Ｄ44及び複数の接続切り替え回路Ｓ11〜Ｓ44を取り囲むようにして配置される。複数のデータ処理回路Ｄ11〜Ｄ44、複数の接続切り替え回路Ｓ11〜Ｓ44、及び複数のＩ／Ｏ回路５１ａ〜５１ｌのそれぞれにはコンフィギュレーションメモリが備えられ、コンフィギュレーションメモリに格納されるコンフィギュレーション情報に応じて回路構成を動的に再構成する。尚、Ｉ／Ｏ回路５１ａ〜５１ｌは、外部装置と複数の接続切り替え回路Ｓ11〜Ｓ44との接続関係を切り替える。
【００１３】
更に、接続切り替え回路Ｓ11は、図３に示すように、例えば行列状に配置された複数のセレクタＭ11〜Ｍ84、及び複数のセレクタＭ11〜Ｍ84に接続されたコンフィギュレーションメモリ９１を備える。複数のセレクタＭ11〜Ｍ84は、コンフィギュレーションメモリ９１に格納されたコンフィギュレーション情報に基づき、入力データの選択及び出力データの出力先の選択を行う。図２及び図３に示す接続切り替え回路Ｓ11を設計する際に使用される第２機能記述を、ＨＤＬを用いて作成した場合の一例を以下に示す：
module ConnectionNode (AorB,
Z00,Z01,Z02,Z03,Z10,Z11,Z12,Z13,Z20,Z21,Z22,Z23,Z30,Z31,Z32,Z33,
configurationC) ;
parameter P_DATASIZE = 15 ; 
parameter P_CONNECTION_CFGSIZE = 4 ;
output [P_DATASIZE:0] AorB ;
input [P_DATASIZE:0]  Z00,Z01,Z02,Z03,Z10,Z11,Z12,Z13,Z20,Z21,Z22,Z23,Z30,Z31,Z32,Z33 ;
input [P_CONNECTION_CFGSIZE:0] configurationC ;
assign AorB = fselinput(Z00,Z01,Z02,Z03,Z10,Z11,Z12,Z13,Z20,Z21,Z22,Z23,Z30,Z31,Z32,Z33,                          configurationC) ;
function [P_DATASIZE:0] fselinput ;
input [P_DATASIZE:0] Z00,Z01,Z02,Z03,Z10,Z11,Z12,Z13,Z20,Z21,Z22,Z23,Z30,Z31,Z32,Z33 ;
input [P_CONNECTION_CFGSIZE:0] configurationC ;
case (configurationC)
`ifdef D_CONNECTION_DISTANCE0
'h0: fselinput = Z00 ;                       ・・・・・（１）
`endif
`ifdef D_CONNECTION_DISTANCE1
'h1: fselinput = Z01 ;                       ・・・・・（２）
'h2: fselinput = Z11 ;                       ・・・・・（３）
'h3: fselinput = Z10 ;                       ・・・・・（４）
`endif
`ifdef D_CONNECTION_DISTANCE2
'h4: fselinput = Z02 ;                       ・・・・・（５）
'h5: fselinput = Z12 ;                       ・・・・・（６）
'h6: fselinput = Z22 ;                       ・・・・・（７）
'h7: fselinput = Z21 ;                       ・・・・・（８）
'h8: fselinput = Z20 ;                       ・・・・・（９）   
`endif
`ifdef D_CONNECTION_DISTANCE3
'h9: fselinput = Z03 ;                       ・・・・・（１０）
'ha: fselinput = Z13 ;                       ・・・・・（１１）
'hb: fselinput = Z23 ;                       ・・・・・（１２）
'hc: fselinput = Z33 ;                       ・・・・・（１３）
'hd: fselinput = Z32 ;                       ・・・・・（１４）
'he: fselinput = Z31 ;                       ・・・・・（１５）
'hf: fselinput = Z30 ;                       ・・・・・（１６）
`endif
default: fselinput = 16'hzzzz ;
endcase
endfunction
endmodule
ここで、第２機能記述においては、接続可能範囲が、第１〜第４階層の４つに階層分けして記述されている。即ち、接続範囲設定記述により、第１〜第４階層の組み合わせが設定される。
【００１４】
更に、第１階層としての“`ifdef D_CONNECTION_DISTANCE0”は、式（１）より、図２に示す各データ処理回路のそれぞれの入力Ａ及びＢを、自己の出力Ｚと接続可能とすることを規定している。
【００１５】
また、第２階層としての“`ifdef D_CONNECTION_DISTANCE1”は、各データ処理回路のそれぞれの入力Ａ及びＢを、各データ処理回路を取り囲むデータ処理回路の出力Ｚと接続可能とすることを規定している。一例として、図２に示すデータ処理回路Ｄ11においては、式（２）〜（４）により、データ処理回路Ｄ12、Ｄ21、及びＤ22が指定される。
【００１６】
第３階層としての“`ifdef D_CONNECTION_DISTANCE2”は、各データ処理回路のそれぞれの入力Ａ及びＢを、第２階層により指定されるデータ処理回路を更に取り囲むデータ処理回路の出力Ｚと接続可能とする階層を意味している。図２に示すデータ処理回路Ｄ11においては、式（５）〜（９）により、データ処理回路Ｄ13、Ｄ23、Ｄ33、Ｄ32、及びＤ31が指定される。
【００１７】
第４階層としての“`ifdef D_CONNECTION_DISTANCE3”は、各データ処理回路のそれぞれの入力Ａ及びＢを、第３階層により指定されるデータ処理回路を更に取り囲むデータ処理回路の出力Ｚと接続可能とする階層を意味している。図２に示すデータ処理回路Ｄ11においては、式（１０）〜（１６）により、データ処理回路Ｄ14、Ｄ24、Ｄ34、Ｄ44、Ｄ43、Ｄ42、及びＤ41が指定される。
【００１８】
例えば、第１階層、第２階層、及び第４階層が接続可能範囲として設定された場合、図４に示すように、複数の接続切り替え回路Ｓ11〜Ｓ44のそれぞれのセレクタの個数が大幅に削減される。図５に示す接続切り替え回路Ｓ11においては、図３と比して、セレクタの個数が３２個から２１個に削減されている。
【００１９】
更に、図１に示す第２取得部１２がデータ記憶装置２から取得する設定データとしては、上述した接続範囲設定記述に加えて、例えば内部回路設定記述及びビット幅設定記述が含まれる。「内部回路設定記述」は、図２に示す複数のデータ処理回路Ｄ11〜Ｄ44のそれぞれの内部回路の回路構成を設定する。「ビット幅設定記述」は、複数のデータ処理回路Ｄ11〜Ｄ44、複数の接続切り替え回路Ｓ11〜Ｓ44、及び複数のＩ／Ｏ回路５１ａ〜５１ｌのそれぞれが処理するデータのビット幅を設定する。
【００２０】
また、データ処理回路Ｄ11は、図６に示すように、例えばスイッチ回路６１、論理積（ＡＮＤ）回路６２ａ、論理和（ＯＲ）回路６２ｂ、排他的論理和（ＥＯＲ）６２ｃ、インバータ６２ｄ、演算選択回路６３、フリップ−フロップ（Ｆ／Ｆ）６４、出力選択回路６５、及びコンフィギュレーションメモリ６６を備える。ＡＮＤ回路６２ａ、ＯＲ回路６２ｂ、ＥＯＲ回路６２ｃ、及びインバータ６２ｄは、スイッチ回路６１と演算選択回路６３との間に接続される。Ｆ／Ｆ６４は、演算選択回路６３と出力選択回路６５との間に接続される。
【００２１】
スイッチ回路６１は、コンフィギュレーション情報に応じて、ＡＮＤ回路６２ａ、ＯＲ回路６２ｂ、ＥＯＲ６２ｃ、及びインバータ６２ｄのいずれかに入力データを伝達する。演算選択回路６３は、コンフィギュレーション情報に応じて、ＡＮＤ回路６２ａ、ＯＲ回路６２ｂ、ＥＯＲ６２ｃ、及びインバータ６２ｄの演算出力を選択する。Ｆ／Ｆ６４は、クロックＣＬＫと同期して演算選択回路６３の出力データを保持する。出力選択回路６５は、コンフィギュレーション情報に応じて、Ｆ／Ｆ６４及び演算選択回路６３のいずれかの出力データを選択する。
【００２２】
ここで、図６に示すデータ処理回路Ｄ11を設計する際に使用される第１機能記述をＨＤＬを用いて作成した場合の一例を以下に示す：
module DataProcessingNode (inputA, inputB, outputZ, configurationD, clock) ;
parameter P_DATASIZE = 15 ;           
parameter P_PROCESSING_CFGSIZE = 2 ; 
input  [P_DATASIZE:0] inputA ;
input  [P_DATASIZE:0] inputB ;
output [P_DATASIZE:0] outputZ ;
input  [P_PROCESSING_CFGSIZE:0] configurationD ;
input  clock ;
wire [P_DATASIZE:0] candidateZw ;
reg  [P_DATASIZE:0] candidateZr ;
`ifdef D_PROCESSING_NOT
wire [P_DATASIZE:0] candidateG = ~ inputB ;            ・・・・・（１７）
`endif
`ifdef D_PROCESSING_AND
wire [P_DATASIZE:0] candidateH = inputA & inputB ;    ・・・・・（１８）
`endif
`ifdef D_PROCESSING_OR
wire [P_DATASIZE:0] candidateI = inputA | inputB ;     ・・・・・（１９）
`endif
`ifdef D_PROCESSING_XOR
wire [P_DATASIZE:0] candidateJ = inputA ^ inputB ;     ・・・・・（２０）
`endif
`ifdef D_PROCESSING_EXT
wire [P_DATASIZE:0] candidateE =`include "DataProcessingNodeExtention.v"    
・・・・・（２１）
`endif
assign outputZ = configurationD[0] ? candidateZr : candidateZw ;
assign candidateZw = fseloutput(candidateG,candidateH,candidateI,candidateJ,
`ifdef D_PROCESSING_EXT
candidateE,
`endif
configurationD[P_PROCESSING_CFGSIZE:1]) ;
function [P_DATASIZE:0] fseloutput ;
input [P_DATASIZE:0] candidateG ;
input [P_DATASIZE:0] candidateH ;
input [P_DATASIZE:0] candidateI ;
input [P_DATASIZE:0] candidateJ ;
`ifdef D_PROCESSING_EXT
input [P_DATASIZE:0] candidateE ;
`endif
input [P_PROCESSING_CFGSIZE-1:0] configurationD ;
case (configurationD)
'h0 : fseloutput = candidateG ;
'h1 : fseloutput = candidateH ;
'h2 : fseloutput = candidateI ;
'h3 : fseloutput = candidateJ ;
`ifdef D_PROCESSING_EXT
default : fseloutput = candidateE ;
`endif
endcase
endfunction
always @ (posedge clock) begin
candidateZr <= candidateZw ;
end
endmodule
式（１７）は図６に示すインバータ６２ｄを表している。式（１８）はＡＮＤ回路６２ａを表している。式（１９）はＯＲ回路６２ｂを表している。式（２０）はＥＯＲ回路６２ｃを表している。
【００２３】
更に、内部回路設定記述により、図６に示すＡＮＤ回路６２ａ、ＯＲ回路６２ｂ、ＥＯＲ６２ｃ、及びインバータ６２ｄから必要な論理回路のみが選択される。また、式（２１）に示すように、ＡＮＤ回路６２ａ、ＯＲ回路６２ｂ、ＥＯＲ６２ｃ、及びインバータ６２ｄ以外の論理回路、例えば、否定論理積（ＮＡＮＤ）回路及び否定論理和（ＮＯＲ）回路が、内部回路設定記述により追加される。また、ビット幅設定記述により、図６に示す入力Ａ及びＢのそれぞれのビット幅、及びコンフィギュレーションメモリ６６からスイッチ回路６１、演算選択回路６３、及び出力選択回路６５に供給されるコンフィギュレーション情報のビット幅が設定される。
【００２４】
更に、図１に示す第１取得部１１は、第１機能記述及び第２機能記述に加えて、図２に示す複数のＩ／Ｏ回路５１ａ〜５１ｌの構成を記述した第３機能記述、及び第１〜第３機能記述のそれぞれを統合する第４機能記述をデータ記憶装置２から取得する。
【００２５】
また、論理合成部１４は、設定データが設定された第１〜第４機能記述を論理合成してネットリストを作成する。解析部１７は、作成されたネットリストを解析する。具体的には、解析部１７はネットリストから配置・配線処理後のレイアウトの動作速度、消費電力、及び回路規模等を見積もり、見積もり結果を仕様情報と比較して使用を満たすか否か判定する。また、レイアウト作成部１５は、ネットリストに対して配置処理を行う配置部１５ａ、及び配線処理を行う配線部１５ｂを備える。
【００２６】
更に、データ記憶装置２には、ライブラリ格納領域２１、設定データ格納領域２２、機能記述格納領域２３、ネットリスト格納領域２４、レイアウトデータ格納領域２５、及び仕様情報格納領域２６が備えられる。ライブラリ格納領域２１には、第１機能記述〜第４機能記述が格納される。設定データ格納領域２２には、設定データが格納される。機能記述格納領域２３には、設定データが設定された第１〜第４機能記述が格納される。ネットリスト格納領域２４には、ネットリストが格納される。レイアウトデータ格納領域２５には、レイアウトデータが格納される。仕様情報格納領域２６には仕様情報が格納される。
【００２７】
尚、自動設計装置は、図示を省略するデータベース制御装置及び入出力制御装置を備える。データベース制御装置は、データ記憶装置２に対するファイルの格納場所の検索、及びデータの読み出し・書き込みを行う。これに対して入出力制御装置は、入力装置３からのデータを受け取り、ＣＰＵ１に伝達する。即ち入出力制御装置は、入力装置３、出力装置４、或いはＣＤ−ＲＯＭ、及びフレキシブルディスク等の補助記憶装置６の読取装置等をＣＰＵ１に接続するインターフェイスである。データの流れから見ると、入出力制御装置は、入力装置３、出力装置４、補助記憶装置６、及び外部記憶装置の読取装置と主記憶装置５とのインターフェイスとなる。また入出力制御装置は、ＣＰＵ１からのデータを受け取り、出力装置４及び補助記憶装置６等へ伝達する。
【００２８】
更に、図１に示す入力装置３としては、例えば、キーボード、マウス、光学式文字読取装置（ＯＣＲ）等の認識装置、イメージスキャナ等の図形入力装置、及び音声認識装置等の特殊入力装置が使用できる。出力装置４としては、例えば、液晶ディスプレイ、ＣＲＴディスプレイ等の表示装置、インクジェットプリンタ、レーザープリンタなどの印刷装置が使用できる。主記憶装置５には、ＲＯＭ及びＲＡＭが組み込まれている。ＲＯＭは、ＣＰＵ１において実行されるプログラムを格納するプログラム記憶装置等として機能する。これに対してＲＡＭは、ＣＰＵ１におけるプログラム実行処理中に利用されるデータ等を一時的に格納したり、作業領域として利用される一時的なデータメモリ等として機能する。
【００２９】
次に、図７に示すフローチャートを参照して、本発明の実施の形態に係る半導体集積回路の自動設計方法を説明する。但し、図１に示す自動設計装置が、図４に示すリコンフィギュラブルプロセッサのレイアウトを自動設計する場合を例に説明する。
【００３０】
（イ）ステップＳ１０において、図１に示す第１取得部１１は、ライブラリ格納領域２１から、ライブラリ、即ち第１〜第４機能記述を取得する。
【００３１】
（ロ）ステップＳ１１において、第２取得部１２は、設定データ格納領域２２から、設定データ、即ち接続範囲設定記述、内部回路設定記、及びビット幅設定記述を取得する。尚、ステップＳ１１は、ステップ１０の前又はステップ１０と同時に実行されても良い。
【００３２】
（ハ）ステップＳ１２において、第２取得部１２は、ステップ１１で取得した設定データをステップＳ１０で取得したライブラリに設定する。設定データが設定された第１〜第４機能記述は、機能記述格納領域２３に格納される。
【００３３】
（ニ）ステップＳ１３において、論理合成部１４は、設定データが設定された第１〜第４機能記述を論理合成してネットリストを作成する。作成されたネットリストは、ネットリスト格納領域２４に格納される。
【００３４】
（ホ）ステップＳ１４において、解析部１７は、ステップＳ１３で作成されたネットリストを解析する。更に、解析部１７は、仕様情報格納領域２６から仕様情報を取得し、解析結果が仕様情報を満たすか否か判定する。仕様を満たすと判定された場合、ステップＳ１６に進む。仕様を満たさないと判定された場合、ステップＳ１１に処理が戻る。ステップＳ１１においては、第２取得部１２が、最初に取得した設定データと異なる設定データを設定データ格納領域２２から取得する。
【００３５】
（ヘ）ステップＳ１６において、配置部１５ａは、解析後のネットリストに対して配置処理を行う。詳細には、実チップを模倣した仮想チップ上に、図４に示す複数のデータ処理回路Ｄ11〜Ｄ44、複数の接続切り替え回路Ｓ11〜Ｓ44、及び複数のＩ／Ｏ回路５１ａ〜５１ｌが配置される。
【００３６】
（ト）ステップＳ１７において、配線部１５ｂは、仮想チップ上に配置された複数のデータ処理回路Ｄ11〜Ｄ44、複数の接続切り替え回路Ｓ11〜Ｓ44、及び複数のＩ／Ｏ回路５１ａ〜５１ｌに配線処理を施す。この結果、レイアウトデータが作成され、レイアウトデータはレイアウトデータ格納領域２５に格納される。
【００３７】
このように本発明の実施の形態によれば、設定部１３が、接続範囲設定記述を第２機能記述に設定することにより、接続切り替え回路内のセレクタの個数を制御できる。また、複数の接続切り替え回路及び複数のデータ処理回路の構成を、利用者の用途や要求する性能に応じて変更できる。したがって、リコンフィギュラブルプロセッサ全体の回路規模を削減し、動作速度及び消費電力を改善できる。
【００３８】
（変形例）
本発明の実施の形態の変形例に係る自動設計方法として、図８に示すように、図１に示す解析部１７が、ステップＳ１６及びステップＳ１７に示す配置・配線処理後のレイアウトデータを解析しても良い。即ち、解析部１７は、図１に示すネットリスト格納領域２４に格納されたネットリストを解析せずに、レイアウトデータ格納領域２５に格納されたレイアウトデータを解析する。解析部１７がレイアウトデータを解析することにより、ネットリストを解析する場合と比して解析の精度を向上させることができる。或いは、解析部１７が、機能記述格納領域２３に格納された機能記述に対して解析処理を行っても良い。この場合、仕様を満たすか否かの判定を早期に行うことが可能となる。
【００３９】
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００４０】
上述した実施の形態においては、自動設計装置が、複数のデータ処理回路Ｄ11〜Ｄ44、複数の接続切り替え回路Ｓ11〜Ｓ44、及び複数のＩ／Ｏ回路５１ａ〜５１ｌについて自動設計を行う場合を例に説明した。しかしながら、リコンフィギュラブルプロセッサの周辺回路、例えば小型演算装置（ＭＰＵ）及びキャッシュメモリ等についても自動設計の対象として良い。
【００４１】
また、複数のデータ処理回路が行列状に配置された構成について説明したが、ハイパーキューブ状、直線状、又はツリー状等の構成に対して、実施の形態に係る自動設計装置を適用しても良い。尚、リコンフィギュラブルプロセッサを自動設計する場合に限らず、ＦＰＧＡ等の他のプログラマブル回路を自動設計する場合に応用可能である。
【００４２】
更に、複数の接続切り替え回路のそれぞれが複数のデータ処理回路間を接続可能な範囲を４通りにクラス分けする一例を説明した。しかしながら、各データ処理回路及び各接続切り替え回路をそれぞれ個別に規定すれば、複数の接続切り替え回路のそれぞれが複数のデータ処理回路間を接続可能な範囲のバリエーションを増加させることができる。
【００４３】
尚、既に述べた実施の形態に係る自動設計装置は、第１〜第４機能記述、設定データ、及び仕様情報等のデータをネットワークを介して取得してもよい。この場合、自動設計装置がネットワークとの通信を制御する通信制御装置等を更に備える必要がある。
【００４４】
このように、本発明はここでは記載していない様々な実施の形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態に係る半導体集積回路の自動設計装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係る半導体集積回路の自動設計装置の機能を説明するためのリコンフィギュラブルプロセッサの概略ブロック図である。
【図３】本発明の実施の形態に係る半導体集積回路の自動設計装置の機能を説明するための接続切り替え回路の構成例を示すブロック図である。
【図４】本発明の実施の形態に係る半導体集積回路の自動設計装置の機能を説明するためのリコンフィギュラブルプロセッサの概略ブロック図である。
【図５】本発明の実施の形態に係る半導体集積回路の自動設計装置の機能を説明するための接続切り替え回路の構成例を示すブロック図である。
【図６】本発明の実施の形態に係る半導体集積回路の自動設計装置の機能を説明するためのデータ処理回路の構成例を示すブロック図である。
【図７】本発明の実施の形態に係る半導体集積回路の自動設計方法を示すフローチャートである。
【図８】本発明の実施の形態の変形例に係る半導体集積回路の自動設計方法を示すフローチャートである。
【符号の説明】
【００４６】
２…データ記憶装置
１１…第１取得部
１２…第２取得部
１３…設定部
１４…論理合成部
１５…レイアウト作成部
１６…解析部
【図１】
2006172219.tif 000003
【図２】
2006172219.tif 000004
【図３】
2006172219.tif 000005
【図４】
2006172219.tif 000006
【図５】
2006172219.tif 000007
【図６】
2006172219.tif 000008
【図７】
2006172219.tif 000009
【図８】
2006172219.tif 000010