【JSNUG】LISA言語の生産性は高位合成と同等-リコー木村氏がDSP開発例を紹介

2010年10月15日、都内のホテルで開催された「SYNOPSYS USERS MEETING 2010」のレポート。
株式会社リコー 研究開発本部 基盤技術研究センター 木村貞弘氏の講演:
「Processor Designerを用いたDSP開発並びに特殊命令実装と実機へのインプリメンテーション」
リコーの木村氏は、ESL関連のセミナーで度々事例を発表している人物で、昨年11月に開催された「ESV User's Meeting 2009」において旧CoWare社製品を用いたレガシーコアの復刻事例を紹介。今回講演はその続編という形で行われた。
木村氏が進めているレガシーコアの復刻プロジェクトは、無線通信用途をターゲットに同社の過去のDSP資産からオリジナルのカスタム・プロセッサを開発するというもので、シノプシスの「Processor Designer」を活用している。これまでの活動の成果としては「Processor Designer」のモデリング言語「LISA2.0」を用いて復刻DSPコアのTLMモデルを完成させ、同じくシノプシスの「Platform Architect」上で動作・観測する事に成功しており、次なるステップとして復刻DSPコアのカスタムと実機動作(FPGA実装)を目指した。
ricoh-00.jpg
木村氏はDSPコアモデルのRTL化に向けて、まずCAモデル開発の下準備から入った。「Processor Designer」にはRTLを自動生成する機能があるが、そのためにはTLMモデルではなくCAモデルが必要となるからだ。そこでCAモデルのコーディングに入る前に、「Processor Designer」のCAモデルのサンプルからRTLを生成し、論理合成をかけFPGAでのLUT数とASICでのゲート数を算出してみた。その結果、回路規模としては満足のいくもので、元となるLISAコード約1500行から約1万行のRTLを自動生成できた事から「LISAはSystemCと同等の生産性」がある事を確認した。同社ではSystemCからの高位合成ツールを活用しており、コード量換算で7倍の生産性は高位合成と遜色ないという意味である。また、「Processor Designer」には、リンカ、デバッガ等のソフト開発環境を生成してくれる機能もあるため、木村氏にとっては生産性を向上できる上にソフト開発環境が付いてくるというのは大きなメリットだったようだ。(→過去のDSP資産はデバッガがDOSベースだった)

ricoh-01.jpg

その後木村氏のチームは、元となるTLMモデルをベースに復刻DSPのCAモデルを開発。幾つかの課題に直面したが、無事にRTLを生成し論理合成をパスした。合成した回路のゲート規模は予想をはるかに上回るもので、ある意味サプライズだったという。一連の作業に要した工数はTLMモデルの作成に約1ヶ月(他業務をこなしながら)、TLMの検証に1ヶ月、CAモデルの開発に3ヶ月で、TLMの検証以降は木村氏以外の設計者1名が担当。プロセッサ開発経験の無い設計者でも「Processor Designer」を活用する事でやり遂げた。

ricoh-02.jpg

尚、木村氏のチームが開発した復刻DSPコアは、単なる復刻ではなく幾つかの特殊命令が追加されている。これら命令の追加は全てLISA言語ベースで実装されたようで、木村氏は、「LISAはC言語ライクな言語であるため命令の追加は簡単だった。」、「LISA言語を用いて高い抽象度でモデルを管理することで再利用性が高まる。」と語っていた。
最終的に命令を追加した復刻DSPコアは、FPGAに実装されデモ環境の構築まで完了したが、木村氏は更に次なるステップとして復刻DSPコアのソフトウェア・シミュレーション環境の構築を検討。ソフトの効率的な検証を目指して、あらためて「Platform Architect」を用いたバーチャル・プラットフォームの構築に取り組んでいるという。

= EDA EXPRESS 菰田 浩 =
(2010.10.29 )