図面 (/)

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

出願人 富士通株式会社
発明者 波多江一彦
出願日 2012年3月26日 (8年9ヶ月経過) 出願番号 2012-070458
公開日 2013年10月3日 (7年2ヶ月経過) 公開番号 2013-200851
状態 特許登録済
技術分野 ICの設計・製造(配線設計等) CAD
主要キーワード 演算回路群 記述範囲 合成範囲 総遅延量 設計内容 設計支援処理 制約ファイル 比較情報
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2013年10月3日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

課題

高位合成結果の回路規模の大きさの客観的指標を提供することにより回路規模の妥当性を確認すること。

解決手段

設計対象回路動作記述情報から得られたCFG変換結果100を、クロック周期が十分に大きい第1の合成結果101を生成する。第1の合成結果101では、演算回路111〜113の総遅延量以上の時間長が、1クロックサイクルのクロック周期となる。従来どおり、CFG変換結果100に対し、設計対象回路に与えられたタイミング制約に従って第2の合成結果102を生成する。設計支援装置は、第1の合成結果101の回路規模情報S0と第2の合成結果102の回路規模情報S1とにより、比較情報C1を算出する。比較情報C1がしきい値Ct以上である場合、設計支援装置は警告情報を出力する。

概要

背景

従来から回路設計については様々な技術が開示されている。たとえば、従来例1の高位合成方法は、入力ファイル制約ファイルとに基づいてCDFG(Control Data Flow Graph)を生成し、CDFGとデジタル回路制約条件とに基づいてFSM(Finite State Machine)を生成する。つぎに、従来例1の高位合成方法は、CDFGの各ノードをFSMの各状態に割り当ててスケジューリングする。そして、従来例1の高位合成方法は、CDFGの各ノードに対して、デジタル回路を構成するための資源レイアウトを示す資源レベルレイアウト情報に基づいて資源を割り当てて回路情報を生成する(たとえば、下記特許文献1を参照。)。

また、従来例2の回路自動設計方法は、通常セル用セルライブラリおよび設計対象回路仕様情報を取得し、設計対象回路における仮想グラウンド線の上限電位を設定し、上限電位を用いて低閾値セル用セルライブラリを作成する。そして、従来例2の高位合成方法は、仕様情報を論理合成してネットリストを生成し、ネットリスト,通常セル用セルライブラリ,および低閾値セル用セルライブラリに基づき、レイアウトを作成する(たとえば、下記特許文献2を参照。)。

また、従来例3のプログラム変換装置は、一連動作内容記述された動作記述プログラムを、動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する。そして、従来例3のプログラム変換装置は、回路記述プログラムが示す設計内容を1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する(たとえば、下記特許文献3を参照。)。

概要

高位合成結果の回路規模の大きさの客観的な指標を提供することにより回路規模の妥当性を確認すること。設計対象回路の動作記述情報から得られたCFG変換結果100を、クロック周期が十分に大きい第1の合成結果101を生成する。第1の合成結果101では、演算回路111〜113の総遅延量以上の時間長が、1クロックサイクルのクロック周期となる。従来どおり、CFG変換結果100に対し、設計対象回路に与えられたタイミング制約に従って第2の合成結果102を生成する。設計支援装置は、第1の合成結果101の回路規模情報S0と第2の合成結果102の回路規模情報S1とにより、比較情報C1を算出する。比較情報C1がしきい値Ct以上である場合、設計支援装置は警告情報を出力する。

目的

本発明は、高位合成結果の回路規模の大きさの客観的な指標を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項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の回路規模情報とを出力する出力部と、を有することを特徴とする設計支援装置

技術分野

0001

本発明は、設計支援プログラム設計支援方法、および設計支援装置に関する。

背景技術

0002

従来から回路設計については様々な技術が開示されている。たとえば、従来例1の高位合成方法は、入力ファイル制約ファイルとに基づいてCDFG(Control Data Flow Graph)を生成し、CDFGとデジタル回路制約条件とに基づいてFSM(Finite State Machine)を生成する。つぎに、従来例1の高位合成方法は、CDFGの各ノードをFSMの各状態に割り当ててスケジューリングする。そして、従来例1の高位合成方法は、CDFGの各ノードに対して、デジタル回路を構成するための資源レイアウトを示す資源レベルレイアウト情報に基づいて資源を割り当てて回路情報を生成する(たとえば、下記特許文献1を参照。)。

0003

また、従来例2の回路自動設計方法は、通常セル用セルライブラリおよび設計対象回路仕様情報を取得し、設計対象回路における仮想グラウンド線の上限電位を設定し、上限電位を用いて低閾値セル用セルライブラリを作成する。そして、従来例2の高位合成方法は、仕様情報を論理合成してネットリストを生成し、ネットリスト,通常セル用セルライブラリ,および低閾値セル用セルライブラリに基づき、レイアウトを作成する(たとえば、下記特許文献2を参照。)。

0004

また、従来例3のプログラム変換装置は、一連動作内容記述された動作記述プログラムを、動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する。そして、従来例3のプログラム変換装置は、回路記述プログラムが示す設計内容を1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する(たとえば、下記特許文献3を参照。)。

先行技術

0005

特開2004−164627号公報
特開2005−135177号公報
特開2008−123103号公報

発明が解決しようとする課題

0006

しかしながら、上述した従来技術では、回路規模の大きさについて客観的な指標がないため、高位合成結果による回路規模がどの程度の大きさであるか把握することが困難である。また、回路規模の大きさが把握できても、その大きさが大きすぎるのか妥当な大きさなのかを設計者が判断するのは困難である。

0007

本発明は、高位合成結果の回路規模の大きさの客観的な指標を提供することにより回路規模の妥当性を確認することを目的とする。

課題を解決するための手段

0008

本発明の一側面によれば、設計対象回路に関する動作記述情報のCFG変換結果に基づいて、前記設計対象回路の1クロックサイクルの時間長が前記設計対象回路が動作するクロック周期以上となる第1の合成結果を生成し、生成された第1の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第1の回路規模情報を算出し、前記CFG変換結果に基づいたタイミング制約遵守する前記設計対象回路の第2の合成結果を取得し、取得された第2の合成結果に基づいて、前記設計対象回路の回路規模の大きさを示す第2の回路規模情報を算出し、算出された第1の回路規模情報と算出された第2の回路規模情報とを出力する設計支援プログラム、設計支援方法、および設計支援装置が提案される。

発明の効果

0009

本発明の一側面によれば、高位合成結果の回路規模の大きさの客観的な指標を提供することにより回路規模の妥当性を確認することができるという効果を奏する。

図面の簡単な説明

0010

図1は、本実施の形態にかかる設計支援例を示す説明図である。
図2は、実施の形態にかかる設計支援装置のハードウェア構成例を示すブロック図である。
図3は、記憶部の記憶内容例を示す説明図である。
図4は、設計支援装置の機能的構成例を示すブロック図である。
図5は、動作記述情報の一例を示す説明図である。
図6は、図5に示した動作記述情報のCFG変換例を示す説明図である。
図7は、合成部による合成例を示す説明図である。
図8は、アロケーション結果を示す説明図である。
図9は、図8に示したアロケーション結果の具体例を示す説明図である。
図10は、他のアロケーション結果例を示す説明図である。
図11は、生成部により生成された第1の合成結果の一例を示す説明図である。
図12は、設計支援装置による設計支援処理手順例を示すフローチャートである。
図13は、CまたはC++により記述された動作記述情報によるCFG変換例を示す説明図である。

実施例

0011

以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援方法、および設計支援装置の実施の形態を詳細に説明する。

0012

<設計支援例>
図1は、本実施の形態にかかる設計支援例を示す説明図である。設計支援例では、設計支援装置は、設計対象回路の動作記述情報から得られたCFG(Control Flow Graph)変換結果100から、クロック周期が十分に大きい第1の合成結果101を生成する。第1の合成結果101は、動作速度が最も遅い、すなわち、遅延量が最も大きい演算回路であり、クロックサイクルを1クロックサイクルとした回路情報である。

0013

第1の合成結果101では、演算回路111〜113の総遅延量以上の時間長が、1クロックサイクルのクロック周期となる。そして、設計支援装置は、第1の合成結果101を構成する回路の総面積により、第1の合成結果101の回路規模の大きさを示す回路規模情報を求める。ここでは、第1の合成結果101の回路規模情報S0をS0=1000とする。

0014

また、設計支援装置は、従来どおり、CFG変換結果100に対し、設計対象回路に与えられたタイミング制約に従って第2の合成結果102を生成する。第2の合成結果102は、タイミング制約を遵守するように演算回路が採用された回路情報である。図1では、タイミング制約は、2クロックサイクルとし、1クロックサイクルのクロック周期をα[sec]とする。

0015

したがって、演算回路111の遅延量はα[sec]以下となり、また、演算回路114,115の総遅延量もα[sec]以下となる。そして、設計支援装置は、第2の合成結果102を構成する回路の総面積により、第2の合成結果102の回路規模の大きさを示す回路規模情報S1を求める。ここでは、第2の合成結果102の回路規模情報S1をS1=1750とする。

0016

設計支援装置は、第1の合成結果101の回路規模情報S0(=1000)と第2の合成結果102の回路規模情報S1(=1750)とにより、比較情報C1を算出する。ここでは、比較情報C1はS1/S0とする。そして、比較情報C1がしきい値Ct以上である場合、設計支援装置は警告情報を出力する。

0017

このように、第1の合成結果101を客観的な指標として用い、第2の合成結果102の採否を判定することができるため、設計者は、第2の合成結果102の回路規模の大きさを相対的に確認することができる。なお、図1の例では、比較情報C1を求めてしきい値Ctと比較したが、設計支援装置は、回路規模情報S1から回路規模情報S0を引いた差分を比較情報C1としてもよい。

0018

また、設計支援装置が回路規模情報S0と回路規模情報S1とをそのまま出力し、設計者が出力結果を視認して判定することとしてもよい。いずれにしても、本実施の形態によれば、第1の合成結果101という客観的な指標を用いることにより、第2の合成結果102の回路規模が妥当な大きさか否かを判定でき、妥当である場合、回路規模の増大を抑制することができることになる。

0019

<設計支援装置のハードウェア構成例>
図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によってそれぞれ接続されている。

0020

ここで、CPU201は、設計支援装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリードライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。

0021

光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。

0022

ディスプレイ208は、カーソルアイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、液晶ディスプレイプラズマディスプレイなどを採用することができる。

0023

インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムLANアダプタなどを採用することができる。

0024

キーボード210は、文字数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式入力パッドテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールジョイスティックなどであってもよい。

0025

スキャナ212は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データ印刷する。プリンタ213には、たとえば、レーザプリンタインクジェットプリンタを採用することができる。なお、光ディスクドライブ206、光ディスク207、ディスプレイ208、キーボード210、マウス211、スキャナ212、およびプリンタ213の少なくともいずれか1つは、なくてもよい。

0026

ライブラリの記憶内容例>
図3は、記憶部の記憶内容例を示す説明図である。記憶部300は、回路ごとに、面積と遅延量を記憶するライブラリである。記憶部300は、合成処理を実行する場合に参照される。記憶部300は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置により、その機能を実現する。

0027

記憶部300において、回路とは、設計対象回路の構成要素であり、ANDやADD加算器)などの演算回路やレジスタFF)やセレクタ(SEL)などのデータ保持回路を含む。記憶部300では、同一種の回路であっても、面積や遅延量の相違から複数種類用意されている。また、遅延量とは、その回路にデータが入力されてから出力されるまでの時間である。したがって、遅延量が小さいほど動作速度が速いこととなるが、動作速度が速いほど面積が大きくなる。

0028

(設計支援装置の機能的構成例)
図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により、その機能を実現する。

0029

変換部401は、設計対象回路に関する動作記述情報をCFG変換する。動作記述情報とは、RTL(Register Transfer Level)よりも抽象度が高いレベルであり、RTLのようにクロックが規定されていないレベルの記述情報である。動作記述情報は、具体的には、たとえば、C、C++、SystemCなどにより記述された情報である。

0030

図5は、動作記述情報の一例を示す説明図である。図5の動作記述情報500は、SystemCにより記述された動作記述情報500である。図5の例では、上から2行目までがリセットを示す。また、図6は、図5に示した動作記述情報500のCFG変換例を示す説明図である。CFG変換結果100では、wait()によりクロックサイクルが表現される。

0031

合成部402は、CFG変換結果100に基づいて、第2の合成結果102を生成する。具体的には、たとえば、合成部402は、従来と同様、設計対象回路に与えられたタイミング制約を遵守する高位合成を実行する。ここで、合成部402による合成例について説明する。

0032

図7は、合成部402による合成例を示す説明図である。CFG変換結果100内のwait()はクロックサイクル数を表現するため、初期状態のCFG変換結果100は1クロックサイクルで動作する。ここで、タイミング制約としてクロックサイクル数「2」が与えられた場合、CFG変換結果100内のwait()はクロックサイクル数を表現するため、CFG結果にwait()が挿入される。これにより、CFG変換結果100は2クロックサイクルで動作する。つぎに、合成部402は、スケジューリングを実行する。

0033

スケジューリングとは、個々の演算回路をいずれかのクロックサイクルに割り当てる処理である。クロックサイクルの時間長、すなわち、クロック周期は、タイミング制約として与えられたクロック周波数逆数となる。たとえば、クロック周波数が400[MHz]である場合、クロック周期は1/400[μsec]となる。したがって、合成部402は、記憶部300を参照して、クロック周期内に演算回路の遅延量が収まるように演算回路を割り当てることになる。図7の例では、「add1」に対応する演算回路は、0〜1クロックサイクル間に割り当てられ、「mult1」および「out」に対応する演算回路は、1〜2クロックサイクル間に割り当てられる。これにより、CFG変換結果700が得られる。

0034

つぎに、合成部402は、スケジューリング後のCFG変換結果700に対しアロケーションを実行する。アロケーションとは、スケジューリング後のCFG変換結果700に従って、記憶部300内の回路情報を接続する処理である。接続の際に共有できる演算回路は共有化される。また、wait()については、レジスタに置換される。

0035

図8は、アロケーション結果を示す説明図である。図8のアロケーション結果800は、図7に示したCFG変換結果700をアロケーションした情報である。アロケーション結果は、たとえば、RTL記述情報として出力される。アロケーション結果800が、第2の合成結果102となる。

0036

図9は、図8に示したアロケーション結果800の具体例を示す説明図である。図9は、タイミング制約が2クロックサイクルの場合のアロケーション結果900を示している。ここでは、1クロックサイクルのクロック周期をα[sec]とする。演算回路111,114,115の各々の遅延量は、クロック周期α以下である。また、演算回路114,115の総遅延量もクロック周期α以下である。したがって、アロケーション結果900では、0〜1クロックサイクル間に、演算回路111が割り当てられ、1〜2クロックサイクル間に演算回路114,115が割り当てられる。

0037

図10は、他のアロケーション結果例を示す説明図である。図10は、タイミング制約が3クロックサイクルの場合のアロケーション結果1000を示している。ここでも、1クロックサイクルのクロック周期をα[sec]とする。演算回路111〜113の各々の遅延量は、クロック周期α以下である。したがって、アロケーション結果1000では、0〜1クロックサイクル間に、演算回路111が割り当てられ、1〜2クロックサイクル間に演算回路112が割り当てられ、2〜3クロックサイクル間に演算回路113が割り当てられる。

0038

図9図10を比較すると、図9において、1〜2クロックサイクル間では、乗算器と加算器の総遅延時間をα以内に収める必要があるため、演算回路112,113よりも遅延量の少ない演算回路114,115が採用される。また、図10では、たとえば、乗算器としては、演算回路112,114があるが、いずれもクロック周期α以内に収まるため、演算回路114よりも回路規模が小さい演算回路112が採用される。演算回路113,115についても同様である。

0039

なお、タイミング制約において、2クロックサイクルと規定されている場合は、図9のアロケーション結果が、3クロックサイクルと規定されている場合は、図10のアロケーション結果が得られる。これに対し、2〜3クロックサイクルと規定されている場合は、両アロケーション結果が得られることになる。

0040

図4に戻って、取得部403は、設計対象回路のCFG変換結果100に基づいたタイミング制約を遵守する設計対象回路の第2の合成結果102を取得する。具体的には、たとえば、合成部402によって得られたアロケーション結果を取得する。また、合成部402は設計支援装置400外に存在してもよいため、取得部403は、設計支援装置400外からアロケーション結果を取得することとしてもよい。この場合、合成部402は、設計支援装置400には含まれないものとする。

0041

生成部404は、設計対象回路に関する動作記述情報500のCFG変換結果100に基づいて、設計対象回路の1クロックサイクルの時間長が設計対象回路が動作するクロック周期以上となる第1の合成結果101を生成する。具体的には、たとえば、生成部404は、通常の高位合成、すなわち、上述した合成部402のような処理を実行せずに、CFG変換結果100に従って、演算回路群を配置し、最終段にレジスタを配置した第1の合成結果101をアロケーション結果として生成する。また、第1の合成結果101は、1クロックサイクルで動作する。この場合、1クロックサイクルの時間長、すなわち、クロック周期は、設計対象回路が動作するクロック周期以上の時間長となる。

0042

図11は、生成部404により生成された第1の合成結果101の一例を示す説明図である。第1の合成結果101では、加算器および乗算器は、回路規模が最も小さい演算回路111〜113が採用される。回路規模が小さいと遅延量が大きくなるが、1クロックサイクルのクロック周期は十分大きい値に設定されるため、演算回路111〜113の総遅延量が収まる範囲となる。ここで、1クロックサイクルのクロック周期は、たとえば100[sec]など、あらかじめ十分大きなクロック周期βが与えられる。また、クロック周期βは、設計対象回路の演算回路および最終段のレジスタの総遅延量以上となる値に設定してもよい。

0043

また、図11では、回路規模が最小の回路を採用して第1の合成結果101を生成することとしたが、クロック周期βに収まる範囲内であれば、生成部404は、どの回路規模の回路を採用してもよい。たとえば、回路規模の小型化を優先する場合は、生成部404は、記憶部300を参照して、上記のように回路規模が最小の回路を採用すればよく、また、動作速度の高速化を優先する場合は、生成部404は、記憶部300を参照して、遅延量が最小の回路を採用すればよい。また、回路規模の小型化および動作速度の高速化の両方を満足させたい場合は、生成部404は、記憶部300を参照して、回路規模および動作速度が平均的な回路を採用すればよい。

0044

図4に戻って、第1の算出部405は、生成部404によって生成された第1の合成結果101に基づいて、設計対象回路の回路規模の大きさを示す第1の回路規模情報S0を算出する。具体的には、たとえば、第1の算出部405は、第1の合成結果101内の回路の面積を記憶部300から参照して、総和を求める。求めた総和が設計対象回路の回路規模の大きさを示す第1の回路規模情報S0である。

0045

また、第2の算出部406は、取得部403によって取得された第2の合成結果102に基づいて、設計対象回路の回路規模の大きさを示す第2の回路規模情報S1を算出する。第2の算出部406も、第1の算出部405と同様、具体的には、たとえば、第2の合成結果102内の回路の面積を記憶部300から参照して、総和を求める。求めた総和が設計対象回路の回路規模の大きさを示す第2の回路規模情報S1である。第2の合成結果102が複数得られた場合には、各々について第2の回路規模情報が求められる。

0046

出力部407は、第1の算出部405によって算出された第1の回路規模情報S0と第2の算出部406によって算出された第2の回路規模情報S1とを出力する。具体的には、たとえば、第1の回路規模情報S0と第2の回路規模情報S1とを、印刷出力したり、ディスプレイ208に表示したり、外部装置に送信したりする。また、設計支援装置400内の記憶装置に格納してもよい。これにより、設計者は、第1の回路規模情報S0と第2の回路規模情報S1とを確認して、第2の合成結果102の回路規模の大きさを客観的に把握することができる。

0047

判定部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は採用してはいけない回路情報となる。

0048

また、判定部408は、第1の回路規模情報S0および第2の回路規模情報S1の比率としきい値とを比較することにより、第2の合成結果102による回路規模の妥当性を判定してもよい。具体的には、たとえば、判定部408は、第2の回路規模情報S1を第1の回路規模情報S0で除算した比率を比較情報C1として求め、比較情報C1がしきい値Ct以上であるか否かを判定する。しきい値Ct以上である場合、第2の合成結果102は採用してはいけない回路情報となる。

0049

しきい値Ct未満の場合は、判定部408は、第2の合成結果102を採用してもよい合成結果であるとして記憶装置に保存する。しきい値Ct以上である場合、出力部407は、警告情報の出力をおこなう。ここで、警告情報とは、たとえば、第2の合成結果102にしきい値Ct以上であることを示す情報であり、出力部407は、第2の合成結果102に関連付けて出力する。また、警告情報は、音声による警告音でもよい。これにより、設計者は、回路規模が大きい第2の合成結果102を客観的に把握することができるため、回路設計において回路規模の増大を抑制することができる。

0050

<設計支援処理手順例>
図12は、設計支援装置400による設計支援処理手順例を示すフローチャートである。まず、設計支援装置400は、変換部401により設計対象回路のCFG変換結果100を取得する(ステップS1200)。このあと、第2の合成結果102の生成処理(ステップS1201〜ステップS1209)と、第1の合成結果101の生成処理および回路規模判定処理(ステップS1211〜ステップS1218)と、が実行される。まず、第2の合成結果102の生成処理(ステップS1201〜ステップS1209)について説明する。

0051

設計支援装置400は、あらかじめ記憶装置に記憶されているタイミング制約を取得し(ステップS1201)、合成部402により、CFG変換結果100に対し、クロックサイクル数反映(ステップS1202)とスケジューリング(ステップS1203)を実行する。これにより、n個(n≧1)のスケジューリング結果R1〜Rnが生成されることになる。

0052

そして、設計支援装置400は、i=1とし(ステップS1204)、i>nか否かを判断する(ステップS1205)。i>nでない場合(ステップS1205:No)、設計支援装置400は、スケジューリング結果Riを選択し(ステップS1206)、選択したスケジューリング結果Riについてアロケーションを実行する(ステップS1207)。これにより、第2の合成結果102であるアロケーション結果Aiが得られる。アロケーション結果Aiは記憶装置に保持される。

0053

設計支援装置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)について説明する。

0054

設計支援装置400は、CFG変換結果100が得られた(ステップS1200)あと、生成部404により、クロック周期βでのアロケーションを実行する(ステップS1210)。これにより、第1の合成結果101であるアロケーション結果A0が得られる。つぎに、設計支援装置400は、第1の算出部405により、アロケーション結果A0について第1の回路規模情報S0を算出する(ステップS1211)。

0055

そして、設計支援装置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に移行する。

0056

一方、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)。

0057

一方、i>nである場合(ステップS1219:Yes)、第1の合成結果101の生成処理および回路規模判定処理を終了する。これにより、設計者は、回路規模が大きい第2の合成結果102を客観的に把握することができるため、回路設計において回路規模の増大を抑制することができる。

0058

なお、図12に示したフローチャートでは、比較情報Ciを算出してしきい値Ctと比較する例について説明したが、比較情報Ciを算出することなく、第1の回路規模情報S0と第2の回路規模情報Siとを比較してもよい。また、第1の回路規模情報S0と第2の回路規模情報Siとの比較もせず、第1の回路規模情報S0と第2の回路規模情報Siとを出力してもよい。

0059

なお、上述した実施の形態では、SystemCにより記述された設計対象回路の動作記述情報500を例に挙げて説明したが、CやC++により記述された設計対象回路の動作記述情報500を用いてもよい。

0060

図13は、CまたはC++により記述された動作記述情報によるCFG変換例を示す説明図である。図13の(A)において、動作記述情報1300は、CまたはC++により記述された動作記述情報である。動作記述情報1300は、CまたはC++により記述されているため、SystemCのようなwait()文による処理の切れ目が無いため、設計支援装置400は、Line行数やラベルによって合成範囲を指定し、合成範囲にてクロックサイクル数の指定をすることになる。

0061

たとえば、設計支援装置400は、動作記述情報1300のうち、「HL_RESET1_START」〜「HL_RESET1_END」のラベル間を高位合成のリセット記述範囲reset_endとして指定する。また、設計支援装置400は、動作記述情報1300のうち、「HL_SYNTH1_START」〜「HL_SYNTH1_END」のラベル間を高位合成の動作記述範囲として指定し、末尾の文「output」と「HL_SYNTH1_END」との間を、「clock_end」に決定する。

0062

図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と同様に適用することができる。

0063

以上説明したように、本実施の形態によれば、設計支援装置400が高位合成結果の回路規模の大きさの客観的な指標を提供することにより、設計者は、回路規模の妥当性を確認することができる。

0064

また、設計支援装置400が、第1の回路規模情報と第2の回路規模情報とに基づいて、第2の合成結果102による回路規模の妥当性を判定する。これにより、設計支援装置400が、高位合成結果の回路規模の大きさの客観的な指標を提供するにとどまらず、回路規模の妥当性を判定するため、回路規模が大きくなりすぎた第2の合成結果102と許容範囲内である第2の合成結果102とを自動的に選別することができる。したがって、設計支援装置400は、第2の合成結果102の選別の効率化を図ることができ、回路規模の増大を抑制することができる。

0065

また、妥当性の判定の際に、第2の回路規模情報から第1の回路規模情報を引いた差や、第1の回路規模情報および第2の回路規模情報の比率を用いることにより、第2の合成結果102の妥当性を相対的に評価することができる。したがって、客観性のある判定結果を得ることができる。

0066

また、第1の合成結果101では、回路規模が最小の回路が採用されるため、第2の合成結果102の回路規模は第1の合成結果101よりも回路規模が小さくならない理想的な回路規模である。したがって、第1の合成結果101の回路規模に近ければ近いほど、回路規模の増大が抑制された合成結果となるため、妥当と判定された第2の合成結果102を採用することにより、設計対象回路の回路規模の縮小化を図ることができる。

0067

なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスクフレキシブルディスクCD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。

0068

300 記憶部
401 変換部
402 合成部
403 取得部
404 生成部
405 第1の算出部
406 第2の算出部
407 出力部
408 判定部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ