核心概念
本論文は、CIRCT ハードウェア IR の初めての形式的意味論を提案する。この意味論は階層化されており、合成可能で実行可能である。
要約
本論文は、CIRCT (Circuit IR Compilers and Tools) のための初めての形式的意味論を提案している。CIRCT は LLVM のようなオープンソースの EDA フレームワークで、さまざまなハードウェア記述言語をサポートしている。しかし、CIRCT には形式的意味論が欠けているため、ハードウェア設計の厳密な検証が困難となっている。
本論文では、K フレームワークを使って K-CIRCT と呼ばれる形式的意味論を提案している。この意味論は以下の3つの層から構成されている:
MLIR 静的意味論: MLIR の基本概念をドメイン横断的に扱う。
CIRCT 共通意味論: ハードウェアの一般的な特徴をモデル化する。
合成可能な個別ダイアレクト意味論: CIRCT の主要ダイアレクト (hw、comb、seq、sv) の個別の意味論を定義し、上位層と連携させる。
この階層的アプローチにより、ダイアレクト間の合成性と拡張性が実現されている。また、CIRCT 共通意味論では、ビット操作ライブラリやシーケンシャルロジック、並行性などの一般的なハードウェア機能をモデル化している。
提案手法を用いて、CIRCT の主要ダイアレクトの意味論を定式化した。さらに、RISC-V プロセッサ設計 riscv-mini をCIRCTにコンパイルし、提案の意味論で完全にシミュレーションできることを示した。
統計
CIRCT には 98 個の演算子が定式化されている
定式化に必要な行数は合計 3969 行
引用
"CIRCT は LLVM のようなオープンソースの EDA フレームワークで、さまざまなハードウェア記述言語をサポートしている。"
"CIRCT には形式的意味論が欠けているため、ハードウェア設計の厳密な検証が困難となっている。"
"提案手法を用いて、CIRCT の主要ダイアレクトの意味論を定式化した。"