Bluespecに関するよくあるご質問

言語(BSV:Bluespec System Verilog)体系
Bluespec コンパイラ(BSC)
Bluespec シミュレータ(BlueSim)
ライブラリ
設計/検証資産

言語(BSV:Bluespec System Verilog)体系

Q.
言語仕様はオープンですか?
A.
言語仕様はオープンです。
Q.
言語の起源は?
A.
MITでのフォーマル検証、フォーマル記述を用いた高位合成の研究成果が基になっています。
Q.
SystemVerilog の一種ですか ?
A.
SystemVerilog の言語仕様、及び関数型言語であるHaskellの言語仕様がベースとなった言語体系です。
Q.
SystemVerilog と比べて具体的にどのような違いがあるのか?
A.
SystemVerilogはシステムの検証を主目的としていますが、BSVはHWへのインプリメントを目的としており、100%論理合成可能であり、これが最大の違いです。 またアトミック処理、型パラメタライズ、ファーストクラスオブジェクト指向が、SystemVerilogにはないBluespecSystemVerilogの最大の特長です。
Q.
BSVの得意分野、不得意分野は?
A.
あらゆる分野で適応可能です。
Q.
独自言語なのが気になるのだが?
A.
標準化されていない独自言語であることには間違いないですが、BSVはハードウェアを効率的に表現できる最適な言語だと考えています。
Q.
アサーションへの対応は可能か?
A.
OVLのみサポートしています。ただしBluesimでは使用不可です。
Q.
言語を自習したいと思いますが、最適な参考書はありますか?
A.
参考書、自習テキストがあります。 ドキュメントダウンロードより入手可能です。

Bluespec コンパイラ(BSC)

Q.
他の高位合成ツールに比べた QoR(合成結果品質)は?
A.
設計者が100%回路アーキテクチャを制御可能であり、合成結果は高位合成ツールとは比べ物になりません。
Q.
面積、性能(タイミング)、消費電力の見積りの方法は?
A.
合成し生成したVerilog RTLに対して、論理合成ツール等で確認ください。(Verilog/VHDLでの従来の見積もり手法と同一)
Q.
BSVと合成生成されたVerilog との機能等価性の検証方法は?
A.
RTLで再度論理検証を実施ください。
Q.
インクリメンタル合成は可能か?合成時間は?
A.
階層単位での合成となります。合成時間自体は非常に短いです。
Q.
BSVと生成Verilogの対応付けは容易にできるのか?
A.
リソース名は保持されるため、対応付けは容易です。またrule名が反映され、どのruleに対応したwireであるかは宣言部分にコメントが記載されます。
Q.
生成Verilog上のリソースの名前はどのようになるのか?
A.
BSVで記載したリソース名が使用されます。
Q.
ハンドシェイクに関する生成ピンの生成ルールは?
A.
入力ピンに対して、Ready信号とValid信号が追加されます。また出力ピンに対して、Valid信号が追加されます。
Q.
生成Verilogにリントツールを適用する必要はあるか?
A.
SpyGlass 等のリントツールは、人手設計RTLに対して不具合と思われる記述(バグを仕込みやすい記述)」を排除するためのものであり、Bluespecコンパイラから生成されたVerilogについてはこの懸念は除外できます。Bluespecコンパイラが生成したVerilogを論理合成した結果、誤った回路が合成されたという障害報告は一切ありません。
Q.
論理合成ツール用の制約ファイルの生成は可能か?
A.
生成できません。

Bluespec シミュレータ(BlueSim)

Q.
デバッグ方法は?
A.
波形を出力可能です。波形表示ツールを別途用意し、デバッグしてください。
Q.
コードカバレッジ取得機能はあるか?
A.
BSVに対してコードカバレッジは取得できません。
Q.
RTL シミュレータと比べて速度は?
A.
記述内容によって速度は変わりますが、1〜10倍程度高速です。
Q.
RTL シミュレータと比べて速度が速い理由は?
A.
競合するルール(プロセス)のステートメントは評価されないため、RTLと比べて処理するステートメント数が抑制され、このため高速となっています。
Q.
MATLAB/Simulinkと連携することは可能か?
A.
対応していません。

ライブラリ

Q.
どのようなライブラリがあるか?
A.
FIFO、レジスタファイル等のリソースライブラリ、vector、list等の配列を容易に取り扱うためのライブラリ、マルチクロック対応のためのライブラリ等、多くのライブラリが用意されています。

設計/検証資産

Q.
既存の設計/検証資産(C/C++, SystemC, Verilog/VHDL RTL)の流用は可能か?
A.
既存のRTLを、wrapperを使用しインスタンスすることが可能です。またBluespec Simulator使用時には VPIによる ANSI-C/SystemCなどの外部言語取り込みも可能です。またBSVから CycleAcculateのSystemCを合成する機能もサポートされています。
Q.
既存の設計/検証資産(C/C++, SystemC, Verilog/VHDL RTL)をBSVに自動変換できないか?
A.
他の言語をBSVに自動変換するような機能はございません。
Q.
BSVによる設計/検証資産の蓄積は可能か?再利用性は十分あるか?
A.
強力なパラメータ化ができ、再利用性が高いことがBSVの特長です。