JP2003534603A - オブジェクト指向を用いた電子回路設計のモデリングとシミュレーション環境を高める方法及び装置 - Google Patents
オブジェクト指向を用いた電子回路設計のモデリングとシミュレーション環境を高める方法及び装置Info
- Publication number
- JP2003534603A JP2003534603A JP2001587278A JP2001587278A JP2003534603A JP 2003534603 A JP2003534603 A JP 2003534603A JP 2001587278 A JP2001587278 A JP 2001587278A JP 2001587278 A JP2001587278 A JP 2001587278A JP 2003534603 A JP2003534603 A JP 2003534603A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- port
- ports
- definition
- component
- 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.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013461 design Methods 0.000 title claims abstract description 50
- 230000002708 enhancing effect Effects 0.000 title description 2
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims abstract description 35
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 14
- 230000000630 rising effect Effects 0.000 claims description 9
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 230000008054 signal transmission Effects 0.000 claims description 2
- 238000012958 reprocessing Methods 0.000 claims 2
- 238000005094 computer simulation Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000006399 behavior Effects 0.000 description 12
- 238000011161 development Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000003542 behavioural effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013102 re-test Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 102100023696 Histone-lysine N-methyltransferase SETDB1 Human genes 0.000 description 1
- 101710168120 Histone-lysine N-methyltransferase SETDB1 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design 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)
- Debugging And Monitoring (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
(57)【要約】
装置、プログラムプロダクト及び方法が、特にオブジェクト指向を用いたモデリング及びシミュレーションの領域で、コンピュータ上で電子回路設計のモデリング及びシミュレーションを高める。多重化コミュニケーションポート130が提供され、それは、そのポート130に導かれた1つのイベントに応じて多数の信号に対する値の伝送をサポートする。しがたって、論理的に合わせられた多数の信号パスは1つの論理パスに一緒にされる。さらに、動的な命令デコーダの生成160が提供され、その結果、処理システムモデルによって実行されることのできる命令を定める命令定義が、命令の実行をシミュレートする処理システムモデルに対して命令デコーダ回路コンポーネント150’を構成するのに利用される。
Description
【0001】本発明の技術の分野
本発明は、集積回路及びその他の電子回路の設計及びモデリングに関する。よ
り詳しくは、本発明は、プロトタイピング評価及び性能評価のための集積回路及
びその他の電子回路を、ソフトウェアに基づいて設計及びモデリングすることに
関する。
り詳しくは、本発明は、プロトタイピング評価及び性能評価のための集積回路及
びその他の電子回路を、ソフトウェアに基づいて設計及びモデリングすることに
関する。
【0002】本発明の背景
半導体製造技術が進歩するにつれて、それを取り入れる集積回路及び電子回路
の設計者は、1つの集積回路デバイス、すなわちちチップに、ますます多くの機
能を統合することが可能になった。かつてはサーキットボードあるいはモジュー
ルに電気的に互いに接続されるいくつかの集積回路が必要であった電子的な設計
は、現在では1つの集積回路に統合され、それによってパフォーマンスが向上し
コストは低下している。
の設計者は、1つの集積回路デバイス、すなわちちチップに、ますます多くの機
能を統合することが可能になった。かつてはサーキットボードあるいはモジュー
ルに電気的に互いに接続されるいくつかの集積回路が必要であった電子的な設計
は、現在では1つの集積回路に統合され、それによってパフォーマンスが向上し
コストは低下している。
【0003】
しかしながら、回路の複雑さが増すにつれ、設計プロセス及び回路設計のテス
トプロセスはますます複雑になり時間がかかるようになってきている。その結果
、コンピュータは、設計及び回路設計のテストを自動化するのにますます重要に
なってきた。
トプロセスはますます複雑になり時間がかかるようになってきている。その結果
、コンピュータは、設計及び回路設計のテストを自動化するのにますます重要に
なってきた。
【0004】
通常、電子回路設計はまず比較的高度に抽象化されて定められる。これは、し
ばしばどんなソフトウェアデザインツールをも用いずに行われる。基本的な実行
機能や所望の性能はしばしば設計者のチームによって決定される。ひとたび高レ
ベルの仕様が決定されると、その設計からなるハードウェアの定義がVHDLや
Verilogのようなハードウェア記述言語を用いて開発される。そのハード
ウェアの定義に基づいてロジックシミュレーションがしばしばその設計の機能を
確認するために実行される。ひとたびその機能性が確認されると、その設計にに
よる個々の回路コンポーネントの物理的なレイアウトがなされる。これは、しば
しば統合ツール(synthesis tool)を用いて行われる。さらに詳細なシミュレーシ
ョンとタイミング分析が、統合された設計において次に実行され、その設計に伴
ういかなる詳細な問題をも発見し修正する。ひとたびその設計が確認されるとそ
の設計は、通常は製造部品の製造及び最終テストの準備に付される。
ばしばどんなソフトウェアデザインツールをも用いずに行われる。基本的な実行
機能や所望の性能はしばしば設計者のチームによって決定される。ひとたび高レ
ベルの仕様が決定されると、その設計からなるハードウェアの定義がVHDLや
Verilogのようなハードウェア記述言語を用いて開発される。そのハード
ウェアの定義に基づいてロジックシミュレーションがしばしばその設計の機能を
確認するために実行される。ひとたびその機能性が確認されると、その設計にに
よる個々の回路コンポーネントの物理的なレイアウトがなされる。これは、しば
しば統合ツール(synthesis tool)を用いて行われる。さらに詳細なシミュレーシ
ョンとタイミング分析が、統合された設計において次に実行され、その設計に伴
ういかなる詳細な問題をも発見し修正する。ひとたびその設計が確認されるとそ
の設計は、通常は製造部品の製造及び最終テストの準備に付される。
【0005】
設計の再利用や抽象化のかなりの進歩により、開発者は、新しい設計の開発に
おいて先にある設計を活用することができるようになってきた。先に設計されテ
ストされた回路コンポーネントは、集積回路の設計を定めるのに、例えば修正さ
れ及び(あるいは)共に組み立てられる。したがって、開発者が、スクラッチか
らそれぞれの設計を始める必要を取り除くことができる。さらに、再利用できる
回路コンポーネントが既にテストされ、しばしば特定の機能に最適化されている
ので、統合化やシミュレーションに伴う多くの困難を回避することができる。
おいて先にある設計を活用することができるようになってきた。先に設計されテ
ストされた回路コンポーネントは、集積回路の設計を定めるのに、例えば修正さ
れ及び(あるいは)共に組み立てられる。したがって、開発者が、スクラッチか
らそれぞれの設計を始める必要を取り除くことができる。さらに、再利用できる
回路コンポーネントが既にテストされ、しばしば特定の機能に最適化されている
ので、統合化やシミュレーションに伴う多くの困難を回避することができる。
【0006】
再利用できる回路コンポーネントにカプセル化される機能はさらに増えてきた
。再利用できる回路コンポーネントはかつては、マルチプレクサやレジスタのよ
うな簡易なロジックコンポーネントに代表される簡易な回路ブロックに制限され
ていたが、エンタイア(entire)プロセッサのコア、メモリ、デジタルシグナルプ
ロセッサのコア等の比較的複雑な回路コンポーネントを組み込んだより進歩した
コンポーネントが開発されてきた。
。再利用できる回路コンポーネントはかつては、マルチプレクサやレジスタのよ
うな簡易なロジックコンポーネントに代表される簡易な回路ブロックに制限され
ていたが、エンタイア(entire)プロセッサのコア、メモリ、デジタルシグナルプ
ロセッサのコア等の比較的複雑な回路コンポーネントを組み込んだより進歩した
コンポーネントが開発されてきた。
【0007】
抽象化や設計の再利用は、かつてないほどに多い複雑な回路設計に際して合理
的な開発サイクルを維持するのに共に重要な一因である。それにもかかわらず技
術の変化が速く、集積回路の設計に対する製品化までの時間は追い立てられ続け
ており、したがって、設計の自動化におけるさらなる進歩が必要となっている。
的な開発サイクルを維持するのに共に重要な一因である。それにもかかわらず技
術の変化が速く、集積回路の設計に対する製品化までの時間は追い立てられ続け
ており、したがって、設計の自動化におけるさらなる進歩が必要となっている。
【0008】
しばしば設計をやり直して修正した設計を再テストする努力が変化によってさ
らに必要とされるように、開発サイクルは、機能や手段(implementation)に対す
る変化によってかなり影響を受ける。その結果、開発プロセスにおいてはできる
だけ早く基本的な設計パラメータを評価し決定するのがしばしば極めて望ましい
。
らに必要とされるように、開発サイクルは、機能や手段(implementation)に対す
る変化によってかなり影響を受ける。その結果、開発プロセスにおいてはできる
だけ早く基本的な設計パラメータを評価し決定するのがしばしば極めて望ましい
。
【0009】
設計パラメータを早く評価するのをサポートするために、オブジェクト指向を
用いたラピッド・プロトタイピング(object-oriented rapid prototyping)が、
集積回路の設計、特に、内蔵されたプロセッサのコア、デジタルシグナルプロセ
ッサ(DSP)のコア、メモリシステム等のような複雑な特徴を組み込んでいる
デジタルアーキテクチャの設計において早いプロセスでの評価を提供するために
提案されている。オブジェクト指向を用いた高速なプロトタイピングにより、回
路コンポーネントは、オブジェクト指向のソフトウェア言語を用いてモデル化さ
れる。抽象化やカプセル化、再利用、継承、多態性のような伝統的なオブジェク
ト指向の概念は回路コンポーネントのライブラリを構築するのに用いられる。回
路コンポーネントは、究極的には1つ以上の総称コンポーネントオブジェクトに
基づけられる。それ故に、ある設計を創案するために、現存するコンポーネント
が共に集められ、且つ(あるいは)、新たなコンポーネントが、現存するコンポ
ーネントの機能を修正あるいは拡張することによって組み立てられる。
用いたラピッド・プロトタイピング(object-oriented rapid prototyping)が、
集積回路の設計、特に、内蔵されたプロセッサのコア、デジタルシグナルプロセ
ッサ(DSP)のコア、メモリシステム等のような複雑な特徴を組み込んでいる
デジタルアーキテクチャの設計において早いプロセスでの評価を提供するために
提案されている。オブジェクト指向を用いた高速なプロトタイピングにより、回
路コンポーネントは、オブジェクト指向のソフトウェア言語を用いてモデル化さ
れる。抽象化やカプセル化、再利用、継承、多態性のような伝統的なオブジェク
ト指向の概念は回路コンポーネントのライブラリを構築するのに用いられる。回
路コンポーネントは、究極的には1つ以上の総称コンポーネントオブジェクトに
基づけられる。それ故に、ある設計を創案するために、現存するコンポーネント
が共に集められ、且つ(あるいは)、新たなコンポーネントが、現存するコンポ
ーネントの機能を修正あるいは拡張することによって組み立てられる。
【0010】
オブジェクト指向を用いたラピッド・プロトタイピング環境や、他のモデリン
グ及びシミュレーション環境は、設計プロセスにおいて極めて早く新しい回路設
計の高レベルな仕様を評価し決定する能力を、回路の開発者に提供すると思われ
、したがって、多くの場合において開発サイクルを短くするのに役立つ。しかし
ながら、オブジェクト指向を用いたモデリングやシミュレーションを実行するた
めに提案されているソフトウェアのツールは機能において制限されている。この
ように、電子回路設計についての開発等をさらに加速するために、オブジェクト
指向を用いたモデリングやシミュレーションの概念を実行し向上させるソフトウ
ェア自動化ツールに対する技術の必要性がある。
グ及びシミュレーション環境は、設計プロセスにおいて極めて早く新しい回路設
計の高レベルな仕様を評価し決定する能力を、回路の開発者に提供すると思われ
、したがって、多くの場合において開発サイクルを短くするのに役立つ。しかし
ながら、オブジェクト指向を用いたモデリングやシミュレーションを実行するた
めに提案されているソフトウェアのツールは機能において制限されている。この
ように、電子回路設計についての開発等をさらに加速するために、オブジェクト
指向を用いたモデリングやシミュレーションの概念を実行し向上させるソフトウ
ェア自動化ツールに対する技術の必要性がある。
【0011】本発明の要約
本発明は、特にオブジェクト指向を用いた モデリング及びシミュレーション
の領域で、コンピュータ上で電子回路設計のモデリング及びシミュレーションを
高める装置、プログラムプロダクト及び方法を提供することによって、従来技術
に関連するこれらの及びその他の問題を検討する。
の領域で、コンピュータ上で電子回路設計のモデリング及びシミュレーションを
高める装置、プログラムプロダクト及び方法を提供することによって、従来技術
に関連するこれらの及びその他の問題を検討する。
【0012】
本発明の1つの特徴に関連して、モデリング及びシミュレーションは、電子設
計モデルの回路コンポーネント内での多重化ポートに対するサポートを介して高
められる。本発明にかかる多重化ポートは、ポートに導かれたイベントに応答し
て多数の信号に対する値の伝送をサポートする。したがって、論理的に結合した
多数の信号パスは1つの論理パスに一緒にされる。他の利益として、モデルが、
コンピュータ上でグラフィカルユーザーインターフェース環境で表されるとき、
多重化ポートを表す1つの論理パスは、そのポートを介して伝送されることので
きる個々の信号に対する分離パスの代わりに表示され、それによって、表示の散
乱が減り、モデルの理解が容易なる。
計モデルの回路コンポーネント内での多重化ポートに対するサポートを介して高
められる。本発明にかかる多重化ポートは、ポートに導かれたイベントに応答し
て多数の信号に対する値の伝送をサポートする。したがって、論理的に結合した
多数の信号パスは1つの論理パスに一緒にされる。他の利益として、モデルが、
コンピュータ上でグラフィカルユーザーインターフェース環境で表されるとき、
多重化ポートを表す1つの論理パスは、そのポートを介して伝送されることので
きる個々の信号に対する分離パスの代わりに表示され、それによって、表示の散
乱が減り、モデルの理解が容易なる。
【0013】
例として、本発明のこの特徴にかかる方法において、電子回路設計が、それぞ
れ第1及び第2のポートを有する第1及び第2のオブジェクト指向の回路コンポ
ーネントからモデルを構成し、第1及び第2の回路コンポーネントを第1及び第
2のポートを介して互いにインターフェースをとることによって、コンピュータ
上でモデル化される。第1及び第2のポートは、第1及び第2のポートの少なく
とも1つに導かれたイベントに応答して、第1の信号に対する第1の値と、第2
の信号に対する第2の値との両方を、第1及び第2のポート間で伝送するように
構成されている。
れ第1及び第2のポートを有する第1及び第2のオブジェクト指向の回路コンポ
ーネントからモデルを構成し、第1及び第2の回路コンポーネントを第1及び第
2のポートを介して互いにインターフェースをとることによって、コンピュータ
上でモデル化される。第1及び第2のポートは、第1及び第2のポートの少なく
とも1つに導かれたイベントに応答して、第1の信号に対する第1の値と、第2
の信号に対する第2の値との両方を、第1及び第2のポート間で伝送するように
構成されている。
【0014】
本発明の別の特徴に関連して、電子回路設計のモデリング及びシミュレーショ
ンは、電子回路設計を表す処理システムモデル内で実行される命令をデコードす
るのに、動的に生成される命令デコーダ回路コンポーネントを提供することによ
って高められる。本発明に係る命令デコーダ回路コンポーネントの生成は、処理
システムモデルによって実行されることのできる命令を定める命令定義を少なく
とも1つ受け取ることを含む。さらに、命令の実行をシミュレートするための処
理システムモデルに対して命令デコーダ回路コンポーネントを構成するために、
命令定義を処理することを含む。
ンは、電子回路設計を表す処理システムモデル内で実行される命令をデコードす
るのに、動的に生成される命令デコーダ回路コンポーネントを提供することによ
って高められる。本発明に係る命令デコーダ回路コンポーネントの生成は、処理
システムモデルによって実行されることのできる命令を定める命令定義を少なく
とも1つ受け取ることを含む。さらに、命令の実行をシミュレートするための処
理システムモデルに対して命令デコーダ回路コンポーネントを構成するために、
命令定義を処理することを含む。
【0015】
本発明を特徴づけるこれらの及びその他の利点及び特徴は、ここに添付された
クレームに述べられている。しかしながら、本発明、及びその使用を介して得ら
れる利点及び目的をより理解するために、図面及び付加された説明が参照される
べきであり、そこにおいては本発明の典型的な実施例が述べられている。
クレームに述べられている。しかしながら、本発明、及びその使用を介して得ら
れる利点及び目的をより理解するために、図面及び付加された説明が参照される
べきであり、そこにおいては本発明の典型的な実施例が述べられている。
【0016】詳細な説明 ハードウェア及びソフトウェア環境
図面に示すように種々の図面の全体にわたりパーツが符号により示されている
。図1は、本発明にかかるオブジェクト指向を用いたモデリング及びシミュレー
ションを実行するのに用いるコンピュータシステム10を示す。コンピュータシ
ステム10は、1つ以上のクライアントコンピュータ12,14,20(例えば
、デスクトップあるいはPCベースのコンピュータ、ワークステーション等)を
含むネットワークコンピュータシステムとして示されており、クライアントコン
ピュータ12,14,20はネットワーク18を介してサーバ16(例えば、P
Cベースのサーバ、ミニコンピュータ、ミッドレンジコンピュータ、メインフレ
ームコンピュータ等)に接続されている。ネットワーク18は実際には任意のタ
イプのネットワーク相互接合を表しており、ローカルエリアネットワーク、ワイ
ドエリアネットワーク、ワイヤレスネットワーク、パブリックネットワーク(例
えばインターネット)を含む。さらに、任意の数のコンピュータ及び他のデバイ
ス、例えばマルチプルサーバが、ネットワーク18を介してネットワーク接続さ
れる。
。図1は、本発明にかかるオブジェクト指向を用いたモデリング及びシミュレー
ションを実行するのに用いるコンピュータシステム10を示す。コンピュータシ
ステム10は、1つ以上のクライアントコンピュータ12,14,20(例えば
、デスクトップあるいはPCベースのコンピュータ、ワークステーション等)を
含むネットワークコンピュータシステムとして示されており、クライアントコン
ピュータ12,14,20はネットワーク18を介してサーバ16(例えば、P
Cベースのサーバ、ミニコンピュータ、ミッドレンジコンピュータ、メインフレ
ームコンピュータ等)に接続されている。ネットワーク18は実際には任意のタ
イプのネットワーク相互接合を表しており、ローカルエリアネットワーク、ワイ
ドエリアネットワーク、ワイヤレスネットワーク、パブリックネットワーク(例
えばインターネット)を含む。さらに、任意の数のコンピュータ及び他のデバイ
ス、例えばマルチプルサーバが、ネットワーク18を介してネットワーク接続さ
れる。
【0017】
クライアントコンピュータ20は、コンピュータ12,14と同様に、中央演
算処理装置(CPU)21、コンピュータディスプレイ22のような多くの周辺
コンポーネント、ストレージデバイス23、プリンタ24、種々の入力デバイス
(例えばマウス26、キーボード27)、を特に有する。サーバコンピュータ1
6は、周知なように、より優れた処理性能及びストレージキャパシティを通常備
えてはいるが同様に構成されている。
算処理装置(CPU)21、コンピュータディスプレイ22のような多くの周辺
コンポーネント、ストレージデバイス23、プリンタ24、種々の入力デバイス
(例えばマウス26、キーボード27)、を特に有する。サーバコンピュータ1
6は、周知なように、より優れた処理性能及びストレージキャパシティを通常備
えてはいるが同様に構成されている。
【0018】
図2は、本発明にかかる装置30に対する模範的なハードウェア及びソフトウ
ェア環境を別の手段にて示す。本発明の目的に対して、装置30は、実際には、
任意のタイプのコンピュータ、コンピュータシステムあるいは他のプログラム制
御できる電子デバイスを表しており、クライアントコンピュータ(例えば図1の
コンピュータ12,14,20と同様なもの)、サーバコンピュータ(例えば図
1のサーバ16と同様なもの)、ポータブルコンピュータ、ハンドヘルドコンピ
ュータ、埋め込み式コントローラ等を含む。装置30は、図1に示されるような
ネットワークに接続されても、あるいは代わりにスタンドアロンデバイスでもよ
い。装置30は以下において“コンピュータ”として言及される。とはいえ、“
装置”は、本発明に係る他の適当なプログラム制御可能な電子デバイスを含むと
いうことが理解されるべきである。
ェア環境を別の手段にて示す。本発明の目的に対して、装置30は、実際には、
任意のタイプのコンピュータ、コンピュータシステムあるいは他のプログラム制
御できる電子デバイスを表しており、クライアントコンピュータ(例えば図1の
コンピュータ12,14,20と同様なもの)、サーバコンピュータ(例えば図
1のサーバ16と同様なもの)、ポータブルコンピュータ、ハンドヘルドコンピ
ュータ、埋め込み式コントローラ等を含む。装置30は、図1に示されるような
ネットワークに接続されても、あるいは代わりにスタンドアロンデバイスでもよ
い。装置30は以下において“コンピュータ”として言及される。とはいえ、“
装置”は、本発明に係る他の適当なプログラム制御可能な電子デバイスを含むと
いうことが理解されるべきである。
【0019】
コンピュータ30は、通常、メモリ32に接続された少なくとも1つのプロセ
ッサ31を有する。プロセッサ31は1つ以上のプロセッサ(例えばマイクロプ
ロセッサ)を表し、メモリ32は、コンピュータ30のメインストレージを構成
するランダムアクセスメモリ(RAM)の他、キャッシュメモリ、不揮発性ある
いはバックアップメモリ(例えばプログラマブルメモリあるいはフラッシュメモ
リ)、読み出し専用メモリ等を表す。さらに、メモリ32は、コンピュータ30
の他のどこかに物理的に置かれたメモリストレージ、例えばプロセッサ31の任
意のキャッシュメモリの他、仮想メモリとして用いられる任意のストレージキャ
パシタを含むと考えられる。これは、例えばマスストレージデバイス35にスト
レージされるような、あるいはネットワーク36を介してコンピュータ30に接
続された別のコンピュータにストレージされるようなものである。
ッサ31を有する。プロセッサ31は1つ以上のプロセッサ(例えばマイクロプ
ロセッサ)を表し、メモリ32は、コンピュータ30のメインストレージを構成
するランダムアクセスメモリ(RAM)の他、キャッシュメモリ、不揮発性ある
いはバックアップメモリ(例えばプログラマブルメモリあるいはフラッシュメモ
リ)、読み出し専用メモリ等を表す。さらに、メモリ32は、コンピュータ30
の他のどこかに物理的に置かれたメモリストレージ、例えばプロセッサ31の任
意のキャッシュメモリの他、仮想メモリとして用いられる任意のストレージキャ
パシタを含むと考えられる。これは、例えばマスストレージデバイス35にスト
レージされるような、あるいはネットワーク36を介してコンピュータ30に接
続された別のコンピュータにストレージされるようなものである。
【0020】
さらに、コンピュータ30は、通常、多くの入力と出力を外部と情報を伝達す
るために受け取る。ユーザーやオペレータとのインターフェースのためにコンピ
ュータ30は通常1つ以上のユーザーインプットデバイス33(例えば特にキー
ボード、マウス、トラックボール、ジョイスティック、タッチパッド及び(ある
いは)マイクロフォン)やディスプレイ34(例えば特にCRTモニタ、LCD
ディスプレイパネル、及び(あるいは)スピーカー)を含む。
るために受け取る。ユーザーやオペレータとのインターフェースのためにコンピ
ュータ30は通常1つ以上のユーザーインプットデバイス33(例えば特にキー
ボード、マウス、トラックボール、ジョイスティック、タッチパッド及び(ある
いは)マイクロフォン)やディスプレイ34(例えば特にCRTモニタ、LCD
ディスプレイパネル、及び(あるいは)スピーカー)を含む。
【0021】
追加のストレージのために、さらにコンピュータ30は、1つ以上のマススト
レージデバイス35、例えば特にフロッピー(登録商標)ドライブあるいは他の
リムーバブルディスクドライブ、ハードディスクドライブ、ダイレクトアクセス
ストレージデバイス(DASD)、オプティカルドライブ(例えばCDドライブ
、DVDドライブ等)及び(あるいは)テープドライブを含む。さらにコンピュ
ータ30は、1つ以上のネットワーク36(例えば特にLAN、WAN、ワイヤ
レスネットワーク及び(あるいは)インターネット)とのインターフェースを含
み、ネットワークに接続された他のコンピュータとの情報の伝達を可能に構成さ
れている。通常、コンピュータ30は、周知なように、コンポーネント32,3
3,34,35,36のそれぞれとプロセッサ31との間に適当なアナログイン
ターフェース及び(あるいは)デジタルインターフェースを含んでいることが理
解されるべきである。
レージデバイス35、例えば特にフロッピー(登録商標)ドライブあるいは他の
リムーバブルディスクドライブ、ハードディスクドライブ、ダイレクトアクセス
ストレージデバイス(DASD)、オプティカルドライブ(例えばCDドライブ
、DVDドライブ等)及び(あるいは)テープドライブを含む。さらにコンピュ
ータ30は、1つ以上のネットワーク36(例えば特にLAN、WAN、ワイヤ
レスネットワーク及び(あるいは)インターネット)とのインターフェースを含
み、ネットワークに接続された他のコンピュータとの情報の伝達を可能に構成さ
れている。通常、コンピュータ30は、周知なように、コンポーネント32,3
3,34,35,36のそれぞれとプロセッサ31との間に適当なアナログイン
ターフェース及び(あるいは)デジタルインターフェースを含んでいることが理
解されるべきである。
【0022】
コンピュータ30は、オペレーティングシステム40の制御の下で動作し、種
々のコンピュータソフトウェアアプリケーション、コンポーネント、プログラム
、オブジェクト、モジュール、データストラクチャ等を実行し、あるいはそうで
なければこれらに依存する(例えば、とりわけ、シミュレータ42、コンパイラ
44、ユーザーインターフェース46、コンポーネントライブラリ48、を組み
込んだシミュレーション環境41をモデリングするラピッド・プロトタイピング
)。さらに、種々のアプリケーション、コンポーネント、プログラム、オブジェ
クト、モジュール等は、ネットワーク36を介してコンピュータ30に接続され
た別のコンピュータにおける1つ以上のプロセッサで、例えば、分散コンピュー
ティング環境やクライアント−サーバコンピューティング環境で実行される。そ
れによって、コンピュータプログラムの機能を実行するのに必要とされるプロセ
シングはネットワーク上の多くのコンピュータに割り当てられる。
々のコンピュータソフトウェアアプリケーション、コンポーネント、プログラム
、オブジェクト、モジュール、データストラクチャ等を実行し、あるいはそうで
なければこれらに依存する(例えば、とりわけ、シミュレータ42、コンパイラ
44、ユーザーインターフェース46、コンポーネントライブラリ48、を組み
込んだシミュレーション環境41をモデリングするラピッド・プロトタイピング
)。さらに、種々のアプリケーション、コンポーネント、プログラム、オブジェ
クト、モジュール等は、ネットワーク36を介してコンピュータ30に接続され
た別のコンピュータにおける1つ以上のプロセッサで、例えば、分散コンピュー
ティング環境やクライアント−サーバコンピューティング環境で実行される。そ
れによって、コンピュータプログラムの機能を実行するのに必要とされるプロセ
シングはネットワーク上の多くのコンピュータに割り当てられる。
【0023】
通常、本発明の実施例で実行されるルーチンは、オペレーティングシステムの
一部として、あるいは、特定のアプリケーション、コンポーネント、プログラム
、オブジェクト、モジュールもしくは命令の連続として実施されようとも、ここ
において“コンピュータプログラム”あるいは単に“プログラム”と呼ばれる。
コンピュータプログラムは通常1つ以上の命令を有し、命令は、コンピューター
内の種々のメモリやストレージデバイスにいろいろな時にとどまり、しかも、コ
ンピュータ内の1つ以上のプロセッサによって読み込まれ実行されるときに、コ
ンピュータに、本発明の種々の特徴を実施するステップあるいはエレメントの実
行の必要なステップを実行させる。さらに、本発明は、完全に動作しているコン
ピュータ及びコンピュータシステムの状況において述べられるが、当業者ならば
、本発明の種々の実施例が種々の形態におけるプログラムプロダクトとして割り
当てられることが可能であり、本発明は、その割り当てを実際に実行するのに用
いられる信号担媒体(signal bearing media)の特定のタイプに関係なく等しく
適用されることが理解されよう。信号担媒体の例は、特に揮発性あるいは不揮発
性メモリデバイス、フロッピーディスク及び他のリムーバブルディスク、ハード
ディスクドライブ、磁気テープ、オプティカルディスク(例えばCD−ROMや
DVD等)のような記録可能型メディアや、デジタルとアナログの伝達をリンク
するようなトランスミッションタイプメディアを含むがこれに制限されない。
一部として、あるいは、特定のアプリケーション、コンポーネント、プログラム
、オブジェクト、モジュールもしくは命令の連続として実施されようとも、ここ
において“コンピュータプログラム”あるいは単に“プログラム”と呼ばれる。
コンピュータプログラムは通常1つ以上の命令を有し、命令は、コンピューター
内の種々のメモリやストレージデバイスにいろいろな時にとどまり、しかも、コ
ンピュータ内の1つ以上のプロセッサによって読み込まれ実行されるときに、コ
ンピュータに、本発明の種々の特徴を実施するステップあるいはエレメントの実
行の必要なステップを実行させる。さらに、本発明は、完全に動作しているコン
ピュータ及びコンピュータシステムの状況において述べられるが、当業者ならば
、本発明の種々の実施例が種々の形態におけるプログラムプロダクトとして割り
当てられることが可能であり、本発明は、その割り当てを実際に実行するのに用
いられる信号担媒体(signal bearing media)の特定のタイプに関係なく等しく
適用されることが理解されよう。信号担媒体の例は、特に揮発性あるいは不揮発
性メモリデバイス、フロッピーディスク及び他のリムーバブルディスク、ハード
ディスクドライブ、磁気テープ、オプティカルディスク(例えばCD−ROMや
DVD等)のような記録可能型メディアや、デジタルとアナログの伝達をリンク
するようなトランスミッションタイプメディアを含むがこれに制限されない。
【0024】
さらに、この後に述べられる種々のプログラムは、本発明の特定の実施例でそれ
らが実行されるアプリケーションに基づいて識別される。しかしながら、以下の
任意の特定のプログラム用語は単に便宜上用いられるだけであり、したがって本
発明は、そのような用語によって識別され及び(あるいは)意味される任意の特
定のアプリケーションにおいてのみ用いることに制限されないということが理解
されるべきである。
らが実行されるアプリケーションに基づいて識別される。しかしながら、以下の
任意の特定のプログラム用語は単に便宜上用いられるだけであり、したがって本
発明は、そのような用語によって識別され及び(あるいは)意味される任意の特
定のアプリケーションにおいてのみ用いることに制限されないということが理解
されるべきである。
【0025】
当業者であれば、図1及び2に示される模範的な環境が本発明を制限するもの
ではないことが理解されよう。さらに言えば、当業者であれば、他の代わりのハ
ードウェア及び(あるいは)ソフトウェア環境が本発明の範囲から外れることな
く用いられることが理解されよう。
ではないことが理解されよう。さらに言えば、当業者であれば、他の代わりのハ
ードウェア及び(あるいは)ソフトウェア環境が本発明の範囲から外れることな
く用いられることが理解されよう。
【0026】高められたオブジェクト指向を用いたラピッド・プロトタイピング環境
図3は、本発明に係るオブジェクト指向を用いたモデリング及びシミュレーシ
ョンを組み込んだラピッド・プロトタイピング環境41を実行するための主要な
コンポーネントを示す。本実施例において、ラピッド・プロトタイピング環境4
1は、サンマイクロシステムのJavaプログラミング言語のようなオブジェク
ト指向プログラミング言語を用いて実行される。ラピッド・プロトタイピング環
境は他のオブジェクト指向プログラミング言語、例えばc++、Smallta
lk等においても実施可能であることが理解されよう。さらに、本発明は、ラピ
ッド・プロトタイピング以外のモデリング及び(あるいは)シミュレーションの
アプリケーションにおいても適用できることが理解されよう。それ故に、本発明
はここにおいて述べられる特定の実施に制限されない。
ョンを組み込んだラピッド・プロトタイピング環境41を実行するための主要な
コンポーネントを示す。本実施例において、ラピッド・プロトタイピング環境4
1は、サンマイクロシステムのJavaプログラミング言語のようなオブジェク
ト指向プログラミング言語を用いて実行される。ラピッド・プロトタイピング環
境は他のオブジェクト指向プログラミング言語、例えばc++、Smallta
lk等においても実施可能であることが理解されよう。さらに、本発明は、ラピ
ッド・プロトタイピング以外のモデリング及び(あるいは)シミュレーションの
アプリケーションにおいても適用できることが理解されよう。それ故に、本発明
はここにおいて述べられる特定の実施に制限されない。
【0027】
図3に示されるように、ラピッド・プロトタイピング環境41において、Ja
vaベースのシミュレータ42がJavaコンパイラ44、ユーザーインターフ
ェース46、コンポーネントライブラリ48と相互に作用する。さらにユーザー
インターフェース内には、アーキテクチャウィンドウコンポーネント50とデバ
ッグウィンドウコンポーネント52がある。
vaベースのシミュレータ42がJavaコンパイラ44、ユーザーインターフ
ェース46、コンポーネントライブラリ48と相互に作用する。さらにユーザー
インターフェース内には、アーキテクチャウィンドウコンポーネント50とデバ
ッグウィンドウコンポーネント52がある。
【0028】
環境41におけるモデリング及びシミュレーションの機能の主要な管理はJa
vaシミュレータ42によってなされる。新たなあるいは現存する集積回路の設
計すなわちアーキテクチャのモデリングを開始するために、Javaシミュレー
タ42はアーキテクチャウィンドウコンポーネント50を呼び出し、シミューレ
トされる所望のアーキテクチャを示すモデルを構築する開発者と互いにやりとり
するためのユーザーインターフェースを提供する。
vaシミュレータ42によってなされる。新たなあるいは現存する集積回路の設
計すなわちアーキテクチャのモデリングを開始するために、Javaシミュレー
タ42はアーキテクチャウィンドウコンポーネント50を呼び出し、シミューレ
トされる所望のアーキテクチャを示すモデルを構築する開発者と互いにやりとり
するためのユーザーインターフェースを提供する。
【0029】
アーキテクチャウィンドウはコンポーネントライブラリ48から回路コンポー
ネントを引き出し、そのコンポーネントを共に組み立て及び(あるいは)そのコ
ンポーネントのインスタンスを修正して、コンポーネントライブラリに戻される
(store back)される新しいコンポーネントを生成させることができる。オブジ
ェクト指向のフレームワークに基づいて、ライブラリにおけるそれぞれの回路コ
ンポーネントは、通常、チャイルドコンポーネントのコレクションによって表さ
れる。これらのコンポーネントの間のリンクはライブラリによってJavaコン
パイラ44に与えられ、アーキテクチャウィンドウ50を介してユーザーによっ
て生成させられたコンパイルコマンドに応じて、コンパイルされたモデルが生成
させる。それ故に、このコンテクストにおける回路コンポーネントは任意のデー
タストラクチャ、ソースコード、インタープリタコード及び(あるいは)実行可
能プログラムによって表され、電子回路あるいはそれらの一部の動作を機能的に
モデリングするのに役立つことが理解されよう。
ネントを引き出し、そのコンポーネントを共に組み立て及び(あるいは)そのコ
ンポーネントのインスタンスを修正して、コンポーネントライブラリに戻される
(store back)される新しいコンポーネントを生成させることができる。オブジ
ェクト指向のフレームワークに基づいて、ライブラリにおけるそれぞれの回路コ
ンポーネントは、通常、チャイルドコンポーネントのコレクションによって表さ
れる。これらのコンポーネントの間のリンクはライブラリによってJavaコン
パイラ44に与えられ、アーキテクチャウィンドウ50を介してユーザーによっ
て生成させられたコンパイルコマンドに応じて、コンパイルされたモデルが生成
させる。それ故に、このコンテクストにおける回路コンポーネントは任意のデー
タストラクチャ、ソースコード、インタープリタコード及び(あるいは)実行可
能プログラムによって表され、電子回路あるいはそれらの一部の動作を機能的に
モデリングするのに役立つことが理解されよう。
【0030】
いったんシミューレートされるモデルがJavaコンパイラ44によってコン
パイルされると、シミュレーションがJavaシミュレータ42によってモデル
上で走らされることが可能になる。モデルをコンパイルすることに加えて、さら
にJavaシミュレータ42は、どんな情報が観測されるべきかを示すシミュレ
ーションパラメータのみならず、所望の命令セットをシミュレートするのに適切
な命令デコーダ情報を受け取ることができる。このシミュレーションパラメータ
に基づいてデバッグ情報がシミュレーションの間に生成され、ユーザーに表示す
るためのデバッグウィンドウコンポーネント52に出力される。
パイルされると、シミュレーションがJavaシミュレータ42によってモデル
上で走らされることが可能になる。モデルをコンパイルすることに加えて、さら
にJavaシミュレータ42は、どんな情報が観測されるべきかを示すシミュレ
ーションパラメータのみならず、所望の命令セットをシミュレートするのに適切
な命令デコーダ情報を受け取ることができる。このシミュレーションパラメータ
に基づいてデバッグ情報がシミュレーションの間に生成され、ユーザーに表示す
るためのデバッグウィンドウコンポーネント52に出力される。
【0031】
本実施例において、環境及び開発コンポーネント(例えばシミュレータ42や
ウィンドウ50,52)や、シミュレートされるモデルを表す回路コンポーネン
ト(例えばコンポーネントライブラリ48の内部にある)の両方ともJavaプ
ログラミング言語を用いて実施され、通常のJavaベースのプラットフォーム
においてコンパイルされ解釈される。しかしながら、他のプログラミング環境が
、非オブジェクト指向のプラットフォームを含めて、基本的なモデリング及び(
あるいは)シミュレーション環境を実行するのに用いられることが理解されよう
。
ウィンドウ50,52)や、シミュレートされるモデルを表す回路コンポーネン
ト(例えばコンポーネントライブラリ48の内部にある)の両方ともJavaプ
ログラミング言語を用いて実施され、通常のJavaベースのプラットフォーム
においてコンパイルされ解釈される。しかしながら、他のプログラミング環境が
、非オブジェクト指向のプラットフォームを含めて、基本的なモデリング及び(
あるいは)シミュレーション環境を実行するのに用いられることが理解されよう
。
【0032】回路コンポーネントのオブジェクト指向モデリング
上述したように、環境41で開発されたモデルは、そのモデルの基本的な機能
を表す多くの回路コンポーネントを共に組み合わせることによって主として構成
される。本実施例においてモデルで用いられる全てのコンポーネントは総称コン
ポーネントモデル、例えば図4のUML表記で表される総称コンポーネントモデ
ル60に基づいている。
を表す多くの回路コンポーネントを共に組み合わせることによって主として構成
される。本実施例においてモデルで用いられる全てのコンポーネントは総称コン
ポーネントモデル、例えば図4のUML表記で表される総称コンポーネントモデ
ル60に基づいている。
【0033】
モデル60は、コンポーネント間の最小限のインターフェースを示しており、
マテリアルコンポーネント62と、アクティブコンポーネント64及びマテリア
ルコンテナ66との間で逐次因果モデルコンテナコンポーネントを構成している
。マテリアルコンテナは、マテリアルコンポーネントと信号とをカプセル化する
ためにのみ役立つだけであり、マテリアルコンポーネントに対して構造記述を許
容する。アクティブコンポーネントは、ここではサービスとして言及される、コ
ンポーネントの振る舞いの特徴を取り込んでいるコンポーネントを表す。
マテリアルコンポーネント62と、アクティブコンポーネント64及びマテリア
ルコンテナ66との間で逐次因果モデルコンテナコンポーネントを構成している
。マテリアルコンテナは、マテリアルコンポーネントと信号とをカプセル化する
ためにのみ役立つだけであり、マテリアルコンポーネントに対して構造記述を許
容する。アクティブコンポーネントは、ここではサービスとして言及される、コ
ンポーネントの振る舞いの特徴を取り込んでいるコンポーネントを表す。
【0034】
マテリアルコンポーネントは、信号70を他のコンポーネントに通過させるの
に用いられる1つ以上のサービスポート68を介してお互いにインターフェース
が取られており、接続されたポート間で伝達されるべき実データを特徴づける値
72を有している。値は、特定のデータタイプ、例えば命令、整数、イベント、
ビット値、ハードウェアレベル等に制約されるが、総称モデルレベルでは値によ
って特定されるデータのタイプはタイプが特定されていない。
に用いられる1つ以上のサービスポート68を介してお互いにインターフェース
が取られており、接続されたポート間で伝達されるべき実データを特徴づける値
72を有している。値は、特定のデータタイプ、例えば命令、整数、イベント、
ビット値、ハードウェアレベル等に制約されるが、総称モデルレベルでは値によ
って特定されるデータのタイプはタイプが特定されていない。
【0035】
この総称モデルに基づいて回路コンポーネントが、そのモデルを拡張すること
によって、且つ、そのコンポーネントの振る舞い性能をモデリングするためにポ
ートに関連づけられたサービスを定めることによって開発される。さらに、回路
コンポーネントは構造的にチャイルドコンポーネントを組み込むように定められ
ており、チャイルドコンポーネントはその親コンポーネントによってアクセスさ
れることのできる機能、即ちサービスを定める。それ故に、回路コンポーネント
は、統合されたサービス及びそれによってカプセル化されたチャイルドコンポー
ネントに依存して、構造及び振る舞いの両方で表される。
によって、且つ、そのコンポーネントの振る舞い性能をモデリングするためにポ
ートに関連づけられたサービスを定めることによって開発される。さらに、回路
コンポーネントは構造的にチャイルドコンポーネントを組み込むように定められ
ており、チャイルドコンポーネントはその親コンポーネントによってアクセスさ
れることのできる機能、即ちサービスを定める。それ故に、回路コンポーネント
は、統合されたサービス及びそれによってカプセル化されたチャイルドコンポー
ネントに依存して、構造及び振る舞いの両方で表される。
【0036】
例えば、図5は、符号84で示される振る舞いとインターフェースの取られた
複数のポート82を組み込んだロード/ストアレジスタ80を示す。その振る舞
いは、構造的手段あるいは機能的手段のいずれかで表される。
複数のポート82を組み込んだロード/ストアレジスタ80を示す。その振る舞
いは、構造的手段あるいは機能的手段のいずれかで表される。
【0037】
例えば、図6に示されるように、同じロード/ストアレジスタの構造的表現9
0が示されている。図5のポート82に対応するポート92は、ロード/ストア
レジスタの基本的な振る舞いを表す1組のレジスタ94とインターフェースが取
られて示されている。それぞれのレジスタコンポーネント94は、ロード/スト
ア機能を実行するためにロード/ストアレジスタによって利用されるより要素的
なコンポーネントを表している。特に、レジスタコンポーネント94のゲートポ
ートは、レジスタ90のロード及びストアポート92に接続されており、ロード
/ストアコンポーネントに通過させられるロード及びストア信号は、ロード/ス
トアレジスタに対して所望の動作上の振る舞いを実行するための適切なレジスタ
94にルーティングされる。
0が示されている。図5のポート82に対応するポート92は、ロード/ストア
レジスタの基本的な振る舞いを表す1組のレジスタ94とインターフェースが取
られて示されている。それぞれのレジスタコンポーネント94は、ロード/スト
ア機能を実行するためにロード/ストアレジスタによって利用されるより要素的
なコンポーネントを表している。特に、レジスタコンポーネント94のゲートポ
ートは、レジスタ90のロード及びストアポート92に接続されており、ロード
/ストアコンポーネントに通過させられるロード及びストア信号は、ロード/ス
トアレジスタに対して所望の動作上の振る舞いを実行するための適切なレジスタ
94にルーティングされる。
【0038】
模範的なロード/ストアレジスタの振る舞いを表す代わりの手段は、機能的な
手段によるもの、例えばJavaプログラミング言語によるものがある。例えば
下記のテーブルIは、図5のロード/ストアレジスタに対するJavaのソース
コードを表す。
手段によるもの、例えばJavaプログラミング言語によるものがある。例えば
下記のテーブルIは、図5のロード/ストアレジスタに対するJavaのソース
コードを表す。
【0039】
【表1】
前述の説明において、Edge Component class は material component classか
ら継承しており、コンポーネントのポートの1つにエッジイベント(edge event
)が生じたときに起こる振る舞いを説明している。Edge Component classで、そ
れぞれのポートは、異なるタイプのイベント、例えば無反応(insensitive),立
ち上がりエッジへの反応(sensitive on a rising edge),立ち下がりエッジへ
の反応(sensitive on falling edge)等への反応に割り当てられている。種々
のaddPort()メソッドは、コンポーネントの異なるタイプのポートを登録するだ
けでなく、そのポートに(setService()メソッドを介して)サービスを関連づけ
るように提供されている。ポート名が、方向表示(例えば、LEFT、RIGH
T、TOP、BOTTOM)と共にそれぞれのaddPORT()に与えられる。それは
、コンポーネントのアイコン表示で、ポートがどこに表示されるべきかを示すた
めに用いられる。
ら継承しており、コンポーネントのポートの1つにエッジイベント(edge event
)が生じたときに起こる振る舞いを説明している。Edge Component classで、そ
れぞれのポートは、異なるタイプのイベント、例えば無反応(insensitive),立
ち上がりエッジへの反応(sensitive on a rising edge),立ち下がりエッジへ
の反応(sensitive on falling edge)等への反応に割り当てられている。種々
のaddPort()メソッドは、コンポーネントの異なるタイプのポートを登録するだ
けでなく、そのポートに(setService()メソッドを介して)サービスを関連づけ
るように提供されている。ポート名が、方向表示(例えば、LEFT、RIGH
T、TOP、BOTTOM)と共にそれぞれのaddPORT()に与えられる。それは
、コンポーネントのアイコン表示で、ポートがどこに表示されるべきかを示すた
めに用いられる。
【0040】
イベントが、EdgeComponentコンポーネントのセンシティブなポートに発生し
たときに、サービス(即ち、setService()コールで特定されたメソッド)が実行
される。それ故に、センシティビティは、コンポーネントをリアクトにするのに
、即ち付与されたサービスを実行するのに必要とされるイベントの列を表す。い
くつかのサービスの組み合わせがコンポーネントの振る舞いを構成する。
たときに、サービス(即ち、setService()コールで特定されたメソッド)が実行
される。それ故に、センシティビティは、コンポーネントをリアクトにするのに
、即ち付与されたサービスを実行するのに必要とされるイベントの列を表す。い
くつかのサービスの組み合わせがコンポーネントの振る舞いを構成する。
【0041】
コンポーネントの実行で利用されるのに適切なサービスの例として、上記のテ
ーブルIに示されるロード及びストアサービスが、それぞれ priority()メソッ
ドと emit()メソッドを利用している。priority()メソッドは、競合解消のため
に、異なるサービスに対して相対優先度(relative priority)を定めている。emi
t()メソッドには、ドライブするポートの名が、そのポートにドライブされる信
号値(ここでは、read()メソッドを介してアクセス可能な、そのコンポーネント
の別のポートの状態(current state))とともに与えられている。
ーブルIに示されるロード及びストアサービスが、それぞれ priority()メソッ
ドと emit()メソッドを利用している。priority()メソッドは、競合解消のため
に、異なるサービスに対して相対優先度(relative priority)を定めている。emi
t()メソッドには、ドライブするポートの名が、そのポートにドライブされる信
号値(ここでは、read()メソッドを介してアクセス可能な、そのコンポーネント
の別のポートの状態(current state))とともに与えられている。
【0042】
通常、タイプはポートに結びつけらず、そのようなものなのでポート間のリン
クに制約はなく、それ故に、それぞれのポートとそれぞれのコンポーネントは任
意のデータタイプを受けとる。それぞれのデータは抽象クラス値(abstract clas
s value)から継承しており、別のタイプをマッチするためにミュートする能力を
有しており、それによってコンポーネントの再利用を高めている。
クに制約はなく、それ故に、それぞれのポートとそれぞれのコンポーネントは任
意のデータタイプを受けとる。それぞれのデータは抽象クラス値(abstract clas
s value)から継承しており、別のタイプをマッチするためにミュートする能力を
有しており、それによってコンポーネントの再利用を高めている。
【0043】
例として、ロード/ストアレジスタはいくつかの制約を有している。“IN”
ポートはいくつかの値を供給(serve)するためにプロデューサを必要としており
、だから“IN”ポートは、いくつかのデータを出す潜在的プロデューサのない
データバスに接続されることはできない。同様に、システムはそのロードを推定
し、ストアポートはいくつかのレベル値を提供できるポートに接続されなければ
ならない。なぜならそれらはエッジに反応するポート(edge sensitive ports)だ
からである。これは、構造的な確認の第1のステップである。
ポートはいくつかの値を供給(serve)するためにプロデューサを必要としており
、だから“IN”ポートは、いくつかのデータを出す潜在的プロデューサのない
データバスに接続されることはできない。同様に、システムはそのロードを推定
し、ストアポートはいくつかのレベル値を提供できるポートに接続されなければ
ならない。なぜならそれらはエッジに反応するポート(edge sensitive ports)だ
からである。これは、構造的な確認の第1のステップである。
【0044】
さらに、継承とサブタイピング(subtyping)は値を説明すのに用いられるので
、2以上の演算子が特定の演算に適用される。例として、算術演算論理装置(ALU
)が、2つの入力データポート、1つの入力制御ポート、2つの出力ポートを有
しているコンポーネントとしてとして定められており、結果値及びフラグ結果値
(flag resut)を表す。実際にドライブされるデータタイプが何であれ、そのコン
ポーネントは要求される演算を計算しなければならない。例えば、加算は、整数
加算、浮動加算、文字列の連結あるいはその他のものとして見ることができる。
データは、定められたサブタイプ関係(sub-type relation)に基づいてミュート
する能力を有しているべきである。さらに、正しい演算子はシミューレーション
において動的に推測されるべきである。これは、パラメータ要求にマッチする最
も低い演算子を選択するサブタイプツリーを構文解析することによって実行され
る。もし、推測されうる演算子が無ければ、“NONE”値が計算され、メッセ
ージが開発者に送られる。これは、記述の完成を必要とする関係のある演算子に
対して適合させられる記述が欠如することによりなされる。これはさらに、いく
つかのデータパスは間違っており正されるべきであるということを示している。
、2以上の演算子が特定の演算に適用される。例として、算術演算論理装置(ALU
)が、2つの入力データポート、1つの入力制御ポート、2つの出力ポートを有
しているコンポーネントとしてとして定められており、結果値及びフラグ結果値
(flag resut)を表す。実際にドライブされるデータタイプが何であれ、そのコン
ポーネントは要求される演算を計算しなければならない。例えば、加算は、整数
加算、浮動加算、文字列の連結あるいはその他のものとして見ることができる。
データは、定められたサブタイプ関係(sub-type relation)に基づいてミュート
する能力を有しているべきである。さらに、正しい演算子はシミューレーション
において動的に推測されるべきである。これは、パラメータ要求にマッチする最
も低い演算子を選択するサブタイプツリーを構文解析することによって実行され
る。もし、推測されうる演算子が無ければ、“NONE”値が計算され、メッセ
ージが開発者に送られる。これは、記述の完成を必要とする関係のある演算子に
対して適合させられる記述が欠如することによりなされる。これはさらに、いく
つかのデータパスは間違っており正されるべきであるということを示している。
【0045】
コンポーネントは、ポートのセット且つポートのサービスであり、ハードウェ
アコンポーネントの継承は、通常、ポートの継承とサービスの継承を意味し、そ
れらはオーバーライドされることができる。さらには、以下により詳しく述べら
れるが、ポートは、含められたコンポーネント(contained component)によって
提供される多数のサービスの順次及び並列な組み合わせ(composition)を与える
ように設定されており、多くの信号が、あるイベントに応答して、含んでいるコ
ンポーネント(containing component)のポートを介して伝達されることができ、
続いて、そのイベントに応答して多くのサービスを実行するために適切なカプセ
ル化されたコンポーネントに割り当てられることができる。この組み合わせは、
よりハイレベルなサービスと考えられるテキスト的な識別子によって抽象される
。
アコンポーネントの継承は、通常、ポートの継承とサービスの継承を意味し、そ
れらはオーバーライドされることができる。さらには、以下により詳しく述べら
れるが、ポートは、含められたコンポーネント(contained component)によって
提供される多数のサービスの順次及び並列な組み合わせ(composition)を与える
ように設定されており、多くの信号が、あるイベントに応答して、含んでいるコ
ンポーネント(containing component)のポートを介して伝達されることができ、
続いて、そのイベントに応答して多くのサービスを実行するために適切なカプセ
ル化されたコンポーネントに割り当てられることができる。この組み合わせは、
よりハイレベルなサービスと考えられるテキスト的な識別子によって抽象される
。
【0046】
前述のオブジェクトフレームワークに関して、構造的コンポーネントから振る
舞いを継承することができ、簡易な構造的継承よりも強い拡張を与える。コンポ
ーネントを拡張するために用いられる継承は例えば基本レジスタコンポーネント
に基づいたシフトレジスタの定義によって明らかになる。基本レジスタは例えば
下記のテーブルIIに示されるように定められ、入力値を出力ポートにロードす
る“LOAD”サービスと、その出力ポートをゼロにセットする“RESET”
サービスを含んでいる。
舞いを継承することができ、簡易な構造的継承よりも強い拡張を与える。コンポ
ーネントを拡張するために用いられる継承は例えば基本レジスタコンポーネント
に基づいたシフトレジスタの定義によって明らかになる。基本レジスタは例えば
下記のテーブルIIに示されるように定められ、入力値を出力ポートにロードす
る“LOAD”サービスと、その出力ポートをゼロにセットする“RESET”
サービスを含んでいる。
【0047】
【表2】
基本レジスタから継承するシフトレジスタを定めるために、シフトレジスタク
ラスには、記憶された値を1ビット左に移す“SHIFT”サービスが付け加え
られている。追加のな“CIN”と“COUT”ポートがキャリービットを操作
するのに設けられている。シフト後、記憶された値に対して新しい上位ビットは
“CIN”ポートに割り当てられた値によって定められ、古い下位ビットは“C
OUT”ポートに割り当てられる。テーブルIIのレジスタの記述を拡張する、
シフトレジスタの適切な振る舞いの記述が下記のテーブルIIIに示されている
。
ラスには、記憶された値を1ビット左に移す“SHIFT”サービスが付け加え
られている。追加のな“CIN”と“COUT”ポートがキャリービットを操作
するのに設けられている。シフト後、記憶された値に対して新しい上位ビットは
“CIN”ポートに割り当てられた値によって定められ、古い下位ビットは“C
OUT”ポートに割り当てられる。テーブルIIのレジスタの記述を拡張する、
シフトレジスタの適切な振る舞いの記述が下記のテーブルIIIに示されている
。
【0048】
【表3】
シフトレジスタクラスに対するコンストラクタは新しいポートと新しいシフト
サービスを定めなければならない。基本レジスタが有している他のサービスは受
け継がれる。さらに、基本レジスタコンポーネントのサービスは、もしそのレジ
スタコンポーネントから継承している別のコンポーネントの機能を実行する必要
があるならば、オーバーライドされ得ることが理解されよう。
サービスを定めなければならない。基本レジスタが有している他のサービスは受
け継がれる。さらに、基本レジスタコンポーネントのサービスは、もしそのレジ
スタコンポーネントから継承している別のコンポーネントの機能を実行する必要
があるならば、オーバーライドされ得ることが理解されよう。
【0049】
ここに述べられたようなオブジェクト指向を用いたモデリング及びシミュレー
ションのさらなる議論が、1998年6月のヨーロッパシミュレーションマルチ
会議における、Mallet F、Boeri F、Duboc J−Fによる
“オブジェクト指向方法を用いたハードウェアモデリング及びシミュレーション
”(1998年)のp166〜168で与えられている。この発表は、この中に
リファレンスによって具体化されている。
ションのさらなる議論が、1998年6月のヨーロッパシミュレーションマルチ
会議における、Mallet F、Boeri F、Duboc J−Fによる
“オブジェクト指向方法を用いたハードウェアモデリング及びシミュレーション
”(1998年)のp166〜168で与えられている。この発表は、この中に
リファレンスによって具体化されている。
【0050】
オブジェクト指向のラピッド・プロトタイピング環境によるデジタルアーキテ クチャプロトタイピング
ここで述べられる、ラピッド・プロトタイピング環境41を用いたプログラム
可能なデジタルアーキテクチャをプロトタイピングするための一連のオペレーシ
ョンは図7の符号95で示される。通常、所望の設計あるいはアーキテクチャの
表す新しいモデルは、ブロック96に示されるように、現存するライブラリコン
ポーネントからまず構築される。所望のアーキテクチャがプログラム可能である
とすると、通常、プログラムの命令を実行するのに適当なプロセッサコアあるい
は同種のコンポーネントがモデルに組み込まれる。
可能なデジタルアーキテクチャをプロトタイピングするための一連のオペレーシ
ョンは図7の符号95で示される。通常、所望の設計あるいはアーキテクチャの
表す新しいモデルは、ブロック96に示されるように、現存するライブラリコン
ポーネントからまず構築される。所望のアーキテクチャがプログラム可能である
とすると、通常、プログラムの命令を実行するのに適当なプロセッサコアあるい
は同種のコンポーネントがモデルに組み込まれる。
【0051】
モデルの設計に続いて、任意のプログラム及び(あるいは)メモリデータがブ
ロック97に示されるようにシミュレーションで用いるためにイニシャライズさ
れる。特に、プログラム可能なデジタルアーキテクチャに対して、プログラムの
命令は実行されるために、通常、シミュレーションの間メモリにロードされなけ
ればならない。以下により詳しく論じられるように、メモリコンテンツはテキス
ト的なファイル、タブ区切りファイル、又は、ファイルあるいはデータベースに
配列されたデータを表す他の手段を介して定められる。
ロック97に示されるようにシミュレーションで用いるためにイニシャライズさ
れる。特に、プログラム可能なデジタルアーキテクチャに対して、プログラムの
命令は実行されるために、通常、シミュレーションの間メモリにロードされなけ
ればならない。以下により詳しく論じられるように、メモリコンテンツはテキス
ト的なファイル、タブ区切りファイル、又は、ファイルあるいはデータベースに
配列されたデータを表す他の手段を介して定められる。
【0052】
さらに、以下でより明らかになるように、プログラム命令に対して、機能的な
観点から、実際のバイナリオペコードや、実際のメモリにストアされるとともに
モデル化されたデジタルアーキテクチャの実際のハードウェア手段によって実行
される関連のあるバイナリデータを、ストアする必要はない。その代わりに、ハ
イレベルなモデリングとシミュレーションのために、単にアセンブリ言語表示の
命令をメモリにストアし、次いで、その命令の実行を正確にシミュレーションす
るために、これらのアセンブリ言語表示をシミュレーションの間解釈すれば十分
である。
観点から、実際のバイナリオペコードや、実際のメモリにストアされるとともに
モデル化されたデジタルアーキテクチャの実際のハードウェア手段によって実行
される関連のあるバイナリデータを、ストアする必要はない。その代わりに、ハ
イレベルなモデリングとシミュレーションのために、単にアセンブリ言語表示の
命令をメモリにストアし、次いで、その命令の実行を正確にシミュレーションす
るために、これらのアセンブリ言語表示をシミュレーションの間解釈すれば十分
である。
【0053】
いったん任意のメモリがサンプルデータでイニシャライズされると、ブロック
98に表されるようにユーザーは、シミュレーションの間、レジスタ及び(ある
いは)ポートをモニターに明記する。以下でさらに明らかになるように、シミュ
レーションの間、データを表示するための出力デバイスとしてだけ機能する専用
のディスプレイポートコンポーネントが、モデルのデバッグでアシストになるよ
うにモデルに組み込まれる。さらに、それぞれのコンポーネントで出力サービス
を提供することによって、モデル内の選択されたコンポーネントからの状態情報
の直接の出力をサポートするのが望ましい。このそれぞれのコンポーネントは、
コンポーネントのポートの現在値、あるいはコンポーネントの規定変数(specifi
c variable)がシミュレーションの間ディスプレイに出力されるべきかどうかを
決定するために、ユーザーによって手動で選択可能に構成されている。シミュレ
ーション情報を出力する他の手段が代わりに用いられても良い。
98に表されるようにユーザーは、シミュレーションの間、レジスタ及び(ある
いは)ポートをモニターに明記する。以下でさらに明らかになるように、シミュ
レーションの間、データを表示するための出力デバイスとしてだけ機能する専用
のディスプレイポートコンポーネントが、モデルのデバッグでアシストになるよ
うにモデルに組み込まれる。さらに、それぞれのコンポーネントで出力サービス
を提供することによって、モデル内の選択されたコンポーネントからの状態情報
の直接の出力をサポートするのが望ましい。このそれぞれのコンポーネントは、
コンポーネントのポートの現在値、あるいはコンポーネントの規定変数(specifi
c variable)がシミュレーションの間ディスプレイに出力されるべきかどうかを
決定するために、ユーザーによって手動で選択可能に構成されている。シミュレ
ーション情報を出力する他の手段が代わりに用いられても良い。
【0054】
いったん表示されるべき情報が特定されると、シミュレーションがブロック9
9で走る。通常、そのシミュレーションは、イベントに基づいたロジックシミュ
レータの他の形式のものと同じようにして進む。シミュレーションサイクルはク
ロックサイクルに基づき、イベントは、モデルの論理的な機能をシミュレートす
るためのクロックサイクルの間、モデルの全体に渡って送られる。ユーザーのセ
ッティングは、シミュレーションのポーズの間に、サイクルと遅延の数を制御す
るように構成され、追加のユーザーの入力により、早くシミュレーションをステ
ップしたり、シミュレーションを途中で止めたり等することが可能になる。
9で走る。通常、そのシミュレーションは、イベントに基づいたロジックシミュ
レータの他の形式のものと同じようにして進む。シミュレーションサイクルはク
ロックサイクルに基づき、イベントは、モデルの論理的な機能をシミュレートす
るためのクロックサイクルの間、モデルの全体に渡って送られる。ユーザーのセ
ッティングは、シミュレーションのポーズの間に、サイクルと遅延の数を制御す
るように構成され、追加のユーザーの入力により、早くシミュレーションをステ
ップしたり、シミュレーションを途中で止めたり等することが可能になる。
【0055】
次に、ブロック100に示されるように、シミュレーションが完了すると、受
け入れられるシミュレーション結果が得られたどうか、即ち、モデルが、アーキ
テクチャーに望まれる機能性能に合致していたかどうかが決定される。
け入れられるシミュレーション結果が得られたどうか、即ち、モデルが、アーキ
テクチャーに望まれる機能性能に合致していたかどうかが決定される。
【0056】
もしそうでなければ、モデルは、ブロック101に示されるように、新しいコ
ンポーネントの追加、及び(あるいは)現存するコンポーネントの修正によって
修正される必要がある。次に、シミュレーションは受け入れられる結果が得られ
るまで再度走らされる。受け入れられる結果を受け取ると、ブロック102に示
されるように、作られたモデルは、通常、新しいコンポーネントとしてライブラ
リに収容され、アーキテクチャのプロトタイピングが完成する。
ンポーネントの追加、及び(あるいは)現存するコンポーネントの修正によって
修正される必要がある。次に、シミュレーションは受け入れられる結果が得られ
るまで再度走らされる。受け入れられる結果を受け取ると、ブロック102に示
されるように、作られたモデルは、通常、新しいコンポーネントとしてライブラ
リに収容され、アーキテクチャのプロトタイピングが完成する。
【0057】
ここに述べられたモデリング及びシミュレーションプロセスをさらに明白にす
るために、図8が、ここに述べられるラピッド・プロトタイピング環境41によ
ってモデリング及びシミュレーションされることのできる典型的な処理システム
アーキテクチャ104を示す。処理システムは、CPUすなわちプロセッサコン
ポーネント105、及びCPUによって動かされるプログラムとデータを含むメ
モリ106により構成されている。コンポーネント105,106の両方ともR
ESET信号を受け取ることができ、CPUは、処理システム環境をシミュレー
トするのに用いるクロック信号を受け取るように構成されている。CPUはアド
レス(ADR)BUS上にアドレスを送ることができ、このアドレスはREAD
あるいはWRITE信号によって同行させられ、データはデータバス上でメモリ
とCPUの間で送られる。メモリは2つの出力部UNI及びUNI_Iを有し、
それらはそれぞれ、メモリがイニシャライズされたかどうかやプログラムがメモ
リにロードされたかどうかを示すために随意に与えられる。その出力は、少なく
ともシミュレーションを実行するのにメモリがプログラムでロードされなければ
ならないということを開発者に示するように用いられる。
るために、図8が、ここに述べられるラピッド・プロトタイピング環境41によ
ってモデリング及びシミュレーションされることのできる典型的な処理システム
アーキテクチャ104を示す。処理システムは、CPUすなわちプロセッサコン
ポーネント105、及びCPUによって動かされるプログラムとデータを含むメ
モリ106により構成されている。コンポーネント105,106の両方ともR
ESET信号を受け取ることができ、CPUは、処理システム環境をシミュレー
トするのに用いるクロック信号を受け取るように構成されている。CPUはアド
レス(ADR)BUS上にアドレスを送ることができ、このアドレスはREAD
あるいはWRITE信号によって同行させられ、データはデータバス上でメモリ
とCPUの間で送られる。メモリは2つの出力部UNI及びUNI_Iを有し、
それらはそれぞれ、メモリがイニシャライズされたかどうかやプログラムがメモ
リにロードされたかどうかを示すために随意に与えられる。その出力は、少なく
ともシミュレーションを実行するのにメモリがプログラムでロードされなければ
ならないということを開発者に示するように用いられる。
【0058】
図9は、CPU105のアーキテクチャをより詳細に示している。CPUの計
算部分はALU107とアキュムレータレジスタ108で構成されている。CP
Uの制御部はプログラムカウンタ(PC)110を有し、これは、プロセッサに
よって実行される現在の命令のアドレスを示す命令アドレスを生成するのに用い
られる。命令がフェッチされると、それは命令レジスタ(IR)112に、デー
タバスのDATA INラインから与えられ、そこでは命令のデコードが行われ
る。命令がデコードされた後、命令レジスタがコマンド信号をアーキテクチャの
種々のブロックに送る。ブロックにはALU107、PC110及びコントロー
ラ114が含まれる。
算部分はALU107とアキュムレータレジスタ108で構成されている。CP
Uの制御部はプログラムカウンタ(PC)110を有し、これは、プロセッサに
よって実行される現在の命令のアドレスを示す命令アドレスを生成するのに用い
られる。命令がフェッチされると、それは命令レジスタ(IR)112に、デー
タバスのDATA INラインから与えられ、そこでは命令のデコードが行われ
る。命令がデコードされた後、命令レジスタがコマンド信号をアーキテクチャの
種々のブロックに送る。ブロックにはALU107、PC110及びコントロー
ラ114が含まれる。
【0059】
データバスは、命令レジスタ112の他ALU107の入力部にも接続された
DATA INによりCPUに接続されている。さらに、命令レジスタから制御
信号CODEOPがALUに与えられており、アキュムレータレジスタ(ACC
U)の中身の出力もALUに与えられている。ALUの動作結果はアキュムレー
タレジスタ108へ出力部を介してフィードバックされる。これは、ALUの出
力部をデータバスのDATA OUTラインに接続するバッファ118にもフィ
ードバックされる。ALUはさらにゼロのフラッグ信号をコントローラ114に
与える。
DATA INによりCPUに接続されている。さらに、命令レジスタから制御
信号CODEOPがALUに与えられており、アキュムレータレジスタ(ACC
U)の中身の出力もALUに与えられている。ALUの動作結果はアキュムレー
タレジスタ108へ出力部を介してフィードバックされる。これは、ALUの出
力部をデータバスのDATA OUTラインに接続するバッファ118にもフィ
ードバックされる。ALUはさらにゼロのフラッグ信号をコントローラ114に
与える。
【0060】
コントローラ114は、CPU内の他のブロックを制御するために多くの制御
信号を出力する。コントローラの第1のタスクは、読み込みあるいは書き込みが
あるクロックサイクルでメモリに実行されるのか、そして、その読み込みあるい
は書き込みは、データ交換(アドレスが命令レジスタ112から発する)である
のか、あるいは命令の読み込み(アドレスがプログラムカウンタ110から発す
る)であるのかを決定することである。アドレスバスに対する適切なドライバー
の選択は、コントローラ114によって、マルチプレクサ116へのVAL_D
ATA選択信号の主張(assertion)を介してなされる。マルチプレクサ116は
命令レジスタとプログラムカウンタの出力をアドレスバスADRに多重送信する
。
信号を出力する。コントローラの第1のタスクは、読み込みあるいは書き込みが
あるクロックサイクルでメモリに実行されるのか、そして、その読み込みあるい
は書き込みは、データ交換(アドレスが命令レジスタ112から発する)である
のか、あるいは命令の読み込み(アドレスがプログラムカウンタ110から発す
る)であるのかを決定することである。アドレスバスに対する適切なドライバー
の選択は、コントローラ114によって、マルチプレクサ116へのVAL_D
ATA選択信号の主張(assertion)を介してなされる。マルチプレクサ116は
命令レジスタとプログラムカウンタの出力をアドレスバスADRに多重送信する
。
【0061】
さらに、LOAD_ACCU信号がアキュムレータレジスタ108のラッチン
グを制御し、ENABLE_DATA信号はALU107の出力データをバッフ
ァ118がキャプチャーするのを可能にする。LOAD_INST信号は命令レ
ジスタ112による新しい命令のラッチングを制御し、一方それぞれPCを増や
し且つPCを新しいアドレスでロードするために、INC_PC及びLOAD_
PC信号がプログラムカウンタ110に与えられる。さらに、コントローラ11
4はWRITE及びREAD信号を、デコードされた命令に応答したCPUの外
側に出力する。
グを制御し、ENABLE_DATA信号はALU107の出力データをバッフ
ァ118がキャプチャーするのを可能にする。LOAD_INST信号は命令レ
ジスタ112による新しい命令のラッチングを制御し、一方それぞれPCを増や
し且つPCを新しいアドレスでロードするために、INC_PC及びLOAD_
PC信号がプログラムカウンタ110に与えられる。さらに、コントローラ11
4はWRITE及びREAD信号を、デコードされた命令に応答したCPUの外
側に出力する。
【0062】
コントローラ114は外部クロック信号CLKをCPUのために受け取る。さ
らに、命令レジスタ112、プログラムカウンタ110、アキュムレータ108
及びコントローラ114のそれぞれは、CPUに与えられたRESET信号に応
答する。
らに、命令レジスタ112、プログラムカウンタ110、アキュムレータ108
及びコントローラ114のそれぞれは、CPUに与えられたRESET信号に応
答する。
【0063】
任意の数のコンピュータユーザーインターフェースが、本発明にかかる前述の
処理システムの適切なオブジェクト指向モデルを開発するに際し、開発者をアシ
ストするために利用される。例えば、ビジュアルなドラッグ−アンド−ドロップ
的なものを用いて、ライブラリからのコンポーネントの組み立てを所望の設計に
するのをサポートするJavaアブストラクトウィンドウツールキット(AWT
)等を用いたグラフィカルユーザーインターフェースを用いるのが望ましい。そ
のような環境を用いるとコンポーネントはアイコンによって表され、種々のライ
ブラリからワークスペースにコンポーネントをドロップするのに用いられるドラ
ッグ−アンド−ドロップの機能が用いられている。さらに、コンポーネントは、
単にコンポーネントでクリックして、ポップ−アップメニュー、ダイアログボッ
クス、及び、所望のオプションや他の設定パラメータを設定するのを制御する他
のユーザーインターフェースを用いることによって簡単に設定することができる
。コンポーネントの相互結合は、コンポーネントアイコンに表示されるポートコ
ントロールをクリックすることによって実行され、相互結合は、ラインや他の適
当なグラフィカル表示によって表される。
処理システムの適切なオブジェクト指向モデルを開発するに際し、開発者をアシ
ストするために利用される。例えば、ビジュアルなドラッグ−アンド−ドロップ
的なものを用いて、ライブラリからのコンポーネントの組み立てを所望の設計に
するのをサポートするJavaアブストラクトウィンドウツールキット(AWT
)等を用いたグラフィカルユーザーインターフェースを用いるのが望ましい。そ
のような環境を用いるとコンポーネントはアイコンによって表され、種々のライ
ブラリからワークスペースにコンポーネントをドロップするのに用いられるドラ
ッグ−アンド−ドロップの機能が用いられている。さらに、コンポーネントは、
単にコンポーネントでクリックして、ポップ−アップメニュー、ダイアログボッ
クス、及び、所望のオプションや他の設定パラメータを設定するのを制御する他
のユーザーインターフェースを用いることによって簡単に設定することができる
。コンポーネントの相互結合は、コンポーネントアイコンに表示されるポートコ
ントロールをクリックすることによって実行され、相互結合は、ラインや他の適
当なグラフィカル表示によって表される。
【0064】
例えば、図10は、図3のラピッド・プロトタイピング環境41からの代表的
なアーキテクチャウィンドウ50を示し、図8の処理システム104のオブジェ
クト指向モデルの一部をグラフィカル表示で示したものである。アーキテクチャ
ウィンドウ50にはワークスペース120や種々の利用可能なコンポーネントラ
イブラリを示す複数のタブ122が示されており、ユーザーはアーキテクチャモ
デルにドロップされるべき適切なコンポーネントを配置するためにこれらのコン
ポーネントを選択する。ワークスペース120にはグラフィカルアイコン124
,126,128が表示されており、これらはそれぞれプログラムカウンタ11
0、命令レジスタ112、コントローラ114を模範的な処理システムにおいて
表している。アイコン124−128はそれぞれポートコントロール130を有
しており、これは、結びつけられたコンポーネントによって提供されるそれぞれ
のポートを表す。異なるコンポーネントのポート間での相互接合は、異なるアイ
コンのポートコントロール間を張るライン132のような相互結合要素によって
グラフィカルに表されている。
なアーキテクチャウィンドウ50を示し、図8の処理システム104のオブジェ
クト指向モデルの一部をグラフィカル表示で示したものである。アーキテクチャ
ウィンドウ50にはワークスペース120や種々の利用可能なコンポーネントラ
イブラリを示す複数のタブ122が示されており、ユーザーはアーキテクチャモ
デルにドロップされるべき適切なコンポーネントを配置するためにこれらのコン
ポーネントを選択する。ワークスペース120にはグラフィカルアイコン124
,126,128が表示されており、これらはそれぞれプログラムカウンタ11
0、命令レジスタ112、コントローラ114を模範的な処理システムにおいて
表している。アイコン124−128はそれぞれポートコントロール130を有
しており、これは、結びつけられたコンポーネントによって提供されるそれぞれ
のポートを表す。異なるコンポーネントのポート間での相互接合は、異なるアイ
コンのポートコントロール間を張るライン132のような相互結合要素によって
グラフィカルに表されている。
【0065】
回路コンポーネントに加えてさらに、モデルのシミュレーションで役に立つ追
加のコントロール、即ちアイコンをモデルに組み込むのが望ましい。例えば、符
号134で表される手動で作動させられるスイッチのようなコンポーネントが、
シミュレーションの前あるいはシミュレーションの間に、種々のポートにストア
された値を手動で制御するのに用いられる。コントロール134は、例えばシミ
ュレートされたモデルを初期状態に戻すためにシミュレーションの間にハードリ
セットを発じさせるのに利用される。
加のコントロール、即ちアイコンをモデルに組み込むのが望ましい。例えば、符
号134で表される手動で作動させられるスイッチのようなコンポーネントが、
シミュレーションの前あるいはシミュレーションの間に、種々のポートにストア
された値を手動で制御するのに用いられる。コントロール134は、例えばシミ
ュレートされたモデルを初期状態に戻すためにシミュレーションの間にハードリ
セットを発じさせるのに利用される。
【0066】
さらに、出力コンポーネント、例えばディスプレイコンポーネント136がモ
デルに組み込まれるとともにいくらかのポートに結ばれ、それぞれのポートの加
えられる信号をシミュレーションの間に出力させる。コントロール136は、例
えば命令レジスタにより発せられた、CODEOPコントロールライン上の“A
DD”値の出力を表す。
デルに組み込まれるとともにいくらかのポートに結ばれ、それぞれのポートの加
えられる信号をシミュレーションの間に出力させる。コントロール136は、例
えば命令レジスタにより発せられた、CODEOPコントロールライン上の“A
DD”値の出力を表す。
【0067】
前述のグラフィカルユーザーインターフェース環境の実装は、十分に即座の開
示の利益を有している当業者の能力の範囲内である。Javaや他のアプリケー
ションの環境でサポートされる追加のグラフィカル機能がいくつかのアプリケー
ションでさらに用いられても良い。
示の利益を有している当業者の能力の範囲内である。Javaや他のアプリケー
ションの環境でサポートされる追加のグラフィカル機能がいくつかのアプリケー
ションでさらに用いられても良い。
【0068】
さらに、フォーム・ベースのプログラミング、ラピッド・アプリケーション開
発プログラミングのような種々のソフトウェア開発方法論が、ここで論じられた
ラピッド・プロトタイピング環境によって提供される機能を高めるために用いら
れてもよい。例えば、ユーザーによる任意のアイコンの選択により、ユーザーが
特定のコンポーネントを要望どおりにカスタマイズのに修正する、設定可能な値
及び他のパラメータによるテーブルを組み込んだダイアログボックスが発生する
。例えば、メモリコンポーネントに対して、ユーザーがメモリのサイズ、メモリ
のアドレス空間、メモリのスピード、メモリのタイプ等をダイアログボックス選
択により特定可能にするのが望ましい。さらに、シミュレーションの間に用いら
れるサンプルデータをメモリの内容として与えるために、外部ファイル例えばテ
キストファイルを関連づけるのが望ましい。さらに、ユーザーが、インスタンス
化されたコンポーネントのネーミングを要望どおりに制御できるように、コンポ
ーネントのユニークなネーミングをサポートするのが望ましい。
発プログラミングのような種々のソフトウェア開発方法論が、ここで論じられた
ラピッド・プロトタイピング環境によって提供される機能を高めるために用いら
れてもよい。例えば、ユーザーによる任意のアイコンの選択により、ユーザーが
特定のコンポーネントを要望どおりにカスタマイズのに修正する、設定可能な値
及び他のパラメータによるテーブルを組み込んだダイアログボックスが発生する
。例えば、メモリコンポーネントに対して、ユーザーがメモリのサイズ、メモリ
のアドレス空間、メモリのスピード、メモリのタイプ等をダイアログボックス選
択により特定可能にするのが望ましい。さらに、シミュレーションの間に用いら
れるサンプルデータをメモリの内容として与えるために、外部ファイル例えばテ
キストファイルを関連づけるのが望ましい。さらに、ユーザーが、インスタンス
化されたコンポーネントのネーミングを要望どおりに制御できるように、コンポ
ーネントのユニークなネーミングをサポートするのが望ましい。
【0069】
通常、グラフィカルユーザーインターフェースによるパラメータの修正による
コンポーネントの修正に応じて、そのコンポーネントに対するJava言語仕様
は、通常、Javaシミュレータによって動的に修正される。そのようにするこ
とは、ビジュアルプログラミング環境での動的コード生成に類似しており、その
コンフィギュレーションを用いることはよく知られた技術である。
コンポーネントの修正に応じて、そのコンポーネントに対するJava言語仕様
は、通常、Javaシミュレータによって動的に修正される。そのようにするこ
とは、ビジュアルプログラミング環境での動的コード生成に類似しており、その
コンフィギュレーションを用いることはよく知られた技術である。
【0070】
さらに、種々のコンポーネントライブラリの管理オペレーションが本発明に関
連して与えられることが理解されよう。Javaや他のオブジェクト指向言語と
して知られている種々のビジュアルあるいはラピッドなアプリケーション開発ツ
ールと同様に、オブジェクトの管理は多くの手段によってサポートされる。例え
ば、オブジェクトはブックマークによって体系づけられる。さらに、種々のアイ
コンが特定のコンポーネントに関連づけられて利用される。さらに、アイコンの
編集もサポートされる。
連して与えられることが理解されよう。Javaや他のオブジェクト指向言語と
して知られている種々のビジュアルあるいはラピッドなアプリケーション開発ツ
ールと同様に、オブジェクトの管理は多くの手段によってサポートされる。例え
ば、オブジェクトはブックマークによって体系づけられる。さらに、種々のアイ
コンが特定のコンポーネントに関連づけられて利用される。さらに、アイコンの
編集もサポートされる。
【0071】
デジタルアーキテクチャのモデリングとシミュレーションを高めるために、多
くのユニークな強化がラピッド・プロトタイピング環境で与えられる。そのよう
な強化の中で、ポートの管理や多重化、動的な命令デコーダーの生成が注目に値
する。これらの強化のそれぞれは以下でさらに詳しく論じられる。
くのユニークな強化がラピッド・プロトタイピング環境で与えられる。そのよう
な強化の中で、ポートの管理や多重化、動的な命令デコーダーの生成が注目に値
する。これらの強化のそれぞれは以下でさらに詳しく論じられる。
【0072】ポート管理
上述したように、ラピッド・プロトタイピング環境によりサポートされる1つ
の特定の機能は、シミュレーション下でモデル内のコンポーネント間でのデータ
伝送を管理するためのポート管理の機能である。本実施例において、ポートは、
コンポーネント間で信号としての値を伝送し、それに応答してコンポーネントの
中のサービスの実行を開始するのに利用される、データのタイプに依存しない構
成体(construct)である。基本ポートタイプが定められ、これから多くのチャイ
ルドポートクラスが定められる。本実施例においては、例えばサービスポートは
入力ポート、出力ポート、入出力ポート(双方向ポート)及びコミュニケーショ
ンポートとして定められる。以下でより明らかになるように、コミュニケーショ
ンポートは管理可能開発環境を提供するのに重要な特徴であり、そのようなポー
トは、コンポーネント間の共通路を横切って多数の信号の多重化を可能にする。
の特定の機能は、シミュレーション下でモデル内のコンポーネント間でのデータ
伝送を管理するためのポート管理の機能である。本実施例において、ポートは、
コンポーネント間で信号としての値を伝送し、それに応答してコンポーネントの
中のサービスの実行を開始するのに利用される、データのタイプに依存しない構
成体(construct)である。基本ポートタイプが定められ、これから多くのチャイ
ルドポートクラスが定められる。本実施例においては、例えばサービスポートは
入力ポート、出力ポート、入出力ポート(双方向ポート)及びコミュニケーショ
ンポートとして定められる。以下でより明らかになるように、コミュニケーショ
ンポートは管理可能開発環境を提供するのに重要な特徴であり、そのようなポー
トは、コンポーネント間の共通路を横切って多数の信号の多重化を可能にする。
【0073】
例として、ハードウェア設計は、通常、多くの許可信号すなわちチップ−セレ
クト信号、コンフィギュレーション信号、互換性信号等を有し、それらは性能評
価において競合しない。さらに、制御信号は、例えばマルチプレクサで振る舞っ
ている種々のパスの選択を認めるというような共通の特性でグループ化される。
前述したような階層的手段でモデリングするとき、そのような信号は多くの中継
ポートや信号を生じさせる。個々の信号を運ぶための多くのポートを定め、グラ
フィカル環境でコンポーネント間のそのようなポートの全てを接続することによ
り、過剰な情報がアーキテクチャウィンドウに表示され、ディスプレイが、モデ
ルの理解を難しくさせる多くのラインで散乱させられる。
クト信号、コンフィギュレーション信号、互換性信号等を有し、それらは性能評
価において競合しない。さらに、制御信号は、例えばマルチプレクサで振る舞っ
ている種々のパスの選択を認めるというような共通の特性でグループ化される。
前述したような階層的手段でモデリングするとき、そのような信号は多くの中継
ポートや信号を生じさせる。個々の信号を運ぶための多くのポートを定め、グラ
フィカル環境でコンポーネント間のそのようなポートの全てを接続することによ
り、過剰な情報がアーキテクチャウィンドウに表示され、ディスプレイが、モデ
ルの理解を難しくさせる多くのラインで散乱させられる。
【0074】
それ故、この難点に取り組むために、コミュニケーションポートは、あるポー
ト内で多くの信号の伝送を受け入れるように定められており、その結果、接続さ
れたコンポーネントにおける1つのポート結合は、コンポーネント間の多くの信
号の伝送を表すように用いられる。多重化されたコミュニケーションポートを用
いることが望ましい状況の例は、命令デコーダをレジスタに接続しているときに
ある。このレジスタは、ソースあるいはALUによる算術演算の宛先として選択
されることのできる多くのレジスタを組み込んでいる。ソース選択信号と宛先信
号との両方を1つのコミュニケーションポートに多重送信することによって、そ
れぞれのソースと宛先の選択に対する個々のポートは必要とされず、また、その
ようなポート間で張る個々のラインも必要でない。レジスタファイルとデコーダ
内での適切な相互結合は依然として必要とされ、それは、例えばレジスタファイ
ルに対しては、レジスタ選択信号をレジスタファイル内の適切なレジスタにルー
ティングするのに必要とされる。それにもかかわらず、レジスタファイルが1つ
のアイコン(ファイルにカプセル化された個々のレジスタ)として表示されると
きに、深刻な表示の散乱は避けられ、このことは、そのようなコンポーネントが
モデルにドロップされるときに、デコーダとレジスタファイルを相互結合するの
に過度な努力が避けられるのと同様である。
ト内で多くの信号の伝送を受け入れるように定められており、その結果、接続さ
れたコンポーネントにおける1つのポート結合は、コンポーネント間の多くの信
号の伝送を表すように用いられる。多重化されたコミュニケーションポートを用
いることが望ましい状況の例は、命令デコーダをレジスタに接続しているときに
ある。このレジスタは、ソースあるいはALUによる算術演算の宛先として選択
されることのできる多くのレジスタを組み込んでいる。ソース選択信号と宛先信
号との両方を1つのコミュニケーションポートに多重送信することによって、そ
れぞれのソースと宛先の選択に対する個々のポートは必要とされず、また、その
ようなポート間で張る個々のラインも必要でない。レジスタファイルとデコーダ
内での適切な相互結合は依然として必要とされ、それは、例えばレジスタファイ
ルに対しては、レジスタ選択信号をレジスタファイル内の適切なレジスタにルー
ティングするのに必要とされる。それにもかかわらず、レジスタファイルが1つ
のアイコン(ファイルにカプセル化された個々のレジスタ)として表示されると
きに、深刻な表示の散乱は避けられ、このことは、そのようなコンポーネントが
モデルにドロップされるときに、デコーダとレジスタファイルを相互結合するの
に過度な努力が避けられるのと同様である。
【0075】
本実施例において、それぞれのポートはポート名、アイコン位置(アイコンの
どのエッジにポートが配置されるかを表す)及びポートタイプ(ここでは出力、
入力、あるいはコミュニケーション)を組み込んでいる。それぞれのポートは、
1つ以上のイベント生成プログラムによって生成される1つ以上のイベント(即
ち、“1”、“0”、“立ち上がりエッジ”、“立ち下がりエッジ”)に関連づ
けられ、このイベントに応答してポート上で伝えられるべき値に関連づけられる
。イベント名は、例えば信号名あるいはクロック名である。
どのエッジにポートが配置されるかを表す)及びポートタイプ(ここでは出力、
入力、あるいはコミュニケーション)を組み込んでいる。それぞれのポートは、
1つ以上のイベント生成プログラムによって生成される1つ以上のイベント(即
ち、“1”、“0”、“立ち上がりエッジ”、“立ち下がりエッジ”)に関連づ
けられ、このイベントに応答してポート上で伝えられるべき値に関連づけられる
。イベント名は、例えば信号名あるいはクロック名である。
【0076】
図11は、例えば、特定のコンポーネントに対してポートを設定する試みに応
じて、ラピッド・プロトタイピング環境によって実行される設定ポートルーチン
(configure port routine)14を示す。ルーチン140は、例えばコンポーネン
トを選択し、それに対して追加ポート操作を始動することによって新しいポート
を作成する試みに応じて実行される。ルーチン140は、さらにユーザーによっ
て選択された現存ポートを編集するユーザーの要求に応じて、現存ポートに対し
ても実行される。
じて、ラピッド・プロトタイピング環境によって実行される設定ポートルーチン
(configure port routine)14を示す。ルーチン140は、例えばコンポーネン
トを選択し、それに対して追加ポート操作を始動することによって新しいポート
を作成する試みに応じて実行される。ルーチン140は、さらにユーザーによっ
て選択された現存ポートを編集するユーザーの要求に応じて、現存ポートに対し
ても実行される。
【0077】
ルーチン140は、ブロック142でポート名、アイコン位置、ポートタイプ
(入力、出力、入出力、コミュニケーション(in,out,inout,communication)を
ユーザーから取得することによって始まる。次に、ブロック144ではポートを
作動させるためにイベント名、イベント値、伝送値(propagate value)を取得す
る。前述したように、イベント名は信号を指し、その信号の状態は、ポートを介
して値を伝送するかどうかを決定するためにポーリングされる。イベント値はト
リガー条件を指し、この場合は識別された信号の値は、例えば信号がハイあるい
はローのロジックレベルであるとき、あるいは立ち上がりエッジもしくは立ち下
がりエッジへの移り目が検知されたときに、値の伝送という結果を生じせしめる
。伝送値は、トリガーされたイベントに応答してポートを経由して出力する値を
示す。
(入力、出力、入出力、コミュニケーション(in,out,inout,communication)を
ユーザーから取得することによって始まる。次に、ブロック144ではポートを
作動させるためにイベント名、イベント値、伝送値(propagate value)を取得す
る。前述したように、イベント名は信号を指し、その信号の状態は、ポートを介
して値を伝送するかどうかを決定するためにポーリングされる。イベント値はト
リガー条件を指し、この場合は識別された信号の値は、例えば信号がハイあるい
はローのロジックレベルであるとき、あるいは立ち上がりエッジもしくは立ち下
がりエッジへの移り目が検知されたときに、値の伝送という結果を生じせしめる
。伝送値は、トリガーされたイベントに応答してポートを経由して出力する値を
示す。
【0078】
前述したように、伝送値は、タイプが規定されておらず、ポート上で伝送され
るデータを表す文字列を含む。代案では、伝送される値は、とりわけロジックレ
ベル(例えばハイあるいはロー電圧)、あるいは立ち上がりエッジもしくは立ち
下がりエッジでよい。
るデータを表す文字列を含む。代案では、伝送される値は、とりわけロジックレ
ベル(例えばハイあるいはロー電圧)、あるいは立ち上がりエッジもしくは立ち
下がりエッジでよい。
【0079】
ブロック146に示されるように、伝送値用の別の可能性ある値は、多重化さ
れたコミュニケーションポートを表す“多重化”値であり、ユーザーは、このコ
ミュニケーションポート上で種々の信号を1つのコミュニケーション信号として
多重化するのを望む。多重化要求が検知されると、ブロック146で、ユーザー
から、選択されたイベントに応答して同時に送信するための、その信号及び値を
識別する1つ以上の名/値のペアを取得するために、ブロック148に制御が渡
される。したがって、伝送されるそれぞれの信号に対して、ユーザーは、その信
号に対して伝送される値と一緒に信号をリストする。ポートの設定はそのとき完
了する。ブロック146に戻って、もし伝送値が“多重化”でなければブロック
148は無視され、ポートの設定は完了する。
れたコミュニケーションポートを表す“多重化”値であり、ユーザーは、このコ
ミュニケーションポート上で種々の信号を1つのコミュニケーション信号として
多重化するのを望む。多重化要求が検知されると、ブロック146で、ユーザー
から、選択されたイベントに応答して同時に送信するための、その信号及び値を
識別する1つ以上の名/値のペアを取得するために、ブロック148に制御が渡
される。したがって、伝送されるそれぞれの信号に対して、ユーザーは、その信
号に対して伝送される値と一緒に信号をリストする。ポートの設定はそのとき完
了する。ブロック146に戻って、もし伝送値が“多重化”でなければブロック
148は無視され、ポートの設定は完了する。
【0080】
ユーザーインターフェース(例えばグラフィカルユーザーインターフェース)
は、ポートの管理と設定を容易にするためにサポートされているということが理
解されよう。例えば、ユーザーはポートを選択した後、“管理”ボタンを選択す
ることを必要とされるかもしれない。それから、種々の利用可能な信号、イベン
ト条件及び伝送値を選択するためのダイアログボックス内でリストボックス、チ
ェックボックスあるいは他のコントロールを利用することを必要とされるかも知
れない。さらに、多重化オプションの選択が、ユーザーがポートを管理している
ときに選択されるダイアログボックスに配置されたボタンによりあるかもしれな
い。他のユーザーインターフェースコントロールが代わりに用いられるかも知れ
ない。
は、ポートの管理と設定を容易にするためにサポートされているということが理
解されよう。例えば、ユーザーはポートを選択した後、“管理”ボタンを選択す
ることを必要とされるかもしれない。それから、種々の利用可能な信号、イベン
ト条件及び伝送値を選択するためのダイアログボックス内でリストボックス、チ
ェックボックスあるいは他のコントロールを利用することを必要とされるかも知
れない。さらに、多重化オプションの選択が、ユーザーがポートを管理している
ときに選択されるダイアログボックスに配置されたボタンによりあるかもしれな
い。他のユーザーインターフェースコントロールが代わりに用いられるかも知れ
ない。
【0081】
シミュレーションの間、イベント、例えばクロック信号、リセット信号、ある
いは他の入力信号の立ち上がりエッジあるいは立ち下がりエッジが、選択された
ポートを介して信号値の伝送を始めるためにポートに伝送される。ポートが多重
化ポートであろうと多重化ポートでなかろうと、イベントの検知とトリガーは概
して同じである。トリガーイベント(多重化されていないポートでの)に応答し
て1つの信号値を伝送する代わりに、多重化ポートは、通常、同イベントに応答
して多くの信号に対する値を伝送する。
いは他の入力信号の立ち上がりエッジあるいは立ち下がりエッジが、選択された
ポートを介して信号値の伝送を始めるためにポートに伝送される。ポートが多重
化ポートであろうと多重化ポートでなかろうと、イベントの検知とトリガーは概
して同じである。トリガーイベント(多重化されていないポートでの)に応答し
て1つの信号値を伝送する代わりに、多重化ポートは、通常、同イベントに応答
して多くの信号に対する値を伝送する。
【0082】
上述の総称コンポーネントモデルに関連して用いられるとき、多くの制御ポー
トは、モデルを簡単にし、表示されるポートや信号経路の数を減じるために、構
造コンポーネントに抽象化されることができる。さらに、ポートは、バイナリロ
ジックレベルの形態でというよりも、記号やトークンのような信号を送信するこ
とができ、したがって、すぐれた直感性とユーザー理解をシミュレーションの間
に提供することができる。例として、後に述べられる典型的な動的に生成される
命令デコーダに対して、デコードされる命令は、実際のバイナリオペコードを送
るというよりも、例えば“add r0, r1, r3”のように記号あるいは文字列として
デコーダに送られる。基本的なバイナリコードはハイレベルな性能評価に適切で
ないので、アセンブリ言語文字列としての命令の伝送をサポートすることは非常
にシミュレーションの間のデバッグを簡易にする。
トは、モデルを簡単にし、表示されるポートや信号経路の数を減じるために、構
造コンポーネントに抽象化されることができる。さらに、ポートは、バイナリロ
ジックレベルの形態でというよりも、記号やトークンのような信号を送信するこ
とができ、したがって、すぐれた直感性とユーザー理解をシミュレーションの間
に提供することができる。例として、後に述べられる典型的な動的に生成される
命令デコーダに対して、デコードされる命令は、実際のバイナリオペコードを送
るというよりも、例えば“add r0, r1, r3”のように記号あるいは文字列として
デコーダに送られる。基本的なバイナリコードはハイレベルな性能評価に適切で
ないので、アセンブリ言語文字列としての命令の伝送をサポートすることは非常
にシミュレーションの間のデバッグを簡易にする。
【0083】
通常、多重化コミュニケーションポートの相互結合は、1つの相互結合要素例
えば1つのライン(図10に示されるような相互結合形式)によりモデルのディ
スプレイに表される。2つのコンポーネント間の相互結合を表す他の表示要素が
代わりに用いられ、しかも、そのような表示要素は、相互結合は1つの信号に対
しての相互結合というよりも多重化された経路であるということを示せることが
理解されよう。
えば1つのライン(図10に示されるような相互結合形式)によりモデルのディ
スプレイに表される。2つのコンポーネント間の相互結合を表す他の表示要素が
代わりに用いられ、しかも、そのような表示要素は、相互結合は1つの信号に対
しての相互結合というよりも多重化された経路であるということを示せることが
理解されよう。
【0084】
通常、多重化された信号を多重化ポートから受け取る回路コンポーネントは、
受信コンポーネント内で信号を逆多重化してそのような信号を適切なコンポーネ
ントに渡すために、内部コンポーネントを実行することが必要とされることがさ
らに理解されよう。例えば、逆多重化コンポーネントに対する多重化入力へのど
んな変化も、逆多重化コンポーネントに対して定められた特定の出力部に伝送さ
れるように、コンビネーションの振る舞いが逆多重化コンポーネント内で実行さ
れる。
受信コンポーネント内で信号を逆多重化してそのような信号を適切なコンポーネ
ントに渡すために、内部コンポーネントを実行することが必要とされることがさ
らに理解されよう。例えば、逆多重化コンポーネントに対する多重化入力へのど
んな変化も、逆多重化コンポーネントに対して定められた特定の出力部に伝送さ
れるように、コンビネーションの振る舞いが逆多重化コンポーネント内で実行さ
れる。
【0085】動的な命令デコーダの生成
前述したサービスポートの概念は、プロセッサモデルの命令デコーダコンポー
ネントのモデリングにおいてもさらに利用される。特に、上述した典型的なアー
キテクチャを備えたようなプロセッサアーキテクチャのモデルを開発するときに
、しばしば実行に特有のものである重要なコンポーネントは命令デコーダである
。それは、プログラムメモリから命令を実行して、CPUの演算ユニットと制御
ユニットを制御するのに用いられ、デコーダによって受け取られた命令を実行す
るようにCPUを特に形成する。本実施例において、ユニークな動的な命令デコ
ーダの生成プロセスが与えられており、それによって、カスタムデコーダが命令
セットのテキスト的な定義に応答して動的に生成させられる。
ネントのモデリングにおいてもさらに利用される。特に、上述した典型的なアー
キテクチャを備えたようなプロセッサアーキテクチャのモデルを開発するときに
、しばしば実行に特有のものである重要なコンポーネントは命令デコーダである
。それは、プログラムメモリから命令を実行して、CPUの演算ユニットと制御
ユニットを制御するのに用いられ、デコーダによって受け取られた命令を実行す
るようにCPUを特に形成する。本実施例において、ユニークな動的な命令デコ
ーダの生成プロセスが与えられており、それによって、カスタムデコーダが命令
セットのテキスト的な定義に応答して動的に生成させられる。
【0086】
カスタムデコーダを生成するために総称デコーダコンポーネントは命令定義セ
ットに応答して動的に修正させられる。図12は、例えば典型的な処理システム
の命令レジスタアイコン126内にカプセル化されたデコーダアイコン150を
示しており、ここに開示された手段で動的に修正させられる総称デコーダコンポ
ーネントを表す。総称デコーダコンポーネントはまず3つのポートを有している
。それは、クロック信号、すなわちLOAD_INST信号のような命令ロード
信号を受け取る“SR”ポート、RESET信号を受け取るように構成された“
RESET”ポート、及びデータバスから命令を受け取るように構成された命令
(“INSTR”)ポートである。
ットに応答して動的に修正させられる。図12は、例えば典型的な処理システム
の命令レジスタアイコン126内にカプセル化されたデコーダアイコン150を
示しており、ここに開示された手段で動的に修正させられる総称デコーダコンポ
ーネントを表す。総称デコーダコンポーネントはまず3つのポートを有している
。それは、クロック信号、すなわちLOAD_INST信号のような命令ロード
信号を受け取る“SR”ポート、RESET信号を受け取るように構成された“
RESET”ポート、及びデータバスから命令を受け取るように構成された命令
(“INSTR”)ポートである。
【0087】
図13は、ユーザーが、総称コンポーネントからカスタムデコーダを生成する
ために始めるデコーダカスタマイズプロセス160を示す。このプロセスは、モ
デル化されたプロセッサによって実行される命令に対する定義を表す命令セット
ファイルを作ることによりブロック162で始まる。通常、命令セットファイル
はテキスト的な形式であり、プロセッサに対してアクセス可能なレジスタの定義
の他に、そのような命令の実行に応答して伝送するための信号に結びつけられた
サポートされた命令をも含んでいる。様々な種類の代わりの命令セット形式が用
いられても良く、本発明はここに述べられる特定の実装に制限されない。
ために始めるデコーダカスタマイズプロセス160を示す。このプロセスは、モ
デル化されたプロセッサによって実行される命令に対する定義を表す命令セット
ファイルを作ることによりブロック162で始まる。通常、命令セットファイル
はテキスト的な形式であり、プロセッサに対してアクセス可能なレジスタの定義
の他に、そのような命令の実行に応答して伝送するための信号に結びつけられた
サポートされた命令をも含んでいる。様々な種類の代わりの命令セット形式が用
いられても良く、本発明はここに述べられる特定の実装に制限されない。
【0088】
次に、ブロック164で、前述の総称デコーダアイコンが現存の設計にドロッ
プされる。次にブロック166で、命令セットファイルがデコーダコンポーネン
トインスタンスにリンクされる。命令セットファイルのリンク付けは、例えばパ
ラメータ設定ウィンドウを開けるために総称デコーダアイコンを選択し、適切な
選択ボックスで命令セットファイルのファイル名を入力することによって行われ
る。命令セットファイル名のデコーダコンポーネントインスタンスへの服従に応
じて、制御はブロック168へ進み、例えばユーザーによるパラメータ設定ウィ
ンドウからの退去と同時に生成デコーダルーチンが実行される。したがって、生
成デコーダルーチンは、総称デコーダの命令セットファイルへのリンク付けに応
じて動的に呼ばれる。命令デコーダの動的生成は、いったん命令セットファイル
がそれにリンク付けされると、多くの代わりの手段、例えばデコーダを生成する
ための特定のユーザー入力に応じて実行されうる。
プされる。次にブロック166で、命令セットファイルがデコーダコンポーネン
トインスタンスにリンクされる。命令セットファイルのリンク付けは、例えばパ
ラメータ設定ウィンドウを開けるために総称デコーダアイコンを選択し、適切な
選択ボックスで命令セットファイルのファイル名を入力することによって行われ
る。命令セットファイル名のデコーダコンポーネントインスタンスへの服従に応
じて、制御はブロック168へ進み、例えばユーザーによるパラメータ設定ウィ
ンドウからの退去と同時に生成デコーダルーチンが実行される。したがって、生
成デコーダルーチンは、総称デコーダの命令セットファイルへのリンク付けに応
じて動的に呼ばれる。命令デコーダの動的生成は、いったん命令セットファイル
がそれにリンク付けされると、多くの代わりの手段、例えばデコーダを生成する
ための特定のユーザー入力に応じて実行されうる。
【0089】
以下に論じられるように、生成デコーダルーチンは命令セットファイルを分析
し、適当なポートを有するカスタムデコーダアイコンを作る。このポートは、命
令デコーダによって受け取られる種々の命令に応じて命令デコーダによって選択
的に主張(assert)される信号を表す。いったんカスタマイズされたデコーダが生
成されると、制御はブロック170に進み、デコーダは設計の残りに繋がれる。
例えば、ユーザーが、新たに作られたポートを選択し、そのポートを、モデルに
現存するコンポーネント用の適当なポートに接続することによってそうされる。
次に、ブロック172に表されるように、ユーザーは、モデルのシミュレーショ
ンを開始する。任意のエラーが生じた結果、ブロック174に示されるように、
ユーザーは命令セットファイルを編集し、制御をルーチン168に戻すことによ
ってデコーダを再生成する。エラーなしでシミュレーションが止まったらプロセ
ス160が完了する。
し、適当なポートを有するカスタムデコーダアイコンを作る。このポートは、命
令デコーダによって受け取られる種々の命令に応じて命令デコーダによって選択
的に主張(assert)される信号を表す。いったんカスタマイズされたデコーダが生
成されると、制御はブロック170に進み、デコーダは設計の残りに繋がれる。
例えば、ユーザーが、新たに作られたポートを選択し、そのポートを、モデルに
現存するコンポーネント用の適当なポートに接続することによってそうされる。
次に、ブロック172に表されるように、ユーザーは、モデルのシミュレーショ
ンを開始する。任意のエラーが生じた結果、ブロック174に示されるように、
ユーザーは命令セットファイルを編集し、制御をルーチン168に戻すことによ
ってデコーダを再生成する。エラーなしでシミュレーションが止まったらプロセ
ス160が完了する。
【0090】
図14に、生成デコーダルーチン168が詳細に説明されている。ルーチン1
68は、ブロック180において、メモリをテーブルに割り当てるためにデコー
ダテーブルをイニシャライズすることによって始まる。次に、ブロック182に
おいて、特定された命令セットファイルが開かれ、ブロック184において、デ
コーダによってアクセスされる利用可能なレジスタを定めたレジスタ定義命令文
を示す命令セットファイルが読み取られる。示されたレジスタ定義に応じて利用
可能なレジスタが定められる。さらに、もしレジスタ定義命令文が検知されない
ときはエラーが送られる。さらに、もし後に、定義されていないレジスタに命令
がアクセスしようとするとエラーがユーザーに送られる。
68は、ブロック180において、メモリをテーブルに割り当てるためにデコー
ダテーブルをイニシャライズすることによって始まる。次に、ブロック182に
おいて、特定された命令セットファイルが開かれ、ブロック184において、デ
コーダによってアクセスされる利用可能なレジスタを定めたレジスタ定義命令文
を示す命令セットファイルが読み取られる。示されたレジスタ定義に応じて利用
可能なレジスタが定められる。さらに、もしレジスタ定義命令文が検知されない
ときはエラーが送られる。さらに、もし後に、定義されていないレジスタに命令
がアクセスしようとするとエラーがユーザーに送られる。
【0091】
次に、ブロック186において最初の命令定義が命令セットファイルに定めら
れる。ブロック188においてそのような定義を見つけようとする試みが成功し
たかどうかが定められる。もしそうであれば、制御はブロック190に移り、命
令定義のそれぞれのラインが検索される。本実施例においてそれぞれのラインは
、信号(制御ライン)、及び命令の実行に応じてその信号で伝送するための関連
づけられた値(出力タイプ)を含む。
れる。ブロック188においてそのような定義を見つけようとする試みが成功し
たかどうかが定められる。もしそうであれば、制御はブロック190に移り、命
令定義のそれぞれのラインが検索される。本実施例においてそれぞれのラインは
、信号(制御ライン)、及び命令の実行に応じてその信号で伝送するための関連
づけられた値(出力タイプ)を含む。
【0092】
ブロック192において、任意のラインが最初の命令定義に対して発見された
かどうかが定められる。もし発見されなければエラーが送られ、ルーチン168
は終了する。しかしながらもし少なくとも1つのラインが検知されれば、制御は
ブロック194に移り、命令セット定義のラインの第1及び第2のフィールドか
ら制御ラインと出力タイプが得られる。次に、ブロック196において制御ライ
ンが既にデコーダテーブルに定められているかどうかが決定される。もしそのよ
うなラインがテーブルに発見されない場合は、制御はブロック198に移り、制
御ライン名と出力タイプがテーブルに加えられる。次に制御はブロック200に
移り、さらなるラインがこの命令定義に存在するかどうかが定められる。もしそ
うであれば、制御はブロック194に戻り、命令定義の次のラインが処理される
。
かどうかが定められる。もし発見されなければエラーが送られ、ルーチン168
は終了する。しかしながらもし少なくとも1つのラインが検知されれば、制御は
ブロック194に移り、命令セット定義のラインの第1及び第2のフィールドか
ら制御ラインと出力タイプが得られる。次に、ブロック196において制御ライ
ンが既にデコーダテーブルに定められているかどうかが決定される。もしそのよ
うなラインがテーブルに発見されない場合は、制御はブロック198に移り、制
御ライン名と出力タイプがテーブルに加えられる。次に制御はブロック200に
移り、さらなるラインがこの命令定義に存在するかどうかが定められる。もしそ
うであれば、制御はブロック194に戻り、命令定義の次のラインが処理される
。
【0093】
いったん命令定義の全てのラインが処理されると、ブロック200からブロッ
ク202に制御が移され、次の命令定義が探される。次に制御はブロック188
に移り、そのような定義が発見されたかどうかが定められる。もしそうであれば
、制御はブロック190に進み、上述の手段で命令を処理する。しかしながら、
さらなる定義が発見されない場合は、制御はブロック204に移り、テーブルが
空(即ち命令定義がファイルに発見されなかった)であるかどうかが定められる
。もしそうであればエラーが送られ、ルーチンは終了させられる。しかしながら
もしそうでなければ、制御はブロック206に移り、デコーダテーブルにリスト
された制御ラインのそれぞれに対してポートコントロール及びラベルを有する新
しいデコーダアイコンが作られる。
ク202に制御が移され、次の命令定義が探される。次に制御はブロック188
に移り、そのような定義が発見されたかどうかが定められる。もしそうであれば
、制御はブロック190に進み、上述の手段で命令を処理する。しかしながら、
さらなる定義が発見されない場合は、制御はブロック204に移り、テーブルが
空(即ち命令定義がファイルに発見されなかった)であるかどうかが定められる
。もしそうであればエラーが送られ、ルーチンは終了させられる。しかしながら
もしそうでなければ、制御はブロック206に移り、デコーダテーブルにリスト
された制御ラインのそれぞれに対してポートコントロール及びラベルを有する新
しいデコーダアイコンが作られる。
【0094】
さらにデコーダカスタマイズ処理を説明するために、下記のテーブIVに、カ
スタムデコーダを上述の総称デコーダコンポーネントから生成するために用いら
れる典型的な命令セットファイルが示されている。
スタムデコーダを上述の総称デコーダコンポーネントから生成するために用いら
れる典型的な命令セットファイルが示されている。
【0095】
【表4】
図15に、出来上がったデコーダアイコン150’が示されている。ALUコ
ントロール信号ALU_CODEOPに対するポートが示されており、これと共
にレジスタファイルに結合するための3つのレジスタコントロール信号(SOU
RCE_1、SOURCE_2、及びDEST)が総称デコーダアイコンに加え
られている。
ントロール信号ALU_CODEOPに対するポートが示されており、これと共
にレジスタファイルに結合するための3つのレジスタコントロール信号(SOU
RCE_1、SOURCE_2、及びDEST)が総称デコーダアイコンに加え
られている。
【0096】
シミュレーションの間、立ち上がりエッジ信号がデコーダのSR入力ポートに
発生したときに、デコーダはINSTR入力ポートに表される値をキャプチャー
するように構成されている。キャプチャーされた値のデコードはそのとき実行さ
れる。
発生したときに、デコーダはINSTR入力ポートに表される値をキャプチャー
するように構成されている。キャプチャーされた値のデコードはそのとき実行さ
れる。
【0097】
例えば、“add r2, r3, r7”の値が、上記テーブルIVに定められた命令セッ
トを実行する生成されたデコーダのINSTR入力ポートで取り込まれたと想定
する。デコーダは第1に、受信された命令“add”の第1のフィールドが命令セ
ット定義ファイルに存在するかどうかをチェックするように構成されている。も
し存在しなければ、シミュレーションはエラーフラッグを立ててストップさせら
れる。そうでなければ、“add”値はデコーダのALU_CODOP出力ポート
に伝送される。
トを実行する生成されたデコーダのINSTR入力ポートで取り込まれたと想定
する。デコーダは第1に、受信された命令“add”の第1のフィールドが命令セ
ット定義ファイルに存在するかどうかをチェックするように構成されている。も
し存在しなければ、シミュレーションはエラーフラッグを立ててストップさせら
れる。そうでなければ、“add”値はデコーダのALU_CODOP出力ポート
に伝送される。
【0098】
その後、デコーダは、第2のフィールド“r2”が命令セット定義ファイルに存
在するかどうかをチェックするように構成されている。もし存在しなければ、シ
ミュレーションはエラーフラッグを立ててストップさせられる。しかしながらも
し存在すれば、値“r2”は、デコーダのSOURCE_1出力ポートに伝送され
る。同様にして、値“r3”及び“r7”が、デコーダのSOURCE_2及びDE
ST出力ポートに伝送される。もしレジスタ定義に宣言されていないレジスタ“
r9”が命令に存在すれば、エラーが送られ、シミュレーションは停止させられる
。
在するかどうかをチェックするように構成されている。もし存在しなければ、シ
ミュレーションはエラーフラッグを立ててストップさせられる。しかしながらも
し存在すれば、値“r2”は、デコーダのSOURCE_1出力ポートに伝送され
る。同様にして、値“r3”及び“r7”が、デコーダのSOURCE_2及びDE
ST出力ポートに伝送される。もしレジスタ定義に宣言されていないレジスタ“
r9”が命令に存在すれば、エラーが送られ、シミュレーションは停止させられる
。
【0099】
本実施例において、デコーダコンポーネントはSR入力ポートの立ち上がりエ
ッジイベントに反応するように構成されている。デコーディングは文字列比較に
よって実行され、命令定義形式から任意のミスマッチが発生すると、シミュレー
ションにエラーフラッグと中止の生成が生じる。それによって開発者は開発され
たコードが構文的に正しいということが確信することが可能になる。ここで述べ
られるような命令セット定義に対して文字列命令を比較するために適切なルーチ
ンを開発することは、即座の開示の利益を有する技術における当業者の能力の範
囲内に十分にあることが理解されよう。
ッジイベントに反応するように構成されている。デコーディングは文字列比較に
よって実行され、命令定義形式から任意のミスマッチが発生すると、シミュレー
ションにエラーフラッグと中止の生成が生じる。それによって開発者は開発され
たコードが構文的に正しいということが確信することが可能になる。ここで述べ
られるような命令セット定義に対して文字列命令を比較するために適切なルーチ
ンを開発することは、即座の開示の利益を有する技術における当業者の能力の範
囲内に十分にあることが理解されよう。
【0100】
上述したように、シミュレーションの間、通常、1以上の観測者あるいは出力
コンポーネント(例えば図10のコンポーネント136)が関連ポートに対して
現状態情報(current state information)を出力するのにさらに用いられる。こ
れらのコンポーネントは、関連ポートのイベントを観測したり、この現状態情報
をディスプレイに出力したりするように単に設定されているだけである。さらに
、いくらかの実施例においては、チェックボックスあるいは類似のコントロール
が、上記関連ポートに対しての状態情報がキャプチャーされ、ディスプレイへの
ログのためにデバッグウィンドウに表示されるように、いくつかのコンポーネン
トに選ばれる。
コンポーネント(例えば図10のコンポーネント136)が関連ポートに対して
現状態情報(current state information)を出力するのにさらに用いられる。こ
れらのコンポーネントは、関連ポートのイベントを観測したり、この現状態情報
をディスプレイに出力したりするように単に設定されているだけである。さらに
、いくらかの実施例においては、チェックボックスあるいは類似のコントロール
が、上記関連ポートに対しての状態情報がキャプチャーされ、ディスプレイへの
ログのためにデバッグウィンドウに表示されるように、いくつかのコンポーネン
トに選ばれる。
【0101】
図16は、シミュレーションデータがユーザー表示される別のメカニズムをさ
らに示す。特に、データメモリやプログラムメモリのようなメモリの内容はテー
ブルやリストの形態でユーザーに、例えばウィンドウ220,222を介して表
示される。それぞれのウィンドウ220,222は複数のメモリロケーションエ
ントリーを有し、それぞれのエントリーはメモリロケーション及びそれの内容を
識別する。メモリにアクセスされた現在つまり最後のメモリロケーションは、例
えばハイライトバー228,230あるいは他の適当な区別可能な表示要素によ
って表される。その結果ユーザーは、例えばプログラムメモリの場合には何の命
令が今現在、シミュレーションの間に実行されているのかを容易に定めることが
できる。実際のバイナリ値はここに述べられるようなモデルのシミュレーション
に対しては実際には必要とされないので、アセンブリ言語命令がテキスト的な形
式でそれぞれのエントリ226に表示されることがさらに理解されよう。
らに示す。特に、データメモリやプログラムメモリのようなメモリの内容はテー
ブルやリストの形態でユーザーに、例えばウィンドウ220,222を介して表
示される。それぞれのウィンドウ220,222は複数のメモリロケーションエ
ントリーを有し、それぞれのエントリーはメモリロケーション及びそれの内容を
識別する。メモリにアクセスされた現在つまり最後のメモリロケーションは、例
えばハイライトバー228,230あるいは他の適当な区別可能な表示要素によ
って表される。その結果ユーザーは、例えばプログラムメモリの場合には何の命
令が今現在、シミュレーションの間に実行されているのかを容易に定めることが
できる。実際のバイナリ値はここに述べられるようなモデルのシミュレーション
に対しては実際には必要とされないので、アセンブリ言語命令がテキスト的な形
式でそれぞれのエントリ226に表示されることがさらに理解されよう。
【0102】
前述のデコーダインプリメンテーションの重要な利益は、デコーダ設計の再利
用性、拡張性、最適性にある。なぜなら、命令デコーダコンポーネントは、命令
セットファイルの編集やルーチン168による再生成を介するだけで容易に修正
できるからである。それ故、そのような環境により開発者は、命令ファイルに新
しい命令定義を追加し、そのような命令を組み込むためにシミュレーションの間
に用いられるテストプログラムを修正するだけで、現存の設計に新しい命令に対
するサポートを追加する利益を実際に試みることができる。
用性、拡張性、最適性にある。なぜなら、命令デコーダコンポーネントは、命令
セットファイルの編集やルーチン168による再生成を介するだけで容易に修正
できるからである。それ故、そのような環境により開発者は、命令ファイルに新
しい命令定義を追加し、そのような命令を組み込むためにシミュレーションの間
に用いられるテストプログラムを修正するだけで、現存の設計に新しい命令に対
するサポートを追加する利益を実際に試みることができる。
【0103】
追加の機能が、命令デコーダを確認するために、動的生成ルーチン及び(ある
いは)シミュレーションルーチンでさらにサポートされる。例えば、新しい命令
が追加された場合、命令によってコマンドされたときに、同時にあるいは連続し
て全てのサービスが物理的に呼ばれることができるかどうかを確認するためにマ
テリアルな依存関係がチェックされる。例えば、いくらかのアーキテクチャは、
多数の独立したメモリポートに対して多数のデータポイントの同時ロードを許容
し、それによって他のアーキテクチャは同メモリポートに対して多くのデータポ
イントリクエストを多重化する。後者のインスタンス(in the latter instance)
では、同メモリポートに対して多数のデータポイントのための同時リクエストは
許容されず、そのようにしようとする命令を組み込むための動的生成に応じてエ
ラーが開発者に伝えられる。
いは)シミュレーションルーチンでさらにサポートされる。例えば、新しい命令
が追加された場合、命令によってコマンドされたときに、同時にあるいは連続し
て全てのサービスが物理的に呼ばれることができるかどうかを確認するためにマ
テリアルな依存関係がチェックされる。例えば、いくらかのアーキテクチャは、
多数の独立したメモリポートに対して多数のデータポイントの同時ロードを許容
し、それによって他のアーキテクチャは同メモリポートに対して多くのデータポ
イントリクエストを多重化する。後者のインスタンス(in the latter instance)
では、同メモリポートに対して多数のデータポイントのための同時リクエストは
許容されず、そのようにしようとする命令を組み込むための動的生成に応じてエ
ラーが開発者に伝えられる。
【0104】
さらに、いくつかのサービスの連続する実行の間にパイプラインステージを表
す遅延を追加することで、シミュレーション用にパイプラインアーキテクチャに
ついての情報を組み込むことが望ましい。そのとき、命令セット定義情報及びそ
のような構造上の制約を結合することによって、サイクルの正確なシミュレーシ
ョンが得られる。
す遅延を追加することで、シミュレーション用にパイプラインアーキテクチャに
ついての情報を組み込むことが望ましい。そのとき、命令セット定義情報及びそ
のような構造上の制約を結合することによって、サイクルの正確なシミュレーシ
ョンが得られる。
【0105】バーチャルコンポーネント
上述したように実施例においてはネイティブ回路コンポーネントは通常Jav
aプログラミング言語で定められている。それにもかかわらず、いくつかのアプ
リケーションにおいてはノンネイティブ形式で定められた追加のコンポーネント
の使用をさらにサポートするのが望ましい。例えば、先に存在する回路コンポー
ネントはc、Esterel、VHDL、Verilog等のような言語で定め
られても良い。そのような先に存在する回路コンポーネントがJava形式で再
生されるのを要求するよりは、むしろ“バーチャル”コンポーネントアーキテク
チャをサポートし、それによってノンネイティブコンポーネントを適当なインタ
ーフェイスでカプセル化し、ラピッド・プロトタイピング環境41へのそのよう
なノンネイティブコンポーネントの統合を可能とするのが望ましい。
aプログラミング言語で定められている。それにもかかわらず、いくつかのアプ
リケーションにおいてはノンネイティブ形式で定められた追加のコンポーネント
の使用をさらにサポートするのが望ましい。例えば、先に存在する回路コンポー
ネントはc、Esterel、VHDL、Verilog等のような言語で定め
られても良い。そのような先に存在する回路コンポーネントがJava形式で再
生されるのを要求するよりは、むしろ“バーチャル”コンポーネントアーキテク
チャをサポートし、それによってノンネイティブコンポーネントを適当なインタ
ーフェイスでカプセル化し、ラピッド・プロトタイピング環境41へのそのよう
なノンネイティブコンポーネントの統合を可能とするのが望ましい。
【0106】
特に、Javaプログラミング言語は、ユーザーが外部プログラムへ変数を送
りそこから結果をキャプチャーするのを許容する機能をサポートする。そのよう
な機能、しばしば外部関数として言及されるが、を用いるため、開発者は、特定
の外部コンポーネントに変数を送り、外部コンポーネントで実行される関数を呼
び出し、外部コンポーネントによって生成させされる結果をキャプチャーするJ
avaプログラムを創造することを必要とされる。外部コンポーネントが、変数
型が重要であるcあるいは別の言語で書かれている場合には、徹底した厳守が、
カプセル化された外部コンポーネントの変数型に与えられなければならない。
りそこから結果をキャプチャーするのを許容する機能をサポートする。そのよう
な機能、しばしば外部関数として言及されるが、を用いるため、開発者は、特定
の外部コンポーネントに変数を送り、外部コンポーネントで実行される関数を呼
び出し、外部コンポーネントによって生成させされる結果をキャプチャーするJ
avaプログラムを創造することを必要とされる。外部コンポーネントが、変数
型が重要であるcあるいは別の言語で書かれている場合には、徹底した厳守が、
カプセル化された外部コンポーネントの変数型に与えられなければならない。
【0107】
図17は、本発明にかかるバーチャルコンポーネント240の基本構造を示す
。外部コンポーネント242はバーチャルコンポーネント240内でカプセル化
されており、通常ノンネイティブ(例えばJavaでない)言語で書かれている
。変数は、環境41からポート244を介して外部コンポーネントに与えられ、
ポート244で変数はフォーマットされ、入力ルーチン246によって転送され
る。同様に、関数が、環境41からポート248を介して外部コンポーネントに
先導され、ポート248でその関数はフォーマットされ、関数ルーチン250に
よって転送される。外部コンポーネントによって生成させられる出力データは出
力ルーチン252によってキャプチャーされ、ポート254を介してバーチャル
コンポーネントから出力される。
。外部コンポーネント242はバーチャルコンポーネント240内でカプセル化
されており、通常ノンネイティブ(例えばJavaでない)言語で書かれている
。変数は、環境41からポート244を介して外部コンポーネントに与えられ、
ポート244で変数はフォーマットされ、入力ルーチン246によって転送され
る。同様に、関数が、環境41からポート248を介して外部コンポーネントに
先導され、ポート248でその関数はフォーマットされ、関数ルーチン250に
よって転送される。外部コンポーネントによって生成させられる出力データは出
力ルーチン252によってキャプチャーされ、ポート254を介してバーチャル
コンポーネントから出力される。
【0108】
種々の変更が実施例に対して本発明の範囲から外れることなくなされ得る。例
えば、他のユーザーインターフェース方法論及び他のプログラミング環境が代わ
りに用いられ得る。
えば、他のユーザーインターフェース方法論及び他のプログラミング環境が代わ
りに用いられ得る。
【0109】
その他の変更も当業者にとって容易に分かるであろう。しかして、本発明は添
付されたクレームに置かれている。
付されたクレームに置かれている。
【図1】
本発明に係る、オブジェクト指向を用いたモデリング及びシミュレーションを
実行するのに用いられるコンピュータシステムのブロックダイアグラムである。
実行するのに用いられるコンピュータシステムのブロックダイアグラムである。
【図2】
図1のコンピュータシステムからのコンピュータに対して典型的なハードウェ
ア及びソフトウェア環境を示すのブロックダイアグラムである。
ア及びソフトウェア環境を示すのブロックダイアグラムである。
【図3】
図2のコンピュータで実行されるラピッド・プロトタイピング環境の主要なコ
ンポーネントを示すブロックダイアグラムである。
ンポーネントを示すブロックダイアグラムである。
【図4】
図3のラピッド・プロトタイピング環境で用いられる総称コンポーネントモデル
を示すオブジェクトダイアグラムである。
を示すオブジェクトダイアグラムである。
【図5】
図4の総称コンポーネントモデルに基づいた典型的なロード/ストアレジスタ
回路コンポーネントの振る舞い表現を示すブロックダイアグラムである。
回路コンポーネントの振る舞い表現を示すブロックダイアグラムである。
【図6】
図5の典型的なロード/ストアレジスタ回路コンポーネントの構造表現を示す
ブロックダイアグラムである。
ブロックダイアグラムである。
【図7】
図3のラピッド・プロトタイピング環境を用いてアーキテクチャをプロトタイ
ピングする際に利用される一連のオペレーションを示すフローチャートである。
ピングする際に利用される一連のオペレーションを示すフローチャートである。
【図8】
図3のラピッド・プロトタイピング環境によってモデル化されることのできる
典型的な処理システム回路コンポーネントを示すブロックダイアグラムである。
典型的な処理システム回路コンポーネントを示すブロックダイアグラムである。
【図9】
図8の典型的な処理システム回路コンポーネントからプロセッサ回路コンポー
ネントを示すブロックダイアグラムである。
ネントを示すブロックダイアグラムである。
【図10】
図8の典型的な処理システム回路コンポーネントの開発の間に、図3のラピッ
ド・プロトタイピング環境によって表示される典型的なシミュレーションウィン
ドウを示すブロックダイアグラムである。
ド・プロトタイピング環境によって表示される典型的なシミュレーションウィン
ドウを示すブロックダイアグラムである。
【図11】
図3のラピッド・プロトタイピング環境を用いてポートを構成するのに利用さ
れる一連のオペレーションを示すフローチャートである。
れる一連のオペレーションを示すフローチャートである。
【図12】
図9のプロセッサ回路コンポーネントから命令デコーダのアイコン表示を示す
ブロックダイアグラムであり、そこに組み込まれた総称デコーダ回路コンポーネ
ントを含む。
ブロックダイアグラムであり、そこに組み込まれた総称デコーダ回路コンポーネ
ントを含む。
【図13】
図3のラピッド・プロトタイピング環境を用いて命令デコーダをカスタマイズ
する際に利用される一連のオペレーションを示すフローチャートである。
する際に利用される一連のオペレーションを示すフローチャートである。
【図14】
図13で参照される生成デコーダルーチンのプログラムフローを示すフローチ
ャートである。
ャートである。
【図15】
図14の生成デコーダルーチンを用いて典型的な命令セットを組み込むための
動的生成の後の、図12の総称デコーダ回路コンポーネントのアイコン表示を示
すブロックダイアグラムである。
動的生成の後の、図12の総称デコーダ回路コンポーネントのアイコン表示を示
すブロックダイアグラムである。
【図16】
シミュレーションの間に図3のラピッド・プロトタイピング環境によって表示
される典型的なデータ及びプログラムメモリウィンドウを示すブロックダイアグ
ラムである。
される典型的なデータ及びプログラムメモリウィンドウを示すブロックダイアグ
ラムである。
【図17】
図3のラピッド・プロトタイピング環境によってモデル化されることのできる
典型的なバーチャルコンポーネントを示すブロックダイアグラムである。
典型的なバーチャルコンポーネントを示すブロックダイアグラムである。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 ジャン、フランソワ、デュボック
フランス国サン‐ローラン‐デュ‐バー
ル、モワイアンヌ、コルニッシュ、デ、プ
ュジェ、2893
(72)発明者 フレデリック、マレ
フランス国ニース、ブールバール、ラ、パ
ルマ、30
(72)発明者 フェルナン、ボエリ
フランス国ニース、プロムナード、デ、ザ
ングレ、131
Fターム(参考) 5B046 AA08 BA03 JA05
Claims (43)
- 【請求項1】 コンピュータで電子回路設計をモデリングする方法であって、 (a)それぞれ第1及び第2のポートを含む、第1及び第2のオブジェクト指
向の回路コンポーネントから電子回路設計のモデルを構成し、 (b)前記第1及び第2のポートを介して前記第1及び第2の回路コンポーネ
ントのインターフェースを互いにとり、前記第1及び第2のポートは、前記第1
及び第2のポート間で第1の信号に対する第1の値と第2の信号に対する第2の
値との両方を、前記第1及び第2のポートのうちの少なくとも1つに導かれたイ
ベントに応答して伝送するように構成されている、方法。 - 【請求項2】 (a)前記イベントを発生させる工程と、 (b)前記第1及び第2の値を、前記イベントに応答して前記第1及び第2の
ポート間で伝える工程と、 を含む前記モデルのシミュレーションの実行をさらに有する、請求項1に記載
の方法。 - 【請求項3】 前記イベントはイベント名とイベントトリガーを含み、前記イベントトリガー
は前記イベントをトリガーする前記イベント名に結びつけられた条件を識別する
ものである、請求項1に記載の方法。 - 【請求項4】 前記イベント名は信号識別子を有し、前記イベントトリガーに対する前記条件
は論理値1、論理値0、立ち上がりエッジ、立ち下がりエッジ、及びそれらの結
合からなるグループから選択される、請求項3に記載の方法。 - 【請求項5】 前記モデルを構成することは、 (a)グラフィカルユーザーインターフェースを介してユーザーインプットを
受け取って、前記第1及び第2の回路コンポーネントをワークスペースに加え、 (b)第1及び第2のアイコンをコンピュータディスプレイに表示し、前記第
1及び第2のアイコンはそれぞれ第1及び第2の回路コンポーネントに結びつけ
られており、前記第1及び第2のアイコンはそれぞれ、前記第1及び第2のポー
トに結びつけられた第1及び第2のポートコントロールを含む、 ことを含む請求項1に記載の方法。 - 【請求項6】 前記第1及び第2の回路コンポーネントのインターフェースを互いにとること
は、 (a)前記グラフィカルユーザーインターフェースを介してユーザーインプッ
トを受け取って、前記第1及び第2の回路コンポーネントのインターフェースを
互いにとり、 (b)前記ディスプレイに、前記第1及び第2のポートコントロールの間で延
びる相互結合要素を表示して、第1及び第2のポート間での第1及び第2の信号
の伝送をまとめて表す、 ことを有する請求項5に記載の方法。 - 【請求項7】 前記相互結合要素は前記第1及び第2のポートコントロールの間で延びる1つ
のグラフィカルラインである、請求項6に記載の方法。 - 【請求項8】 前記第1の回路コンポーネントは第3及び第4の回路コンポーネントをカプセ
ル化し、前記第3及び第4の回路コンポーネントはそれぞれ第3及び第4のポー
トを含んでおり、 前記第1のポートは、前記イベントに応答して、前記第1の値を前記第2のポ
ートと前記第3のポートの間で伝えるように、且つ、前記第2の値を前記第2の
ポート及び前記第4のポートの間で伝えるようにさらに構成されている、 請求項1に記載の方法。 - 【請求項9】 前記第1の値は記号を含む、請求項1の方法。
- 【請求項10】 前記第1の値は文字列を含む、請求項9に記載の方法。
- 【請求項11】 電子回路設計のモデルをストアするように構成されたメモリと、 それぞれ第1及び第2のポートを含む第1及び第2のオブジェクト指向の回路
コンポーネントから前記モデルを構成し、前記第1及び第2の回路コンポーネン
トのインターフェースを前記第1及び第2のポートを介して互いにとり、ここで
、前記第1及び第2のポートは、前記第1及び第2のポートのうちの少なくとも
1つに導かれたイベントに応答して、第1の信号に対する第1の値と第2の信号
に対する第2の値との両方を伝送するように構成されている、プログラムと、 を有する装置。 - 【請求項12】 前記プログラムはさらに前記モデルのシミュレーションを実行するように構成
されており、前記モデルのシミュレーションは前記イベントの発生と、前記イベ
ントに応答した前記第1及び第2のポートの間での前記第1及び第2の値の伝送
を含む、 請求項11に記載の装置。 - 【請求項13】 前記イベントは、信号識別子とイベントトリガーを含み、前記イベントトリガ
ーは、前記イベントをトリガーするイベント名に結びつけられた条件を識別する
ものであり、前記条件は論理値1、論理値0、立ち上がりエッジ、立ち下がりエ
ッジ、及びそれらの結合から構成されるグループから選択されるものである、 請求項11に記載の装置。 - 【請求項14】 前記プログラムは、ユーザーインプットをグラフィカルユーザーインターフェ
ースを介して受け取とって、ワークスペースに前記第1及び第2の回路コンポー
ネントを加え、コンピュータディスプレイに第1及び第2のアイコンを表示する
ことによって前記モデルを構成するようになっており、 前記第1及び第2のアイコンはそれぞれ前記第1及び第2の回路コンポーネン
トに結びつけられ、且つ、前記第1及び第2のアイコンはそれぞれ前記第1及び
第2のポートに結びつけられた第1及び第2のポートコントロールを含んでおり
、 前記プログラムは 前記グラフィカルユーザーインターフェースを介してユー
ザーインプットを受け取ることによって、且つ、前記ディスプレイに、第1及び
第2のポート間での第1及び第2の信号の伝送をまとめて表すために前記第1及
び第2のポートコントロールの間で延びる相互結合要素を表示することによって
、前記第1及び第2の回路コンポーネントのインターフェースを互いにとるよう
に構成された、 請求項11の装置。 - 【請求項15】 前記第1の回路コンポーネントは第3及び第4の回路コンポーネントをカプセ
ル化し、前記第3及び第4の回路コンポーネントはそれぞれ第3及び第4のポー
トを含んでおり、 前記第1のポートは、前記イベントに応答して、前記第1の値を前記第2のポ
ートと前記第3のポートの間で伝えるように、且つ、前記第2の値を前記第2の
ポート及び前記第4のポートの間で伝えるようにさらに構成されている、 請求項11に記載の方法。 - 【請求項16】 前記第1の値は文字列を含む、請求項11の装置。
- 【請求項17】 (a)それぞれ第1及び第2のポートを含む第1及び第2のオブジェクト指向
の回路コンポーネントから電子回路設計のモデルを構成し、前記第1及び第2の
回路コンポーネントのインターフェースを前記第1及び第2のポートを介して互
いにとり、ここで、前記第1及び第2のポートは、前記第1及び第2のポートの
うちの少なくとも1つに導かれたイベントに応答して、第1の信号に対する第1
の値と第2の信号に対する第2の値との両方を伝えるように構成されている、プ
ログラムと、 (b)前記プログラムを運ぶ信号担媒体と、 を有するプログラムプロダクト。 - 【請求項18】 前記信号担媒体は、少なくとも記録可能媒体及び伝送媒体のうちの1つを含む
、請求項17に記載のプログラムプロダクト。 - 【請求項19】 電子回路設計をコンピュータでモデリングする方法であって、 (a)処理システムモデルによって実行可能な命令を定める少なくとも1つの
命令定義を受け取り、 (b)前記命令定義を処理することで、前記命令の実行をシミュレートするた
めの、前記処理システムモデルに対する命令デコーダ回路コンポーネントを構成
する、方法。 - 【請求項20】 前記命令定義を処理することは、前記命令デコーダ回路コンポーネントを、総
称命令デコーダ回路コンポーネントから動的に生成することを含む、 請求項19の方法。 - 【請求項21】 (a)前記命令定義に応じて前記総称命令デコーダ回路コンポーネントのアイ
コン表示を修正し、 (b)前記修正されたアイコン表示をコンピュータディスプレイに表示する、 ことをさらに含む請求項20の方法。 - 【請求項22】 前記命令定義は、前記命令の実行に応答した複数の信号に対して伝えられる複
数の値を含む、請求項19の方法。 - 【請求項23】 シミュレーションの間、前記命令デコーダ回路コンポーネントによる前記命令
定義に合う命令の受領に応じて前記複数の値を伝えることによって、前記モデル
でシミュレーションを実行することをさらに含む、請求項22の方法。 - 【請求項24】 前記命令定義はテキスト文字列によって識別され、前記モデルでシミュレーシ
ョンを実行することは前記テキスト文字列を解釈することを含む、請求項23の
方法。 - 【請求項25】 前記命令デコーダ回路コンポーネントは、前記複数の信号からの第1の信号に
関連した第1のポートを含み、前記方法はさらに、前記命令デコーダ回路コンポ
ーネントと、第2のポートを含む第2の回路コンポーネントとのインターフェー
スを前記第1のポートを前記第2のポートに接続することによってとることを含
む、請求項22の方法。 - 【請求項26】 前記命令定義は、複数の命令定義を含む命令セット定義ファイル内に定められ
、前記命令定義を処理することは、前記命令セット定義ファイルを処理すること
で、前記複数の命令の実行をシュミレーションするための前記命令デコーダ回路
コンポーネントをつくることを含む、請求項19の方法。 - 【請求項27】 前記命令セット定義ファイルはさらにレジスタ定義を含み、前記方法はさらに
、前記レジスタ定義を処理して、前記処理システムで利用可能なレジスタを識別
することを含む、請求項26の方法。 - 【請求項28】 前記命令セット定義ファイルへの修正に応じて前記デコーダ回路コンポーネン
トを修正することをさらに含む、請求項26の方法。 - 【請求項29】 前記命令デコーダ回路コンポーネントを修正することは、前記命令セット定義
ファイルを、前記命令セット定義ファイルへの修正の後に再処理することを含む
、請求項28の方法。 - 【請求項30】 前記命令セット定義ファイルのそれそれの命令は、その命令の実行に応答した
複数の信号のうちの少なくとも1つに対して伝えられるべき少なくとも1つの値
を識別し、前記命令セット定義ファイルを処理することは複数のエントリーを含
むデコーダテーブルを形成し、それぞれのエントリーは前記複数の信号からの1
つの信号を識別するものである、請求項26の方法。 - 【請求項31】 前記命令セット定義ファイルのそれぞれの命令定義は、アセンブリ言語形式で
前記命令を識別するテキスト識別子を含む、請求項26の方法。 - 【請求項32】 (a)処理システムモデルをストアするように構成されたメモリと、 (b)処理システムモデルによって実行可能な命令を定める少なくとも1つの
命令定義を受け取り、前記命令定義を処理して、前記処理システムモデルに対す
る命令デコーダ回路コンポーネントをつくり、前記命令の実行をシミュレートす
るように構成されたプログラムと、 を有する装置。 - 【請求項33】 前記プログラムは、前記命令デコーダ回路コンポーネントを総称命令デコーダ
回路コンポーネントから動的に生成することによって前記命令定義を処理するよ
うに構成されている、請求項32の装置。 - 【請求項34】 前記プログラムはさらに、前記命令定義に応じて前記総称命令デコーダ回路コ
ンポーネントのアイコン表示を修正し、前記修正されたアイコン表示をコンピュ
ータディスプレイに表示するように構成された、請求項33の装置。 - 【請求項35】 前記命令定義は、前記命令の実行に応答した複数の信号に対して伝えられるべ
き複数の値を含む、請求項32の装置。 - 【請求項36】 前記プログラムは、シミュレーションの間に前記命令デコーダ回路コンポーネ
ントによる前記命令定義に合う命令の受領に応答して、前記複数の値を伝えるこ
とにより前記モデルでシミュレーションを実行するように構成されている、請求
項35の装置。 - 【請求項37】 前記命令定義はテキスト文字列によって識別され、前記プログラムは前記テキ
スト文字列を解釈することにより前記モデル上でシミュレーションを実行するよ
うに構成されている、請求項36の装置。 - 【請求項38】 前記命令デコーダ回路コンポーネントは、前記複数の信号からの第1の信号に
関連する第1のポートを含み、前記プログラムは、前記命令デコーダ回路コンポ
ーネントと、第2のポートを含む第2の回路コンポーネントとのインターフェー
スを、前記第1のポートを前記第2のポートに接続することによってとるように
さらに構成されている、請求項35の装置。 - 【請求項39】 前記命令定義は、複数の命令定義を含む命令セット定義ファイル内に定められ
、前記プログラムは、前記命令セット定義ファイルを処理することによって前記
命令定義を処理して前記命令デコーダ回路コンポーネントをつくり、前記複数の
命令の実行をシュミレーションするように構成された、請求項32の装置。 - 【請求項40】 前記プログラムは、前記命令セット定義ファイルへの修正に応答して前記デコ
ーダ回路コンポーネントを修正するように構成されている、請求項39の装置。 - 【請求項41】 前記プログラムは、前記命令セット定義ファイルへの修正の後に、前記命令セ
ット定義ファイルを再処理することによって前記命令デコーダ回路コンポーネン
トを修正するように構成されている、、請求項40の装置。 - 【請求項42】 前記命令セット定義ファイルのそれそれの命令は、その命令の実行に応答した
複数の信号のうちの少なくとも1つに対して伝えられる少なくとも1つの値を識
別し、前記プログラムは、複数のエントリーを含むデコーダテーブルを形成する
ことによって前記命令セット定義ファイルを処理するように構成されており、こ
こにそれぞれのエントリーは前記複数の信号からの1つの信号を識別するもので
ある、請求項39の装置。 - 【請求項43】 (a)処理システムモデルによって実行可能な命令を定める少なくとも1つの
命令定義を受け取り、前記命令定義を処理して前記処理システムモデルに対する
命令デコーダ回路コンポーネントを作り、前記命令の実行をシミュレートするよ
うに構成されたプログラムと、 (b)前記プログラムを運ぶ信号担媒体と、 を有するプログラムプロダクト。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US57750900A | 2000-05-24 | 2000-05-24 | |
US09/577,509 | 2000-05-24 | ||
PCT/US2001/009106 WO2001090961A2 (en) | 2000-05-24 | 2001-03-22 | Enhancements to object-oriented electronic circuit design modeling and simulation environment |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003534603A true JP2003534603A (ja) | 2003-11-18 |
Family
ID=24309037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001587278A Pending JP2003534603A (ja) | 2000-05-24 | 2001-03-22 | オブジェクト指向を用いた電子回路設計のモデリングとシミュレーション環境を高める方法及び装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1290588A2 (ja) |
JP (1) | JP2003534603A (ja) |
WO (1) | WO2001090961A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2017009996A1 (ja) * | 2015-07-16 | 2017-10-19 | 三菱電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2836734B1 (fr) * | 2002-03-01 | 2004-07-02 | Prosilog S A | Procede d'extraction de la topologie d'un systeme a partir de sa description textuelle |
FR2843213B1 (fr) * | 2002-07-30 | 2004-12-24 | Bull Sa | Procede et systeme d'etablissement automatique d'un modele global de simulation d'une architecture |
US10281507B2 (en) | 2014-11-21 | 2019-05-07 | Kohler Co. | Generator sizing |
USD810104S1 (en) | 2015-11-16 | 2018-02-13 | Kohler, Co. | Display screen with graphical user interface |
USD811423S1 (en) | 2015-11-16 | 2018-02-27 | Kohler, Co. | Display screen with graphical user interface |
-
2001
- 2001-03-22 WO PCT/US2001/009106 patent/WO2001090961A2/en not_active Application Discontinuation
- 2001-03-22 EP EP01920629A patent/EP1290588A2/en not_active Withdrawn
- 2001-03-22 JP JP2001587278A patent/JP2003534603A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2017009996A1 (ja) * | 2015-07-16 | 2017-10-19 | 三菱電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2001090961A2 (en) | 2001-11-29 |
EP1290588A2 (en) | 2003-03-12 |
WO2001090961A3 (en) | 2002-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7913170B2 (en) | System and method for performing type checking for hardware device nodes in a graphical program | |
US7743335B2 (en) | System and method for accessing registers of a hardware device in a graphical program | |
US7865350B1 (en) | Partitioning a model in modeling environments | |
US5923867A (en) | Object oriented simulation modeling | |
US6282699B1 (en) | Code node for a graphical programming system which invokes execution of textual code | |
US6587995B1 (en) | Enhanced programmable core model with integrated graphical debugging functionality | |
US6026226A (en) | Local compilation in context within a design hierarchy | |
US8806429B2 (en) | Dynamic generation of formatted user interfaces in software environments | |
US7523023B1 (en) | Automatic generation of component interfaces for computational hardware implementations generated from a block diagram model | |
US8122428B2 (en) | Methods and apparatus for automation and facilitating design of register maps | |
WO2002001424A2 (en) | System and method relating to verification of integrated circuit design | |
US7194726B2 (en) | Method for automatically decomposing dynamic system models into submodels | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
US8881074B2 (en) | Device and method for refactoring hardware code | |
Große et al. | Efficient Automatic Visualization of SystemC Designs. | |
JP2003534603A (ja) | オブジェクト指向を用いた電子回路設計のモデリングとシミュレーション環境を高める方法及び装置 | |
Lor | Automatic Synthesis of SARA Design Models From System | |
Reid et al. | Implementing a graphical user interface for SystemC | |
Todorovich et al. | TCL/TK for EDA Tools | |
Savegren et al. | Prototyping a formal system modeling workbench in the java ecosystem: A Domain Specific Language in Groovy | |
Gries et al. | The Mescal architecture development system (Tipi) tutorial | |
Lahti et al. | SADE: a graphical tool for VHDL-based system analysis | |
Pang et al. | Hello World! | |
Abdi et al. | System-on-Chip Environment | |
Abdi et al. | System-on-Chip Environment (SCE) |