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

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

Info

Publication number
JP5262403B2
JP5262403B2 JP2008200604A JP2008200604A JP5262403B2 JP 5262403 B2 JP5262403 B2 JP 5262403B2 JP 2008200604 A JP2008200604 A JP 2008200604A JP 2008200604 A JP2008200604 A JP 2008200604A JP 5262403 B2 JP5262403 B2 JP 5262403B2
Authority
JP
Japan
Prior art keywords
architecture
hardware
reconstruction
design support
division
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
JP2008200604A
Other languages
English (en)
Other versions
JP2010039677A (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 JP2008200604A priority Critical patent/JP5262403B2/ja
Publication of JP2010039677A publication Critical patent/JP2010039677A/ja
Application granted granted Critical
Publication of JP5262403B2 publication Critical patent/JP5262403B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを最適化する設計支援プログラム、設計支援装置、および設計支援方法に関する。
近年、システムLSI(Large Scale Integration)の開発時におけるシミュレーションによる設計技術が進められている。この技術は主にESL(Electronic System Level)技術と呼ばれ、システムLSIの設計を、段階ごとに詳細性(抽象性)を変えながら設計を行うシステム上流工程設計での高速シミュレーション技術である。一方で、抽象度の低い構成では、処理速度は遅いが、実際のハードウェアロジックに近い、ハード詳細設計の段階で用いられる(たとえば、下記特許文献1,2を参照。)。
ESL技術では、詳細なクロック動作などを適宜スキップ、隠蔽することで高速動作を行うことができる。CPU(Central Processing Unit)のインストラクションシミュレータと連動させることで、ソフト動作可能なシミュレーション環境として利用されており、SoC(System On a Chip)などの大規模システムLSI開発に適用される。
この技術を用いてシステム全体の挙動を開発の初期段階で見極め、詳細な動作は後工程で実施を行う。設計者は開発上流段階でのブロック図構成レベルの情報でハードウェアを表記することができる。ESLなどで用いられるシミュレーションでハードウェアを表現する場合、SystemCおよびXML(Extensible Markup Language)スクリプトによるハードウェア記述によりハードウェアをプログラマブルに表現できるため、容易にシステム構成を変更した評価を行うことができる。またこれらのハードウェア表現は一般的なソフトウェアのプログラムと同様の表現がなされる。
特開2001−22808号公報 特開2003−67438号公報
しかしながら、上述した従来技術では、人手によりESLを用いてシステム構成を考えていたため、設計者の技量や経験が求められる一方、設計者の技量や経験により生成される設計結果が異なる。したがって、技量や経験が浅い設計者が設計すると、目標仕様に対して、性能、物量コスト、消費電力などを達成できない可能性があるという問題があった。
また、上流工程で十分な検証が行われなかった場合、後工程において再設計手戻りの作業が発生してしまい、開発工程遅延あるいはコスト高騰などの問題が発生する可能性があるという問題があった。
また、上述した従来技術により論理設計での回路最適化をおこなっても上流設計にて誤りがある場合、その論理設計段階の回路最適化が無駄になるという問題があった。また、抽象度の異なるシミュレーションレベルを相互に行き来する場合、また大規模シミュレーションにあたっては、シミュレーション時間が増大し、設計期間の長期化を招くという問題があった。
この発明は、上述した従来技術による問題点を解消するため、効率的かつ最適なアーキテクチャ設計を短期間で実現することができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この設計支援プログラム、設計支援装置、および設計支援方法は、ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得し、取得されたアーキテクチャ内のハードウェアモデルの分割または/および融合の可能性を判断し、判断結果に基づいて、前記アーキテクチャを再構築し、再構築後のアーキテクチャを出力することを要件とする。
この設計支援プログラム、設計支援装置、および設計支援方法によれば、効率的かつ最適なアーキテクチャ設計を短期間で実現することができるという効果を奏する。
以下に添付図面を参照して、この設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。本実施の形態では論理設計での回路最適化ではなく、さらに上流工程での全体トラフィックを概略的に探索追求していく技術である。特に抽象度の高いシミュレーションを対象とし、設計の上流工程においてシステムアーキテクチャを探求する際に最適なアーキテクチャ構成を求める技術である。
図1は、本実施の形態にかかる設計支援装置の概要を示す説明図である。図1において、設計支援装置100は、最適化前のSystemCおよび接続情報を記したスクリプトコードで記述されたハードウェアモデルのソースコード群101、設計対象となるSoCにおいて動作させる評価ソフトウェア102、および設計者により指定される最適化の優先度/実装制約情報103を入力する。
そして、これらの入力情報をもとに入力されたハードウェアモデル群からなるアーキテクチャをリストラクチャリング(再構築)する。そして、指定された優先度に応じた最適化結果110として、たとえば、SystemCのハードウェアモデル群からなる最適化後のアーキテクチャを出力する。
ここで、ハードウェアモデルとは、設計対象であるSoCの構成要素のモデルであり、たとえば、CPUやメモリ、ストレージ、ブリッジ、表示装置、通信ユニットなどのモデルがある。評価ソフトウェア102とは、ハードウェアモデル群からなるアーキテクチャに実行させるベンチマークプログラムである。したがって、評価ソフトウェア102に最適なリストラクチャリングが実行される。優先度/実装制約情報103とは、設計者によって指定される優先度および実装制約を記述した情報である。この実装制約により分割や融合が制限されることとなる。優先度とは、性能、物量コスト、消費電力の優劣であり、これらの優先順位に応じたリストラクチャリングが実行される。
設計支援装置100は、コード解析部104とESLシミュレーション実行部106と最適化処理部109とを備える。コード解析部104は、入力されたハードウェアモデルのソースコード群101をコード解析によりグラフ化することでブロック化モデル群に変換する。ESLシミュレーション実行部106は、評価ソフトウェア102をブロック化ハードモデル群105からなるアーキテクチャ上で実行させることにより、シミュレーション結果107を出力する。このシミュレーション結果107は、ハードウェアモデル間のデータの依存関係をあらわす。
データベース(DB)108には、物量コストや消費電力を求めるための参照テーブルが保存されている。最適化処理部109は、シミュレーション結果107に基づいてブロック化ハードモデル群105からなるアーキテクチャをリストラクチャリングして、最適な構成を自動探求する。そして、このリストラクチャリングされた最適化後のアーキテクチャを出力する。この際、データベース108を参照して、最適化後のアーキテクチャの物量コストや消費電力を算出して、最適化結果110として出力する。
このようにして、設計対象となるSoCを構成するハードウェアモデルのソースコード群101と、評価ソフトウェア102と、優先度/実装制約情報103を与えるだけで、評価ソフトウェア102に適合したアーキテクチャを自動探求することができる。これにより、抽象度の高いESL設計段階において、設計者間でばらつきのない信頼性のあるESL設計を短期間で実現することができる。
(設計支援装置100のハードウェア構成)
図2は、実施の形態にかかる設計支援装置100のハードウェア構成を示すブロック図である。図2において、設計支援装置100は、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は、設計支援装置100の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、設計支援装置100内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(データベース108の記憶内容)
図3は、データベース108に記憶されている物量コスト/消費電力テーブルを示す説明図である。物量コスト/消費電力テーブル300は、ハードウェアごとに物量コスト(価格)および消費電力を記憶する。バスについては、リストラクチャリングにより帯域が変動するため固定値ではなく、変動値であらわす。このため、バスセッティング特性グラフへのポインタを記憶する。また、メモリについても、メモリサイズにより物量コストや消費電力が変動するため固定値ではなく、メモリ価格/消費電力テーブル500へのポインタを記憶する。
図4は、バスセッティング特性グラフを示す説明図である。バスセッティング特性グラフ400は、バスのセッティングによる消費電力特性を示している。横軸が帯域、縦軸が消費電力である。バスの帯域は、与える周波数により変化し、必要な帯域を確保する周波数を設定すれば、消費電力が一意に定まる。
図5は、メモリ価格/消費電力テーブル500を示す説明図である。メモリ価格/消費電力テーブル500は、単位メモリサイズ(ここでは、50[Mb])あたりの物量コストと消費電力を規定している。メモリは、利用するサイズによりコストと消費電力が変化するが、通常32Mb/64Mb/128Mb/256Mb…といった段階的な取り扱いを行うため、利用するサイズにより、段階的なコスト・消費電力値をもつ。本例では計算の簡略化のため、50Mb単位としている。
(最適化処理部109の機能的構成)
図6は、図1に示した最適化処理部109の機能的構成を示すブロック図である。図6において、最適化処理部109は、記憶部600と、取得部601と、判断部602と、再構築部603と、出力部604と、決定部605と、選択部606と、算出部610と、を備えている。
記憶部600は、図1に示したデータベース108に相当する機能であり、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記録媒体によりその機能を実現する。また、制御部となる機能(取得部601〜算出部610)は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。
取得部601は、ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得する機能を有する。具体的には、たとえば、評価ソフトウェア102を実行するブロック化ハードモデル群105を読みこむ。以下、ブロック化ハードモデルを「ハードウェアブロック」と称す。
ここで、設計対象のアーキテクチャについて説明する。評価ソフトウェア102を実行した結果、各ハードウェアブロック間を通過するデータ流量が定義される。このとき、評価を行おうとしている設計対象がN個のハードウェアブロックで構成されているとき、各々のハードウェアブロックをHWn(n=1,2,3,…,N)と表記する。
図7は、設計対象のアーキテクチャの一例を示す説明図である。図8は、図7に示したアーキテクチャ700のデータ依存関係を示すブロック構成図である。データ依存関係は、黒い矢印で示している(以下の図においても同様)。図7のアーキテクチャ700において、HW1〜HW4、HWxおよびHWyは、ハードウェアブロックであり、バスBに接続されている。ここで、HW1はCPU、HW2はアクセラレータ、HW3は通信ユニット、HW4はファイル管理ユニット、HWxとHWyはメモリをあらわしている。
図6に戻って、取得部601は、アーキテクチャ700にソフトウェアを実行させることにより、ハードウェアブロック間のデータ依存情報を取得する機能を有する。具体的には、たとえば、ESLシミュレーション実行部106により図7に示したアーキテクチャに評価ソフトウェア102を実行させた結果得られるデータ依存情報を読み込む。
図7のアーキテクチャ700の場合のデータ依存情報について説明する。データ依存情報とは、ハードウェアモデル間のデータの流れまたはそのデータ量である。アクセス先がメモリやレジスタ、ストレージである場合、メモリサイズで表現可能である。通常、ソフトウェアのブロック間依存はデルタ関数δで表記される。
本実施の形態ではSystemCなどのハードウェア記述言語で表現されたハードウェアモデルを一種のソフトウェアとみなしているので、この表記を利用してハードウェアブロックを表現していく。すなわち、HWmとHWnとの間にデータ転送があった場合、そのデータの流れをδ(HWm,HWn)と表記する。
・CPUから第1のメモリへのアクセス
δ(HW1,HWx)=アドレス空間{0020〜0139}=サイズ:120
・アクセラレータから第1のメモリへのアクセス
δ(HW2,HWx)=アドレス空間{0130〜0149}=サイズ:020
・通信ユニットから第1のメモリへのアクセス
δ(HW3,HWx)=アドレス空間{0000〜0129}=サイズ:130
・ファイル管理ユニットから第1のメモリへのアクセス
δ(HW4,HWx)=アドレス空間{0140〜0159}=サイズ:010
・ファイル管理ユニットから第2のメモリへのアクセス
δ(HW4,HWy)=アドレス空間{0160〜0169}=サイズ:010
なお、δ(HWa,HWb)のうちa,bにおいてx,yを除く1〜4の組み合わせについては、すべてφ(空集合=データの流れがなかった)であったとする。また、取得部601は、アーキテクチャの性能、物量コスト、または消費電力に関する優先度を取得する。具体的には、たとえば、図1に示した優先度/実装制約情報103を読み込む。たとえば、優先度/実装制約情報103がHW1とHW2との分割を禁止する記述である場合、リストラクチャリング後にHW1とHW2とを別の分割グループにする分割を禁止する。
図6に戻って、判断部602は、取得部601によって取得されたアーキテクチャ内のハードウェアモデルの分割または/および融合の可能性を判断する機能を有する。分割とは、ハードウェアモデルを2以上に分離することである。また、融合とは、2以上のハードウェアモデルを単一のハードウェアモデルにまとめることである。
ここで、分割/融合可能性判断について説明する。少なくとも2つ以上のハードウェアブロックからφではないデータ依存があるハードウェアブロックを共用リソースとする。本例では、HWxが共用リソースとなる。この共有リソースがアーキテクチャに存在する場合、共有リソースに相当するハードウェアモデルは分割可能であると判断される。
また、本例がSystemCで記述されているとすると、HWx,HWyは同一のメモリを表現するライブラリにリンクされている。すなわち、HWx,HWyは、設計者が求める最適アーキテクチャにおいて、同一のIP(Intellectual Property)から生成されるハードウェアブロックである。したがって、HWx,HWyは、融合可能でかつ分割可能なハードウェアブロックと判断される。このように、アーキテクチャ内に存在する同種のハードウェアブロックの個数により、アーキテクチャ内のハードウェアブロックの融合/分割の可能性を判断する。
再構築部603は、判断部602によって判断された判断結果に基づいて、アーキテクチャを再構築する機能を有する。具体的には、たとえば、分割可能ハードウェアモデルを分割するリストラクチャリングを実行する。また、融合可能なハードウェアモデルを融合するリストラクチャリングを実行する。ここで、リストラクチャリングの詳細について図7のアーキテクチャを用いて説明する。
まず、リストラクチャリングに先だって、図7のアーキテクチャ700において、データ転送総量および、アクセス空間評価値を算出する。HWmとHWnとの間にデータ転送があった場合、デルタ関数δ(HWm,HWn)と表記したが、その評価値としてデータ転送総量を定義することができる。ソフトウェアシミュレーションによって得られるこの数量をデータ転送総量DTm,nとし、下記式(1)のように表記する。
δ(HWm,HWn)=DTm,n・・・(1)
ここで、HWnが接続するバス経路のデータ流量総量DTnは下記式(2)のように表現されることになる。データ授受が行われないハードウェアブロックでは、δ()=0となる。
DTn=Σδ(HWk,HWn)・・・(2)
ただし、k=1,2,3,…,N
したがって、図7に示したアーキテクチャ700の共用リソースであるHWxに対するデータ転送総量DTxは、
DTx=Σδ(HWn,HWx)となり、n=1〜4であるから、
DTx=120+020+130+010=280となる。
同じく、図8に示したHWyに対するデータ転送総量DTyは、DTy=10である。
したがって、HWnが接続されるバス経路には高々式(2)を満たす帯域をもったバスを設定すればよいことになる。データ転送総量は高抽象度モデルであれば、大きさのみを表す絶対値表現を行う。
また、HWmがHWnに対してアクセスを行った場合、HWnにおいてアクセスを行ったアドレス空間をアドレス空間評価値AS(m,n)と定義する。たとえば、HWnが何らかのペリフェラル素子であった場合はレジスタであり、HWnがメモリ素子であった場合はメモリ空間を指す。アドレス空間評価値AS(m,n)はアドレスの集合であり、集合演算を用いて評価を行う。
図8に示したアーキテクチャ700において、δ(HWm,HWx)≠0となるx,y、すなわちHWmにアクセスを行うブロックすべてに対してアドレス空間評価値を算出する。アドレス空間評価値は以下のようになる。
AS(x,1)=|δ(HW1,HWx)|=120
AS(x,2)=|δ(HW2,HWx)|=20
AS(x,3)=|δ(HW3,HWx)|=130
AS(x,4)=|δ(HW4,HWx)|=20
AS(y,4)=|δ(HW4,HWy)|=10
これ以外のアドレス空間評価値は0である。
つぎに、ハードウェアブロックHWm,HWn(m≠n)に対して下記式(3)の依存評価値WS(m,n)を算出する。
WS(m,n)=AS(m,x)∩AS(n,x) (m≠n)・・・(3)
式(3)の依存評価値WS(m,n)は、ハードウェアブロックHWm,HWnのアクセス領域の重なりの部分を表現しており、依存量関係を表している。式(3)の値が空集合φである場合、HWxにおけるHWm,HWnは互いに依存関係がなく、HWxをHWmがアクセスする領域とHWnがアクセスする領域を分割しても問題ないことになる。
図7に示したアーキテクチャにおいて、各依存評価値WS(m,n)は以下のようになる。
WS(1,2)=δ(HW1,HWx)∩δ(HW2,HWx)
=(20〜139)∩(130〜149)=(130〜139)=10
WS(1,3)=δ(HW1,HWx)∩δ(HW3,HWx)
=(20〜139)∩(0〜129)=(20〜129)=110
WS(1,4)=δ(HW1,HWx)∩δ(HW4,HWx)
=(20〜139)∩(140〜159)=0
WS(2,3)=δ(HW2,HWx)∩δ(HW3,HWx)
=(130〜149)∩(0〜129)=0
WS(2,4)=δ(HW2,HWx)∩δ(HW4,HWx)
=(130〜149)∩(140〜159)=(140〜149)
=10
WS(3,4)=δ(HW3,HWx)∩δ(HW4,HWx)
=(0〜129)∩(140〜159)=0
つぎに、分割のリストラクチャリングについて説明する。分割対象となるハードウェアブロックは共用リソースである。図7の場合は、HWxを分割することになる。HWxと、HWxにデータ依存する4つのハードウェアブロックHW1〜HW4を分割するパターンは、以下のように有限個が存在する。
4つのハードウェアブロックを2グループに分ける組み合わせのうち、1:3に分割するケース
{HW4},{HW1,HW2,HW3}・・・図13
{HW3},{HW1,HW2,HW4}・・・図14
{HW2},{HW1,HW3,HW4}・・・図15
{HW1},{HW2,HW3,HW4}・・・図16
4つのハードウェアブロックを2グループに分ける組み合わせのうち、2:2に分割するケース。
{HW1,HW2},{HW3,HW4}
{HW1,HW3},{HW2,HW4}・・・図9
{HW1,HW4},{HW2,HW3}
4つのハードウェアブロックを3グループに分ける組み合わせのうち、1:1:2に分割するケース。
{HW3},{HW4},{HW1,HW2}・・・図17
{HW2},{HW4},{HW1,HW3}・・・図18
{HW2},{HW3},{HW1,HW4}・・・図19
{HW1},{HW4},{HW2,HW3}・・・図20
{HW1},{HW3},{HW2,HW4}・・・図21
{HW1},{HW2},{HW3,HW4}・・・図22
4つのハードウェアブロックを4グループに分ける組み合わせのうち、1:1:1:1に分割するケース。
{HW1},{HW2},{HW3},{HW4}・・・図23
以上のように、すべての組み合わせを総当りで分割することになる。図9は、図8に示したアーキテクチャの2:2分割による再構築後のアーキテクチャを示すブロック構成図である。なお、融合については、各分割パターンについて、HWx,HWyを融合してもよい(図10を参照)。
図10は、図9に示した2:2分割による再構築後のアーキテクチャにおける融合による再構築後のアーキテクチャを示すブロック構成図である。また、リストラクチャリング前のHWx,HWyを融合してもよい。図11は、図8に示したアーキテクチャの融合による再構築後のアーキテクチャを示すブロック構成図である。
出力部604は、再構築部603による再構築後のアーキテクチャを出力する機能を有する。具体的には、たとえば、最適化結果110として、再構築後のアーキテクチャを出力する。出力形式は、ディスプレイ208への表示、プリンタ213による印刷出力、他の装置への送信、記憶部600への書込みなどがある。
決定部605は、アーキテクチャ内のハードウェアモデルの分割、融合、または、分割後の融合の中からアーキテクチャに可能な再構築種を決定する機能を有する。具体的には、アーキテクチャの性能、物量コスト、または消費電力に関する優先度(優先度/実装制約情報103)と判断結果とに基づいて、再構築種を決定する。この場合、再構築部603は、決定された再構築種に応じた再構築をおこなう。なお、「分割後の融合」とは、まず分割のリストラクチャリングをおこない、その再構築後のアーキテクチャに対して融合を施すリストラクチャリングである。
ここで、再構築種の決定について説明する。物量コストの観点でみると、回路分割を行うと回路の個数が増加するため、コスト増となる。消費電力の観点でみると、回路分割を行うことで、回路の個数増加に伴う消費電力が増加する反面、負荷分散によるクロック低下で消費電力が減少する。性能の観点でみると、回路分割を行うことで、負荷分散によりリソース衝突に起因する遅延が低減したり、帯域の優先利用率が高くなるため、性能が向上する。したがって、優先度と分割/融合は、以下の関係を有する。
物量コスト最優先の場合、再構築種は「融合」と「分割後の融合」に決定される。ただし、判断部602により分割不可である場合、再構築種は「融合」のみであり、融合不可である場合、リストラクチャリング自体ができないこととなる。
消費電力最優先の場合、再構築種は「融合」と「分割後の融合」に決定される。ただし、判断部602により分割不可である場合、再構築種は「融合」のみであり、融合不可である場合、リストラクチャリング自体ができないこととなる。
性能最優先の場合、再構築種は「分割」と「分割後の融合」に決定される。ただし、判断部602により分割不可である場合、リストラクチャリング自体ができない。一方、融合不可である場合、再構築種は「分割」のみである。
図6に戻って、選択部606は、データ依存量により特定される一対のハードウェアの集合のうち、データ依存量が最小となる一対のハードウェアから順次選択する機能を有する。依存評価値WS(m,n)はベクトル値であるため、WS(m,n)≠φの場合、データ依存量DEP(m,n)は、下記式(4)であらわすことができる。
DEP(m,n)=|AS(m,x)∩AS(n,x)|・・・(4)
AS(m,x)∩AS(n,x)=φの場合、DEP(m,n)=0となる。たとえば、HW1,HW2をグループ分割する場合、HW1,HW2のデータ依存量DEP(1,2)を評価すると、
DEP(1,2)=|WS(1,2)|=|(130〜139)|=10
となる。
また、たとえば、HW1,HW3をグループ分割する場合、HW1,HW3のデータ依存量DEP(1,3)を評価すると、
DEP(1,3)=|WS(1,3)|=|(20〜129)|=110
となる。
各ハードウェアモデルの組み合わせについてデータ依存量DEP(m,n)を算出し、分割の場合には、昇順にソートし、融合の場合には降順にソートする。データ依存量DEP(m,n)が小さいほど、分割に適しており、特に、DEP(m,n)=0については、分割により複数のブロック間のデータ依存が発生しないために、単純な分割をおこなってよい。また、データ依存量DEP(m,n)が大きいほど、HWmがアクセスするHWxとHWnがアクセスするHWyとは融合に適している。
たとえば、データ依存量DEP(1,2)=φの場合、
{HW1},{HW2,HW3,HW4}
{HW2},{HW1,HW3,HW4}
{HW1,HW3},{HW2,HW4}
{HW1},{HW2},{HW3,HW4}
{HW1},{HW3},{HW2,HW4}
{HW1},{HW4},{HW2,HW3}
{HW2},{HW3},{HW1,HW4}
が、最も分割に適したグループ分けである。選択部606では、このようなHWmとHWnの組み合わせを順次選択することで、再構築部603が、選択されたHWmとHWnとをグループ分けするようなリストラクチャリングを実行することとなる。
算出部610は、コスト算出部611と帯域算出部612と消費電力算出部613とを備える。コスト算出部611は、記憶部600に記憶されたテーブルを参照することにより、再構築後のアーキテクチャの物量コストを算出する機能を有する。具体的には、たとえば、該当するハードウェアの物量コストを物量コスト/消費電力テーブル300から引く。メモリの場合は、メモリ価格/消費電力テーブル500から物量コストを引く。
本例では、メモリは50[Mb]を単位メモリサイズとしているため、再構築後のアーキテクチャにおいてメモリのサイズを直近の50[Mb]の倍数に切り上げた後、メモリ価格/消費電力テーブル500から物量コストを引く。たとえば、メモリサイズが130[Mb]の場合、150[Mb]とし、メモリ価格/消費電力テーブル500から物量コストを引く。引かれた物量コストは、10[$]/50[Mb]であるため、この場合の物量コストは、30[$]となる。
そして、各ハードウェアブロックの物量コストを合計することで、再構築後のアーキテクチャの物量コストが得られる。再構築後のアーキテクチャの物量コストは出力部604によって出力される。
帯域算出部612は、再構築後のアーキテクチャのバスの帯域をバスごとに算出する機能を有する。具体的には、たとえば、アーキテクチャを構成する分割グループごとに帯域を算出する。
図13〜図23は、再構築後のアーキテクチャを示すブロック構成図である。図中、HWz#(#は番号)は、再構築後のメモリを示している。図9〜図11、図13〜図23の分割または融合のアーキテクチャについて、楕円内の数値が、各ハードウェアブロックのメモリへのアクセスをあらわすデルタ関数の値であり、四角で囲われた数値が、そのデータ流量総量DTとなる。
また、DEP(m,n)≠0の場合は、分割したことにより依存関係にあるデータを転送するデータ転送が分割されたブロック間で発生する。すなわち、HWxが分割された場合、これらのデータはHWx上で共用していたデータであるため、DEP(m,n)の新たなデータ流量が発生し、実装上の矛盾を解決する必要がある。
たとえば、図8に示したように、HWxへのバスのデータ量は分散される。分割前のHWxへのアクセス総量は、
Σδ(HWn,HWx)=120+20+130+10=280
となる。
一方、{HW1,HW3},{HW2,HW4}の2つのグループに分けた場合、{HW1,HW3}のグループからのデータ総量は、HW1とHW2の依存部分が新たに発生するデータ流量であるため、DEP(1,2)を加味して、
Σδ(HWn,HWx)+DEP(1,2)=(120+130)+10=260
となる。
また、HW2,HW4からのデータ総量は、
Σδ(HWn,HWx)+DEP(1,2)=(20+20)+10=50
となる。したがって、図9に示した再構築後のアーキテクチャについては、分割することによって、分割グループ901には260[Mbps]、分割グループ902には50[Mbps]の帯域を持つバスを用意することになる。
このように、図9のほか、新たなデータ流量は、図10、図14〜図23で発生している。図9、図10、図14〜図23では、この新たなデータ流量を点線矢印で示すこととする。この新たなデータ流量DEP(m,n)を加算することで、新たなデータ流量が発生した場合の実装上の矛盾を解決することができ、信頼性の高い帯域算出を実現することができる。
消費電力算出部613は、記憶部600に記憶されたテーブルと帯域算出部612によって算出されたバスの帯域とに基づいて、再構築後のアーキテクチャの消費電力量を算出する機能を有する。具体的には、たとえば、該当するハードウェアの消費電力を物量コスト/消費電力テーブル300から引く。メモリの場合は、メモリ価格/消費電力テーブル500から消費電力コストを引く。
本例では、メモリは50[Mb]を単位メモリサイズとしているため、再構築後のアーキテクチャにおいてメモリのサイズを直近の50[Mb]の倍数に切り上げた後、メモリ価格/消費電力テーブル500から消費電力を引く。たとえば、メモリサイズが130[Mb]の場合、150[Mb]とし、メモリ価格/消費電力テーブル500から消費電力を引く。引かれた消費電力は、50[$]/50[Mb]であるため、この場合の物量コストは、150[mW]となる。
また、図4のバスセッティング特性グラフ400から、分割グループ901,902ごとにバスの消費電力を引く。分割グループ901のバスの帯域は260[Mbps]であるため、分割グループ901のバスの消費電力は50[mV]である。分割グループ902のバスの帯域は50[Mbps]であるため、分割グループ902のバスの消費電力は10[mV]である。
図12は、図8〜図10の再構築前後のアーキテクチャの物量コスト/消費電力の比較表である。この比較表は出力部604から出力される。図8のアーキテクチャは、単一バスであるため、衝突による性能劣化が生じやすいことがわかる。図9の分割後のアーキテクチャは、分割によりバス上での衝突が回避され性能が出しやすいことがわかる。図10の分割融合後のアーキテクチャでは、分割されているが、融合により図9と比べてグループ数が少ないため、バス上での衝突による性能劣化の可能性はやや高いことがわかる。
図24は、図7に示したアーキテクチャ700の分割または融合による再構築後のアーキテクチャの物量コストおよび消費電力を示す図表である。この図表もデータ化されて出力部604から出力される。図24において、消費電力および物量コストともに最小となるアーキテクチャは、図13に示した再構築後のアーキテクチャである。
(設計支援処理手順)
図25および図26は、本実施の形態にかかる設計支援処理手順を示すフローチャートである。図25において、取得部601により、アーキテクチャと優先度/実装制約情報103を取得する(ステップS2501)。つぎに、判断部602により、同種のハードウェアブロックが複数あるか否かを判断する(ステップS2502)。
複数ある場合(ステップS2502:Yes)、そのハードウェアブロックを融合可能かつ分割可能なハードウェアブロックに決定する(ステップS2503)。一方、複数ない場合(ステップS2502:No)、融合不可能なハードウェアブロックに決定する(ステップS2504)。
また、取得部601により、ハードウェアブロック間におけるデータ依存情報を取得する(ステップS2505)。そして、判断部602により、共用リソースがあるか否かを判断する(ステップS2506)。共用リソースがある場合(ステップS2506:Yes)、その共用リソースを分割可能なハードウェアブロックに決定する(ステップS2507)。
一方、共用リソースでない場合(ステップS2506:No)、ステップS2503で分割可能と判断されたハードウェアブロックを除き、分割不可能なハードウェアブロックに決定する(ステップS2508)。そして、ステップS2509に移行する。
このあと、帯域算出部612による帯域算出処理(ステップS2509)、コスト算出部611による物量コスト算出処理(ステップS2510)、消費電力算出部613による消費電力算出処理(ステップS2511)を実行する。これにより、再構築前のアーキテクチャについての帯域、物量コスト、および消費電力を得ることができ、再構築後のアーキテクチャとの比較対象とすることができる。
図26において、リストラクチャリングに先立って、データ依存量DEP(m,n)を算出する(ステップS2601)。つぎに、決定部605により、再構築種を決定する(ステップS2602)。そして、分割または融合が可能なアーキテクチャであるか否かを判断する(ステップS2603)。不可能なアーキテクチャである場合(ステップS2603:No)、出力部604により、分割/融合不可出力をおこなう(ステップS2604)。これにより、一連の処理を終了する。
一方、分割/融合可能なアーキテクチャである場合(ステップS2603:Yes)、決定された再構築種を特定する(ステップS2605)。再構築種が「分割」である場合(ステップS2605:分割)、アーキテクチャに対して分割リストラクチャリング処理を実行する(ステップS2606)。そして、ステップS2610に移行する。また、再構築種が「融合」であった場合(ステップS2605:融合)、アーキテクチャに対して融合リストラクチャリング処理を実行する(ステップS2607)。そして、ステップS2610に移行する。
さらに、再構築種が「分割後の融合」である場合(ステップS2605:分割→融合)、アーキテクチャに対して分割リストラクチャリング処理を実行し(ステップS2608)、そのあと、分割リストラクチャリング後のアーキテクチャに対して融合リストラクチャリング処理を実行する(ステップS2609)。そして、ステップS2610に移行する。ステップS2610では、出力部604により、再構築後のアーキテクチャなどを含む最適化結果110を出力する(ステップS2610)。これにより、一連の処理を終了する。
図27は、分割リストラクチャリング処理(ステップS2606(ステップS2608))の詳細な処理手順を示すフローチャートである。まず、データ依存量DEP(m,n)を昇順にソートし(ステップS2701)、分割終了か否かを判断する(ステップS2702)。分割の終了基準としては、DEP(m,n)≠0の出現、上位N番目までのDEP(m,n)に基づく分割リストラクチャリングの終了など、優先度/実装制約情報103により判断することができる。
分割終了でない場合(ステップS2702:No)、選択部606により、最上位のデータ依存量DEP(m,n)を抽出して、ソートされたリストから削除しておく(ステップS2703)。そして、分割対象アーキテクチャに対して分割リストラクチャリングをおこなう(ステップS2704)。このあと、ステップS2509〜S2511と同様、帯域算出部612による帯域算出処理(ステップS2705)、コスト算出部611による物量コスト算出処理(ステップS2706)、消費電力算出部613による消費電力算出処理(ステップS2707)を実行する。
これにより、分割による再構築後のアーキテクチャについての帯域、物量コスト、および消費電力を得ることができる。そして、この再構築後のアーキテクチャや帯域、物量コスト、消費電力の算出結果を記憶部600に保存しておく(ステップS2708)。そして、ステップS2702に戻る。ステップS2702において、分割終了となった場合(ステップS2702:Yes)、ステップS2610(またはステップS2609)に移行する。
図28は、融合リストラクチャリング処理(ステップS2607(ステップS2609))の詳細な処理手順を示すフローチャートである。まず、データ依存量DEP(m,n)を降順にソートし(ステップS2801)、融合終了か否かを判断する(ステップS2802)。融合の終了基準としては、DEP(m,n)=0の出現、上位N番目までのDEP(m,n)に基づく融合リストラクチャリングの終了など、実装制約情報103により判断することができる。
融合終了でない場合(ステップS2802:No)、選択部606により、最上位のデータ依存量DEP(m,n)を抽出して、ソートされたリストから削除しておく(ステップS2803)。そして、融合対象アーキテクチャに対して融合リストラクチャリングをおこなう(ステップS2804)。このあと、ステップS2705〜S2707と同様、帯域算出部612による帯域算出処理(ステップS2805)、コスト算出部611による物量コスト算出処理(ステップS2806)、消費電力算出部613による消費電力算出処理(ステップS2807)を実行する。
これにより、融合による再構築後のアーキテクチャについての帯域、物量コスト、および消費電力を得ることができる。そして、この再構築後のアーキテクチャや帯域、物量コスト、消費電力の算出結果を記憶部600に保存しておく(ステップS2808)。そして、ステップS2802に戻る。ステップS2802において、融合終了となった場合(ステップS2802:Yes)、ステップS2610に移行する。
以上説明したように、本実施の形態によれば、最適なアーキテクチャ構成を求めることにより、効率的かつ最適なアーキテクチャ設計を短期間で実現することができる。
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得する取得手段、
前記取得手段によって取得された前記アーキテクチャ内の前記ハードウェアモデルの分割または/および融合の可能性を判断する判断手段、
前記判断手段によって判断された判断結果に基づいて、前記アーキテクチャを再構築する再構築手段、
前記再構築手段による再構築後のアーキテクチャを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
(付記2)前記取得手段は、
前記アーキテクチャに前記ソフトウェアを実行させることにより、前記ハードウェアモデル間のデータ依存情報を取得し、
前記判断手段は、
前記取得手段によって取得された前記データ依存情報に基づいて、前記アーキテクチャ内の前記ハードウェアモデルの分割の可能性を判断することを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記判断手段は、
前記アーキテクチャ内に存在する同種のハードウェアモデルの個数に基づいて、前記アーキテクチャ内の前記ハードウェアモデルの融合および分割の可能性を判断することを特徴とする付記1または2に記載の設計支援プログラム。
(付記4)前記コンピュータを、
前記アーキテクチャ内の前記ハードウェアモデルの分割、融合、または、分割後の融合の中から前記アーキテクチャに可能な再構築種を決定する決定手段として機能させ、
前記取得手段は、
前記アーキテクチャの性能、物量コスト、または消費電力に関する優先度を取得し、
前記決定手段は、
前記判断結果と前記取得手段によって取得された優先度とに基づいて、前記再構築種を決定し、
前記再構築手段は、
前記決定手段によって決定された再構築種に応じた再構築をおこなうことを特徴とする付記1〜3のいずれか一つに記載の設計支援プログラム。
(付記5)前記再構築手段は、
前記再構築種が分割を含む場合、前記アーキテクチャ内の複数の前記ハードウェアモデルが共通してアクセスする共通ハードウェアモデルを分割することにより、前記アーキテクチャを再構築することを特徴とする付記4に記載の設計支援プログラム。
(付記6)前記再構築手段は、
前記再構築種が融合である場合、前記アーキテクチャ内の複数の前記ハードウェアモデルがそれぞれアクセスする同種のハードウェアモデルを融合することにより、前記アーキテクチャを再構築することを特徴とする付記4に記載の設計支援プログラム。
(付記7)前記コンピュータを、
前記ハードウェアモデルの種別ごとの物量コストを有するテーブルを記憶する記憶手段、
前記記憶手段に記憶された前記テーブルを参照することにより、前記再構築後のアーキテクチャの物量コストを算出するコスト算出手段、として機能させ、
前記出力手段は、
前記コスト算出手段によって算出された算出結果を出力することを特徴とする付記1〜6のいずれか一つに記載の設計支援プログラム。
(付記8)前記コンピュータを、
前記ハードウェアモデルの種別ごとの消費電力量を有するテーブルを記憶する記憶手段、
前記再構築後のアーキテクチャのバスの帯域を算出する帯域算出手段、
前記記憶手段に記憶された前記テーブルと前記帯域算出手段によって算出されたバスの帯域とに基づいて、前記再構築後のアーキテクチャの消費電力量を算出する消費電力算出手段、として機能させ、
前記出力手段は、
前記消費電力算出手段によって算出された算出結果を出力することを特徴とする付記1〜7のいずれか一つに記載の設計支援プログラム。
(付記9)ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得する取得手段と、
前記取得手段によって取得された前記アーキテクチャ内の前記ハードウェアモデルの分割または/および融合の可能性を判断する判断手段と、
前記判断手段によって判断された判断結果に基づいて、前記アーキテクチャを再構築する再構築手段と、
前記再構築手段による再構築後のアーキテクチャを出力する出力手段と、
を備えることを特徴とする設計支援装置。
(付記10)コンピュータが、
ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得する取得工程と、
前記取得工程によって取得された前記アーキテクチャ内の前記ハードウェアモデルの分割または/および融合の可能性を判断する判断工程と、
前記判断工程によって判断された判断結果に基づいて、前記アーキテクチャを再構築する再構築工程と、
前記再構築工程による再構築後のアーキテクチャを出力する出力工程と、
を実行することを特徴とする設計支援方法。
本実施の形態にかかる設計支援装置の概要を示す説明図である。 実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。 物量コスト/消費電力テーブルを示す説明図である。 バスセッティング特性グラフを示す説明図である。 メモリ価格/消費電力テーブルを示す説明図である。 図1に示した最適化処理部の機能的構成を示すブロック図である。 設計対象のアーキテクチャの一例を示す説明図である。 図7に示したアーキテクチャのデータ依存関係を示すブロック構成図である。 図8に示したアーキテクチャの2:2分割による再構築後のアーキテクチャを示すブロック構成図である。 図9に示した2:2分割による再構築後のアーキテクチャにおける融合による再構築後のアーキテクチャを示すブロック構成図である。 図8に示したアーキテクチャの融合による再構築後のアーキテクチャを示すブロック構成図である。 図8〜図10の再構築前後のアーキテクチャの物量コスト/消費電力の比較表である。 再構築後のアーキテクチャ(1:3)を示すブロック構成図(その1)である。 再構築後のアーキテクチャ(1:3)を示すブロック構成図(その2)である。 再構築後のアーキテクチャ(1:3)を示すブロック構成図(その3)である。 再構築後のアーキテクチャ(1:3)を示すブロック構成図(その4)である。 再構築後のアーキテクチャ(1:1:2)を示すブロック構成図(その1)である。 再構築後のアーキテクチャ(1:1:2)を示すブロック構成図(その2)である。 再構築後のアーキテクチャ(1:1:2)を示すブロック構成図(その3)である。 再構築後のアーキテクチャ(1:1:2)を示すブロック構成図(その4)である。 再構築後のアーキテクチャ(1:1:2)を示すブロック構成図(その5)である。 再構築後のアーキテクチャ(1:1:2)を示すブロック構成図(その6)である。 再構築後のアーキテクチャ(1:1:1:1)を示すブロック構成図である。 図7に示したアーキテクチャの分割または融合による再構築後のアーキテクチャの物量コストおよび消費電力を示す図表である。 本実施の形態にかかる設計支援処理手順を示すフローチャート(前半)である。 本実施の形態にかかる設計支援処理手順を示すフローチャート(後半)である。 分割リストラクチャリング処理(ステップS2606(ステップS2608))の詳細な処理手順を示すフローチャートである。 融合リストラクチャリング処理(ステップS2607(ステップS2609))の詳細な処理手順を示すフローチャートである。
符号の説明
100 設計支援装置
101 ソースコード群
102 評価ソフトウェア
103 優先度/実装制約情報
104 コード解析部
105 ブロック化ハードモデル群
106 ESLシミュレーション実行部
107 シミュレーション結果
108 データベース
109 最適化処理部
110 最適化結果
600 記憶部
601 取得部
602 判断部
603 再構築部
604 出力部
605 決定部
606 選択部
610 算出部
611 コスト算出部
612 帯域算出部
613 消費電力算出部

Claims (5)

  1. コンピュータを、
    ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得する取得手段、
    前記取得手段によって取得された前記アーキテクチャ内の前記ハードウェアモデルの分割または/および融合の可能性を全ての分割パターンについて判断する判断手段、
    前記判断手段によって判断された判断結果に基づいて、前記アーキテクチャを再構築する再構築手段、
    前記再構築手段による再構築後のアーキテクチャを出力する出力手段、
    として機能させることを特徴とする設計支援プログラム。
  2. 前記取得手段は、
    前記アーキテクチャに前記ソフトウェアを実行させることにより、前記ハードウェアモデル間のデータ依存情報を取得し、
    前記判断手段は、
    前記取得手段によって取得された前記データ依存情報に基づいて、前記アーキテクチャ内の前記ハードウェアモデルの分割の可能性を判断することを特徴とする請求項1に記載の設計支援プログラム。
  3. 前記判断手段は、
    前記アーキテクチャ内に存在する同種のハードウェアモデルの個数に基づいて、前記アーキテクチャ内の前記ハードウェアモデルの融合および分割の可能性を判断することを特徴とする請求項1または2に記載の設計支援プログラム。
  4. ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得する取得手段と、
    前記取得手段によって取得された前記アーキテクチャ内の前記ハードウェアモデルの分割または/および融合の可能性を全ての分割パターンについて判断する判断手段と、
    前記判断手段によって判断された判断結果に基づいて、前記アーキテクチャを再構築する再構築手段と、
    前記再構築手段による再構築後のアーキテクチャを出力する出力手段と、
    を備えることを特徴とする設計支援装置。
  5. コンピュータが、
    ソフトウェアを実行するハードウェアモデル群からなるアーキテクチャを取得する取得工程と、
    前記取得工程によって取得された前記アーキテクチャ内の前記ハードウェアモデルの分割または/および融合の可能性を全ての分割パターンについて判断する判断工程と、
    前記判断工程によって判断された判断結果に基づいて、前記アーキテクチャを再構築する再構築工程と、
    前記再構築工程による再構築後のアーキテクチャを出力する出力工程と、
    を実行することを特徴とする設計支援方法。
JP2008200604A 2008-08-04 2008-08-04 設計支援プログラム、設計支援装置、および設計支援方法 Expired - Fee Related JP5262403B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008200604A JP5262403B2 (ja) 2008-08-04 2008-08-04 設計支援プログラム、設計支援装置、および設計支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008200604A JP5262403B2 (ja) 2008-08-04 2008-08-04 設計支援プログラム、設計支援装置、および設計支援方法

Publications (2)

Publication Number Publication Date
JP2010039677A JP2010039677A (ja) 2010-02-18
JP5262403B2 true JP5262403B2 (ja) 2013-08-14

Family

ID=42012175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008200604A Expired - Fee Related JP5262403B2 (ja) 2008-08-04 2008-08-04 設計支援プログラム、設計支援装置、および設計支援方法

Country Status (1)

Country Link
JP (1) JP5262403B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216957A (ja) * 1992-02-03 1993-08-27 Ricoh Co Ltd 回路設計方式
JPH05334466A (ja) * 1992-06-02 1993-12-17 Nec Corp 演算器・記憶装置・データ転送装置共有可能性判定装置
JP3853114B2 (ja) * 1999-07-30 2006-12-06 松下電器産業株式会社 インターフェースの設計方法
JP2004288205A (ja) * 2004-05-10 2004-10-14 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法
JP2007323206A (ja) * 2006-05-30 2007-12-13 Toshiba Corp 動作合成装置、同方法、シミュレーション装置、同方法及び設計装置

Also Published As

Publication number Publication date
JP2010039677A (ja) 2010-02-18

Similar Documents

Publication Publication Date Title
US8122398B2 (en) Conversion of circuit description to an abstract model of the circuit
CN100456308C (zh) 断言产生系统、电路验证系统以及断言产生方法
US7434101B2 (en) Highly specialized scenarios in random test generation
Adya et al. Benchmarking for large-scale placement and beyond
US11994979B2 (en) Smart regression test selection for software development
US20030065965A1 (en) Circuit reduction technique for improving clock net analysis performance
Lavagno et al. Design of embedded systems
JP5098970B2 (ja) リーク電流分布検証支援プログラム、リーク電流分布検証支援装置およびリーク電流分布検証支援方法
Obal II et al. Measure-adaptive state-space construction
Kurshan Transfer of model checking to industrial practice
JP5262403B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP5163308B2 (ja) Ipモデル生成装置、ipモデル生成方法、およびipモデル生成プログラム
US7051301B2 (en) System and method for building a test case including a summary of instructions
JP5001126B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
JP5071297B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
Costa et al. Extracting method of packet dependence from NoC simulation traces using association rule mining
Alizadeh et al. Automatic correction of RTL designs using a lightweight partial high level synthesis
JP2962292B2 (ja) レイアウト設計を考慮したlsi論理設計支援システム
Rao et al. Integrated performance and dependability analysis using the Advanced Design Environment Prototype Tool ADEPT
US7350162B2 (en) Structure analytic program
JP5262678B2 (ja) 動作合成システム、動作合成方法、及び動作合成用プログラム
Golshan Design Verification
JP2022152766A (ja) デッドロック検出プログラム、デッドロック検出方法および管理装置
Williams et al. A high level logic design system'
Fujita et al. Debugging from high level down to gate level

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120921

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees