Rambus 社、HDL Coder による高位合成を用いて ASIC 向け DSP ブロックを開発

「通常、検証チームとバックエンドチームは、仕様に基づいた RTL の初版が完成してから統合作業を開始するのですが、その段階ではまだバグが残っている可能性があります。この HDL Coder をベースにしたワークフローでは、システムレベルで検証されたモデルからワンクリックで HDL を生成できるので、工数を削減できるだけでなく、各チームにとって確実な出発点が保証されます。」

主な成果

  • 設計プロセスが 1 年から 3 か月に短縮され、HDL コード生成で生産性が向上し、最終実装でも 80 % の生成コードを維持
  • 自動生成された RTL コードをもとに検証環境の開発を開始し、並行して独自の RTL 開発を実施
  • 設計の次世代への移行や、同一世代内での実装バリエーションにも、HDL 対応の Simulink モデルを活用することで、最小限の変更で対応
Simulink モデルを用いて RTL リファレンス設計を生成する DSP ASIC のワークフロー図。このリファレンス設計をもとに、デバッグや可観測性機能、標準セル、設計変更や再利用が可能なコードを備えた、独自の PPA 最適化済み RTL に段階的に発展させていきます。

HDL コード生成、RTL 検証、カスタマイズを通じた DSP ASIC 開発のワークフロー。

現在の通信機器には、より高い性能、製品コストの削減、低消費電力を実現するために、ASIC (特定用途向け集積回路) によって複雑な信号処理アルゴリズムが組み込まれています。ASIC の物理的な実装プロセスは長期にわたります。このプロセスは RTL 検証が完了する前から始まり、最適化された加算器や乗算器の手動での統合、さらに RTL デバッグや可観測性機能の追加が必要となります。

Rambus 社のデジタル エンジニアリング ディレクターである Ehud Nir 氏は、限られた時間とエンジニアリング リソースで Gen6 PCIe PHY 用の DSP を開発する必要がありました。同様の設計を行った過去のプロジェクトでは、1 名の ASIC 設計者が RTL コードを作成し、1 名の検証エンジニアが 12 か月間作業してテストベンチを開発していました。システムアーキテクトが、DSP を含む Gen6 SerDes (シリアライザー/デシリアライザー) 全体を MATLAB® と Simulink® でモデル化していたため、Ehud 氏は設計プロセスの高速化を図るために、Simulink モデルから直接 HDL Coder™ を使って ASIC 実装向けの RTL リファレンスを生成してみることにしました。

まず、システム アーキテクトが、Simulink で作成した SerDes DSP モデルの浮動小数点を固定小数点に変換しました。このモデルが目標とする電気的仕様と特性を満たしていることを確認した後に、ASIC の設計担当者が HDL Coder を使用して固定小数点モデルから RTL コードを生成しました。このリファレンスモデルは、設計プロセスの途中で要件の変更 (DFE 内フィルターの修正など) に対応するために、Simulink から何度か再生成されました。

HDL Coder で生成した RTL コードは、検証チームの IP レベル検証、そしてバックエンド チームの物理設計の開始時に、リファレンス ポイントの役目を果たしました。その間、デジタル設計の担当者は、消費電力を削減し、低消費電力モードを追加するために、組み合わせ論理と順序論理を構築して RTL コードをカスタマイズしました。生成された RTL をリファレンスとして使用することで、独自の RTL と生成 RTL のリファレンス間で階層全体の比較が可能になりました。アサーションを追加することで、独自の RTL を HDL シミュレーターで検証して、リファレンスモデルに対してビットとサイクルの単位で一致しているかを確認できるようになりました。その結果、1 人のエンジニアが、3 か月足らずで機能とタイミングの両面から検証を行った DSP のネットリストを完成させることができました。これは、以前のプロジェクトで 2 名のエンジニアが 12 か月かけて行っていた作業です。この DSP を搭載した Gen6 PHY ASIC テスト チップは、ラボでの検証において一度目の試験で合格しました。