HOME

製品情報

「Bluespec System Verilog」によるモデルベースデザイン

1.はじめに

近年、製品の高機能化はとどまることなく、システムの複雑さは増大の一途を辿っています。製品に搭載されるASIC/FPGAにおいても、半導体の微細化に伴い大規模化・高機能化の要求は年々増すばかりです。

しかしながら、要求される開発期間は短くなっても長くなることはありえない状況です。このような要求の中、現在のASIC/FPGAの手法は限界にきており、新たな手法が求められています。

2.現状の問題点


図1

現状のASIC/FPGAの設計フローを図1に示します。

ASIC/FPGAでは、まず仕様書からアーキテクチャを意識して詳細化しながら、実装仕様書を作成します。

次に実装仕様書をもとにRTLのコーディング(実装)を行い、実装の確からしさを検証します。これは、仕様書から実装仕様書、実装仕様書からRTLへと詳細化を行いながら、抽象度のギャップを人手で埋めていっているに他なりません。従って、大規模化・高機能化が進めば進むほど、作業は膨大となります。

RTLの検証は、ギャップを埋めた結果が正しいかを検証していることであり、また、検証に多くの時間を費やす原因ともなっています。


3.モデルベースデザイン


図2

近年、ソフトウエアの開発ではモデルベースデザインが注目されています。一般的なモデルベースデザインのフローを図2に示します。

モデルベースデザインでは、まず仕様からモデルを作成します。そして、このモデルを使用して仕様の妥当性を検証します。最後に、検証されたモデルからツールによりターゲット・コードを自動生成します。このモデルは、「実行可能な仕様書」と呼ばれ、検証やテストに再利用します。

この手法をASIC/FPGAの設計に適用するとどうでしょう。先に述べた人手で埋めている抽象度のギャップを解消できているのではないでしょうか。

過去を振り返ってみるとトランジスタ、ネットリスト、回路図、HDL(RTL)と抽象度を上げるように設計のパラダイムシフトが行われてきています。つまり、次のパラダイムシフトは、「実行可能な仕様書」ではないでしょうか。


4.ASIC/FPGAのためのモデルベースデザイン言語

先に述べましたモデルベースデザインの要件を整理すると以下の4点となります。

(1) モデルによる仕様の表現/定義「実行可能な仕様書」

(2) モデルのシミュレーションによる設計の詳細化、妥当性検証

(3) モデルからの自動コード生成による実装

(4) テスト/検証におけるモデルの再利用

これをASIC/FPGAの設計にあてはめると、それぞれ以下のようになります。

(1) 高い表現力(ほどよい抽象度と並列性)

(2) 高速なシミュレーションとリファイメント性

(3) 高位合成

(4) オブジェクト指向

これらを全て満足できる言語が、これから紹介するBluespec System Verilog(以下、BSV)なのです。

5.Bluespec System Verilog

BSVは、MIT(Massachusetts Institute of Technology:マサチューセッツ工科大学)で開発されたTRCと言う言語がベースとなっています。現在は、米国Bluespec社がシミュレータと合成ツールを開発しており、日本では弊社が代理店としてこれらを提供しています。

BSVは、ruleという構文を使用し、条件ごとの動作を記述します。BSVの特徴として、以下のものが挙げられます。

(1) ruleは、全て並列動作

(2) 条件変更や追加が容易

(3) BSVで記述されたモデルやテストベンチは、全て合成可能

(4) オブジェクト指向(モデルのアクセスは、method)

これが、モデルベースデザインを実現できる理由です。

また、BSVはクロックやリセットを含め、全てが型を持っており、コンパイラは非常に厳密な型チェックを行います。

違う型同士の代入は全てエラーとなるため、ケアレスミスによる代入ミスやクロックドメイン間にわたる代入を排除します。このためBSVは、非常に品質の高いモデルを作成することが可能であり、設計者は本来の仕様の妥当性の検証に専念することが可能になるのです。

6.まとめ

現状のASIC/FPGA設計の問題は、モデルベースデザインにより解消することができます。

そして、モデルベースデザインは、弊社が提供するBluespec社のツールを使用することで、実現することが可能となるのです。

2/5

(13/17)