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:並列実行ブロック

エラーの発生しやすい並列性の管理、排他制御等を自動生成

設計の具体例
Please Note: You may have disabled JavaScript and/or CSS. Although this news content will be accessible, certain functionality is unavailable.
@Bluespecはこのような煩雑な設計手順を
Aリソースの割付と機能の記述のみ行えば
B排他制御等は自動合成します!

用途を限定しないユニバーサルなソリューション

Bluespecは、アルゴリズム系に加え、従来の動作合成が苦手としているデータパス系、コントロール系ロジックにも適用可能です。


関連ページ