コンピューティングにおいて、Rosettaシステムレベル仕様言語は、複雑で異種混合のシステムのための設計言語です。具体的な言語設計の目標は次のとおりです。
Rosetta はさまざまな時期に標準化を進めていました。
歴史
Rosetta の取り組みは、1996 年に半導体産業協議会のシステムレベル設計言語委員会の会議から生まれました。会議の目的は、VHDLやVerilogなどの既存の言語の欠点に対処する次世代設計言語の要件を定義することでした。具体的な懸念事項としては、制約を表現できないこと、正式なセマンティクスが欠如していること、異種システムを表現できないこと、分析にコンピューター シミュレーションに大きく依存していることなどが挙げられました。これらの要件に対応するために、3 つの主要なアプローチが追求されました。
最初のアプローチは最終的にSystemVerilogとVHDLの拡張につながり、2番目のアプローチはSystemCにつながり、これらはすべて半導体業界の電気電子技術者協会(IEEE)標準になりました。Rosettaの元のアプリケーションドメインは、システムオンチップ半導体システムでした。[1]
Rosettaは3番目のアプローチから生まれたもので、開発は半導体産業協議会と空軍研究所の後援の下で始まりました。もともとカンザス大学のペリー・アレクサンダーらによって開発され、単にシステムレベル設計言語として知られていました。[2] 標準化は2000年までにVHDL Internationalに移管され、仕様の異質性を反映するためにロゼッタ(ロゼッタストーンにちなんで)に改名されました。最終的に、VHDL InternationalとOpen Verilog Initiativeは合併して、電子設計自動化(EDA)標準のための業界主導のコンソーシアムであるAccelleraを形成しました。Rosettaのドラフト標準は、Accelleraを通じて2003年11月に公開されました。[3] 標準化はIEEE設計自動化標準委員会(DASC)に移管され、2007年3月からIEEEプロジェクトP1699の下でRosettaワーキンググループによって開発されました 。[4] [5] [6] このプロジェクトは2013年6月に撤回された。[7]
構造
Rosetta は、さまざまな仕様要素の定義をサポートする 3 つのサブ言語で構成されています。式言語は、仕様で用語や値として使用される基本的な関数と式を定義します。式言語は、Haskellの精神に基づく、非厳密で純粋に関数的な型付き言語です。関数は参照透過でカプセル化された式であり、副作用を持つことはできません。すべての Rosetta 式は静的に決定される型を持ちます。型システムは、各型に少なくとも最低でも最低値または未定義の値が含まれるリフト セットに基づいています。任意のセットを使用して型を定義でき、セットを返す任意の関数を使用して型フォーマーを定義できます。型定義には一般的な Rosetta 式を含めることができるため、型システムは依存的です。
ファセット言語は、システムを定義するために、個々の仕様と仕様構成を定義します。ファセットとコンポーネントは、1 つのエンジニアリングの観点からシステム モデルを定義します。各ファセットは、モデルの語彙とセマンティクスを提供するドメインを拡張することによって記述されます。ファセットは、項目を宣言し、それらの項目のプロパティを定義することによって定義されます。そのため、Rosetta は宣言型言語であり、一部のファセットは評価できますが、構成要素が値に評価されることは保証されません。ドメインによって提供される設計抽象化を使用して、ファセットはシステムの要件、動作、制約、または機能を記述します。ファセットは異種であり、定義済みまたはユーザー定義のドメインのいずれかを使用して定義できます。Rosetta のセマンティクスは、各ファセットを、その計算モデルを定義するコゲーマに示します。Rosetta はリフレクティブであるため、ファセットを構成および変換して複雑なシステムを定義できます。一般的な仕様作成手法は、システムのさまざまな側面のファセットを記述し、積と和の演算を使用してそれらの側面を構成して完全なシステムを定義することです。
ドメイン言語は、仕様ドメイン (仕様タイプとも呼ばれる) を定義します。ドメインのコレクションは、空またはnullドメインを最上位要素、不整合または最下位ドメインを最下位要素として準同型性で順序付けられた完全な格子を形成します。主なドメイン タイプは 3 つあります。セマンティクス単位ドメインは、仕様の基本単位を定義します。たとえば、state_basedドメインは、値やプロパティを制約せずに、状態と次の状態の概念を定義します。計算モデル ドメインは、セマンティクス単位ドメインを拡張して、 finite_state、Continuous_time、discrete_time、およびfrequencyなどの一般的な計算モデルを定義します。エンジニアリング ドメインは、計算モデル ドメインを拡張して、特定のエンジニアリング ドメインの仕様機能を提供します。
Rosetta は、設立当初から、油圧システムや機械システム、ネットワーク システム、セキュリティと信頼性、ソフトウェア定義無線などの設計領域にまで拡大してきました。
さらに読む
Rosettaは、非厳密な純粋関数型言語Haskell、仕様記述言語のLarchファミリー、およびプロトタイプ検証システム(PVS)から大きな影響を受けました。この言語に特化した本が2006年11月に出版されました。[8]
参考文献
- ^ Perry Alexander、David Barton (2000 年 6 月)。「Rosetta がシステムレベル設計のサポートを提供」。EE Times。2000年 8 月 16 日時点のオリジナルよりアーカイブ。2013 年10 月 7 日閲覧。
- ^ 「SLDL と Rosetta について」。オリジナル Web サイト。カンザス大学。2004 年 3 月 18 日時点のオリジナルよりアーカイブ。2013年10 月 7 日閲覧。
- ^ David Maliniak (2003 年 11 月 10 日)。「Rosetta 設計言語、標準化への道」。Electronic Design。2013年10 月 7 日閲覧。
- ^ 「Rosetta WG - Rosetta Systems Level Design Language Working Group」。IEEE Standards Association。2015年6月10日時点のオリジナルよりアーカイブ。2013年10月7日閲覧。
- ^ Sherry Hampton (2007 年 3 月 22 日)。「P1699 - Rosetta Systems レベル設計言語定義の標準」(PDF)。プロジェクト承認書。IEEE 標準化協会。2015年 6 月 10 日時点のオリジナル(PDF)からアーカイブ。2013年10 月 7 日閲覧。
- ^ “P1699 Rosetta LRM 小委員会”. 2008年4月22日. 2015年6月10日時点のオリジナルよりアーカイブ。 2013年10月7日閲覧。
- ^ 「Standards Board New Standards Committee (NesCom) Recommendations」(PDF) IEEE Standards Association。2013年6月14日。 2013年10月7日閲覧。
- ^ ペリー・アレクサンダー (2006)。Rosetta によるシステムレベル設計。モーガン・カウフマン。ISBN 978-1-55860-771-2。
外部リンク
- http://www.rosetta-lang.org
