JP4448048B2 - 構造解析プログラム - Google Patents

構造解析プログラム Download PDF

Info

Publication number
JP4448048B2
JP4448048B2 JP2005093281A JP2005093281A JP4448048B2 JP 4448048 B2 JP4448048 B2 JP 4448048B2 JP 2005093281 A JP2005093281 A JP 2005093281A JP 2005093281 A JP2005093281 A JP 2005093281A JP 4448048 B2 JP4448048 B2 JP 4448048B2
Authority
JP
Japan
Prior art keywords
analysis
circuit
database
block
logic synthesis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005093281A
Other languages
English (en)
Other versions
JP2006277154A (ja
Inventor
盛道 横田
利宏 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005093281A priority Critical patent/JP4448048B2/ja
Priority to US11/237,698 priority patent/US7350162B2/en
Publication of JP2006277154A publication Critical patent/JP2006277154A/ja
Application granted granted Critical
Publication of JP4448048B2 publication Critical patent/JP4448048B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明はHDLの設計データについて構造解析に関する。
従来のLSI作成においては、開発者がHDL(ハードウェア記述言語)にてRTL(Register Transfer Level)を作成し、RTLから解析用DBを生成し、解析用DBについて論理合成を行うことによりLSIの作成を行うことが一般的である。上記作成過程での構造解析は、コンピュータの資源を大量に消費する。そのため、対象LSIを分割して論理合成を行うなどの対策が必要な事象が発生する場合があった。
不具合が検出された場合はHDL設計物を修正し、再び構造解析を行っていた。この為、多大な時間と工数を必要とした。また、近年のLSIの大規模化に伴い、構造解析に使用するコンピュータの資源(メモリ等)の制約により、HDL設計物を分割して構造解析を実施するなどの対処が必要となるケースが発生している。
特許文献1では、LSlなどの半導体回路設計において、非同期パス解析の容易化と、論理合成時間の短縮を実現する。特許文献1では、RTL記述の回路データを読み込み、該RTL記述の回路データにもとづき回路中の非同期パスを検出し、該検出された非同期パスから配列を抽出し、該非同期パスを配列ごとまとめて表示し、非同期パスをフォルスパスとして選択し、フォルスパスに対応する非同期パスを回路最適化の対象からはずして、RTL記述の回路データからゲートレベルの回路を生成している。
また、特許文献2では、RTL HDL記述の論理検証対象部分の抽出・最適化を図り、シミュレーション処理速度の高速化を実現する。特許文献2では、RTL HDL記述を解析して論理変換処理とレジスタ生成処理とを行い、RTL HDL記述をネットリストに変換する。そして論理回路の観測点と入力点の内で定数に固定化する入力点とを指定する。その後、参照及び伝搬関係トレースを行って、回路規模の小型化を行う。更に残留したレジスタの内で観測希望ではないレジスタを移動・統合して更に最適化を実行する。その後、冗長論理の最適化を行った上で、最適化されたネットリストをRTLのHDL記述に再変換すると共に、最適化に応じてシミュレーションパターンの修正を行っている。
図29は、従来の解析処理の解析処理手順を示す。解析処理では、まず、HDL設計文書200から、マスターとなるDB201を作成する。そして、その構築したマスターDB201に対して解析処理203を実施して、解析結果データ204を取得していた。
この解析処置203では、(1)マスターDBからルートとなる要素を取得する。(2)解析が必要か否かを判断する。解析が必要であれば処理を実施し、その結果を保持する。(3)子となる要素を取得する(親の要素を保持)。(4)上記(2)〜(3)を繰り返す。これらを全ての要素に対して繰り返す。
特開2003−216672号公報 特開平9−311882号公報
しかしながら、従来、上記のような解析を行う場合、解析用DBが巨大であるため、解析処理に長時間を必要としていた。また、このような大規模なHDL設計データでは、コンピュータのリソース(メモリ等)が不足していた。すなわち、従来では必要な解析内容に最適化されたデータベースではなかった。
また、不具合発見時にはRTLを修正する必要があり、RTLから解析用DBを再度作成する作業が必要である。すなわち、不具合の発見時にはHDL設計物を修正し、その度に解析用DBの再構築を行って解析を再実行していた。しかしながら、この解析処理には多大な時間を必要とするため、効率よく作業を行うことができなかった。なぜなら、一般的な解析システムは不具合の発見に特化しており、HDL設計物のメモリ上での組み換えテストが不可能で、設計物の修正と解析実行を繰り返す必要があった。
また、論理合成ツールによって合成ルールが異なる場合があり、出力結果が異なるものとなる場合がある。すなわち、論理合成ツールによって合成ルールが変わり、解析結果と異なる回路が生成されることがある。
上記の課題に鑑み、本発明では、ハードウェア記述言語(HDL)を使用した回路設計に関して、設計物の解析の効率化を図る。
本発明にかかるハードウェア記述言語で記述された回路であって複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う処理を、コンピュータに実行させる構造解析プログラムは、前記回路設計データを取得する取得処理と、前記回路設計データに基づいて、構造解析用データベースを構築するデータベース構築処理と、前記構造解析用データベースを複製するデータベース複製処理と、前記複製された前記構造解析用データベースである複製データベースから、該複製データベースが表している前記回路を構成する前記要素のうち不要な要素を削除する要素削除処理と、前記要素削除処理により前記要素が削除された前記複製データベースについて前記構造解析を行う構造解析処理と、をコンピュータに実行させ、前記要素削除処理は、前記構造解析処理により実行される構造解析処理の種別に応じて、前記要素を削除する処理を行うものであって、該構造解析処理で使用される要素以外の要素を前記不要な要素として削除する。
このように構成することにより、HDLを使用した回路設計について、設計物の解析の効率化を図ることができる。また、構造解析用データベース(DB)構築時に、解析に必要でない情報を削除することで最適化を行い、メモリ消費量の抑止と解析処理の向上を実現する。
上記の構造解析プログラムは、さらに、前記回路設計データのうち未設計部分をダミーモジュールとして構築された前記構造解析用データベースにおいて、前記ダミーモジュールを正規のモジュールに置換する要素置換処理をコンピュータに実行させる。
このように構成することにより、未設計部分のブロック(モジュール)が存在していていても、ダミーモジュールに置き換えることで、ブロック間の接続状況を確認することができる。
本発明を用いることにより、ハードウェア記述言語を使用した回路設計に関して、設計物の解析の効率化を図ることができる。
図1は、本発明にかかるHDLデータ構造解析システム100の構成概念図を示す。HDLデータ構造解析システム100は、例えば、ハードウェア記述言語(以下HDL)で記述された設計データの構造解析を行うプログラムが格納されたコンピュータであり、そのプログラムが制御装置によって読み込まれ、以下の第1〜第3の実施形態で説明するフローを実行する。
HDLデータ構造解析システム100は、取得手段101、DB構築手段102、DB複製手段103、要素削除手段104、要素置換手段105、論理合成ルール生成手段106、構造解析手段107から構成される。
取得手段101は、ユーザが作成したHDLで記述された設計データ(HDL設計物)を取得する。また、取得手段101は、ユーザにより定義された論理合成用のスクリプトを取得する。
DB構築手段102は、HDLで記述された設計データから、言語レベルでの記述を解析するためのデータベースを生成する。DB複製手段103では、構造解析の種別に応じてDB(データベース)を最適化して解析するために、このDBを複製する。
要素削除手段104は、HDLで記述された設計データから、複製されたDBから、必要とする情報のみを残し、余計な要素を削除することで構造解析に要するコンピュータ資源(メモリ等)と処理時間を削減しする。これにより大規模な設計データの解析を可能にする。構造解析手段107は、上記で構築されたDBに関して、回路構成の構造解析(例えば、回路を構成する要素間の接続の状態のチェック、ポート間のルーティングチェック、結線状態のチェック等)を実行する。
また、要素置換手段105は、HDLで記述された設計データから、言語レベルでの記述を解析するためのデータベースを生成後、指定されたパターン要素の置き換え(差し替え)を可能にする。また、要素置換手段105は、その置き換え情報を出力する手段を備えている。
また、論理合成ルール生成手段106は、HDLで記述された設計データから、言語レベルでの記述を解析するためのデータベースを生成後、論理合成ルール(例えば、Register/Selector 等)の置き換え(差し替え)を可能にする。
論理合成ルール生成手段106は、判定手段106aと生成手段106bとを有する。判定手段106aは、論理合成ルールに記された条件に合致する前記要素が存在するか否かを判定する。生成手段106bは、論理合成ルールに基づいて新たな要素を生成し、前記判定処理による判定により取得された要素をその新たな要素に変換する。
本発明の第1の実施形態によれば、構造解析用データベース(DB)構築時に、解析に必要でない情報を削除することで最適化を行い、メモリ消費量の抑止と解析処理の向上を実現する。
従来の解析処理では、以下のような処理を行っており、解析処理中以外のリソース消費は抑えられるものの、解析に必要となるリソースは後述の新方式よりも多大なものとなる。
図2は、第1の実施形態における最適化されたDBを使用しての解析処理手順を示す。まず、予めユーザは所定のソフトウェアを用いてHDL設計文書1を作成しておき、そのHDL設計文書1をHDLデータ構造解析システム100に入力する。そうすると、HDLデータ構造解析システム100の制御装置により、以下のDB構築処理と解析処理が実行される。
[DB構築]
1.HDL設計文書1から、マスターとなるDB2を作成する。
2.マスターDB2を複製する。
3.マスターDB(複製)3から不要要素を削除して最適化することにより、マスターDB(複製)3を解析用DB4に変換する。
4.解析用DB4に対して解析処理5を実施し、結果データ6を取得する。この解析処理4では、以下を行っている。
[解析処理4]
4−1.解析用DB4からルートとなる要素を取得する。
4−2.解析処理(例えば、回路を構成する要素間の接続の状態のチェック、ポート間のルーティングチェック、結線状態のチェック 等)を実施し、その結果を保持する。
4−3.子となる要素を取得する(親の要素を保持)。
4−4.上記4−2〜4−3を繰り返す。
このように、最適化された解析用DBを解析処置ごとに作成することにより、メモリ消費量の抑止と解析処理の向上を図ることができる。
ここで、解析用DBについて構造解析を行う場合、構造解析の目的に応じて解析用DBを簡略化することにより、個々の解析について解析用DBを小資源化し、高速化を図る。第1の実施形態では、解析用DB中のレジスタに関し、非同期パスについて特化した解析用DBを作成する手法と、ブロック間の信号について特化した解析用DBを作成する手法とがある。
本発明の第2の実施形態によれば、未設計部分のブロック(モジュール)が存在していていても、ダミーモジュールに置き換えることで、ブロック間の接続状況を確認することができる。また、作成済みのブロックに関する結線状態を早期段階で確認することができるので、効率的に回路の設計を行うことができる。
図3は、第2の実施形態における回路内の要素(モジュール)を別の要素(モジュール)に入れ替える様子を示す。同図では、Sub1ブロックが未設計である場合に、そのブロックをダミーモジュール7eとして回路7fに組み込み、解析用DBを構築した状態を示している。そして、その未設計が完成したらその完成したSubXをダミーモジュールに置換している。
第2の実施形態では、解析用DB7bを外部(ユーザインターフェース7a(以下、UIと称する))から操作(要素の変更/追加/削除)可能にすることで、解析により発見された不具合の即時変更を実現する。また、マスターDB上にHDL設計物へのリンクを保存しておくことで、修正に対応したHDL設計物7cを出力することが可能となる。
本発明の第3の実施形態によれば、解析用データベースの論理合成ルールをUIからの変更を可能にする。これにより、データベース上の特定パターンをユーザ定義の要素に置き換えることができ、より柔軟な解析を実施することが可能となる。
図4は、第3の実施形態における論理合成ルールを追加し、それをユーザが定義したモジュールに変換する様子を示す。同図では、ユーザは論理合成用のスクリプトを作成して、HDLデータ構造解析システム100にUI8aを介して入力する。
HDLデータ構造解析システム100では、HDL設計物8cからマスターDBを構築する場合、HDL設計物8c内の回路構成にスクリプト8bに記述された論理合成ルールに合致するものがあれば、その論理合成ルールをマスターDB8dに反映する。そして、マスターDB8dから解析用DB8eを作成して構造解析を行う。
このように、解析用DB8eの論理合成ルールを外部(UI8a)から操作(要素の変更/追加/削除)可能にすることで、ユーザの独自仕様の論理合成を実現することができる。
それでは、以下に本発明の各実施形態について詳述する。なお、以下では、HDLデータの構造解析を行うことを解析処理という。
<第1の実施形態>
本実施形態では、HDLで記述された設計データを入力して、論理合成の前段でマスターデータから各種解析向けに特化したDBを動的に生成し、これを用いて情報抽出・不具合検出を高速に行うものである。
本実施形態では、複製されたマスターDBから不要要素を削除することにより得られた解析用DBを用いることにより、解析処理時のメモリ消費の抑止と解析処理の向上させる。
回路構成の構造解析には、複数の種類が存在する。それぞれの解析処理には、不要な情報や必要な情報がある。そこで、ある解析処理を行う際に、その解析処理に不要な情報を予め削除しておき、その解析処理について最適化された解析用DBを構築する。以下では、非同期パス検索とブロック間信号情報抽出を例にあげて、最適化された解析用DB作成する。
(実施例1)非同期パス検索を実行する場合
なお、非同期パス検索とは、異なるクロック信号源と接続されているレジスタを検索することをいう。
図5は、本実施形態の実施例1における複製されたマスターDB上において、全ての情報を含む回路構成の一例を示す。図6は、図5の回路構成の概念図を示す。本実施形態において、回路構成の最上位の概念をTop(10)で表し、その配下にはSub1(11)で表されるブロックと,Sub2(12)で表されるブロックが存在する。またSub2(12)の配下には,Sub3(13)のブロックが存在する。各ブロック情報は、自身の配下のブロック及びノード群の情報を管理している(図6のA)。また、図6のBは、ブロックが管理する入出力ポート、レジスタ等のノード情報を示している。ノード間の接続情報は、ノード自身が保持している。
HDLでブロックの階層の設計をする場合、ブロックはクラスを用いて作成される。したがって、Sub1(11),Sub2(12),Sub3(13)は、そのクラスのインスタンスである。
Top(10)が管理している情報は、Topの配下にSub1(11),Sub2(12)のブロックを有する情報と、In1(10a),In2(10b),In3(10c),In4(10d),In5(10e)の入力ポートと、Out1(10f),Out2(10g)の出力ポートとに関する情報である。
Sub1(11)が管理している情報は、レジスタ1(11d)、レジスタ2(11e)と、In1(11a),In2(11b),In3(11c)の入力ポートと、Out1(11f),Out2(11g)の出力ポートとに関する情報である。
Sub2(12)が管理している情報は、Sub2の配下にSub3(13)を有する情報と、レジスタ1(12e)と、Not回路(12f)と、AND回路(12i)と、In1(12a),In2(12b),In3(12c),In4(12d)の入力ポートと、Out1(12g),Out2(12h)の出力ポートとに関する情報である。
Sub3(13)が管理している情報は、レジスタ1(13c)と、In1(13a),In2(13b)の入力ポートと、Out1(13d)の出力ポートとに関する情報である。
さて、非同期パス検索を実施する際、ブロック間の接続情報は不要であり、クロック/データ信号が接続されるレジスタの情報があればよい。そこで、図7のようにDBを変化させる。
図7は、本実施形態の実施例1における非同期パス検索を実施する際にクロック/データ信号が接続されているレジスタ以外のノード情報を削除した回路構成を示す。図8は、図7の回路構成の概念図を示す。
図7及び図8では、レジスタ11d,11e,12e,13cと、データ信号入出力ポート10a,10fと、クロック信号端子10b,10c,10d,10eと、クロック信号とレジスタとの接続線、及びデータ信号とレジスタとの接続線のみ表示されている。そして、要素は全てTop配下に存在する構成となっている。すなわち、サブブロック情報、ノード情報等は全て削除されている。この削除の方法について図9で説明する。
図9及び図10は、本実施形態の実施例1における非同期パス検索を実施する際にクロック/データ信号が接続されているレジスタ以外のノード情報を削除するフローを示す。ユーザは、例えば、HDLを用いて、図5及び図6で示されるような回路を設計する。その設計後、ユーザはHDLデータ構造解析システム100にそのHDL設計データを入力する。HDLデータ構造解析システム100の制御装置は、その入力されたそのHDL設計データを読み込み、図9及び図10のフローを実行する。
まず、Top配下のブロックを検索し、検索されたブロックの一覧を取得する(ステップ1、以下、ステップを「S」と称する)。本実施形態では、Top配下のSub1,Sub2とが含まれるブロック一覧が取得される。
次に、その取得したブロック一覧の要素毎(Sub1,Sub2)に、ブロック展開及び不要要素の削除処理(S3)を繰り返す(S2)。S3のブロック展開及び不要要素の削除処理の詳細を図10に示す。
まず、Sub1の場合について説明する。S3のブロック展開及び不要要素の削除処理では、まず、取得したブロック一覧内で現在選択されているブロック配下にブロックがあるか否かについて判断する(S3−1)。
今選択されているブロックは、Sub1である。図5及び図6において、Sub1の配下にはブロックは存在しないので(S3−1で「No」へ進む)、ブロック配下の要素を上位ブロックに展開し、現ブロックを削除する。この場合、当該ブロックSub1配下の要素を上位ブロックであるTopに展開し、当該ブロックSub1を削除する(S3−3)。
すなわち、Sub1(11)が管理している情報である、レジスタ1(11d)、レジスタ2(11e)と、In1(11a),In2(11b),In3(11c)の入力ポートと、Out1(11f),Out2(11g)の出力ポートとに関する情報を、Top管理下の情報とし、Sub1(11)を削除する。
S3−3で上位ブロックに展開されたノードのうち、レジスタ以外を削除する(S3−4)。この場合、レジスタ1(11d)及びレジスタ2(11e)以外のIn1(11a),In2(11b),In3(11c)の入力ポートと、Out1(11f),Out2(11g)が削除される。
その後、レジスタのデータパスとクロックパス以外の接続を削除する(S3−5)。この場合、削除される接続はない。
そうすると、Sub1についてS3の処理が終わり、ブロック一覧内の次のブロックSub2についてS3の処理を行う(S2)。では、Sub2について説明する。現ブロック配下にブロックがあるか否かについて判断する(S3−1)。
図5において、Sub2の配下にはブロックSub3が存在するので(S3−1で「Yes」へ進む)、Sub3のブロックを展開する(S3−2)。すなわち、ブロックSub3について、S3の処理を実行する。
Sub3の配下にはブロックは存在しないので(S3−1で「No」へ進む)、Sub3のブロック配下にある要素を上位ブロックSub2に展開し、当該ブロックSub3を削除する(S3−3)。
すなわち、Sub3(13)が管理している情報である、レジスタ1(13c)と、In1(13a),In2(13b)の入力ポートと、Out1(13d)の出力ポートとに関する情報を、Sub2管理下の情報とし、Sub3(13)を削除する。
S3−3でブロックSub2に展開された要素のうち、レジスタ以外を削除する(S3−4)。この場合、レジスタ1(13c)以外のIn1(13a),In2(13b)の入力ポートと、Out1(13d)の出力ポートが削除される。
その後、レジスタのデータパスとクロックパス以外の接続を削除する(S3−5)。この場合、削除される接続はない。
そうすると、Sub3についてS3の処理が終わり(S3−2)、ブロックSub2についてS3−3の処理を行う。すなわち、Sub2が管理している情報である、レジスタ1(12e)と、Not回路(12f)と、AND回路(12i)と、In1(12a),In2(12b),In3(12c),In4(12d)の入力ポートと、Out1(12g),Out2(12h)の出力ポートと、レジスタ1(13c)に関する情報を、Top管理下の情報とし、Sub2(12)を削除する。
次に、S3−3でTopに展開された要素のうち、レジスタ以外を削除する(S3−4)。この場合、レジスタ1(12e)及びレジスタ1(13c)以外のNot回路(12f)と、AND回路(12i)と、In1(12a),In2(12b),In3(12c),In4(12d)の入力ポートと、Out1(12g),Out2(12h)の出力ポートが削除される。
その後、レジスタのデータパスとクロックパス以外の接続を削除する(S3−5)。この場合、レジスタ1(11e)のQ端子とレジスタ1(12e)のCLR端子との間の接続と、Not回路12fの出力端子とAnd回路(12i)の入力端子との間の接続と、レジスタ1(12e)のQ(反転)端子とAnd回路(12i)の入力端子との間の接続と、And回路(12i)の出力端子とOut2(10g)の出力ポートの間の接続とが削除される。
その結果、図7及び図8で示されるように、クロック/データ信号が接続されているレジスタ以外のノード情報を削除したDBが得られる。なお、図5及び図6で示した回路構成は一例であって、これに限定されず、本実施例はその他の回路構成でも使用することができる。
これにより、ブロックを介さずにレジスタにアクセスできるようになり、解析処理時間の短縮に繋がる。
(実施例2)ブロック間信号情報抽出を実行する場合
本実施例、ブロック間信号情報抽出について説明する。上述の通り、解析の種類によってDBを構築するので、本実施例、ブロック間信号情報抽出用のDBを構築する。
ブロック間信号情報抽出では、ブロック間の接続状態だけが分かればよいため、それ以外の要素は削除することができる。そこで、以下のようにDBを変化させる。
図11は、本実施形態の実施例2における複製されたマスターDB上において、全ての情報を含む回路構成を示す。図12は、図11の回路構成の概念図を示す。本実施形態において、回路構成の最上位の概念をTop(20)で表し、その配下にはSub1(21)で表されるブロックと,Sub2(22)で表されるブロックが存在する。またSub2(12)の配下には,Sub3(13)のブロックが存在する。各ブロック情報は、上述の実施例1と同様に、自身の配下のブロック及びノード群の情報を管理している。また、ブロックが管理する入出力ポート、レジスタ等のノード情報を示している。ノード間の接続情報は、ノード自身が保持している。
Top(20)が管理している情報は、Topの配下にSub1(21),Sub2(22)のブロックを有する情報と、In1(20a),In2(20b),In3(20c),In4(20d),In5(20e)の入力ポートと、Out1(20f)の出力ポートとに関する情報である。
Sub1(21)が管理している情報は、レジスタ1(21d)、レジスタ2(21e)と、In1(21a),In2(21b),In3(21c)の入力ポートと、Out1(21f),Out2(21g)の出力ポートとに関する情報である。
Sub2が管理している情報は、Sub2の配下にSub3(23)が存在する情報と、レジスタ1(22e)と、レジスタ2(22f)と、In1(22a),In2(22b),In3(22c),In4(22d)の入力ポートと、Out1(22g)の出力ポートとに関する情報である。
Sub3(13)が管理している情報は、トライステートバッファ(23d)と、In1(23a),In2(23b),In3(23c)の入力ポートと、Out1(23e)の出力ポートとに関する情報である。
さて、ブロック間信号情報抽出では、ブロック間の接続状態だけが分かればよいため、それ以外の要素は削除することができる。そこで、図13及び図14のようにDBを変化させる。
図13は、本実施形態の実施例2における、ブロック間信号情報抽出を実施する際にクロック間の接続情報情報以外の要素を削除した回路構成を示す。図14は、図13の回路構成の概念図を示す。
図13及び図14では、ブロックSub1(21),Sub2(22),Sub3(23)と、各ブロックの入出力ポートIn1(21a),In2(21b),In3(21c),Out1(21f),Out2(21g),In1(22a),In2(22b),In3(22c),In4(22d),Out1(22g),In1(23a),In2(23b),In3(23c),Out1(23d)と、Topの入出力ポートIn1(20a),In2(20b),In3(20c),In4(20d),In5(20e),Out1(20f)、及びブロック間の接続が表示されている。それ以外のサブブロック内の情報、レジスタ情報等は全て削除されている。
図15及び図16は、本実施形態の実施例2におけるブロック間信号情報抽出を実施する際にクロック間の接続情報情報以外の要素を削除するフローを示す。ユーザは、例えば、HDLを用いて、図11及び図12で示されるような回路を設計する。その設計後、ユーザはHDLデータ構造解析システム100にそのHDL設計データを入力する。HDLデータ構造解析システム100の制御装置は、その入力されたそのHDL設計データを読み込み、図15及び図16のフローを実行する。
まず、Top配下のブロック以外の要素を、接続を維持しつつ削除する(S11)。本実施例では、Top(20)配下にはブロック及びブロック間の接続しか存在しないので、削除の対象となるものはない。なお、このとき、Top(20)配下のブロックを検索し、検索されたブロックの一覧を取得する。本実施例では、Top(20)配下のSub1(21),Sub2(22)からなるブロック一覧が取得される。
次に、その取得したブロック一覧の要素毎(Sub1,Sub2)に、ブロック展開及び不要要素の削除処理(S13)を繰り返す(S12)。S13のブロック展開及び不要要素の削除処理の詳細を図16に示す。
まず、Sub1(21)の場合について説明する。S13では、まず、取得したブロック配下のブロック以外の要素を、接続を維持しつつ削除する(S13−1)。図11及び図12において、ブロックSub1(21)配下のうち、ブロックSub1(21)以外の要素であるレジスタ1(21d),レジスタ(21e)を削除する。なお、本実施例はブロック間の結線状態を確認することが目的であるので、入出力ポートは原則削除しない。したがって、In1(21a),In2(21b),In3(21c)の入力ポートと、Out1(21f),Out2(21g)の出力ポートはそのまま残しておく。
次に、当該ブロック配下にさらにブロックが存在するか否かを判断する(S13−2)。この場合、Sub1(21)の配下には、ブロックは存在しない(S13−2で「No」へ進む)ので、S13の処理は終了する。
そうすると、Sub1についてS13の処理が終わり、ブロック一覧内の次のブロックSub2についてS13の処理を行う(S12)。ここでは、Sub2について説明する。まず、取得したブロック配下のブロック以外の要素を、接続を維持しつつ削除する(S13−1)。
図11及び図12において、ブロックSub2(22)配下のうち、ブロックSub2(22)以外の要素であるレジスタ1(22e),レジスタ2(22f)を削除する。なお、レジスタ1(22e)を削除しても、ブロック間の接続情報を維持するため、レジスタ1(22e)のS入力端子とQ出力端子とを結線する。また、レジスタ2(22f)についても同様に、ブロック間の接続情報を維持するため、レジスタ2(22f)を削除して、クロック信号入力端子とQ出力端子とを結線する。このように、どの入力端子とどの出力端子とが接続可能かは、HDLにおいて、レジスタを作成するときに予め属性として持っている情報である。
なお、本実施例はブロック間の結線状態を確認することが目的であるので、入出力ポートは原則削除しない。
次に、当該ブロック配下にさらにブロックが存在するか否かを判断する(S13−2)。この場合、Sub2(22)の配下には、ブロックSub3(23)が存在するので(S13−2で「Yes」へ進む)ので、ブロック展開及び不要要素の削除の処理を行う(S13−3)。すなわち、ブロックSub3について、S13の処理を実行する。
まず、ブロックSub3(23)配下のうち、ブロックSub3(23)以外の要素であるトライステートバッファ(23d)を削除する。なお、本実施例はブロック間の結線状態を確認することが目的であるので、入出力ポートは原則削除しない。したがって、In1(23a),In2(23b),In3(23c)の入力ポートと、Out1(23e)の出力ポートはそのまま残しておく。
Sub3についてのS3の処理(S13−3)は終了したので、Sub2配下における全てのS3の処理は終了する。本実施例では、これ以外のブロックは存在しないので、本フローは終了する。
なお、図11及び図12で示した回路構成は一例であって、これに限定されず、本実施例はその他の回路構成でも使用することができる。
このようにすることで、ブロックとブロック間相互のインターフェースである入出力ポートのみが残り、ブロック間の接続情報のみになるので、あるブロックから1つ進めば必ず次のブロックが存在し、回路構成を簡略化することができる。これにより、ブロック以外の要素が削除され、ブロック内要素の検索処理速度が向上する。
<第2の実施形態>
本実施形態では、解析処理において、試験的に要素を変更し、継続して解析を実施することについて説明する。
大規模回路の解析用DBの構築には数時間を要するため、その時間を有効活用することができれば、作業効率が向上する。そこで、大規模な回路を構成する複数のブロックを作成していて、そのうちあるブロックの作成の進捗が遅れ、そのブロック内部の設計がまだされていない場合がある。
このような場合、作成済みのブロックとその未設計ブロックの代用としてのダミーモジュールとを用いて先行してマスターDBを構築して解析処理を進める。その後、その進捗が遅れていたブロックが完成したら、そのダミーモジュールに替えてこれをマスターDBに追加する。そうして、完成版のマスターDBについて再度解析行う。
このようにすることで、作成済みのブロックに関する結線状態を早期段階で確認することができるので、効率的に回路の設計を行うことができる。
図17は、本実施形態におけるダミーモジュールを組み込んだ回路構成の一例を示す。図18は、図17の回路構成の概念図を示す。
本実施形態において、回路構成の最上位の概念をTop(30)で表し、その配下にはダミーモジュールSub1(31D)と,正規モジュールSub2(32)のブロックとが存在する。Sub2(32)は、第1の実施形態と同様に、自身の配下のブロック及びノード群の情報を管理している。また、ブロックが管理する入出力ポート、レジスタ等のノード情報を示している。ノード間の接続情報は、ノード自身が保持している。
Top(30)が管理している情報は、その配下にダミーモジュールSub1(31D),正規モジュールSub2(32)のブロックを有する情報と、In1(30a),In2(30b),In3(30c)の入力ポートと、Out1(30d),Out2(30e)の出力ポートとに関する情報である。
ダミーモジュールSub1(31D)が管理している情報は、In1(31Da),In2(31Db),In3(31Dc)の入力ポートと、Out1(31Dd),Out2(31De)の出力ポートとに関する情報である。ダミーモジュールとは、内部の設計が未完成なブロックと、入出力ポートとからなるものである。すなわち、クラスのメンバーが入出力しか存在しないモジュールをいう。入出力ポートは、HDL設計において、モジュールに変換する場合に最低限必要な情報であり、外部との接続情報として設計しておく情報である。
Sub2が管理している情報は、トライステートバッファ(32d)と、NOT回路(32e)と、In1(32a),In2(32b),In3(32c)の入力ポートと、Out1(32f),Out2(32g)の出力ポートとに関する情報である。
ユーザが設計した大規模な回路内に未実装部分があるため、図17のように、その未実装部分の代わりにダミーモジュール31Dを含む回路を設計して、後述のように、解析用DBの構築処理を開始することができる。
このとき、大規模回路の解析用DBの構築には数時間を要するため、その待ち時間を利用して正規のモジュール31(図20、図21参照)を設計し、ダミーモジュール31Dと置き換えてから解析処理を実行することができる。
図19は、本実施形態におけるダミーモジュール31Dから正規モジュール31への置き換えを示す。
図20は、本実施形態における正規モジュールを組み込んだ回路構成の一例を示す。図21は、図20の回路構成の概念図を示す。図20及び図21において、ダミーモジュールSub1(31D)が正規モジュールSub1(31)に置き換わっている。
この正規モジュールSub1(31)が管理している情報は、レジスタ1(31d)と、レジスタ2(31e)と、NOT回路(31f)と、In1(31a),In2(31b),In3(31c)の入力ポートと、Out1(31g),Out2(31h)の出力ポートとに関する情報である。
図22は、本実施形態におけるモジュール置き換えのフローを示す。ユーザは、例えば、HDLを用いて、所定の回路を設計する。その設計後、ユーザはHDLデータ構造解析システム100にそのHDL設計データを入力する。HDLデータ構造解析システム100の制御装置は、その入力されたそのHDL設計データを読み込み、以下のフローを実行する。
制御装置は、入力されたHDL設計データの一部が未設計か否かを確認する(S21)。その回路に未設計部分がない場合(S21で「No」へ進む)、解析対象の回路のHDL設計に基づいてその制御装置により解析用DBが構築される(S22)。その後、その制御装置によりその解析用DBについて解析処理が実行される(S23)。
その回路の一部が未設計の場合(S21で「Yes」へ進む)、制御装置は入出力ポートのみを有するブロック情報に基づいてダミーモジュールを作成する。そして、そのダミーモジュールを未設計部分に用いて、制御装置はダミーモジュール込み回路を作成する(S24)。
次に、制御装置はそのダミーモジュール込み回路データに基づいて解析用DBを構築する(S25)。上述の通り、解析用DBの構築には数時間を要する。そこで、ユーザは、その待ち時間を利用して正規のモジュールを設計する。
次に、S25で構築した解析用DBについて、解析処理を実行する(S26)。上述の通り、ここでの解析処理はブロック間の結線状態の確認が主となる。
解析処理を実行後に、未設計のブロック(正規モジュール)の設計が完了したら、HDLデータ構造解析システム100にその追加分のHDL設計データを入力する。制御装置により入力されたその追加分のHDL設計データが読み込まれ、モジュール(正規モジュール)に変換される。そして、制御装置はダミーモジュールを正規モジュールに置き換える(S27)(図19参照)。
次に制御装置は、解析用DBを構築する(S28)。ここでは、S25で構築されたDBに差分モジュール(S27で置き換えられたモジュール)が追加される。これにより、再び始めから解析用DBを構築する必要がない。
S28で差分モジュールが追加された解析用DBについて、制御装置により解析処理が実行される(S26)。未設計部分(すなわち解析用DBにダミーモジュール)が存在する間、S27→S28→S26の処理を繰り返す。
これにより、未設計部分のブロック(モジュール)が存在していていても、ダミーモジュールに置き換えることで、ブロック間の接続状況を確認することができる。また、作成済みのブロックに関する結線状態を早期段階で確認することができるので、効率的に回路の設計を行うことができる。
また、第1の実施形態を組み合わせることで、本実施形態をより有効に行うことができる。たとえば、始め大規模回路を構成する複数のブロックを先行して作成した場合、第2の実施形態を行って、ブロック間の結線状態を確認する、その後、各ブロック内の詳細な実装を行い、その実装部分について第1の実施形態を行えば、効率よい回路設計を行うことができる。
<第3の実施形態>
本実施形態では、論理合成ルールを追加し、それをユーザ定義のモジュールに変換する場合について説明する。論理合成とは、HDLなどのハードウェア記述言語で記述した設計データからゲート・レベルの論理回路を自動生成することをいう。論理合成ルールとは、そのような論理合成のためのルールを定めたものである。
図23は、本実施形態におけるHDL記述からセレクタを生成する様子を説明するための図である。同図では、一例として、ある一定条件を満たすセレクタをトライステートバッファ(tri−state−buffer)として認識させる場合の方法を示している。
しかしながら、図23のようなHDL記述例40には、例えばif文があるために通常トライステートバッファの論理合成ルールがない場合は、41に示すようにセレクタとして認識される。しかし、トライステートバッファの合成ルールを追加することにより、トライステートバッファを合成することができる。図24ではトライステートバッファの合成ルールを示す。
図24は、本実施形態における一定の条件でトライステートバッファに変換する一例を示す。合成条件の例(42)として、「(1)入力データ信号が3つである。(2)入力データのうち1つが定数値‘Z’である。(3)‘Z’値が使われているのは条件式ではない。(4)出力データ信号が1つである。」とする。
このような変換は、ユーザによるスクリプト作成(ここではTCL(Tool Command Language)を使用)により実現することが可能である。図23のHDL記述例40のようなセレクタをトライステートバッファに変換するためのスクリプト例は図25のようになる。
図25は、本実施形態における合成ルールの記述例(44)を示す。記述例(44)の記述内容について説明する。まず、コマンド「search_litelal −value Z」により、解析用DBから‘Z’値を検索する(上記合成条件(2)に相当する)。foreach ZLiteral文により、検索された‘Z’値の個数分以下の処理を繰り返す。
コマンド「trace_forward −node $ZLiteral」により、上記で検索された‘Z’値の1つ前方のノードを追跡する。図23の場合、‘Z’値の1つ前方のノードであるセレクタが取得される。
次に、コマンド「get_input_node −node $node」により、そのノードの入力端子数を取得する。図23の場合では、取得されたセレクタ41aの入力端子数3が取得される。
次に、取得したノードの入力端子数が‘3’か否かが判断される(上記合成条件(1)に相当する)。ノードの入力端子数が‘3’以外の場合には、次の‘Z’値についてforeach以下の処理を行う。ノードの入力端子数が‘3’の場合、コマンド「get_condition −node $node $ZLiteral」により、そのセレクタの情報を取得する。
次に、その取得したセレクタが‘Z’値ではないかを判断する(上記合成条件(3)に相当する)。その取得したセレクタが‘Z’値以外の場合、コマンド「get_output_node −node $node $ZLiteral」により、そのセレクタの出力端子数を取得する。図23の場合では、取得されたセレクタ41aの出力端子数1が取得される。
次に、取得した出力端子数が1か否かが判断される(上記合成条件(4)に相当する)。出力端子数が‘1’以外の場合には、次の‘Z’値についてforeach以下の処理を行う。出力端子数が‘1’の場合には、上記(1)〜(4)の条件を全て満たすので、そのセレクタをトライステートバッファに変換する。
なお、本実施形態では、スクリプト言語としてTCLを用いたが、これに限定されず、他のスクリプト言語を用いてもよい。本実施形態ではセレクタをトライステートバッファに変換したが、これに限定されない。すなわち、論理合成ルールの所定の条件に合致した要素を、論理合成ルール内で定義された要素に変換できるあらゆる要素が対象となる。
図26は、本実施形態における追加した論理合成ルールをモジュールに変換するフローを示す。まず、ユーザは、新規に論理合成ルールを作成する。例えば、図25で示したようなスクリプトがユーザによって作成される。次に、その作成された論理合成ルールは、HDLデータ構造解析システム100に入力される。その入力された論理合成ルールが、制御装置によって読み込まれる(S31)。すなわち、制御装置によって例えば、上記のスクリプトが読み込まれる。
次に、制御装置は、その論理合成ルールに基づいて、例えば、既に構築された解析用DBを判定していく(S32)。ここでの判定処理は、例えば図25で説明したように、論理合成ルールに記述されたコマンドを制御装置によって実行していくことで、解析用DB中に論理合成ルールに合致する回路構成が存在するか否かを判断していく。
S32で論理合成ルールに合致する回路構成が存在する場合、制御装置は、その論理合成ルールに基づいて新合成要素を生成する(S33)。例えば、上述したように、トライステートバッファを生成し、このトライステートバッファを論理合成ルールに合致したセレクタと変換して、周囲の回路等と結線する。
図27は、本実施形態におけるユーザ定義の論理合成ルールを解析用DBに反映させる様子を示す図である。論理合成ツールは複数のベンダーより提供されているが、各社ごとにその論理合成ルールが異なり、汎用的なものではない。したがって、使用する論理合成ツールごとに、新たに追加する論理合成ルールを作成しなければならない。しかしながら、上述のように、本実施形態によれば、TCL等のスクリプトを用いてユーザが簡単に新たに追加する論理合成ルールを作成することができるので、各社の論理合成ルールに合わせた論理合成ルールを追加することができる。
また、図27中の矢印Cで示される期間(解析処理よりも前の段階)であれば、ユーザは論理合成ルールを追加することができる。すなわち、HDLデータ構造解析システム100に入力されたHDLデータに対して論理合成ルールを追加してもよいし、解析用DBに対して追加してもよい。なお、本実施形態は、第1または第2の実施形態と組み合わせても良い。
このようにして、各ベンダーが提供する論理合成ツール毎に対応させた論理合成ルールを作成し、その論理合成ルールを含んだDBを構築して構造解析を行う。そして、その構造解析で問題がなければ、各ベンダーが提供する論理合成ツールを使用する。
以上より、解析用データベースの論理合成ルールをUIから追加することができる。これにより、データベース上の特定パターンをユーザ定義の要素に置き換えることができ、より柔軟な解析を実施することが可能となる。
図28は、第1〜第3の実施形態におけるHDLデータ構造解析システム100のハードウェア環境の構成ブロック図である。同図においてHDLデータ構造解析システム100は、制御装置(CPU)52、リードオンリメモリ(ROM)53、ランダムアクセスメモリ(RAM)56、通信インターフェース(以下、インターフェースをI/Fという)54、記憶装置57、出力I/F51、入力I/F55、可搬型記憶媒体の読み取り装置58、およびこれらの全てが接続されたバス59、出力I/F51に接続している出力装置60、入力I/F55に接続している入力装置61によって構成されている。
記憶装置57としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができる。このような記憶装置57、またはROM53には、第1〜第3の実施形態で用いたフローのプログラムが格納されている。また、記憶装置57には、第1〜第3の実施形態で用いたHDL設計及びTCLのソフトウェアが格納されていてもよい。また、記憶装置57には構築された解析用DBまたは論理合成ルールが格納されていてもよい。
上記のプログラムは、プログラム提供者側からネットワーク62、および通信I/F54を介して、例えば記憶装置57に格納されることも、また市販され、流通している可搬型記憶媒体に格納され、読み取り装置58にセットされて、CPU52によって実行されることも可能である。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカードなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読み取り装置58によって読み取られる。
また、入力装置61には、キーボード、マウス、または電子カメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力装置60には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク62は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
(付記1)
ハードウェア記述言語で記述された回路であって複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う処理を、コンピュータに実行させる構造解析プログラムであって、
前記回路設計データを取得する取得処理と、
前記回路設計データに基づいて、構造解析用データベースを構築するデータベース構築処理と、
前記構造解析用データベースを複製するデータベース複製処理と、
前記複製された前記構造解析用データベースである複製データベースから、該複製データベースが表している前記回路を構成する前記要素のうち所定の要素を削除する要素削除処理と、
前記要素削除処理により前記要素が削除された前記複製データベースについて前記構造解析を行う構造解析処理と、
をコンピュータに実行させる構造解析プログラム。
(付記2)
前記要素削除処理は、前記構造解析処理により実行される構造解析処理の種別に応じて、前記要素を削除する処理
を行うことを特徴とする付記1に記載の構造解析プログラム。
(付記3)
前記構造解析処理により非同期パス検索が実行される場合、前記要素削除処理は、クロック信号線またはデータ信号線が接続されているレジスタ以外の前記要素を削除する処理
を行うことを特徴とする付記1に記載の構造解析プログラム。
(付記4)
前記構造解析処理によりブロック間信号情報抽出が実行される場合、前記要素削除処理は、前記要素の1種であるブロック間の接続に関する前記要素以外を削除する処理
を行うことを特徴とする付記1に記載の構造解析プログラム。
(付記5)
前記構造解析プログラムは、さらに、
前記回路設計データのうち未設計部分をダミーモジュールとして構築された前記構造解析用データベースにおいて、前記ダミーモジュールを正規のモジュールに置換する要素置換処理
をコンピュータに実行させる請求項1に記載の構造解析プログラム。
(付記6)
前記取得処理は、さらに論理合成のためのルールが記述された論理合成ルールを取得し、
前記構造解析プログラムは、さらに、
前記論理合成ルールに基づいて前記要素を生成し、前記回路設計データ又は前記解析用データベースに該要素を反映させる論理合成ルール要素生成処理と、
をコンピュータに実行させる付記1に記載の構造解析プログラム。
(付記7)
前記論理合成ルール要素生成処理は、
前記回路設計データ内または前記複製データベースに、前記論理合成ルールに記された条件に合致する前記要素が存在するか否かを判定する判定処理と、
前記論理合成ルールに基づく要素である論理合成ルール要素を生成し、前記判定処理による判定により取得された要素を前記論理合成ルール要素に変換する生成処理と、
を行うことを特徴とする付記6に記載の構造解析プログラム。
(付記8)
前記論理合成ルールは、スクリプト言語で作成されている
ことを特徴とする付記6に記載の構造解析プログラム。
(付記9)
ハードウェア記述言語で記述された回路であって複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う処理を、コンピュータに実行させる構造解析プログラムであって、
未設計部分を含む前記回路設計データを取得する取得処理と、
前記未設計部分をダミーモジュールとするダミーモジュール作成処理と、
前記ダミーモジュール作成処理による前記回路設計データに基づいて、構造解析用データベースを構築する第1のデータベース構築処理と、
前記ダミーモジュールを、設計が完了した正規のモジュールと置換する要素置換処理と、
前記置換された正規のモジュールに基づいて構造解析用データベースを構築する第2のデータベース構築処理と、
前記解析用データベースについて前記構造解析を行う構造解析処理と、
をコンピュータに実行させる構造解析プログラム。
(付記10)
ハードウェア記述言語で記述された回路であって、複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う処理を、コンピュータに実行させる構造解析プログラムであって、
前記回路設計データと論理合成のためのルールが記述された論理合成ルールとを取得する論理合成ルール取得処理と、
前記回路設計データに基づいて、構造解析用データベースを構築するデータベース構築処理と、
前記論理合成ルールに基づいて前記要素を生成し、前記回路設計データ又は前記解析用データベースに該要素を反映させる論理合成ルール要素生成処理と、
をコンピュータに実行させる構造解析プログラム。
(付記11)
前記論理合成ルール要素生成処理は、
前記回路設計データ内または前記複製データベースに、前記論理合成ルールに記された条件に合致する前記要素が存在するか否かを判定する判定処理と、
前記論理合成ルールに基づく要素である論理合成ルール要素を生成し、前記判定処理による判定により取得された要素を前記論理合成ルール要素に変換する生成処理と、
を行うことを特徴とする付記10に記載の構造解析プログラム。
(付記12)
前記論理合成ルールは、スクリプト言語で作成されている
ことを特徴とする付記10に記載の構造解析プログラム。
(付記13)
ハードウェア記述言語で記述された回路であって複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う構造解析装置であって、
前記回路設計データを取得する取得手段と、
前記回路設計データに基づいて、構造解析用データベースを構築するデータベース構築手段と、
前記構造解析用データベースを複製するデータベース複製手段と、
前記複製された前記構造解析用データベースである複製データベースから、該複製データベースが表している前記回路を構成する前記要素のうち所定の要素を削除する要素削除手段と、
前記要素削除手段により前記要素が削除された前記複製データベースについて前記構造解析を行う構造解析手段と、
を備えることを特徴とする構造解析装置。
(付記14)
前記要素削除手段は、前記構造解析手段により実行される構造解析手段の種別に応じて、前記要素を削除する
ことを特徴とする付記13に記載の構造解析装置。
(付記15)
前記構造解析手段により非同期パス検索が実行される場合、前記要素削除手段は、クロック信号線またはデータ信号線が接続されているレジスタ以外の前記要素を削除する
ことを特徴とする付記13に記載の構造解析装置。
(付記16)
前記構造解析手段によりブロック間信号情報抽出が実行される場合、前記要素削除手段は、前記要素の1種であるブロック間の接続に関する前記要素以外を削除する
ことを特徴とする付記13に記載の構造解析装置。
(付記17)
前記構造解析装置は、さらに、
前記回路設計データのうち未設計部分をダミーモジュールとして構築された前記構造解析用データベースにおいて、前記ダミーモジュールを正規のモジュールに置換する要素置換手段
を備えることを特徴とする請求項13に記載の構造解析装置。
(付記18)
前記取得手段は、さらに論理合成のためのルールが記述された論理合成ルールを取得し、
前記構造解析装置は、さらに、
前記論理合成ルールに基づいて前記要素を生成し、前記回路設計データ又は前記解析用データベースに該要素を反映させる論理合成ルール要素生成手段と、
を備えることを付記13に記載の構造解析装置。
(付記19)
前記論理合成ルール要素生成手段は、
前記回路設計データ内または前記複製データベースに、前記論理合成ルールに記された条件に合致する前記要素が存在するか否かを判定する判定手段と、
前記論理合成ルールに基づく要素である論理合成ルール要素を生成し、前記判定手段による判定により取得された要素を前記論理合成ルール要素に変換する生成手段と、
を備えることを特徴とする付記18に記載の構造解析装置。
(付記20)
前記論理合成ルールは、スクリプト言語で作成されている
ことを特徴とする付記18に記載の構造解析装置。
(付記21)
ハードウェア記述言語で記述された回路であって複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う構造解析装置であって、
未設計部分を含む前記回路設計データを取得する取得手段と、
前記未設計部分をダミーモジュールとするダミーモジュール作成手段と、
前記ダミーモジュール作成手段による前記回路設計データに基づいて、構造解析用データベースを構築する第1のデータベース構築手段と、
前記ダミーモジュールを、設計が完了した正規のモジュールと置換する要素置換手段と、
前記置換された正規のモジュールに基づいて構造解析用データベースを構築する第2のデータベース構築手段と、
前記解析用データベースについて前記構造解析を行う構造解析手段と、
を備えることを特徴とする構造解析装置。
(付記22)
ハードウェア記述言語で記述された回路であって、複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う構造解析装置であって、
前記回路設計データと論理合成のためのルールが記述された論理合成ルールとを取得する論理合成ルール取得手段と、
前記回路設計データに基づいて、構造解析用データベースを構築するデータベース構築手段と、
前記論理合成ルールに基づいて前記要素を生成し、前記回路設計データ又は前記解析用データベースに該要素を反映させる論理合成ルール要素生成手段と、
を備えることを特徴とする構造解析装置。
(付記23)
前記論理合成ルール要素生成手段は、
前記回路設計データ内または前記複製データベースに、前記論理合成ルールに記された条件に合致する前記要素が存在するか否かを判定する判定手段と、
前記論理合成ルールに基づく要素である論理合成ルール要素を生成し、前記判定手段による判定により取得された要素を前記論理合成ルール要素に変換する生成手段と、
を備えることを特徴とする付記22に記載の構造解析装置。
(付記24)
前記論理合成ルールは、スクリプト言語で作成されている
ことを特徴とする付記22に記載の構造解析装置。
本発明にかかるHDLデータ構造解析システム100の構成概念図を示す。 第1の実施形態における最適化されたDBを使用しての解析処理手順を示す。 第2の実施形態における回路内の要素(モジュール)を別の要素(モジュール)に入れ替える様子を示す。 第3の実施形態における論理合成ルールを追加し、それをユーザ定義のモジュールに変換する様子を示す。 第1の実施形態の実施例1における複製されたマスターDB上において、全ての情報を含む回路構成の一例を示す。 図5の回路構成の概念図を示す。 第1の実施形態の実施例1における非同期パス検索を実施する際にクロック/データ信号が接続されているレジスタ以外のノード情報を削除した回路構成を示す。 図7の回路構成の概念図を示す。 第1の実施形態の実施例1における非同期パス検索を実施する際にクロック/データ信号が接続されているレジスタ以外のノード情報を削除するフロー(その1)を示す。 第1の実施形態の実施例1における非同期パス検索を実施する際にクロック/データ信号が接続されているレジスタ以外のノード情報を削除するフロー(その2)を示す。 第1の実施形態の実施例2における複製されたマスターDB上において、全ての情報を含む回路構成を示す。 図11の回路構成の概念図を示す。 第1の実施形態の実施例2におけるブロック間信号情報抽出を実施する際にクロック間の接続情報情報以外の要素を削除した回路構成を示す。 図13の回路構成の概念図を示す。 第1の実施形態の実施例2におけるブロック間信号情報抽出を実施する際にクロック間の接続情報情報以外の要素を削除するフロー(その1)を示す。 第1の実施形態の実施例2におけるブロック間信号情報抽出を実施する際にクロック間の接続情報情報以外の要素を削除するフロー(その2)を示す。 第2の実施形態におけるダミーモジュールを組み込んだ回路構成の一例を示す。 図17の回路構成の概念図を示す。 第2の実施形態におけるダミーモジュール31Dから正規モジュール31への置き換えを示す。 第2の実施形態における正規モジュールを組み込んだ回路構成の一例を示す。 図20の回路構成の概念図を示す。 第2の実施形態におけるモジュール置き換えのフローを示す。 第3の実施形態におけるHDL記述からセレクタを生成する様子を説明するための図である。 第3の実施形態における一定の条件でトライステートバッファに変換する一例を示す。 第3の実施形態における合成ルールの記述例(44)を示す。 第3の実施形態における追加した論理合成ルールをモジュールに変換するフローを示す。 第3の実施形態におけるユーザ定義の論理合成ルールを解析用DBに反映させる様子を示す図である。 第1〜第3の実施形態におけるHDLデータ構造解析システム100のハードウェア環境の構成ブロック図である。 従来の解析処理の解析処理手順を示す。
符号の説明
100 HDLデータ構造解析システム
101 取得手段
102 DB構築手段
103 DB複製手段
104 要素削除手段
105 要素置換手段
106 論理合成ルール要素生成手段
106a 判定手段
106b 生成手段
107 構造解析手段

Claims (2)

  1. ハードウェア記述言語で記述された回路であって複数の要素から構成される該回路に関するデータである回路設計データの回路構造の構造解析を行う処理を、コンピュータに実行させる構造解析プログラムであって、
    前記回路設計データを取得する取得処理と、
    前記回路設計データに基づいて、構造解析用データベースを構築するデータベース構築処理と、
    前記構造解析用データベースを複製するデータベース複製処理と、
    前記複製された前記構造解析用データベースである複製データベースから、該複製データベースが表している前記回路を構成する前記要素のうち不要な要素を削除する要素削除処理と、
    前記要素削除処理により前記要素が削除された前記複製データベースについて前記構造解析を行う構造解析処理と、
    をコンピュータに実行させ
    前記要素削除処理は、前記構造解析処理により実行される構造解析処理の種別に応じて、前記要素を削除する処理を行うものであって、該構造解析処理で使用される要素以外の要素を前記不要な要素として削除する
    ことを特徴とする構造解析プログラム。
  2. 前記構造解析プログラムは、さらに、
    前記回路設計データのうち未設計部分をダミーモジュールとして構築された前記構造解析用データベースにおいて、前記ダミーモジュールを正規のモジュールに置換する要素置換処理
    をコンピュータに実行させる請求項1に記載の構造解析プログラム。
JP2005093281A 2005-03-28 2005-03-28 構造解析プログラム Expired - Fee Related JP4448048B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005093281A JP4448048B2 (ja) 2005-03-28 2005-03-28 構造解析プログラム
US11/237,698 US7350162B2 (en) 2005-03-28 2005-09-29 Structure analytic program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005093281A JP4448048B2 (ja) 2005-03-28 2005-03-28 構造解析プログラム

Publications (2)

Publication Number Publication Date
JP2006277154A JP2006277154A (ja) 2006-10-12
JP4448048B2 true JP4448048B2 (ja) 2010-04-07

Family

ID=37036445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005093281A Expired - Fee Related JP4448048B2 (ja) 2005-03-28 2005-03-28 構造解析プログラム

Country Status (2)

Country Link
US (1) US7350162B2 (ja)
JP (1) JP4448048B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6008695B2 (ja) * 2012-11-01 2016-10-19 株式会社日立製作所 電力系統設備データモデル変換方法、電力系統設備データモデル変換装置及び電力系統設備データモデル変換プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345378B1 (en) * 1995-03-23 2002-02-05 Lsi Logic Corporation Synthesis shell generation and use in ASIC design
SE518408C2 (sv) * 1996-04-19 2002-10-08 Kvaser Consultant Ab Metod och anordning för framtagning av systemprotokoll för styr- och/eller kontrollutrustning
JPH09311882A (ja) 1996-05-23 1997-12-02 Mitsubishi Electric Corp 論理回路検証支援装置
JP2003216672A (ja) 2002-01-21 2003-07-31 Ricoh Co Ltd 半導体回路設計支援装置及び方法、並びに半導体回路設計支援プログラム
US6898770B2 (en) * 2003-01-09 2005-05-24 Lsi Logic Corporation Split and merge design flow concept for fast turnaround time of circuit layout design
US7155687B2 (en) * 2004-05-04 2006-12-26 Texas Instruments Incorporated Methods and apparatus for scan insertion

Also Published As

Publication number Publication date
JP2006277154A (ja) 2006-10-12
US20060218202A1 (en) 2006-09-28
US7350162B2 (en) 2008-03-25

Similar Documents

Publication Publication Date Title
US7162706B2 (en) Method for analyzing and validating clock integration properties in circuit systems
US8196076B2 (en) Optimal flow in designing a circuit operable in multiple timing modes
US8239795B2 (en) Timing analyzing system for clock delay
JP5852361B2 (ja) 部品表を展開する装置及び方法
JP2004013720A (ja) 論理回路のタイミング制約モデル生成方法、論理回路のタイミング制約モデル生成プログラム、およびタイミング制約モデルを用いるタイミングドリブンレイアウト方法
US7472371B2 (en) Description style conversion method, program, and system of logic circuit
US20040088662A1 (en) Timing path detailer
US7657851B2 (en) Device, system, and method for correction of integrated circuit design
JP4448048B2 (ja) 構造解析プログラム
JP2009223661A (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP4370335B2 (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
JP2006268165A (ja) 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体
JP5115003B2 (ja) 論理設計支援システム及びプログラム
JP2008090695A (ja) 集積回路設計方法、集積回路設計装置及び集積回路設計プログラム
JP5262678B2 (ja) 動作合成システム、動作合成方法、及び動作合成用プログラム
JP2005293349A (ja) 回路設計支援システム、設計方法及びプログラム
US6877140B1 (en) Method and system for generating a schematic representing bus structures
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム
JP2009140028A (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
JP2008117136A (ja) 検証支援プログラム、記録媒体、検証支援装置および検証支援方法
JP5115056B2 (ja) 論理回路の記述形式変換方法、プログラム及び装置
JP3751410B2 (ja) 論理回路変換装置
JP2002163312A (ja) ハードウェア設計情報変換装置及びその変換方法
JPH06251102A (ja) 回路設計方法と回路検索方法と回路修正方法および回路設計装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100119

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4448048

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140129

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees