Bluespecの主な特徴
Bluespecは、アーキテクチャ設計、インプリメント、ベリフィケーションにおいて、HW設計者の要求に応える設計環境を提供し、LSI開発に劇的な効果をもたらします。
高い抽象度と精度を両立
複雑になり過ぎたRTLの抽象度を上げることによるコード量の大幅削減と、サイクル精度の高品質な設計・検証という、従来手法では相反する要素を両立させます。
強力な型チェックとオーバーロード
Bluespecコンパイラは強力な型チェックを行います。
bit [31:0] x;
x = signExtend (25’h9BEEF);
x = zeroExtend (25’h9BEEF);
x = { 0, 25’h9BEEF };
x = zeroExtend (39’h9BEEF); // error
x = truncate (37’h9BEEF);
x = truncate (25’h9BEEF); // error
- 演算子及び関数の引数が正しい型であるか?
- 代入は正しい型になされているか?
- モジュールのパラメータは正しい型であるか?
- モジュールのインタフェースは正しい型であるか?
Verilog/SystemVerilogより厳密です。
- レジスタでさえ型づけされている
- 0拡張や符号拡張、そしてビットカットは自動的に行わない
インターフェイスと処理を分離
Bluespecでは、LSI内部の共有リソースの排他制御はツール側が管理し、設計者はマイクロアーキテクチャの設計に専念できます。マイクロアーキテクチャの設計は、バスやトランザクションなどのインターフェースの設計と分離されているため、仕様変更が起こった場合でも、柔軟に対応可能です。
仕様変更に柔軟に対応
Bluespecでは、HDL設計、動作合成ツールの様々な制約を最小化し、最適なHWを実現するリファイメントを容易実現することが可能です。
抽象化したFSMパッケージの提供
FSM定義を容易にする標準ライブラリを搭載しています。
- seq/endseq:シーケンスを定義
- action/endaction:同時実行ブロック(1サイクル内)
- par/endpar:並列実行ブロック
エラーの発生しやすい並列性の管理、排他制御等を自動生成
設計の具体例
用途を限定しないユニバーサルなソリューション
Bluespecは、アルゴリズム系に加え、従来の動作合成が苦手としているデータパス系、コントロール系ロジックにも適用可能です。
関連ページ