オープンソースなスタンダードセルを探す

スタンダードセル?

ハードウェア記述言語で表現した論理を回路に変換すると,基本的な論理演算回路の組み合わせ(配線)になります.この基本的な論理演算回路をスタンダードセルと呼びます.たくさんのスタンダードセルを1まとめにして使うので,それをスタンダード・セル・ライブラリと呼びます.
スタンダード・セル・ライブラリがなければHDLを回路に落とせないわけですが,ARM社のスタセルは使えずでした.そこでオープンソースなライブラリを見てみます.

オープンソースなスタンダード・セル・ライブラリ

Graham Petley の著書,"The Art of Standard Cell Library Design"から生まれたGPL準拠で公開されているスタンダード・セル・ライブラリ vsclib, wsclib, vxlib, vgalib および rgalib を見てみます.ホームページはこちらですASIC Standard Cell Library Design by Graham Petley

スタンダードセルの大きさの単位,λ(ラムダ)

スタンダードロジックセルの比較のための用語をまとめます.
まず大きさの単位にλ(ラムダ)を用います.CMOSプロセスルールの微細度合いはトランジスタの最小ゲート長で表されますが,プロセスが微細化してもゲート長と(ポリシリコンやメタル配線など)その他要素の最小寸法の比はほとんど変わりません.ですから,ゲート長を大きさの単位にしてスタンダードセルを設計しておけば,プロセスが微細化しても再利用ができるスケーラブルなスタンダードセルとなります.
λは,もともとはMead-Conwayの著書で,トランジスタのゲート長を2λとして使われました.ゲート長を2λにすると,ゲート幅および(メタルやポリシリコンなどの)要素間の距離をλの整数倍で表記できる利点があります.しかし,後で述べるライブラリvxlib およびAlliance sxlibのセルはゲート長を1λとしてゲート幅および間隔を0.5λの整数倍で与えています.ゲート長をなんλにするかは好みの問題だと思います.

スタンダードロジックセルの比較

セル数などを表にまとめました.

名前 高さ セル数 pharoscレイアウトルール 備考
sxlib 100λ 91セル 満たさない ドライバ・ストレンクスは x1, x4 の2種
vxlib 100λ 96セル 満たす
wsclib 80λ 322セル 満たす
vsclib 72λ 322セル 満たす

複数のライブラリがあります.それぞれのライブラリの由来は,まずAllianceが提供するsxlibがもともとにありました.これとコンパチブルでPharoscレイアウトルール(著者が作ったルール? 原著が入手できていないので,このあたり不明確です)を満たすのがvxlibです.
sxlib, vxlibは高さが100λと高いですが,その分セル内に配線が7本引けるために配線が楽にできます.これは手配線をするときに特に便利でしょう.
vsclibとwsclibは回路的には同じライブラリです.wsclibの電源配線VDDおよびVSSは,それぞれウェルコンタクトと基板コンタクトが打たれています.コンタクトがある分, wsclibはvsclibより高さが大きくなっています.基板電位変動や基板ノイズを気にするならば,セルに基板コンタクトがしっかりと打たれているwsclibの利用がよさそうです.
これらのライブラリに加えて,ゲートアレイ用にrgalib, vgalibの2ライブラリがあります.ここではASICを目標にしていますので,これらの詳細は見ないことにします.

ライブラリの中身,遅延時間などはどうなっている?

ライブラリvsclib,wsclibの遅延時間は標準的な0.13-umのトランジスタモデルを使いspiceシミュレーションから求めています.作りこむためには,少なくとも動作範囲内でのTypical/Best/Worstの値が欲しくなりますが,これらの値を求めるには自分でシミュレーションを実行するほかなさそうです.
またセルのドライブ能力はx1, x4の2種類のみとなっています.ライブラリの説明によると,ドライブ能力を細かく分けてセルを作ると消費電力の低減にはなるが,動作速度はほとんど変わらない(試作したところ0.4%の違いしかなかった),したがってx1とx4の2種類のみを提供している,とのことです.
セルのレイアウトおよびネットリストがあるのですから,遅延時間などは自分で求めることは可能です.スクリプトなどをうまく利用して,このあたりの手当てすれば,これらのライブラリは十分実用になりそうです.