JP4403187B2 - 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法 - Google Patents

設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法 Download PDF

Info

Publication number
JP4403187B2
JP4403187B2 JP2007090701A JP2007090701A JP4403187B2 JP 4403187 B2 JP4403187 B2 JP 4403187B2 JP 2007090701 A JP2007090701 A JP 2007090701A JP 2007090701 A JP2007090701 A JP 2007090701A JP 4403187 B2 JP4403187 B2 JP 4403187B2
Authority
JP
Japan
Prior art keywords
module
input
design data
circuit
modules
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
JP2007090701A
Other languages
English (en)
Other versions
JP2008250644A (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 JP2007090701A priority Critical patent/JP4403187B2/ja
Priority to US12/076,551 priority patent/US7966590B2/en
Publication of JP2008250644A publication Critical patent/JP2008250644A/ja
Application granted granted Critical
Publication of JP4403187B2 publication Critical patent/JP4403187B2/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

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

この発明は、同種かつ同一タイプの複数のモジュール(たとえば、CPU)が並列動作する多重化モジュールを有する設計対象システムに関する設計データを変換する設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法に関する。
従来、LSI設計時には、設計対象回路が意図したとおりに動作するかどうかをシミュレーションによって確認する。ソフトウェアによる実行では、設計対象回路が大規模になればなるほどシミュレーションに時間がかかる。このため、大規模な設計対象回路ではFPGAなどのハードウェア上に載せることにより、シミュレーションをおこなう手法がよく用いられる。
また、最近の設計対象システムでは、高速化のためにマルチプロセッサ構成が前提になっており、この動作をシミュレートする従来技術として、下記特許文献1および下記特許文献2が開示されている。
特開平7−249012号公報 特開平8−30646号公報
しかしながら、FPGAを使ったシミュレーションは、ソフトウェアによるシミュレーションより高速であるが、シミュレートできる回路規模に限度がある。特に、高速化のためにマルチプロセッサで構成されている設計対象システムの動作をシミュレートしようとすると、複数のコアを入れるための回路規模が大きくなりすぎ、FPGAに載りきらないという問題が発生する。
たとえば、マルチプロセッサ構成の設計対象システムでは、同一のCPUが複数存在し、それがバスなどを通じて通信しながら動作する。従来では、n個のCPUが接続する設計対象システムをシミュレートしようとすると、回路量はn倍になっていた。このように、設計対象回路が大規模になればなるほど、ソフトウェアによるシミュレーションに頼らざるを得なくなり、設計期間の長期化を招くという問題があった。
一方、マルチプロセッサ構成の設計対象システムのような大規模回路については、動作確認しようとする実プロセッサ以外の部分で、回路量を削減した擬似プロセッサを使うなどの工夫により、この問題を回避することができる。
しかしながら、実設計対象システムと動作が一致しないためシミュレーションに漏れが生じることとなり、設計精度が低減するという問題があった。さらに、擬似プロセッサを作るための工数が必要になり、結局、設計期間の長期化を招くという問題があった。
この発明は、上述した従来技術による問題点を解消するため、多重化モジュールを有する設計対象システムについてのシミュレーションの高精度化および設計期間の短縮化を図ることができる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、第1の発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法は、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付け、モジュールごとに種別およびタイプを記憶するライブラリを参照して、入力された設計データを解析することにより、前記複数のモジュールが同種かつ同一タイプであることを特定し、その解析結果に基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子を多重化した多重化回路に置換し、置換された多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成し、入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、置換された多重化回路と、生成された制御回路と、からなる単一モジュールを構築し、構築された単一モジュールを有する設計対象システムに関する設計データを出力することを特徴とする。
この発明によれば、多重化モジュールを、多重化モジュールと等価かつ回路データ量の少ない単一モジュールに変換することができる。
また、上記発明において、さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、置換された多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成し、前記一の組み合わせ回路と、前記多重化回路と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築することとしてもよい。
この発明によれば、モジュールごとに有する入力ピンおよび出力ピンを単一の入力I/Fおよび出力I/Fに集約することができ、回路データ量を削減することができる。
また、上記発明において、前記設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データの入力が受け付けられた場合、置換処理、生成処理、構築処理、および出力処理を前記設計対象システムの個数分繰り返し実行することにより、構築された単一モジュールを有する設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データを出力することとしてもよい。
この発明によれば、各設計対象システム内の多重化モジュールを、多重化モジュールと等価かつ回路データ量の少ない単一モジュールに変換することができる。
また、第2の発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法は、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付け、モジュールごとに種別およびタイプを記憶するライブラリを参照して、入力された設計データを解析することにより、前記複数のモジュールが同種かつ同一タイプであることを特定し、その解析結果に基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出し、解析結果に基づいて、前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換し、置換された多重化回路により多重化された前記共通の順序回路素子群を検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成し、入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、置換された多重化回路と、からなる前記多重化モジュールごとの単一モジュールと、共通の制御回路と、からなる複合モジュールを構築し、構築された複合モジュールを有する設計対象システムに関する設計データを出力することを特徴とする。
この発明によれば、複数の多重化モジュールを、多重化モジュールごとに、多重化モジュールと等価かつ回路データ量の少ない単一モジュールに変換することができる。また、シミュレータに与えた場合、最大モジュール個数で時分割制御することができ、シミュレーション速度の高速化を実現することができる。
また、上記発明において、さらに、前記多重化モジュールごとに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換するとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換し、置換された多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを前記最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成し、前記一の組み合わせ回路と、前記多重化回路と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる前記多重化モジュールごとの単一モジュールと、生成された共通の制御回路と、からなる複合モジュールを構築することとしてもよい。
この発明によれば、モジュールごとに有する入力ピンおよび出力ピンを単一の入力I/Fおよび出力I/Fに集約することができ、回路データ量を削減することができる。
本発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法によれば、シミュレーションの高精度化および設計期間の短縮化を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
(設計データ変換装置のハードウェア構成)
まず、この発明の実施の形態1にかかる設計データ変換装置のハードウェア構成について説明する。図1は、この発明の実施の形態1にかかる設計データ変換装置のハードウェア構成を示すブロック図である。
図1において、設計データ変換装置100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク140に接続可能である。
コンピュータ本体110は、CPU,メモリ,インターフェースを有する。CPUは、設計データ変換装置100の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク111,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。
また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。
また、出力装置130としては、ディスプレイ131、プリンタ132、スピーカ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ132は、画像データや文書データを印刷する。またスピーカ133は、効果音や読み上げ音などの音声を出力する。
(設計対象システム200の一例)
つぎに、この発明の実施の形態1にかかる設計対象システム200の一例について説明する。本実施の形態1にかかる設計対象システム200とは、同種かつ同一タイプの複数のモジュール(CPU、メモリ、DMACなど)を有する設計対象システム200である。
本実施の形態1では、複数のモジュールを多重化モジュールと称す。以降、本実施の形態1では、多重化モジュールとして、同種かつ同一タイプの複数のCPUが並列動作するマルチプロセッサを実装したマルチプロセッサシステムを例に挙げて説明する。
図2は、この発明の実施の形態1にかかる設計対象システム200の一例を示す説明図である。図2において、設計対象システム200は、n(n=1,2,・・・)個のCPU201−1,・・・,201−i,・・・,201−nからなる多重化モジュール201を実装するマルチプロセッサシステムである。
CPU201−iは、クロック端子202−iと入力ピンI/F203−iと出力ピン204−iとを備えており、それぞれクロック線210とバス220に接続されている。また、この設計対象システム200には、さらに、一例としてメモリ205、DMAC206、エンコーダ207、デコーダ208などの各種モジュールがバス220に接続されている。
図3は、図2に示した多重化モジュール201を構成する任意のCPU201−i内部の回路構成を示す説明図である。図3において、CPU201−iは、組み合わせ回路301−iと順序回路302−iと入力ピン203−iと出力ピン204−iとを備えている。
組み合わせ回路301−iは、入力ピン203−iや順序回路302−iからデータを取り込み、順序回路302−iや出力ピン204−iに出力する。組み合わせ回路301−iは、他のCPU201−1〜201−(i−1),201−(i+1)〜201−nの組み合わせ回路301−1〜301−(i−1),301−(i+1)〜301−nと同一構成である。組み合わせ回路301−iは、たとえば、CPU201−iのシーケンサに相当する回路である。
順序回路302−iは、FFやRAMなどの膨大な数の順序回路素子が接続されて構成されている。図3では、説明を簡略化するため、FF321−i〜324−i、RAM325−i〜327−iなどの順序回路素子により表現している。順序回路302−iは、他のCPU201−1〜201−(i−1),201−(i+1)〜201−nの順序回路302−1〜302−(i−1),302−(i+1)〜302−nと同一構成であるが、CPU201−iごとに保持される値が異なる。順序回路302−iは、たとえば、CPU201−iのレジスタに相当する回路である。
入力ピン203−iは、バス220からのデータを取り込んで組み合わせ回路301−iに出力する。出力ピン204−iは、組み合わせ回路301−iからのデータをバス220に出力する。
(ライブラリの記憶内容)
つぎに、この発明の実施の形態1にかかる設計データ変換装置100に用いるライブラリの記憶内容について説明する。図4は、この発明の実施の形態1にかかる設計データ変換装置100に用いるライブラリの記憶内容を示す説明図である。
図4において、ライブラリ400には、各種回路データ(モジュールやセル)が名称および種別およびタイプごとに分類されて記憶されている。名称とは、モジュールやセルを一意に特定する名称であり、具体的には、たとえば、実際の製品名や型番と対応する。種別とは、モジュール/セルが属する種別(CPU、順序回路、・・・)をあらわす。
タイプとは、同一種内で分類された型である。たとえば、種別がCPUであっても、たとえば、製造メーカーやクロック周波数によりタイプが異なる。また、種別が順序回路であっても、FFやRAMなどのように順序回路の種類によりタイプが異なる。
より具体的には、CPUとFFのように、設計対象システム200内のある2つのモジュールの種別が異なる場合は、同種のモジュールとはいえない。同様に、「mojule_cpu_a」と「mojule_cpu_b」のように、種別が同じCPUであっても、タイプが異なれば、同一のモジュールとはいえない。図2に示した設計対象システム200では、CPU201−1〜201−nは同一種別、同一タイプ(たとえば、「mojule_cpu_a」)のモジュールである。
なお、このライブラリ400は、ROM,RAM,HDなどの記録媒体により実現される。また、ライブラリ400は、設計データ変換装置100に実装されてもよく、またはネットワークを介して通信可能な外部サーバに実装されていてもよい。
(置換DBの記憶内容)
つぎに、この発明の実施の形態1にかかる設計データ変換装置100に用いる置換DBの記憶内容について説明する。図5は、この発明の実施の形態1にかかる設計データ変換装置100に用いる置換DBの記憶内容を示す説明図である。図5において、置換DB500は、順序回路、入力I/F、出力I/Fごとに、置換モジュール501〜503を記憶している。置換モジュール501〜503は、HDL記述のテキストデータにより表現される。
置換モジュール501は、各CPU201−1〜201−nに存在する複数の順序回路302−1〜302−nを、複数の順序回路302−1〜302−nのそれぞれに存在する共通の順序回路素子群(たとえば、FF321−1〜321−n)を多重化した多重化回路である。他の共通の順序回路素子群(FF322−1〜322−n),・・・,(FF324−1〜324−n)にとっても同様である。
ここで、共通の順序回路素子群とは、種別が同一(FFどうし、RAMどうし)であることのほか、その接続位置が同一であることも含む。図5では、順序回路素子群(FF321−1〜321−n),・・・,(FF324−1〜324−n)の多重化回路のみを表現しているが、順序回路素子群(RAM325−1〜325−n),・・・,(RAM327−1〜327−n)の多重化回路(不図示)も記憶されている。
また、多重化回路を表現する置換モジュール501は、任意の状態iのときに、CPU201−iの順序回路素子(たとえば、FF321−i)の出力データが出力ピン204−iから出力されるという条件を満たしていればよく、その回路構成は問わない。
このように、共通の順序回路素子群(たとえば、FF321−1〜321−n)を置換モジュール501により置換することにより、複数のCPU201−1〜201−nに分散されている共通の順序回路素子群を単一の多重化回路で多重化することができる。
また、置換モジュール502は、CPU201−1〜201−nへ入力されるデータを内部に選択的に取り込むn入力1出力の入力I/Fである。このように、置換モジュール502に置換することにより、複数のCPU201−1〜201−nに分散されている共通の入力ピンを単一の入力I/Fで多重化することができる。
また、置換モジュール503は、各CPU201−1〜201−nの組み合わせ回路301−1〜301−nからの出力データを選択的に出力する出力I/Fである。このように、置換モジュール503に置換することにより、複数のCPU201−1〜201−nに分散されている共通の出力ピンを単一の出力I/Fで多重化することができる。
なお、この置換DB500は、ROM,RAM,HDなどの記録媒体により実現される。また、置換DB500は、設計データ変換装置100に実装されてもよく、またはネットワークを介して通信可能な外部サーバに実装されていてもよい。
(設計データ変換装置100の機能的構成)
つぎに、この発明の実施の形態1にかかる設計データ変換装置100の機能的構成について説明する。図6は、この発明の実施の形態1にかかる設計データ変換装置100の機能的構成を示すブロック図である。
図6において、設計データ変換装置100は、入力部601と、解析部602と、生成部603と、置換部604と、構築部605と、出力部606と、を備えている。これら各機能601〜606は、設計データ変換装置100内のメモリに格納された当該機能に関するプログラムを設計データ変換装置100内のプロセッサに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。
また、各機能601〜606からの出力データはメモリに保持される。また、図6中矢印で示した接続先の機能は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムを設計データ変換装置100内のプロセッサに実行させる。
まず、入力部601は、設計対象システム200に関する設計データ600の入力を受け付ける機能を有する。設計データ600とは、たとえば、論理合成後における設計対象システム200のネットリストである。ネットリストには、設計対象システム200を構成するCPU201−iやその内部のセル(FFやRAMなど)の名称を用いてこれらの接続関係が記述されている。
また、解析部602は、入力部601によって入力された設計データ600を解析する機能を有する。具体的には、たとえば、図4に示したライブラリ400を参照することにより、ネットリストに記述されている名称を手掛かりとして、設計対象システム200の接続関係、モジュールの種別やタイプ、モジュール内の接続関係、組み合わせ回路、順序回路の種別やタイプ、入力ピン、出力ピンを特定する。また、同種かつ同一タイプのモジュールの個数も特定する。
また、解析部602では、ネットリストに記述されている名称を手掛かりとして、各CPU201−iに共通の組み合わせ回路を特定し、共有化する。
図7は、組み合わせ回路の共有関係を示す説明図である。図7において、組み合わせ回路301−1〜301−nは、CPU201−1〜201−nで同一構成であるため、いずれか1つの組み合わせ回路301−iで共有することができる。共有化されたいずれか1つの組み合わせ回路301−iを、以降、共有組み合わせ回路700と表記する。
共有組み合わせ回路700は、組み合わせ回路301−iのHDL記述のテキストデータをコピーすることにより得られる。これにより、シミュレーションを実行するための組み合わせ回路の回路データ量を1/nに削減することができる。
また、図6において、生成部603は、解析部602による解析結果に基づいて制御回路を生成する機能を有する。ここで、制御回路とは、設計データ変換装置100からの出力結果となるモジュールまたは設計対象システム200を時分割動作させる回路である。この制御回路は、たとえば、インクリメントするカウンタにより構成される。
制御回路がカウンタにより構成される場合、生成部603は、解析部602から同種かつ同一タイプのCPU201−iの数を検出することで、カウンタ数を設定する。具体的には、そのCPU201−iの数がnである場合、カウント値1を初期値とし、クロックが到達するたびにn+1までインクリメントして、n+1になると1にリセットするように設定された制御回路を生成する。カウンタへのクロックの到達タイミングは、他のFFにクロックが到達するタイミングと同時とする。なお、カウント値iのカウンタからの出力信号をC(i)と表記する。
すなわち、カウント値1〜nまでのクロックでは、共通の順序回路素子群(たとえば、FF321−1〜321−n)を時分割動作させ、カウント値n+1のクロックでは、共通I/Fを動作させる。共通I/Fについては後述する。
また、置換部604は、解析部602によって解析・特定された順序回路302―i、入力ピン203−i、および出力ピン204−iを、置換モジュール501〜503に置換する機能を有する。
図8は、順序回路302−iの置換例を示す説明図である。図8は、同種かつ同一タイプであるn個のCPU201−1〜201−nの各順序回路302−1〜302−nに共通の順序回路素子群(n個のFF321−1〜321−n)を置換モジュール501に置換する例を示している。
置換モジュール501は、n個の回路ブロック810−1〜810−nと、いずれか一つの回路ブロック810−iからの出力データを共有組み合わせ回路700に選択出力するマルチプレクサ820とから構成される。置換モジュール501は、制御回路800に接続される。回路ブロック801−iは、セレクタ811−iとFF321−iとが直接接続された構成であり、FF321−iからの出力データがセレクタ811−iに帰還入力される。
FF321−iは、カウント値iのとき、保持しているデータQをマルチプレクサ820に出力する。セレクタ811−iは、共有組み合わせ回路700からの出力データとFF321−iからの出力データを入力する。そして、カウント値がiのとき、データDを取り込んでFF321−iに出力する。
これ以外のカウント値では、セレクタ811−iは、帰還入力されたデータQを出力する。これにより、FF321−iは常にCPU201−iの対応するFFの値を保持することが保証される。マルチプレクサ820は、カウント信号C(i)を取り込んだ場合、回路ブロック810−1〜810−nのうち回路ブロック810−iからのデータQを選択して共有組み合わせ回路700に出力する。
なお、Verilogを用いて置換する場合、置換元のFF(CLK,D,Q)のHDL記述をDUMMYFF(CLK,D,Q,counter)に置き換えることにより、単純テキスト処理で置換処理を実現することができる。
図9は、入力ピン203−iの置換例を示す説明図である。図9は、同種かつ同一タイプであるn個のCPU201−1〜201−nの各入力ピン203−1〜203−nを置換モジュール502に置換する例を示している。
置換モジュール502は、n入力1出力のマルチプレクサ900で構成される。マルチプレクサ900は、制御回路800に接続され、カウント信号C(i)を取り込んだ場合、CPU201−1〜201−nの入力データIN1〜INnのうちCPU201−iの入力データIN−iを選択して共有組み合わせ回路700に出力する。
図10は、出力ピン204−iの置換例を示す説明図である。図10は、同種かつ同一タイプであるn個のCPU201−1〜201−nの各出力ピン204−1〜204−nを置換モジュール503に置換する例を示している。
置換モジュール503は、n個の回路ブロック1010−1〜1010−nから構成される。回路ブロック1010−1〜1010−nは、制御回路800に接続され、カウント信号C(i)を取り込む。回路ブロック1010−iは、セレクタ1011−iとFF1012−iとが直接接続された構成であり、FF1012−iからの出力データがセレクタ1011−iに帰還入力される。
なお、CPU201−iから出た信号がバスを通って1クロック内に他のCPU201−jに届く場合が存在するならば、出力ピンの値を計算するために追加の処理が必要になる。具体的には、カウンタの値が2n+2まで増加することとして、カウンタがn+1+iのときにCPU201−iの組み合わせ回路の状態をシミュレートして、得られる出力ピンの値をFF1012−iに記憶しておく。この処理により、カウンタが1〜nのときに、次サイクルの出力ピンの値があらかじめ計算されているので、1サイクルで届く信号が存在しても正しい値が入力されることになる。一般的には1クロック内に他のCPU201−jに信号が届く例は多くないので、本置換例では、そのような信号はないものとして記述している。
FF1012−iは、カウント値iのとき、保持しているデータQをバス220に出力する。セレクタ1011−iは、共有組み合わせ回路700からの出力データDとFF321−iからの出力データQを入力する。そして、カウント値がiのとき、データDを取り込んでFF1012−iに出力する。これ以外のカウント値では、帰還入力されたデータQを出力する。
なお、Verilogを用いて置換する場合、stubモジュールを用意して置き換えれば単純な置き換えと追加のみで実現することができる。図11は、I/F変換処理を示す模式図である。(A)において、CPU201−1〜CPU201−nをコピーして、(B)に示したようにダミーCPU1101−1〜1101−nを作り出す。ダミーCPU1101−1〜1101−nとバス220との接続関係(点線で囲った領域)は、CPU201−1〜CPU201−nとバス220との接続関係と変化はないため、これまでのネットリストをそのまま適用することができる。
そして、(C)において、このダミーCPU1101−1〜1101−nと共有組み合わせ回路700の置換された各入出力ピン(置換モジュール502,503)との間にI/F回路1102を接続することにより、共通I/F1100を構築することができる。これにより、多重化前の各CPU201−iの入出力信号がダミーCPU1101−iを素通りすることとなる。これにより、置換処理を間単に実現することができる。
また、構築部605は、置換モジュール501〜503と共有組み合わせ回路700と制御回路800とを接続することにより単一モジュールを構築する機能を有する。図12は構築部605によって構築された単一モジュールを示す説明図である。
図12において、単一モジュール1201は、CPU201−1〜201−nからなる多重化モジュール201から置き換わったモジュールである。すなわち、n個の組み合わせ回路301−1〜301−nが共有組み合わせ回路700に置き換わっており、n個の順序回路302−1〜302−nが多重化回路(置換モジュール501)群からなる多重化順序回路1210に置き換わっており、n個の入力ピン203−1〜203―nおよびn個の出力ピン204−1〜204−nが単一の入力I/F(置換モジュール502)および出力I/F(置換モジュール503)からなる共通I/F1100に置き換わっている。
制御回路800は、多重化順序回路1210および共通I/F1100に接続されている。制御回路から出力されるカウント信号C(1)〜C(n+1)のうち、カウント信号C(1)〜C(n)は多重化順序回路1210に出力されて、各状態(カウント値)iの順序回路素子(FFやRAM)が時分割動作する。また、カウント信号C(n+1)は共通I/F1100に出力されて、状態i+1において入出力動作する。
共通I/F1100を状態i+1においてのみ入出力動作させるため、クロックゲートCGにカウント値C(n+1)が出力された場合にのみ、共通I/F1100にクロックCLKを供給するように構築される。
このように、多重化モジュール201を単一モジュール1201に置換することにより、変換後の設計対象システム1200の回路規模を、変換前の設計対象システムの回路規模よりも小さくすることができ、回路データ量を大幅に削減することができる。
また、図6において、出力部606は、構築部605によって構築された構築結果に関する設計データ600を出力する機能を有する。具体的には、図12に示した変換後の単一モジュール1201を有するあらたな設計対象システム1200に関する設計データ610(ネットリスト)を出力する。設計データ610の出力先は、ディスプレイ131による画面表示やプリンタ132による印刷出力のほか、設計データ変換装置100内のメモリへのデータ書込みやシミュレータへの送信でもよい。
(設計データ変換処理手順)
つぎに、この発明の実施の形態1にかかる設計データ変換装置100の設計データ変換処理手順について説明する。図13は、この発明の実施の形態1にかかる設計データ変換装置100の設計データ変換処理手順を示すフローチャートである。図13において、まず、入力部601により、設計対象システム200に関する設計データ600(ネットリスト)の入力が受け付けられるまで待ち受け(ステップS1301:No)、設計データ600の入力が受け付けられた場合(ステップS1301:Yes)、解析部602により設計データ600を解析する(ステップS1302)。
そして、生成部603により、解析結果から得られる同種かつ同一構成のCPUの個数nに1加算したn+1周期で計数する制御回路800を生成する(ステップS1303)。つぎに、置換部604により、置換モジュール501〜503に置換する(ステップS1304)。そして、構築部605により、図12に示したように、変換後の単一モジュール1201を構築する(ステップS1305)。最後に、この変換後の単一モジュール1201を有するあらたな設計対象システム1200に関する設計データ610を出力する(ステップS1306)。これにより、一連の処理を終了する。
この発明の実施の形態1によれば、各CPU201−1〜201−nを、組み合わせ回路301−1〜301−nと順序回路302−1〜302−nにわけ、組み合わせ回路301−1〜301−nのいずれかの組み合わせ回路301−iにより、すべてのCPU201−1〜201−nで共有する。
また、設計対象システム200の動作をシミュレートする場合、i(1〜n)番目のク
ロックCLKでCPU201−i内部の動作をシミュレートし、n+1個目のクロックCLKで、共通I/F1100の動作をシミュレートするように制御する制御回路800を生成する。
これにより、n+1回分のクロックCLKで、元の設計対象システム200のクロック1回分の動作をシミュレートすることになる。変換後の単一モジュール1201は、変換前の設計対象システム200の多重化モジュール201と比較してn+1倍遅くなるが、組み合わせ回路301−1〜301−nが共有されているため、回路規模が小さくなっている。
このため、従来はシミュレータで扱える規模を超えていてシミュレーションが不可能だった設計対象システム200のシミュレーションが可能になるという利点がある。このように、データ量が削減された単一モジュール1201を有する設計対象システム1200に関する設計データ610をシミュレータに与えることで、設計者は、元の設計対象システム200の動作を漏れなく確認することができる。
(実施の形態2)
つぎに、実施の形態2について説明する。実施の形態1では、1種類の多重化モジュール201を有する設計対象システム200を設計対象とした場合について説明したが、実施の形態2では、複数種類の多重化モジュールを有する設計対象システムを設計対象とする。以降、実施の形態1と相違する点のみについて説明する。なお、実施の形態1で示した構成と同一構成については同一符号を付し、その説明を省略する。
図14は、この発明の実施の形態2にかかる複数の多重化モジュールを有する設計対象システムの一例を示す説明図である。図14において、設計対象システム1400は、同種かつ異なるタイプのCPUからなる2つの多重化モジュール201a,201bを有する。すなわち、多重化モジュール201aはn個のCPU201a−1〜201a−nを有し、多重化モジュール201bは、m(n>m)個のCPU201b−1〜201b−mを有する。
なお、多重化モジュール201aの構成要素には、符号の末尾にaを付し、多重化モジュール201bの構成要素には、符号の末尾にbを付す。たとえば、上述したように多重化モジュール201aの任意のCPUは、CPU201a−iと表記する。
この設計対象システム1400においては、解析部602により、多重化モジュール201a,201bとそのCPUの個数n,mが特定される。この場合、生成部603では、nおよびmの大小を比較し、制御回路800であるカウンタの上限カウント値を、mよりも大きいnを基準として、n+1に設定する。
図15は、この発明の実施の形態2にかかる構築部605によって構築された設計対象システム1500を示す説明図である。図15において、設計対象システム1500は、変換後の単一モジュール1501a,1501bと、制御回路800と、クロックゲートCGとからなる複合モジュール1501を有する。複合モジュール1501は、変換元の2つの多重化モジュール201a,201bから置き換わったモジュールである。
単一モジュール1500aは、共有組み合わせ回路700a、多重化順序回路1210a、および共通I/F1100aを有し、単一モジュール1500bは、共有組み合わせ回路700b、多重化順序回路1210b、および共通I/F1100bを有する。制御回路800およびクロックゲートCGは変換後の単一モジュール1500a,1500bにおいて共通である。
この場合、制御回路800は、カウント値1〜n+1まで計数し、n+1のあとは1にリセットされる。これにより、単一モジュール1500aでは、カウント値1〜nまでは多重化順序回路1210aを時分割動作させ、カウント値n+1で共通I/F1100aを動作させる。
一方、単一モジュール1500bでは、カウント値1〜mまでは多重化順序回路1210bを時分割動作させ、カウント値m+1〜nまでは何も動作されない。そして、カウント値n+1になると、共通I/F1100bを動作させる。
このように、複数の多重化モジュールがある場合、一番CPU数が多い多重化モジュールのCPU数を基準として制御回路800の上限カウント値を設定することで、回路データ量の削減とともにシミュレーション時間の短縮化を図ることができる。なお、本実施の形態2では、n>mとしたが、n=mでも同様に実現することができる。
(実施の形態3)
つぎに、実施の形態3について説明する。実施の形態1では、多重化モジュールを有する単一の設計対象システム200を変換対象としたが、実施の形態3では、その設計対象システム200をシステムボードとして複数実装する多重化設計対象システムを変換対象とする。以降、実施の形態1または2と相違する点のみについて説明する。なお、実施の形態1または2で示した構成と同一構成については同一符号を付し、その説明を省略する。
図16は、この発明の実施の形態3にかかる多重化設計対象システムを示す説明図である。図16において、多重化設計対象システム1600は、図2に示した設計対象システム200をシステムボードとして複数個実装したシステムである。すなわち、多重化設計対象システム1600は、システムボード200−1〜200−Kがバス1610に接続されて並列実行する。
図17は、この発明の実施の形態3にかかる構築部605によって構築された多重化設計対象システムを示す説明図である。多重化設計対象システム1700において、各システムボード1700−1〜1700−Kは、図12に示した構築後の設計対象システム1200と同一構成である。この多重化設計対象システム1700に関する設計データ610(ネットリスト)をシミュレートする場合、図16に示したように、各システムボード200−kのCPU数がn個で、システムボード数がK個であるため、カウント数は、(n+1)×Kとなる。
図18は、この発明の実施の形態3にかかる設計データ変換処理手順を示すフローチャートである。図18において、まず、入力部601により、図16に示した多重化設計対象システム1600に関する設計データ600(ネットリスト)の入力が受け付けられるまで待ち受け(ステップS1801:No)、設計データ600の入力が受け付けられた場合(ステップS1801:Yes)、解析部602により設計データ600を解析する(ステップS1802)。
そして、解析されたシステムボード数Kのインデックスkをk=1とし(ステップS1803)、k>Kであるか否かを判断する(ステップS1804)。k>Kでない場合(ステップS1804:No)、システムボード200−kについて、生成部603による制御回路800の生成処理(ステップS1805)、置換部604による置換処理(ステップS1806)、および構築部605による構築処理(ステップS1807)を実行する。
このあと、kを1つインクリメントして(ステップS1808)、ステップS1804に戻る。一方、k>Kである場合(ステップS1804:Yes)、出力部606により、図17に示した多重化設計対象システム1700に関する設計データ610を出力する。これにより、一連の処理を終了する。
このように、実施の形態3によれば、各システムボード200−kについて順次あらたなシステムボード1700−kに変換することにより、回路データ量を削減することができる。なお、この実施の形態3では、各システムボード200−k内のCPU数をnとしたが、各システムボード200−kごとに異なるCPU数であってもよい。
また、上述した設計対象となる多重化設計対象システム1600を展開することにより、n×K個のCPUとK個の入出力I/Fとを有する単一の設計対象システムとして扱って、変換することもできる。この場合、制御回路800で設定されるカウント数はn×K+1となるため、上述したカウント数(n+1)×Kよりも低くなる。したがってクロック数が低減され、シミュレーション時間の短縮化を図ることができる。
展開して変換する手法と展開せずに変換する手法とを比較すると、シミュレーション速度と回路データ量とのトレードオフに応じて変換手法を選択することができる。すなわち、多重化設計対象システム1600を展開して変換する手法では、各システムボード200−1〜200−Kから展開されたK個の共通I/F1100が共有化される。これにより、カウント値n×K+1のときに、共有化された単一の共通I/F1100が処理される。
したがって、展開せずに変換する手法にくらべて、クロック数が低減され、シミュレーション時間の短縮化を図ることができるが、K個の共通I/F1100が共有化されるため、単一の共通I/F1100の回路データ量が削減されないこととなる。
また、多重化設計対象システム1600を展開せずに変換する場合、展開する場合にくらべてカウント数がn×K+1となり、クロック数が増加するが、各共通I/F1100が共有化されないため、回路データ量を削減することができる。このように、設計者は両変換手法のトレードオフに応じて、設計対象に適した手法を適用すればよい。
たとえば、シミュレーション速度を優先する場合には、多重化設計対象システム1600を展開する変換手法によりn×K個のCPUを並列実行する多重化モジュールを有する単一の設計対象システムを構築し、コンパイラに与えて、コンパイル結果をFPGAに載せてみる。FPGAに載りきった場合、その状態でシミュレーションを実行することにより、高速シミュレーションを実現することができる。
一方、コンパイル結果がFPGAに載りきらなかった場合、多重化設計対象システム1600を展開せずに変換する手法により、変換後の多重化設計対象システム1700を構築する。これにより、回路データ量が削減されるため、そのコンパイル結果をFPGAに載せることができ、シミュレーションを実行することができる。
以上説明したように、本実施の形態によれば、設計対象システムの回路規模を小さくすることができ、FPGAを使ったシミュレーションを実行することができる。したがって、シミュレーション時間の短縮化を図ることができる。
また、回路規模が大きい多重化モジュールと回路規模の小さい単一モジュールは等価であるため、従来のような擬似プロセッサを作成する必要がなく、設計者の設計負担の低減を図ることができる。また、多重化モジュールと単一モジュールは等価であるため、従来のような擬似プロセッサを使用する必要もなく、漏れのない高速なシミュレーションを実現することができる。
以上のことから、この発明の実施の形態によれば、多重化モジュールを有する設計対象システムについてのシミュレーションの高精度化および設計期間の短縮化を図ることができる。
なお、本実施の形態1〜3で説明した設計データ変換方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
(付記1)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換させる置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成させる生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築させる構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計データ変換プログラム。
(付記2)前記置換工程は、
さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換させ、
前記生成工程は、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成させ、
前記構築工程は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築させることを特徴とする付記1に記載の設計データ変換プログラム。
(付記3)前記入力工程により、前記設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データの入力が受け付けられた場合、前記置換工程、前記生成工程、前記構築工程、および出力工程を前記設計対象システムの個数分繰り返し実行することにより、前記構築工程によって構築された単一モジュールを有する設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データを出力させることを特徴とする付記1または2に記載の設計データ変換プログラム。
(付記4)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出させる検出工程と、
前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換させる置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を前記検出工程によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させる生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させる構築工程と、
前記構築工程によって構築された複合モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする設計データ変換プログラム。
(付記5)前記置換工程は、
さらに、前記多重化モジュールごとに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換させ、
前記生成工程は、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを前記最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させ、
前記構築工程は、
前記一の組み合わせ回路と、前記多重化回路群と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させることを特徴とする付記4に記載の設計データ変換プログラム。
(付記6)付記1〜付記5のいずれか一つに記載の設計データ変換プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
(付記7)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段と、
前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力手段と、
を備えることを特徴とする設計データ変換装置。
(付記8)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出する検出手段と、
前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換手段と、
前記置換手段によって置換された各多重化回路により多重化された前記共通の順序回路素子群を前記検出手段によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成する生成手段と、
前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、前記生成手段によって生成された共通の制御回路と、からなる複合モジュールを構築する構築手段と、
前記構築手段によって構築された複合モジュールを有する設計対象システムに関する設計データを出力する出力手段と、
を備えることを特徴とする設計データ変換装置。
(付記9)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築する構築工程と、
前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力工程と、
を含んだことを特徴とする設計データ変換方法。
(付記10)同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データに基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出する検出工程と、
前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路群に置換する置換工程と、
前記置換工程によって置換された各多重化回路により多重化された前記共通の順序回路素子群を前記検出工程によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成する生成工程と、
前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路群と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築する構築工程と、
前記構築工程によって構築された複合モジュールを有する設計対象システムに関する設計データを出力する出力工程と、
を含んだことを特徴とする設計データ変換方法。
以上のように、本発明にかかる設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法は、LSI設計に有用であり、特に、FPGAなどのハードウェアを用いたシミュレーションに適している。
この発明の実施の形態1にかかる設計データ変換装置のハードウェア構成を示すブロック図である。 この発明の実施の形態1にかかる設計対象システムの一例を示す説明図である。 図2に示した多重化モジュールを構成する任意のCPU内部の回路構成を示す説明図である。 この発明の実施の形態1にかかる設計データ変換装置に用いるライブラリの記憶内容を示す説明図である。 この発明の実施の形態1にかかる設計データ変換装置に用いる置換DBの記憶内容を示す説明図である。 この発明の実施の形態1にかかる設計データ変換装置の機能的構成を示すブロック図である。 組み合わせ回路の共有関係を示す説明図である。 順序回路の置換例を示す説明図である。 入力ピンの置換例を示す説明図である。 出力ピンの置換例を示す説明図である。 I/F変換処理を示す模式図である。 構築部によって構築された単一モジュールを示す説明図である。 この発明の実施の形態1にかかる設計データ変換装置の設計データ変換処理手順を示すフローチャートである。 この発明の実施の形態2にかかる複数の多重化モジュールを有する設計対象システムの一例を示す説明図である。 この発明の実施の形態2にかかる構築部によって構築された設計対象システムを示す説明図である。 この発明の実施の形態3にかかる多重化設計対象システムを示す説明図である。 この発明の実施の形態3にかかる構築部によって構築された多重化設計対象システムを示す説明図である。 この発明の実施の形態3にかかる設計データ変換処理手順を示すフローチャートである。
符号の説明
100 設計データ変換装置
200 設計対象システム
600,610 設計データ
601 入力部
602 解析部
603 生成部
604 置換部
605 構築部
606 出力部

Claims (8)

  1. 同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
    モジュールごとに種別およびタイプを記憶するライブラリを参照して、前記入力工程によって入力された設計データを解析することにより、前記複数のモジュールが同種かつ同一タイプであることを特定させる解析工程と、
    前記解析工程によって解析された解析結果に基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換させる置換工程と、
    前記置換工程によって置換された多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成させる生成工程と、
    前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築させる構築工程と、
    前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
    をコンピュータに実行させることを特徴とする設計データ変換プログラム。
  2. 前記置換工程は、
    さらに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換させ、
    前記生成工程は、
    前記置換工程によって置換された多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを時分割動作させる制御回路を生成させ、
    前記構築工程は、
    前記一の組み合わせ回路と、前記多重化回路と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる単一モジュールを構築させることを特徴とする請求項1に記載の設計データ変換プログラム。
  3. 前記入力工程により、前記設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データの入力が受け付けられた場合、前記置換工程、前記生成工程、前記構築工程、および前記出力工程を前記設計対象システムの個数分繰り返し実行することにより、前記構築工程によって構築された単一モジュールを有する設計対象システムが複数個並列動作する多重化設計対象システムに関する設計データを出力させることを特徴とする請求項1または2に記載の設計データ変換プログラム。
  4. 同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールが前記タイプごとに複数存在する設計対象システムに関する設計データの入力を受け付けさせる入力工程と、
    モジュールごとに種別およびタイプを記憶するライブラリを参照して、前記入力工程によって入力された設計データを解析することにより、前記複数のモジュールが同種かつ同一タイプであることを特定させる解析工程と、
    前記解析工程によって解析された解析結果に基づいて、前記タイプごとに存在する複数の多重化モジュールの各モジュール個数のうち最大モジュール個数を検出させる検出工程と、
    前記解析工程によって解析された解析結果に基づいて、前記多重化モジュールごとに、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換させる置換工程と、
    前記置換工程によって置換された多重化回路により多重化された前記共通の順序回路素子群を前記検出工程によって検出された最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させる生成工程と、
    前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させる構築工程と、
    前記構築工程によって構築された複合モジュールを有する設計対象システムに関する設計データを出力させる出力工程と、
    をコンピュータに実行させることを特徴とする設計データ変換プログラム。
  5. 前記置換工程は、
    さらに、前記多重化モジュールごとに、前記各モジュールに存在する入力ピン群を、前記各モジュールへの入力を前記一の組み合わせ回路に選択出力する入力I/Fに置換させるとともに、前記各モジュールに存在する出力ピン群を、前記一の組み合わせ回路からの出力を前記複数のモジュールを選択出力する出力I/Fに置換させ、
    前記生成工程は、
    前記置換工程によって置換された多重化回路により多重化された前記共通の順序回路素子群と前記入力I/Fと前記出力I/Fとを前記最大モジュール個数で時分割動作させる前記複数の多重化モジュールに共通の制御回路を生成させ、
    前記構築工程は、
    前記一の組み合わせ回路と、前記多重化回路と、前記入力I/Fと、前記出力I/Fと、前記制御回路と、からなる前記多重化モジュールごとの単一モジュールと、前記生成工程によって生成された共通の制御回路と、からなる複合モジュールを構築させることを特徴とする請求項4に記載の設計データ変換プログラム。
  6. 請求項1〜5のいずれか一つに記載の設計データ変換プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
  7. 同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力手段と、
    モジュールごとに種別およびタイプを記憶するライブラリを参照して、前記入力手段によって入力された設計データを解析することにより、前記複数のモジュールが同種かつ同一タイプであることを特定する解析手段と、
    前記解析手段によって解析された解析結果に基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換する置換手段と、
    前記置換手段によって置換された多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成手段と、
    前記入力手段によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換手段によって置換された多重化回路と、前記生成手段によって生成された制御回路と、からなる単一モジュールを構築する構築手段と、
    前記構築手段によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力手段と、
    を備えることを特徴とする設計データ変換装置。
  8. 入力手段、解析手段、置換手段、生成手段、構築手段、および出力手段を備えるコンピュータが、
    前記入力手段により、同種かつ同一タイプの複数のモジュールが並列動作する多重化モジュールを有する設計対象システムに関する設計データの入力を受け付ける入力工程と、
    前記解析手段により、モジュールごとに種別およびタイプを記憶するライブラリを参照して、前記入力工程によって入力された設計データを解析することにより、前記複数のモジュールが同種かつ同一タイプであることを特定する解析工程と、
    前記置換手段により、前記解析工程によって解析された解析結果に基づいて、前記各モジュールに存在する複数の順序回路を、当該複数の順序回路のそれぞれに存在する共通の順序回路素子群を多重化した多重化回路に置換する置換工程と、
    前記生成手段により、前記置換工程によって置換された多重化回路により多重化された前記共通の順序回路素子群を時分割動作させる制御回路を生成する生成工程と、
    前記構築手段により、前記入力工程によって入力された設計データに基づいて、前記各モジュールに存在する複数の組み合わせ回路の中から選ばれた一の組み合わせ回路と、前記置換工程によって置換された多重化回路と、前記生成工程によって生成された制御回路と、からなる単一モジュールを構築する構築工程と、
    前記出力手段により、前記構築工程によって構築された単一モジュールを有する設計対象システムに関する設計データを出力する出力工程と、
    実行することを特徴とする設計データ変換方法。
JP2007090701A 2007-03-30 2007-03-30 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法 Expired - Fee Related JP4403187B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007090701A JP4403187B2 (ja) 2007-03-30 2007-03-30 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法
US12/076,551 US7966590B2 (en) 2007-03-30 2008-03-19 Circuit design data conversion apparatus, circuit design data conversion method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007090701A JP4403187B2 (ja) 2007-03-30 2007-03-30 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法

Publications (2)

Publication Number Publication Date
JP2008250644A JP2008250644A (ja) 2008-10-16
JP4403187B2 true JP4403187B2 (ja) 2010-01-20

Family

ID=39975520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007090701A Expired - Fee Related JP4403187B2 (ja) 2007-03-30 2007-03-30 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法

Country Status (2)

Country Link
US (1) US7966590B2 (ja)
JP (1) JP4403187B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5056511B2 (ja) 2008-03-17 2012-10-24 富士通株式会社 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US8042075B2 (en) * 2009-03-25 2011-10-18 International Business Machines Corporation Method, system and application for sequential cofactor-based analysis of netlists
JP5471841B2 (ja) * 2010-05-28 2014-04-16 富士通株式会社 検証支援プログラム、論理検証装置、および検証支援方法
KR102251809B1 (ko) * 2014-05-28 2021-05-13 삼성전자주식회사 메모리 시스템, 메모리 인터페이스 장치 및 메모리 시스템에서의 인터페이싱 방법
JP7045921B2 (ja) * 2018-04-27 2022-04-01 株式会社日立製作所 半導体lsi設計装置および設計方法
EP3764235B1 (en) * 2019-07-12 2022-10-26 Ratier-Figeac SAS Field programmable gate array (fpga) having dissimilar cores

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3131098B2 (ja) 1993-07-07 2001-01-31 富士通株式会社 シミュレータ
JPH0830646A (ja) 1994-07-12 1996-02-02 Toshiba Corp 論理回路シミュレーションの並列処理方法
US6697957B1 (en) * 2000-05-11 2004-02-24 Quickturn Design Systems, Inc. Emulation circuit with a hold time algorithm, logic analyzer and shadow memory
JP3792129B2 (ja) * 2001-03-01 2006-07-05 新光電気工業株式会社 キャパシタ、キャパシタ内蔵回路基板及びそれらの製造方法

Also Published As

Publication number Publication date
JP2008250644A (ja) 2008-10-16
US7966590B2 (en) 2011-06-21
US20080312881A1 (en) 2008-12-18

Similar Documents

Publication Publication Date Title
JP4988758B2 (ja) マルチサイクル・クロック・ゲーティングのための方法および装置
US7934179B2 (en) Systems and methods for logic verification
US8065647B2 (en) Method and system for asynchronous chip design
JP5045961B2 (ja) 同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法
Carloni et al. Performance analysis and optimization of latency insensitive systems
JP4403187B2 (ja) 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法
JP5321589B2 (ja) 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム
US11755797B2 (en) System and method for predicting performance, power and area behavior of soft IP components in integrated circuit design
JP2004054755A (ja) システムレベル設計方法及びシステムレベル設計装置
JP5056511B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
Lanneer et al. Architectural synthesis for medium and high throughput signal processing with the new CATHEDRAL environment
JP2008299464A (ja) 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
Folmer et al. High-level synthesis of digital circuits from template haskell and sdf-ap
US8176451B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, and computer readable recording medium
JP2003067438A (ja) シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体
Holeček et al. Verification results in Liberouter project
US8539415B2 (en) Reconfigurable circuit, its design method, and design apparatus
JP2009140028A (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
Akpan An FPGA realization of integrated embedded multi-processors system: A hardware-software co-design approach
Madorsky et al. VPP-a Verilog HDL simulation and generation library for C++
Du et al. A Block Assembly Tool for Design Automation of FPGA Implementations
CN116911219A (zh) 用于逻辑系统设计的仿真的方法、电子设备和存储介质
JP2006146332A (ja) データ処理システム検証装置と方法およびプログラム
JP2010039678A (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP3678656B2 (ja) インタフェース回路、論理回路検証方法、論理装置、情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090907

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121106

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121106

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131106

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees