Looking for vhdl Answers? Try Ask4KnowledgeBase
Looking for vhdl Keywords? Try Ask4Keywords

vhdl保護された型


備考

以前のVHDL 1993では、2つの並行プロセスは信号としか通信できませんでした。シミュレーションステップ間の信号のみを更新する言語のシミュレーションセマンティクスのおかげで、シミュレーションの結果は決定的でした。プロセスを実行するためにシミュレーションスケジューラが選択した順序に依存しませんでした。

[実際には、これは100%真実ではありません。プロセスはファイル入出力を使用して通信することもできます。しかし、デザイナーがファイルを使って決定論を妥協していたのであれば、間違いではありませんでした。]

言語はこのように安全でした。目的を除いて、非決定論的なVHDLモデルを設計することはほとんど不可能でした。

VHDL 1993は共有変数を導入し、非決定論的なVHDLモデルの設計は非常に簡単になりました。

VHDL 2000では、保護されたタイプと、共有変数が保護されたタイプでなければならないという制約が導入されました。

VHDLでは、保護された型は、オブジェクト指向言語(OO)のオブジェクトの概念のほとんどに似ています。彼らは、データ構造とそのメソッドのカプセル化を実装しています。また、データメンバーへの排他的アクセスとアトミックアクセスも保証します。これは非決定論を完全に防ぐのではなく、少なくとも排他性とアトミック性を共有変数に追加します。

保護されたタイプは、シミュレーション専用の高水準VHDLモデルを設計する場合に非常に便利です。彼らはOO言語のいくつかの非常に良い特性を持っています。それらを頻繁に使用すると、コードを読みやすく、保守しやすく、再利用できるようになります。

ノート:

  • 一部のシミュレーションツールチェーンは、デフォルトでは、共有変数が保護されていないタイプの場合にのみ警告を発行します。
  • いくつかの合成ツールは保護されたタイプをサポートしていません。
  • いくつかの合成ツールには、共有変数のサポートが限られています。
  • 共有変数はハードウェアをモデル化するのに使用できず、副作用なしにコード計測用に予約されていると考えることができます。しかし、複数のEDAベンダーがマルチポートRAM(Multi-Access Random Access Memory)のメモリプレーンをモデル化するようにアドバイスしたVHDLパターンは、共有変数を使用します。したがって、特定の状況で共有変数を合成することができます。

保護された型 関連する例