(57)【特許請求の範囲】
【請求項１】
既存のゲートレベル論理回路と、修正されたＨＤＬ（Hardware Description Language）の記述とで論理的に異なる箇所を抽出する抽出手段と、
前記既存のゲートレベル論理回路と、前記修正されたＨＤＬ記述の各々の差分箇所を階層化する階層化手段と、
前記修正されたＨＤＬ記述の階層化箇所を論理合成してゲートレベル論理回路を生成する差分論理合成手段と、
該ゲートレベル論理回路と、前記既存のゲートレベル論理回路の階層化された差分箇所を差し替える差し替え手段とを備えることを特徴とする論理合成装置。
【請求項２】
前記階層化手段によって前記修正されたＨＤＬ記述の差分箇所を既存のゲートレベル論理回路で階層化する際、及び前記差し替え手段によって前記ゲートレベル論理回路を差し替える際に、実行スクリプトの生成を行う実行スクリプトの生成手段を備えることを特徴とする請求項１に記載の論理合成装置。
【請求項３】
既存のゲートレベル論理回路と、修正されたＨＤＬ（Hardware Description Language）の記述とで論理的に異なる箇所を抽出するステップと、
前記既存のゲートレベル論理回路と、前記修正されたＨＤＬ記述の各々の差分箇所を階層化するステップと、
前記修正されたＨＤＬ記述の階層化箇所を論理合成してゲートレベル論理回路を生成するステップと、
該ゲートレベル論理回路と、前記既存のゲートレベル論理回路の階層化された差分箇所を差し替えるステップとを備えることを特徴とする論理合成プログラム。
【請求項４】
前記修正されたＨＤＬ記述の差分箇所を既存のゲートレベル論理回路で階層化するステップ、及び前記ゲートレベル論理回路を差し替えるステップにおいて、実行スクリプトの生成を行うステップを備えることを特徴とする請求項３に記載の論理合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＤＬ（Hardware Description Language）を用いた論理合成装置に関し、特に、既存のＨＤＬから修正箇所を階層化したＨＤＬを自動生成する論理合成装置に関する。
【背景技術】
【０００２】
従来のＬＳＩの機能設計及び論理設計では、ＨＤＬであるVerilogＨＤＬ及びＶＨＤＬから論理合成ツールによりゲートレベル論理回路を自動生成する。このＨＤＬから論理合成ツールで自動生成されたゲートレベル論理回路については、論理等価性検証ツールにより、等価性の確認及び論理不一致箇所の特定を行う。
【０００３】
論理合成とは、ＨＤＬで書かれた機能記述と、目標とするタイミング、回路規模制約等の回路動作仕様から、ゲートの接続で表現されたゲートレベル論理回路を生成する技術である。また、論理等価性検証とは、検証対象であるＨＤＬとゲートレベル論理回路とを数式化して論理等価性を検証する技術である。
【０００４】
次に、VerilogＨＤＬの場合のＨＤＬの機能記述について、図６を参照しながら説明する。
【０００５】
図６は、ＨＤＬの階層構造を示す。ＴＯＰ階層２６が第２階層２７を包含し、また、第２階層２７が第３階層２８を包含し、上位階層が下位階層を包含する構成となっている。各階層は、moduleからendmoduleの間に下位階層の包含及び機能について記述する。moduleからendmoduleの間での機能を記述する場合には、always文及びassign文を用いる。これらalways文及びassign文がＨＤＬでの最小の機能記述となる。この論理合成が実施される単位は、入出力端子が明確になっているmoduleレベルで行われるため、ＴＯＰ、Sub2、Sub3及びSub4のmodule単位で実施される。
【０００６】
例えば、VerilogＨＤＬの場合のＨＤＬからの論理合成では、moduleが論理合成を実施する単位となる。ゲートレベル論理回路を自動生成した後、機能仕様の変更、テクノロジに存在する設計ルール違反等を要因としたゲートレベル論理回路の修正が必要となった場合には、ＨＤＬを修正して論理合成ツールでの再論理合成が実施される。ＨＤＬは、moduleによる階層構造となっているため、論理合成は、module単位で行われる。ＨＤＬ修正後の再論理合成は、すべてのＨＤＬで実施される場合もあるが、論理合成の実施時間短縮を図るため、修正箇所を包含したmoduleでの再論理合成で階層内のゲートレベル論理回路を自動生成する。そして、既存ゲートレベル論理回路で修正が必要となる階層内のゲートレベル論理回路との差し替えを行う。
【０００７】
次に、上述した論理合成ツールの処理フローについて、図７を参照しながら説明する。
【０００８】
論理合成ツールは、ＨＤＬ１の構文解析を行い、論理変換２９により数式化された内部フォーマット３０を生成し、内部フォーマット３０と、回路動作仕様３１及びテクノロジライブラリ３２を基に最適化３３を行い、ゲートレベル論理回路２を自動生成する。
【０００９】
また、論理変換処理は、図８に示すように、ＨＤＬ１の構文解析３４の後にテクノロジに依存しない内部フォーマット３０への変換を行う。
【００１０】
さらに、最適化処理は、図９に示すように、テクノロジライブラリ３２を用いて内部フォーマット３０からゲートレベル論理回路２へのマッピングを行う。また、回路規模及び遅延時間等の回路動作仕様３１を満たすゲートレベル論理回路２へのマッピングを行う。
【００１１】
次に、ＨＤＬと論理合成ツールで自動生成された回路が論理的に等価であるか否かの検証方法について、図１０を参照しながら説明する。
【００１２】
ゲートレベル論理回路２から順序回路であるＦＦ（フリップフロップ）で区切られた組み合わせ回路の箇所をロジックコーン３６として抽出する。ＨＤＬも同様にロジックコーン３６の抽出を行う。抽出されたロジックコーン３６を内部フォーマット化（数式化）３７した内部フォーマットに変換して論理的に等価である否かを確認する。
【００１３】
また、特許文献１乃至３には、ゲートレベル論理回路の修正時に実施する再論理合成の方法の一例が記載されている。さらに、特許文献４には、ＨＤＬとゲートレベル論理回路の論理等価性検証での差分比較方法の一例が記載されている。
【特許文献１】特開２００３−１９６３３５号公報
【特許文献２】特開２０００−２１５２１７号公報
【特許文献３】特開平１０−２６９２７１号公報
【特許文献４】特開２００３−０５８５９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上述した従来のＬＳＩの機能設計及び論理設計では、ＨＤＬから論理合成ツールによりゲートレベル論理回路を自動生成した後に、機能仕様の変更、テクノロジに依存する設計ルール違反等を要因としたゲートレベル論理回路の修正が必要となった場合には、ＨＤＬを修正後、論理合成ツールでの再論理合成を実施してゲートレベル論理回路を自動生成する。この再論理合成では、ＨＤＬの修正箇所を包含したentity及びmoduleが再論理合成を実施する最小単位となる。このentity及びmoduleには、修正を必要としない機能記述を含めて再論理合成を実施する。
【００１５】
再論理合成を実施した箇所については、再度、ＨＤＬとゲートレベル論理回路との論理等価性を論理等価検証ツールで確認する。再論理合成を実施するＨＤＬには、再論理合成前と論理の変更がない箇所が大半を占める場合があり、既にＨＤＬとゲートレベル論理回路の論理等価が確認できている箇所についても冗長に検証を実施することになる。近年のＬＳＩの大規模、高集積及び複雑化により、論理合成及び論理等価性検証の実施時間が増加する傾向にあり、再論理合成の実施箇所を極小化して論理合成及び論理等価性検証の実行時間を短縮する必要がある。
【００１６】
また、特許文献２及び特許文献３で開示されている既存のゲートレベル論理回路への修正手段では、修正前ＨＤＬと修正後ＨＤＬとで差分箇所を抽出し、差分箇所で構成するゲートレベル論理回路を生成して既存のゲートレベル論理回路に対して差分箇所を特定して差し替えを行っている。
【００１７】
しかし、従来は、ＨＤＬと既存のゲートレベル論理回路との差分箇所の抽出を行っていないため、図３に示す修正前後のＨＤＬから差分箇所の抽出により、２入力ＡＮＤ演算から２入力ＯＲ演算への変更で、図２の修正前後のゲートレベル論理回路のように、２入力ＡＮＤゲートから２入力ＯＲゲートへの差し替えのような、入力ピン及び出力ピンの構成が同一のゲートで差し替えるような単純なゲートレベル論理回路の修正の場合には、差分箇所の差し替えが可能であるが、図１１に示すような、修正前後のＨＤＬ３５、３６から抽出された差分箇所が入力ピン及び出力ピンが異なるゲートレベル論理回路で構成された場合には、既存のゲートレベル論理回路から差し替える箇所を特定することが困難となる場合があり、既存のゲートレベル論理回路への差分箇所の差し替えを実施できないという欠点がある。
【００１８】
さらに、ゲートレベル論理回路の修正の多くが、差分箇所が複雑なゲートレベル論理回路の場合や、論理合成で最適化された既存のゲートレベル論理回路に対して実施されるため、適切な差分箇所の抽出は、修正後ＨＤＬと既存のゲートレベル論理回路で実施する必要がある。
【００１９】
そこで、本発明は、上記従来の技術の問題点に鑑みてなされたものであって、再論理合成及び再論理等価検証の実行時間及び確認時間を短縮することが可能な論理合成装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、本発明は、論理合成装置であって、既存のゲートレベル論理回路と、修正されたＨＤＬの記述とで論理的に異なる箇所を抽出する抽出手段と、前記既存のゲートレベル論理回路と、前記修正されたＨＤＬ記述の各々の差分箇所を階層化する階層化手段と、前記修正されたＨＤＬ記述の階層化箇所を論理合成してゲートレベル論理回路を生成する差分論理合成手段と、該ゲートレベル論理回路と、前記既存のゲートレベル論理回路の階層化された差分箇所を差し替える差し替え手段とを備えることを特徴とする。
【００２４】
そして、本発明によれば、修正されたＨＤＬとゲートレベル論理回路との論理等価検証において、特定した差分箇所を包含する階層を自動生成することで、既存の論理合成実施単位に比べて回路規模の小さな単位で論理合成を実施することができるため、再論理合成及び再論理等価検証の実行時間及び確認時間を短縮することができる。
【００２５】
前記論理合成装置において、前記階層化手段によって前記修正されたＨＤＬ記述の差分箇所を既存のゲートレベル論理回路で階層化する際、及び前記差し替え手段によって前記ゲートレベル論理回路を差し替える際に、実行スクリプトの生成を行う実行スクリプトの生成手段を備えることができる。
【００２６】
さらに、本発明は、論理合成プログラムであって、既存のゲートレベル論理回路と、修正されたＨＤＬの記述とで論理的に異なる箇所を抽出するステップと、前記既存のゲートレベル論理回路と、前記修正されたＨＤＬ記述の各々の差分箇所を階層化するステップと、前記修正されたＨＤＬ記述の階層化箇所を論理合成してゲートレベル論理回路を生成するステップと、該ゲートレベル論理回路と、前記既存のゲートレベル論理回路の階層化された差分箇所を差し替えるステップとを備えることを特徴とする。
【００２７】
この論理合成プログラムを用いることにより、上述のように、既存の論理合成実施単位に比べて回路規模の小さな単位で論理合成を実施することができ、再論理合成及び再論理等価検証の実行時間及び確認時間を短縮することが可能となる。
【００２８】
前記論理合成プログラムにおいて、前記修正されたＨＤＬ記述の差分箇所を既存のゲートレベル論理回路で階層化するステップ、及び前記ゲートレベル論理回路を差し替えるステップにおいて、実行スクリプトの生成を行うステップを備えることができる。
【発明を実施するための最良の形態】
【００２９】
次に、本発明の実施の形態について図面を参照しながら説明する。尚、説明の便宜上、本実施の形態において、上述した従来の論理合成装置の構成要素に対応する構成要素には、同様の参照符号を使用する。
【００３０】
図１において、ＨＤＬ１は、修正されたＨＤＬであり、ゲートレベル論理回路２は、既存のゲートレベル論理回路である。ＨＤＬ１とゲートレベル論理回路２とで論理等価性検証を実施して差分箇所情報４を出力する論理等価性検証３には、論理等価性検証ツールを用いる。ＨＤＬ１から、差分箇所情報４を基に、差分箇所の階層記述化６により、差分箇所を階層記述化したＨＤＬ９を生成する。
【００３１】
また、ゲートレベル論理回路２についても、差分箇所情報４を基に差分箇所の階層構造化７により階層構造化したゲートレベル論理回路１０を生成する。ＨＤＬ９より階層化された差分箇所の差分論理合成１１を実施してゲートレベル論理回路１２を生成する。差分箇所差し替え１３により、差分箇所のゲートレベル論理回路１２をゲートレベル論理回路１０に組み込み、ゲートレベル論理回路１５を生成する。差分箇所の階層構造化７及び差分箇所差し替え１３には、論理合成ツールを用いる。
【００３２】
次に、本発明にかかる論理合成装置の動作について図１乃至図５を参照して詳細に説明する。
【００３３】
図２に示す修正前のゲートレベル論理回路１６は、図１のゲートレベル論理回路２に相当する。一方、修正後のゲートレベル論理回路１７は、図１のゲートレベル論理回路１５に相当する。図３の修正前のＨＤＬ１８を論理合成することで、図２の修正前ゲートレベル論理回路１６が生成される。修正後のＨＤＬ１９を論理合成することで図２の修正後ゲートレベル論理回路１７が生成される。図４に、図３の修正後ＨＤＬ１９から差分箇所を階層化したＨＤＬ９を生成する手順を示す。
【００３４】
図１に示すＨＤＬ１について、図３を参照して説明する。同図は、機能仕様等によりＨＤＬを修正して再論理合成を伴う回路変更となった場合の一例を示し、各ＨＤＬ内の下線箇所が修正箇所を示している。
【００３５】
同図の修正前ＨＤＬ１８から修正後ＨＤＬ１９への修正は、ファイルエディタ及びＥＤＡツールを用いて行う。図１に示すＨＤＬ１は、既存のゲートレベル論理回路２との差分箇所を検証するＨＤＬであり、図３の修正後ＨＤＬ１９がそれに該当する。
【００３６】
図５は、図１の差分箇所の階層構造化７で階層構造化されたゲートレベル回路を示す。図５に示す階層構造化２５の箇所が、図４の階層化ＨＤＬ２２を用いた論理合成で生成されたゲートレベル論理回路との差し替えを行う部分である。この処理を図１の差分箇所差し替え１３で実施する。図１のＨＤＬ１とゲートレベル論理回路２の差分箇所を特定するため、論理等価性検証３を実施する。この論理等価性検証３は、既存の論理等価性検証ツールを用いて行われる。論理等価性検証３の実行スクリプト５は、本発明で自動生成する。論理等価性検証３の実施により差分箇所情報４が出力される。
【００３７】
差分箇所情報４を基に、ＨＤＬ１及びゲートレベル論理回路２から差分箇所の階層化を行う。ゲートレベル論理回路２の階層構造化は、既存の論理合成ツールを用いて行われる。論理合成の実行スクリプト８は、本発明で自動生成する。論理合成ツールにより、図５に示す階層構造化したゲートレベル論理回路を生成する。
【００３８】
次に、図１におけるＨＤＬ１の差分箇所を階層化したＨＤＬ９の生成手順について、図４を参照しながら説明する。
【００３９】
図１の論理等価性検証３を実施して出力された差分箇所情報４を基に、図４の修正後ＨＤＬ１９の★で示された差分箇所を特定し、差分箇所記述２１の抽出を行う。次に、抽出された差分箇所記述２１を包含した階層化ＨＤＬ２２を生成する。次に、ＨＤＬ１の差分箇所と差し替える記述である差し替え用記述２３を生成する。この記述により、階層化ＨＤＬ２２との階層関係が示される。次に、ＨＤＬ１の修正後ＨＤＬ１９の★で示された差分箇所と差し替え用記述２３の差し替えを行い、階層化したＨＤＬ９が生成される。以上の処理によって、ＨＤＬ１から階層化したＨＤＬ２４、及び階層化ＨＤＬ２２で構成されるＨＤＬ９が生成される。
【００４０】
図１の差分論理合成１１は、ＨＤＬ９の階層化ＨＤＬ２２のみで実施し、ゲートレベル論理回路１２を生成する。
【００４１】
差分箇所差し替え１３は、ゲートレベル論理回路１０から階層構造化された差分箇所をゲートレベル論理回路１２と差し替える。この処理は、既存の論理合成ツールを用いて行う。論理合成の実行スクリプト１４は、本発明で自動生成する。
【００４２】
図１の論理等価検証３には、既存技術の論理等価性検証ツールを用いる。また、差分箇所の階層構造化７及び差分箇所差し替え１３には、既存技術の論理合成ツールを用いる。論理等価性検証ツール及び論理合成ツールで使用する実行スクリプト５、実行スクリプト８及び実行スクリプト１４は、各ツールに用意された実行コマンドを用いた雛形スクリプトから自動生成する。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態における処理フローを示す図である。
【図２】本発明の実施の形態における修正前及び修正後のゲートレベル論理回路の一例を示す図である。
【図３】本発明の実施の形態における修正前及び修正後のＨＤＬの一例を示す図である。
【図４】本発明の実施の形態における修正後ＨＤＬの差分箇所の階層化したＨＤＬを作成する手順を示す図である。
【図５】本発明の実施の形態におけるゲートレベル論理回路から差分箇所を階層化したゲートレベル論理回路を示す図である。
【図６】本発明の実施の形態におけるゲートレベル論理回路から差分箇所を階層化したゲートレベル論理回路を示す図である。
【図７】本発明の実施の形態における論理合成ツール処理フローを示す図である。
【図８】本発明の実施の形態における論理変換処理を示す図である。
【図９】本発明の実施の形態における論理合成の最適化処理について示す図である。
【図１０】本発明の実施の形態における論理等価性検証の実施方法を示す図である。
【図１１】本発明の発明が解決しようとする課題を示すための修正前及び修正後のＨＤＬの一例を示す図である。
【符号の説明】
【００４４】
１、９  ＨＤＬ
２、１０、１２、１５、２０、３３  ゲートレベル論理回路
３  論理等価性検証
４  差分箇所情報
５、８、１４  実行スクリプト
６  差分箇所の階層記述化（ＨＤＬ）
７  差分箇所の階層構造化（ゲートレベル論理回路）
１１  差分論理合成
１３  差分箇所差し替え
１６  修正前ゲートレベル論理回路
１７  修正後ゲートレベル論理回路
１８、３８  修正前ＨＤＬ
１９、３９  修正後ＨＤＬ
２１  差分箇所記述
２２  階層化ＨＤＬ
２３  差し替え用記述
２４  階層化したＨＤＬ
２５  階層構造化
２６  ＴＯＰ階層
２７  第２階層
２８  第３階層
２９  論理変換
３０  内部フォーマット
３１  回路動作仕様
３２  テクノロジライブラリ
３３  最適化
３４  構文解析
３６  ロジックコーン
３７  内部フォーマット化（数式化）
【図１】
0004679442.tif 000002
【図２】
0004679442.tif 000003
【図３】
0004679442.tif 000004
【図４】
0004679442.tif 000005
【図５】
0004679442.tif 000006
【図６】
0004679442.tif 000007
【図７】
0004679442.tif 000008
【図８】
0004679442.tif 000009
【図９】
0004679442.tif 000010
【図１０】
0004679442.tif 000011
【図１１】
0004679442.tif 000012