動的再構成デバイスは、例えば製品出荷後に構成情報が設定されることにより、所望の回路構成を実現することができる。又、1サイクルにてデータ処理と同時にコンテキスト(回路面)が切り替わるマルチコンテキスト型の動的再構成デバイス(例えば、DRP;Dynamically Reconfigurable Processor)が知られている。動的再構成デバイスでは、実行する処理(タスク)を時間方向に分割し、分割した複数の処理(タスク)のそれぞれを複数のコンテキスト(回路面)のそれぞれに割り当てる。
動的再構成ができない半導体集積回路では、実行する全て処理に必要なゲートをすべて配線で接続しておく必要がある。このため、搭載されるゲート数が増大すると、配線密度が増大するとともに迂回路の増大により信号遅延が多く発生してしまう。一方、マルチコンテキスト型の動的再構成デバイスでは、時分割した処理(タスク)毎に、使用するゲートだけを配線接続している。このため、コンテキスト毎に使用されるゲート数は全体数に比べて少なくなり、無駄な迂回路の使用も排除することができる。又、通常、半導体集積回路では、全回路がフルに動作することは少なく面積効率が悪いが、動的再構成デバイスでは処理を時分割実行しているため面積効率が改善される。このように、マルチコンテキスト型の動的再構成デバイスでは、コンテキスト(回路面)毎のゲート数、配線密度、及び迂回路数を低減できるため、回路規模を大きくしても遅延時間の増大を抑制することが可能となる。すなわち、マルチコンテキスト型の動的再構成デバイスは、回路規模を増大しつつ高速化を実現することができる。
マルチコンテキスト型の動的再構成デバイスの設計にあたり、コンテキスト毎の遅延時間を計算することは重要である。図1から図7を参照して、現在、広く普及しているFPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)といったプログラマブルデバイス(再構成デバイス)の遅延解析手法の一例を説明する。
図1は、従来技術による動的再構成デバイスの遅延計算装置20の構成の一例を示した図である。遅延解析部23は、配置配線済回路情報21及び遅延情報22に基づいて遅延解析を実行し、解析対象回路における遅延時間を計算する。計算結果は遅延解析情報24として記憶装置に記録される。ここで、配置配線済回路情報21は、解析対象の再構成デバイスに配置配線された回路要素の接続情報を有する。又、遅延情報22は、配置配線回路情報21の各要素に対応した遅延値情報を有する。
図2は、遅延解析対象となる再構成デバイスの構成例を示す図である。図2に示す再構成デバイスには、機能ブロック310、配線320、スイッチ330を有した論理エレメント300がアレイ状に配列される。
図3は、再構成デバイスに搭載されるスイッチ330の構成の一例を示す図である。図3(a)に示すスイッチ330は、ゲートに入力される構成情報によってソース−ドレイン間の接続が制御されることで、2つのノード間の接続(オンオフ)を制御するトランジスタスイッチである。あるいは、図3(b)に示すスイッチ330は、ゲートに入力される構成情報によってソース−ドレイン間の接続が制御されることで、交差する2つの配線間の接続を制御するトランジスタスイッチである。スイッチ330は、図3に示すスイッチに限らず、他の機構によるスイッチ(例えばトランスファゲート)も利用され得る。またスイッチ330は、2つのノード間のオンオフを制御するのではなく、構成情報が選択信号となり、複数の入力信号から1つの出力信号を選択するマルチプレクサ構成でもよい。
図4は、再構成デバイスに搭載される機能ブロック310の構成の一例を示す図である。図4に示す機能ブロック310は、入力端子311、312、出力端子313、演算器314、配線315、レジスタ316、マルチプレクサ317を備える。マルチプレクサ317は、図示しない選択信号(構成情報)が“1”のときにレジスタ316に格納されたデータ信号を出力端子313に出力し、選択信号(構成情報)が“0”のときに演算器314の出力信号を出力端子313に出力する。演算器314は2入力の信号に対して論理算術を実行し、その結果を、配線315を介してレジスタ316及びマルチプレクサ317に出力する。演算器314の論理計算機能は、ルックアップテーブルで実現されることが好適である。
図5は、遅延解析対象となる配線経路の一例を示す図である。図示しない構成情報によって、スイッチ330のオンオフが制御されるとともに、機能ブロック310が制御される。これにより、図5に示す配線経路が論理エレメントアレイ上に形成される。図5では、図2に示す構成のうち、配線経路上の構成に対して新たな符号が付されるが、実質的な構成は変わらないものとする。例えば、スイッチ506、508、・・・等は、スイッチ330を示す。又、同様な構成が複数あり、それぞれを区別して説明する場合、それぞれの符号に追番を付して説明する。
図5を参照して、機能ブロック310−1内のマルチプレクサ503の選択信号が“1”となり、スイッチ506、スイッチ508、スイッチ510、スイッチ512がオンとなる。これにより、機能ブロック310−1内のレジスタ501のクロック端子531が、配線502、マルチプレクサ503、配線504、505、スイッチ506、配線507、スイッチ508、配線509、スイッチ510、配線511、スイッチ512、配線513、配線514を介して、機能ブロック310−4の入力端子311に接続される。又、機能ブロック310−3内のマルチプレクサ518の選択信号が“1”となり、スイッチ521、スイッチ523、スイッチ525がオンとなる。これにより、機能ブロック310−3内のレジスタ516のクロック端子532が、配線517、マルチプレクサ518、配線519、520、スイッチ521、配線522、スイッチ523、配線524、スイッチ525、配線526を介して、機能ブロック310−4の入力端子312に接続される。配線514からの入力は、機能ブロック310−4における演算器314の内部回路515、配線529、レジスタ530を介してレジスタのクロック端子533に至る。同様に、配線527からの入力は、機能ブロック310−4における演算器314の内部回路528、配線529、レジスタ530を介してレジスタのクロック端子533に至る。すなわち、機能ブロック310−4内の演算器314は、外部装置から与えられた命令(図示なし)に基づいて、2つの入力信号に対して当該命令に応じた算術結果をレジスタに出力する。以上のような動作により、機能ブロック310−1内のレジスタのクロック端子531、及び機能ブロック310−3内のレジスタのクロック端子532を始点とし、機能ブロック310−4内のレジスタのクロック端子533を終点とする経路が形成される。
図6は、図5に示した配線経路に関する情報を有向グラフで表した図である。図6では、図5における配線経路を形成する構成のうち、マルチプレクサ、演算器及びレジスタのそれぞれの端子と機能ブロックの境界における端子、及びスイッチ端子をノードで表現し、これらの端子間配線(又は端子間の内部回路)を枝で表現している。ここで有向グラフは配置配線済回路情報21と等価な情報である。即ち、配置配線済回路情報21から有向グラフが形成可能である。
図7は、図5に示す配線経路における各構成要素の遅延情報22の一例を示す図である。遅延情報22には、配線経路における構成要素のタイプ(要素種別221)、インスタンス名222、遅延値223が当該構成要素毎に対応付けられて記録される。ここでは、一例として配線経路の構成要素がレジスタ(Reg)、マルチプレクサ(Mux)、演算器(Alu)、スイッチ(Sw)、配線(Wire)の5種類のタイプ(要素種別221)に分類されて定義され、構成要素に対応するユニークな名前(インスタンス名222)、及びこれに対応する遅延値223が定義されている。
ここで、図7に示す遅延要素は、図5に示した配線経路に対応している。遅延要素のインスタンス名222“name”は、図5に示す配線経路の各要素の符号の頭に、レジスタであれば“R”、マルチプレクサであれば“M”、配線であれば“W”、スイッチであれば“S”、演算器であれば“A”が付加されて表現される。例えばレジスタ501のインスタンス名222は“R501”と表現される。
次に、遅延解析部23における遅延解析の具体的な例を説明する。
図8は、図6に示した有向グラフの枝に、図7に示した遅延値を割り当てた有向グラフを示した図である。有向グラフを用いた遅延解析手法は多く存在するが、ここでは基本的な遅延計算手法を説明する。遅延解析部23は、初期条件として、グラフ内で枝に対し始点側のノードにしかならない全てのノードに“0”をラベリングする。ここでは、クロック端子501、532に対応するノードP501、P532に“0”がラベリングされる。続いて遅延解析部23は、グラフ内のノードにおいて、以下に示す式(1)の計算を行う。
式(1)では、終点側ノードjに対し、始点側のノードiにラベリングされた遅延値(ノードiにおける“Arrival_Time(i)”)に、ノードiからノードjへ接続する枝の遅延値“delay(i,j)”が加算される。遅延解析部23は、この計算を接続する全ての始点ノードに対して行い、その最大値をノードjのArrival_Time(j)とし、ノードjにラベリングする。このとき、始点側のノードの全てがラベリングされていることが必要条件となる。遅延値がラベリングされていない始点側ノードがある場合、遅延解析部23は、当該始点側ノードを終点側ノードとして、式(1)による同様の計算を実行し、遅延値をラベリングする。グラフ内の全てのノードに遅延値をラベリングするように式(1)による計算を繰り返すことで、各ノードに対する最大遅延が求まる。図9は、図8に示すグラフの各ノードに最大遅延値をラベリングしたグラフの一例を示す図である。図9に示す一例では、有向グラフの終点ノード“P533”に最大遅延値“31”が割り当てられ、この値がクリティカルパスの遅延値となる。遅延解析部23は、算出したクリティカルパスの遅延値を遅延解析情報24として記録する。
以上ように、再構成後の配線経路における最大遅延時間を計算することができる。例えば、特開2009−147539には、動的再構成デバイスにおける最大遅延時間を算出する技術が記載されている(特許文献1参照)。特許文献1に記載のシステムは、コンテキストによって変化する出力遅延時間を、動的再構成回路毎の全コンテキストに対して定義している。又、当該システムは、基準点からFFまでに経由する回路名と経由回路に至るクロック信号の到達遅延時間をFF毎に保持している。このため、特許文献1に記載のシステムは、クロック信号の到達遅延時間を考慮したコンテキスト毎の配線経路における最大遅延時間を算出することができる。
再構成デバイスに対する遅延解析の詳細は、例えば“ARCHITECTURE AND CAD FOR DEEP−SUBMICRON FPGAs”に記載されている(非特許文献1参照)。
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。
以下、添付図面を参照して、本発明による半導体集積回路の遅延解析方法、遅延解析プログラム、遅延解析装置の実施の形態を説明する。本実施の形態では、マルチコンテキスト型動的再構成デバイス(例えばDRP)の解析又は設計を行う半導体集積回路遅延解析装置を一例に説明する。
1.第1の実施の形態
図10から図23を参照して、第1の実施の形態における半導体集積回路遅延解析装置10(以下、遅延解析装置10と称す)及び遅延解析方法を説明する。
(遅延解析装置の構成)
図10は、本発明による遅延解析装置10の第1の実施の形態における構成図である。遅延解析装置10は、バスを介して相互に接続されるCPU、RAM、記憶装置、入力装置、出力装置を具備する(図示なし)。記憶装置はハードディスクやメモリ等に例示される外部記憶装置である。又、入力装置は、キーボードやマウス等のユーザによって操作されることで、各種データをCPUや記憶装置に出力する。出力装置は、モニタやプリンタに例示され、CPUから出力される解析結果をユーザに対し視認可能に出力する。
図10を参照して、遅延解析装置10は、図示しない記憶装置に記録された配置配線済回路情報11、遅延情報12、及び再構成遅延情報13を保持する。配置配線済回路情報11は、再構成デバイス1に配置配線されたコンテキスト(回路面)毎の回路情報を含む。詳細には、再構成デバイスに搭載された回路要素のうち、回路面毎に構成されるデータパスや、回路面の変更を制御するための再構成パスを形成する構成(構成情報格納ユニット、論理回路、レジスタ、スイッチ、配線等)の接続状況が、回路面に対応付けられて配置配線済回路情報11として記録される。遅延情報12は、配置配線済回路情報11の各要素における遅延時間を有する。再構成遅延情報13は、コンテキスト(回路面)の変更に要する時間、すなわち、再構成パスの遅延時間を有する。ここで、再構成パスは、後述する構成情報格納ユニット110から、状態遷移時の制御先となる論理回路やスイッチまでの経路を示す。遅延情報12や再構成遅延情報13の詳細は後述する。
又、図示しない記憶装置に記録された解析プログラムがCPUにおいて実行されることで、遅延解析部14の機能が実現される。遅延解析部14は、配置配線済回路情報11から解析対象となる回路面を特定し、当該回路面における最大遅延時間を算出する。この際、遅延解析部14は、遅延情報12及び再構成遅延情報13に基づいて回路面におけるクリティカルパスの遅延時間を当該回路面における最大遅延時間として算出する。算出された最大遅延時間は、クリティカルパスや解析対象となったコンテキスト(回路面)に対応付けられて遅延解析情報15として記録される。
(解析対象回路の構成)
図11は、本発明による遅延解析装置10の解析対象となる動的再構成デバイス1の構成例を示す図である。図11を参照して、本発明に係る動的再構成デバイス1は、チップ上にアレイ状に配列された複数の論理エレメント100(PE;Processing Element)、状態遷移コントローラ101(STC;State Transition Controller)、メモリ102、104(HMEM、VMEM)を具備する。
状態遷移コントローラ101は、内部にメモリ等の記憶装置を具備し、この記憶装置に状態遷移情報(コンテキストの遷移情報)を格納し、コンテキストに従う構成番号200を出力することで、複数の論理エレメント100によって形成される回路面を、当該コンテキストに対応する回路面に変更する(状態遷移)。メモリ102、104は、回路面を形成する論理エレメント100への入力データ、又は回路面を形成する論理エレメント100による演算結果が格納される。
図12は、本発明による遅延解析対象回路となる論理エレメント群の構成例を示す図である。図12を参照して、論理エレメント100は、機能ブロック310、配線320、スイッチ330に加えて構成情報格納ユニット110を備える。構成情報格納ユニット110と機能ブロック310及びスイッチ330とは、図示しない再構成パスによって接続される。機能ブロック310の機能及びスイッチ330の選択動作は、構成情報格納ユニット110から出力され、再構成パスを介して入力される構成情報201に応じて制御される。これによりデータパスが変更され、再構成デバイス1の回路面が変更される。
図13は、論理エレメント100内における構成情報格納ユニット110の構成の一例を示す図である。構成情報格納ユニット110は複数のメモリ111を有し、複数のメモリ111の各番地には、機能ブロック310やスイッチ330に対する制御信号となる構成情報201が格納される。構成情報格納ユニット110は、状態遷移コントローラ101から入力される構成番号200に対応する番地のメモリ111から構成情報201を読み出し、機能ブロック310及びスイッチ330に出力する。機能ブロック310の機能、及びスイッチ330のオンオフが構成情報201に従って制御されることにより、構成番号200に対応するデータパスが形成される。これにより、コンテキストに対応する構成番号200に従って、動的再構成デバイス1上の回路面が形成されることとなる。
本発明に係る動的再構成デバイス1は、機能ブロック310やスイッチ330が構成情報201により制御されてから、次サイクル以降で回路面に形成されたデータパスの処理を実行するのではなく、1サイクル内で、構成情報201を与えながら回路面に形成されるデータパスの処理を同時に実行する。このとき、構成情報格納ユニット110が、機能ブロック310やスイッチ330に構成情報201を設定する場合、構成情報格納ユニット110と、機能ブロック310やスイッチ330との間における経路(再構成パス)において遅延が発生する。このため、回路面変更後における処理時間は、回路面におけるデータパスの遅延時間のみならず、再構成パスにおける遅延時間を考慮する必要がある。本発明による遅延解析装置10は、再構成パスの遅延時間を考慮したデータパスの最大遅延時間を計算することで、精度の高い回路面毎の処理時間を解析することができる。
図14及び図15を参照して、再構成パスの詳細を説明する。図14は、機能ブロック310に対する再構成パスの一例を示す図である。機能ブロック310は、入力端子311、312、出力端子313、演算器314、配線315、レジスタ316、マルチプレクサ317を備える。マルチプレクサ317は、構成情報201が“1”のときにレジスタ316に格納されたデータ信号を出力端子313に出力し、構成情報201が“0”のときに演算器314の出力信号を出力端子313に出力する。演算器314は2入力の信号に対して論理算術を実行し、その結果を、配線315を介してレジスタ316及びマルチプレクサ317に出力する。
図14を参照して、機能ブロック310に対する再構成パスは、構成情報格納ユニット110から演算器314までの経路、及び構成情報格納ユニット110からマルチプレクサ317までの経路である。詳細には、構成情報格納ユニット110のクロック端子401から演算器314の出力端子402までの経路C1が、演算器314に対する再構成パスとなり、構成情報格納ユニット110のクロック端子401からマルチプレクサ317の出力端子403までの経路C2が、マルチプレクサ317に対する再構成パスとなる。
一方、図15を参照して、スイッチ330に対する再構成パスは、構成情報格納ユニット110のクロック端子401からスイッチ330におけるデータパスの終点側端子404までの経路C3が、スイッチ330に対する再構成パスとなる。
次に、図16から図18を参照して、遅延解析部14における遅延解析対象となるデータパスの具体例を説明する。本一例では、説明の簡単化のため、図11における領域Aにおけるデータパスを遅延解析対象として説明するが、解析対象となるデータパスは更に広い範囲の論理エレメント100間を介したパスであってもよい。又、本一例の動的再構成デバイス1では、図16に示す回路面“1”と図17に示す回路面“2”とがクロックに応じて交互に遷移するものとする。図16及び図17では、図12に示す構成のうち、配線経路上の構成に対して新たな符号が付されるが、実質的な構成は変わらないものとする。例えば、スイッチ606、608、・・・等は、スイッチ330を示す。又、同様な構成が複数あり、それぞれを区別して説明する場合、それぞれの符号に追番を付して説明する。
図16は、回路面“1”において解析対象となるデータパスの構成例を示す図である。構成情報格納ユニット110からの回路面“1”を示す構成情報201によって、スイッチ330のオンオフが制御されるとともに、機能ブロック310の機能が変更される。これにより、図16に示すデータパスが論理エレメントアレイ上に形成される。
図16を参照して、機能ブロック310−1内のマルチプレクサ603の選択信号が“1”となり、スイッチ606、スイッチ608、スイッチ632がオンとなる。これにより、機能ブロック310−1内のレジスタ601のクロック端子641が、レジスタ601、配線602、マルチプレクサ603、配線604、605、スイッチ606、配線607、スイッチ608、配線631、スイッチ632、配線633を介して、機能ブロック310−2の入力端子312に接続される。ここで、機能ブロック310−2内の演算器634は、構成情報格納ユニット110から与えられた命令に従って、配線633からの入力信号を演算し、演算結果を、配線635を介してレジスタ636に出力する。
以上のような動作により、機能ブロック310−1内におけるレジスタ601のクロック端子641を始点とし、レジスタ636を終点とするデータパスが形成される。従って、回路面“1”に対する遅延解析では、レジスタ601のクロック端子641を始点とし、レジスタ636のクロック端子642を終点とする配線経路B1が、データパスの遅延解析対象となる。
図17は、回路面“2”において解析対象となるデータパスの構成例を示す図である。構成情報格納ユニット110からの回路面“2”を示す構成情報201によって、スイッチ330のオンオフが制御されるとともに、機能ブロック310の機能が変更される。これにより、図17に示すデータパスが論理エレメントアレイ上に形成される。
図17を参照して、機能ブロック310−1内のマルチプレクサ603の選択信号が“1”となり、スイッチ606、スイッチ608、スイッチ610、スイッチ612がオンとなる。これにより、機能ブロック310−1内のレジスタ601のクロック端子641が、レジスタ601、配線602、マルチプレクサ603、配線604、605、スイッチ606、配線607、スイッチ608、配線609、スイッチ610、配線611、スイッチ612、配線613、配線614を介して、機能ブロック310−4の入力端子311に接続される。又、機能ブロック310−3内のマルチプレクサ618の選択信号が“1”となり、スイッチ621、スイッチ623、スイッチ625がオンとなる。これにより、機能ブロック310−3内のレジスタ616のクロック端子643が、レジスタ616、配線617、マルチプレクサ618、配線619、620、スイッチ621、配線622、スイッチ623、配線624、スイッチ625、配線626を介して、機能ブロック310−4の入力端子312に接続される。ここで、機能ブロック310−4内の演算器内の内部回路615、628は、構成情報格納ユニット110から与えられた命令に従って、配線614、627からの2つの入力信号を演算し、演算結果を、配線629を介してレジスタ630に出力する。
以上のような動作により、機能ブロック310−1内におけるレジスタ601のクロック端子641を始点とし、演算器内の内部回路615を介して機能ブロック310−4内におけるレジスタ630に至るデータパスと、機能ブロック310−3内におけるレジスタ616のクロック端子643を始点とし、演算器内の内部回路628を介して機能ブロック310−4内におけるレジスタ630に至るデータパスとが形成される。従って、回路面“2”に対する遅延解析では、レジスタ601のクロック端子641を始点とし、演算器内の内部回路615を介してレジスタ630のクロック端子644を終点とする配線経路B2と、レジスタ616のクロック端子643を始点とし、演算器内の内部回路628を介してレジスタ630のクロック端子644を終点とする配線経路B3が、データパスの遅延解析対象となる。
本発明による動的再構成デバイス1は、回路の動作中に回路面がクロックに同期して遷移するマルチコンテキスト型の動的再構成デバイスである。第1の実施の形態における動的再構成デバイス1は、一例として1サイクル毎に回路面“1”と回路面“2”が交互に遷移する。図18は、第1の実施の形態における動的再構成デバイス1の回路面の遷移動作を示すタイミングチャートである。図18を参照して、本実施の形態における状態遷移コントローラ101から出力される構成番号200は、1サイクル“C”毎に構成番号“1”と構成番号“2”が切替えられる。論理エレメント100内の構成情報格納ユニット110は、クロックに同期して構成番号200に対応する構成情報201を読み出し、機能ブロック310やスイッチ330に出力する。このため、構成情報201は、構成番号200に対して1サイクル“C”だけ遅れて出力されることとなる。例えば、構成番号“1”と構成番号“2”が交互に遷移した場合、構成情報“1”と構成情報“2”は、構成番号200に対し1サイクル“C”だけ遅れて、交互に機能ブロック310、スイッチ330に出力されることとなる。
本実施例において、回路面におけるクリティカルパスの遅延値(最大遅延値)を求めるには、回路面“1”、“2”における最大遅延値d1、d2をそれぞれ求め、より大きい遅延値を採用すればよい。本発明による遅延解析では、再構成パスの遅延値を考慮して回路面における最大遅延値d1、d2が計算される。
図19は、図17に示した回路面“2”の配置配線済回路情報11を有向グラフで表した図である。図19に示す有向グラフでは、図17における配線経路B2、B3を形成する構成のうち、マルチプレクサ、演算器及びレジスタのそれぞれの端子と機能ブロックの境界における端子、及びスイッチ端子をノードで表現し、これらの端子間配線(又は端子間の内部回路)を枝で表現している。又、図19に示す有向グラフでは、配線経路B2、B3上の構成に対して構成情報201を出力する構成情報格納ユニット110もノードで表現し、当該ユニットと当該構成との間の配線と、当該構成との間の再構成パスを枝で表現している。ここで有向グラフは配置配線済回路情報11と等価な情報である。即ち、配置配線済回路情報11から有向グラフが形成可能である。
ここで、図19に示すノード及び枝は、図17に示した構成に対応し、それぞれの符号は、図17に示す構成の符号の頭に、レジスタであれば“R”、マルチプレクサであれば“M”、配線であれば“W”、スイッチであれば“S”、演算器であれば“A”、マルチプレクサへの再構成パスであれば“R_M”、配線への再構成パスであれば“R_S”、演算器への再構成パスであれば“R_A”、クロック端子であれば“P”が付加されて表現される。例えばレジスタ501の符号は“R501”と表現される。
図20は、図17に示す配線経路に対する遅延情報12の一例を示す図である。遅延情報12には、データパス上の構成要素による遅延値が、当該構成要素に対応付けられて記録される。詳細には、遅延情報12には、配線経路における構成要素のタイプ(要素種別121)、インスタンス名122、遅延値123が当該構成要素毎に対応付けられて記録される。ここでは、一例として配線経路の構成要素がマルチプレクサ(Mux)、演算器(Alu)、スイッチ(Sw)、配線(Wire)の5種類のタイプ(要素種別121)に分類されて定義され、構成要素に対応するユニークな名前(インスタンス名122)、及びこれに対応する遅延値123が定義されている。
図21は、図17に示す配線経路における各構成要素の再構成遅延情報13の一例を示す図である。再構成遅延情報13には、再構成パス毎の遅延値が記録される。詳細には、再構成遅延情報13には、構成情報格納ユニット110の制御先となる構成要素のタイプ(制御対象要素種別131)、インスタンス名132、再構成パス遅延値133が当該構成要素毎に対応付けられて記録される。ここでは、一例として制御対象となる構成要素が、マルチプレクサ(Mux)、演算器(Alu)、スイッチ(Sw)の3種類のタイプ(制御対象要素種別131)に分類されて定義され、構成要素に対応するユニークな名前(インスタンス名132)、及びこれに対する再構成パスの遅延値(再構成パス遅延値133)が定義されている。尚、制御対象要素種別131は、再構成パスを特定できれば上述の一例に限らず、再構成パスを特定する識別子(例えば、構成パスを特定するインスタンス名)でも構わない。
尚、図20及び図21に示すインスタンス名122、132は、図19に示す有向グラフにおける枝に付された符号に対応し、インスタンス名122、132に一致する符号は、当該インスタンス名122、132に対応する構成要素を示すものとする。
遅延情報12と再構成遅延情報13とは、回路面に対して紐付けられて記録されることが好ましい。例えば、回路面“1”のデータパス上の構成と再構成パス上の構成のそれぞれ遅延値が紐付けられて記録される。これにより、回路面“1”を指定することで、当該回路面“1”の有向グラフ上に遅延値123及び再構成パス遅延値133を容易に付加することができる。
(遅延解析方法)
図19から図23を参照して、第1の実施の形態における遅延解析部14による遅延解析の具体例を説明する。以下では、図17に示す回路面“2”におけるクリティカルパスの遅延値の計算方法の具体例を説明する。尚、回路面“1”におけるクリティカルパスの遅延値も同様の手法で求まるため、この説明は省略する。
遅延解析部14は、配置配線済回路情報11から回路面“2”に対応する有向グラフを作成する。ここでは図19に示す有向グラフが作成される。本発明では、回路面“2”におけるデータパスのみならず、当該データパス上の構成要素を制御するための再構成パス“R_M603”、“R_M606”、“R_M608”、“R_M610”、“R_M612”、“R_M618”、“R_M621”、“R_M623”、“R_M625”、“R_M627”及びその始点となるノード“P645”〜“P648”も有向グラフに追加される。次に、遅延解析部14は、遅延情報12及び再構成遅延情報13に基づいて有向グラフの枝に遅延値を付与する。ここでは、遅延解析部14は、図19に示した有向グラフの枝に、図20に示した遅延値123と図21に示した再構成パス遅延値133を割り当て、図22に示す有向グラフを得る。更に、遅延解析部14は、図22に示す有向グラフにおける全てのノードに遅延値をラベリングすることで、回路面“2”におけるデータパスの最大遅延値を算出する。詳細には、先ず遅延解析部14は、初期条件として、グラフ内で枝に対し始点側のノードにしかならない全てのノードに“0”をラベリングする。ここでは、データパスの始点となるレジスタのクロック端子641、643に対応するノード“P640”、“P643”と、再構成パスの始点となる構成情報格納ユニットのクロック端子645、646、647、648に対応するノード“P645”、“P646”、“P647”、“P648”に“0”がラベリングされる。続いて遅延解析部14は、グラフ内のノードにおいて、式(1)の計算を行う。
式(1)では、終点側ノードjに対し、始点側のノードiにラベリングされた遅延値(ノードiにおける“Arrival_Time(i)”)に、ノードiからノードjへ接続する枝の遅延値“delay(i,j)”が加算される。遅延解析部14は、この計算を接続する全ての始点ノードに対して行い、その最大値をノードjのArrival_Time(j)とし、ノードjにラベリングする。このとき、始点側のノードの全てがラベリングされていることが必要条件となる。遅延値がラベリングされていない始点側ノードがある場合、遅延解析部14は、当該始点側ノードを終点側ノードとして、式(1)による同様の計算を実行し、遅延値をラベリングする。グラフ内の全てのノードに遅延値をラベリングするように式(1)による計算を繰り返すことで、各ノードに対する最大遅延が求まる。
図23は、図22に示す有向グラフの各ノードに対する最大遅延値をラベリングしたグラフの一例を示す図である。図23に示す一例では、有向グラフの終点ノード“P644”に最大遅延値“32”が割り当てられ、この値がクリティカルパスの遅延値(回路面“2”における最大遅延値)となる。遅延解析部14は、算出したクリティカルパスの遅延値を遅延解析情報15として記録する。
以上のように本発明による遅延解析方法によれば、再構成パスによる遅延を考慮してデータパスの最大遅延値の計算が可能となる。すなわち、本発明によれば、データ処理時間に対し余分にかかる再構成時間(再構成オーバヘッド)を考慮して、回路面毎の精確なデータ処理時間を算出することができる。図5に示すデータパス上の遅延値と、図17に示すデータパス上の遅延値は同じ値を示すが、従来技術では最大遅延値が“31”であるのに対し、本発明では、再構成パスの遅延値を考慮した“32”となる。再構成パスの遅延値を無視して、従来技術により算出された最大遅延値“31”を利用してタイミング検証を行った場合、回路面“1”から回路面“2”に遷移する度に、実際、発生し得る再構成パスにおける遅延を無視することとなり、理想値に対して処理時間が早まってしまう。そのため、従来技術によって算出された処理時間を実機(リアルな)動作に適用させた場合、誤動作の原因になり得る。一方、本発明では、再構成遅延値を考慮しているため、回路面の遷移が繰り返されても理想値に近い処理時間を解析することが可能となる。
再構成パスの遅延を考慮する場合、複数の回路面のそれぞれのクリティカルパス遅延に一律の再構成オーバヘッドを足し合わせ、足し合わせた値を各回路面のクリティカルパス遅延とする手法が考えられる。本手法では、遅延解析に要する計算量を軽減しつつ再構成パスの遅延値を考慮しながらクリティカルパスの遅延値を算出できる。しかし、再構成パスの遅延値は、全ての回路面に一律に与えられるため、クリティカルパスの遅延を過大又は過小に評価してしまう。一方、上述の方法では、回路面に応じた再構成パスの遅延値を考慮して回路面毎のクリティカルパスの遅延値を計算しているため、精度の高い遅延解析が可能となる。
又、遅延解析部14は、従来の再構成デバイスと同様に再構成遅延を考慮しない状態で遅延計算することもできる。すなわち、遅延解析部14は、遅延計算の精度や処理量(計算時間)に基づいて、再構成遅延を考慮した遅延解析と、従来と同様な再構成遅延を考慮しない遅延解析とを任意に選択しても構わない。例えば、計算時間を重視する場合や再構成遅延を無視できる回路面の遅延時間を計算する場合、遅延解析部14は、有向グラフにおいて再構成パスに対応する枝を全てカットした状態で、式(1)に従い計算すればよい。更に、遅延解析部14は、回路面毎にパスの最大遅延を求めるため、回路面毎に再構成遅延を考慮した最大遅延と、再構成遅延を考慮しないときの最大遅延をそれぞれ算出することもできる。
尚、本実施例では式(1)による最大遅延時間の計算方法(有向グラフを利用したタイミング計算)を例示したが、再構成パスにおける遅延時間を考慮できれば、他の計算手法を用いてもよい。
2.第2の実施の形態
図24から図29を参照して、第2の実施の形態における遅延解析装置10及び遅延解析方法を説明する。第2の実施の形態における遅延解析装置10及び遅延解析方法では、再構成パスの遅延値のみならず、クロック遅延も考慮して遅延解析が行われる。以下では、第1の実施の形態と異なる構成及び動作について詳細に説明し、同様な構成及び動作についてはその詳細な説明は省略する。
(遅延解析装置の構成)
図24は、本発明による遅延解析装置10の第2の実施の形態における構成図である。図24を参照して、遅延解析装置10は、配置配線済回路情報11、遅延情報12、及び再構成遅延情報13に加えて、クロック遅延情報16を保持する。ここで、本実施の形態における配置配線済回路情報11は、再構成デバイス1に配置配線されたコンテキスト(回路面)毎の回路情報とともに、クロック端子間の接続情報を含む。詳細には、データパスや再構成パスを形成する構成の接続状況とともに、クロックパス上の構成(クロックバッファ、クロック配線、クロック端子等)の接続状況が、回路面に対応付けられて配置配線済回路情報11として記録される。遅延情報12及び再構成遅延情報13は、第1の実施の形態と同様である。クロック遅延情報16は、動的再構成デバイス1におけるクロックパス上の構成(クロックバッファ、クロック配線)における遅延値を含む。
第2の実施の形態における遅延解析部14は、第1の実施の形態と同様に、遅延情報12及び再構成遅延情報13に基づいて回路面におけるクリティカルパスの遅延時間を計算するとともに、クロック遅延情報16に基づいてクリティカルパスの遅延時間を修正する。クロック遅延情報16に基づいて修正された遅延時間は、クリティカルパスや解析対象となったコンテキスト(回路面)に対応付けられて遅延解析情報15として記録される。
(解析対象回路の構成)
第2の実施の形態における遅延解析装置10の解析対象は、第1の実施の形態と同様であるが、データパス及び再構成パスのみならず図25に例示するようなクロックパスも遅延解析の対象となることが、第1の実施の形態と異なる。
図25は、図16に示した論理エレメントアレイ上に形成され、遅延解析対象となるクロックパスの一例を示す図である。クロックパスは、セル(クロックバッファ)と配線から構成される。ここでは、一例として、セル701におけるクロック端子720をクロックソースとし、各論理エレメント100に至るクロックパスB11〜B18が構成される。詳細には、クロックパスB11は、セル701を始点とし、配線702、セル705、配線708を介して構成情報格納ユニット110−1のクロック端子645を終点とするパスである。クロックパスB12は、セル701を始点とし、配線702、セル705、配線709を介して機能ブロック310−1におけるレジスタのクロック端子641を終点とするパスである。クロックパスB13は、セル701を始点とし、配線703、セル706、配線710を介して構成情報格納ユニット110−3のクロック端子647を終点とするパスである。クロックパスB14は、セル701を始点とし、配線703、セル706、配線711を介して機能ブロック310−3におけるレジスタのクロック端子643を終点とするパスである。クロックパスB15は、セル701を始点とし、配線704、セル707、配線712、セル714、配線716を介して構成情報格納ユニット110−2のクロック端子646を終点とするパスである。クロックパスB16は、セル701を始点とし、配線704、セル707、配線712、セル714、配線717を介して機能ブロック310−2におけるレジスタのクロック端子642を終点とするパスである。クロックパスB17は、セル701を始点とし、配線704、セル707、配線713、セル715、配線718を介して構成情報格納ユニット110−4のクロック端子648を終点とするパスである。クロックパスB18は、セル701を始点とし、配線704、セル707、配線713、セル715、配線719を介して機能ブロック310−4におけるレジスタのクロック端子644を終点とするパスである。
図26は、図25に示すクロックパスに対するクロック遅延情報16の一例を示す図である。クロック遅延情報16には、クロックパス上の構成要素による遅延値が、当該構成要素に対応付けられて記録される。詳細には、クロック遅延情報16には、配線経路における構成要素のタイプ(要素種別161)、インスタンス名162、クロック遅延値163が当該構成要素毎に対応付けられて記録される。ここでは、一例としてクロックパスの構成要素が、セル(Clock Block)、配線(Clock Wire)の2種類のタイプ(要素種別161)に分類されて定義され、構成要素に対応するユニークな名前(インスタンス名162)、及びこれに対応するクロック遅延値163が定義されている。
図27は、図25に示したクロックパスB11〜B18の配置配線済回路情報11を有向グラフで表した図である。図27に示す有向グラフでは、図25におけるクロックパスB11〜B18を形成する構成のうち、セル(クロックバッファ)及びレジスタのそれぞれのクロック端子をノードで表現し、これらの端子間配線(クロック配線)を枝で表現している。この有向グラフは、配置配線済回路情報11におけるクロックパスの接続状況と等価な情報である。即ち、本実施の形態では、配置配線済回路情報11からデータパスに対する有向グラフのみならず、クロックパスに対する有向グラフも形成可能である。
ここで、図27に示すノード及び枝は、図25に示した構成に対応し、それぞれの符号は、図25に示す構成の符号の頭に、セルであれば“CB”、クロック配線であれば“CW”、クロック端子であれば“P”が付加されて表現される。例えばセル701の符号は“CB701”と表現される。
尚、図26に示すインスタンス名162は、図27に示す有向グラフにおける枝に付された符号に対応し、インスタンス名162に一致する符号は、当該インスタンス名162に対応する構成要素を示すものとする。
(遅延解析方法)
第2の実施の形態における遅延解析部14は、クロックパスの遅延値及び再構成パスの遅延値を考慮してデータパスの遅延値を計算する。ここでは、データパスの始点に対するクロック遅延値とデータパスの終点に対するクロック遅延値との差分によって、第1の実施の形態において算出されたデータパスの最大値遅延値が修正される。詳細には、遅延解析部14は、データパス及び再構成パスに対応する有向グラフの始点ノードの初期値として、クロックパスにおける当該始点ノードのクロック遅延値をラベリングする。続いて、遅延解析部14は、再構成パスの遅延値を考慮しながら、データパスに対応する有向グラフにおける各ノードの最大遅延値をラベリングし、終点ノードにおける最大遅延値を算出する。遅延解析部14は、当該最大遅延値から、クロックパスにおける当該終点ノードのクロック遅延値を減じた値を、データパスの最大遅延値として遅延解析情報15に記録する。
次に、図19、及び図25から図28を参照して、第2の実施の形態における遅延解析部14による遅延解析の具体例を説明する。以下では、図17に示す回路面“2”におけるクリティカルパスの遅延値の計算方法の具体例を説明する。尚、回路面“1”におけるクリティカルパスの遅延値も同様の手法で求まるため、この説明は省略する。
第2の実施の形態における遅延解析部14は、配置配線済回路情報11からクロックパスに対応する有向グラフを作成する。ここでは図25に示すクロックパスに対応する有向グラフが作成される。遅延解析部14は、クロック遅延情報16に基づいて有向グラフの枝に遅延値を付与する。ここでは、遅延解析部14は、作成した有向グラフの枝に、図26に示したクロック遅延値163を割り当てる。更に、遅延解析部14は、式(1)に従って有向グラフにおける全てのノードに遅延値をラベリングする。これにより、遅延解析部14は、図27に示す有向グラフを得、クロックパスの最大遅延値が算出される。詳細には、先ず遅延解析部14は、初期条件として、グラフ内で枝に対し始点側のノードにしかならない全てのノードに“0”をラベリングする。ここでは、データパスの始点となるクロック共有点(セル701)のクロック端子720に対応するノード“P720”に“0”がラベリングされる。続いて遅延解析部14は、クロック遅延情報16を参照して、クロックパスB11〜B18に対応するグラフ内の各ノードにおいて、式(1)の計算を行う。
図27は、図25に示すクロックパスB11〜B18に対応する有向グラフの各ノードに対する最大遅延値をラベリングしたグラフの一例を示す図である。遅延解析部14は、図26に示すクロック遅延値を有向グラフの各枝に割り当てて、クロック共有点“P720”からクロックパスの終点であるノード“P641”〜“P648”までの遅延値を計算する。図27に示す一例では、有向グラフの終点ノード“P641”、“P643”、“P645”、“P647”に最大遅延値“5”が割り当てられ、有向グラフの終点ノード“P642”、“P644”、“P646”、“P648”に最大遅延値“6”が割り当てられる。遅延解析部14は、終点ノードの最大遅延値をクロックパスの遅延値として遅延解析情報15に記録する。
図19及び図27を参照して、クロックパスに対応する有向グラフの終点ノード“P641”、“P642”、“P645”、“P646”、“P647”、“P648”は、データパス及び再構成パスに対応する有向グラフの始点ノードとなる。このため、遅延解析部14は、図19に示す有向グラフの始点ノード“P641”、“P642”“P645”、“P646”“P647”“P648”の初期値として、クロックパスの終点ノードに割り当てた最大遅延値をラベリングする。
以上のように、データパス及び再構成パスに対応する有向グラフの始点ノードの初期値として、クロックパスにおける遅延値がラベリングされる。続いて、遅延解析部14は、第1の実施の形態と同様に、(1)式に従い、再構成パスにおける遅延値を考慮してデータパスの最大遅延値を計算する。図28に示す有向フラグでは、(1)式に従い、終点ノード“P644”まで最大遅延値がラベリングされる。この結果、図28に示すようにデータパスの終点ノード“P644”には“37”がラベリングされる。
最後に、遅延解析部14は、データパスの終点ノードに対するクロック遅延を考慮して最大遅延値を補正する。ここでは、遅延解析部14は、データパスの終点ノードにラベリングされた最大遅延値から、当該終点ノードにラベリングされたクロック遅延を減じた結果を、補正値として出力する。詳細には、図29に示すように、最大遅延値をラベリングしたデータパスの終点ノード“P644”から、クロック共有点“P720”までクロックパスの有向フラグを遡ることで、クロック遅延を減算する。ここでは、枝の方向と反対に進むため、枝に割り当てられた遅延値がノードにラベリングされた遅延値から減算されることとなる。図29に示す一例では、終点ノード“P644”にラベリングされた最大遅延値“37”からクロック遅延値“6”が減算され、クロック共有点“P720”に対応するノードには、“31”がラベリングされる。この数値が、図17に示す回路面“2”の経路において、クロック経路の遅延を考慮したときの最大遅延値となる。
以上のように、第2の実施の形態における遅延解析装置10は、データパス上の構成要素に対する再構成パスのみならずクロック遅延を考慮してクリティカルパスの遅延値を算出することができる。このため、第2の実施の形態における遅延解析では、第1の実施の形態よりも計算量が多くなるが、遅延値の予測精度を高めることができる。
又、第2の実施の形態における遅延解析部14は、第1の実施の形態と同様に、従来の再構成デバイスと同様に再構成遅延を考慮しない状態で遅延計算することもできる。すなわち、遅延解析部14は、遅延計算の精度や処理量(計算時間)に基づいて、再構成遅延を考慮した遅延解析と、従来と同様な再構成遅延を考慮しない遅延解析とを任意に選択しても構わない。更に、遅延解析部14は、回路面毎にパスの最大遅延を求めるため、回路面毎に再構成遅延を考慮した最大遅延と、再構成遅延を考慮しないときの最大遅延をそれぞれ算出することもできる。
3.第3の実施の形態
図30から図33を参照して、第3の実施の形態における遅延解析装置10及び遅延解析方法を説明する。第3の実施の形態における遅延解析装置10及び遅延解析方法では、回路面の遷移の際、構成状態が変更する構成要素に対する再構成パスの遅延値のみを考慮してデータパスの最大遅延値を算出する。以下では、第1の実施の形態と異なる構成及び動作について詳細に説明し、同様な構成及び動作についてはその詳細な説明は省略する。
(遅延解析装置の構成)
図30は、本発明による遅延解析装置10の第3の実施の形態における構成図である。図30を参照して、遅延解析装置10は、配置配線済回路情報11、遅延情報12、及び再構成遅延情報13に加えて、構成状態情報17及び状態遷移情報18を保持する。
ここで、本実施の形態における配置配線済回路情報11、遅延情報12及び再構成遅延情報13は、第1の実施の形態と同様である。構成状態情報17は、コンテキスト(回路面)において、デバイス上の構成要素(例えば演算器314、マルチプレクサ317、スイッチ330等)がどのような状態であるかを示す情報を含む。例えば、構成状態情報17として、回路面における、演算器314の状態(演算方法)、マルチプレクサ317における選択信号を指定する情報、スイッチ330のオンオフの一方を指定する情報が、当該回路面を特定する情報に対応付けられて記録される。回路面を特定する情報としては、コンテキストに対応付けられた構成番号200や回路面に応じて決まる構成情報201がある。あるいは、回路面毎の構成情報201の値が構成状態情報17として記録されていても良い。遅延解析部14は、構成状態情報17を参照することで、回路面において構成要素がどのような状態であるかを確認できる。
状態遷移情報18は、回路面の遷移の仕方を示す情報(遷移するコンテキスト(回路面)、回路面の遷移方向、遷移するタイミング、及び遷移順等)を含む。図31は、状態遷移情報18の一例を示す図である。図31に示す一例では、回路面“1”と回路面“2”がクロックに同期して交互に入れ替わることを示す。すなわち、遷移する回路面として回路面“1”と回路面“2”が規定され、遷移方向として、回路面“1”から回路面“2”に向かう方向と、回路面“2”から回路面“1”に向かう方向の2つの方向が規定され、遷移タイミングとして1クロックサイクルに同期することが規定される。ここでは、2つの回路面が遷移する場合を一例としたが、更に他の回路面に遷移しても良いし、複数サイクルにわたり同一回路面を維持してもよい。更に、図31では回路面“2”に遷移する1サイクル前には必ず回路面“1”が形成されるがこれに限らず、又、遷移回数やサイクル数に応じて、回路面の遷移先が変更されても良い。
第3の実施の形態における遅延解析部14は、遅延情報12及び再構成遅延情報13に基づいて回路面におけるクリティカルパスの遅延時間を計算する。この際、遅延解析部14は、構成状態情報17及び状態遷移情報18に基づいて回路面が遷移しても構成状態が変化しない構成要素を特定するとともに、当該構成要素に対する再構成パスの遅延値を計算するための有向グラフから排除してデータパスの遅延解析を行う。
(解析対象回路の構成)
第3の実施の形態における遅延解析装置10の解析対象は、第1の実施の形態と同様にデータパス及び再構成パスであるが、回路面の遷移制御に利用される再構成パスのうち、構成状態が変化しない構成要素に対する再構成パスは、解析対象から除外される。
(遅延解析方法)
次に、図31から図33を参照して、第3の実施の形態における遅延解析部14による遅延解析の具体例を説明する。以下では、図16に示す回路面“1”と図17に示す回路面“2”とが交互に遷移する場合の、回路面“2”におけるクリティカルパスの遅延値の計算方法の具体例を説明する。尚、回路面“1”におけるクリティカルパスの遅延値も同様の手法で求まるため、この説明は省略する。
遅延解析部14は、先ず、回路面の遷移方向や回路面の遷移順を状態遷移情報18によって確認する。例えば、遅延解析部14は、図31に示す状態遷移情報18を参照して、回路面“1”から回路面“2”に遷移することを確認する。続いて、遅延解析部14は、構成状態情報17を参照して、回路面が遷移したときに構成状態が変化しない構成要素を特定する。ここでは、遅延解析部14は、構成状態情報17を参照して、回路面“1”の構成要素の構成状態と、回路面“2”の構成要素の状態とを比較して、構成状態が変化しない構成要素を特定する。具体的には、図16及び図17を参照して、マルチプレクサ603は、回路面“1”、“2”で共に選択信号が“1”であり、レジスタ601から信号が選択される。又、スイッチ606、608は、回路面“1”、“2”で共にオンの状態である。この場合、回路面“1”から回路面“2”に遷移したとき、マルチプレクサ603、スイッチ606、608の構成状態が変化しないことが確認される。
遅延解析部14は、回路面が遷移しても構成状態が変化しない構成要素に対する再構成パスを排除した、データパス及び再構成パスに対応する有向グラフを作成する。詳細には、遅延解析部14は、第1の実施の形態と同様に、図17に示す回路面“2”に対応する有向グラフとして図19に示す有向グラフを作成する。続いて、遅延解析部14は、図32に示すように、回路面が遷移しても構成状態が変化しない構成要素に対する再構成パスに対応する枝“R_M603”、“R_S606”、“R_S608”を、作成した有向グラフから削除する。あるいは、遅延解析部14は、回路面が遷移しても構成状態が変化しない構成要素に対する再構成パスを予め除外した再構成パスと、回路面“2”のデータパスに対応する有向グラフを作成する。
ここでは、マルチプレクサ603、及びスイッチ606、608の再構成遅延を考慮する必要がないため、回路面“2”から有向グラフを形成する際に、マルチプレクサ603、スイッチ606、608に対する再構成パスの枝である“R_M603”、“R_S606”、“R_S608”が排除される。遅延解析部14は、構成情報が変化しない再構成パスの枝をカットした有向グラフを元に、遅延情報12、再構成遅延情報13及び式(1)に従い、各ノードに最大遅延値をラベリングすることで、クリティカルパスの遅延値(最大遅延値)を算出する。図33は、図32に示す有向グラフの各ノードに対する最大遅延値をラベリングしたグラフの一例を示す図である。遅延解析部14は、遅延情報12及び再構成遅延情報13を参照して遅延値を有向グラフの各枝に割り当て、式(1)に従って各ノードに最大遅延値をラベリングする。図33に示す一例では、有向グラフの終点ノード“P644”に最大遅延値“31”が割り当てられる。遅延解析部14は、終点ノードの最大遅延値をクロックパスの遅延値として遅延解析情報15に記録する。
回路面における構成要素の構成状態(又は構成情報格納ユニット110から与えられる構成情報201の値)が変化しない場合、当該構成要素(マルチプレクサ、演算器、及びスイッチ)への再構成遅延を考慮する必要がない。このため、本実施の形態における遅延解析部14は、状態遷移情報18に基づいて、解析対象の回路面と当該回路面の遷移前の回路面を特定し、構成状態情報17に基づいて、信号変化のない再構成パスを遅延計算から除外している。これにより、第3の実施の形態では、高精度の遅延解析結果を得られるとともに、第1の実施の形態に比べて解析に要する計算量や解析時間を短縮することが可能となる。
尚、第3の実施の形態においてはクロック遅延を考慮していないが、第2の実施の形態における遅延解析装置10及び遅延解析方法技術的に矛盾のない範囲内で組み合わせることで、クロック遅延を考慮した遅延解析が可能となることは言うまでもない。
4.第4の実施の形態
第1から第3の実施の形態における遅延解析装置10は、設計支援装置800に組み込まれ、動的再構成デバイス1を設計する差異の遅延解析に利用され得る。
図34A及び図34Bは、本発明に係る設計支援装置800の構成の一例を示す図である。設計支援装置800は、バスを介して相互に接続されるCPU、RAM、記憶装置、入力装置、出力装置を具備する(図示なし)。記憶装置はハードディスクやメモリ等に例示される外部記憶装置である。又、入力装置は、キーボードやマウス等のユーザによって操作されることで、各種データをCPUや記憶装置に出力する。出力装置は、モニタやプリンタに例示され、CPUから出力される解析結果をユーザに対し視認可能に出力する。
図34A及び図34Bを参照して、設計支援装置800では、図示しない記憶装置に記録された設計支援プログラムがCPUにおいて実行されることで、論理設計部810、論理合成部840、配置配線部850、及び遅延情報生成部880の機能が実現される。
論理設計部810は図示しない設計仕様に従い、RTL(Register Transfer Level)記述による設計データ820や、論理合成時の制約事項(例えば、面積、クロック周期、消費電力等の条件)となる設計制約情報830を生成する。又、論理設計部810は、遅延解析装置10によって得られた遅延解析情報15に基づいて、設計対象回路の遅延判定を行い、判定結果に応じて設計データ820や設計制約情報830を修正する。
論理合成部840は、論理合成ツールであり、設計データ820を用いて、最適な論理ゲートの接続状況(ネットリスト)やセルライブラリを生成する。この際、論理合成部840は、設計制約情報830に従ってネットリストを最適化する。配置配線部850は、自動レイアウトツールであり、セルライブラリ内のマクロセルをチップ上に配置するとともに、論理合成部840で生成されたネットリストに基づいて、マクロセル間の配線を行う。配置配線部850によるレイアウト結果は、チップのマスクレイアウトパタンを示すレイアウトデータ860として記録される。
又、配置配線部850は、配線容量や配線遅延時間を計算し、タイミング検証に用いられる遅延計算情報870を出力する。遅延情報生成部880は、遅延計算情報870を用いて遅延情報12、再構成遅延情報13を生成する。
遅延解析装置10は、設計支援装置800におけるタイミング検証ツールとして機能し、第1の実施の形態で示した遅延解析方法により、解析対象の動的再構成デバイス1におけるクリティカルパスの遅延時間を算出し、遅延解析情報15として記録する。
ここで、論理設計部810は、遅延解析情報15が目標遅延を満たしているかどうかを判定し、条件を満たしていなければ、設計データ820及び設計制約情報830を変更する。一方、遅延解析情報15が目標遅延を満たす場合、遅延解析装置10は遅延解析を終了する。
図34A及び図34Bに示す設計支援装置800では、配置配線後の遅延計算情報870から遅延情報12及び再構成遅延情報13を作成したが、これに限らず、論理合成後等の前段階において遅延計算情報870が得られる場合は、遅延解析装置10によって当該遅延計算情報870から遅延情報12及び再構成遅延情報13が作成されても良い。
又、本実施の形態では、第1の実施の形態における遅延解析装置10を設計支援装置800におけるタイミング検証ツールとして適用したが、これに限らず、第2の実施の形態、又は第3の実施の形態における遅延解析装置10が適用されても構わない。ただし、第2の実施の形態における遅延解析装置10を適用する場合、遅延計算情報870からクロック遅延情報16が生成される。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。例えば、第1から第4の実施の形態では、再構成遅延を考慮した最大遅延のパス(クリティカルパス)を求めたが、回路面毎の最小遅延値を求めてもよい。例えば、遅延解析部14は、配置配線済回路情報11をモデル化した有向グラフにおいて、式(2)に従って各ノードの遅延値をラベリングする。
式(2)では、終点側ノードjに対し、始点側のノードiにラベリングされた遅延値(ノードiの“Arrival_Time(i)”)に、ノードiからノードjへ接続する枝の遅延値“delay(i,j)”が加算される。遅延解析部14は、この計算を接続する全ての始点ノードに対して行い、最小値をノードjの“Arrival_Time(j)とし、ノードjにラベリングする。これを全てのノードに適用することで、各ノードに対して、最小遅延値が割り当てられる。尚、ここでは、式(2)による最小遅延時間の計算方法(有向グラフを利用したタイミング計算)を例示したが、再構成パスにおける遅延時間を考慮できれば、他の計算手法を用いてもよい。
又、第1から第4の実施の形態は、技術的に矛盾がない範囲内で組み合わせて適用できる。