JP2004054755A - システムレベル設計方法及びシステムレベル設計装置 - Google Patents

システムレベル設計方法及びシステムレベル設計装置 Download PDF

Info

Publication number
JP2004054755A
JP2004054755A JP2002213895A JP2002213895A JP2004054755A JP 2004054755 A JP2004054755 A JP 2004054755A JP 2002213895 A JP2002213895 A JP 2002213895A JP 2002213895 A JP2002213895 A JP 2002213895A JP 2004054755 A JP2004054755 A JP 2004054755A
Authority
JP
Japan
Prior art keywords
description
algorithm
information
level
clock
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.)
Withdrawn
Application number
JP2002213895A
Other languages
English (en)
Inventor
Koichi Sato
佐藤 光一
Hiroshi Shibuya
澁谷 洋志
Hitoshi Kurosaka
黒坂 均
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2002213895A priority Critical patent/JP2004054755A/ja
Priority to US10/623,855 priority patent/US20050034090A1/en
Publication of JP2004054755A publication Critical patent/JP2004054755A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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)

Abstract

【課題】クロックベースシミュレーション用の記述を自動的に生成すること。
【解決手段】本発明にかかるシステムレベル設計方法は、コデザイン装置5によってシステムのハードウェア部分とソフトウェア部分を分割するとともに、アーキテクチャ情報、マッピング情報及びアドレス情報を含むデータベースを自動生成する。その後、トップレベル記述生成装置9にこのデータベースよりアーキテクチャ情報、マッピング情報及びアドレス情報を含む情報を入力する。さらに、トップレベル記述生成装置9は、入力された情報に基づいてクロックベースシミュレーション用の記述を自動生成する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、大規模回路を設計するためのシステムレベル設計方法及びシステムレベル設計装置に関する。
【0002】
【従来の技術】
近年、ASIC、CPU、メモリ等から構成される複合演算処理システムの開発に対する要求が高まっている。このようなシステムを設計する場合、システム全体の処理動作を記述したアルゴリズムを人手により作成し、まず、このアルゴリズムに対して検証を行う。そして、アルゴリズムをASIC等のハードウェアにより実現する部分と、ソフトウェアにより実現する部分へ分割する。その後、ハードウェア部分についてはRTL HDL記述を作成し、ソフトウェア部分についてはCPUモデルを作成する。さらに、トップレベルHDL記述を作成した上で、これらのHDL記述及びCPUモデルに基づきRTL HDLコシミュレーション装置によって、シミュレーションが行われる。
【0003】
他方、アルゴリズム記述のシミュレーションよりも精細に、かつRTL HDL記述より高速にシミュレーションすることができるシミュレーションモデルを構築するために、クロックベースシミュレーション技術が提案されている。例えば、特開2001−109788号公報や「SOCの事前検証を実現するC++シミュレータ」(黒川秀文著、信学技報VLH98−46)に、このクロックベースシミュレーション技術が開示されている。このクロックベースシミュレーションでは、クロックベース記述に基づき、シミュレーションが実行される。クロックベース記述は、アルゴリズムレベルより抽象度が低く、RTL HDL記述よりも抽象度が高い。このクロックベース記述においては、バスが抽象化されており、バスへのアクセスが統一化されている。そして、バス・マスタのターゲットに対するアクセスは抽象的なバス・クラスを介して行われる。
【0004】
【発明が解決しようとする課題】
従来のシステムレベル設計方法では、人手によって設計する部分が多く、労力を要し、かつ短期間で設計を行うという要請に応えることは困難であった。特に、クロックベースシミュレーション用記述の自動生成は実現されていない。
【0005】
本発明は、このような問題を解決するためになされたものであり、クロックベースシミュレーション用の記述を自動的に生成することができるシステムレベル設計方法及び装置を提供することを目的とする。
さらに、アルゴリズムレベル記述をコデザイン用のアルゴリズムレベル記述に変更する際に、回路規模を縮小することが可能なシステムレベル設計方法及び方法を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明にかかるシステムレベル設計方法は、コデザイン装置によってシステムのハードウェア部分とソフトウェア部分を分割するとともに、ビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含むデータベースを自動生成するステップと、前記データベースよりビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含む情報をトップレベル記述生成装置に入力するステップと、前記トップレベル記述生成装置において入力された情報に基づいてクロックベースシミュレーション用の記述を自動生成するステップとを備えたものである。このような方法により、クロックベースシミュレーション用の記述を自動的に生成することができる。
【0007】
ここで、クロックベースシミュレーション用の記述を自動生成するステップは、前記アドレス情報に基づき、バスとCPUインターフェース間にあるアルゴリズムブロックの選択のためのアドレスデコーダに相当する記述を自動生成するステップを含むことが望ましい。
【0008】
また、クロックベースシミュレーション用の記述を自動生成するステップにおいては、仮想バスによりバス接続の記述が行われていることが好ましい。
【0009】
さらに、システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換するステップを備え、このステップは、アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出するステップと、検出された場合に当該グローバル変数をポートに置き換えるステップを有するとよい。このような方法により回路規模を縮小できる。
【0010】
本発明にかかる他のシステムレベル設計方法は、システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換するシステムレベル設計方法であって、アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出するステップと、検出された場合に当該グローバル変数をポートに置き換えるステップを備えたものである。このような方法により回路規模の縮小と、メモリを介する転送でないため高速処理が期待できる。
【0011】
他方、本発明にかかるシステムレベル設計装置は、システムのハードウェア部分とソフトウェア部分を分割するとともに、ビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含むデータベースを自動生成するコデザイン装置と、前記データベースよりビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含む情報を入力し、入力した情報に基づいてクロックベースシミュレーション用の記述を自動生成するトップレベル記述生成装置を備えたものである。このような構成により、クロックベースシミュレーション用の記述を自動的に生成することができる。
【0012】
ここで、前記トップレベル記述生成装置は、クロックベースシミュレーション用記述を自動生成する場合に、前記アドレス情報に基づき、バスとCPUインターフェース間にあるアルゴリズムブロックの選択のためのアドレスデコーダに相当する記述を自動生成する。
【0013】
また、トップレベル記述生成装置は、仮想バスによりバス接続の記述を行うとよい。
【0014】
さらに、システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換する手段を備え、この手段は、アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出する手段と、検出された場合に当該グローバル変数をポートに置き換える手段とを有するようにするとよい。このような構成により回路規模の縮小と、メモリを介する転送でないため高速処理が期待できる。
【0015】
本発明にかかる他のシステムレベル設計装置は、システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換するシステムレベル設計装置であって、アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出する手段と、検出された場合に当該グローバル変数をポートに置き換える手段を備えたものである。このような構成により回路規模を縮小できる。
【0016】
【発明の実施の形態】
本発明にかかるシステムレベル設計装置の構成を図1に示す。
図1に示されるように、当該システムレベル設計装置は、アルゴリズム記述1を検証するシステムレベルアルゴリズム検証装置2を備えている。このシステムレベルアルゴリズム検証装置2は、アルゴリズム記述1をシステムレベルアルゴリズム検証ツールにより検証する。一般にアルゴリズム記述は、プログラミング言語であるC言語やC++言語によって表現される。システムレベルアルゴリズム検証ツールは、例えば、ケーデンス社のSPWやシノプシス社のCOSSAP等のツールである。
【0017】
アルゴリズム検証装置2におけるアルゴリズム記述1の例を、図2(a)に示す。図2(a)において、B1乃至B7のそれぞれが、アルゴリズム記述をしたブロックである。また、a、b、c、dがグローバル変数を示している。ブロックB1の信号は、ブロックB2に入力されている。ブロックB2は、グローバル変数a及びbを参照するとともに、グローバル変数b、c及びdに対して代入している。また、ブロックB2は、ブロックB3及びB4へ信号を出力している。ブロックB3は、グローバル変数bに対して代入し、かつブロックB5に信号を出力している。ブロックB5は、グローバル変数c、dを参照するとともに、グローバル変数a、bに対して代入している。また、ブロックB5は、信号をブロックB6に出力している。ブロックB4は、信号をブロックB7に出力している。このように、アルゴリズム検証装置2におけるアルゴリズム記述1では、一部の信号だけが各アルゴリズムのポートとして表現され、殆どの通信データは、グローバル変数で表現することができる。一部の信号は、大抵ブロックが終了して次のブロックを起動するためのトリガとなる。
【0018】
本発明にかかるシステムレベル設計装置は、さらにアルゴリズム記述1を、ハードウェア(HW)とソフトウェア(SW)に分割しやすいようなコデザイン用アルゴリズム記述4に変換するコデザイン用アルゴリズム変換装置3を備えている。このコデザイン用アルゴリズム変換装置3は、上述のシステムレベルアルゴリズム検証装置2によってアルゴリズム上問題がないことが確認できた後に処理を開始する。
【0019】
コデザイン用アルゴリズム変換装置3により生成された、HWとSWに分割しやすいようなコデザイン用アルゴリズム記述4は、コデザイン装置5に対して入力される。コデザイン装置5は、HW/SW分割装置7を有する。このHW/SW分割装置7は、アルゴリズム記述をしたブロックのどれをHWとして表現し、どれをSWとして表現するか等を検討しながら、アーキテクチャを決定する。即ち、HW/SW分割装置7は、HWとSWを分割する。ここで、HWは例えばASICにより構成され、SWはCPU上に構成される。コデザイン装置5は、さらに性能シミュレーション装置8を備えている。この性能シミュレーション装置8は、指定するアーキテクチャによって目的の性能が得られるかを検証するために、性能シミュレーションを実行する。
【0020】
具体的には、性能シミュレーション装置8は、性能シミュレーションのために、まずアーキテクチャダイアグラムを用意する。アーキテクチャダイアグラムは、アーキテクチャインスタンスとして、CPU、ASIC、RTOS、MEMORY、BUSモデル等を使用してアーキテクチャの全体構成を表現したものである。性能シミュレーション装置8は、アーキテクチャインスタンス上で動作させるアルゴリズムを変えながら、遅延を考慮したシミュレーション、即ち性能シミュレーションを実行し、目的の性能としてふさわしいアーキテクチャか判断する。
【0021】
コデザイン装置5で使用するアルゴリズムは、システムレベルアルゴリズム検証装置2において用いた記述から不必要なグローバル変数を除去して、関数の引数、即ちアルゴリズムのポートとしたものである。このような処理は、具体的には、コデザイン用アルゴリズム変換装置3において実行される。アルゴリズムがアーキテクチャの中で1つのブロックで表現されるとき、関数のような表現をとっており、グローバル変数を引数にしておけば、それをポートとして扱う。例えば、図2(a)で示されるような記述は、図2(b)で示されるような記述に変更する。このようにポートで表現することによりアルゴリズム間の記憶素子を削減でき、回路規模を小さくすることができる。本発明にかかるシステムレベル設計装置は、このようにグローバル変数を除去する処理に1つの特徴を有する。その処理の具体的な説明については、後に詳述する。
【0022】
コデザイン装置5においてアーキテクチャの決定が終了すると、そのデータは、トップレベル記述生成装置9、HW部生成装置14及びSW部生成装置21に渡る。このデータには、ビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報が含まれる。
【0023】
トップレベル記述生成装置9は、HWとSWの両方を含むアーキテクチャ全体を表現するトップレベル記述を生成する。トップレベル記述生成装置9は、トップHDL生成装置10とクロックベース記述生成装置12を備えている。
【0024】
トップHDL生成装置10は、コデザイン装置5によって決定されたアーキテクチャ情報等の情報に基づき、後述するRTL HDLコシュミレーション装置26へのトップレベル記述11を生成する。
【0025】
クロックベース記述生成装置12は、コデザイン装置5によって決定されたアーキテクチャ情報等の情報に基づき、後述するクロックベースシミュレーション装置25へのトップレベル記述13を生成する。
【0026】
HW部生成装置14は、インターフェース合成装置15、動作合成装置18を備えている。このインターフェース合成装置15は、コデザイン装置5によって決定されたアーキテクチャ情報に基づき、アーキテクチャのHW部記述生成を行い、HW部のアルゴリズム記述16を生成する。さらに、インターフェース合成装置15は、HW部とBUSをつなぐインターフェース記述を合成し、インタフェース記述17を生成する。動作合成装置18は、HW部のアルゴリズム記述16とインタフェース記述17に基づいて、後述するRTL HDLコシュミレーション装置へのRTL HDL記述19を生成する。また、動作合成装置18は、HW部のアルゴリズム記述16とインターフェース記述17に基づいて、後述するクロックベースシミュレーション装置25へのクロックベース記述20を生成する。
【0027】
SW部生成装置21は、ソフトウェア合成装置22を備えている。このソフトウェア合成装置22は、コデザイン装置5によって決定されたビヘイビア情報、アーキテクチャ情報、マッピング情報等の情報に基づき、RTL HDLコシミュレーション装置26において動作できるCPUモデル23を生成する。また、ソフトウェア合成装置22は、コデザイン装置5によって決定されたビヘイビア情報、アーキテクチャ情報、マッピング情報等の情報に基づき、クロックベースシミュレーション装置25において動作できるCPUモデル24も生成する。
【0028】
トップレベル記述生成装置9によって生成されたHDL記述11、HW部生成装置14によって生成されたRTL HDL19及びSW部生成装置21によって生成されたCPUモデル23は、RTL HDLコシミュレーション装置26に入力される。RTL HDLコシミュレーション装置26は、RTL HDL記述レベルにおいて、全体的なシミュレーションを実行する。
【0029】
トップレベル記述生成装置9によって生成されたクロックベース記述13、HW部生成装置14によって生成されたクロックベース記述20及びSW部生成装置21によって生成されたCPUモデル24は、クロックベースシミュレーション装置25に入力される。クロックベースシミュレーション装置25は、クロックベース記述レベルにおいて、全体的なシミュレーションを実行する。ここで、クロックベース記述は、RTL HDL記述より上位レベルであり、アルゴリズム記述より下位レベルの記述である。そのため、クロックベースシミュレーション装置25は、RTL HDLコシミュレーション装置26によって実行されるHDLコシミュレーションよりも高速なシミュレーションを実行することができる。そのアルゴリズムの内容によるが、クロックベース記述のシミュレーション時間は、RTL HDL記述のシミュレーション時間の概ね500分の1である。
【0030】
クロックベースシミュレーションでは、例えば、次のような項目の見積もり及び検証を行うことができる。
(1)各モジュールのクロックベースの動作タイミング検証
(2)各モジュールのインターフェースの概略検証(IOレジスタ、IOメモリ、IO端子の構成、名称、ビット幅等)
(3)各モジュール、バスの動作クロックの周波数見積もり
(4)キャッシュアクセスの見積もり(キャッシュヒット率、アクセス率、ライトバック回数等)
(5)アクセスの見積もり(バスの占有率、バスのトランザクションごとのAdrs、Data、Master、Slave、Read/Write、Command、語数、占有時間等)
(6)Bus、Arbiterのアルゴリズムの検証
(7)メモリ/IFのトラフィックの見積もり
(8)データ処理のスループットの見積もり(モジュール毎、バス毎、システム全体)
(9)バッファ、スタックサイズの見積もり
(10)画質、音質の見積もり
(11)アドレスマップ、端子、bit幅等モジュール間接続I/Fの整合性の検証
(12)浮動小数点を固定小数点に変換した場合の見積もり
(13)組み込みソフトウエアの開発、デバッグ
(14)消費電力の概略見積もり
【0031】
また、クロックベース記述のシミュレーションは、RTL HDL記述のシミュレーションに比べて、幾つかのシミュレーションが省略されること等によってそのシミュレーション時間を高速化することができる。例えば、RTL HDL記述は、クロック信号の変化に応じてレジスタ値は新しいデータ入力値又はそのレジスタが保持していた値に常に更新されるようになるが、クロックベース記述では新しいデータ入力があった変数のみが更新される。また、RTL HDLモデルは、演算器の共有が行われるため、入力となる複数のレジスタから1つのレジスタを選択するマルチプレクサが必要であるが、クロックベース記述では演算器に制限がなく、演算器の入力を選択するマルチプレクサ及び制御入力を作成する回路が不要である。さらに、また、RTL HDL記述は、全レジスタに非同期リセット信号が必要だが、クロックベース記述ではクロック周期単位の動作のみを扱うので、非同期的な動作を行う必要がない。また、RTL HDL記述は、レジスタ、マルチプレクサ、演算器等のサブモジュールを利用した構造を持ち、そのサブモジュールは端子を持ち、その内部には信号線、制御機構等も持っているが、クロックベース記述では、レジスタはプログラミング言語の変数に、マルチプレクサは条件文に、演算器は演算子で表現される。また、RTL HDL記述は、実際のハードウエア通りに束線のビット位置の昇降順、符号のありなし、整数型/ビットベクタ型等の信号型の区別、又は、これらの間の変換を厳密に表現する必要があるが、このような区別は、クロックベース記述では厳密に行われない。さらに、RTL HDL記述内にある各サブモジュール間の動作の並列性は厳密に表現されるが、クロックベース記述では各サブモジュールの厳密な動作タイミングの差に基づいた検証は行われないため、並列性を厳密に表現する必要がない。また、RTL HDL記述は、クロックの変化タイミング以外にも例えばリセット信号が変化した時点の動作を厳密に表現するが、クロックベース記述ではクロック単位の動作のみを扱うので、非同期的な動作に対する処理を簡略化することができる。
【0032】
以上説明したようなシステムレベル設計装置により、システムレベルアルゴリズム記述から、アーキテクチャを決定してクロックベースレベルでの検証まで行う設計フローを実現する。
【0033】
続いて、本発明にかかるシステムレベル設計装置の特徴的な構成及び処理について詳述する。
【0034】
最初に、システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述への変換処理について説明する。この変換処理は、コデザイン用アルゴリズム変換装置3によって実行される。例えば、図2(a)に示すアルゴリズムは、図2(b)に示すアルゴリズムのようにできるだけグローバル変数を減らすように変換される。
【0035】
この変換処理においては、第1に、図2(a)に示すa、c、dのように一方向にしたデータが流れない場合には、単純にポートに変換する。ポートに変換した後の構成を図2(b)に示す。図2(b)に示されるように、アルゴリズムブロックB2とアルゴリズムブロックB5間にポートを設定している。ただし、図2(a)に示すbについては、複数のアルゴリズムB2、B3、B5よりアクセスされているため、ポートに変換することはできない。
【0036】
第2に、解消できないグローバル変数は、Behavioral memory(ビヘイビアレベルのメモリ)に変換する。図2(a)に示すbのようにいたるところからアクセスされる場合、グローバル変数をメモリのような記憶素子で表現する。このような場合、回路はメモリで表現されるのが一般的である。複数のモジュールから一つの変数を書き込んでいき、あるタイミングで複数のモジュールから変数値の読み込みができる。
【0037】
グローバル変数を減らす処理を行わずにコデザイン装置5のHW/SW分割装置7によってHW部とSW部の分割処理を行った後のアーキテクチャを図3に示す。この構成は、図2(a)に相当するものであり、グローバル変数a、b、c、dがそれぞれメモリ39、33、40、41として表されている。図3においては、HW部30とSW部31にアルゴリズムがマッピングされている。HW部30では、書き込み手段34及び読み込み手段35を介して、バス32とB2インターフェース36、B4インタフェース37及びB5インタフェース38が接続されている。B2インターフェース36、B4インタフェース37及びB5インタフェース38は、インターフェース合成により自動生成され、それぞれ、アルゴリズムブロックB2、B4、B5と接続されている。SW部31には、アルゴリズムブロックB1、B3、B6、B7がマッピングされている。また、バス32には、直接、グローバル変数bに相当する外部メモリが接続されている。
【0038】
図4にグローバル変数を減らす処理を行った場合の構成を示す。図4に示す通り、グローバル変数a、c、dに相当するメモリは削除され、ポートに変換されている。そのため、図3に示すグローバル変数を減らす処理を行う前に比べて、メモリa、c、d分だけ回路規模を小さくすることができる。
【0039】
次に、グローバル変数削除処理のアルゴリズムの一例を説明する。図6に、記述例を示す。図6(a)は、図2(a)に示すアルゴリズムブロックB2、B3、B5を表現する記述である。まず、図6(a)の記述を解析し、グローバル変数のreadを使用しているか、writeを使用しているかを調査する。調査結果が図6(b)である。次に、図6(b)におけるread、writeの数の総計を計算する。グローバル変数のread、writeの数がそれぞれ1以下の場合は、ポートに変換し、グローバル変数は削除できる。この例では、a、c、dがその変数に相当し、削除することができる。削除できずに残ったグローバル変数bは、そのままの状態が維持される。最終的に、関数は、図6(c)に示す記述のように変換される。
【0040】
続いて、コデザイン装置5からクロックベースシミュレーション装置25へ接続するためのクロックベース記述生成装置12の処理について詳述する。
【0041】
まず、コデザイン装置5では、性能シミュレーションによる性能見積りを行いながらアーキテクチャ決定を行う。ここでは、Cadence社製のVCC(Virtual Component Codesign)の機能を前提に記述する。次にこのアルゴリズムを動作させるアーキテクチャモデル(アーキテクチャダイアグラム)を用意する。アーキテクチャはコデザイン装置上でキャラクタライズされた、プロセッサやバス等の様々なアーキテクチャコンポーネントを配置、結線して表現する。
【0042】
次にマッピングを行う。アルゴリズムの各ブロックをアーキテクチャのどのコンポーネントで実行するか、アルゴリズムのデータの流れがアーキテクチャのどのインターフェースを流れるのかをGUI等を通して、線で結んでマッピングする。
【0043】
通信経路の決定にはパタンを使用する方法もある。パタンは、アルゴリズムブロック間のデータ転送に関するプロトコルを表す。HW→SW間の通信であれば、CPU I/Fに相当するメモリマップIOのアドレス情報なども有する。
【0044】
マッピングした後、個々のアーキテクチャコンポーネントに定義された遅延値がアルゴリズムにアノテートされ、シミュレーションを行うことにより、そのアルゴリズムがそのアーキテクチャにマッピングされたときの性能を検証できる。
【0045】
クロックベース記述生成装置12は、このようにして生成されたコデザイン装置5の情報を用いて、トップレベルクロックベース記述13を作成する。
【0046】
次に、クロックベース記述生成装置12によりトップレベルクロックベース記述13の作成につき説明する。トップレベルクロックベース記述13は、次のようなフォーマットを有する。
インスタンス宣言;
Initialization処理;
Reset処理;
Step処理;
busread処理;
buswrite処理;
ブロック間の直接接続宣言;
【0047】
このようなフォーマットの記述をクロックベース生成装置12によって自動生成している。以下にそれぞれのフォーマットの生成につき説明する。
【0048】
最初にインスタンス宣言の生成について説明する。トップレベルクロック記述におけるインスタンス宣言は、コデザイン装置5により生成されたマッピング情報から、アーキテクチャインスタンス、アルゴリズムインスタンス(ビヘイビアインスタンス)を取得することにより生成する。ここで出力するインスタンス宣言の対象は、プロセッサ、バスなどの既存アーキテクチャインスタンス、ASICにマッピングされたアルゴリズム、ASICにマッピングされたアルゴリズムのCPUインターフェースである。コデザイン装置5におけるマッピングが図5に示すような構成を有する場合において、クロックベース生成装置12は、図4に示すような構成のトップレベル記述を生成する。
【0049】
ここで、アーキテクチャダイアグラム中に存在するインスタンスから作成されるインスタンス宣言例を以下に示す。
【0050】
バスの場合には、次のようなインスタンス宣言となる。
BUS Bus_1(”Bus1”, arbitor_1, busread_1, buswrite_1);
int arbitor_1(void);
RDATA busread_1(int add, int byte_count);
int buswrite_1(int add, int data, int byte_count);
バスのインスタンス自体はBUS bus_1のように宣言し、arbitorの宣言も同時に出力する。arbitor_1の内容については適当なものを自動生成し、ユーザが変更したい場合、あとで本トップレベル記述を編集する。同時にbusread_1、buswrite_1といった関数宣言をする。これは図8、図9に示す記述のうち、busread_1、buswrite_1と記述したブロックに相当し、バスとASIC中のアルゴリズムのCPU I/Fを結ぶ関数である。具体的には、メモリマップ方式におけるビヘイビア選択のためのアドレスがここに設定される。
【0051】
プロセッサの場合には、次のようなインスタンス宣言となる。
CPU cpu_1(”cpu_1”,&cpu_1_busif,0,0x10000,0x00ffe000,0x1000,0x8000);
BusIntf cpu_1_busif(”cpu 1 Bus I/F”,&bus_1,1)
このようにしてCPUコアの設定及びCPU用バスの設定を行う。数字は、ROM、RAMのスタートアドレスに相当するが、本データに関してはコデザイン装置で扱っていない場合、未設定で出力し、ユーザが後に設定する。
【0052】
外部ROM、RAMの場合には、次のようなインスタンス宣言となる。
SDRAM ExtSDRam1(”External SDRam 1” , EXTSDRAM1_START_ADD ,EXTSDRAM1_SIZE)
コデザイン装置5におけるメモリのアーキテクチャインスタンスがこの宣言に変換される。
【0053】
ASICにマッピングされたアルゴリズム、CPU I/Fは以下のような宣言で作成する。
c_cpuifB2 cpuifB2(); c_cpuifB4 cpuifB4(); c_cpuifB5 cpuifB5();
c_B2 funcB2(); c_B4 funcB4(); c_B5 funcB5();
ここで、c_cpuif***(***には任意の関数名が入る)はそれぞれのcpuifを表現するclassである。また、c_B**(**には任意のアルゴリズムの番号が入る)はそれぞれのalgorithmを表現するclassである。これらのclassや実体はHW部生成装置14で作成されるクロックベース記述である。
【0054】
次にInitialization処理、Reset処理及びStep処理の生成について説明する。アルゴリズム記述は動作合成によってクロックベース記述に合成される。クロックベース記述は、init()、reset()、OneStep()等の構成要素をもつ。init()は、対応するアルゴリズムブロックを最初に初期化するときに使用する。reset()は、対応するアルゴリズムブロックがリセットされた場合の内部変数の初期設定を行う。OneStep()は、アルゴリズムブロックに対してクロックが入った場合の1クロック分の処理を記述する。このOneStep()は、アルゴリズム記述の中核となる関数である。以上のようなブロックを並列に動作させる場合、以下のように使用する。

funcB2.OneStep(); cpuifB2.OneStep();
funcB4.OneStep(); cpuifB4.OneStep();
funcB5.OneStep(); cpuifB5.OneStep();

この記述は、B2、B4、B5のアルゴリズムブロックが並列動作することを意味する。初期化、リセットも同様に次のような記述がされる。
systemInit()

funcB2.Init(); cpuifB2. Int();
funcB4.Init(); cpuifB4. Int();
funcB5.Init(); cpuifB5. Int();

systemReset()

funcB2.Reset(); cpuifB2. Reset();
funcB4.Reset(); cpuifB4. Reset();
funcB5.Reset(); cpuifB5. Reset();

【0055】
次にbusread処理及びbuswrite処理の生成について説明する。busread及びbuswriteは、コデザイン装置5によって生成されるマッピング情報よりアドレス情報を取得することによって作成される。busread及びbuswriteは、バスとCPU I/Fの間にあるアルゴリズムデコーダに相当する。cpuifとbusread、buswriteとの関係は図8及び図9のように表すことができる。図中にあるCPU I/Fはインターフェース合成及び動作合成により作成される。インターフェース合成により入力記述は、特開2001−117855号公報に示される手法により使用するものを前提としている。また、アルゴリズム部はアルゴリズム記述から動作合成によって作成されるクロックベース記述である。このように、本発明にかかるシステムレベル設計方法では、コデザイン装置5によって生成されるマッピング情報よりアドレス情報を取得することによってbusread及びbuswriteを作成している点に特徴を有する。HDL記述においては、バス構造、バスの使用方法に応じたピンを指定しなければならかったため、この処理を自動化することは困難であった。これに対して、クロックベース記述は、仮想バスに指定すればよく、ピン情報を詳細に設定する必要がないため、アドレス情報に基づきbusread及びbuswriteを自動的に作成することができる。また、通常は、バスとCPU I/Fの間を直接的に関連付けているが、本発明にかかるシステムレベル設計方法では、busread及びbuswriteというアドレスデコーダに相当する記述を設けており、この点にも特徴を有する。
【0056】
続いて、ブロック間の直接接続宣言の生成について説明する。
図10に示すアルゴリズムブロックB2とB5の間の直接接続記述は以下のように作成される。
connection()

B5.a = B2.a;
B5.b = B2.b;
B5.c = B2.c;

ここでは説明を省くが、CPU I/Fとアルゴリズムブロック間の直結にも直接接続は使用される。
【0057】
ここで、トップレベルHDL記述とトップレベルクロックベース記述の違いについて詳述する。
基本的に両者が大きく異なる点は、バス接続の記述方法である。クロックベース記述の場合、cpuifのReadIOReg(), WriteIOReg()でCPU I/Fとのデータのやり取りを行い、RDATAという構造体でbusにデータを渡す。
HDL記述の場合、図11に示すようにバスと物理的なピンで接続するモデルとなっている。バスが変更されるとピン情報が変わり、接続の仕方もその都度変えなければならない。また、詳細なプロトコルを表現することも可能である。
クロックベース記述の場合、RDATAという構造体でデータを渡すため、図10に示すように、バスの物理的な構造によらずにデータのやり取りを表現する。細かいバスプロトコルを考慮できないため、バスの使用の仕方によっては、RTLHDL程の正確な遅延見積りがこの部分で行なえないかもしれない。ユーザはその点を考慮にいれて使用する必要がある。
【0058】
このように本発明にかかるシステムレベル設計方法では、アルゴリズム記述中における冗長なグローバル変数表現をポート表現に変換することで、回路規模の縮小を図ることができる。また、コデザイン装置における記述からクロックベースシミュレーション装置用のクロックベース記述に自動変換している。特に本発明では、従来自動合成していなかったトップレベルクロックベース記述を自動合成することで、クロックベースシミュレーションを行なうための環境構築期間の短縮化を図ることができる。
【0059】
【発明の効果】
本発明によれば、クロックベースシミュレーション用の記述を自動的に生成することができるシステムレベル設計方法及び装置を提供することができる。
また、アルゴリズムレベル記述をコデザイン用のアルゴリズムレベル記述に変更する際に、回路規模を縮小することができる。その理由は、アルゴリズム記述中における冗長なグローバル変数表現をポート表現に変換しているからである。
【図面の簡単な説明】
【図1】本発明にかかるシステムレベル設計方法のフローを示す図である。
【図2】システムレベルアルゴリズムからコデザイン用システムレベルアルゴリズムへの変換を説明するための図である。
【図3】グローバル変数の変換を説明するための図である。
【図4】グローバル変数の変換とトップレベルクロックベース記述を説明するための図である。
【図5】コデザイン装置中のデータを示す図である。
【図6】グローバル変数の変換アルゴリズムを示す図である。
【図7】トップレベルクロックベース記述の一例を示す図である。
【図8】トップレベルクロックベース記述の一例を示す図である。
【図9】トップレベルクロックベース記述の一例を示す図である。
【図10】トップレベルクロックベース記述を説明するための図である。
【図11】トップレベルクロックベース記述を説明するための図である。
【符号の説明】
3 コデザイン用アルゴリズム変換装置
5 コデザイン装置
9 トップレベル記述生成装置
12 クロックベース記述生成装置
14 HW部生成装置
21 SW部生成装置
25 クロックベースシミュレーション装置
26 RTL HDLコシミュレーション装置

Claims (10)

  1. コデザイン装置によってシステムのハードウェア部分とソフトウェア部分を分割するとともに、ビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含むデータベースを自動生成するステップと、
    前記データベースよりビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含む情報をトップレベル記述生成装置に入力するステップと、
    前記トップレベル記述生成装置において入力された情報に基づいてクロックベースシミュレーション用の記述を自動生成するステップとを備えたシステムレベル設計方法。
  2. 前記クロックベースシミュレーション用の記述を自動生成するステップは、前記アドレス情報に基づき、バスとCPUインターフェース間にあるアルゴリズムブロックの選択のためのアドレスデコーダに相当する記述を自動生成するステップを含むことを特徴とする請求項1記載のシステムレベル設計方法。
  3. 前記クロックベースシミュレーション用の記述を自動生成するステップにおいては、仮想バスによりバス接続の記述が行われていることを特徴とする請求項1又は2記載のシステムレベル設計方法。
  4. システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換するステップを備え、
    このステップは、
    アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出するステップと、
    検出された場合に当該グローバル変数をポートに置き換えるステップを有することを特徴とする請求項1、2又は3記載のシステムレベル設計方法。
  5. システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換するシステムレベル設計方法であって、
    アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出するステップと、
    検出された場合に当該グローバル変数をポートに置き換えるステップを備えたシステムレベル設計方法。
  6. システムのハードウェア部分とソフトウェア部分を分割するとともに、ビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含むデータベースを自動生成するコデザイン装置と、
    前記データベースよりビヘイビア情報、アーキテクチャ情報、マッピング情報及びアドレス情報を含む情報を入力し、入力した情報に基づいてクロックベースシミュレーション用の記述を自動生成するトップレベル記述生成装置を備えたシステムレベル設計装置。
  7. 前記トップレベル記述生成装置は、クロックベースシミュレーション用記述を自動生成する場合に、前記アドレス情報に基づき、バスとCPUインターフェース間にあるアルゴリズムブロックの選択のためのアドレスデコーダに相当する記述を自動生成することを特徴とする請求項6記載のシステムレベル設計装置。
  8. 前記トップレベル記述生成装置は、仮想バスによりバス接続の記述を行うことを特徴とする請求項6又は7記載のシステムレベル設計装置。
  9. システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換する手段をさらに備え、
    この手段は、
    アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出する手段と、
    検出された場合に当該グローバル変数をポートに置き換える手段とを有することを特徴とする請求項6、7又は8記載のシステムレベル設計装置。
  10. システムレベルアルゴリズム記述からコデザイン用システムレベルアルゴリズム記述に自動変換するシステムレベル設計装置であって、
    アルゴリズムブロック間でグローバル変数を介して一方向にのみデータが流れる構成を検出する手段と、
    検出された場合に当該グローバル変数をポートに置き換える手段を備えたシステムレベル設計装置。
JP2002213895A 2002-07-23 2002-07-23 システムレベル設計方法及びシステムレベル設計装置 Withdrawn JP2004054755A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002213895A JP2004054755A (ja) 2002-07-23 2002-07-23 システムレベル設計方法及びシステムレベル設計装置
US10/623,855 US20050034090A1 (en) 2002-07-23 2003-07-22 Circuit designing method and a circuit designing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002213895A JP2004054755A (ja) 2002-07-23 2002-07-23 システムレベル設計方法及びシステムレベル設計装置

Publications (1)

Publication Number Publication Date
JP2004054755A true JP2004054755A (ja) 2004-02-19

Family

ID=31936371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002213895A Withdrawn JP2004054755A (ja) 2002-07-23 2002-07-23 システムレベル設計方法及びシステムレベル設計装置

Country Status (2)

Country Link
US (1) US20050034090A1 (ja)
JP (1) JP2004054755A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146359A (ja) * 2008-12-19 2010-07-01 Nec Corp 動作合成システム、動作合成方法、及び動作合成用プログラム
JP2013069174A (ja) * 2011-09-22 2013-04-18 Fujitsu Semiconductor Ltd 協調検証方法及び協調検証装置

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639487B1 (en) * 2003-03-25 2014-01-28 Cadence Design Systems, Inc. Method for multiple processor system-on-a-chip hardware and software cogeneration
US7185309B1 (en) 2004-01-30 2007-02-27 Xilinx, Inc. Method and apparatus for application-specific programmable memory architecture and interconnection network on a chip
US7228520B1 (en) * 2004-01-30 2007-06-05 Xilinx, Inc. Method and apparatus for a programmable interface of a soft platform on a programmable logic device
US7823162B1 (en) 2004-01-30 2010-10-26 Xilinx, Inc. Thread circuits and a broadcast channel in programmable logic
US7552042B1 (en) 2004-01-30 2009-06-23 Xilinx, Inc. Method for message processing on a programmable logic device
US7770179B1 (en) 2004-01-30 2010-08-03 Xilinx, Inc. Method and apparatus for multithreading on a programmable logic device
US20050188334A1 (en) * 2004-02-24 2005-08-25 Shah Gaurav R. Circuit design interface
US7231619B1 (en) * 2004-03-03 2007-06-12 Marvell Semiconductor Israel Ltd. Extended model checking hardware verification
DE102004014178B4 (de) * 2004-03-23 2006-04-27 Infineon Technologies Ag Rechnergestütztes, automatisiertes Verfahren zur Verifikation analoger Schaltungen
JP4599266B2 (ja) * 2005-09-27 2010-12-15 株式会社東芝 シミュレーション装置及びシミュレーション方法
JP4528728B2 (ja) * 2006-01-31 2010-08-18 株式会社東芝 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム
US8086977B2 (en) * 2006-08-18 2011-12-27 International Business Machines Corporation Design Structure for switching digital circuit clock net driver without losing clock pulses
CN102789521B (zh) * 2012-06-27 2014-10-15 北京大学深圳研究生院 集成电路流水线设计验证方法、系统及其模型实现方法
US9727673B1 (en) * 2015-10-16 2017-08-08 Netronome Systems, Inc. Simultaneous simulation of multiple blocks using efficient packet communication to emulate inter-block buses
CN105975664B (zh) * 2016-04-28 2019-01-18 福州瑞芯微电子股份有限公司 一种芯片功耗评估平台的评估方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
WO1995034036A2 (en) * 1994-06-03 1995-12-14 Synopsys, Inc. Method and apparatus for estimating the power dissipated by a digital circuit
US5880967A (en) * 1995-05-01 1999-03-09 Synopsys, Inc. Minimization of circuit delay and power through transistor sizing
US5831864A (en) * 1996-10-31 1998-11-03 Trustees Of Princeton University Design tools for high-level synthesis of a low-power data path
US6606588B1 (en) * 1997-03-14 2003-08-12 Interuniversitair Micro-Elecktronica Centrum (Imec Vzw) Design apparatus and a method for generating an implementable description of a digital system
US6125334A (en) * 1997-05-02 2000-09-26 Texas Instruments Incorporated Module-configurable full-chip power profiler
US6152612A (en) * 1997-06-09 2000-11-28 Synopsys, Inc. System and method for system level and circuit level modeling and design simulation using C++
US6115823A (en) * 1997-06-17 2000-09-05 Amphus, Inc. System and method for task performance based dynamic distributed power management in a computer system and design method therefor
US6363515B1 (en) * 1997-12-30 2002-03-26 Intel Corporation Early power estimation tool for high performance electronic system design
US6338025B1 (en) * 1998-10-08 2002-01-08 International Business Machines Corp. Data processing system and method to estimate power in mixed dynamic/static CMOS designs
JP2001109788A (ja) * 1999-10-12 2001-04-20 Nec Corp シミュレーションモデル、その生成方法、シミュレーション方法及びその記録媒体
JP2001142927A (ja) * 1999-11-16 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法,回路の消費電力解析方法及び消費電力解析装置
US6578176B1 (en) * 2000-05-12 2003-06-10 Synopsys, Inc. Method and system for genetic algorithm based power optimization for integrated circuit designs
US6816750B1 (en) * 2000-06-09 2004-11-09 Cirrus Logic, Inc. System-on-a-chip
JP3943326B2 (ja) * 2000-11-27 2007-07-11 松下電器産業株式会社 不要輻射解析方法および不要輻射解析装置
US6820222B2 (en) * 2001-08-08 2004-11-16 Texas Instruments Incorporated Apparatus and method for processor power measurement in a digital signal processor using trace data and simulation techniques

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146359A (ja) * 2008-12-19 2010-07-01 Nec Corp 動作合成システム、動作合成方法、及び動作合成用プログラム
JP2013069174A (ja) * 2011-09-22 2013-04-18 Fujitsu Semiconductor Ltd 協調検証方法及び協調検証装置

Also Published As

Publication number Publication date
US20050034090A1 (en) 2005-02-10

Similar Documents

Publication Publication Date Title
US8468475B2 (en) Conversion of circuit description to an abstract model of the circuit
US7162704B2 (en) Method and apparatus for circuit design and retiming
US7934179B2 (en) Systems and methods for logic verification
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
US7363610B2 (en) Building integrated circuits using a common database
JP2004054755A (ja) システムレベル設計方法及びシステムレベル設計装置
US5541850A (en) Method and apparatus for forming an integrated circuit including a memory structure
US7483823B2 (en) Building integrated circuits using logical units
JP4078435B2 (ja) 論理集積回路及び論理集積回路設計方法及び論理集積回路のハードウェア動作記述を生成するハードウェア記述生成方法
US7228513B2 (en) Circuit operation verification device and method
US20040153301A1 (en) Integrated circuit development methodology
Gharsalli et al. Unifying memory and processor wrapper architecture in multiprocessor SoC design
TWI427496B (zh) 製造積體電路的模型的方法和系統
Abbes et al. IP integration methodology for SoC design
Feng et al. Rapid heterogeneous prototyping from simulink
Scott et al. Asynchronous on-Chip Communication: Explorations on the Intel PXA27x Processor Peripheral Bus
Magyar Improving FPGA Simulation Capacity with Automatic Resource Multi-Threading
Wieferink et al. Retargetable generation of TLM bus interfaces for MP-SoC platforms
Vossen Offloading Haskell functions onto an FPGA
Wieferink et al. Retargetable processor system integration into multi-processor system-on-chip platforms
Yun et al. An interface protocol component modeling language
Shen et al. Mpsoc communication architecture exploration using an abstraction refinement method
Teixeira Acceleration of a Stereo Navigation Application for Autonomous Vehicles
US20060085176A1 (en) Generating an optimized system-level simulation
Danowitz Exploring abstract interfaces in system-on-chip integration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050114

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070507