(57)【要約】【課題】  論理動作の変更に伴うＬＳＩの開発期間の増大を抑制できる高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法を提供する。【解決手段】  第１の動作記述と第２の動作記述との差分情報を抽出する抽出部１１と、差分情報を格納する差分情報記憶領域２０３と、第１の動作記述から第１のレジスタ転送レベル記述を生成しながら、第１の動作記述と第１のレジスタ転送レベル記述の対応情報を生成する第１生成部１２と、差分情報を差分情報記憶領域２０３から読み出し、対応情報に基づき第１のレジスタ転送レベル記述を変更して、第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成する第２生成部１３とを備える。【選択図】      図１
2007034584.tif 000002
【特許請求の範囲】
【請求項１】
第１の動作記述と第２の動作記述との差分情報を抽出する抽出部と、
前記差分情報を格納する差分情報記憶領域と、
前記第１の動作記述から第１のレジスタ転送レベル記述を生成しながら、前記第１の動作記述と前記第１のレジスタ転送レベル記述の対応情報を生成する第１生成部と、
前記差分情報を前記差分情報記憶領域から読み出し、前記対応情報に基づき前記第１のレジスタ転送レベル記述を変更して、前記第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成する第２生成部
とを備えることを特徴とする高位合成装置。
【請求項２】
抽出部、第１生成部、第２生成部、差分情報記憶領域、第１ＲＴＬ記憶領域及び対応情報記憶領域を備える高位合成装置を用いる自動高位合成方法において、
前記抽出部が、第１の動作記述と第２の動作記述との差分情報を抽出し、該差分情報を前記差分情報記憶領域に格納するステップと、
前記第１生成部が、前記第１の動作記述から第１のレジスタ転送レベル記述を生成しながら、前記第１の動作記述と前記第１のレジスタ転送レベル記述の対応情報を生成し、前記第１のレジスタ転送レベル記述及び前記対応情報をそれぞれ前記第１ＲＴＬ記憶領域及び前記対応情報記憶領域に格納するステップと、
前記第２生成部が、前記差分情報記憶領域及び前記対応情報記憶領域からそれぞれ読み出した前記差分情報及び前記対応情報に基づき前記第１ＲＴＬ記憶領域から読み出した前記第１のレジスタ転送レベル記述を変更して、前記第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成するステップ
とを含むことを特徴とする自動高位合成方法。
【請求項３】
前記第２のレジスタ転送レベル記述を生成するステップは、
前記第２生成部が備える検出部が、前記差分情報及び前記対応情報に基づき、前記第１の動作記述と前記第２の動作記述との差分に相当する前記第１のレジスタ転送レベル記述の変更が必要な箇所を検出して、変更箇所情報を作成するステップと、
前記第２生成部が備える差分ＲＴＬ生成部が、前記差分情報及び前記変更箇所情報から差分レジスタ転送レベル記述を生成するステップと、
前記第２生成部が備えるマージ部が、前記第１のレジスタ転送レベル記述と前記差分レジスタ転送レベル記述をマージして、前記第２のレジスタ転送レベル記述を作成するステップ
とを含むことを特徴とする請求項２に記載の自動高位合成方法。
【請求項４】
高位合成装置の抽出部に、第１の動作記述と第２の動作記述との差分情報を抽出させ、該差分情報を差分情報記憶領域に格納させる命令と、
高位合成装置の第１生成部に、前記第１の動作記述から第１のレジスタ転送レベル記述を生成させながら、前記第１の動作記述と前記第１のレジスタ転送レベル記述の対応情報を生成させ、前記第１のレジスタ転送レベル記述及び前記対応情報をそれぞれ第１ＲＴＬ記憶領域及び対応情報記憶領域に格納させる命令と、
高位合成装置の第２生成部に、前記差分情報記憶領域及び前記対応情報記憶領域からそれぞれ読み出した前記差分情報及び前記対応情報に基づき、前記第１ＲＴＬ記憶領域から読み出した前記第１のレジスタ転送レベル記述を変更させて、前記第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成させる命令
とを実行させるための高位合成プログラム。
【請求項５】
高位合成装置、論理動作検証部、等価検証部、動作記述記憶領域、第２ＲＴＬ記憶領域及びゲートネットリスト記憶領域を備えるゲートネットリスト検証装置を用いるゲートネットリスト自動検証方法において、
前記高位合成装置が、第１の論理動作が記述された第１の動作記述及び第２の論理動作が記述された第２の動作記述を前記動作記述記憶領域から読み出し、前記第１の動作記述から第１のレジスタ転送レベル記述を生成しながら前記第１の動作記述と前記第１のレジスタ転送レベル記述の対応情報を生成し、前記第１の動作記述と前記第２の動作記述との差分情報及び前記対応情報に基づき前記第１のレジスタ転送レベル記述を変更して第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成し、前記第２ＲＴＬ記憶領域に格納するステップと、
前記論理動作検証部が、前記第２のレジスタ転送レベル記述を前記第２ＲＴＬ記憶領域から読み出し、前記第２のレジスタ転送レベル記述の論理動作を検証するステップと、
前記等価検証部が、前記第２のレジスタ転送レベル記述及び前記第２の論理動作を実現する第２のゲートネットリストを前記第２ＲＴＬ記憶領域及び前記ゲートネットリスト記憶領域からそれぞれ読み出し、前記第２のレジスタ転送レベル記述と前記第２のゲートネットリストの論理動作が等価であるか否かを検証するステップ
とを含むことを特徴とするゲートネットリスト自動検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高位合成装置、自動高位合成方法、高位合成プログラム及び自動高位合成方法を用いたゲートネットリスト自動検証方法に関する。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ）の開発において、開発期間短縮のために、特にレイアウトデータ作成段階以降で論理動作の変更を行う場合に、ゲートネットリストを変更することで対応する場合がある。ゲートネットリストの変更だけでＬＳＩの論理動作を変更することを配線エンジニアリングチェンジオーダー（以下において、「配線ＥＣＯ」という。）と呼んでいる。
【０００３】
ところで、従来のＬＳＩの開発では、レジスタ転送レベル記述（以下において、「ＲＴＬ記述」という。）から論理合成によってＬＳＩのゲートネットリストを作成する。そのため、ＲＴＬ記述を利用して、配線ＥＣＯの実行結果を検証することができる（例えば、非特許文献１参照。）。以下に、ＲＴＬ記述を利用した配線ＥＣＯの実行結果の検証手順の例を示す。
【０００４】
（ア）配線ＥＣＯフローＡ
（１Ａ）論理動作の変更部分に対応する部分のＲＴＬ記述を変更する。
【０００５】
（２Ａ）手順１Ａで変更したＲＴＬ記述の部分に対応する部分のゲートネットリストを変更する。
【０００６】
（３Ａ）手順１Ａで変更したＲＴＬ記述の論理動作を検証する。
【０００７】
（４Ａ）手順２Ａで変更したゲートネットリストの論理動作を検証する。
【０００８】
手順４Ａの代わりに、手順１Ａで変更したＲＴＬ記述と手順２Ａで変更したゲートネットリストとの等価検証を行ってもよい。「等価検証」は、ＲＴＬ記述に記述された論理動作と、ゲートネットリストで実現される論理動作が等価であるか否かの検証である。ＲＴＬ記述とゲートネットリストでは、レジスタレベルで1対1の対応をとることが容易である。そのため、手順２Ａにおけるゲートネットリストの抽出に要する時間の増大が問題になることは少ない。
【０００９】
近年、高位合成技術が実用的なものになり、ＬＳＩの開発効率化のためにＣ言語等で記述された動作記述に基づきＲＴＬ記述を自動高位合成する場合が多くなっている。自動高位合成を利用したＬＳＩの開発においても、配線ＥＣＯを容易に行えることが重要である。ただし、自動高位合成で生成されたＲＴＬ記述は可読性が低く、配線ＥＣＯフローＡにおける手順１Ａ、２Ａの処理が困難になるという問題がある。
【００１０】
解決策として、動作記述において配線ＥＣＯを行う方法が考えられる。動作記述において配線ＥＣＯを行う方法の手順は以下のようになる。
【００１１】
（イ）配線ＥＣＯフローＢ
（１Ｂ）論理動作の変更部分に対応する部分の動作記述を変更する。
【００１２】
（２Ｂ）手順１Ｂで変更された動作記述を高位合成して、論理動作変更後のＲＴＬ記述を生成する。
【００１３】
（３Ｂ）手順１Ｂで変更した動作記述に対応する部分のゲートネットリストを変更する。
【００１４】
（４Ｂ）手順１Ｂで変更された動作記述或いは手順２Ｂで生成されたＲＴＬ記述の少なくとも一方の論理動作を検証する。
【００１５】
（５Ｂ）手順３Ｂで変更されたゲートネットリストの論理動作を検証する。
【００１６】
手順５Ｂの代わりに、手順２Ｂで生成されたＲＴＬ記述と手順３Ｂで変更したゲートネットリストとの等価検証を行ってもよい。
【００１７】
配線ＥＣＯフローＢでは、配線ＥＣＯフローＡの手順１ＡにおけるＲＴＬ記述の変更を、手順２Ｂにおける高位合成によって行うことになる。しかし、動作記述の変更が小さい場合でも、ＲＴＬ記述が大きく変更される可能性がある。そのため、配線ＥＣＯフローＢの手順３Ｂが困難になり、ＲＴＬ記述とゲートネットリストの等価検証が正しく行えない場合がある。等価検証が正しく行えない場合、ＲＴＬ記述の検証に比べて検証時間が長いゲートネットリストの検証を省略することができない。その結果、論理動作の変更に伴うＬＳＩの開発期間が増大する。
【非特許文献１】スティーブ・ゴルソン(Steve Golson)著、「ヒューマンＥＣＯコンパイラ（The Human ECO Compiler)」、[online]、２００４年、トリロバイト・システムズ（Trilobyte Systems）、［平成１７年６月２８日検索］、インターネット<URL:http://www.trilobyte.com/pdf/golson_snug04.pdf>
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明は、論理動作の変更に伴うＬＳＩの開発期間の増大を抑制できる高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法を提供する。
【課題を解決するための手段】
【００１９】
本願発明の一態様によれば、（イ）第１の動作記述と第２の動作記述との差分情報を抽出する抽出部と、（ロ）差分情報を格納する差分情報記憶領域と、（ハ）第１の動作記述から第１のレジスタ転送レベル記述を生成しながら、第１の動作記述と第１のレジスタ転送レベル記述の対応情報を生成する第１生成部と、（ニ）差分情報を差分情報記憶領域から読み出し、対応情報に基づき第１のレジスタ転送レベル記述を変更して、第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成する第２生成部とを備える高位合成装置が提供される。
【００２０】
本願発明の他の態様によれば、抽出部、第１生成部、第２生成部、差分情報記憶領域、第１ＲＴＬ記憶領域及び対応情報記憶領域を備える高位合成装置を用いる自動高位合成方法において、（イ）抽出部が、第１の動作記述と第２の動作記述との差分情報を抽出し、その差分情報を差分情報記憶領域に格納するステップと、（ロ）第１生成部が、第１の動作記述から第１のレジスタ転送レベル記述を生成しながら、第１の動作記述と第１のレジスタ転送レベル記述の対応情報を生成し、第１のレジスタ転送レベル記述及び対応情報をそれぞれ第１ＲＴＬ記憶領域及び対応情報記憶領域に格納するステップと、（ハ）第２生成部が、差分情報記憶領域及び対応情報記憶領域からそれぞれ読み出した差分情報及び対応情報に基づき第１ＲＴＬ記憶領域から読み出した第１のレジスタ転送レベル記述を変更して、第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成するステップとを含む自動高位合成方法が提供される。
【００２１】
本願発明の更に他の態様によれば、（イ）高位合成装置の抽出部に、第１の動作記述と第２の動作記述との差分情報を抽出させ、その差分情報を差分情報記憶領域に格納させる命令と、（ロ）高位合成装置の第１生成部に、第１の動作記述から第１のレジスタ転送レベル記述を生成させながら、第１の動作記述と第１のレジスタ転送レベル記述との対応情報を生成させ、第１のレジスタ転送レベル記述及び対応情報をそれぞれ第１ＲＴＬ記憶領域及び対応情報記憶領域に格納させる命令と、（ハ）高位合成装置の第２生成部に、差分情報記憶領域及び対応情報記憶領域からそれぞれ読み出した差分情報及び対応情報に基づき第１ＲＴＬ記憶領域から読み出した第１のレジスタ転送レベル記述を変更して、第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成させる命令とを実行させるための高位合成プログラムが提供される。
【００２２】
本願発明の更に他の態様によれば、高位合成装置、論理動作検証部、等価検証部、動作記述記憶領域、第２ＲＴＬ記憶領域及びゲートネットリスト記憶領域を備えるゲートネットリスト検証装置を用いるゲートネットリスト自動検証方法において、（イ）高位合成装置が、第１の論理動作が記述された第１の動作記述及び第２の論理動作が記述された第２の動作記述を動作記述記憶領域から読み出し、第１の動作記述から第１のレジスタ転送レベル記述を生成しながら第１の動作記述と第１のレジスタ転送レベル記述の対応情報を生成し、第１の動作記述と第２の動作記述との差分情報及び対応情報に基づき第１のレジスタ転送レベル記述を変更して第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成し、第２ＲＴＬ記憶領域に格納するステップと、（ロ）論理動作検証部が、第２のレジスタ転送レベル記述を第２ＲＴＬ記憶領域から読み出し、第２のレジスタ転送レベル記述の論理動作を検証するステップと、（ハ）等価検証部が、第２のレジスタ転送レベル記述及び第２の論理動作を実現する第２のゲートネットリストを第２ＲＴＬ記憶領域及びゲートネットリスト記憶領域からそれぞれ読み出し、第２のレジスタ転送レベル記述と第２のゲートネットリストの論理動作が等価であるか否かを検証するステップとを含むゲートネットリスト自動検証方法が提供される。
【発明の効果】
【００２３】
本発明によれば、論理動作の変更に伴うＬＳＩの開発期間の増大を抑制する高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法を提供できる。
【発明を実施するための最良の形態】
【００２４】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００２５】
本発明の実施の形態に係る高位合成装置は、図１に示すように、第１の動作記述と第２の動作記述との差分情報を抽出する抽出部１１と、差分情報を格納する差分情報記憶領域２０３と、第１の動作記述から第１のレジスタ転送レベル記述を生成しながら、第１の動作記述と第１のレジスタ転送レベル記述の対応情報を生成する第１生成部１２と、差分情報を差分情報記憶領域２０３から読み出し、対応情報に基づき第１のレジスタ転送レベル記述を変更して、第２の動作記述と論理動作が等価な第２のレジスタ転送レベル記述を生成する第２生成部１３とを備える。
【００２６】
「差分情報」は、第１の動作記述中の記述と第２の動作記述中の記述との差についての情報である。例えば、論理動作を変更した場合の、変更前の第１の動作記述と変更後の第２の動作記述とで互いに異なる記述、及び異なる記述の行番号等である。又、「対応情報」は、第１の動作記述中の論理動作の記述箇所と、その論理動作に対応する第１のＲＴＬ記述中の論理動作の記述箇所との対応を示す情報である。
【００２７】
第２生成部１３は、検出部１３１、差分ＲＴＬ生成部１３２及びマージ部１３３を備える。検出部１３１は、差分情報及び対応情報に基づき、第１の動作記述と第２の動作記述との差分に相当する第１のＲＴＬ記述の変更が必要な箇所を検出して、変更箇所情報を作成する。差分ＲＴＬ生成部１３２は、差分情報及び変更箇所情報から差分ＲＴＬ記述を生成する。例えば、第２の動作記述が第１の動作記述の一部を変更した動作記述である場合、差分ＲＴＬ生成部１３２は、変更された動作記述箇所の論理動作を実行する差分ＲＴＬ記述を生成する。マージ部１３３は、第１のＲＴＬ記述と差分ＲＴＬ記述をマージして、第２のＲＴＬ記述を生成する。
【００２８】
図１に示すように、抽出部１１、第１生成部１２及び第２生成部１３は、中央演算処理装置（ＣＰＵ）１０に含まれる。更に、図１に示す高位合成装置は、記憶装置２０、入力装置３０及び出力装置４０を備える。
【００２９】
記憶装置２０は、第１動作記述記憶領域２０１、第２動作記述記憶領域２０２、差分情報記憶領域２０３、第１ＲＴＬ記憶領域２０４、第２ＲＴＬ記憶領域２０５、差分ＲＴＬ記憶領域２０６、対応情報記憶領域２０７及び変更箇所情報記憶領域２０８を備える。第１動作記述記憶領域２０１は、第１の動作記述を格納する。第２動作記述記憶領域２０２は、第２の動作記述を格納する。差分情報記憶領域２０３は、第１の動作記述と第２の動作記述の差分情報を格納する。第１ＲＴＬ記憶領域２０４は、第１の動作記述から生成される第１のＲＴＬ記述を格納する。第２ＲＴＬ記憶領域２０５は、第２の動作記述から生成される第２のＲＴＬ記述を格納する。差分ＲＴＬ記憶領域２０６は、差分情報から生成される差分ＲＴＬ記述を格納する。対応情報記憶領域２０７は、第１の動作記述と第１のＲＴＬ記述との対応情報を格納する。変更箇所情報記憶領域２０８は、第１のＲＴＬ記述の変更が必要な箇所の情報を格納する。
【００３０】
入力装置３０はキーボード、マウス、ライトペン又はフレキシブルディスク装置等で構成される。入力装置３０より高位合成実行者は、入力する動作記述を指定したり、動作記述を変更することができる。又、出力装置４０としては、高位合成結果を表示するディスプレイやプリンタ、或いはコンピュータ読み取り可能な記録媒体に保存する記録装置等が使用可能である。ここで、「コンピュータ読み取り可能な記録媒体」とは、例えばコンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープ等の電子データを記録することができるような媒体等を意味する。具体的には、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯディスク等が「コンピュータ読み取り可能な記録媒体」に含まれる。
【００３１】
以下に、図１に示した高位合成装置により高位合成を行う方法の例を、図２に示すフローチャートを用いて説明する。以下では、図３に示す第１の動作記述に記述された第１の論理動作を、図４に示す第２の動作記述に記述された第２の論理動作に変更するために、第２の論理動作を実現するＲＴＬ記述を作成する例を説明する。尚、図３及び図４は、説明を分かりやすくするために実際に使用される動作記述の一部を示しており、文法的には不完全な動作記述である（以下において同様）。
【００３２】
図３に示したように、第１の動作記述は、入力ａ１と入力ｂ１のＡＮＤ演算、入力ａ２と入力ｂ２のＡＮＤ演算、及び入力ａ３と入力ｂ３のＡＮＤ演算を含む。一方、図４に示すように、第２の論理動作では、第１の論理動作における入力ａ１と入力ｂ１のＡＮＤ演算の代わりに、入力ａ１と入力ｂ１のＯＲ演算が行われる。つまり、第２の動作記述では、第１の動作記述の入力ａ１と入力ｂ１を用いる演算がＡＮＤ演算からＯＲ演算に変更されている。
【００３３】
（イ）図２のステップＳ１１において、図１に示す入力装置３０を介して、図３に示した第１の動作記述及び図４に示した第２の動作記述が入力され、第１動作記述記憶領域２０１及び第２動作記述記憶領域２０２にそれぞれ格納される。
【００３４】
（ロ）ステップＳ１２において、抽出部１１が第１及び第２の動作記述を第１動作記述記憶領域２０１及び第２動作記述記憶領域２０２からそれぞれ読み出す。そして、抽出部１１は、第１動作記述と第２の動作記述との差分情報を抽出する。図５に差分情報を示す。図５に示すように、第１の動作記述の行番号１０１と第２の動作記述の行番号２０１が差分情報として抽出される。抽出された差分情報は、差分情報記憶領域２０３に格納される。例えば、第１及び第２の動作記述がＣ言語で記述されている場合、「ｄｉｆｆ」コマンド等を使用して差分情報を抽出することができる。
【００３５】
（ハ）ステップＳ１３において、第１生成部１２が第１の動作記述を第１動作記述記憶領域２０１から読み出す。そして、第１生成部１２は、第１の動作記述から第１のＲＴＬ記述を生成する。図６に第１のＲＴＬ記述の例を示す。図６に示した第１のＲＴＬ記述では、条件（１）の場合に入力ａ１、ｂ１のＡＮＤ演算が行われ、条件（２）の場合に入力ａ２、ｂ２のＡＮＤ演算或いは入力ａ３、ｂ３ＡＮＤ演算が行われる。ＡＮＤ演算結果は、他の演算器に入力したり、メモリ、レジスタ等の記憶装置に格納される。図６は、ＡＮＤ演算結果がレジスタに格納される例を示す。尚、図６は、説明を分かりやすくするために実際に生成されるＲＴＬ記述の一部を示しており、文法的には不完全なＲＴＬ記述である（以下において同様）。生成された第１のＲＴＬ記述は、第１ＲＴＬ記憶領域２０４に格納される。又、第１生成部１２は、第１のＲＴＬ記述を生成しながら、第１の動作記述と第１のＲＴＬ記述との対応情報を生成する。図７に生成される対応情報を示す。図７に示すように、例えば第１の動作記述の行番号１０１に対応する第１のＲＴＬ記述は、行番号１１〜１４及び条件１である。生成された対応情報は、対応情報記憶領域２０７に格納される。
【００３６】
（ニ）ステップＳ１４において、第２生成部１３が差分情報を差分情報記憶領域２０３から、対応情報を対応情報記憶領域２０７から、第１のＲＴＬ記述を第１ＲＴＬ記憶領域２０４からそれぞれ読み出す。そして、第２生成部１３は、後述するように、差分情報及び対応情報に基づき第１のＲＴＬ記述を変更して、第２の動作記述と論理動作が等価な第２のＲＴＬ記述を生成する。生成された第２のＲＴＬ記述は第２ＲＴＬ記憶領域２０５に格納される。第２ＲＴＬ記憶領域２０５に格納され第２のＲＴＬ記述は、出力装置４０を介して高位合成装置の外部に出力することができる。
【００３７】
以下に、ステップＳ１４における第２のＲＴＬ記述を生成する方法の例を説明する。
【００３８】
（イ）ステップＳ１４１において、検出部１３１が、差分情報及び対応情報に基づき、論理動作の変更に伴って第１のＲＴＬ記述の変更が必要な箇所を検出して、変更箇所情報を作成する。対応情報を利用して、第１の動作記述中の記述に相当する第１のＲＴＬ記述中の記述を特定することが可能である。図８に示すように、変更箇所情報として第１のＲＴＬ記述の行番号１４が検出される。つまり、論理動作の変更に伴い、差分情報として抽出された記述とともに、第１のＲＴＬ記述の行番号１４を変更する必要がある。生成された変更箇所情報は変更箇所情報記憶領域２０８に格納される。
【００３９】
（ロ）ステップＳ１４２において、差分ＲＴＬ生成部１３２が、差分情報及び更箇所情報から差分ＲＴＬ記述を生成する。図９に差分ＲＴＬ記述を示す。図９に示すように、差分ＲＴＬ記述に、入力ａ１と入力ｂ１のＯＲ演算（行番号１５）、ＯＲ演算の結果とＡＮＤ演算の結果の選択（行番号１６）、及び選択された結果のレジスタへの格納（行番号１７）が記述される。生成された差分ＲＴＬ記述は差分ＲＴＬ記憶領域２０６に格納される。
【００４０】
（ハ）次いで、ステップＳ１４３において、マージ部１３３が、差分情報及び変更箇所情報を参照しながら、第１のＲＴＬ記述と差分ＲＴＬ記述をマージして、第２のＲＴＬ記述を作成する。つまり、第１のＲＴＬ記述中の差分情報及び変更箇所情報に該当する記述が差分ＲＴＬ記述と置き換えられ、或いは追加されて、第２のＲＴＬ記述が生成される。図１０に、図６に示した第１のＲＴＬ記述と図９に示した差分ＲＴＬ記述をマージして生成された第２のＲＴＬ記述を示す。
【００４１】
一般に、自動高位合成によってレジスタの共有等が行われる。そのため、変更後の動作記述から自動高位合成によって生成されたＲＴＬ記述は、動作記述の変更箇所が少ない場合でも、変更前の動作記述から生成されたＲＴＬ記述と大きく異なる場合が多い。
【００４２】
しかし、図２に示した自動高位合成方法では、動作記述の変更箇所に相当するＲＴＬ記述の記述のみを差分ＲＴＬ記述として自動高位合成により生成する。更に、上記で説明したように、第１の動作記述と第１のＲＴＬ記述との対応情報が生成される。対応情報を利用することにより、図３に示した第１の論理動作を図４に示した第２の論理動作に変更するために第１のＲＴＬ記述において変更が必要な記述箇所を、容易に特定することできる。そして、差分ＲＴＬ記述を用いて第１のＲＴＬ記述を変更することにより、変更した動作記述全体に基づいて新たにＲＴＬ記述を生成する場合に比べて、第１のＲＴＬ記述からの変更部分が少ない第２のＲＴＬ記述を生成することができる。
【００４３】
図１１に、図６に示した第１のＲＴＬ記述に記述された論理回路（以下において、「第１ＲＴＬ回路」という。）の例を示す。図１１に示すように、入力ａ１〜ａ３がセレクタＬ１に入力する。入力ｂ１〜ｂ３がセレクタＬ２に入力する。セレクタＬ１、Ｌ２の出力ａ、ｂがＡＮＤ回路Ｌ３に入力する。そして、ＡＮＤ回路Ｌ３の出力ｃが、レジスタＬ４に格納される。
【００４４】
図１２に、図１０に示した第２のＲＴＬ記述に記述された論理回路（以下において、「第２ＲＴＬ回路」という。）の例を示す。第２ＲＴＬ回路は、ＯＲ回路Ｌ５とセレクタＬ６を更に備える点が、第１ＲＴＬ回路と異なる。図７において、破線で示した回路ブロック及び配線は、論理変更に伴って追加された回路ブロック及び配線を示す。そして、セレクタＬ１、Ｌ２の出力がＯＲ回路Ｌ５に入力し、ＡＮＤ回路Ｌ３の出力ｃとＯＲ回路Ｌ５の出力ｄがセレクタＬ６に入力し、セレクタＬ６の出力ｅがレジスタＬ４に格納される。セレクタＬ６は、セレクタＬ１、Ｌ２が入力ａ１、ｂ１をそれぞれ選択した場合にＯＲ回路Ｌ５の出力ｄを選択する。又、セレクタＬ６は、セレクタＬ１、Ｌ２が入力ａ２、ｂ２をそれぞれ選択した場合、或いは入力ａ３、ｂ３をそれぞれ選択した場合に、ＡＮＤ回路Ｌ３の出力ｃを選択する。
【００４５】
以上に説明したように、図２に示した自動高位合成方法によれば、第１のＲＴＬ記述に対する第２のＲＴＬ記述の変更箇所の特定が容易である。又、第２のＲＴＬ記述の変更箇所に基づき、論理変更に対応して第１のＲＴＬ記述から生成されたゲートネットリスト（以下において、「第１のゲートネットリスト」という。）の変更が必要な箇所を特定することが容易である。つまり、論理動作の変更に対応して動作記述を変更した場合に、動作記述の変更に対応した配線ＥＣＯを行うことができる。
【００４６】
その結果、第２のＲＴＬ記述と、配線ＥＣＯによって第１のゲートネットリストを変更して作成された第２のゲートネットリストとの等価検証を行うことができる。第２のＲＴＬ記述の論理動作を検証し、第２のＲＴＬ記述と第２のゲートネットリストとの等価検証を行うことにより、第２のゲートネットリストの論理動作を検証できる。つまり、ＬＳＩの開発において、ＲＴＬ記述の検証に比べて検証時間が長いゲートネットリストの検証を省略することができる。その結果、論理動作の変更に伴うＬＳＩの開発期間の増大を抑制することができる。
【００４７】
以下に、図２に示した自動高位合成方法により、ゲートネットリストの論理動作を検証する方法の例を説明する。
【００４８】
第２のゲートネットリストの論理動作の検証は、例えば図１３に示すゲートネットリスト検証装置で実行可能である。図１３に示したゲートネットリスト検証装置は、高位合成装置１、ゲートネットリスト変更部２、動作記述変更部３、論理動作検証部４、等価検証部５、記憶装置６、入力装置７及び出力装置８を備える。
【００４９】
ゲートネットリスト変更部２は、第１の論理動作を実現する第１のゲートネットリストを変更して、第２の論理動作を実現する第２のゲートネットリストを作成する。動作記述変更部３は、第１の論理動作が記述された第１の動作記述を変更して、第２の論理動作が記述された第２の動作記述を作成する。高位合成装置１は、図２で説明した方法と同様にして、第２のＲＴＬ記述を生成する。論理動作検証部４は、第２のＲＴＬ記述の論理動作を検証する。等価検証部５は、第２のＲＴＬ記述と第２のゲートネットリストの論理動作が等価であるか否かを検証する。
【００５０】
記憶装置６は、ゲートネットリスト記憶領域６１及び動作記述記憶領域６２を備える。ゲートネットリスト記憶領域６１は、第１及び第２のゲートネットリストを格納する。動作記述記憶領域６２は、第１及び第２の動作記述を格納する。
【００５１】
入力装置７を介して、ゲートネットリスト検証者は第１のゲートネットリストや変更内容を指定できる。出力装置８を介して、ゲートネットリスト検証者は検証結果を確認することができる。
【００５２】
高位合成装置１、ゲートネットリスト変更部２、動作記述変更部３、論理動作検証部４、等価検証部５、記憶装置６、入力装置７及び出力装置８は、バス９に接続される。バス９を介して、データ等が転送される。
【００５３】
図１３に示したゲートネットリスト検証装置により、ゲートネットリストを変更する方法の例を、図１４に示すフローチャートを用いて説明する。
【００５４】
（イ）ステップＳ２１において、動作記述変更部３が動作記述記憶領域６２に格納された第１の論理動作が記述された第１の動作記述を読み出す。動作記述変更部３は、第１の動作記述を変更して、第２の論理動作が記述された第２の動作記述を作成する。作成された第２の動作記述は、動作記述記憶領域６２に格納される。
【００５５】
（ロ）ステップＳ２２において、図２に示した方法により、高位合成装置１が第２のＲＴＬ記述を生成する。即ち、第１の動作記述と第１のＲＴＬ記述との対応情報を参照しながら、第１の動作記述と第２の動作記述との差分情報と第１のＲＴＬ記述に基づき、第２のＲＴＬ記述を生成する。生成された第２のＲＴＬ記述は、図１に示した第２ＲＴＬ記憶領域２０５に格納される。
【００５６】
（ハ）ステップＳ２３において、図１３に示した論理動作検証部４が、図１に示した第２ＲＴＬ記憶領域２０５から第２のＲＴＬ記述を読み出す。論理動作検証部４は第２のＲＴＬ記述の論理動作を検証する。
【００５７】
（ニ）ステップＳ２４において、ゲートネットリスト変更部２がゲートネットリスト記憶領域６１に格納された第１の論理動作を実現する第１のゲートネットリストを読み出す。ゲートネットリスト変更部２は、第１のゲートネットリストを変更して、第２の論理動作を実現する第２のゲートネットリストを作成する。具体的には、ゲートネットリスト変更部２は、ステップＳ２２において生成される差分ＲＴＬ記述を参照することにより、第１のＲＴＬ記述に対する第２のＲＴＬ記述の変更内容に応じて、第１のゲートネットリストを変更して第２のゲートネットリストを作成する。作成された第２のゲートネットリストは、ゲートネットリスト記憶領域６１に格納される。
【００５８】
（ホ）ステップＳ２５において、等価検証部５が、第２のＲＴＬ記述及び第２のゲートネットリストを、図１に示した第２ＲＴＬ記憶領域２０５及び図１３に示したゲートネットリスト記憶領域６１からそれぞれ読み出す。等価検証部５は、第２のＲＴＬ記述と第２のゲートネットリストとの等価検証を行う。
【００５９】
ステップＳ２３において第２のＲＴＬ記述の論理動作を検証し、ステップＳ２５において第２のＲＴＬ記述と第２のゲートネットリストが等価であることを検証することにより、第２のゲートネットリストの論理動作が検証される。
【００６０】
上記の説明では、第２のゲートネットリスト及び第２の動作記述を図１３に示したゲートネットリスト検証装置を用いて作成した。ただし、第２のゲートネットリスト及び第２の動作記述を手動により作成しても良い。手動で作成された第２のゲートネットリスト及び第２の動作記述は、入力装置７を介して、ゲートネットリスト記憶領域６１及び動作記述記憶領域６２にそれぞれ格納される。
【００６１】
次に、図２に示した自動高位合成方法によって、演算の種類の変更に対応して第２のＲＴＬ記述を生成する他の例を、図１５〜図２３に示す。
【００６２】
図１５に、第１の動作記述の例を示す。ここで、図１５に示した第１の動作記述では、ＡＮＤ演算の結果が２つのレジスタにそれぞれ出力されるとする。図１６に、図１５に示した第１の動作記述から生成される第１のＲＴＬ記述を示す。図１６の行番号１３における演算結果が、行番号１４、１５においてレジスタにそれぞれ格納される。
【００６３】
図１７に、図１６に示した第１のＲＴＬ記述に記述された第１ＲＴＬ回路を示す。図１７に示したレジスタＬ１４、Ｌ１５は、図１６の行番号１３、１４にそれぞれ記述された演算器「ｒ＿ｒｅｇ１」、「ｒ＿ｒｅｇ２」に対応する。セレクタＬ１１、Ｌ１２が入力ａ３、ｂ３をそれぞれ選択した場合に、ＡＮＤ回路Ｌ１３の出力ｃがレジスタＬ１４に入力する。セレクタＬ１１、Ｌ１２が入力ａ２、ｂ２をそれぞれ選択した場合、或いは入力ａ１、ｂ１をそれぞれ選択した場合に、ＡＮＤ回路Ｌ１３の出力ｃはレジスタＬ１５に入力する。
【００６４】
図１８に、図１５に示した第１の動作記述を変更した第２の動作記述を示す。図１８に示した第２の動作記述では、第１の動作記述の入力ａ１と入力ｂ１を用いた演算がＡＮＤ演算からＯＲ演算に変更されている。
【００６５】
図１９に、図１５に示した第１の動作記述と図１８に示した第２の動作記述の差分情報を示す。図２０に、図１５に示した第１の動作記述と図１６に示した第１のＲＴＬ記述との対応情報を示す。図２１に、差分情報及び対応情報に基づき検出された変更箇所情報を示す。図２１に示すように、変更箇所情報として第１のＲＴＬ記述の行番号１５が検出される。
【００６６】
図２２に、差分ＲＴＬ生成部１３２が、図１９に示した差分情報び図２１に示した変更箇所情報から生成した差分ＲＴＬ記述を示す。図２３に、マージ部１３３が生成した第２のＲＴＬ記述を示す。
【００６７】
図２４に、図２３に示した第２のＲＴＬ記述に記述された第２ＲＴＬ回路を示す。図２４において、破線で示した回路ブロック及び配線は、論理変更に伴って追加された回路ブロック及び配線を示す。動作記述の変更部分の演算を行うためのＯＲ回路Ｌ１６が追加され、セレクタＬ１１の出力ａ及びセレクタＬ１２の出力ｂがＯＲ回路Ｌ１６に入力する。更に、ＡＮＤ回路Ｌ１３の出力ｃ及びＯＲ回路Ｌ１６の出力ｄが入力するセレクタＬ１７が追加されている。ＯＲ回路Ｌ１６は、入力ａ１と入力ｂ１のＯＲ演算を行う。セレクタＬ１７の出力ｅは、レジスタＬ１５に入力する。セレクタＬ１７は、セレクタＬ１、Ｌ２が入力ａ１、ｂ１をそれぞれ選択した場合にＯＲ回路Ｌ１６の出力ｄを選択する。又、セレクタＬ１７は、セレクタＬ１、Ｌ２が入力ａ２、ｂ２をそれぞれ選択した場合にＡＮＤ回路Ｌ１３の出力ｃを選択する。
【００６８】
次に、図２に示した自動高位合成方法によって、動作記述に記述された演算の入力数の変更に対応して、第２のＲＴＬ記述を生成する例を図２５〜図３３を用いて説明する。
【００６９】
図２５に、第１の動作記述の例を示す。図２５に示した第１の動作記述に記述されたＡＮＤ演算は、２入力のＡＮＤ演算である。図２６に、図２５に示した第１の動作記述から生成される第１のＲＴＬ記述を示す。図２７に、図２６に示した第１のＲＴＬ記述に記述された第１ＲＴＬ回路を示す。図２７に示したＡＮＤ回路Ｌ２３は、２入力のＡＮＤ回路である。
【００７０】
図２８に、図２７に示した第１の動作記述を変更した第２の動作記述を示す。図２８に示した第２の動作記述では、第１の動作記述の入力ａ１及び入力ｂ１のＡＮＤ演算が、入力ａ１、入力ｂ１及び入力ｃ１のＡＮＤ演算に変更されている。
【００７１】
図２９に、図２５に示した第１の動作記述と図２８に示した第２の動作記述の差分情報を示す。図３０に、図２５に示した第１の動作記述と図２６に示した第１のＲＴＬ記述との対応情報を示す。図３１に、差分情報及び対応情報に基づき検出された変更箇所情報を示す。図３１に示すように、変更箇所情報として第１のＲＴＬ記述の行番号１４が検出される。
【００７２】
図３２に、差分ＲＴＬ生成部１３２が、図２９に示した差分情報び図３１に示した変更箇所情報から生成した差分ＲＴＬ記述を示す。図３３に、マージ部１３３が生成した第２のＲＴＬ記述を示す。
【００７３】
図３４に、図３３に示した第２のＲＴＬ記述に記述された第２ＲＴＬ回路を示す。図３４において、破線で示した回路ブロック及び配線は、論理変更に伴って追加された回路ブロック及び配線を示す。動作記述の変更部分の演算を行うための３入力のＡＮＤ回路Ｌ２５が追加され、セレクタＬ２１、Ｌ２２の出力がＡＮＤ回路Ｌ２３に入力する。更に、ＡＮＤ回路Ｌ２３の出力及びＡＮＤ回路Ｌ２５の出力が入力するセレクタＬ２６が追加されている。セレクタＬ２６の出力は、レジスタＬ２４に入力する。ＡＮＤ回路Ｌ２５は、入力ａ１、入力ｂ１及び入力ｃ１のＡＮＤ演算を行う。セレクタＬ２６は、セレクタＬ２１、Ｌ２２が入力ａ２、ｂ２をそれぞれ選択した場合、或いは入力ａ３、ｂ３をそれぞれ選択した場合にＡＮＤ回路Ｌ２３の出力ｃを選択する。又、セレクタＬ２６は、セレクタＬ２１、Ｌ２２が入力ａ１、ｂ１をそれぞれ選択した場合にＡＮＤ回路Ｌ２５の出力ｄを選択する。
【００７４】
ところで、自動高位合成によって変更後の動作記述全体に基づきＲＴＬ記述を生成した場合、変更部分の動作記述に記述された演算と、変更前の動作記述に記述された演算が演算器を共有する可能性がある。そのため、既に述べたように、動作記述を変更した後に自動高位合成によって生成されたＲＴＬ記述は、変更前の動作記述に基づき生成されたＲＴＬ記述と大きく異なる場合が多い。例えば、図４に示した動作記述が第２の動作記述の一部である場合に、変更部分である図４の動作記述に記述されたＯＲ論理と、図示されていない他のＯＲ論理が演算器（ＯＲ回路）を共有する可能性がある。その場合、演算器の入力を選択するセレクタ回路を制御する信号が、変更前と変更後で大幅に異なり、配線ＥＣＯによるゲートネットリストの修正が困難である。つまり、動作記述の変更箇所に対応したゲートネットリストの変更箇所を特定することが困難である。その結果、第２のＲＴＬ記述と第２のゲートネットリストとの等価検証を行うことができない。等価検証を行うことができない場合、第２のゲートネットリストの論理動作を検証する必要があるため、ＬＳＩの開発期間が増大する。
【００７５】
一方、本発明の実施の形態に係る自動高位合成方法では、論理動作の変更前の第１の動作記述と変更後の第２の動作記述の差分情報に基づき差分ＲＴＬ記述を作成する。そして、第１の動作記述に基づき生成される第１のＲＴＬ記述と差分ＲＴＬ記述をマージして第２のＲＴＬ記述を生成する。そのため、論理動作の変更に対応する第２のＲＴＬ記述の変更箇所を容易に特定することができる。その結果、動作記述の変更箇所に対応する第２のゲートネットリストを容易に生成することができる。したがって、第２のＲＴＬ記述と第２のゲートネットリストの形式検証が可能であり、論理動作の変更に伴うＬＳＩの開発期間の増大を抑制することができる。
【００７６】
図２に示した一連の高位合成方法操作は、図２と等価なアルゴリズムのプログラムにより、図１に示した高位合成装置を制御して実行できる。このプログラムは、図１に示した高位合成装置を構成する記憶装置２０に記憶させればよい。又、このプログラムは、コンピュータ読み取り可能な記録媒体に保存し、この記録媒体を図１に示した記憶装置２０に読み込ませることにより、本発明の一連の動作合成方法操作を実行することができる。
【００７７】
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。つまり、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施の形態に係る高位合成装置の構成例を示す模式図である。
【図２】本発明の実施の形態に係る自動高位合成方法を説明するためのフローチャートである。
【図３】本発明の実施の形態に係る第１の動作記述の例である。
【図４】本発明の実施の形態に係る第２の動作記述の例である。
【図５】本発明の実施の形態に係る差分情報の例である。
【図６】本発明の実施の形態に係る第１のＲＴＬ記述の例である。
【図７】本発明の実施の形態に係る対応情報の例である。
【図８】本発明の実施の形態に係る変更情報の例である。
【図９】本発明の実施の形態に係る差分ＲＴＬ記述の例である。
【図１０】本発明の実施の形態に係る第２のＲＴＬ記述の例である。
【図１１】本発明の実施の形態に係る第１のＲＴＬ回路の例である。
【図１２】本発明の実施の形態に係る第２のＲＴＬ回路の例である。
【図１３】本発明の実施の形態に係るゲートネットリスト検証装置の構成例を示す模式図である。
【図１４】本発明の実施の形態に係るゲートネットリスト変更方法を説明するためのフローチャートである。
【図１５】本発明の実施の形態に係る第１の動作記述の他の例である。
【図１６】本発明の実施の形態に係る第１のＲＴＬ記述の他の例である。
【図１７】本発明の実施の形態に係る第１のＲＴＬ回路の他の例である。
【図１８】本発明の実施の形態に係る第２の動作記述の他の例である。
【図１９】本発明の実施の形態に係る差分情報の他の例である。
【図２０】本発明の実施の形態に係る対応情報の他の例である。
【図２１】本発明の実施の形態に係る変更情報の他の例である。
【図２２】本発明の実施の形態に係る差分ＲＴＬ記述の他の例である。
【図２３】本発明の実施の形態に係る第２のＲＴＬ記述の他の例である。
【図２４】本発明の実施の形態に係る第２のＲＴＬ回路の他の例である。
【図２５】本発明の実施の形態に係る第１の動作記述の更に他の例である。
【図２６】本発明の実施の形態に係る第１のＲＴＬ記述の更に他の例である。
【図２７】本発明の実施の形態に係る第１のＲＴＬ回路の更に他の例である。
【図２８】本発明の実施の形態に係る第２の動作記述の更に他の例である。
【図２９】本発明の実施の形態に係る差分情報の更に他の例である。
【図３０】本発明の実施の形態に係る対応情報の更に他の例である。
【図３１】本発明の実施の形態に係る変更情報の更に他の例である。
【図３２】本発明の実施の形態に係る差分ＲＴＬ記述の更に他の例である。
【図３３】本発明の実施の形態に係る第２のＲＴＬ記述の更に他の例である。
【図３４】本発明の実施の形態に係る第２のＲＴＬ回路の更に他の例である。
【符号の説明】
【００７９】
１…高位合成装置
２…ゲートネットリスト変更部
３…動作記述変更部
４…論理動作検証部
５…等価検証部
１０…ＣＰＵ
１１…抽出部
１２…第１生成部
１３…第２生成部
６１…ゲートネットリスト記憶領域
６２…動作記述記憶領域
１３１…検出部
１３２…生成部
１３３…マージ部
２０１…第１動作記述記憶領域
２０２…第２動作記述記憶領域
２０３…差分情報記憶領域
２０４…第１ＲＴＬ記憶領域
２０５…第２ＲＴＬ記憶領域
２０６…差分ＲＴＬ記憶領域
２０７…対応情報記憶領域
２０８…変更箇所情報記憶領域
【図１】
2007034584.tif 000003
【図２】
2007034584.tif 000004
【図３】
2007034584.tif 000005
【図４】
2007034584.tif 000006
【図５】
2007034584.tif 000007
【図６】
2007034584.tif 000008
【図７】
2007034584.tif 000009
【図８】
2007034584.tif 000010
【図９】
2007034584.tif 000011
【図１０】
2007034584.tif 000012
【図１１】
2007034584.tif 000013
【図１２】
2007034584.tif 000014
【図１３】
2007034584.tif 000015
【図１４】
2007034584.tif 000016
【図１５】
2007034584.tif 000017
【図１６】
2007034584.tif 000018
【図１７】
2007034584.tif 000019
【図１８】
2007034584.tif 000020
【図１９】
2007034584.tif 000021
【図２０】
2007034584.tif 000022
【図２１】
2007034584.tif 000023
【図２２】
2007034584.tif 000024
【図２３】
2007034584.tif 000025
【図２４】
2007034584.tif 000026
【図２５】
2007034584.tif 000027
【図２６】
2007034584.tif 000028
【図２７】
2007034584.tif 000029
【図２８】
2007034584.tif 000030
【図２９】
2007034584.tif 000031
【図３０】
2007034584.tif 000032
【図３１】
2007034584.tif 000033
【図３２】
2007034584.tif 000034
【図３３】
2007034584.tif 000035
【図３４】
2007034584.tif 000036