LSI設計の言語とは?

2008年11月4日(火)
江頭 啓輔

Bluespec SystemVerilogとは?

 ソフトウエアは、コンパイラを使用することでソースコードから実行ファイルなどを直接生成することが可能ですが、LSI設計ではコンパイラを使用して、一段低い抽象レベルの設計図を生成するのが一般的です。ソフトウエアの世界における、メタ言語から別のプログラミング言語を生成するようなイメージで、システムレベル設計からコンパイラなどのツールを介してRTLを自動生成することによって、手書きするよりも省力化を図っています。

 また、一般的なLSIは大量生産するための「マスク」と呼ばれる、原版を作る必要があります。最先端のLSIではマスクの製造コストだけで数億円かかると言われており、製造後に不具合が見つかりマスクの作り直しになると、膨大な費用の損失が発生します。従って、十分にコンピュータ上でシミュレーションなどの機能確認や検証を行うことがとても重要です。

 システムレベル設計に期待されることは、ソースコードの行数削減による省力化と、大規模になったLSI全体をシミュレーションできるくらい高速なシミュレーション環境です。Bluespec SystemVerilogは2003年に創業した米国Bluespec社によって提案された新しい言語で、Bluespec社のコンパイラによってVerilog HDLを自動生成し、Bluespecシミュレーターによって高速シミュレーションを実現できますのでシステムレベルに必要とされる要件を満たしています。

 下記はユークリッドの互除法によってGCD(Greatest Common Divisor:最大公約数)を求める回路のBluespec SystemVerilogソースコードで、Bluespec SystemVerilogを初めてご覧になる方でも、簡潔でわかりやすいソースであることを理解していただけると思います。また、テストベンチとは設計したモジュールの機能確認のために入力波形を生成したり、結果をモニターするためのものです。

アトミックトランザクションとインタフェースメソッド

 Bluespec SystemVerilogは、従来のVerilog HDLなどに慣れ親しんだエンジニアが使いやすいように、Verilog HDLに沿った構文を使います。しかし、ソースコードの行数を減らすためには、何らかのセマンティックギャップが必要なため、アトミックトランザクションとインタフェースメソッドやポリモーフィックなどのパラメータ化の概念、強力な型設定などを導入しました。

 インタフェースメソッドは、Verilogの拡張版であるSystemVerilogにおいても存在しますが、Bluespec SystemVerilogでは、より抽象化、自動化を進めています。ポリモーフィックはオブジェクト指向のプログラミング言語として一般的ですし、型設定については初期のプログラミング言語でも備えているため、ここでは詳しく説明しません。ただし、Bluespec SystemVerilogの基になる言語が関数型言語で、一時はHaskellがベースとなっていた時期もあるため、型設定や静的な型チェックについての非常に強力な機能をもっている点は注目に値します。

 アトミックトランザクションがBluespec SystemVerilogのコアとなる新しい記述スタイルで、rule構文を用いて表します。rule構文では、rule・・endruleに囲まれた処理を同時に実行します。つまり図2のGCD回路の1ではxとyへの代入が一度に行われます。この一度に複数の処理を行うということが、ソフトウエアのプログラミングと異なる点の1つで、従来のVerilog HDLなどの同時処理の記述よりも簡潔に表現することが可能です。

 また、複数のruleも可能であれば同時に実行されます。ただし、上記GCD回路の2つのruleが両方ともyへの代入を行うため、同時に実行することができません。xとyは単なる変数ではなく、実体を伴うレジスタのインスタンス(LSI設計言語におけるインスタンスとは、本当の意味での実体(ハードウエア)に名前をつけたもの)であり、プログラム上の代入はレジスタへの書き込みを意味するからです。

 プログラミング言語とのもう1つの大きな違いは、このようなインスタンスを意識した設計を行う必要ある点です。アトミックトランザクションの導入によって、共有リソースの排他処理を自動化することができるようになり、オペレーション指向のソースコード記述が可能になりました。

 インタフェースメソッドはソフトウエア用のプログラムにおいては一般的ですが、そのメソッドをどのように実体化するかということが難しく、LSI設計言語においては使用されてきませんでした。Bluespec SystemVerilogのアトミックトランザクションの導入によって、ソフトウエアと同等のインタフェースメソッドから実体化できるようになりました。

サイバネットシステム株式会社
半導体商社を経てサイバネットシステムにおいてSPICEシミュレーター、MATLABなどのアプリケーションエンジニアを担当した後、現在はBluespecのビジネスを立ち上げ中。http://www.cybernet.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています