HSPCIE SIG 2011 in Japan

昨日は、http://www.synopsys.co.jp/events/seminar/hspice_sig/index.html に行っておりました。
本当は、懇親会等で伝えればよかったと思ったのですが、何となくフラフラっとそのまま外に出てしまって、モヤモヤっとしているところがあるので、ブログに書きます。

HSPICEの強みとは

日本における回路シミュレータの使い分けを見ると、半導体ベンダでは、ほぼ2つに集約されるでしょう。CadenceのSpectreとSynopsysのHSPICEです。さて、この使い分けは? ざっくりとは

  • Spectre: Pure Analog, Pure RF, Mixed-Signal
  • HPSICE: 上記以外、セル設計, Signal Integrity between Chip and Package

と言う感じを持っています。そして、今回のイベントでもユーザトラックと言いつつ、Pure Analog系の人が誰もいなかったことが雄弁と状況を語っているように思えます。

アナログに関して、なぜHSPICEのポジションが低いかというと、アナログの設計環境が各社ともCadenceであり、Spectreはその設計環境(Virtuoso)とタイトに連携しているため、HSPICEとは言えども牙城が崩しにくいところではあります。

一方で、Signal Integrity, Power Integrityなどの解析では、Sパラメータを等価回路モデルとして、過渡解析で解く必要があります。ここは、HSPICEの独壇場となっており、数百を超えるポートを持つSパラでも解析することが出来ています。また、収束性もなかなかのものです。

今後もこのような使い分けが続くのだなぁ、と、確信したイベントでもありました。

電磁界ソルバとの連携

上でも書いたとおりですが、SI/PIの解析には、等価回路にはSパラメータが標準となっています。しかしながら、Sパラメータは周波数テーブルです。ある周波数でのポート間の伝達関数が数値で記載されているだけです。このような周波数テーブルをシミュレータは受け取って、時間応答を計算しています。

要は、周波数応答を逆フーリエして、時間応答にしているわけですが、困るのが、周波数テーブルは離散値であって、連続値ではない。つまり、回路シミュレータが必要としている特性は、周波数テーブルから適当に補間して求めることになっています。ここで矛盾が生じると、発散などの憂き目に合ってしまいます。

HSPICEは優秀なシミュレータで、Sパラテーブルの補間方法が非常に充実しているので、結構ヒドイSパラでも解くことができます。しかし、少し限界があるのではないでしょうか?

今の問題は、情報が電磁界ソルバから回路シミュレータ側に一方通行になっていることだと思っています。逆に回路シミュレータ側から、「この付近の周波数が足りないから、電磁界ソルバで再計算してよ」と言う文句を言ってくれてもいいと思っています。

非常に難しいことだとは思うのですが、HSPICEの中では、高度な補間計算をしたり、有理関数を作ったり、Sマトリクスを自動的に分割して、とか、さらに高度なことをやっているような気がするので、上記のサジェスチョンくらいできるのではないか、と思ってしまいます。

ネットリストの革新

HSPICEなのかSPICEなのかはわかりませんが、誕生してから30年だそうです。この間、DC収束法、積分法、マルチテクノロジの解析、など色んな革新があったと思います。しかし、唯一変わったと思えないのが、ネットリストのシンタックスです。

HSPICEの新機能の紹介などで.StatEyeとか、.TranNoiseとか見るたびに、「レガシーやなぁ」と感じてしまいます。ぼちぼち革新しませんか? 現状のネットリストでは、拡張に拡張を繰り返しているため、

  • パラメータパッシング(グローバルかローカルか、見た目でわかるようにしてください)
  • オプションの有効範囲
  • 各種記述の豊富さ(抵抗素子一つをとっても記述方法が多すぎる)
  • includeによる他のテクノロジの読み込み(Verilog-Aモデルとか、インラインで読めるようにしませんか?)
  • 構造記述は.subcktのみ


などなど、私にはカオスになっているように思えます。デジタルとの協調シミュレーションがいまいち進まないのも、SPICEのレガシーさが足を引っ張っているようにも思えます。

どこかのタイミングで、SPICEのネットリストを捨てて、Verilog-AMSにしませんか? 素子レベルの記述も可能ですよね。もしくは、新フォーマットを考えもらってもいいですよ。

各々のシミュレータのネットリストコンパチビリティなんて、不要なので、統一的なSPICE2.0を考えていきたいものです。