
2026/03/20 1:40
**Verilog設計のベクトル化とその検証および合成への影響**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改訂された要約
本論文では、CIRCT コンパイルインフラストラクチャの上に構築された Verilog ベクトライザを提示し、複数のスカラー配線ではなく、全バスを単一のベクターエンティティとして扱う手法を紹介します。複数のスカラー代入を1つのベクター演算に統合することで、シンボリックな複雑さを削減しながらハードウェア動作は保持されます。実験では、Cadence Jasper の形式検証ツールで顕著な効果が確認できました:1,157 個の ChiBench デザインにおいて、展開時間が 28.12 % 減少し、メモリ消費量が 51.30 % 削減されます。ベクトライザは、反転代入や複雑な式、インターモジュールバス転送といったパターンを認識できるため、EDA パイプラインへの統合がより緊密になり、大規模回路のスケーラビリティが向上します。
本文
概要
ベクトル化は、スカラー値に対する複数の演算を単一のベクトル値で行う演算へ置き換えるコンパイラ最適化です。
rustc、clang、gcc など従来型コンパイラではよく見られますが、Verilog エコシステムではあまり一般的ではありません。これは、Verilog がベクトル表記をサポートしているにもかかわらず、言語自体に「ベクトル化された信号はワードレベルのエンティティとして振る舞う」という意味論上の保証がないためです。合成ツールは、複数個別の代入と単一のベクトル代入を同じ並列配線セットに解決し続けます。
しかしながら、ベクトル化は他領域では重要な利点をもたらします。特に、実際のハードウェア構成が変わらなくてもシンボリック複雑性を低減できます。Cadence Jasper のような形式検証ツールはシンボリックレベルで動作し、ブール関数・状態遷移・等価クラスを扱い、個々のワイヤやゲートではなく論理的エンティティとして処理します。これらのツールがバス全体を単一のシンボリックエンティティとして扱える場合、より効率的にスケールできます。
本稿は、Verilog ベクトル化器を導入することでこの観察を裏付けます。このベクトル化器は CIRCT コンパイルインフラストラクチャ上に構築されており、反転代入・複雑表現を含む代入・モジュール間代入など複数のベクトル化パターンを認識します。いくつかの EDA ツールで実験した結果、Jasper では ChiBench コレクションから抽出した 1,157 個の設計に対し、展開時間が 28.12 % 改善され、メモリ消費量が 51.30 % 削減されました。
提出履歴
送信者:Fernando Quintao Pereira [メールを表示]
[v1] – 2026年3月17日 火曜 19:39:56 UTC(1,067 KB)