UHDMというのは、ハードウェアを表現するためのデータモデルで、YAML形式で表現されている。 エコシステム全体でSystemVerilogをサポートするための共通オブジェクトフォーマットとして、UHDMが定義されており、このための論文を読んでみることにした。
体裁は論文っぽくないけど。何となく読んでみる。ざっくりとDeepLで翻訳しながら読んだ。
https://woset-workshop.github.io/PDFs/2020/a10.pdf
Universal Hardware Data Model
Alain Dargelas, PhD, Data Model Solutions, LLC, Santa Clara, CA, USA alain.dargelas@gmail.com
Henner Zeller, Google, Mountain View, CA, USA, hzeller@google.com
概要 -- Universal Hardware Data Model (UHDM) [1]オープンソース・プロジェクトは、オープンソースのElectronic Design Automation (EDA)ツールがSystemVerilog 2017 Standard [2]全体をサポートできるようにすることを目的としています。一方ではSureLog [3]のようなパーサーがUHDMモデルを解析してポピュレートし、他方では合成、シミュレーション、リンターなどのクライアントツールがコンパイルされたモデルから読み返してそれぞれのタスクを実行します。
Keywords—SystemVerilog 2017, Open-source Verilog Parser, Persistent Data Model, Verilog Procedural Interface.
1. イントロダクション
EDAのオープンソース・エコシステムでは、現在、SystemVerilog 2017言語の完全なサポートが行われていません。UHDMデータモデルの目的は、この空白を埋め、エコシステム全体でSystemVerilogを完全にサポートできるようにすることです。
そのために、完全なSystemVerilog 2017プリプロセッサ/パーサ/コンパイラ/エラボレータが開発されました。SureLog [3]です。SureLogはユーザのSystemVerilogを解析し、デザインとテストベンチのコンパイルとエラボレーションのタスクを実行し、ディスクに保存されているUHDMデータ・モデルを生成します。UHDMはYosys [4]やVerilator [5]などのアプリケーションの開発用に使用され、Yosys-UHDM integration [6]やVerilator UHDM integration [6]などの翻訳レイヤーによってそれぞれのネイティブ・データ構造に変換されたり、クライアント・アプリケーションがスタンドアロンのデータ構造として使用したりします。エコシステムは、UHDMモデルに対応する他のパーサー/コンパイラーにも開かれています。
本書の執筆時点では、SureLog-UHDM-Verilator/Yosysのフローを使用してOpenTitan Root of Trust Design [7]の合成とシミュレーションを行い、完全なスタックを検証しています。