JP5056511B2 - 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 - Google Patents

検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 Download PDF

Info

Publication number
JP5056511B2
JP5056511B2 JP2008068049A JP2008068049A JP5056511B2 JP 5056511 B2 JP5056511 B2 JP 5056511B2 JP 2008068049 A JP2008068049 A JP 2008068049A JP 2008068049 A JP2008068049 A JP 2008068049A JP 5056511 B2 JP5056511 B2 JP 5056511B2
Authority
JP
Japan
Prior art keywords
circuit
module
input
output
sequential
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
JP2008068049A
Other languages
English (en)
Other versions
JP2009223661A (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 JP2008068049A priority Critical patent/JP5056511B2/ja
Priority to US12/405,373 priority patent/US8074192B2/en
Publication of JP2009223661A publication Critical patent/JP2009223661A/ja
Application granted granted Critical
Publication of JP5056511B2 publication Critical patent/JP5056511B2/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

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

この発明は、大規模な設計対象回路の検証を支援する検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法に関する。
LSI設計時には、設計対象回路が意図したとおりに動作するかどうかをシミュレーションによって確認する。ソフトウェアによる実行では、設計対象回路が大規模になればなるほどシミュレーションに時間がかかる。このため、大規模な設計対象回路ではFPGA(Field Programmable Gate Array)などのハードウェア上に載せることにより、シミュレーションをおこなう手法が用いられている。
また、下記特許文献1には、ソフトウェアシミュレータとハードウェアエミュレータを併用して設計対象回路の検証をおこなう技術が記載されている。具体的には、記録媒体から論理情報を読み込み、その論理情報のうち構造レベルまで確定している部分についてハードウェアエミュレータで検証を実行し、その他の部分についてはソフトウェアシミュレータで検証を実行する。
特開2000−215226号公報
しかしながら、FPGAを使ったシミュレーションは、ソフトウェアによるシミュレーションより高速であるが、シミュレートできる回路規模に限度がある。特に、高速化のためにマルチプロセッサで構成されている設計対象システムの動作をシミュレートしようとすると、複数のコアを入れるための回路規模が大きくなりすぎ、FPGAに載りきらないという問題が発生する。
例えば、マルチプロセッサ構成の設計対象システムでは、同一のCPUが複数存在し、それがバスなどを通じて通信しながら動作する。従来では、n個のCPUが接続する設計対象システムをシミュレートしようとすると、回路量はn倍になっていた。このように、設計対象回路が大規模になればなるほど、ソフトウェアによるシミュレーションに頼らざるを得なくなり、設計期間の長期化を招くという問題があった。
一方、マルチプロセッサ構成の設計対象システムのような大規模回路については、動作確認しようとする実プロセッサ以外の部分で、回路量を削減した擬似プロセッサを使うなどの工夫により、この問題を回避することができる。
しかしながら、実設計対象システムと動作が一致しないためシミュレーションに漏れが生じることとなり、設計精度が低減するという問題があった。さらに、擬似プロセッサを作るための工数が必要となり、結果的に設計期間の長期化を招くという問題があった。
この発明は、上述した従来技術による問題点を解消するため、多重化モジュールを有する設計対象システムのシミュレーションの高精度化およびデバッグ作業の効率化を図ることにより、設計期間の短縮化を実現することができる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付け、入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成し、入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、置換された多重化回路群と、生成された制御回路と、からなる単一モジュールを構築し、生成された制御回路により前記共通の順序回路素子群が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュールとが関連付けられた情報を作成し、構築された単一モジュールを有する設計対象システムに関する設計データおよび作成された情報を出力することを要件とする。
この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、多重化モジュールを、多重化モジュールと等価でかつ回路データ量の少ない単一モジュールに変換することができる。また、制御回路の時分割のタイミングと当該タイミングで動作するモジュールとを関連付けることができる。
また、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法において、構築された単一モジュールを有する設計対象システムの検証結果を取得し、作成された情報を用いて、取得された単一モジュールを有する設計対象システムの検証結果から、前記モジュールごとの検証結果を抽出し、抽出されたモジュールごとの検証結果を出力することとしてもよい。
この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、制御回路の時分割のタイミングと当該タイミングで動作するモジュールとを関連付けることにより、変換後の設計対象システムの検証結果から変換前の設計対象システムの各信号の信号波形を生成することができる。
また、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法において、さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、前記一の組み合わせ回路と、前記多重化回路群と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築することとしてもよい。
この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、モジュールごとに有する入力ピンおよび出力ピンを単一の入力I/Fおよび出力I/Fに集約することができ、回路データ量を削減することができる。
また、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付け、入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成し、入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、置換された多重化回路群と、生成された制御回路と、からなる単一モジュールを構築し、構築された単一モジュールを有する設計対象システムの検証中に、生成された制御回路により前記順序回路素子群を時分割動作させた結果、前記順序回路素子から出力される信号の値を当該順序回路素子ごとに保持することを要件とする。
この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、変換後の設計対象システムの検証中に、各順序回路素子の出力値を、区切りとなるクロック到達のタイミングごとに保持することができる。
また、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法において、構築された単一モジュールを有する設計対象システムの検証期間のうち任意の検証時刻の指定を受け付け、保持された保持結果の中から、指定された検証時刻における前記順序回路素子群の信号の値を抽出し、入力された設計データと、抽出された前記順序回路素子群の信号の値とを用いて検証された前記多重化モジュールを有する設計対象システムの検証結果を取得し、取得された検証結果を出力することとしてもよい。
この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、各順序回路素子の出力値を用いて組み合わせ回路の値を再計算することにより、任意のクロックにおける変換前の設計対象システムの各信号の信号波形を生成することができる。
また、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付け、入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換し、置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成し、前記設計対象システムに入力される複数の信号の中から、任意の信号の指定を受け付け、生成された制御回路により時分割動作させた結果、前記順序回路素子群から出力される指定された信号の値を前記各順序回路素子が存在するモジュールごとに出力する部分回路を生成し、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、置換された多重化回路群と、生成された制御回路および部分回路と、からなる単一モジュールを構築し、構築された単一モジュールを有する設計対象システムに関する設計データを出力することを要件とする。
この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、部分回路が追加された変換後の設計対象システムの設計データを用いて検証することにより、特定の信号の信号波形をモジュールごとに出力することができる。
この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、多重化モジュールを有する設計対象システムのシミュレーションの高精度化およびデバッグ作業の効率化を図ることにより、設計期間の短縮化を実現することができるという効果を奏する。
以下に添付図面を参照して、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法の好適な実施の形態を詳細に説明する。本実施の形態では、大規模な設計対象システムの回路規模を削減し、ハードウェアによる検証を可能とする。また、検証結果として変換前の設計対象システムの各信号の信号波形を参照可能とすることで、デバッグ作業の効率化を図る。
(実施の形態1)
まず、実施の形態1について説明する。図1は、実施の形態1の概要を示す説明図である。図1において、設計対象システムの共通部分を共有化する回路変換をおこなうことにより、設計対象システムの回路量を削減する。つぎに、変換後の設計対象システムの設計データを用いて、設計対象システムの動作検証をおこなう。
このとき、回路変換による回路量の削減により、大規模な設計対象システムであってもFPGAなどのハードウェア上に載せることができ、検証時間を短縮することができる。一方で、変換後の設計対象システムの検証結果は、複数のモジュール(ここでは、モジュールa〜c)の信号(ここでは、信号X)が1つの信号波形として表現されるため、バグが見つかったときのデバッグが難しい。
そこで、変換後の設計対象システムの検証結果から、変換前の設計対象システムの信号波形(ここでは、モジュールa〜cごとの信号波形)を生成するための信号生成用データを作成する。つぎに、検証が終了したあと、設計対象システムの検証結果と信号生成用データとを用いて、モジュールa〜cごとの信号波形を生成する。そして、モジュールa〜cごとの信号波形を検証結果として提示することにより、ユーザによるデバッグ作業の効率化を図ることができる。
(検証支援装置のハードウェア構成)
つぎに、実施の形態1にかかる検証支援装置のハードウェア構成について説明する。図2は、実施の形態1にかかる検証支援装置のハードウェア構成を示す説明図である。
図2において、検証支援装置200は、コンピュータ本体210と、入力装置220と、出力装置230と、から構成されており、不図示のルータやモデムを介してLAN(Local Area Network),WAN(Wide Area Network)やインターネットなどのネットワーク240に接続可能である。
コンピュータ本体210は、CPU(Central Processing Unit),メインメモリ,インターフェースなどを有する。CPUは、検証支援装置200の全体の制御を司る。メインメモリには、RAM(Random Access Memory)などが用いられる。また、補助記憶装置としてHDD(Hard Disk Drive),光ディスク211,フラッシュメモリなどが備えられる。ただし、必ずしもコンピュータ本体210内に構成する必要はない。メインメモリはCPUのワークエリアとして使用される。
また、HDDには各種プログラムが格納されており、CPUからの命令に応じてメインメモリにロードされる。光ディスク211は光ディスクドライブによりデータのリード/ライトが制御される。インターフェースは、入力装置220からの入力、出力装置230への出力、ネットワーク240に対する送受信の制御をおこなう。
また、入力装置220としては、キーボード221、マウス222、スキャナ223などがある。キーボード221は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス222は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ223は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体210内のメモリに格納される。なお、スキャナ223にOCR機能を持たせてもよい。
また、出力装置230としては、ディスプレイ231、スピーカ232、プリンタ233などがある。ディスプレイ231は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ232は、効果音や読み上げ音などの音声を出力する。また、プリンタ233は、画像データや文書データを印刷する。
(設計対象システムの一例)
つぎに、実施の形態1にかかる設計対象システムの一例について説明する。実施の形態1にかかる設計対象システムとは、同種かつ同一タイプの複数のモジュール(CPU、メモリ、DMAC(Direct Memory Access Controller)など)を有する設計対象システムである。
また、実施の形態1では、複数のモジュールを多重化モジュールと称す。以降、多重化モジュールとして、同種かつ同一タイプの複数のCPUが並列動作するマルチプロセッサを実装したマルチプロセッサシステムを例に挙げて説明する。
図3は、設計対象システムの一例を示す説明図である。図3において、設計対象システム300は、n(n=1,2,・・・)個のCPU301−1,・・・,301−i,・・・,301−nからなる多重化モジュール301を実装するマルチプロセッサシステムである。
CPU301−iは、クロック端子302−iと入力ピン303−iと出力ピン304−iとを備えており、それぞれクロック線310とバス320に接続されている。また、この設計対象システム300には、さらに、一例としてメモリ305、DMAC306、エンコーダ307、デコーダ308などの各種モジュールがバス320に接続されている。
つぎに、図3に示した多重化モジュール301を構成する任意のCPU301−i内部の回路構成について説明する。図4は、多重化モジュールを構成する任意のCPU内部の回路構成を示す説明図である。図4において、CPU301−iは、組み合わせ回路401−iと順序回路402−iと入力ピン303−iと出力ピン304−iとを備えている。
組み合わせ回路401−iは、入力ピン303−iや順序回路402−iからデータを取り込み、順序回路402−iや出力ピン304−iに出力する。組み合わせ回路401−iは、他のCPU301−1〜301−(i−1),301−(i+1)〜301−nの組み合わせ回路401−1〜401−(i−1),401−(i+1)〜401−nと同一構成である。組み合わせ回路401−iは、例えば、CPU301−iのシーケンサに相当する回路である。
順序回路402−iは、FFやRAMなどの膨大な数の順序回路素子が接続されて構成されている。図では、説明を簡略化するため、FF421−i〜424−i、RAM425−i〜427−iなどの順序回路素子により表現している。順序回路402−iは、他のCPU301−1〜301−(i−1),301−(i+1)〜301−nの順序回路402−1〜402−(i−1),402−(i+1)〜402−nと同一構成であるが、CPU301−iごとに保持される値が異なる。順序回路402−iは、例えば、CPU301−iのレジスタに相当する回路である。
入力ピン303−iは、バス320からのデータを取り込んで組み合わせ回路401−iに出力する。出力ピン304−iは、組み合わせ回路401−iからのデータをバス320に出力する。
(ライブラリの記憶内容)
つぎに、検証支援装置200に用いられるライブラリの記憶内容について説明する。図5は、ライブラリの記憶内容を示す説明図である。図5において、ライブラリ500には、各種回路データ(モジュールやセル)が名称および種別およびタイプごとに分類されて記憶されている。
名称とは、モジュールやセルを一意に特定する名称であり、例えば、実際の製品名や型番と対応する。種別とは、モジュール/セルが属する種別(CPU、順序回路、・・・)をあらわす。タイプとは、同一種内で分類された型である。例えば、種別がCPUであっても、製造メーカやクロック周波数によりタイプが異なる。また、種別が順序回路であっても、FFやRAMなどのように順序回路の種類によりタイプが異なる。
より具体的には、CPUとFFのように、設計対象システム300内のある2つのモジュールの種別が異なる場合は、同種のモジュールとはいえない。同様に、「module_cpu_a」と「module_cpu_b」のように、種別が同じCPUであっても、タイプが異なれば、同一のモジュールとはいえない。図3に示した設計対象システム300では、CPU301−1〜301−nは同一種別、同一タイプ(例えば、「module_cpu_a」)のモジュールである。
なお、このライブラリ500は、例えば、HDDや光ディスク211、フラッシュメモリなどの記憶部を用いてその機能を実現する。ライブラリ500は、検証支援装置200に実装されてもよく、また、ネットワークを介して通信可能な外部サーバに実装されていてもよい。
(置換DBの記憶内容)
つぎに、検証支援装置200に用いられる置換DBの記憶内容について説明する。図6は、置換DBの記憶内容を示す説明図である。図6において、置換DB600は、順序回路、入力I/F、出力I/Fごとに、置換モジュール601〜603を記憶している。置換モジュール601〜603は、HDL(Hardware Description Language)記述のテキストデータにより表現される。
置換モジュール601は、各CPU301−1〜301−nに存在する複数の順序回路402−1〜402−nを、複数の順序回路402−1〜402−nのそれぞれに存在する共通の順序回路素子群(例えば、FF421−1〜421−n)を多重化した多重化回路である。他の共通の順序回路素子群(FF422−1〜422−n),・・・,(FF424−1〜424−n)にとっても同様である。
ここで、共通の順序回路素子群とは、種別が同一(FF同士、RAM同士)であることのほか、その接続位置が同一であることも含む。図6では、順序回路素子群(FF421−1〜421−n),・・・,(FF424−1〜424−n)の多重化回路のみを表現しているが、順序回路素子群(RAM425−1〜425−n),・・・,(RAM427−1〜427−n)の多重化回路(不図示)も記憶されている。
また、多重化回路を表現する置換モジュール601は、任意の状態iのときに、CPU301−iの順序回路素子(例えば、FF421−i)の出力データが出力ピン304−iから出力されるという条件を満たしていればよく、その回路構成は問わない。
このように、共通の順序回路素子群(例えば、FF421−1〜421−n)を置換モジュール601により置換することにより、複数のCPU301−1〜301−nに分散されている共通の順序回路素子群を単一の多重化回路で多重化することができる。
また、置換モジュール602は、CPU301−1〜301−nへ入力されるデータを内部に選択的に取り込むn入力1出力の入力I/Fである。このように、置換モジュール602に置換することにより、複数のCPU301−1〜301−nに分散されている共通の入力ピンを単一の入力I/Fで多重化することができる。
また、置換モジュール603は、各CPU301−1〜301−nの組み合わせ回路401−1〜401−nからの出力データを選択的に出力する出力I/Fである。このように、置換モジュール603に置換することにより、複数のCPU301−1〜301−nに分散されている共通の出力ピンを単一の出力I/Fで多重化することができる。
なお、この置換DB600は、例えば、HDDや光ディスク211、フラッシュメモリなどの記憶部を用いてその機能を実現する。置換DB600は、検証支援装置200に実装されていてもよく、また、ネットワークを介して通信可能な外部サーバに実装されていてもよい。
(検証支援装置の機能的構成)
つぎに、実施の形態1にかかる検証支援装置200の機能的構成について説明する。図7は、実施の形態1にかかる検証支援装置の機能的構成を示すブロック図である。図7において、検証支援装置200は、入力部701と、解析部702と、生成部703と、置換部704と、構築部705と、作成部706と、出力部707と、取得部708と、抽出部709と、を備えている。
これら各機能701〜709は、検証支援装置200のHDDに記憶された当該機能701〜709に関するプログラムをCPUに実行させることにより、または、入出力I/Fを介して、当該機能を実現することができる。また、各機能701〜709からの出力データはHDDや光ディスク211、フラッシュメモリなどの記憶部に保持される。また、図7中矢印で示した接続先の機能は、接続元の機能からの出力データを上記記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。
まず、入力部701は、設計対象システム300に関する設計データの入力を受け付ける機能を有する。設計データとは、例えば、論理合成後における設計対象システム300のネットリストである。ネットリストには、設計対象システム300を構成するCPU301−iやその内部のセル(FFやRAMなど)の名称を用いてこれらの接続関係が記述されている。
解析部702は、入力部701によって入力された設計データを解析する機能を有する。具体的には、例えば、図5に示したライブラリ500を参照することにより、ネットリストに記述されている名称を手掛かりとして、設計対象システム300の接続関係、モジュールの種別やタイプ、モジュール内の接続関係、組み合わせ回路、順序回路の種別やタイプ、入力ピン、出力ピンを特定する。
また、同種かつ同一タイプのモジュールの個数も特定する。さらに、解析部702では、ネットリストに記述されている名称を手掛かりとして、各CPU301−iに共通の組み合わせ回路を特定し、共有化する。
図8は、組み合わせ回路の共有関係を示す説明図である。図8において、組み合わせ回路401−1〜401−nは、CPU301−1〜301−nで同一構成であるため、いずれか1つの組み合わせ回路401−iで共有することができる。共有化されたいずれか1つの組み合わせ回路401−iを、以降、共有組み合わせ回路800と表記する。
共有組み合わせ回路800は、組み合わせ回路401−iのHDL記述のテキストデータをコピーすることにより得られる。これにより、シミュレーションを実行するための組み合わせ回路の回路データ量を1/nに削減することができる。
図7の説明に戻り、生成部703は、解析部702による解析結果に基づいて制御回路を生成する機能を有する。ここで、制御回路とは、検証支援装置200からの出力結果となるモジュールまたは設計対象システム300を時分割動作させる回路である。この制御回路は、例えば、インクリメントするカウンタにより構成される。
制御回路がカウンタにより構成される場合、生成部703は、解析部702から同種かつ同一タイプのCPU301−iの数を検出することで、カウンタ数を設定する。具体的には、そのCPU301−iの数がnである場合、カウント値1を初期値とし、クロックが到達するたびにn+1までインクリメントして、n+1になると1にリセットするように設定された制御回路を生成する。
カウンタへのクロックの到達タイミングは、他のFFにクロックが到達するタイミングと同時とする。なお、カウント値iのカウンタからの出力信号をC(i)と表記する。すなわち、カウント値1〜nまでのクロックでは、共通の順序回路素子群(例えば、FF421−1〜421−n)を時分割動作させ、カウント値n+1のクロックでは、共通I/Fを動作させる。共通I/Fについては後述する。
置換部704は、解析部702によって解析・特定された順序回路402―i、入力ピン303−i、および出力ピン304−iを、置換モジュール601〜603に置換する機能を有する。ここで、順序回路402―i、入力ピン303−i、および出力ピン304−iの置換例について説明する。
図9は、順序回路の置換例を示す説明図である。図9は、同種かつ同一タイプであるn個のCPU301−1〜301−nの各順序回路402−1〜402−nに共通の順序回路素子群(n個のFF421−1〜421−n)を置換モジュール601に置換する例を示している。
置換モジュール601は、n個の回路ブロック910−1〜910−nと、いずれか一つの回路ブロック910−iからの出力データを共有組み合わせ回路800に選択出力するマルチプレクサ920とから構成される。置換モジュール601は、制御回路900に接続される。回路ブロック910−iは、セレクタ911−iとFF421−iとが直接接続された構成であり、FF421−iからの出力データがセレクタ911−iに帰還入力される。
FF421−iは、カウント値iのとき、保持しているデータQをマルチプレクサ920に出力する。セレクタ911−iは、共有組み合わせ回路800からの出力データとFF421−iからの出力データを入力する。そして、カウント値がiのとき、データDを取り込んでFF421−iに出力する。
これ以外のカウント値では、セレクタ911−iは、帰還入力されたデータQを出力する。これにより、FF421−iは、常にCPU301−iの対応するFFの値を保持することが保証される。マルチプレクサ920は、カウント信号C(i)を取り込んだ場合、回路ブロック910−1〜910−nのうち回路ブロック910−iからのデータQを選択して共有組み合わせ回路800に出力する。
なお、Verilogを用いて置換する場合、置換元のFF(CLK,D,Q)のHDL記述をDUMMYFF(CLK,D,Q,counter)に置き換えることにより、単純テキスト処理で置換処理を実現することができる。
図10は、入力ピンの置換例を示す説明図である。図10は、同種かつ同一タイプであるn個のCPU301−1〜301−nの各入力ピン303−1〜303−nを置換モジュール602に置換する例を示している。
置換モジュール602は、n入力1出力のマルチプレクサ1000で構成される。マルチプレクサ1000は、制御回路900に接続され、カウント信号C(i)を取り込んだ場合、CPU301−1〜301−nの入力データIN1〜INnのうちCPU301−iの入力データINiを選択して共有組み合わせ回路800に出力する。
図11は、出力ピンの置換例を示す説明図である。図11は、同種かつ同一タイプであるn個のCPU301−1〜301−nの各出力ピン304−1〜304−nを置換モジュール603に置換する例を示している。
置換モジュール603は、n個の回路ブロック1110−1〜1110−nから構成される。回路ブロック1110−1〜1110−nは、制御回路900に接続され、カウント信号C(i)を取り込む。回路ブロック1110−iは、セレクタ1111−iとFF1112−iとが直接接続された構成であり、FF1112−iからの出力データがセレクタ1111−iに帰還入力される。
なお、CPU301−iから出た信号がバスを通って1クロック内に他のCPU301−jに届く場合が存在するならば、出力ピンの値を計算するために追加の処理が必要になる。具体的には、カウンタの値が2n+2まで増加することとして、カウンタがn+1+iのときにCPU301−iの組み合わせ回路の状態をシミュレートして、得られる出力ピンの値をFF1112−iに記憶しておく。この処理により、カウンタが1〜nのときに、次サイクルの出力ピンの値があらかじめ計算されているので、1サイクルで届く信号が存在しても正しい値が入力されることになる。一般的には1クロック内に他のCPU301−jに信号が届く例は多くないので、本置換例では、そのような信号はないものとして記述している。
FF1112−iは、カウント値iのとき、保持しているデータQをバス320に出力する。セレクタ1111−iは、共有組み合わせ回路800からの出力データDとFF421−iからの出力データQを入力する。そして、カウント値がiのとき、データDを取り込んでFF1112−iに出力する。これ以外のカウント値では、帰還入力されたデータQを出力する。
なお、Verilogを用いて置換する場合、stubモジュールを用意して置き換えれば単純な置き換えと追加のみで実現することができる。
図12は、I/F変換処理を示す模式図である。(A)において、CPU301−1〜CPU301−nをコピーして、(B)に示したようにダミーCPU1201−1〜1201−nを作り出す。ダミーCPU1201−1〜1201−nとバス320との接続関係(点線で囲った領域)は、CPU301−1〜CPU301−nとバス320との接続関係と変化はないため、これまでのネットリストをそのまま適用することができる。
そして、(C)において、このダミーCPU1201−1〜1201−nと共有組み合わせ回路800の置換された各入出力ピン(置換モジュール602,603)との間にI/F回路1202を接続することにより、共通I/F1200を構築することができる。これにより、多重化前の各CPU301−iの入出力信号がダミーCPU1201−iを素通りすることとなり、置換処理を簡単に実現することができる。
図7の説明に戻り、構築部705は、置換モジュール601〜603と共有組み合わせ回路800と制御回路900とを接続することにより単一モジュールを構築する機能を有する。図13は、構築部によって構築された単一モジュールを示す説明図である。
図13において、単一モジュール1301は、CPU301−1〜301−nからなる多重化モジュール301から置き換わったモジュールである。すなわち、n個の組み合わせ回路401−1〜401−nが共有組み合わせ回路800に置き換わっており、n個の順序回路402−1〜402−nが多重化回路(置換モジュール601)群からなる多重化順序回路1310に置き換わっており、n個の入力ピン303−1〜303―nおよびn個の出力ピン304−1〜304−nが単一の入力I/F(置換モジュール602)および出力I/F(置換モジュール603)からなる共通I/F1200に置き換わっている。
制御回路900は、多重化順序回路1310および共通I/F1200に接続されている。制御回路から出力されるカウント信号C(1)〜C(n+1)のうち、カウント信号C(1)〜C(n)は多重化順序回路1310に出力されて、各状態(カウント値)iの順序回路素子(FFやRAM)が時分割動作する。また、カウント信号C(n+1)は共通I/F1200に出力されて、状態i+1において入出力動作する。
共通I/F1200を状態i+1においてのみ入出力動作させるため、クロックゲートCGにカウント値C(n+1)が出力された場合にのみ、共通I/F1200にクロックCLKを供給するように構築される。
このように、多重化モジュール301を単一モジュール1301に置換することにより、変換後の設計対象システム1300の回路規模を、変換前の設計対象システムの回路規模よりも小さくすることができ、回路データ量を大幅に削減することができる。
作成部706は、生成部703によって生成された制御回路により共通の順序回路素子群(FFやRAM)が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュール(CPUやメモリ)とが関連付けられた情報を作成する機能を有する。
図14は、作成部によって作成された対応テーブルの一例を示す説明図(その1)である。図14において、対応テーブル1400には、制御回路900のカウント値1〜nと、そのカウント値1〜nで動作する順序回路素子(例えば、FF421−1〜421−n)が存在するCPU301−1〜301−nとが関連付けられて記憶されている。
詳細は後述するが、対応テーブル1400は、変換後の設計対象システム1300の検証結果から、変換前の設計対象システム300の各信号の信号波形を抽出するために用いられる。つまり、この対応テーブル1400を参照することにより、各状態(カウント値)iにおいて時分割動作した順序回路素子が存在するCPU301−1〜301−nを特定することができる。対応テーブル1400は、例えば、HDDや光ディスク211、フラッシュメモリなどの記憶部を用いてその機能を実現する。
出力部707は、構築部705によって構築された構築結果に関する設計データおよび作成部706によって作成された情報を出力する機能を有する。具体的には、図13に示した変換後の単一モジュール1301を有するあらたな設計対象システム1300に関する設計データ(ネットリスト)と、図14に示した対応テーブル1400とを出力する。
なお、出力部707による出力形式は、ディスプレイ231による画面表示やプリンタ233による印刷出力のほか、検証支援装置200内のHDDや光ディスク211、フラッシュメモリなどの記憶部へのデータ出力へのデータ書込みやシミュレータへの送信でもよい。
取得部708は、構築部705によって構築された単一モジュール1301を有する設計対象システム1300の検証結果を取得する機能を有する。具体的には、検証支援装置200において設計対象システム1300のシミュレーションを実行し、そのシミュレーション結果を取得することとしてもよい。また、設計対象システム1300に関する設計データをシミュレータに送信することで、そのシミュレータからシミュレーション結果を取得することとしてもよい。
抽出部709は、作成部706によって作成された対応テーブル1400を用いて、取得部708によって取得された単一モジュール1301を有する設計対象システム1300の検証結果から、CPU301−1〜301−nごとの検証結果を抽出する機能を有する。
ここで、抽出部709による抽出処理の概要について説明する。図15は、抽出部による抽出処理の概要を示す説明図である。図15において、設計対象システム1300の検証結果として、信号Aの信号波形1500が制御回路900のカウント値と対応付けて示されている。この信号波形1500は、多重化モジュール301(CPU301−1〜301−n)に関する信号Aの波形を1つの信号波形として表現したものである。
抽出部709は、設計対象システム1300の検証結果(信号波形1500)と、図14に示した対応テーブル1400とを用いて、CPU301−1〜301−nごとの信号Aの値を抽出する。例えば、対応テーブル1400を参照して、カウント値1と対応付けられている信号Aの値を検証時刻の経過に沿って抽出することで、CPU301−1の検証結果(信号波形1510)を抽出する。
同様に、CPU301−2〜301−nについて、各カウント値2〜nと対応付けられている信号Aの値を抽出することで、CPU301−2〜301−nの検証結果を抽出することができる。
出力部707は、抽出部709によって抽出されたCPU301−1〜301−nごとの検証結果を出力する機能を有する。例えば、CPU301−1の検証結果として、図15に示した信号波形1510を出力する。これにより、変換前の設計対象システム300の各信号の信号波形をモジュール(CPU301−1〜301−n)ごとに参照可能とし、デバッグ作業の効率化を図ることができる。
(検証支援処理手順)
つぎに、実施の形態1にかかる検証支援装置200の検証支援処理手順について説明する。図16は、実施の形態1にかかる検証支援装置の検証支援処理手順を示すフローチャート(その1)である。図16において、まず、入力部701により、設計対象システム300に関する設計データ(ネットリスト)の入力を受け付けたか否かを判断する(ステップS1601)。
ここで、設計対象システム300に関する設計データ(ネットリスト)が入力されるのを待って(ステップS1601:No)、入力された場合(ステップS1601:Yes)、解析部702により設計対象システム300に関する設計データを解析する(ステップS1602)。
そして、置換部704により、解析部702によって解析・特定された順序回路402−i、入力ピン303−i、および出力ピン304−iを、置換モジュール601〜603に置換する(ステップS1603)。つぎに、生成部703により、解析部702による解析結果から得られる同種かつ同一構成のCPUの個数nに1加算したn+1周期で計数する制御回路900を生成する(ステップS1604)。
このあと、構築部705により、図13に示したように、変換後の単一モジュール1301を構築する(ステップS1605)。つぎに、作成部706により、制御回路900のカウンタ値と、当該カウンタ値で動作する順序回路素子が存在するCPU301−1〜301−nとが関連付けられた対応テーブル1400を作成する(ステップS1606)。
最後に、出力部707により、変換後の単一モジュール1301を有するあらたな設計対象システム1300に関する設計データおよび対応テーブル1400を出力して(ステップS1607)、本フローチャートによる一連の処理を終了する。
つぎに、変換後の設計対象システム1300の検証結果から、変換前の設計対象システム300の各CPU301−1〜301−nの信号波形を抽出する処理手順について説明する。図17は、実施の形態1にかかる検証支援装置の検証支援処理手順を示すフローチャート(その2)である。
図17において、まず、取得部708により、単一モジュール1301を有する設計対象システム1300の検証結果を取得したか否かを判断する(ステップS1701)。
ここで、設計対象システム1300の検証結果を取得するのを待って(ステップS1701:No)、取得した場合(ステップS1701:Yes)、抽出部709により、図16のステップS1606において作成された対応テーブル1400を用いて、設計対象システム1300の検証結果から、CPU301−1〜301−nごとの検証結果を抽出する(ステップS1702)。
最後に、出力部707により、CPU301−1〜301−nごとの検証結果を出力して(ステップS1703)、本フローチャートによる一連の処理を終了する。
このように実施の形態1によれば、各CPU301−1〜301−nを、組み合わせ回路401−1〜401−nと順序回路402−1〜402−nにわけ、組み合わせ回路401−1〜401−nのいずれかの組み合わせ回路401−iにより、すべてのCPU301−1〜301−nで共有する。
また、設計対象システム300の動作をシミュレートする場合、i(1〜n)番目のクロックCLKでCPU301−i内部の動作をシミュレートし、n+1個目のクロックCLKで、共通I/F1200の動作をシミュレートするように制御する制御回路900を生成する。
これにより、n+1回分のクロックCLKで、元の設計対象システム300のクロック1回分の動作をシミュレートすることになる。変換後の単一モジュール1301は、変換前の設計対象システム300の多重化モジュール301と比較してn+1倍遅くなるが、組み合わせ回路401−1〜401−nが共有されているため、回路規模が小さくなっている。
このため、従来はシミュレータで扱える規模を超えていてシミュレーションが不可能だった設計対象システム300のシミュレーションが可能になるという利点がある。このように、データ量が削減された単一モジュール1301を有する設計対象システム1300に関する設計データをシミュレータに与えることで、設計者は、元の設計対象システム300の動作を漏れなく確認することができる。
また、制御回路900のカウンタ値と、当該カウンタ値で動作する順序回路素子(例えば、FF421−1〜421−n)が存在するCPU301−1〜301−nとが関連付けられた対応テーブル1400を作成する。そして、この対応テーブル1400を用いて、設計対象システム1300の検証結果から、元の設計対象システム300の各信号の信号波形をCPU301−1〜301−nごとに抽出する。
これにより、設計対象システム1300の検証結果として、CPU301−1〜301−nごとの信号波形を参照可能とすることができ、バグが見つかったときのユーザによるデバッグ作業の効率化を図ることができる。
なお、本実施の形態1では、1種類の多重化モジュール301を有する設計対象システム300を設計対象とした場合について説明したが、複数種類の多重化モジュールを有する設計対象システムを設計対象としてもよい。
図18は、複数の多重化モジュールを有する設計対象システムの一例を示す説明図である。図18において、設計対象システム1800は、同種かつ異なるタイプのCPUからなる2つの多重化モジュール301a,301bを有する。すなわち、多重化モジュール301aはn個のCPU301a−1〜301a−nを有し、多重化モジュール301bは、m(n>m)個のCPU301b−1〜301b−mを有する。
なお、多重化モジュール301aの構成要素には、符号の末尾にaを付し、多重化モジュール301bの構成要素には、符号の末尾にbを付す。例えば、上述したように多重化モジュール301aの任意のCPUは、CPU301a−iと表記する。
この設計対象システム1800においては、解析部702により、多重化モジュール301a,301bとそのCPUの個数n,mが特定される。この場合、生成部703では、nおよびmの大小を比較し、制御回路900であるカウンタの上限カウント値を、mよりも大きいnを基準として、n+1に設定する。
図19は、構築部によって構築された設計対象システムを示す説明図である。図19において、設計対象システム1900は、変換後の単一モジュール1901a,1901bと、制御回路900と、クロックゲートCGとからなる複合モジュール1901を有する。複合モジュール1901は、変換元の2つの多重化モジュール301a,301bから置き換わったモジュールである。
単一モジュール1901aは、共有組み合わせ回路800a、多重化順序回路1310a、および共通I/F1200aを有し、単一モジュール1901bは、共有組み合わせ回路800b、多重化順序回路1310b、および共通I/F1200bを有する。制御回路900およびクロックゲートCGは変換後の単一モジュール1901a,1901bにおいて共通である。
この場合、制御回路900は、カウント値1〜n+1まで計数し、n+1のあとは1にリセットされる。これにより、単一モジュール1901aでは、カウント値1〜nまでは多重化順序回路1310aを時分割動作させ、カウント値n+1で共通I/F1200aを動作させる。
一方、単一モジュール1901bでは、カウント値1〜mまでは多重化順序回路1310bを時分割動作させ、カウント値m+1〜nまでは何も動作されない。そして、カウント値n+1になると、共通I/F1200bを動作させる。
このように、複数の多重化モジュールがある場合、一番CPU数が多い多重化モジュールのCPU数を基準として制御回路900の上限カウント値を設定することで、回路データ量の削減とともにシミュレーション時間の短縮化を図ることができる。なお、ここでは、n>mとしたが、n=mでも同様に実現することができる。
図20は、作成部によって作成された対応テーブルの一例を示す説明図(その2)である。図20において、対応テーブル2000には、制御回路900のカウント値1〜nと、そのカウント値1〜nで動作する順序回路素子が存在するCPU301a−1〜301a−n、CPU301b−1〜301b−mとが関連付けられて記憶されている(n>m)。
この対応テーブル2000を参照することで、各状態(カウント値)において時分割動作した順序回路素子が存在するCPU301a−1〜301a−n、CPU301b−1〜301b−mを特定することができる。
これにより、設計対象システム1900の検証結果として、CPU301a−1〜301a−n、CPU301b−1〜301b−mごとの信号波形を提示可能となり、バグが見つかったときのユーザによるデバッグ作業の効率化を図ることができる。
さらに、設計対象システム300をシステムボードとして複数実装する多重化設計対象システムを設計対象とすることとしてもよい。図21は、多重化設計対象システムを示す説明図である。図21において、多重化設計対象システム2100は、図3に示した設計対象システム300をシステムボードとして複数個実装したシステムである。すなわち、多重化設計対象システム2100は、システムボード300−1〜300−Kがバス2110に接続されて並列実行する。
図22は、構築部によって構築された多重化設計対象システムを示す説明図である。多重化設計対象システム2200において、各システムボード2200−1〜2200−Kは、図13に示した構築後の設計対象システム1300と同一構成である。この多重化設計対象システム2200に関する設計データ(ネットリスト)をシミュレートする場合、図21に示したように、各システムボード300−kのCPU数がn個で、システムボード数がK個であるため、カウント数は、(n+1)×Kとなる。
図23は、作成部によって作成された対応テーブルの一例を示す説明図(その3)である。ここでは、各システムボード2200−kが有するモジュールをCPU301−k−1〜301−k−nと表記する。
図23において、対応テーブル2300には、制御回路900のカウント値1〜(n+1)×Kと、そのカウント値1〜(n+1)×Kで動作する順序回路素子が存在するCPU301−1−1〜301−1−n、・・・、CPU301−k−1〜301−k−n、・・・、CPU301−K−1〜301−K−nとが関連付けられて記憶されている。
この対応テーブル2300を参照することで、各状態(カウント値)において時分割動作した順序回路素子が存在するCPU301−1−1〜301−1−n、・・・、CPU301−k−1〜301−k−n、・・・、CPU301−K−1〜301−K−nを特定することができる。
これにより、多重化設計対象システム2200の検証結果として、CPU301−1−1〜301−1−n、・・・、CPU301−k−1〜301−k−n、・・・、CPU301−K−1〜301−K−nごとの信号波形を提示可能となり、バグが見つかったときのユーザによるデバッグ作業の効率化を図ることができる。
(実施の形態2)
つぎに、実施の形態2について説明する。実施の形態1では、対応テーブル1400を用いて、変換前の設計対象システム300の各信号の信号波形を生成する場合について説明したが、実施の形態2では、変換後の設計対象システム1300の検証中に保持される順序回路の出力値を用いて、変換前の設計対象システム300の各信号の信号波形を生成する。
以降において、実施の形態2では、順序回路として、複数の順序回路402−1〜402−nのそれぞれに存在する共通の順序回路素子群(FF421−1〜421−n)を多重化した多重化回路(置換モジュール601)を例に挙げて説明する。また、実施の形態1と相違する点のみについて説明する。なお、実施の形態1で示した構成と同一構成については同一符号を付し、その説明を省略する。
図24は、実施の形態2の概要を示す説明図である。図24において、多重化回路2400は、図13に示した設計対象システム1300の多重化順序回路1310を構成する多重化回路(置換モジュール601)である。多重化回路2400において、FF421−iは、カウント値iのとき、保持しているデータQをマルチプレクサ920に出力することとなる。
実施の形態2では、設計対象システム1300の検証中に、区切りとなるクロック到達のタイミング(制御回路900のカウント値がn+1)で、多重化回路2400の各FF421−1〜421−nから出力されるデータQを保持する。検証終了後に、ユーザから任意のクロックの指定を受け付け、保持結果の中から、指定されたクロックにおけるFF421−1〜421−nの値を読み出す。そして、読み出した値を用いて、それぞれ対応する組み合わせ回路401−1〜401−nの値を計算し、その計算結果を検証結果として出力する。
(検証支援装置の機能的構成)
つぎに、実施の形態2にかかる検証支援装置2500の機能的構成について説明する。図25は、実施の形態2にかかる検証支援装置の機能的構成を示すブロック図である。図25において、検証支援装置2500は、入力部701と、解析部702と、生成部703と、置換部704と、構築部705と、出力部707と、保持部2501と、指定部2502と、抽出部2503と、取得部2504と、を備えている。
保持部2501は、構築部705によって構築された単一モジュール1301を有する設計対象システム1300の検証中に、制御回路900により順序回路素子群(例えば、FF421−1〜421−n)を時分割動作させた結果、順序回路素子から出力される信号の値を当該順序回路素子ごとに保持する機能を有する。
図26は、保持部による保持結果の一例を示す説明図である。図26において、保持テーブル2600には、変換前の設計対象システム300のクロックの区切りごとに、該クロックにおける各順序回路素子(ここでは、FF421−1〜421−n)の信号(ここでは、「信号X」とする)の値(データQ)が記憶されている。
具体的には、区切りとなるクロックの到達タイミング(カウント値n+1)で、カウント値iのときに時分割動作することでFF421−iから出力されたデータQが記憶されている。例えば、変換前の設計対象システム300のクロック1について、各カウント値1〜nのときに各FF421−1〜421−nから出力されたそれぞれのデータQ1−1〜Q1−nが記憶されている。
なお、図26では、信号Xの値のみを表現しているが、設計対象システム300に入力される他の信号の値も記憶されている。また、図26では、FF421−1〜421−nのみの出力値を表現しているが、順序回路素子群(FF422−1〜422−n),・・・,(FF424−1〜424−n),(RAM425−1〜425−n),・・・,(RAM427−1〜427−n)の値(不図示)も記憶されている。この保持テーブル2600は、例えば、HDDや光ディスク211、フラッシュメモリなどの記憶部へのデータ出力を用いてその機能を実現する。
図25の説明に戻り、指定部2502は、設計対象システム1300の検証期間のうち任意の検証時刻の指定を受け付ける機能を有する。具体的には、例えば、図2に示したキーボード211やマウス222などの入力装置220をユーザが操作することで、任意の検証時刻の指定を受け付ける。より詳細に説明すると、例えば、設計対象システム1300の検証結果(各信号の信号波形)を表示する画面を呼び出して、複数の入力信号の中から任意の信号を指定するとともに、検証期間の中から任意のクロックを指定する。
抽出部2503は、保持部2501によって保持された保持結果(保持テーブル2400)の中から、指定部2502によって指定されたクロックにおける順序回路素子群(FF421−1〜421−n)の信号の値を抽出する機能を有する。例えば、指定部2502によりクロック1が指定された場合、保持テーブル2400の中から、FF421−1〜421−nから出力されたそれぞれのデータQ1−1〜Q1−nを抽出する。
取得部2504は、入力部701によって入力された設計対象システム300の設計データと、抽出部2503によって抽出された順序回路素子群の信号の値とを用いて検証された設計対象システム300の検証結果を取得する機能を有する。具体的には、抽出された値を用いて、指定されたクロックにおける1サイクル分の組み合わせ回路401−1〜401−nの値を計算した計算結果を取得する。
なお、組み合わせ回路401−1〜401−nの計算結果は、検証支援装置2500において設計対象システム300のシミュレーションを実行することで取得することとしてもよく、また、シミュレータによるシミュレーション結果を取得することとしてもよい。
また、出力部707は、取得部2504によって取得された検証結果を出力する機能を有する。具体的には、例えば、指定された信号Xの指定クロックにおける信号波形をディスプレイ231に表示する。これにより、任意の信号Xの信号波形を提示可能となり、ユーザによるデバッグ作業の効率化を図ることができる。
(検証支援処理手順)
つぎに、実施の形態2にかかる検証支援装置2500の検証支援処理手順について説明する。なお、設計データを変更(設計対象システム300→設計対象システム1300)する処理手順については、実施の形態1で説明した手順と同様のため図示および説明を省略する。ここでは、任意のクロックにおける信号の信号波形を検証結果として表示する場合の検証支援処理手順について説明する。
図27は、実施の形態2にかかる検証支援装置の検証支援処理手順を示すフローチャートである。図27のフローチャートにおいて、まず、指定部2502により、単一モジュール1301を有する設計対象システム1300の検証期間のうち任意の検証時刻、および複数の入力信号のうち任意の信号(以下、「指定信号」という)の指定を受け付けたか否かを判断する(ステップS2701)。
ここで、任意の検証時刻(以下、「指定クロック」という)および信号(以下、「指定信号」という)の指定を受け付けるのを待って(ステップS2701:No)、受け付けた場合(ステップS2701:Yes)、抽出部2503により、保持テーブル2600の中から、指定クロックにおける順序回路素子群の指定信号の値を抽出する(ステップS2702)。
このあと、取得部2504により、設計対象システム300の設計データと、抽出部2503によって抽出された順序回路素子群の指定信号の値とを用いて検証された指定クロックにおける設計対象システム1300の検証結果を取得する(ステップS2703)。
最後に、出力部707により、取得部2504によって取得された検証結果を出力して(ステップS2704)、本フローチャートによる一連の処理を終了する。
このように実施の形態2によれば、設計対象システム1300の検証中に、順序回路素子(例えば、FF421−1〜421−n)から出力される信号の値を当該順序回路素子ごとに保持テーブル2600に保持する。そして、保持テーブル2600の記憶内容を用いて、指定クロックにおける組み合わせ回路401−1〜401−nの値を求める。これにより、設計対象システム1300の検証結果として、指定クロックにおける指定信号の信号波形を提示可能となり、バグが見つかったときのデバッグ作業の効率化を図ることができる。
また、保持テーブル2600の記憶内容を用いて組み合わせ回路401−1〜401−nの値を再計算するため、組み合わせ回路401−1〜401−nの出力値を保持する必要がなく、記憶部に保持する記憶量を削減することができる。なお、再計算にかかる計算時間が必要となるが、数サイクル分の計算のため、検証作業全体に占める割合は小さい。
(実施の形態3)
つぎに、実施の形態3について説明する。実施の形態1では、対応テーブル1400を用いて、変換前の設計対象システム300の各信号の信号波形を生成する場合について説明したが、実施の形態3では、予め指定された信号については、回路変換時に、変換前の設計対象システム300の値を反映した値を出力する部分回路を生成する。以降、実施の形態1と相違する点のみについて説明する。なお、実施の形態1で示した構成と同一構成については同一符号を付し、その説明を省略する。
実施の形態3では、検証前に、設計対象システム300に入力される複数の入力信号の中から、任意の信号(以下、「指定信号」という)の指定を受け付ける。具体的には、例えば、図2に示したキーボード211やマウス222などの入力装置220をユーザが操作することで、任意の信号の指定を受け付ける。
そして、変換後の設計対象システム1300の検証中に、制御回路900により時分割動作させた結果、順序回路素子群(例えば、FF421−1〜421−n)から出力される指定信号の値をCPU301−1〜301−nごとに出力する部分回路を生成する。そして、この部分回路が追加された設計対象システム1300を検証する。
図28は、部分回路の一例を示す説明図である。図28において、部分回路2800は、設計対象システム1300の検証中に、順序回路素子群(ここでは、FF421−1〜421−n)から出力される信号Aの値をCPU301−1〜301−nごとに出力する回路である。この部分回路2800を設計対象システム1300に追加することで、指定信号(ここでは、信号A)の信号波形を出力することができる。なお、部分回路2800は、HDL記述のテキストデータにより表現される。
このように、実施の形態3によれば、指定信号の値を出力する部分回路2800を追加することで、設計対象システム1300の検証結果として任意の信号Aの信号波形を提示可能となり、デバッグ作業の効率化を図ることができる。なお、部分回路2800を追加することで回路規模は大きくなるが、設計対象システム300の回路変更により回路量が削減されるため、全体として回路規模が小さくなっている。
以上説明したしたように、本実施の形態によれば、設計対象システムの回路規模を小さくすることができ、FPGAを使ったシミュレーションを実行することができる。したがって、シミュレーション時間の短縮化を図ることができる。
また、回路規模が大きい多重化モジュールと回路規模の小さい単一モジュールは等価であるため、従来のような擬似プロセッサを作成する必要がなく、設計者の設計負担の低減を図ることができる。また、多重化モジュールと単一モジュールは等価であるため、従来のような擬似プロセッサを使用する必要もなく、漏れのない高速なシミュレーションを実現することができる。
また、設計対象システムの検証結果として、任意の信号の信号波形をモジュールごとに提示することができるため、デバッグ作業にかかる作業負担および作業時間を削減することができる。
以上のことから、この検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、多重化モジュールを有する設計対象システムのシミュレーションの高精度化およびデバッグ作業の効率化を図ることにより、設計期間の短縮化を実現することができる。
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明した検証支援装置200,2500は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、例えば、上述した検証支援装置200,2500の機能701〜709,2501〜2504をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、検証支援装置200,2500を製造することができる。
なお、本実施の形態で説明した設計対象システム1300に関する設計データを記録した記録媒体を用意してもよい。ここで、設計対象システム1300に関する設計データとは、設計対象システム1300を、HDLで記述されたRTL記述や、論理合成後のネットリストにより表現したコンピュータ読取可能な電子データである。このような設計データを、テストツールがインストールされたコンピュータ装置上で展開することにより、製造前において遅延テストを実行することができる。また、このような設計データをFPGAなどのPLDに書き込み可能に加工した上でPLDにダウンロードすることにより、上述した設計対象システム1300を製造することもできる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段、
前記生成手段によって生成された制御回路により前記共通の順序回路素子群が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュールとが関連付けられた情報を作成する作成手段、
前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データおよび前記作成手段によって作成された情報を出力する出力手段、
として機能させることを特徴とする検証支援プログラム。
(付記2)前記コンピュータを、
前記構築手段によって構築された単一モジュールを有する設計対象システムの検証結果を取得する取得手段、
前記作成手段によって作成された情報を用いて、前記取得手段によって取得された単一モジュールを有する設計対象システムの検証結果から、前記モジュールごとの検証結果を抽出する抽出手段として機能させ、
前記出力手段は、
前記抽出手段によって抽出されたモジュールごとの検証結果を出力することを特徴とする付記1に記載の検証支援プログラム。
(付記3)前記置換手段は、
さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、
前記生成手段は、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、
前記構築手段は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築することを特徴とする付記1または2に記載の検証支援プログラム。
(付記4)コンピュータを、
同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段、
前記構築手段によって構築された単一モジュールを有する設計対象システムの検証中に、前記生成手段によって生成された制御回路により前記順序回路素子群を時分割動作させた結果、前記順序回路素子から出力される信号の値を当該順序回路素子ごとに保持する保持手段、
として機能させることを特徴とする検証支援プログラム。
(付記5)前記コンピュータを、
前記構築手段によって構築された単一モジュールを有する設計対象システムの検証期間のうち任意の検証時刻の指定を受け付ける指定手段、
前記保持手段によって保持された保持結果の中から、前記指定手段によって指定された検証時刻における前記順序回路素子群の信号の値を抽出する抽出手段、
前記入力手段によって入力された設計データと、前記抽出手段によって抽出された前記順序回路素子群の信号の値とを用いて検証された前記多重化モジュールを有する設計対象システムの検証結果を取得する取得手段、
前記取得手段によって取得された検証結果を出力する出力手段として機能させることを特徴とする付記4に記載の検証支援プログラム。
(付記6)前記置換手段は、
さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、
前記生成手段は、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、
前記構築手段は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築することを特徴とする付記4または5に記載の検証支援プログラム。
(付記7)コンピュータを、
同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する第1の生成手段、
前記設計対象システムに入力される複数の信号の中から、任意の信号の指定を受け付ける指定手段、
前記第1の生成手段によって生成された制御回路により時分割動作させた結果、前記順序回路素子群から出力される前記指定手段によって指定された信号の値を前記各順序回路素子が存在するモジュールごとに出力する部分回路を生成する第2の生成手段、
前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記第1および第2の生成手段によって生成された制御回路および部分回路と、からなる単一モジュールを構築する構築手段、
前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力手段、
として機能させることを特徴とする検証支援プログラム。
(付記8)前記置換手段は、
さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、
前記生成手段は、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、
前記構築手段は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、前記部分回路と、からなる単一モジュールを構築することを特徴とする付記7に記載の検証支援プログラム。
(付記9)付記1〜8のいずれか一つに記載の検証支援プログラムを記録したコンピュータに読み取り可能な記録媒体。
(付記10)付記1〜8のいずれか一つに記載の単一モジュールを有する設計対象システムの設計データを記録したコンピュータに読み取り可能な記録媒体。
(付記11)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段と、
前記生成手段によって生成された制御回路により前記共通の順序回路素子群が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュールとが関連付けられた情報を作成する作成手段と、
前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データおよび前記作成手段によって作成された情報を出力する出力手段と、
を備えることを特徴とする検証支援装置。
(付記12)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段と、
前記構築手段によって構築された単一モジュールを有する設計対象システムの検証中に、前記生成手段によって生成された制御回路により前記順序回路素子群を時分割動作させた結果、前記順序回路素子から出力される信号の値を当該順序回路素子ごとに保持する保持手段と、
を備えることを特徴とする検証支援装置。
(付記13)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する第1の生成手段と、
前記設計対象システムに入力される複数の信号の中から、任意の信号の指定を受け付ける指定手段と、
前記第1の生成手段によって生成された制御回路により時分割動作させた結果、前記順序回路素子群から出力される前記指定手段によって指定された信号の値を前記各順序回路素子が存在するモジュールごとに出力する部分回路を生成する第2の生成手段と、
前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記第1および第2の生成手段によって生成された制御回路および部分回路と、からなる単一モジュールを構築する構築手段と、
前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力手段と、
を備えることを特徴とする検証支援装置。
(付記14)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築する構築工程と、
前記生成工程によって生成された制御回路により前記共通の順序回路素子群が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュールとが関連付けられた情報を作成する作成工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データおよび前記作成工程によって作成された情報を出力する出力工程と、
を含んだことを特徴とする検証支援方法。
(付記15)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築する構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムの検証中に、前記生成工程によって生成された制御回路により前記順序回路素子群を時分割動作させた結果、前記順序回路素子から出力される信号の値を当該順序回路素子ごとに保持する保持工程と、
を含んだことを特徴とする検証支援方法。
(付記16)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する第1の生成工程と、
前記設計対象システムに入力される複数の信号の中から、任意の信号の指定を受け付ける指定工程と、
前記第1の生成工程によって生成された制御回路により時分割動作させた結果、前記順序回路素子群から出力される前記指定工程によって指定された信号の値を前記各順序回路素子が存在するモジュールごとに出力する部分回路を生成する第2の生成工程と、
前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記第1および第2の生成工程によって生成された制御回路および部分回路と、からなる単一モジュールを構築する構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力工程と、
を含んだことを特徴とする検証支援方法。
実施の形態1の概要を示す説明図である。 実施の形態1にかかる検証支援装置のハードウェア構成を示す説明図である。 設計対象システムの一例を示す説明図である。 多重化モジュールを構成する任意のCPU内部の回路構成を示す説明図である。 ライブラリの記憶内容を示す説明図である。 置換DBの記憶内容を示す説明図である。 実施の形態1にかかる検証支援装置の機能的構成を示すブロック図である。 組み合わせ回路の共有関係を示す説明図である。 順序回路の置換例を示す説明図である。 入力ピンの置換例を示す説明図である。 出力ピンの置換例を示す説明図である。 I/F変換処理を示す模式図である。 構築部によって構築された単一モジュールを示す説明図である。 作成部によって作成された対応テーブルの一例を示す説明図(その1)である。 抽出部による抽出処理の概要を示す説明図である。 実施の形態1にかかる検証支援装置の検証支援処理手順を示すフローチャート(その1)である。 実施の形態1にかかる検証支援装置の検証支援処理手順を示すフローチャート(その2)である。 複数の多重化モジュールを有する設計対象システムの一例を示す説明図である。 構築部によって構築された設計対象システムを示す説明図である。 作成部によって作成された対応テーブルの一例を示す説明図(その2)である。 多重化設計対象システムを示す説明図である。 構築部によって構築された多重化設計対象システムを示す説明図である。 作成部によって作成された対応テーブルの一例を示す説明図(その3)である。 実施の形態2の概要を示す説明図である。 実施の形態2にかかる検証支援装置の機能的構成を示すブロック図である。 保持部による保持結果の一例を示す説明図である。 実施の形態2にかかる検証支援装置の検証支援処理手順を示すフローチャートである。 部分回路の一例を示す説明図である。
符号の説明
200,2500 検証支援装置
300,1300 設計対象システム
701 入力部
702 解析部
703 生成部
704 置換部
705 構築部
706 作成部
707 出力部
708,2504 取得部
709,2503 抽出部
2501 保持部
2502 指定部

Claims (10)

  1. コンピュータを、
    種別が同一かつ前記種別内で分類されるタイプが同一の複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換する置換手段、
    前記置換手段によって置換された重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段、
    前記生成手段によって生成された制御回路により前記共通の順序回路素子群が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュールとが関連付けられた情報を作成する作成手段、
    前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データおよび前記作成手段によって作成された情報を出力する出力手段、
    として機能させることを特徴とする検証支援プログラム。
  2. 前記コンピュータを、
    前記構築手段によって構築された単一モジュールを有する設計対象システムの検証結果を取得する取得手段、
    前記作成手段によって作成された情報を用いて、前記取得手段によって取得された単一モジュールを有する設計対象システムの検証結果から、前記モジュールごとの検証結果を抽出する抽出手段として機能させ、
    前記出力手段は、
    前記抽出手段によって抽出されたモジュールごとの検証結果を出力することを特徴とする請求項1に記載の検証支援プログラム。
  3. 前記置換手段は、
    さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、
    前記生成手段は、
    前記置換手段によって置換された重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、
    前記構築手段は、
    前記一の組み合わせ回路と、前記多重化回路と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築することを特徴とする請求項1または2に記載の検証支援プログラム。
  4. コンピュータを、
    種別が同一かつ前記種別内で分類されるタイプが同一の複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換する置換手段、
    前記置換手段によって置換された重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段、
    前記構築手段によって構築された単一モジュールを有する設計対象システムの検証中に、前記生成手段によって生成された制御回路により前記順序回路素子群を時分割動作させた結果、前記順序回路素子から出力される信号の値を当該順序回路素子ごとに保持する保持手段、
    として機能させることを特徴とする検証支援プログラム。
  5. 前記コンピュータを、
    前記構築手段によって構築された単一モジュールを有する設計対象システムの検証期間のうち任意の検証時刻の指定を受け付ける指定手段、
    前記保持手段によって保持された保持結果の中から、前記指定手段によって指定された検証時刻における前記順序回路素子群の信号の値を抽出する抽出手段、
    前記入力手段によって入力された設計データと、前記抽出手段によって抽出された前記順序回路素子群の信号の値とを用いて検証された前記多重化モジュールを有する設計対象システムの検証結果を取得する取得手段、
    前記取得手段によって取得された検証結果を出力する出力手段として機能させることを特徴とする請求項4に記載の検証支援プログラム。
  6. 前記置換手段は、
    さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、
    前記生成手段は、
    前記置換手段によって置換された重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、
    前記構築手段は、
    前記一の組み合わせ回路と、前記多重化回路と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築することを特徴とする請求項4または5に記載の検証支援プログラム。
  7. コンピュータを、
    種別が同一かつ前記種別内で分類されるタイプが同一の複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換する置換手段、
    前記置換手段によって置換された重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する第1の生成手段、
    前記設計対象システムに入力される複数の信号の中から、任意の信号の指定を受け付ける指定手段、
    前記第1の生成手段によって生成された制御回路により時分割動作させた結果、前記順序回路素子群から出力される前記指定手段によって指定された信号の値を前記各順序回路素子が存在するモジュールごとに出力する部分回路を生成する第2の生成手段、
    前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路と、前記第1および第2の生成手段によって生成された制御回路および部分回路と、からなる単一モジュールを構築する構築手段、
    前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力手段、
    として機能させることを特徴とする検証支援プログラム。
  8. 前記置換手段は、
    さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、
    前記第1の生成手段は、
    前記置換手段によって置換された重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、
    前記構築手段は、
    前記一の組み合わせ回路と、前記多重化回路と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、前記部分回路と、からなる単一モジュールを構築することを特徴とする請求項7に記載の検証支援プログラム。
  9. 種別が同一かつ前記種別内で分類されるタイプが同一の複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換する置換手段と、
    前記置換手段によって置換された重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段と、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段と、
    前記生成手段によって生成された制御回路により前記共通の順序回路素子群が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュールとが関連付けられた情報を作成する作成手段と、
    前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データおよび前記作成手段によって作成された情報を出力する出力手段と、
    を備えることを特徴とする検証支援装置。
  10. コンピュータが備える入力手段により、種別が同一かつ前記種別内で分類されるタイプが同一の複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
    前記コンピュータが備える置換手段により、前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換する置換工程と、
    前記コンピュータが備える生成手段により、前記置換工程によって置換された重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成工程と、
    前記コンピュータが備える構築手段により、前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築する構築工程と、
    前記コンピュータが備える作成手段により、前記生成工程によって生成された制御回路により前記共通の順序回路素子群が時分割動作する時分割のタイミングと、当該タイミングで動作する順序回路素子が存在するモジュールとが関連付けられた情報を作成する作成工程と、
    前記コンピュータが備える出力手段により、前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データおよび前記作成工程によって作成された情報を出力する出力工程と、
    を含んだことを特徴とする検証支援方法。
JP2008068049A 2008-03-17 2008-03-17 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 Expired - Fee Related JP5056511B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008068049A JP5056511B2 (ja) 2008-03-17 2008-03-17 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US12/405,373 US8074192B2 (en) 2008-03-17 2009-03-17 Verification support apparatus, verification support method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008068049A JP5056511B2 (ja) 2008-03-17 2008-03-17 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法

Publications (2)

Publication Number Publication Date
JP2009223661A JP2009223661A (ja) 2009-10-01
JP5056511B2 true JP5056511B2 (ja) 2012-10-24

Family

ID=41063976

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008068049A Expired - Fee Related JP5056511B2 (ja) 2008-03-17 2008-03-17 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法

Country Status (2)

Country Link
US (1) US8074192B2 (ja)
JP (1) JP5056511B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169715A1 (en) * 2008-12-29 2010-07-01 Dedicated Computing Llc Process for Verifying Computers
US8042075B2 (en) * 2009-03-25 2011-10-18 International Business Machines Corporation Method, system and application for sequential cofactor-based analysis of netlists
KR101635397B1 (ko) * 2010-03-03 2016-07-04 삼성전자주식회사 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법
WO2018179283A1 (ja) * 2017-03-30 2018-10-04 三菱電機株式会社 相グループ推定装置、相グループ推定方法および相グループ推定プログラム
CN110750946B (zh) * 2018-07-19 2023-08-18 澜至电子科技(成都)有限公司 集成电路网表仿真加速方法及其***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215226A (ja) 1999-01-25 2000-08-04 Mitsubishi Electric Corp 論理検証装置
JP4403187B2 (ja) * 2007-03-30 2010-01-20 富士通株式会社 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法

Also Published As

Publication number Publication date
US8074192B2 (en) 2011-12-06
US20090234620A1 (en) 2009-09-17
JP2009223661A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
US5164911A (en) Schematic capture method having different model couplers for model types for changing the definition of the schematic based upon model type selection
US6871331B1 (en) Combined waveform and data entry apparatus and method for facilitating fast behavioral verification of digital hardware designs
US7788625B1 (en) Method and apparatus for precharacterizing systems for use in system level design of integrated circuits
JP3131177B2 (ja) エミュレーションとシミュレーションを用いた設計検証のための方法および装置
US7472361B2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
CN112949233B (zh) Fpga芯片的自动化开发方法及装置、电子设备
US20070277144A1 (en) Conversion of circuit description to an abstract model of the circuit
JP4251964B2 (ja) 検証装置、検証方法およびプログラム
JP2009517764A (ja) 階層的soc設計でマージするタイミング規制
JP5056511B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US7966590B2 (en) Circuit design data conversion apparatus, circuit design data conversion method, and computer product
US10846449B1 (en) Conversion of block model-based circuit designs into circuit implementations
US8893068B1 (en) Techniques to generate a more accurate simulation model
US7003753B2 (en) Method of generating a physical netlist for a hierarchical integrated circuit design
US20050055190A1 (en) Circuit operation verification device and method
US7086017B1 (en) Method of post-implementation simulation of a HDL design
CN115983171B (zh) 用于对片上***进行后仿真的方法和仿真平台
US6877140B1 (en) Method and system for generating a schematic representing bus structures
US7962875B2 (en) Method, apparatus and program for designing circuits
CN116451625B (zh) 用于rtl和带sdf网表的联合仿真的装置和方法
JP4448048B2 (ja) 構造解析プログラム
JP2009217531A (ja) 仮想ソフトウェア生成装置
CN116227396A (zh) 用于对片上***进行后仿真的方法和仿真平台
Skliarova A multimedia tool for teaching reconfigurable computing
Li High-Performance FPGA-accelerated Chiplet Modeling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120716

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

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