PR
【図1 CoWare Cによるブロック記述例】 上方の拡張部分では,端子の通信プロトコルやクロック,リセットについて記述する。下方のブロックの処理内容は,ANSI C言語で書ける。(ソニーとCoware社の図に一部加筆)
【図1 CoWare Cによるブロック記述例】 上方の拡張部分では,端子の通信プロトコルやクロック,リセットについて記述する。下方のブロックの処理内容は,ANSI C言語で書ける。(ソニーとCoware社の図に一部加筆)
[画像のクリックで拡大表示]
【図2 設計期間の短縮】上が従来型開発手法,下がC言語入力のN2Cを使った場合。ソフト開発を早期に始めらえる点が重要。開発期間全体は約半分になったという。(図:ソニー)
【図2 設計期間の短縮】上が従来型開発手法,下がC言語入力のN2Cを使った場合。ソフト開発を早期に始めらえる点が重要。開発期間全体は約半分になったという。(図:ソニー)
[画像のクリックで拡大表示]

先月の25日,ソニーがシステムLSI設計に,C言語入力のハードウエア-ソフトウエア協調設計ツール「N2C」を適用したというプレス・リリースを,ツール開発元の米CoWare, Inc.が出した(EDA Online関連記事)。C言語によるLSI設計には多くの技術者が注目している。それをソニーが次世代ディジタ民生機器向けLSIの設計に適用したのだから,大きな関心が寄せられた。今回,N2C導入の責任者である,ソニーの柿本勝氏(プラットフォームSOCソリューションセンター SOC技術部 SOC開発課 統括課長)に,導入を決めた理由や導入時の苦労,その効果について聞いた。柿本氏の所属する部署は,ソニーの多くのディジタル民生機器で共通に使われる,システムLSIを開発する役割を担う。今回開発したチップもそのようなLSIの一つという。(聞き手は小島郁太郎)

問 まず,今回のツールを導入した背景を聞きたい。

柿本氏 CPUコアを内蔵するシステムLSIの開発には,二つの課題があった。一つは,LSIのシステム仕様を早い段階できちんと検証すること。もう一つは,ハードウエア(専用回路による処理部分)とソフトウエア(CPUコアによる処理部分)を平行に開発することである。

 早い段階で検証したい仕様の代表例は,ハードウエアとソフトウエアの分割である。現在,ハードウエアとソフトウエアの分割は,システム・アーキテクトの経験に基づいて,ザクットと決めている。ある処理には専用回路が必要だろうとか,このCPUコアならばこの処理はソフトウエアでいけそうだといった具合だ。システム・アーキテクトがシステム仕様を決めた後,実際のLSI設計に入るわけだが,設計を進めるうちに問題が見つかることも少なくない。

問 一般にシステム・アーキテクトは,C言語でシステム仕様をモデル化し,その検証を行なっていると聞く。ソニーのシステム・アーキテクトはこうした検証を行なっていないのか。

柿本氏 もちろん,当社でもシステム・アーキテクトはC言語によるモデル化やシミュレーションを行なっている。しかし,残念ながら,組織として系統立てて運用するまで整備されていない。どちらかというと,システム・アーキテクト自身のやり方で,個人の範囲で活用するにとどまっている。

問 システム仕様の検討が十分に行なわれないため,ハードウエアとソフトウエアの平行開発が難しくなるのか。

柿本氏 そうだと言える。現在は,ハードウエアのブレッドボードが出来上がってから,ソフトウエアの開発に取り掛かることも決して少なくない。これならば,問題があってもソフトウエアで,リカバーする手が打てる。早い段階でハードウエアとソフトウエアの分割が確定していれば,両社の平行開発を含めて,いわゆるトップダウン設計が実現できるはずである。

問 N2Cを選んだ理由を聞きたい。

柿本氏 1997年11月にベルギーのIMEC(ホームページ)の研究成果発表会に参加した際に,IMECをスピンアウトした技術者らが設立したCoWare社のデモを見る機会があった。このとき,「このツールは使えそうだ」とピンと来た。

問 どこにピンときたのか。

柿本氏 ハードウエアとソフトウエアの分割を変更したときに,新しい分割に基づいたハードウエアとソフトウエア協調検証がすぐに行なえるからだ。CoWare社のツールは「Interface
Synthesis」と呼ぶ機能を備えており,ブロック間のインタフェース回路とCPUコアのデバイス・ドライバを自動生成する。このため,すぐに協調検証に取り掛かれる。それまでにも,協調検証ツールはいくつか市場にあったが,いずれもハードウエアとソフトウエアの詳細設計が確定してから使うものである。ハードウエアとソフトウエアの分割を決める,すなわち,協調設計段階で使えるツールは,N2Cが初めてだった。

問 N2Cは,CoWare社の独自拡張版のC言語(CoWare C)を使って入力するが,それに抵抗はないか。

柿本氏 一般に,C言語を使ってLSIを設計するための,ルールはまだ固まっていない。ツールがあれば,ルールを決めて,ツールに埋め込み,設計の効率化が図れる。その具体例がCoWare Cといえる。CoWare Cを使って,あるブロックを記述する際には,そのブロックの処理内容に加えて,クロックとそのブロックの入出力信号の関係といった仕様を規定する(図1参照)。

 後者がANSI C言語からの拡張部分になる。拡張部分があるおかげで,先ほど説明したInterface Synthesisがうまく稼動する。また,ブロックの処理内容はANSI C言語で記述するので,ハードウエアでもソフトウエアでもインプリメントできる。さらに,この処理内容をRTLに近い形で記述することで,ハードウエアでインプリメントする際に,市場にある論理合成ツールが読み込めるHDL記述に自動変換できる。

問 すでにN2Cは何品種かに適用したのか。

柿本氏 現在は1品種の設計が完了したところだ。次世代ディジタル民生機器向けの70万ゲート規模のチップである。今後,適用品種を増やしていく。

問 N2C適用の効果を聞きたい。

柿本氏 仕様検証を行なうことで,システム設計の期間は延びたが,問題点が早期に解決されたことで,ハードウエアの詳細設計やソフトウエア詳細設計の期間は短縮した。

 また,ハードウエアとソフトウエアの分割が早期に確定したことで,ソフトウエアの開発が早期に始められるようになった。こうした効果により,システムLSI全体の設計期間は1/2に短縮したと結論付けた(図2参照)。

問 今回のチップのC言語記述は,システム・アーキテクトが作成したのか。

柿本氏 いや,これまでHDLで設計していたハードウエア設計者だ。本来は,システム・アーキテクトがCoWare Cでモデルを記述すべきだ。今後は,そのような方向にもっていきたい。システム・アーキテクトがCoWare Cでモデルを残せば,そのモデルは再利用可能になる。先ほど述べた個人の範囲で使っているモデルでは,当人以外は再利用できないのが現状だ。HDLでなく,C言語でモデルを残せれば,後日ハードウエアでもソフトウエアでもインプリメントできるというメリットもある。

問 普段HDLを使っているハードウエア設計者は簡単にC言語で設計できたのか。

柿本氏 HDLとC言語という言語の違いよりも,ハードウエアのイメージが頭に浮かんでくるハードウエア設計者が,それを必要としない「動作」で記述することに戸惑いがあったようだ。

問 N2Cは問題なく動作したか。

柿本氏 基本的にはOKだった。ただし,N2C全体を活用してLSIを設計したのは,当社が初めてだったようで,こなれていない点はあった。たとえば,N2CはHDLとしてVHDLを優先して開発されたため,当社のVerilog-HDL環境に統合させるために,若干の作業が必要だった。また,N2Cで生成したRTL HDL記述は,ライブラリの定義に抜けがあったなどの些細な問題が生じた。ただし,論理合成ツールがコンパイルできないというような致命的な問題は発生していない。どちらかといえば,スムーズに論理合成ツールに入力できたという印象である。

問 C言語による設計は主流になると思うか。

柿本氏 CPUの能力が上がれば,ソフトウエアで処理する機会が増える。前に述べたように,C言語で設計を残せれば,状況に応じてハードウエアでもソフトウエアでもインプリメントできる意味は大きい。ただし,すべてのLSIがすぐにそうなる訳ではない。たとえば,HDLで残した設計を再利用するブロックが多いLSIでは,C言語を使うメリットは小さい。反対に,新規設計が多い場合は,C言語を選ぶのが得策だろう。

問 C言語設計に移行するにあたって,半導体メーカに何か注文はあるか。

柿本氏 われわれ機器メーカの設計の抽象度が,RTLから動作に上がるわけだから,それにつれて,半導体メーカに渡す設計データの抽象度も上げて欲しい。いわゆるRTLサインオフを積極的に行なって欲しい。