JP2007102271A - 回路設計支援システム及び方法 - Google Patents

回路設計支援システム及び方法 Download PDF

Info

Publication number
JP2007102271A
JP2007102271A JP2005287489A JP2005287489A JP2007102271A JP 2007102271 A JP2007102271 A JP 2007102271A JP 2005287489 A JP2005287489 A JP 2005287489A JP 2005287489 A JP2005287489 A JP 2005287489A JP 2007102271 A JP2007102271 A JP 2007102271A
Authority
JP
Japan
Prior art keywords
level description
description
correspondence
circuit
design support
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.)
Pending
Application number
JP2005287489A
Other languages
English (en)
Inventor
Katsukiyo Suzuki
克青 鈴木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2005287489A priority Critical patent/JP2007102271A/ja
Publication of JP2007102271A publication Critical patent/JP2007102271A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】不具合の原因であるRTレベル記述内の指定された部品に対応する動作レベル記述内の要素や動作合成命令を設計者に提示できる回路設計支援システム及び方法を提供する。
【解決手段】動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるRTレベル記述をそれぞれ生成する動作合成手段と、動作レベル記述とRTレベル記述の対応関係を生成する対応生成手段と、RTレベル記述内の指定された部品に対応する動作レベル記述の要素を抽出する対応解析手段とを備える。
【選択図】図1

Description

本発明は設計者による回路設計を支援するための回路設計支援システムおよび方法に関する。
回路設計においては、仕様として与えられた遅延量、回路面積、消費電力等に対する様々な制約条件を満たしながら回路が意図したとおりに確実に動作するように設計することが重要である。しかしながら、近年のLSIやVLSI等の半導体集積回路装置は、回路規模のさらなる増大に伴って上述のような制約条件を満足しつつ所望の機能を実現する回路を設計することが益々困難になってきている。そのため、LSIやVLSI等の設計では、設計の支援や設計の一部を自動化する回路設計支援システムが用いられる。この回路設計支援システムの従来の一例が非特許文献1及び特許文献1に記載されている。
図27は従来の回路設計支援システムの構成を示すブロック図である。
図27に示すように、従来の回路設計支援システムは、設計者からの指示やデータ及び設計者が作成した動作レベル記述等を入力するための入力装置30と、回路の動作合成結果や解析結果等を表示するための出力装置40と、動作レベル記述を基に動作合成処理を実行する動作合成手段11及び動作合成後の回路の性能を解析する性能解析手段12として動作するデータ処理装置10と、動作レベル記述が格納される動作レベル記述記憶部21、動作合成手段11によって生成された中間記述が格納される中間記述記憶部22及び動作合成手段11によって生成されたRTレベル(Register Transfer Level)記述が格納されるRTレベル記述記憶部23を備えた記憶装置20とを有する構成である。
動作レベル記述は、設計対象の回路動作を、C言語、C++言語、あるいはjava言語等を用いて表現した記述である。また、RTレベル記述は設計対象の回路をクロック毎の動作にまで具体化した記述であり、中間記述は動作レベル記述からRTレベル記述の生成途中で生成される設計対象の回路仕様等を表現した記述である。
このような構成において、設計者は、予め設計対象の回路の動作を記述した動作レベル記述を作成し、回路設計支援システムの記憶装置20の動作レベル記述記憶部21へ格納しておく。
動作合成手段11は、設計者からの指示にしたがって動作レベル記述記憶部21に格納された動作レベル記述を基に動作合成処理を実行する。動作合成処理には、スケジューリング工程、バインディング工程及び最適化工程が含まれる。
スケジューリング工程は、どの工程(または状態)で、どのような処理や演算等を実行すべきかを決定する。バインディング工程は、動作レベル記述で表現された各処理に対して必要なハードウェアリソース(レジスタや演算器等)を割り当てる。また、最適化工程は、関数呼び出しの解消等のように後工程の処理に適した形式への変換、不要コードの削除、言語レベル最適化による変形処理や後工程としての論理最適化処理等がある。動作合成手段11は、これら動作合成処理の工程毎に中間記述をそれぞれ生成する。
動作合成手段11は、動作合成処理の全ての工程が終了すると、RTレベル記述を生成する。生成したRTレベル記述は、例えば下流の論理合成工程で具体的な論理回路を示す論理ゲート記述に変換され、レイアウト設計工程で論理ゲート記述から回路パターン等が作成される。
性能解析手段12は、動作合成手段11で生成された中間記述やRTレベル記述を基に、それらの記述で表現された回路が意図したように動作するか否かを確認する。併せて、設計した回路が、予め決められた遅延量、回路面積、消費電力等に対する制約条件を満たしているか否かを解析する。性能解析手段12によるRTレベル記述から回路面積、遅延量、消費電力等を解析する方法については、例えば特許文献2に記載されている。
従来の回路設計支援システムでは、性能解析手段12による解析の結果、回路に要求された制約条件(性能)を満たしていない場合は、出力装置40に表示されたRTレベル記述または中間記述から、性能を満たさない原因となる不具合箇所を設計者が発見していた。そして、設計者は発見した不具合箇所に対応する動作レベル記述中の変数、式、文等の要素や動作合成命令を特定し、特定した要素や動作合成命令を修正した後、再度動作合成処理を実施していた。
なお、上記不具合箇所を特定する方法としては、例えば特許文献3に記載された動作合成処理における各工程の処理前と処理後の中間記述間の対応関係を利用することができる。特許文献3では、各工程における処理前の中間記述の変数や文と処理後の中間記述の変数や文の対応関係を生成し、それらの情報を基に発見した不具合箇所に対応する動作レベル記述中の変数、式、文等の要素や動作合成命令を特定している。
また、特許文献4及び特許文献5には、動作合成処理の後に実施される論理合成処理の処理前と処理後の記述を対象とした対応関係の追跡手法が記載されている。特許文献4及び特許文献5は、いずれも論理合成装置に論理合成前と論理合成後の対応関係を出力させ、該対応関係を基に出力記述に対する入力記述の対応箇所を特定している。
特許文献4及び特許文献5で解析対象としている論理合成処理は、入力記述であるRTレベル記述と出力記述である論理ゲート記述とではクロック単位での動作が変わらない。一方、動作合成においては、最適化処理、スケジューリング処理、バインディング処理等によって入力記述(動作レベル記述)と出力記述(RTレベル記述)の対応関係が複雑になる。したがって、単純に文どうしの対応関係を追跡するだけではRTレベル記述中の不具合箇所に対応する動作レベル記述中の候補を絞り込むことができない。
また、動作合成処理の各工程には、記述の複製や結合処理が含まれているため、特許文献3に記載されたような対応関係は、一般に多対多の関係となる。そのため、設計者はRTレベル記述中で発見した不具合箇所に対応する動作レベル記述の要素を見出すために全ての対応関係を追跡する必要があるため、不具合の原因を把握するまでに時間を要してしまう。
なお、従来の回路設計支援システムにおける回路設計は、以下のような手順でも実施される。
まず、動作合成によって得られたRTレベル記述を下流の設計工程(論理合成工程)に流す。下流の設計工程においては、回路面積、遅延量、消費電力等について、より詳細な回路性能の見積もりを行う。その結果、設計した回路の性能が仕様を満たしていないと判定された場合、その原因となるRTレベル記述内の部品を下流工程の設計者が特定する。そして、特定したRTレベル記述の部品に対応する動作レベル記述の要素、または動作合成命令を類推する。最後に上記類推した動作レベル記述の要素や動作合成命令を修正して、再度、動作合成を実施する。
特開平6−60143号公報 特開平10−187783号公報 特開2003−141202号公報 特開平5−2621号公報 特開平10−222550号公報 Daniel Gajsky, Nikil Dutt, Allen, Steve Lin, "HIGH-LEVEL SYNTHESIS", Kluwer Academic Publishers, p1992.
上述したように、従来の回路設計支援システムでは、動作レベル記述、中間記述及びRTレベル記述の対応関係を解析して、RTレベル記述内で発見された不具合箇所に対応する動作レベル記述内の要素や動作合成命令を特定するための仕組みが存在しない。そのため、不具合の原因である動作レベル記述内の要素や動作合成命令を特定することが困難であるという問題がある。
また、従来の回路設計支援システムでは、動作合成処理の下流の設計工程で発見されたRTレベル記述内の不具合箇所に対応する動作レベル記述の要素や動作合成命令を特定するための仕組みが存在しない。そのため、不具合の原因である動作レベル記述内の要素や動作合成命令を特定することが困難であるという問題がある。
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、不具合の原因であるRTレベル記述内の指定された部品に対応する動作レベル記述内の要素や動作合成命令を設計者に提示できる回路設計支援システム及び方法を提供することを目的とする。
上記目的を達成するため本発明の回路設計支援システムは、動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるRTレベル記述をそれぞれ生成する動作合成手段と、
前記動作レベル記述と前記RTレベル記述の対応関係を生成する対応生成手段と、
前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析手段と、
を有する構成である。
一方、本発明の回路設計支援方法は、設計者による回路設計を支援するための回路設計支援方法であって、
コンピュータにより、
動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるRTレベル記述をそれぞれ生成する動作合成処理と、
前記動作レベル記述と前記RTレベル記述の対応関係を生成する対応生成処理と、
前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析処理と、
を実行する方法である。
上記のような回路設計支援システム及び方法では、動作レベル記述とRTレベル記述の対応関係を生成し、該対応関係に基づいてRTレベル記述内の指定された部品に対応する動作レベル記述の要素を抽出するため、RTレベル記述内で発見された不具合の原因となる部品に対応する動作レベル記述の要素を設計者に提示できる。
本発明によれば、設計者は不具合の原因であるRTレベル記述内の部品に対応する動作レベル記述内の要素を容易に知ることができる。よって、RTレベル記述で表現された回路が性能を満たさない場合に、その原因を把握するまでの時間を短縮できる。また、下流の設計工程で不具合が発見された場合でも、修正に要する時間を短縮できる。
さらに、下流の設計工程で問題となりそうな性能指標について、十分な性能をもつRTレベル記述が完成するまで動作レベル記述及び動作合成命令を繰り返し修正できる。よって、下流の設計工程で不具合が発生する可能性が低減するため、回路の設計期間を短縮できる。
次に本発明について図面を参照して説明する。
図1は本発明の回路設計支援システムの一構成例を示すブロック図である。
図1に示すように、本発明の回路設計支援システムは、設計者からの指示や情報及び設計者が作成した動作レベル記述等を入力するための入力装置120と、回路の動作合成結果や解析結果等を表示するための出力装置130と、動作レベル記述を基に動作合成処理を行うと共に、動作合成後の回路の性能解析及び動作合成前と動作合成後の記述間の対応関係を生成するデータ処理装置100と、動作レベル記述及びデータ処理装置100で生成された中間記述、RTレベル記述、対応関係等が格納される記憶装置110とを有する構成である。
データ処理装置100は、動作レベル記述から回路を合成する動作合成手段101と、動作レベル記述、中間記述、RTレベル記述及び動作合成手段101の動作合成命令の対応関係を生成する対応生成手段102と、合成された回路の性能を解析する性能解析手段103と、性能解析手段103等から指定された不具合の原因であるRTレベル記述内の部品に対応する動作レベル記述の要素や動作合成命令を対応生成手段102が生成した対応関係を用いて特定する対応解析手段104とを備えている。
記憶装置110は、動作レベル記述が格納される動作レベル記述記憶部111と、動作合成手段101によって生成された中間記述が格納される中間記述記憶部112と、動作合成手段101によって生成されたRTレベル記述が格納されるRTレベル記述記憶部113と、対応生成手段102によって生成された対応関係が格納される対応関係記憶部114と、動作合成命令が格納される動作合成命令記憶部115とを備えている。
動作合成手段101は、動作レベル記述記憶部111に格納された動作レベル記述を基に、演算実行時間の決定(スケジューリング)、演算に必要なリソースの選択(アロケーション)、リソースの割り当て(バインディング)、及びその他の最適化処理を動作合成命令記憶部115に格納された動作合成命令にしたがって実行する。また、動作合成手段101は、上記動作合成処理の各工程で生成した中間記述を中間記述記憶部112へ格納する。さらに、動作合成結果に基づいてRTレベル記述を生成し、生成したRTレベル記述をRTレベル記述記憶部113へ格納する。動作合成手段101で実行する処理については、例えば非特許文献1に記載されている。
対応生成手段102は、RTレベル記述内のモジュールや配線等の各部品と動作合成処理の各工程で生成された中間記述内の変数、式、文等の各要素との対応関係、中間記述内の各要素と動作レベル記述内の変数、式、文等の各要素との対応関係、RTレベル記述内の各部品と動作レベル記述内の各要素との対応関係、及びRTレベル記述内の各部品または中間記述内の各要素と動作合成手段101の動作合成命令との対応関係を、例えば表形式でそれぞれ生成し、記憶手段110の対応関係記憶部114へ格納する。対応生成手段102には、動作合成手段101の各工程において、どのような対応関係を生成すべきかを指定する規則を予め組み込んでおく。
性能解析手段103は、中間記述またはRTレベル記述から、遅延量、処理に要するクロックサイクル数、回路面積、消費電力等の回路性能を見積もり、その見積もり結果から回路に要求された制約条件を満たさない原因となる部品を特定する。そして、特定したRTレベル記述の部品を他の部品と区別して出力装置130に表示するための情報を生成する。性能解析手段103の処理結果は、性能解析手段103の制御によって出力装置130に表示してもよく、データ処理装置100が備えるその他の手段あるいは不図示の出力装置制御手段の制御によって出力装置130に表示してもよい。
対応解析手段104は、性能解析手段103が特定したRTレベル記述内の部品、または入力装置120を介して入力された、設計者が指定したRTレベル記述内の部品に対応する動作レベル記述の要素、または動作合成手段101の動作合成命令を対応関係生成手段102が生成した対応関係を用いて特定する。対応解析手段104は、動作レベル記述内の特定した要素や動作合成命令を、他の要素や動作合成命令と区別して出力装置130に表示するための情報を生成する。対応解析手段104の処理結果は、対応解析手段104の制御によって出力装置130に表示してもよく、データ処理装置100が備えるその他の手段あるいは不図示の出力装置制御手段の制御によって出力装置130に表示してもよい。
なお、本実施形態の回路設計支援システムが有するデータ処理装置100及び記憶装置110は、図1に示した各構成要素の機能を実現するLSIや論理回路等によって構成されていてもよく、図1に示した各構成要素の機能を情報処理装置(コンピュータ)によって実現してもよい。その場合、情報処理装置は、CPUを含むデータ処理装置と、記憶装置と、記録媒体とを有し、データ処理装置は、記録媒体に格納されたプログラムを読み込み、該プログラムにしたがってCPUにより本実施形態の動作合成手段101、対応生成手段102、性能解析手段103及び対応解析手段104の処理をそれぞれ実行する。また、記憶装置は、そのメモリ領域が、動作レベル記述記憶部111、中間記述記憶部112、RTレベル記述記憶部113、対応関係記憶部114及び動作合成命令記憶部115に分割されてそれぞれ使用される。
次に、図1及び図2を用いて本実施形態の回路設計支援システムの動作について説明する。
図2は図1に示した回路設計支援システムの動作を示すフローチャートである。
図2に示すように、入力装置120を介して設計者が作成した動作レベル記述及び動作合成命令が入力されると、データ処理装置100は、入力された動作レベル記述を動作レベル記述記憶部111へ格納し、動作合成命令を動作合成命令記憶部115へ格納する(ステップA1)。
動作合成手段101は、設計者からの指示にしたがって動作レベル記述記憶部111に格納された動作レベル記述に基づき動作合成処理を実行する(ステップA2)。また、動作合成処理の過程で生成される中間記述を中間記述記憶部112へ格納する。
対応生成手段102は、動作レベル記述、中間記述、動作合成命令及びRTレベル記述間の対応関係をそれぞれ生成し、対応関係記憶部114へ格納する(ステップA3)。
動作合成手段101による動作合成処理及び対応生成手段102による対応関係の生成処理は、動作合成処理が終了してRTレベル記述が生成されるまで繰り返す(ステップA4)。
性能解析手段103は、動作合成手段101が生成したRTレベル記述で表現される回路の性能を解析し(ステップA5)、予め決められた回路性能を満たさない場合は、その原因となるRTレベル記述の部品を特定する(ステップA6)。なお、本実施形態の回路設計支援システムでは、下流の設計工程で不具合箇所が発見された場合のように、設計者がRTレベル記述内の不具合の原因となる部品を特定した場合は、入力装置120を介して入力されたRTレベル記述の部品を以降の工程における解析対象とする(ステップA7)。
対応解析手段104は、性能解析手段103または設計者が指定したRTレベル記述の部品に対応する中間記述または動作レベル記述の要素を対応生成手段102が生成した対応関係を追跡することで抽出する(ステップA8)。対応解析手段104で抽出した、指定されたRTレベル記述の部品に対応する動作レベル記述または中間記述の要素は、動作レベル記述及び中間記述内に複数存在する可能性があるが、その場合はそれらを全て抽出する。
最後に、対応解析手段104は、抽出した中間記述または動作レベル記述の要素を出力装置130に区別して表示するための情報を生成する(ステップA9)。
本発明によれば、動作レベル記述とRTレベル記述の対応関係を対応生成手段102で生成し、該対応関係に基づいて対応解析手段104がRTレベル記述内の指定された部品に対応する動作レベル記述の要素を抽出し、その抽出結果が出力装置130に出力されるため、RTレベル記述内の不具合の原因となる部品に対応する動作レベル記述の要素を設計者に提示できる。
したがって、性能解析手段103の解析結果によって発見された不具合の原因であるRTレベル記述内の部品、あるいは設計者によって指定されたRTレベル記述内の部品に対応する動作レベル記述内の要素や動作合成命令を設計者は容易に知ることができる。よって、RTレベル記述で表現された回路が性能を満たさない場合に、その原因を把握するまでの時間を短縮できる。また、下流の設計工程で不具合が発見された場合でも、修正に要する時間を短縮できる。
さらに、下流の設計工程で問題となりそうな性能指標について、予め性能解析手段103を用いて解析することで、十分な性能をもつRTレベル記述が完成するまで動作レベル記述及び動作合成命令を繰り返し修正できる。よって、下流の設計工程で不具合が発生する可能性が低減するため、回路の設計期間を短縮できる。
次に本発明の回路設計支援システムの実施例について説明する。
(第1実施例)
まず、第1実施例で用いる動作レベル記述の一例を図3に示す。
動作レベル記述は、一般に、C言語、C言語に端子やレジスタなどの部品や並列動作が記述できるようハードウェア向けの拡張を施した言語、C++言語、SystemC、Verilog−HDL、VHDL等を用いて作成される。図3はC言語を用いて作成した動作レベル記述の例である。図3に示す動作レベル記述に対して動作合成を実行すると、図4〜図6に示す中間記述が生成される。
図4は、図3に示した動作レベル記述について、変数o1と式a+bの等価性を利用して図3の文1−3に示す乗算及び減算を、文2−3に示す一つの減算に置き換える最適化処理を実施した直後の第1の中間記述を示している。
また、図5は図4に示した第1の中間記述を基にスケジューリングが完了した直後の第2の中間記述の例である。図5に示す第2の中間記述のSTATE1、STATE2、STATE3等のラベルは、回路動作におけるクロックサイクルの境界を示している。例えば、STATE1とSTATE2間に位置する文3−2及び文3−3は第1のクロックサイクルで実行される。また、STATE2とSTATE3間に位置する文3−5から3−8は第2のクロックサイクルで実行される。STATE3からプログラムの最後までに位置する文3−10及び文3−11は第3のクロックサイクルで実行される。回路はここで処理を終了するかプログラムの先頭から再び実行する。
図6は図5に示した第2の中間記述を基にハードウェア資源のバインディングが完了した直後の第3の中間記述の例である。図中r1、r2はレジスタを示す変数であり、add、subは演算器を示す関数である。
図7(a)は図3に示した動作レベル記述から生成されるRTレベル記述の一例を示し、図7(b)は図3に示した動作レベル記述から動作合成処理によって得られる回路を示す図である。
RTレベル記述は、一般に、Verilog−HDL、VHDL、SystemC等の言語を用いて記述される。図7(a)は、Verilog−HDLを用いた記述例である。
動作合成処理によって生成されたRTレベル記述は、レジスタや演算器等の部品、及び各部品間のデータ転送を記述している。図中、mux1からmux8は、状態毎にデータ転送を実施するマルチプレクサを示している。
例えば、マルチプレクサmux1は、第1の引数である信号STATEの1ビット目(STATE[1])の値が「1」のときに出力端子から第2の引数である信号aの値を出力し、第3の引数である信号STATEの2ビット目(STATE[2])の値が「1」のときに出力端子から第4の引数である信号cの値を出力し、第5の引数である信号STATEの3ビット目(STATE[3])の値が「1」のときに出力端子から第6の引数である値「0」を出力する。第7の引数であるaddi1は、mux1の出力端子が接続される信号の名前である。
対応生成手段102は、動作合成処理の各工程で図8から図11に示すような対応関係を生成する。動作合成処理の各工程でどのような対応関係を生成するかは、予め規則として対応生成手段102に格納しておく。対応生成手段102は、動作合成処理によって中間記述が生成される度に、その対応関係を対応関係記憶部114に格納できる表形式で生成する。このような処理を繰り返すことで、動作合成処理の終了時には、中間記述、対応関係表、及びRTレベル記述がそれぞれ生成される。
例えば、図3に示した動作レベル記述は、動作合成手段101の最適化処理によって図4に示した第1の中間記述に変換される。この場合、対応生成手段102は図8に示す対応関係表を生成する。
同様に、図4に示した第1の中間記述は、動作合成手段101のスケジューリング処理によって図5に示した第2の中間記述に変換される。この場合、対応生成手段102は図9に示す対応関係表を生成する。
また、図5に示した第2の中間記述は、動作合成手段101のバインディング処理によって図6に示した第3の中間記述に変換される。この場合、対応生成手段102は図10に示す対応関係表を生成する。
さらに、図6に示した第3の中間記述は、動作合成手段101の動作合成処理が完了した後に図7(a)に示したRTレベル記述に変換される。この場合、対応生成手段102は図11に示す対応関係表を生成する。
性能解析手段103は、動作合成手段101によって生成されたRTレベル記述で表現された回路について、その遅延量、動作クロック周波数、実行クロックサイクル数、回路面積、消費電力等の回路性能を解析する。例えば、特許文献1には回路の動作クロックの最高周波数を決定するために、全てのレジスタ間の最大遅延量を静的に求めるための方法が記載されている。この特許文献1に記載された方法にしたがって性能解析手段103が解析した結果の一例(レポート)を図12に示す。
図12には性能解析手段103によって発見された最大遅延を持つパスが経由する点とそれらの点における信号の到着時刻がそれぞれ記載されている。例えば、MUX1/i2と併記された数字0.5は、始点dから終点r2へ至るパスにおいて、部品MUX1の入力端子i2へ信号が到着する時刻が0.5ns後であることを示している。パスの終点r2へ到着する時刻を参照すれば、このパスの遅延は2.0nsであることが判る。このパスが全てのレジスタを通る最大遅延パスであると仮定すると、この回路は2.0ns以下の周期をもつクロック、すなわち500MHz以上のクロックでは動作しないことになる。よって、回路に対して500MHzよりも高い周波数の動作が要求されている場合、設計者は要求を達成するために動作レベル記述、または動作合成命令を変更しなければならない。
また、図12に示したレポートを参照することで、最大遅延を持つパスはRTレベル記述の部品d、MUX4、sub、r2を経由するパスであることが判る。
本発明の回路設計支援システムでは、上記性能解析結果を基にRTレベル記述の最大遅延を持つパスに対応する動作レベル記述の要素を対応解析手段104により探索する。
例えば、図11に示した対応関係表を参照すると、RTレベル記述の部品d、MUX4、sub1、r2に対応するのは、第3の中間記述の変数d、r2、文4−3、文4−8であることが判る。また、図10に示した対応関係表を参照すると、第3の中間記述の変数d、r2、文4−3、文4−8に対応するのは、第2の中間記述の変数d、o2_t、o4_t、文3−3、文3−8であることが判る。さらに、図9に示した対応関係表を参照すると、第2の中間記述の変数d、o2_t、o4_t、文3−3、文3−8に対応するのは、第1の中間記述の変数d、o2、o4、文2−3、文2−4であることが判る。ここで、対応解析手段104は第2の中間記述を用いて動作レベル記述の対応する要素の候補を絞り込む。追跡対象である変数d、o2_t、o4_tは、STATE2及びSTATE3のみで利用されていることが第2の中間記述から判る。一方、追跡対象である文3−3はSTATE1において実行される。したがって、文3−3は現在追跡しているパスの候補から除外できるため、第1の中間記述の変数d, o2、o4、文2−4のみを追跡すればよい。最後に、図8に示した対応関係を参照して、最大遅延を持つパスを生成する動作レベル記述は変数d、o2、o4、文1−3であることが判る。以上より、最大遅延パスを生成する動作レベル記述は文1−3であると特定できる。
対応解析手段104は、特定した文1−3を他の文と区別して、例えば出力装置130にハイライト表示するための情報を生成する。これにより設計者は、性能を改善するためには動作レベル記述の文1−3を書き換えればよいことが判る。
(第2実施例)
第2実施例では、最大遅延量を持つパスのレポートから、条件分岐を利用して性能を満たさない動作レベル記述の要素を特定する例を示す。
第2実施例では、図13に示す動作レベル記述を動作合成した結果、性能解析手段103により図14に示す最大遅延量を持つパスのレポート(遅延レポート)が得られたとする。
図13に示した動作レベル記述によれば、文5−1に記載された条件x<yが成立したとき、文5−2の演算が実行され、成立しないときは文5−3の演算が実行される。したがって、文5−2の減算処理と文5−4の減算処理とは同時に実行しないため、図15(a)に示すように動作合成後の回路ではこれらの減算処理に対して同じ演算器SUB1が割り当てられている。
一方、図14に示した遅延レポートを参照すると、最大遅延量を持つパスは、端子x、演算器CMP1の端子i1、マルチプレクサMUX1の端子s1、演算器SUB1の端子i1、端子o1を経由するパスであり、それらの部品に対する信号の到着時間がそれぞれ記載されている。
対応解析手段104は、この最大遅延を持つパスに対応する動作レベル記述の要素を以下の手順で特定する。
図15(b)にRTレベル記述の部品と動作レベル記述の要素との対応関係を示す。ここでは中間記述の要素とRTレベル記述の部品または動作レベル記述の要素との対応関係は省略する。
まず始めに、演算器SUB1について対応関係を追跡すると、演算器SUB1は動作レベル記述の文5−2及び文5−3に対応していることが判る。同様に、端子x、演算器CMP1、端子o1について追跡すると、これらの部品は動作レベル記述の文5−2及び文5−3に対応していることが判る。
マルチプレクサMUX1、MUX2は、一方の制御端子s1に値「1」が入力されたとき、対応するデータ入力端子i1の値を選択して出力し、他方の制御端子s2に値「1」が入力されたとき、対応するデータ入力端子i2の値を選択して出力端子o1から出力する部品である。
図14に示したように、最大遅延量を持つパスにはMUX1の制御端子s1が含まれているが、このMUX1の制御端子s1に対する入力は分岐条件であるため、最大遅延量を持つパスに対応するのは文5−1の条件が成立したとき、すなわち文5−2であることが判る。
以上より、対応解析手段104は、設計者に対して動作レベル記述内の文5−2を修正候補として提示する。
(第3実施例)
第3実施例では、部品毎の回路面積のレポートから、ビット幅情報を利用して対応する動作レベル記述の要素を特定する例を示す。
第3実施例では、図16に示す動作レベル記述を動作合成し、性能解析手段103により図17に示す部品毎の回路面積のレポート(面積レポート)が得られたとする。
図17に示す面積レポートを参照すると、演算器MUL1の面積が9800、演算器MUL2の面積が1200であることが判る。
対応解析手段104は、この最大の回路面積を持つ演算器MUL1に対応する動作レベル記述の要素を以下の手順で特定する。
まず、図18(b)に示す対応関係を解析すると、演算器MUL1は文6−1と文6−2から生成されていることが判る。この2つの演算の入力信号のビット幅に着目すると、文6−1の演算は8ビット幅のchar型変数aとbの乗算である。また、文6−2の演算は32ビット幅のint型変数cとdの乗算である。
文6−1と文6−2は、共に演算器MUL1に割り当てられた演算であるが、回路面積を増大させるのはビット幅の大きいint型の変数の演算であるため、回路面積を増大させている動作レベル記述は文6−2と特定できる。
以上より、対応解析手段104は、設計者に対して動作レベル記述の文6−2を修正候補として提示する。
(第4実施例)
第4実施例では、部品毎の消費電力のレポートから、ループカウンタの値、スケジューリング結果及び対応関係を利用して、対応する動作レベル記述を特定する例を示す。
第4実施例では、図19に示す動作レベル記述を動作合成し、性能解析手段103により図20に示す部品毎の消費電力のレポート(電力レポート)が得られたとする。なお、図20に示すREG1、REG2はレジスタ、MULは乗算を実行する演算器、CMP1は比較処理を実行する演算器である。
図20に示した電力レポートでは、消費電力が最大となるのは時刻100nsであり、その時点における部品毎の消費電力は、REG1が100uW、REG2が100uW、MULが300uW、CMPが200uWである。また、レジスタREG1、REG2に格納される値は15、300である。
対応解析手段104は、この消費電力が最大となる時刻100nsにおいて、最大の電力を消費している演算器MULに対応する動作レベル記述の要素を以下の手順で特定する。
まず、図21に示す対応関係を参照すると、演算器MULは文7−3から生成されていることが判る。図19に示すように、文7−3はforループの内部に存在し、このループはn回実行されるため、n回のうちどの実行時に消費電力が最大となるのか特定できない。
そこで、別の部品REG1の対応関係を追跡すると、REG1は変数iから生成され、変数iはfor文のカウンタとして利用されていることが文7−2から判る。よって、時刻100nsにおけるREG1の値から、電力が最大となるのは15回目のforループの実行時であることが判る。
対応解析手段104は、出力装置130に上記の特定結果を表示するための情報を生成することで設計者に提示する。設計者は、消費電力を低下させるために15回目のループ実行時における演算の電力を低減すればよいことが判る。
(第5実施例)
第5実施例では、最大遅延量を持つパスのレポートから動作合成命令を特定する例を示す。
第5実施例では、図22に示す動作レベル記述から図23に示す動作合成命令を用いて動作合成処理を実行し、性能解析手段103により図24に示す最大の遅延量を持つパスのレポート(遅延レポート)が得られたとする。なお、図23に示すreadは動作レベル記述記憶部111に格納された動作レベル記述を記憶装置の作業用の領域に移動する命令であり、factoize_onは因数分解の最適化を有効にする命令であり、synthesizeは動作合成処理を実施する命令である。
図24に示す遅延レポートを参照すると、回路の最大遅延量を持つパスは、端子a、演算器MULの端子i1、演算器ADD1の端子i1、端子o1を通るパスであることが判る。
対応解析手段104は、この最大遅延量を持つパスに対応する動作レベル記述の要素を以下の手順で特定する。
図26に示す対応関係より、この遅延レポートに存在する部品は動作レベル記述の文8−1に対応することが判る。また、図25に示す動作合成手段101による最適化処理直後の中間記述、及び図26に示す対応関係を参照すると、図25に示す中間記述は因数分解最適化を有効にする動作合成命令factorize_onによって生成されたことが判る。
したがって、最大遅延量を持つパスは動作レベル記述の文8-1によって生成され、かつ因数分解最適化によって遅延が増大していることが判る。
対応解析手段104は、出力装置130に上記の特定結果を表示するための情報を生成することで設計者に提示する。設計者はこの因数分解最適化を回避することによる遅延の改善を検討できる。
本発明の回路設計支援システムの一構成例を示すブロック図である。 図1に示した回路設計支援システムの動作を示すフローチャートである。 本発明の回路設計支援システムの第1実施例で用いる動作レベル記述を示す図である。 図3に示した動作レベル記述に対して最適化処理を実施した直後の中間記述の一例を示す図である。 図4に示した中間記述に対してスケジューリング処理を実施した直後の中間記述の一例を示す図である。 図5に示した中間記述に対してバインディング処理を実施した直後の中間記述の一例を示す図である。 図3に示した動作レベル記述から生成したRTレベル記述の一例、及び動作合成で得られた回路を示す図である。 図3に示した動作レベル記述と図4に示した中間記述の対応関係の一例を示す図である。 図4に示した中間記述と図5に示した中間記述の対応関係の一例を示す図である。 図5に示した中間記述と図6に示した中間記述の対応関係の一例を示す図である。 図6に示した中間記述と図7に示したRTレベル記述の対応関係の一例を示す図である。 図7に示したRTレベル記述を解析して得られた最大遅延経路のレポートの一例を示す図である。 本発明の回路設計支援システムの第2実施例で用いる動作レベル記述を示す図である。 図13に示した動作レベル記述の動作合成結果を解析して得られた最大遅延経路のレポートの一例を示す図である。 図13に示した動作レベル記述から動作合成によって得られた回路及び対応関係の一例を示す図である。 本発明の回路設計支援システムの第3実施例で用いる動作レベル記述を示す図である。 図16に示した動作レベル記述の動作合成結果を解析して得られた回路面積のレポートの一例を示す図である。 図16に示した動作レベル記述から動作合成によって得られた回路及び対応関係の一例を示す図である。 本発明の回路設計支援システムの第4実施例で用いる動作レベル記述を示す図である。 図19に示した動作レベル記述の動作合成結果を解析して得られた最大消費電力のレポートの一例を示す図である。 図19に示した動作レベル記述から動作合成によって得られた回路部品と動作レベル記述の対応関係の一例を示す図である。 本発明の回路設計支援システムの第5実施例で用いる動作レベル記述を示す図である。 本発明の回路設計支援システムの第5実施例で用いる動作合成命令を示す図である。 図22に示した動作レベル記述の動作合成結果を解析して得られた最大遅延経路のレポートの一例を示す図である。 図22に示した動作レベル記述から動作合成によって得られた中間記述の一例を示す図である。 図22に示した動作合成記述、図23に示した動作合成命令、図24に示した回路部品及び図25に示した中間記述の対応関係の一例を示す図である。 従来の回路設計支援システムの構成を示すブロック図である。
符号の説明
100 データ処理装置
101 動作合成手段
102 対応生成手段
103 性能解析手段
104 対応解析手段
110 記憶装置
111 動作レベル記述記憶部
112 中間記述記憶部
113 RTレベル記述記憶部
114 対応関係記憶部
115 動作合成命令記憶部
120 入力装置
130 出力装置

Claims (30)

  1. 動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるRTレベル記述をそれぞれ生成する動作合成手段と、
    前記動作レベル記述と前記RTレベル記述の対応関係を生成する対応生成手段と、
    前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析手段と、
    を有する回路設計支援システム。
  2. 前記対応生成手段は、
    前記中間記述と前記RTレベル記述の対応関係を生成し、
    前記対応解析手段は、
    前記RTレベル記述内の指定された部品に対応する前記中間記述の要素を抽出する請求項1記載の回路設計支援システム。
  3. 前記対応生成手段は、
    前記動作レベル記述と前記中間記述の対応関係を生成し、
    前記対応解析手段は、
    前記中間記述内の指定された要素に対応する前記動作レベル記述の要素を抽出する請求項1または2記載の回路設計支援システム。
  4. 前記RTレベル記述で表現される回路の性能を解析し、該性能が予め決められた仕様を満たさない原因となる該RTレベル記述内の部品を指定する性能解析手段を、さらに有する請求項1から3のいずれか1項記載の回路設計支援システム。
  5. 前記対応解析手段は、
    前記RTレベル記述内の指定された部品を、該RTレベル記述の他の部品と区別して出力装置に表示するための情報を生成する請求項1から4のいずれか1項記載の回路設計支援システム。
  6. 前記対応解析手段は、
    前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を、該動作レベル記述の他の要素と区別して出力装置に表示するための情報を生成する請求項1から5のいずれか1項記載の回路設計支援システム。
  7. 前記対応解析手段は、
    前記RTレベル記述内の指定された部品に対応する前記中間記述の要素を、該中間記述の他の要素と区別して出力装置に表示するための情報を生成する請求項2から6のいずれか1項記載の回路設計支援システム。
  8. 前記性能解析手段は、
    前記RTレベル記述で表現される回路の遅延量を解析する請求項4から7のいずれか1項記載の回路設計支援システム。
  9. 前記性能解析手段は、
    前記RTレベル記述で表現される回路の消費電力を解析する請求項4から8のいずれか1項記載の回路設計支援システム。
  10. 前記性能解析手段は、
    前記RTレベル記述で表現される回路の回路面積を解析する請求項4から9のいずれか1項記載の回路設計支援システム。
  11. 設計者による回路設計を支援するための回路設計支援方法であって、
    コンピュータにより、
    動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるRTレベル記述をそれぞれ生成する動作合成処理と、
    前記動作レベル記述と前記RTレベル記述の対応関係を生成する対応生成処理と、
    前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析処理と、
    を実行する回路設計支援方法。
  12. 前記対応生成処理に、
    前記中間記述と前記RTレベル記述の対応関係を生成する処理を含み、
    前記対応解析処理に、
    前記RTレベル記述内の指定された部品に対応する前記中間記述の要素を抽出する処理を含む請求項11記載の回路設計支援方法。
  13. 前記対応生成処理に、
    前記動作レベル記述と前記中間記述の対応関係を生成する処理を含み、
    前記対応解析処理に、
    前記中間記述内の指定された要素に対応する前記動作レベル記述の要素を抽出する処理を含む請求項11または12記載の回路設計支援方法。
  14. 前記RTレベル記述で表現される回路の性能を解析し、該性能が予め決められた仕様を満たさない原因となる該RTレベル記述内の部品を指定する性能解析処理を、さらに有する請求項11から13のいずれか1項記載の回路設計支援方法。
  15. 前記対応解析処理に、
    前記RTレベル記述内の指定された部品を、該RTレベル記述の他の部品と区別して出力装置に表示するための情報を生成する処理を含む請求項11から14のいずれか1項記載の回路設計支援方法。
  16. 前記対応解析処理に、
    前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を、該動作レベル記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項11から15のいずれか1項記載の回路設計支援方法。
  17. 前記対応解析処理に、
    前記RTレベル記述内の指定された部品に対応する前記中間記述の要素を、該中間記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項12から16のいずれか1項記載の回路設計支援方法。
  18. 前記性能解析処理に、
    前記RTレベル記述で表現される回路の遅延量を解析する処理を含む請求項14から17のいずれか1項記載の回路設計支援方法。
  19. 前記性能解析処理に、
    前記RTレベル記述で表現される回路の消費電力を解析する処理を含む請求項14から18のいずれか1項記載の回路設計支援方法。
  20. 前記性能解析処理に、
    前記RTレベル記述で表現される回路の回路面積を解析する処理を含む請求項14から19のいずれか1項記載の回路設計支援方法。
  21. 設計者による回路設計の支援をコンピュータに実行させるためのプログラムであって、
    動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述及び該動作合成処理の結果であるRTレベル記述をそれぞれ生成する動作合成処理と、
    前記動作レベル記述と前記RTレベル記述の対応関係を生成する対応生成処理と、
    前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を抽出する対応解析処理と、
    をコンピュータに実行させるためのプログラム。
  22. 前記対応生成処理に、
    前記中間記述と前記RTレベル記述の対応関係を生成する処理を含み、
    前記対応解析処理に、
    前記RTレベル記述内の指定された部品に対応する前記中間記述の要素を抽出する処理を含む請求項21記載のプログラム。
  23. 前記対応生成処理に、
    前記動作レベル記述と前記中間記述の対応関係を生成する処理を含み、
    前記対応解析処理に、
    前記中間記述内の指定された要素に対応する前記動作レベル記述の要素を抽出する処理を含む請求項21または22記載のプログラム。
  24. 前記RTレベル記述で表現される回路の性能を解析し、該性能が予め決められた仕様を満たさない原因となる該RTレベル記述内の部品を指定する性能解析処理を、さらに有する請求項21から23のいずれか1項記載のプログラム。
  25. 前記対応解析処理に、
    前記RTレベル記述内の指定された部品を、該RTレベル記述の他の部品と区別して出力装置に表示するための情報を生成する処理を含む請求項21から24のいずれか1項記載のプログラム。
  26. 前記対応解析処理に、
    前記RTレベル記述内の指定された部品に対応する前記動作レベル記述の要素を、該動作レベル記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項21から25のいずれか1項記載のプログラム。
  27. 前記対応解析処理に、
    前記RTレベル記述内の指定された部品に対応する前記中間記述の要素を、該中間記述の他の要素と区別して出力装置に表示するための情報を生成する処理を含む請求項22から26のいずれか1項記載のプログラム。
  28. 前記性能解析処理に、
    前記RTレベル記述で表現される回路の遅延量を解析する処理を含む請求項24から27のいずれか1項記載のプログラム。
  29. 前記性能解析処理に、
    前記RTレベル記述で表現される回路の消費電力を解析する処理を含む請求項24から28のいずれか1項記載のプログラム。
  30. 前記性能解析処理に、
    前記RTレベル記述で表現される回路の回路面積を解析する処理を含む請求項24から29のいずれか1項記載のプログラム。
JP2005287489A 2005-09-30 2005-09-30 回路設計支援システム及び方法 Pending JP2007102271A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005287489A JP2007102271A (ja) 2005-09-30 2005-09-30 回路設計支援システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005287489A JP2007102271A (ja) 2005-09-30 2005-09-30 回路設計支援システム及び方法

Publications (1)

Publication Number Publication Date
JP2007102271A true JP2007102271A (ja) 2007-04-19

Family

ID=38029191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005287489A Pending JP2007102271A (ja) 2005-09-30 2005-09-30 回路設計支援システム及び方法

Country Status (1)

Country Link
JP (1) JP2007102271A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003141202A (ja) * 2001-10-30 2003-05-16 Nec Corp 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム
JP2004185503A (ja) * 2002-12-05 2004-07-02 Toshiba Corp 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置
JP2005242812A (ja) * 2004-02-27 2005-09-08 Nec Electronics Corp 回路設計支援システム、回路設計支援方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003141202A (ja) * 2001-10-30 2003-05-16 Nec Corp 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム
JP2004185503A (ja) * 2002-12-05 2004-07-02 Toshiba Corp 論理回路設計方法、論理回路設計プログラムおよび論理回路設計装置
JP2005242812A (ja) * 2004-02-27 2005-09-08 Nec Electronics Corp 回路設計支援システム、回路設計支援方法及びプログラム

Similar Documents

Publication Publication Date Title
JP4988758B2 (ja) マルチサイクル・クロック・ゲーティングのための方法および装置
KR20130114688A (ko) 아키텍처 최적화기
JP2010537293A (ja) パイプライン式電子回路設計においてクロック・ゲーティング機会を検出するための方法、装置、およびプログラム
Khare et al. V-SAT: A visual specification and analysis tool for system-on-chip exploration
JP4492803B2 (ja) 動作合成装置及びプログラム
Liu et al. Automatic generation of assertions from system level design using data mining
US20200192994A1 (en) Performance modeling and analysis of microprocessors using dependency graphs
US20040210861A1 (en) System and method for optimizing exceptions
US20080059923A1 (en) Lsi power consumption calculation method and calculation program
JP2008097130A (ja) タイミング解析方法および装置
JP4200465B2 (ja) 半導体集積回路の設計方法及び設計システム
Raudvere et al. Application and verification of local nonsemantic-preserving transformations in system design
US7617466B2 (en) Circuit conjunctive normal form generating method, circuit conjunctive normal form generating device, hazard check method and hazard check device
US20100088656A1 (en) Property checking system, property checking method, and computer-readable storage medium
JP2008299464A (ja) 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
US6378113B1 (en) Black box transparency in a circuit timing model
JP2013003999A (ja) 検証装置、検証方法及び検証プログラム
JP5262435B2 (ja) 回路設計装置及び回路設計方法
Lavagno et al. Incremental high-level synthesis
JP4271072B2 (ja) ソフトウェア検証モデル生成方法
JP2007102271A (ja) 回路設計支援システム及び方法
JP5622257B2 (ja) 動作合成システム及び動作合成プログラム
CN101923466B (zh) 装饰器模式的指令的存取方法
JPH10187786A (ja) Lsi設計支援装置
JP5510274B2 (ja) 集積回路の消費電力解析装置及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100721