【解決手段】実施形態における回路記述生成装置は、シフトレジスタを含む、設計対象の回路を記述する回路情報から、同じ信号を入力する複数段のシフトレジスタでなる複数のシフトレジスタ群を抽出し、入力信号の値のパターンを示す検証ベクタに基づいて入力信号の波形を生成し、波形で示される信号の値が変化するまでのサイクル数の最小値に基づいて、シフトレジスタを削減する候補となるシフトレジスタ群を抽出する削減候補抽出部と、抽出したシフトレジスタ群に含まれるシフトレジスタのうち最小値に基づいて決定した段数のシフトレジスタを削減した回路を記述する回路情報を生成し、削減前後の回路との間の出力の等価性の有無を検証する削減回路生成部とを有する。
シフトレジスタを含む、設計対象の回路を記述する回路情報から、同じ信号を入力する複数段のシフトレジスタでなる複数のシフトレジスタ群を抽出し、前記抽出した複数のシフトレジスタ群に対する入力信号の値のパターンを示す検証ベクタに基づいて、前記抽出した複数のシフトレジスタ群のそれぞれに対する入力信号の波形を生成し、所定期間内における前記生成した波形で示される入力信号の値が変化するまでのサイクル数の最小値に基づいて、前記複数のシフトレジスタ群のうち、シフトレジスタを削減する候補であるシフトレジスタ群を抽出する削減候補抽出部と、
前記削減候補抽出部により抽出したシフトレジスタ群に含まれるシフトレジスタのうち前記最小値に基づいて決定した段数のシフトレジスタを削減した回路を記述する回路情報を生成し、前記生成した回路情報で示される回路と、前記決定した段数のシフトレジスタを削減する前の回路との間の信号出力の等価性の有無を検証し、前記等価性があることが検証されたときに、前記決定した段数のシフトレジスタを削減した回路を記述する回路情報を修正後の回路情報として生成する削減回路生成部と
を備える、回路記述生成装置。
【発明を実施するための形態】
【0009】
以下、実施形態について図面を用いて説明する。
図1は、本実施の形態に係わる回路記述生成装置の構成を示すブロック図である。
回路記述生成装置10は、コンピュータ装置であり、入出力装置、記憶装置、CPU(中央処理装置)等からなる。具体的には、回路記述生成装置10は、回路設計者であるユーザからの入力操作、例えばRTL記述にかかる操作を受け付ける、キーボード等の入力装置11と、各種データの表示等を行う画面を有するモニタ等の表示装置12と、CPUとを含み、各種処理を実行するデータ処理装置13と、各種データを記憶する記憶装置14とを含んで構成されている。
【0010】
記憶装置14は、不揮発性メモリなどにより実現でき、設計対象である半導体装置の構成を記述したRTL言語によるプログラム、すなわちRTL記述を記憶する記憶領域部14aを含む。
【0011】
データ処理装置13は、削減候補抽出部13aと、削減回路生成部(削減回路記述生成部)13bとを含む。
削減候補抽出部13aは、RTL読込部13a1と、シフトレジスタ抽出部13a2と、波形生成部13a3と、削減候補出力部13a4とを含む。
【0012】
削減回路生成部13bは、前段読込部13b1、制約確認部13b2、削減RTL生成部13b3、等価性検証部13b4を含む。データ処理装置13内の各部は、主としてソフトウエアにより実現されている。
【0013】
削減候補抽出部13aの各部について説明する。
削減候補抽出部13aのRTL読込部13a1は、設計対象である半導体装置の回路のRTL記述を記憶装置14の記憶領域部14aから読み込む。
【0014】
シフトレジスタ抽出部13a2は、RTL読込部13a1が読み込んだRTL記述から入力信号の種別(例えば、信号Sig_A、信号Sig_B、信号Sig_C)ごとに区分されるシフトレジスタ群(グループ)を抽出する。個々のシフトレジスタ群は、同じ入力信号を入力する複数段のシフトレジスタでなる。
【0015】
波形生成部13a3は、入力信号の値のパターンを示す検証ベクタを記憶装置14の記憶領域部14aから読み込み、この検証ベクタに基づいて、シフトレジスタ抽出部13a2が抽出したシフトレジスタ群のそれぞれに対する入力信号の値の波形を生成する。
【0016】
削減候補出力部13a4は、波形生成部13a3により生成した波形で示される、入力信号の値が変化するまでのサイクル数を演算し、各シフトレジスタ群に対応する波形ごとに、所定時間内における最小のサイクル数を求める。また、削減候補出力部13a4は、この求めた最小のサイクル数が1である波形パターンを除いた波形パターンを、レジスタを削減できる可能性がある波形パターンとして解析し、この波形にかかるシフトレジスタ群の情報を、当該波形にかかる最小のサイクル数とともに、削減候補情報として出力する。削減候補のシフトレジスタ群とは、この削減候補のシフトレジスタ群を構成する複数段のうち一部の段のシフトレジスタが削減できる可能性がある構成を指す。
【0017】
次に、削減回路生成部13bの各部について説明する。
削減回路生成部13bの前段読込部13b1は、削減候補抽出部13aの削減候補出力部13a4が出力した削減候補情報で示されるシフトレジスタ群から、処理対象となる1つのシフトレジスタ群を取り出し、このシフトレジスタ群の前段に接続されるモジュールのRTL記述を記憶装置14の記憶領域部14aから読み込む。
【0018】
制約確認部13b2は、前段読込部13b1が読み込んだRTL記述で示されるモジュールについて、前段読込部13b1により取り出したシフトレジスタ群にかかる最小のサイクル数を、上記のモジュールへの入力信号の制約条件として、この条件下で当該モジュールが正常に動作するか否かを確認する。この確認の結果、モジュールが正常に動作しないと確認したときは、制約確認部13b2は、上記の最小のサイクル数を、2を下限値として減らし、この減らした条件下で当該モジュールが正常に動作するか否かを再度確認する。
【0019】
削減RTL生成部13b3は、制約確認部13b2が、上記のモジュールの正常な動作を確認したときの条件における最小サイクル数に応じて、削減候補出力部13a4が出力した削減候補のシフトレジスタ群におけるシフトレジスタの段数を削減させた回路を生成する。
【0020】
等価性検証部13b4は、削減RTL生成部13b3による削減前の回路における出力と、削減後の回路における出力との等価性の有無を検証する。
【0021】
図2は、本実施の形態に係わる回路記述生成装置の削減候補抽出部による処理動作の一例を示すフローチャートである。
まず、削減候補抽出部13aのRTL読込部13a1は、設計対象である半導体装置の回路のRTL記述を記憶装置14の記憶領域部14aから読み込む(S11)。
【0022】
シフトレジスタ抽出部13a2は、RTL読込部13a1が読み込んだRTL記述から入力信号の種別ごとのシフトレジスタ群を抽出する(S12)。
図3、
図4、
図5は、本実施の形態に係わる回路記述生成装置の削減候補抽出部により抽出したシフトレジスタの一例を示す図である。
例えば、シフトレジスタ抽出部13a2は、
図3に示す、信号Sig_Aを入力するシフトレジスタ群である第1のシフトレジスタ群、
図4に示す、信号Sig_Bを入力するシフトレジスタ群である第2のシフトレジスタ群、
図5に示す、信号Sig_Cを入力するシフトレジスタ群である第3のシフトレジスタ群をそれぞれ抽出できる。
図3に示す第1のシフトレジスタ群は2段のシフトレジスタが直列に接続されてなり、
図4に示す第2のシフトレジスタ群は3段のシフトレジスタが直列に接続されてなり、
図5に示す第3のシフトレジスタ群は5段のシフトレジスタが直列に接続されてなる。
【0023】
波形生成部13a3は、入力信号の値のパターンを示す検証ベクタを記憶装置14の記憶領域部14aから読み込み(S13)、この検証ベクタに基づいて、シフトレジスタ抽出部13a2が抽出した、入力信号の種別ごとのシフトレジスタ群のそれぞれに対する入力信号の値の波形を生成する(S14)。
【0024】
図6は、本実施の形態に係わる回路記述生成装置の削減候補抽出部により生成した、入力信号の値の波形の一例を示す図である。
例えば、波形生成部13a3は、
図6に示すように、クロック信号に同期した、
図3に示す第1のシフトレジスタ群に対する入力信号の値の波形、
図4に示す第2のシフトレジスタ群に対する入力信号の値の波形、
図5に示す第3のシフトレジスタ群に対する入力信号の値の波形をそれぞれ生成できる。
削減候補出力部13a4は、波形生成部13a3により生成した波形で示される、入力信号の値が変化するまでのサイクル数を演算し、各シフトレジスタ群に対応する波形ごとに、所定時間内における最小のサイクル数を求める。
【0025】
例えば、削減候補出力部13a4は、
図6に示す、第1のシフトレジスタ群に対する入力信号の値の波形について最小のサイクル数を「7」と求め、
図6に示す、第2のシフトレジスタ群に対する入力信号の値の波形について最小のサイクル数を「1」と求め、
図6に示す、第3のシフトレジスタ群に対する入力信号の値の波形について最小のサイクル数を「4」と求めることができる。
【0026】
また、削減候補出力部13a4は、この求めた最小のサイクル数が1である波形パターンを除いた波形パターンを、レジスタの段数を削減できる可能性がある波形パターンとして解析し、この波形にかかるシフトレジスタ群の情報を、当該波形にかかる最小のサイクル数とともに、削減候補情報として出力する(S15)。
【0027】
例えば、削減候補出力部13a4は、
図6に示す波形パターンのうち、最小のサイクル数が「1」である、第2のシフトレジスタ群に対する入力信号の値の波形を除いた、第1のシフトレジスタ群に対する入力信号の値の波形と、第3のシフトレジスタ群に対する入力信号の値の波形とをそれぞれ選択する。
削減候補出力部13a4は、
図3に示した第1のシフトレジスタ群の情報を、このシフトレジスタ群について生成した波形にかかる最小サイクル数「7」とともに、第1の削減候補情報として出力する。また、削減候補出力部13a4は、
図5に示した第3のシフトレジスタ群の情報を、このシフトレジスタ群について生成した波形にかかる最小サイクル数「4」とともに、第2の削減候補情報として出力する。
【0028】
図7は、本実施の形態に係わる回路記述生成装置の削減回路生成部による処理動作の一例を示すフローチャートである。
まず、削減回路生成部13bの前段読込部13b1は、削減候補抽出部13aの削減候補出力部13a4が出力した削減候補情報で示されるシフトレジスタ群から、処理対象となる1つのシフトレジスタ群を取り出し、このシフトレジスタ群の前段に接続されるモジュールのRTL記述を記憶装置14の記憶領域部14aから読み込む(S21)。
【0029】
制約確認部13b2は、前段読込部13b1が読み込んだRTL記述で示されるモジュールについて、前段読込部13b1により取り出したシフトレジスタ群にかかる最小のサイクル数を、上記のモジュールへの入力信号の制約条件として、この条件下で当該モジュールが正常に動作するか否かを確認する(S22)。この確認の結果、モジュールが正常に動作しないと確認したときは、制約確認部13b2は、上記の最小のサイクル数を、2を下限値として減らし、この減らした条件下で当該モジュールが正常に動作するか否かを再度確認する。
【0030】
例えば、処理対象となるシフトレジスタ群が、
図5に示した第3のシフトレジスタ群である場合、最小サイクル数は4であるので、当初は、制約確認部13b2は、この4を制約条件として、前段のモジュール(RTL記述は、例えば「Sig_C!=$past(Sig_C)|=>$stable(Sig_C)」である)が正常に動作するか否かを確認する。この確認の結果、モジュールが正常に動作しないと確認したときは、制約確認部13b2は、上記の最小のサイクル数を3に減らし、この減らした条件下で前段のモジュールが正常に動作するか否かを再度確認する。以後、前段のモジュールが正常に動作すると確認できるまで処理を繰り返す。
【0031】
前段のモジュールが正常に動作することが確認できた場合、削減RTL生成部13b3は、制約確認部13b2が、上記のモジュールの正常な動作を確認したときの条件における最小サイクル数に応じて、削減候補出力部13a4が出力した削減候補のシフトレジスタ群におけるシフトレジスタの段数を削減させた回路を示すRTL記述を、削減が試行された回路を示す修正後RTL記述として生成する(S23)。
【0032】
例えば、処理対象となるシフトレジスタ群が
図5に示した第3のシフトレジスタ群である場合で、上記の正常な動作を制約確認部13b2が確認したときの条件における最小サイクル数が4である場合、削減RTL生成部13b3は、
図5に示した4段のシフトレジスタを1段のシフトレジスタに置き換えることができる可能性があるとみなし、上記の段数である4(置き換え前の段数)から1(置き換え後の段数)を減算した3を、削減できるシフトレジスタの段数として計算し、この計算に従い、
図5に示した第3のシフトレジスタ群における3段のシフトレジスタを削減した回路を示すRTL記述を生成する。
等価性検証部13b4は、削減RTL生成部13b3による削減前の回路における出力と、削減後の回路における出力との等価性の有無を検証する(S24)。
【0033】
図8は、本実施の形態に係わる回路記述生成装置の削減回路生成部による削減前の回路の一例を示す図である。
図9は、本実施の形態に係わる回路記述生成装置の削減回路生成部による削減後の回路の一例を示す図である。
例えば、
図8に示すように、削減前の回路が、
図5に示す第3のシフトレジスタ群を含む回路であるとき、この削減前の回路では第3のシフトレジスタ群に含まれるシフトレジスタの段数が5であるのに対し、上記のように、第3のシフトレジスタ群における3段のシフトレジスタを削減することで、
図9に示すように、削減後の回路では該当のシフトレジスタ群に含まれるシフトレジスタの段数は2である。
【0034】
S24の結果、削減前の回路における出力と、削減後の回路における出力とが等価でない場合(S25のNO)、シフトレジスタの削減段数の他候補、つまり、等価性の有無の再度の検証のための、削減の段数を減らした(シフトレジスタ群における削減後のシフトレジスタの段数を増やす)回路の候補があれば(S26のNO)、等価性検証部13b4は、この削減の段数を減らした回路を、新たな削減後の回路として、S24における等価性の有無を再度検証する。
【0035】
例えば、
図9に示すように、当初の削減後の回路が上記のように、
図5に示した構成から3段のシフトレジスタを削減した回路であって、削減前の回路との等価性の無い場合、等価性検証部13b4は、
図5に示した構成から2段または1段のシフトレジスタを削減した回路を、新たな削減後の回路として、この回路と削減前の回路との間の等価性の有無を再度検証することができる。
【0036】
S25またはS26により「YES」と判断した場合で、S15で削減候補抽出部13aの削減候補出力部13a4が出力した削減候補のシフトレジスタ群のうち、等価性の確認の処理対象として取り出していないシフトレジスタ群がある場合は(S27のNO)、S21に戻って、前段読込部13b1は、別の処理対象となる1つのシフトレジスタ群を取り出し、同様の処理がなされる。
【0037】
また、S25またはS26により「YES」と判断した場合で、S15で削減候補抽出部13aの削減候補出力部13a4が出力した削減候補のシフトレジスタ群の全てについて上記の等価性の有無の確認を実施済みである場合は(S27のYES)、修正済みのRTLを確定し(S28)、処理が終了する。
【0038】
以上説明したように、本実施の形態に係わる回路記述生成装置は、回路構成を記述するRTL記述および検証ベクタに基づいて、削減候補のシフトレジスタ群を出力し、この削減候補のシフトレジスタ群についてのシフトレジスタ数の削減を試行し、削減前の回路と削減後の回路の等価性の確認を行なうことで、修正後のRTL記述を確定するので、設計対象の回路のシフトレジスタを適切に削減することが可能になる。
【0039】
なお、上記の実施の形態に記載した回路記述生成装置による手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0040】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施の形態を実現するための各処理の一部を実行しても良い。
さらに、実施の形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0041】
また、記憶媒体は1つに限らず、複数の媒体から上記の実施の形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。なお、実施の形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の実施の形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、実施の形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0042】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。