Altifigence、Digital Design StudioにGoogle XLSサポートを追加

DSLXで表現したハードウェアの設計意図をRTL実装につなげます。

記事の見出し

AltifigenceがDigital Design StudioにGoogle XLSのサポートを追加しました。ユーザーはDSLXでハードウェアの機能を記述し、XLSを通じて合成可能なRTLに変換する設計フローを利用できるようになりました。今回のアップデートにより、高水準のコードから設計を始め、実装候補を検討する方法がDigital Design Studioに加わります。

Google XLSとはどのようなツールですか?

Google XLSは、高水準で表現された演算をデジタル回路として実装するためのオープンソースの合成ツールです。DSLXで記述した設計を中間表現であるIRに変換し、最適化とスケジューリングを経てVerilogまたはSystemVerilogを生成します。機能を記述するコードと実際のハードウェア実装をつなぐ役割を担います。Google XLS公式ドキュメント

DSLXは、ハードウェアに必要なデータ型やビット幅を明示できる言語です。設計者は、入力と出力、演算規則、データの表現をコードに記述し、必要な動作を具体化できます。その後、実装結果を確認しながら設計を修正するフローにつながります。DSLX公式ドキュメント

機能の表現からパイプライン構成まで

ハードウェア設計では、同じ機能でも演算の構成やパイプラインによって異なる実装につながることがあります。XLSのスケジューリングは、演算間の依存関係とタイミング制約を考慮し、演算をパイプラインの各段に配置します。目標クロック周期やパイプラインの段数などの条件を用いて、遅延とレジスタ使用量の関係を検討できます。XLSスケジューリングのドキュメント

このフローは、設計の選択肢を比較する際に役立ちます。まず必要な機能を表現し、演算構造や条件を変えて結果を確認しながら、要件に合った実装を探ることができます。生成されたRTLは、その後の合成・検証および物理実装の過程で、実際の条件に合わせて評価します。

演算ブロックの設計例

複数の入力に重みを掛けて加算する演算ブロックを例に考えてみます。入力のビット幅と符号、出力範囲、オーバーフローの処理方法を決め、DSLXで表現します。テスト入力と期待される出力を用意すると、機能を具体的に確認するうえでも役立ちます。

続いて、XLSの変換・最適化・スケジューリングを通じてRTLを生成します。要件が変わった場合は、高水準の表現や実装条件を修正して、別の候補を検討できます。この例はXLSを活用した設計アプローチを説明するものであり、実際の性能と面積は、設計内容とその後の実装条件によって異なります。

AIとともに記述したコードをハードウェア実装へ

AIは、設計要件をコードとして具体化したり、データ型や境界条件を検討したり、テスト入力を準備したりする過程で活用できます。XLSは、このように記述・修正した高水準の設計をRTLにつなげるツールです。設計者は、意図した機能と生成結果を確認しながら、実装を発展させることができます。

Altifigenceは、ChatGPTのGPT-6 Astraモデルもサポートしています。今回のアップデートの中心はGoogle XLSのサポートであり、AIとともに行うコードの記述やレビューを、高水準のハードウェア設計フローにつなげられる点に意義があります。

Digital Design Studioで始めましょう

Google XLSのサポートにより、Digital Design Studioでの設計方法が広がりました。RTLの記述に加えて、必要な機能をDSLXで表現し、ハードウェア実装へと発展させるアプローチを選べます。

Digital Design Studioで、Google XLSを使ったハードウェア設計を始めてみてください。