設計生産性はTLMの2倍、Bluespecを検証用途に利用したオリンパスの事例
2012年10月12日、サイバネットシステムは日本代理店として販売しているESL合成ツール、「Bluespec」のユーザーセミナー「Bluespec User Group Meeting 2012 Oct」を開催した。
ここでは、同セミナーで発表されたユーザー事例講演、「Bluespec導入経緯とESL環境構築への適用」の内容について紹介する。講演を行ったのは、オリンパス株式会社 研究開発センター デジタル技術開発本部 SOC技術部の古川 英明氏と刈屋 三友氏である。
※画像は講演者の古川氏(左)と刈谷氏(右)
最初に講演した古川氏によると、古川氏らの所属する部署は、研究開発部門としてLSI設計をはじめツールの評価や社内の設計教育なども受け持つ部隊で、SystemCを用いた設計経験は10年以上。SystemCを使って設計の初期段階でアーキテクチャの性能評価を行なっていたが、DRAMアクセスなどシステムLSIの限界性能を見極めるには精度の高いモデルが必要となりシミュレーション速度の低下を招くため、性能評価環境をエミュレーター上に実装して高速化を図る事を考えた。
※画像は古川氏/刈谷氏の講演データ(以下、同様)
しかし、エミュレーターに性能評価環境を実装するにはRTLに落とし込む必要があるため、抽象度の高い記述が可能でかつRTL合成が可能な「Bluespec」に目を付けた。検証用としてタイミングやバッファの管理機能だけが有れば良いと、制御系の回路実装に強い高位合成ツールを考えると選択肢は「Bluespec」だけだった。
実際に「Bluespec」を使用したところ、専用言語「BSV:Bluespec SystemVelirog」の習得には苦労したが、「その山を乗り越えたあとのうまみを知ると止められない」と言わせる程の効果を得る事ができ、現在では他社やパートナーにも薦めるほどになったと古川氏。その具体的な「Bluespec」の利用メリットについて刈谷氏が続けて講演した。
刈谷氏は、入社後、RTL設計、ファームウエア開発、SystmC設計とそれぞれ各3年の経験を積んだエンジニアで、今回初めて「Bluespec」の適用に挑戦。性能評価のためのハードウェア・モデルの開発にあたっては、SystemC TLMのように高い抽象度を維持したいと、モデル内部のパケット生成部とインタフェース部をそれぞれ効率化しようと考えた。
インタフェースの転送制御はSystemCと同様の考え方でFIFOライブラリを用いて抽象化する事が出来た。双方向の転送制御については「BSV」のSeverClientライブラリを用いて実現。コード記述量はFIFOライブラリを用いた場合より1/2-1/8程度で済み可読性も向上した。
一方でパケット生成部の記述の効率化にあたっては、「BSV」独特の概念の理解に苦労した。「BSV」はHaskellベースの関数型言語であり「アトミック・トランザクション」と呼ばれるTLMとは別の「処理の単位」をベースに記述するためである。しかし、それによって「処理の本質ではない余計な記述を大幅に削減できる」と刈谷氏。具体例としては、リソースの競合管理や制御アルゴリズムの実装において、コード記述量を大幅に削減することが出来た。
実際にトライアルで「BSV」で作成した評価環境と並行してSystemCで作成した評価環境を比較したところ、開発期間は「BSV」の習得時間を含めてほぼ同等。コード量はSystemCよりも「BSV」の方が半分の記述量で済んだ。検証速度は「BSV」をRTLに落としこみエミュレーターに実装することで、SystemCによるシミュレーションよりも120倍の高速化を実現。「BSV」を用いることで評価用のESL環境の構築を効率化できると同時に、RTLにも落とし込める事を確認した。
刈谷氏はトライアルの成功要因として、検証用途に割り切った点、SystemCの使用経験があった点と合わせてサイバネットの協力を挙げ、慣れれば開発期間はSystemCの半分程度で済むだろうとコメント。更に刈谷氏は「BSV」による設計生産性の向上イメージを図に示し、「BSV」はTLMよりも2倍の設計生産性を実現できるとし、更に伸びしろ(まだ知らない領域)があるかもしれないと語った。
尚、オリンパスでは、「Bluespec」の導入は「効果が絶大」と設計や検証への適用拡大を考えているとの話で、刈谷氏は今後の課題として「Bluespec」の利点を生かした検証手法の確立や、STARCルールに沿ったRTLの生成を挙げた。