JP5146369B2 - 回路設計プログラム、回路設計方法および回路設計装置 - Google Patents

回路設計プログラム、回路設計方法および回路設計装置 Download PDF

Info

Publication number
JP5146369B2
JP5146369B2 JP2009057307A JP2009057307A JP5146369B2 JP 5146369 B2 JP5146369 B2 JP 5146369B2 JP 2009057307 A JP2009057307 A JP 2009057307A JP 2009057307 A JP2009057307 A JP 2009057307A JP 5146369 B2 JP5146369 B2 JP 5146369B2
Authority
JP
Japan
Prior art keywords
signal
domain
logic
circuit
unit
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
JP2009057307A
Other languages
English (en)
Other versions
JP2010211550A (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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2009057307A priority Critical patent/JP5146369B2/ja
Publication of JP2010211550A publication Critical patent/JP2010211550A/ja
Application granted granted Critical
Publication of JP5146369B2 publication Critical patent/JP5146369B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、回路設計プログラム、回路設計方法および回路設計装置に関する。
主に、回路内で異常を検出したときに内部で生成したり、外部から入力したりしたときに、Dフリップフロップ等の順序回路を初期化するために使用するリセット信号が知られている。
リセット信号には、同期リセット信号と非同期リセット信号の2つが存在する。同期リセット信号は、クロックに同期してフリップフロップを初期化する。また、非同期リセット信号は、クロック信号に無関係にリセット信号がONになったときにフリップフロップを初期化する。
同期リセット信号は、現状では必要により人手で設定しているが、設定箇所が多く、設定漏れが存在したり、リセット状態になる固定値の設定に間違いが混入しやすかったりする。
特開平10−340289号公報
非同期リセット信号を入力するフリップフロップには、非同期リセット入力端子が設けられており、非同期リセット信号は、直接、この入力端子に入力される。このため、非同期リセット信号は、フリップフロップのデータ入力を生成する論理に影響することはない。
一方、同期リセット信号は、フリップフロップのデータ入力を生成する論理に影響を与える。例えば、異なるクロックで動作する回路の間でデータを転送する際に、誤動作等の問題が起きるかどうかをチェックする非同期構造チェックが知られている。このチェックでは、メタ・ステーブルの発生等を防止するために挿入した同期化回路(シンクロナイザ等)が、予め設定したルールに基づいて挿入されているかをチェックする。このチェックの際に、同期リセット信号の影響で、擬似エラー(実際には起こり得ない動作や事象に対してツールがエラー・レポートを出力する状況)が発生することがある。この疑似エラーが発生すると設計者が回路を見直す必要が生じる。
また、論理合成においては、最適化によりリセットがかからない回路が生成されることがあり、やはりエラーが発生してしまい、設計者が回路を見直す必要が生じる。
本発明はこのような点に鑑みてなされたものであり、同期リセット信号を容易かつ確実に抽出することができる回路設計プログラム、回路設計方法および回路設計装置を提供することを目的とする。
上記目的を達成するために、開示の回路設計プログラムが提供される。この回路設計プログラムは、コンピュータを、ドメイン抽出手段、測定手段、および同期リセット判定手段として機能させる。
ドメイン抽出手段は、順序回路の同期リセット信号の候補となる信号のドメインを抽出する。
測定手段は、抽出されたドメインの信号の論理を変化させて順序回路に入力される信号値を測定する。
同期リセット判定手段は、測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する。
開示の回路設計プログラムによれば、同期リセット信号を容易かつ確実に抽出することができる。
実施の形態の回路設計装置の概要を示す図である。 回路設計装置のハードウェア構成例を示す図である。 回路設計装置の構成を示すブロック図である。 同期リセット抽出部の機能を示すブロック図である。 Dフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示す図である。 Dフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示す図である。 同期リセット判定部の処理を説明する図である。 同期リセット抽出部の全体処理を示すフローチャートである。 Dフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示すフローチャートである。 Dフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示すフローチャートである。 判定処理を示すフローチャートである。 同期リセット抽出処理の具体例を示す図である。 同期リセット抽出処理の具体例を示す図である。 同期リセット抽出処理の具体例を示す図である。 同期リセット抽出処理の具体例を示す図である。 抽出した同期リセットを回路設計に適用する場合の処理フローを示す図である。 非同期構造チェック部にレポートを読み込ませたときの例を示す図である。 非同期構造チェック部の処理を示すフローチャートである。 論理合成部にレポートを読み込ませたときの例を示す図である。
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の回路設計装置について説明し、その後、実施の形態をより具体的に説明する。
図1は、実施の形態の回路設計装置の概要を示す図である。
実施の形態の回路設計プログラムは、コンピュータ(回路設計装置)1を、ドメイン抽出手段2、測定手段3、および同期リセット判定手段4として機能させる。
ドメイン抽出手段2は、設計対象の回路における順序回路の同期リセット信号の候補となる信号のドメインを抽出する。
具体的には、順序回路にイネーブル端子が存在する場合、ドメイン抽出手段2は、イネーブル端子からバックトレースし、外部入力端子、他の順序回路またはブラックボックスに到達した端子の信号をドメインとして抽出するのが好ましい。これにより、ドメインを容易かつ確実に抽出することができる。
例えば、図1に示す回路5では、Dフリップフロップ6のイネーブル端子からバックトレースし、インバータ7およびAND回路8を経由して外部入力端子に到達している。そしてその端子の信号(Clear)をドメインとして抽出する。
また、図1には図示していないが、順序回路にイネーブル端子が存在しない場合、ドメイン抽出手段2は、順序回路の出力信号の論理に関係する条件の属する信号のドメインを抽出するのが好ましい。これにより、フリップフロップのドメインを容易かつ確実に抽出することができる。
測定手段3は、抽出されたドメインの信号の論理を変化させて順序回路に入力される信号値を測定する。図1に示す回路5では、信号(Clear)の論理を変化させてDフリップフロップ6に入力される信号値を測定する。
同期リセット判定手段4は、測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する。具体的には、順序回路に入力される信号値が、定数、かつ、定数が全て同一である場合、同期リセット信号が存在すると判断するのが好ましい。これにより、リセット信号が存在するか否かを確実に判定することができる。
このような回路設計装置1によれば、ドメイン抽出手段2によりドメインを抽出し、同期リセット判定手段4により、同期リセット信号が存在するか否かを判定することで、同期リセット信号を容易かつ確実に抽出することができる。
以下、実施の形態をより具体的に説明する。
図2は、回路設計装置のハードウェア構成例を示す図である。
回路設計装置10は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、外部補助記憶装置106および通信インタフェース107が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。また、HDD103内には、プログラムファイルが格納される。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ104aの画面に表示させる。入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号を、バス108を介してCPU101に送信する。
外部補助記憶装置106は、記録媒体に書き込まれた情報を読み取ったり、記録媒体に情報を書き込んだりする。外部補助記憶装置106で読み書きが可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、HDD、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
通信インタフェース107は、ネットワーク30に接続されている。通信インタフェース107は、ネットワーク30を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成の回路設計装置10内には、以下のような機能が設けられる。
図3は、回路設計装置の構成を示すブロック図である。
回路設計装置10は、HDL記述格納部11と、ライブラリ格納部12と、同期リセット抽出部13と、同期リセット格納部14とを有している。
HDL記述格納部11は、RTL(Register Transfer Level)またはネットリスト等の設計対象の回路に関するハードウェア記述言語(Hardware Description Language:HDL)で表したHDL記述を格納している。
ライブラリ格納部12は、ネットリストの部品情報やピンアサインに一致するライブラリを格納している。
同期リセット抽出部13は、ハードウェア記述言語のフリップフロップ記述部分を取り出して、そのフリップフロップのイネーブル端子の有無によって異なる方法で同期リセット記述部分を抽出(以下、単に「同期リセットを抽出」と言う)する。
同期リセット格納部14は、同期リセット抽出部13によって抽出された同期リセットの信号名やリセット値を格納する。
次に、同期リセット抽出部13の機能を説明する。
図4は、同期リセット抽出部の機能を示すブロック図である。
同期リセット抽出部13は、ドメイン抽出部131と、ドメイン一覧格納部132と、定数伝播部133と、同期リセット判定部134とを有している。
ドメイン抽出部131は、Dフリップフロップにイネーブル端子が存在するか否かにより異なった抽出方法でドメインを抽出する。ここで、イネーブル端子は、RTL記述を読み込み、パーズ(文法違反のチェック)、およびエラボレート(モジュールの階層チェック)を行った後の簡易合成により、Dフリップフロップの出力データが決定する条件が全て網羅されていない場合、網羅されない条件として生成される端子である。
まず、Dフリップフロップにイネーブル端子が存在する場合のドメイン抽出部131の処理を説明する。
ドメイン抽出部131は、Dフリップフロップのイネーブル端子から組み合わせ論理をバックトレースし、外部入力端子、Dフリップフロップ出力端子またはブラックボックスに到達した端子の属するネット信号をドメインとして抽出する。抽出したドメインは、ドメイン一覧格納部132に格納する。ここで、ブラックボックスとは、HDL記述が存在しない、または、PLL、I/O等合成スタイルに則っていないRTL記述を言う。
図5は、Dフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示す図である。
図5に示す回路20は、セレクタSel1とレジスタReg1とを備えるDフリップフロップ21と、Clear信号をDフリップフロップ21に供給するAND回路AND1およびAND回路AND2と、インバータInv1〜Inv3とを有している。
レジスタReg1には、クロック信号(clk)が供給されている。
図5に示す例では、ドメイン抽出部131は、イネーブル端子Eからバックトレースを開始する。すると、インバータInv1を経由してAND回路AND2に到達する。
AND回路AND2は、外部入力端子、Dフリップフロップ出力端子またはブラックボックスのいずれにも該当しないので、AND回路AND2の入力側から再度バックトレースを開始する。すると、インバータInv2を経由して到達したネット信号(Clear)を抽出する。
次に、ドメイン抽出部131は、イネーブル端子Eから再びバックトレースを開始する。すると、インバータInv1を経由してAND回路AND2に到達する。AND回路AND2の入力側から再度バックトレースを開始する。すると、インバータInv3を経由して到達したネット信号(InCtrl)を抽出する。
次に、Dフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部131の処理を説明する。
図6は、Dフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示す図である。
ドメイン抽出部131は、RTL記述を読み込み、パーズ・エラボレート後に、その記述の制御とデータの流れを示すCDFG(Control Data Flow Graph)を作成する。そして、Dフリップフロップとなる信号の論理に関係する条件(コントロール)の属するネット信号をドメインとして抽出する。抽出したドメインは、ドメイン一覧格納部132に格納する。
図6に示す例では、RTL記述31を読み込んで作成されたCDFG32を図示している。
if文やCase文等の分岐条件がコントロール部(図6中、三角の部分)になる。また、代入文がデータ部(図6中、四角い部分)になる。
ドメイン抽出部131は、CDFG32から、Dフリップフロップとなる信号(Outdata)の論理に関係する条件の属するネット信号(ClearおよびInCtrl)をドメインとして抽出する。
定数伝播部133は、抽出したドメインに全パターン(2のべき乗)の定数を設定する。そして、シミュレーションにより、定数を伝播させる。具体的には、抽出したドメインのネット信号に「0」および「1」を与える。また、それ以外のネット信号に論理「X」を与える。
そして、ドメインの全パターンについて、シミュレーションによる定数伝播を行い、Dフリップフロップ入力のネット信号値を観測する。
図5に示す回路20を用いて定数伝播の観測処理を説明すると、抽出したドメインのネット信号(ClearおよびInCtrl)にそれぞれ「0」および「1」を与える。また、それ以外のネット信号(InData)に論理「X」を与える。そして、ドメインの全パターン22数=4について、シミュレーションを行って定数を伝播させ、Dフリップフロップ21の入力端子Dのネット信号値を観測する。
同期リセット判定部134は、ドメインの全パターンのシミュレーション結果で、観測箇所のDフリップフロップ入力が定数(0または1)となることがあり、かつ、定数の値が全て同一である場合、同期リセット信号が、抽出したドメインの中に存在すると判定する。
また、同期リセット判定部134は、同期リセット信号が存在すると判定した場合、Dフリップフロップ入力が定数となるドメインの入力パターンをAND論理とし、定数となるパターン数分のOR論理として論理式を生成する。そして、その論理式の論理最適化を行う。そして、論理最適化した論理式に残った信号を同期リセット信号として、論理式の信号が肯定・否定によりリセット値を「1」・「0」として抽出する。
図7は、同期リセット判定部の処理を説明する図である。
図7に示すテーブル41は、観測結果を示すテーブル(表)である。
テーブル41は、ドメインのネット信号、ドメイン以外のネット信号および観測するDFF入力の欄が設けられており、横方向に並べられた情報同士が互いに関連づけられている。
ドメインのネット信号の欄には、抽出されたドメインを識別するドメイン名が設定されている。そして、その下部には観測処理にてドメインのネット信号に与えた論理のパターンが設定されている。
ドメイン以外のネット信号の欄には、ドメイン以外のネット信号を識別する信号名が設定されている。そして、その下部にはその信号名が取り得る論理のパターンが設定されている。
DFF入力の欄には、ドメインのネット信号の欄に設定された論理のパターンが入力されたときのDフリップフロップの入力端子で観測された値が設定されている。
図7に示す例では、観測箇所のDフリップフロップの入力端子の論理が、テーブル41の3番目および4番目のパターンにていずれも「0」になっている。このため、観測箇所のDフリップフロップの入力が定数(0または1)となることがあり、かつ、定数の値が全て同一であるという条件を満たしている。従って、同期リセット判定部134は、同期リセット信号が存在すると判定する。
そして、Dフリップフロップの入力端子の論理が定数となるドメインの論理のパターン(図7中、3番目および4番目のパターン)をAND論理とし、定数となるパターン数分のOR論理として論理式を生成する。そして、生成された論理式(Clear & ~InCtrl + Clear & InCtrl)から論理最適化した論理式(Clear)に残ったネット信号(Clear)を同期リセット信号として抽出する。
次に、同期リセット抽出部13の全体処理を説明する。
図8は、同期リセット抽出部の全体処理を示すフローチャートである。
まず、同期リセット抽出対象のDフリップフロップを取り出す(ステップS1)。
次に、ドメイン抽出部131が、取り出したDフリップフロップのドメインを抽出する(ステップS2)。
次に、定数伝播部133が、定数伝播の観測を行う(ステップS3)。すなわち、ドメインに定数値、それ以外に「X」を設定し、シミュレーション後のDフリップフロップの入力端子の論理を観測する。
次に、同期リセット判定部134が、判定処理を行う(ステップS4)。
以上で全体処理の説明を終了する。
次に、イネーブル端子が存在するDフリップフロップのドメイン抽出部131の処理を説明する。
図9は、Dフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示すフローチャートである。
まず、Dフリップフロップのイネーブル端子からバックトレースを行う(ステップS11)。
次に、バックトレースが終了したか否かを判断する(ステップS12)。
バックトレースが終了した場合(ステップS12のYes)、ドメイン抽出処理を終了する。
一方、バックトレースが終了していない場合(ステップS12のNo)、到達したポイントをチェックする(ステップS13)。
そして、到達したポイントが外部入力、フリップフロップまたはブラックボックスのいずれか否かを判断する(ステップS14)。
ポイントが、外部出力、フリップフロップまたはブラックボックスのいずれかではない場合、到達したポイントの入力側からバックトレースする(ステップS15)。その後、ステップS12に移行し、ステップS12以降の処理を引き続き行う。
一方、ポイントが、外部出力、フリップフロップまたはブラックボックスのいずれかである場合(ステップS14のYes)、到達したネット信号をドメインとしてドメイン一覧格納部132に格納(追加)する(ステップS16)。その後、ステップS12に移行し、ステップS12以降の処理を引き続き行う。
以上でドメイン抽出部131の処理の説明を終了する。
次に、イネーブル端子が存在しないDフリップフロップのドメイン抽出部131の処理を説明する。
図10は、Dフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示すフローチャートである。
まず、CDFGからDフリップフロップの条件信号を抽出する(ステップS21)。
次に、Dフリップフロップの条件信号の抽出が終了したか否かを判断する(ステップS22)。
抽出が終了した場合(ステップS22のYes)、処理を終了する。
一方、抽出が終了していない場合(ステップS22のNo)、Dフリップフロップ信号のコントロールを抽出する(ステップS23)。
そして、抽出した条件信号をドメインとしてドメイン一覧格納部132に格納(追加)する(ステップS24)。その後、ステップS22に移行し、ステップS22以降の処理を引き続き行う。
以上でドメイン抽出部の処理の説明を終了する。
次に、ステップS4の判定処理を説明する。
図11は、判定処理を示すフローチャートである。
まず、観測結果を示すテーブル41を読み込む(ステップS31)。
次に、テーブル41の、あるビットのDFF入力の信号値が定数値か否かを判断する(ステップS32)。
DFF入力の観測値が定数値ではない場合(ステップS32のNo)、ステップS35に移行する。
一方、DFF入力の観測値が定数値である場合(ステップS32のYes)、ドメインに設定したパターンよりAND論理を生成する(ステップS33)。
次に、生成したAND論理をOR論理に追加する(ステップS34)。
次に、全てのパターンの論理式を生成したか否かを判断する(ステップS35)。
全てのパターンの論理式を生成していない場合(ステップS35のNo)、ステップS32に移行し、次のビットのDFF入力の観測値について、ステップS32以降の処理を引き続き行う。
一方、全てのパターンの論理式を生成した場合(ステップS35のYes)、生成した論理式を最適化する(ステップS36)。そして、論理式に残った信号を同期リセット信号として抽出する。
以上で判定処理の説明を終了する。なお、判定処理は、フリップフロップの1ビット毎に行う。
次に、同期リセット抽出処理の具体例を説明する。
<具体例1>
図12は、同期リセット抽出処理の具体例を示す図である。
図12(a)に示すRTL記述31aは、定数が出力に代入されている。すなわち、入力信号はないが、制御信号でフリップフロップの「0」、「1」を変える。具体的には、InCtrl1のときに1になる。Inctrl2のときに「0」になる。
ドメイン抽出部131は、RTL記述31aからネット信号(InCtrl1およびInCtrl2)をドメインとして抽出する。
そして、同期リセット判定部134は、図12(b)に示す、定数伝播部133が定数伝播の観測処理を行って得られたテーブル41aを参照する。すると、Dフリップフロップの入力端子の論理が定数になることはあるが、定数の値が同一ではないため同期リセットが存在しないと判定する。
<具体例2>
図13は、同期リセット抽出処理の具体例を示す図である。
ドメイン抽出部131は、図13(a)に示すRTL記述31bからネット信号(Clear、InitおよびInCtrl)をドメインとして抽出する。
そして、同期リセット判定部134は、図13(b)に示す、定数伝播部133が定数伝播の観測処理を行って得られたテーブル41bを参照する。すると、Dフリップフロップの入力端子の論理が3番目〜8番目のパターンにていずれも同一の定数「0」になっている。
このため、定数となるドメインの論理のパターンをAND論理とし、定数となるパターン数分のOR論理として生成される論理式(~Clear & Init & ~InCtrl + ~Clear & Init & InCtrl + Clear & ~Init & ~InCtrl + Clear & ~Init & InCtrl + Clear & Init & ~InCtrl + Clear & Init & InCtrl)から論理最適化した論理式(Clear + Init)に残ったネット信号(Clear,Init)を同期リセット信号として抽出する。リセット値は、ともに「1」である。
<具体例3>
図14は、同期リセット抽出処理の具体例を示す図である。
ドメイン抽出部131は、図14(a)に示すRTL記述31cからネット信号(Clear、InitおよびInCtrl)をドメインとして抽出する。
そして、同期リセット判定部134は、図14(b)に示す、定数伝播部133が定数伝播の観測処理を行って得られたテーブル41cを参照する。すると、Dフリップフロップの入力端子の論理が7番目および8番目のパターンにていずれも「0」になっている。
このため、定数となるドメインの論理のパターンをAND論理とし、定数となるパターン数分のOR論理として生成される論理式(Clear & Init & ~InCtrl + Clear & Init & InCtrl)から論理最適化した論理式(Clear & Init)に残ったネット信号(Clear,Init)を同期リセット信号として抽出する。リセット値は、ともに「1」である。
<具体例4>
図15は、同期リセット抽出処理の具体例を示す図である。
ドメイン抽出部131は、図15(a)に示すRTL記述31dからネット信号(ClearおよびInCtrl)をドメインとして抽出する。
そして、同期リセット判定部134は、図15(b)に示す、定数伝播部133が定数伝播の観測処理を行って得られたテーブル41dを参照する。すると、Dフリップフロップの入力端子の論理が定数になることがないため同期リセットが存在しないと判定する。
以上述べたように、回路設計装置10によれば、同期リセット抽出部13が同期リセットを抽出するようにした。これにより、例えば、疑似エラーに対し、抽出した同期リセット信号とその値を入力することにより、そのエラーを設計者に通知しないようにすることで、設計者の手間を省くことができる。
また、同期リセット信号を指定することで、フリップフロップのデータ入力前にリセットのかからない論理を生成せずに論理合成することで、エラーの発生を防止することができる。以下具体例を用いて説明する。
図16は、抽出した同期リセットを回路設計に適用する場合の処理フローを示す図である。
回路設計装置10は、さらに、設計仕様格納部51と、RTL設計部52と、記述スタイルチェック部53と、非同期構造チェック部54と、論理合成部55と、ネットリスト格納部56とを有している。
なお、図16では、ライブラリ格納部12および同期リセット抽出部13の図示を省略している。
RTL設計部52は、設計仕様格納部51に格納されている設計仕様からRTLを設計する。設計したRTL設計記述のHDLをHDL記述格納部11に格納する。
記述スタイルチェック部53は、RTL設計記述の文法エラーや、文法エラーにならない問題点をチェックする。
非同期構造チェック部54は、同期リセット格納部14に格納されている同期リセットの信号名やリセット値に基づいて、異なるクロックで動作する回路間でデータを転送する際に、誤動作等の問題が起こるか否かをチェックする。
論理合成部55は、同期リセット格納部14に格納されている同期リセットの信号名やリセット値に基づいて論理合成を行い、RTLからゲートレベルのネットリストを生成する。
図17は、非同期構造チェック部にレポートを読み込ませたときの例を示す図である。
周波数が異なるクロック信号(Tclk)およびクロック信号(Rclk)でデータを転送する場合、メタ・ステーブルが発生することがある。これを防ぐためにクロックRclk(受信側のクロック)でDフリップフロップ21、21aを2つ並べて二段受けするシンクロナイザ61が設けられている。図17に示すようにDフリップフロップ21、21a間に同期リセットを挿入するAND回路AND3が配置される場合がある。
メタ・ステーブルを回避するためには、Dフリップフロップ21、21a間に論理があるのは好ましくないため、非同期構造チェック部54はエラーを検出する。しかし、ネット信号(Clear)からAND回路AND1およびAND回路AND3に至る経路は、クリアがかからなければ回路60には何も影響しないが、同期リセットの影響で、シンクロナイザ61に論理が存在するという疑似エラーが発生するからである。
回路設計装置10によれば、AND回路AND1およびAND回路AND3に入力されるClear信号が、同期リセット信号であることを抽出し、そのレポートを非同期構造チェック部54に読み込ませることでAND回路AND1およびAND回路AND3を無視することができ、そのエラーを設計者に通知しないようにすることで、設計者の手間を省くことができる。
次に、非同期構造チェック部54の処理を詳しく説明する。
図18は、非同期構造チェック部の処理を示すフローチャートである。
まず、同期リセットがONにならない(抽出したリセット値の反対)値をネットに設定して定数を伝播する(ステップS41)。
次に、非同期パスを抽出する(ステップS42)。
次に、非同期パスの前後に論理が存在するか否かを判断する(ステップS43)。
非同期パスの前後に論理が存在しない場合(ステップS43のNo)、ステップS46に移行する。
一方、非同期パスの前後に論理が存在する場合(ステップS43のYes)、多入力で1入力以外が定数か否かを判断する(ステップS44)。
多入力で1入力以外が定数ではない場合(ステップS44のNo)、ステップS46に移行する。
一方、多入力で1入力以外が定数の場合(ステップS44のYes)、当該論理にマークをつける(ステップS45)。
次に、全ての非同期パスを抽出したか否かを判断する(ステップS46)。
全て抽出していない場合(ステップS46のNo)、ステップS42に移行し、ステップS42以降の処理を引き続き行う。
一方、全て抽出した場合(ステップS46のYes)、マークされた論理を無視して非同期構造チェックを行う(ステップS47)。その後、処理を終了する。
以上で非同期構造チェック部54の処理の説明を終了する。
次に、論理合成部55にレポートを読み込ませたときの処理を説明する。
図19は、論理合成部にレポートを読み込ませたときの例を示す図である。
同期リセットが存在すると、最適化オプション(面積や、タイミングを短くする)の影響で、フリップフロップのリセットがかからない。
図19(a)に示すように、セレクタSel2の前段に同期リセットを含むAND−OR論理が存在する論理合成をされてしまうと、セレクタSel2が出力する信号の論理が「X」となり、Dフリップフロップ21bに対してリセットがいつまでもかからない。何故なら、セレクタの制御信号に不定Xが入っていると、セレクタは「X」を出力するからである。
一方、回路設計装置10では、AND回路AND4およびAND回路AND5に入力される信号(Clear)が、同期リセット信号であることを抽出することができるため、その信号を使わない論理合成ができる。
すなわち、図19(b)に示すように、セレクタSel2の後に同期リセット信号を含むAND−OR論理で回路を構成することにより、AND回路AND6に入力されるClear=0でセレクト信号が「0」となり、エラーを回避することができる。
なお、本実施の形態では、同期リセット格納部14に格納された同期リセットのレポートを非同期構造チェック部54または論理合成部55に読み込ませるようにした。しかし、これに限らず、非同期構造チェック部54および論理合成部55が、それぞれ、同期リセット抽出部13の機能に該当する機能を備えるようにしてもよい。
また、回路設計装置10が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、1つの装置が、RTL生成処理までを行ってRTLを生成しておき、他の装置が、そのRTLを用いてリセット信号を抽出するようにしてもよい。
以上、本発明の回路設計プログラム、回路設計方法および回路設計装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、回路設計装置10が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
回路設計プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
1、10 回路設計装置
2 ドメイン抽出手段
3 測定手段
4 同期リセット判定手段
5、20、60 回路
6、21、21a、21b Dフリップフロップ
7、Inv1、Inv2、Inv3 インバータ
8、AND1〜AND6 AND回路
11 HDL記述格納部
12 ライブラリ格納部
13 同期リセット抽出部
14 同期リセット格納部
31〜31d RTL記述
32 CDFG
41〜41d テーブル
51 設計仕様格納部
52 RTL設計部
53 記述スタイルチェック部
54 非同期構造チェック部
55 論理合成部
56 ネットリスト格納部
61 シンクロナイザ
131 ドメイン抽出部
132 ドメイン一覧格納部
133 定数伝播部
134 同期リセット判定部
Reg1 レジスタ
Sel1、Sel2 セレクタ

Claims (8)

  1. コンピュータを、
    順序回路の同期リセット信号の候補となる信号のドメインを抽出するドメイン抽出手段、
    抽出された前記ドメインの信号の論理を変化させて前記順序回路に入力される信号値を測定する測定手段、
    前記測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する同期リセット判定手段、
    として機能させることを特徴とする回路設計プログラム。
  2. 前記順序回路にイネーブル端子が存在する場合、前記ドメイン抽出手段は、前記イネーブル端子からバックトレースし、外部入力端子、他の順序回路またはブラックボックスに到達した端子の信号のドメインを抽出することを特徴とする請求項1記載の回路設計プログラム。
  3. 前記順序回路にイネーブル端子が存在しない場合、前記ドメイン抽出手段は、前記順序回路の出力信号の論理に関係する条件の属する信号のドメインを抽出することを特徴とする請求項1記載の回路設計プログラム。
  4. 前記測定手段は、抽出された前記ドメイン以外のネット信号に不定の論理を与えて前記信号値を測定することを特徴とする請求項1記載の回路設計プログラム。
  5. 前記同期リセット判定手段は、前記順序回路に入力される信号値が、定数、かつ、前記定数が全て同一である場合、同期リセット信号が存在すると判定することを特徴とする請求項1記載の回路設計プログラム。
  6. 前記コンピュータを、さらに、前記同期リセット判定手段により、同期リセット信号が存在すると判定された前記ドメインのネット信号の論理を最適化する論理最適化手段として機能させることを特徴とする請求項1記載の回路設計プログラム。
  7. コンピュータが実行する、
    ドメイン抽出手段が、順序回路の同期リセット信号の候補となる信号のドメインを抽出し、
    測定手段が、抽出された前記ドメインの信号の論理を変化させて前記順序回路に入力される信号値を測定し、
    同期リセット判定手段が、前記測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する、
    ことを特徴とする回路設計方法。
  8. 順序回路の同期リセット信号の候補となる信号のドメインを抽出するドメイン抽出部と、
    抽出された前記ドメインの信号の論理を変化させて前記順序回路に入力される信号値を測定する測定部と、
    前記測定部によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する同期リセット判定部と、
    を有することを特徴とする回路設計装置。
JP2009057307A 2009-03-11 2009-03-11 回路設計プログラム、回路設計方法および回路設計装置 Expired - Fee Related JP5146369B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009057307A JP5146369B2 (ja) 2009-03-11 2009-03-11 回路設計プログラム、回路設計方法および回路設計装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009057307A JP5146369B2 (ja) 2009-03-11 2009-03-11 回路設計プログラム、回路設計方法および回路設計装置

Publications (2)

Publication Number Publication Date
JP2010211550A JP2010211550A (ja) 2010-09-24
JP5146369B2 true JP5146369B2 (ja) 2013-02-20

Family

ID=42971625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009057307A Expired - Fee Related JP5146369B2 (ja) 2009-03-11 2009-03-11 回路設計プログラム、回路設計方法および回路設計装置

Country Status (1)

Country Link
JP (1) JP5146369B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578306B2 (en) * 2010-05-11 2013-11-05 Altera Corporation Method and apparatus for performing asynchronous and synchronous reset removal during synthesis
CN115630601B (zh) * 2022-12-22 2023-03-17 上海合见工业软件集团有限公司 基于回溯算法确定信号相关性的系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2967761B2 (ja) * 1997-06-06 1999-10-25 日本電気株式会社 論理合成方法及び装置
JP2002279006A (ja) * 2001-03-19 2002-09-27 Ricoh Co Ltd 回路設計支援装置
JP2007233842A (ja) * 2006-03-02 2007-09-13 Matsushita Electric Ind Co Ltd リセット動作検証回路の生成方法
JP5265318B2 (ja) * 2008-12-03 2013-08-14 ルネサスエレクトロニクス株式会社 論理検証装置

Also Published As

Publication number Publication date
JP2010211550A (ja) 2010-09-24

Similar Documents

Publication Publication Date Title
US7603636B2 (en) Assertion generating system, program thereof, circuit verifying system, and assertion generating method
JP5432127B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
JP5410414B2 (ja) 回路エミュレーションの入力及び遅延入力のマルチプレクシング
JP5432126B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
JP4271067B2 (ja) 非同期回路検証方法および非同期回路検証プログラム
JP5405451B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
JP4468410B2 (ja) ソフトウェア実行装置および協調動作方法
US7888971B2 (en) Verification support system and method
JP5146369B2 (ja) 回路設計プログラム、回路設計方法および回路設計装置
US7945882B2 (en) Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium
JP2008204199A (ja) 検証装置、検証方法及びプログラム
JPWO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
JP5799645B2 (ja) 電源電圧設定方法及び電源電圧設定プログラム
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム
US8160859B2 (en) Medium storing logic simulation program, logic simulation apparatus, and logic simulation method
JP5348065B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP4983642B2 (ja) 設計検証プログラム、設計検証方法および設計検証装置
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
JP7354815B2 (ja) 検証支援装置、検証支援方法および検証支援プログラム
Kebaili et al. Enabler-based synchronizer model for clock domain crossing static verification
US20110320994A1 (en) Apparatus for designing semiconductor integrated circuit, method of designing semiconductor integrated circuit, and program for designing semiconductor integrated circuit
US20090292837A1 (en) Propagation path specifying device, propagation path specifying method and computer program product
CN117907812A (zh) 电路检测方法及装置、电子设备、存储介质、程序产品
Aggarwal Complete ASIC Design Flow Using Synopsys Synthesis Tools
JP2010181984A (ja) 回路設計支援プログラムおよび回路設計支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121004

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: 20121030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

R150 Certificate of patent or registration of utility model

Ref document number: 5146369

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: 20151207

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees