JP5910230B2 - 設計支援プログラム、設計支援方法、および設計支援装置 - Google Patents

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

Info

Publication number
JP5910230B2
JP5910230B2 JP2012070458A JP2012070458A JP5910230B2 JP 5910230 B2 JP5910230 B2 JP 5910230B2 JP 2012070458 A JP2012070458 A JP 2012070458A JP 2012070458 A JP2012070458 A JP 2012070458A JP 5910230 B2 JP5910230 B2 JP 5910230B2
Authority
JP
Japan
Prior art keywords
circuit
circuit scale
result
synthesis result
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.)
Expired - Fee Related
Application number
JP2012070458A
Other languages
English (en)
Other versions
JP2013200851A (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 JP2012070458A priority Critical patent/JP5910230B2/ja
Priority to US13/734,596 priority patent/US8677296B2/en
Publication of JP2013200851A publication Critical patent/JP2013200851A/ja
Application granted granted Critical
Publication of JP5910230B2 publication Critical patent/JP5910230B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

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

本発明は、設計支援プログラム、設計支援方法、および設計支援装置に関する。
従来から回路設計については様々な技術が開示されている。たとえば、従来例1の高位合成方法は、入力ファイルと制約ファイルとに基づいてCDFG(Control Data Flow Graph)を生成し、CDFGとデジタル回路の制約条件とに基づいてFSM(Finite State Machine)を生成する。つぎに、従来例1の高位合成方法は、CDFGの各ノードをFSMの各状態に割り当ててスケジューリングする。そして、従来例1の高位合成方法は、CDFGの各ノードに対して、デジタル回路を構成するための資源のレイアウトを示す資源レベルレイアウト情報に基づいて資源を割り当てて回路情報を生成する(たとえば、下記特許文献1を参照。)。
また、従来例2の回路自動設計方法は、通常セル用セルライブラリおよび設計対象回路の仕様情報を取得し、設計対象回路における仮想グラウンド線の上限電位を設定し、上限電位を用いて低閾値セル用セルライブラリを作成する。そして、従来例2の高位合成方法は、仕様情報を論理合成してネットリストを生成し、ネットリスト,通常セル用セルライブラリ,および低閾値セル用セルライブラリに基づき、レイアウトを作成する(たとえば、下記特許文献2を参照。)。
また、従来例3のプログラム変換装置は、一連の動作内容が記述された動作記述プログラムを、動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する。そして、従来例3のプログラム変換装置は、回路記述プログラムが示す設計内容を1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する(たとえば、下記特許文献3を参照。)。
特開2004−164627号公報 特開2005−135177号公報 特開2008−123103号公報
しかしながら、上述した従来技術では、回路規模の大きさについて客観的な指標がないため、高位合成結果による回路規模がどの程度の大きさであるか把握することが困難である。また、回路規模の大きさが把握できても、その大きさが大きすぎるのか妥当な大きさなのかを設計者が判断するのは困難である。
本発明は、高位合成結果の回路規模の大きさの客観的な指標を提供することにより回路規模の妥当性を確認することを目的とする。
本発明の一側面によれば、設計対象回路に関する動作記述情報のCFG変換結果に基づいて、前記設計対象回路の1クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第1の合成結果を生成し、生成された第1の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第1の回路規模情報を算出し、前記CFG変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第2の合成結果を取得し、取得された第2の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第2の回路規模情報を算出し、算出された第1の回路規模情報と算出された第2の回路規模情報とを出力する設計支援プログラム、設計支援方法、および設計支援装置が提案される。
本発明の一側面によれば、高位合成結果の回路規模の大きさの客観的な指標を提供することにより回路規模の妥当性を確認することができるという効果を奏する。
図1は、本実施の形態にかかる設計支援例を示す説明図である。 図2は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。 図3は、記憶部の記憶内容例を示す説明図である。 図4は、設計支援装置の機能的構成例を示すブロック図である。 図5は、動作記述情報の一例を示す説明図である。 図6は、図5に示した動作記述情報のCFG変換例を示す説明図である。 図7は、合成部による合成例を示す説明図である。 図8は、アロケーション結果を示す説明図である。 図9は、図8に示したアロケーション結果の具体例を示す説明図である。 図10は、他のアロケーション結果例を示す説明図である。 図11は、生成部により生成された第1の合成結果の一例を示す説明図である。 図12は、設計支援装置による設計支援処理手順例を示すフローチャートである。 図13は、CまたはC++により記述された動作記述情報によるCFG変換例を示す説明図である。
以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援方法、および設計支援装置の実施の形態を詳細に説明する。
<設計支援例>
図1は、本実施の形態にかかる設計支援例を示す説明図である。設計支援例では、設計支援装置は、設計対象回路の動作記述情報から得られたCFG(Control Flow Graph)変換結果100から、クロック周期が十分に大きい第1の合成結果101を生成する。第1の合成結果101は、動作速度が最も遅い、すなわち、遅延量が最も大きい演算回路であり、クロックサイクルを1クロックサイクルとした回路情報である。
第1の合成結果101では、演算回路111〜113の総遅延量以上の時間長が、1クロックサイクルのクロック周期となる。そして、設計支援装置は、第1の合成結果101を構成する回路の総面積により、第1の合成結果101の回路規模の大きさを示す回路規模情報を求める。ここでは、第1の合成結果101の回路規模情報S0をS0=1000とする。
また、設計支援装置は、従来どおり、CFG変換結果100に対し、設計対象回路に与えられたタイミング制約に従って第2の合成結果102を生成する。第2の合成結果102は、タイミング制約を遵守するように演算回路が採用された回路情報である。図1では、タイミング制約は、2クロックサイクルとし、1クロックサイクルのクロック周期をα[sec]とする。
したがって、演算回路111の遅延量はα[sec]以下となり、また、演算回路114,115の総遅延量もα[sec]以下となる。そして、設計支援装置は、第2の合成結果102を構成する回路の総面積により、第2の合成結果102の回路規模の大きさを示す回路規模情報S1を求める。ここでは、第2の合成結果102の回路規模情報S1をS1=1750とする。
設計支援装置は、第1の合成結果101の回路規模情報S0(=1000)と第2の合成結果102の回路規模情報S1(=1750)とにより、比較情報C1を算出する。ここでは、比較情報C1はS1/S0とする。そして、比較情報C1がしきい値Ct以上である場合、設計支援装置は警告情報を出力する。
このように、第1の合成結果101を客観的な指標として用い、第2の合成結果102の採否を判定することができるため、設計者は、第2の合成結果102の回路規模の大きさを相対的に確認することができる。なお、図1の例では、比較情報C1を求めてしきい値Ctと比較したが、設計支援装置は、回路規模情報S1から回路規模情報S0を引いた差分を比較情報C1としてもよい。
また、設計支援装置が回路規模情報S0と回路規模情報S1とをそのまま出力し、設計者が出力結果を視認して判定することとしてもよい。いずれにしても、本実施の形態によれば、第1の合成結果101という客観的な指標を用いることにより、第2の合成結果102の回路規模が妥当な大きさか否かを判定でき、妥当である場合、回路規模の増大を抑制することができることになる。
<設計支援装置のハードウェア構成例>
図2は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。図2において、設計支援装置は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、設計支援装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。なお、光ディスクドライブ206、光ディスク207、ディスプレイ208、キーボード210、マウス211、スキャナ212、およびプリンタ213の少なくともいずれか1つは、なくてもよい。
<ライブラリの記憶内容例>
図3は、記憶部の記憶内容例を示す説明図である。記憶部300は、回路ごとに、面積と遅延量を記憶するライブラリである。記憶部300は、合成処理を実行する場合に参照される。記憶部300は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置により、その機能を実現する。
記憶部300において、回路とは、設計対象回路の構成要素であり、ANDやADD(加算器)などの演算回路やレジスタ(FF)やセレクタ(SEL)などのデータ保持回路を含む。記憶部300では、同一種の回路であっても、面積や遅延量の相違から複数種類用意されている。また、遅延量とは、その回路にデータが入力されてから出力されるまでの時間である。したがって、遅延量が小さいほど動作速度が速いこととなるが、動作速度が速いほど面積が大きくなる。
(設計支援装置の機能的構成例)
図4は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置400は、記憶部300と、変換部401と、合成部402と、取得部403と、生成部404と、第1の算出部405と、第2の算出部406と、出力部407と、判定部408と、を有する。変換部401、生成部404、第1の算出部405、合成部402、取得部403、第2の算出部406、出力部407、および判定部408は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。
変換部401は、設計対象回路に関する動作記述情報をCFG変換する。動作記述情報とは、RTL(Register Transfer Level)よりも抽象度が高いレベルであり、RTLのようにクロックが規定されていないレベルの記述情報である。動作記述情報は、具体的には、たとえば、C、C++、SystemCなどにより記述された情報である。
図5は、動作記述情報の一例を示す説明図である。図5の動作記述情報500は、SystemCにより記述された動作記述情報500である。図5の例では、上から2行目までがリセットを示す。また、図6は、図5に示した動作記述情報500のCFG変換例を示す説明図である。CFG変換結果100では、wait()によりクロックサイクルが表現される。
合成部402は、CFG変換結果100に基づいて、第2の合成結果102を生成する。具体的には、たとえば、合成部402は、従来と同様、設計対象回路に与えられたタイミング制約を遵守する高位合成を実行する。ここで、合成部402による合成例について説明する。
図7は、合成部402による合成例を示す説明図である。CFG変換結果100内のwait()はクロックサイクル数を表現するため、初期状態のCFG変換結果100は1クロックサイクルで動作する。ここで、タイミング制約としてクロックサイクル数「2」が与えられた場合、CFG変換結果100内のwait()はクロックサイクル数を表現するため、CFG結果にwait()が挿入される。これにより、CFG変換結果100は2クロックサイクルで動作する。つぎに、合成部402は、スケジューリングを実行する。
スケジューリングとは、個々の演算回路をいずれかのクロックサイクルに割り当てる処理である。クロックサイクルの時間長、すなわち、クロック周期は、タイミング制約として与えられたクロック周波数の逆数となる。たとえば、クロック周波数が400[MHz]である場合、クロック周期は1/400[μsec]となる。したがって、合成部402は、記憶部300を参照して、クロック周期内に演算回路の遅延量が収まるように演算回路を割り当てることになる。図7の例では、「add1」に対応する演算回路は、0〜1クロックサイクル間に割り当てられ、「mult1」および「out」に対応する演算回路は、1〜2クロックサイクル間に割り当てられる。これにより、CFG変換結果700が得られる。
つぎに、合成部402は、スケジューリング後のCFG変換結果700に対しアロケーションを実行する。アロケーションとは、スケジューリング後のCFG変換結果700に従って、記憶部300内の回路情報を接続する処理である。接続の際に共有できる演算回路は共有化される。また、wait()については、レジスタに置換される。
図8は、アロケーション結果を示す説明図である。図8のアロケーション結果800は、図7に示したCFG変換結果700をアロケーションした情報である。アロケーション結果は、たとえば、RTL記述情報として出力される。アロケーション結果800が、第2の合成結果102となる。
図9は、図8に示したアロケーション結果800の具体例を示す説明図である。図9は、タイミング制約が2クロックサイクルの場合のアロケーション結果900を示している。ここでは、1クロックサイクルのクロック周期をα[sec]とする。演算回路111,114,115の各々の遅延量は、クロック周期α以下である。また、演算回路114,115の総遅延量もクロック周期α以下である。したがって、アロケーション結果900では、0〜1クロックサイクル間に、演算回路111が割り当てられ、1〜2クロックサイクル間に演算回路114,115が割り当てられる。
図10は、他のアロケーション結果例を示す説明図である。図10は、タイミング制約が3クロックサイクルの場合のアロケーション結果1000を示している。ここでも、1クロックサイクルのクロック周期をα[sec]とする。演算回路111〜113の各々の遅延量は、クロック周期α以下である。したがって、アロケーション結果1000では、0〜1クロックサイクル間に、演算回路111が割り当てられ、1〜2クロックサイクル間に演算回路112が割り当てられ、2〜3クロックサイクル間に演算回路113が割り当てられる。
図9と図10を比較すると、図9において、1〜2クロックサイクル間では、乗算器と加算器の総遅延時間をα以内に収める必要があるため、演算回路112,113よりも遅延量の少ない演算回路114,115が採用される。また、図10では、たとえば、乗算器としては、演算回路112,114があるが、いずれもクロック周期α以内に収まるため、演算回路114よりも回路規模が小さい演算回路112が採用される。演算回路113,115についても同様である。
なお、タイミング制約において、2クロックサイクルと規定されている場合は、図9のアロケーション結果が、3クロックサイクルと規定されている場合は、図10のアロケーション結果が得られる。これに対し、2〜3クロックサイクルと規定されている場合は、両アロケーション結果が得られることになる。
図4に戻って、取得部403は、設計対象回路のCFG変換結果100に基づいたタイミング制約を遵守する設計対象回路の第2の合成結果102を取得する。具体的には、たとえば、合成部402によって得られたアロケーション結果を取得する。また、合成部402は設計支援装置400外に存在してもよいため、取得部403は、設計支援装置400外からアロケーション結果を取得することとしてもよい。この場合、合成部402は、設計支援装置400には含まれないものとする。
生成部404は、設計対象回路に関する動作記述情報500のCFG変換結果100に基づいて、設計対象回路の1クロックサイクルの時間長が設計対象回路が動作するクロック周期以上となる第1の合成結果101を生成する。具体的には、たとえば、生成部404は、通常の高位合成、すなわち、上述した合成部402のような処理を実行せずに、CFG変換結果100に従って、演算回路群を配置し、最終段にレジスタを配置した第1の合成結果101をアロケーション結果として生成する。また、第1の合成結果101は、1クロックサイクルで動作する。この場合、1クロックサイクルの時間長、すなわち、クロック周期は、設計対象回路が動作するクロック周期以上の時間長となる。
図11は、生成部404により生成された第1の合成結果101の一例を示す説明図である。第1の合成結果101では、加算器および乗算器は、回路規模が最も小さい演算回路111〜113が採用される。回路規模が小さいと遅延量が大きくなるが、1クロックサイクルのクロック周期は十分大きい値に設定されるため、演算回路111〜113の総遅延量が収まる範囲となる。ここで、1クロックサイクルのクロック周期は、たとえば100[sec]など、あらかじめ十分大きなクロック周期βが与えられる。また、クロック周期βは、設計対象回路の演算回路および最終段のレジスタの総遅延量以上となる値に設定してもよい。
また、図11では、回路規模が最小の回路を採用して第1の合成結果101を生成することとしたが、クロック周期βに収まる範囲内であれば、生成部404は、どの回路規模の回路を採用してもよい。たとえば、回路規模の小型化を優先する場合は、生成部404は、記憶部300を参照して、上記のように回路規模が最小の回路を採用すればよく、また、動作速度の高速化を優先する場合は、生成部404は、記憶部300を参照して、遅延量が最小の回路を採用すればよい。また、回路規模の小型化および動作速度の高速化の両方を満足させたい場合は、生成部404は、記憶部300を参照して、回路規模および動作速度が平均的な回路を採用すればよい。
図4に戻って、第1の算出部405は、生成部404によって生成された第1の合成結果101に基づいて、設計対象回路の回路規模の大きさを示す第1の回路規模情報S0を算出する。具体的には、たとえば、第1の算出部405は、第1の合成結果101内の回路の面積を記憶部300から参照して、総和を求める。求めた総和が設計対象回路の回路規模の大きさを示す第1の回路規模情報S0である。
また、第2の算出部406は、取得部403によって取得された第2の合成結果102に基づいて、設計対象回路の回路規模の大きさを示す第2の回路規模情報S1を算出する。第2の算出部406も、第1の算出部405と同様、具体的には、たとえば、第2の合成結果102内の回路の面積を記憶部300から参照して、総和を求める。求めた総和が設計対象回路の回路規模の大きさを示す第2の回路規模情報S1である。第2の合成結果102が複数得られた場合には、各々について第2の回路規模情報が求められる。
出力部407は、第1の算出部405によって算出された第1の回路規模情報S0と第2の算出部406によって算出された第2の回路規模情報S1とを出力する。具体的には、たとえば、第1の回路規模情報S0と第2の回路規模情報S1とを、印刷出力したり、ディスプレイ208に表示したり、外部装置に送信したりする。また、設計支援装置400内の記憶装置に格納してもよい。これにより、設計者は、第1の回路規模情報S0と第2の回路規模情報S1とを確認して、第2の合成結果102の回路規模の大きさを客観的に把握することができる。
判定部408は、第1の回路規模情報S0と第2の回路規模情報S1とに基づいて、第2の合成結果102による回路規模の妥当性を判定する。具体的には、判定部408は、第2の回路規模情報S1から第1の回路規模情報S0を引いた差としきい値とを比較することにより、第2の合成結果102による回路規模の妥当性を判定する。たとえば、判定部408は、第2の回路規模情報S1から第1の回路規模情報S0を引いた差を比較情報C1として求め、比較情報C1がしきい値Ct以上であるか否かを判定する。しきい値Ct以上である場合、第2の合成結果102は採用してはいけない回路情報となる。
また、判定部408は、第1の回路規模情報S0および第2の回路規模情報S1の比率としきい値とを比較することにより、第2の合成結果102による回路規模の妥当性を判定してもよい。具体的には、たとえば、判定部408は、第2の回路規模情報S1を第1の回路規模情報S0で除算した比率を比較情報C1として求め、比較情報C1がしきい値Ct以上であるか否かを判定する。しきい値Ct以上である場合、第2の合成結果102は採用してはいけない回路情報となる。
しきい値Ct未満の場合は、判定部408は、第2の合成結果102を採用してもよい合成結果であるとして記憶装置に保存する。しきい値Ct以上である場合、出力部407は、警告情報の出力をおこなう。ここで、警告情報とは、たとえば、第2の合成結果102にしきい値Ct以上であることを示す情報であり、出力部407は、第2の合成結果102に関連付けて出力する。また、警告情報は、音声による警告音でもよい。これにより、設計者は、回路規模が大きい第2の合成結果102を客観的に把握することができるため、回路設計において回路規模の増大を抑制することができる。
<設計支援処理手順例>
図12は、設計支援装置400による設計支援処理手順例を示すフローチャートである。まず、設計支援装置400は、変換部401により設計対象回路のCFG変換結果100を取得する(ステップS1200)。このあと、第2の合成結果102の生成処理(ステップS1201〜ステップS1209)と、第1の合成結果101の生成処理および回路規模判定処理(ステップS1211〜ステップS1218)と、が実行される。まず、第2の合成結果102の生成処理(ステップS1201〜ステップS1209)について説明する。
設計支援装置400は、あらかじめ記憶装置に記憶されているタイミング制約を取得し(ステップS1201)、合成部402により、CFG変換結果100に対し、クロックサイクル数反映(ステップS1202)とスケジューリング(ステップS1203)を実行する。これにより、n個(n≧1)のスケジューリング結果R1〜Rnが生成されることになる。
そして、設計支援装置400は、i=1とし(ステップS1204)、i>nか否かを判断する(ステップS1205)。i>nでない場合(ステップS1205:No)、設計支援装置400は、スケジューリング結果Riを選択し(ステップS1206)、選択したスケジューリング結果Riについてアロケーションを実行する(ステップS1207)。これにより、第2の合成結果102であるアロケーション結果Aiが得られる。アロケーション結果Aiは記憶装置に保持される。
設計支援装置400は、第2の算出部406により、アロケーション結果Aiについて第2の回路規模情報Siを算出する(ステップS1208)。算出された第2の回路規模情報Siは記憶装置に格納される。このあと、設計支援装置400は、iをインクリメントして(ステップS1209)、ステップS1205に戻って、i>nか否かを判断する(ステップS1205)。i>nである場合(ステップS1205:Yes)、全スケジューリング結果Riについて第2の回路規模情報Siが算出されたため、第2の合成結果102の生成処理を終了する。つぎに、第1の合成結果101の生成処理および回路規模判定処理(ステップS1211〜ステップS1218)について説明する。
設計支援装置400は、CFG変換結果100が得られた(ステップS1200)あと、生成部404により、クロック周期βでのアロケーションを実行する(ステップS1210)。これにより、第1の合成結果101であるアロケーション結果A0が得られる。つぎに、設計支援装置400は、第1の算出部405により、アロケーション結果A0について第1の回路規模情報S0を算出する(ステップS1211)。
そして、設計支援装置400は、インデックスiをi=1とし(ステップS1212)、ステップS1208で算出済みのアロケーション結果Aiの第2の回路規模情報Siを取得する(ステップS1213)。そして、設計支援装置400は、判定部408により、比較情報Ciを算出し(ステップS1214)、比較情報Ciがしきい値Ct以上であるか否かを判断する(ステップS1215)。Ci≧Ctでない場合(ステップS1215:No)、設計支援装置400は、アロケーション結果Aiを、妥当な合成結果、すなわち、採用してもよい合成結果であるとして記憶装置に保存し(ステップS1216)、ステップS1218に移行する。
一方、Ci≧Ctである場合(ステップS1215:Yes)、設計支援装置400は、出力部407により、警告情報を出力して(ステップS1217)、ステップS1218に移行する。そして、設計支援装置400は、ステップS1218でiをインクリメントし(ステップS1218)、i>nであるか否かを判断する(ステップS1219)。i>nでない場合(ステップS1219:No)、ステップS1213に戻り、設計支援装置400は、ステップS1208で算出済みのアロケーション結果Aiの第2の回路規模情報Siを取得する(ステップS1213)。
一方、i>nである場合(ステップS1219:Yes)、第1の合成結果101の生成処理および回路規模判定処理を終了する。これにより、設計者は、回路規模が大きい第2の合成結果102を客観的に把握することができるため、回路設計において回路規模の増大を抑制することができる。
なお、図12に示したフローチャートでは、比較情報Ciを算出してしきい値Ctと比較する例について説明したが、比較情報Ciを算出することなく、第1の回路規模情報S0と第2の回路規模情報Siとを比較してもよい。また、第1の回路規模情報S0と第2の回路規模情報Siとの比較もせず、第1の回路規模情報S0と第2の回路規模情報Siとを出力してもよい。
なお、上述した実施の形態では、SystemCにより記述された設計対象回路の動作記述情報500を例に挙げて説明したが、CやC++により記述された設計対象回路の動作記述情報500を用いてもよい。
図13は、CまたはC++により記述された動作記述情報によるCFG変換例を示す説明図である。図13の(A)において、動作記述情報1300は、CまたはC++により記述された動作記述情報である。動作記述情報1300は、CまたはC++により記述されているため、SystemCのようなwait()文による処理の切れ目が無いため、設計支援装置400は、Line行数やラベルによって合成範囲を指定し、合成範囲にてクロックサイクル数の指定をすることになる。
たとえば、設計支援装置400は、動作記述情報1300のうち、「HL_RESET1_START」〜「HL_RESET1_END」のラベル間を高位合成のリセット記述範囲reset_endとして指定する。また、設計支援装置400は、動作記述情報1300のうち、「HL_SYNTH1_START」〜「HL_SYNTH1_END」のラベル間を高位合成の動作記述範囲として指定し、末尾の文「output」と「HL_SYNTH1_END」との間を、「clock_end」に決定する。
図13の(B)では、動作記述情報1300のCFG変換結果1301を示している。また、図13の(C)は、CGF変換結果1301に対してクロックサイクル数を反映したCFG変換結果1302を示している。タイミング制約に「クロックサイクル数n」と指定されている場合は、「clock_end」と「HL_SYNTH1_END」との間に、(n−1)個の「clock_end」が追加される。CFG変換結果1302では、n=2であるため、1個の「clock_end」が追加される。この後のスケジューリングについては上述した説明と同様である。これにより、C、C++により記述された動作記述情報についても、SystemCと同様に適用することができる。
以上説明したように、本実施の形態によれば、設計支援装置400が高位合成結果の回路規模の大きさの客観的な指標を提供することにより、設計者は、回路規模の妥当性を確認することができる。
また、設計支援装置400が、第1の回路規模情報と第2の回路規模情報とに基づいて、第2の合成結果102による回路規模の妥当性を判定する。これにより、設計支援装置400が、高位合成結果の回路規模の大きさの客観的な指標を提供するにとどまらず、回路規模の妥当性を判定するため、回路規模が大きくなりすぎた第2の合成結果102と許容範囲内である第2の合成結果102とを自動的に選別することができる。したがって、設計支援装置400は、第2の合成結果102の選別の効率化を図ることができ、回路規模の増大を抑制することができる。
また、妥当性の判定の際に、第2の回路規模情報から第1の回路規模情報を引いた差や、第1の回路規模情報および第2の回路規模情報の比率を用いることにより、第2の合成結果102の妥当性を相対的に評価することができる。したがって、客観性のある判定結果を得ることができる。
また、第1の合成結果101では、回路規模が最小の回路が採用されるため、第2の合成結果102の回路規模は第1の合成結果101よりも回路規模が小さくならない理想的な回路規模である。したがって、第1の合成結果101の回路規模に近ければ近いほど、回路規模の増大が抑制された合成結果となるため、妥当と判定された第2の合成結果102を採用することにより、設計対象回路の回路規模の縮小化を図ることができる。
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。
300 記憶部
401 変換部
402 合成部
403 取得部
404 生成部
405 第1の算出部
406 第2の算出部
407 出力部
408 判定部

Claims (8)

  1. 設計対象回路に関する動作記述情報のCFG変換結果に基づいて、前記設計対象回路の1クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第1の合成結果を生成し、
    生成された前記第1の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第1の回路規模情報を算出し、
    前記CFG変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第2の合成結果を取得し、
    取得された前記第2の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第2の回路規模情報を算出し、
    算出された前記第1の回路規模情報と算出された前記第2の回路規模情報とを出力する、
    処理をコンピュータに実行させることを特徴とする設計支援プログラム。
  2. 前記第1の回路規模情報と前記第2の回路規模情報とに基づいて、前記第2の合成結果による回路規模の妥当性を判定する処理を前記コンピュータに実行させ、
    前記出力する処理は、
    判定結果を出力することを特徴とする請求項1に記載の設計支援プログラム。
  3. 前記判定する処理は、
    前記第2の回路規模情報から前記第1の回路規模情報を引いた差としきい値とを比較することにより、前記第2の合成結果による回路規模の妥当性を判定することを特徴とする請求項2に記載の設計支援プログラム。
  4. 前記判定する処理は、
    前記第1の回路規模情報および前記第2の回路規模情報の比率としきい値とを比較することにより、前記第2の合成結果による回路規模の妥当性を判定することを特徴とする請求項2に記載の設計支援プログラム。
  5. 前記出力する処理は、
    前記判定結果が前記しきい値以上である場合、警告情報を出力することを特徴とする請求項3または4に記載の設計支援プログラム。
  6. 前記生成する処理は、
    演算器ごとに遅延量を記憶する記憶部から前記設計対象回路に含まれる演算器のうち遅延量が最小な演算器を取得することにより、前記第1の合成結果を生成することを特徴とする請求項1〜5のいずれか一つに記載の設計支援プログラム。
  7. コンピュータが、
    設計対象回路に関する動作記述情報のCFG変換結果に基づいて、前記設計対象回路の1クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第1の合成結果を生成し、
    生成された前記第1の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第1の回路規模情報を算出し、
    前記CFG変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第2の合成結果を取得し、
    取得された前記第2の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第2の回路規模情報を算出し、
    算出された前記第1の回路規模情報と算出された前記第2の回路規模情報とを出力する、
    処理を実行することを特徴とする設計支援方法。
  8. 設計対象回路に関する動作記述情報のCFG変換結果に基づいて、前記設計対象回路の1クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第1の合成結果を生成する生成部と、
    前記生成部によって生成された第1の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第1の回路規模情報を算出する第1の算出部と、
    前記CFG変換結果に基づいたタイミング制約を遵守する前記設計対象回路の第2の合成結果を取得する取得部と、
    前記取得部によって取得された第2の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第2の回路規模情報を算出する第2の算出部と、
    前記第1の算出部によって算出された第1の回路規模情報と前記第2の算出部によって算出された第2の回路規模情報とを出力する出力部と、
    を有することを特徴とする設計支援装置。
JP2012070458A 2012-03-26 2012-03-26 設計支援プログラム、設計支援方法、および設計支援装置 Expired - Fee Related JP5910230B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012070458A JP5910230B2 (ja) 2012-03-26 2012-03-26 設計支援プログラム、設計支援方法、および設計支援装置
US13/734,596 US8677296B2 (en) 2012-03-26 2013-01-04 Circuit design support computer product, method, and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012070458A JP5910230B2 (ja) 2012-03-26 2012-03-26 設計支援プログラム、設計支援方法、および設計支援装置

Publications (2)

Publication Number Publication Date
JP2013200851A JP2013200851A (ja) 2013-10-03
JP5910230B2 true JP5910230B2 (ja) 2016-04-27

Family

ID=49213544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012070458A Expired - Fee Related JP5910230B2 (ja) 2012-03-26 2012-03-26 設計支援プログラム、設計支援方法、および設計支援装置

Country Status (2)

Country Link
US (1) US8677296B2 (ja)
JP (1) JP5910230B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6255880B2 (ja) * 2013-10-10 2018-01-10 株式会社ソシオネクスト 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム
US9866369B1 (en) * 2016-08-18 2018-01-09 Cejay Engineering, Llc Infrared beacon and controlling method of same

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164627A (ja) 2002-10-22 2004-06-10 Matsushita Electric Ind Co Ltd 高位合成方法
US6925628B2 (en) 2002-10-22 2005-08-02 Matsushita Electric Industrial Co., Ltd. High-level synthesis method
JP3990339B2 (ja) 2003-10-30 2007-10-10 株式会社東芝 回路自動設計装置、回路自動設計方法及び回路自動設計プログラム
JP4397744B2 (ja) * 2004-06-25 2010-01-13 パナソニック株式会社 半導体集積回路の高位合成方法
US7509604B1 (en) * 2004-12-10 2009-03-24 Synopsys, Inc. Method and apparatus for formally comparing stream-based designs
JP4393450B2 (ja) * 2005-12-01 2010-01-06 株式会社東芝 論理回路モデル変換装置及び論理回路モデル変換プログラム
WO2007096935A1 (ja) * 2006-02-20 2007-08-30 Fujitsu Limited プログラム解析方法、プログラム解析装置およびプログラム解析プログラム
JP2008123103A (ja) * 2006-11-09 2008-05-29 Matsushita Electric Ind Co Ltd プログラム変換装置
JP5229716B2 (ja) * 2007-11-27 2013-07-03 日本電気株式会社 動作合成システム、動作合成方法および動作合成用プログラム
EP2261802A1 (en) * 2009-06-10 2010-12-15 ITI Scotland Limited Automated debugging system and method
JP5267376B2 (ja) * 2009-08-07 2013-08-21 日本電気株式会社 動作合成装置、動作合成方法、ならびに、プログラム

Also Published As

Publication number Publication date
JP2013200851A (ja) 2013-10-03
US8677296B2 (en) 2014-03-18
US20130254728A1 (en) 2013-09-26

Similar Documents

Publication Publication Date Title
JP4217220B2 (ja) 検証支援プログラムおよび検証支援装置
US8296712B2 (en) Method and apparatus for improving the interconnection and multiplexing cost of circuit design from high level synthesis using ant colony optimization
US20130047128A1 (en) Method and Apparatus for Using Entropy in An Colony Optimization Circuit Design from High Level Synthesis
JP5891680B2 (ja) 電力制御装置、電力制御方法、および電力制御プログラム
JP2007034887A (ja) ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置
JP5098970B2 (ja) リーク電流分布検証支援プログラム、リーク電流分布検証支援装置およびリーク電流分布検証支援方法
JP5910230B2 (ja) 設計支援プログラム、設計支援方法、および設計支援装置
US7984403B2 (en) Verification supporting system
JP5785725B2 (ja) 電力見積装置、電力見積方法及びプログラム
US8966416B2 (en) Finite-state machine encoding during design synthesis
JP5157534B2 (ja) 動作合成装置、および、プログラム
US8296713B2 (en) Method and apparatus for synthesizing pipelined input/output in a circuit design from high level synthesis
US7911466B2 (en) Method and apparatus for editing timing diagram, and computer product
US20100299645A1 (en) Design support computer product, apparatus, and method
US10666255B1 (en) System and method for compacting X-pessimism fixes for gate-level logic simulation
CN106709116A (zh) 一种生成rtl级ip核方法及装置
EP2622549A1 (en) Method and apparatus for using entropy in ant colony optimization circuit design from high level systhesis
US8024681B2 (en) Hierarchical HDL processing method and non-transitory computer-readable storage medium
JP4351245B2 (ja) 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置および遅延解析方法
US20060041404A1 (en) Apparatus, method, and computer product for generating model for numerical analysis
JP2009093491A (ja) 検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法
JP2007272288A (ja) 消費電力算出プログラム、記録媒体、消費電力算出方法、および消費電力算出装置
JP7433569B1 (ja) 半導体設計支援装置、半導体設計支援方法、及び半導体設計支援プログラム
JP6398729B2 (ja) 設計支援装置、および設計支援方法
JP6011356B2 (ja) シミュレーションプログラム、シミュレーション方法およびシミュレーション装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160314

R150 Certificate of patent or registration of utility model

Ref document number: 5910230

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees