大規模ハード設計の開発環境

 有史以前、ハード設計は紙図面とテンプレートだった。今の事業部長の署名の入った青焼きの図面を倉庫の図面保管用ロッカーから発掘したので間違いない。
この頃はTTLがメインで、CPUもTTLの組み合わせで作られていた。詳しくは「超マシン誕生」【AA】を読んでみるとよろしかろう。
1980年代にもなると独自の集積回路を組み込むようになった。カスタムICと呼ばれていた頃で、集積度は頑張って数千ゲート程度だった。FM-7などの8bitパソコンにも一部使われている。
このカスタムICのデバッグには、同等回路をTTLを使って組むという手法が取られた。スピードは遅いが論理的には等価なのでカスタムICを工場に作ってもらう前に検証できた。

 ここまでは入社する前の話。では私が入社した1990年代前半からはどうなっていったか。
常にその時代の最先端半導体テクノロジを使ってLSI設計をするため、CAD専業メーカーからCADツールを購入し、レイアウト設計を行うことになった。
設計データは汎用機上の自社開発設計ツール群で管理されていたが、汎用機はインタラクティブな操作が得意でない。そこでワークステーションによるグラフィカルなレイアウト設計が採用されたわけだ。
スタンダードセルの設計はよりプロセス側に近い部門が担当する。こちらは作られたセルを利用して論理回路を設計する。
時々、駆動能力を強化したセルや入力を増やしたゲートの作成依頼をする。これはどうしてもディレイが間に合わないことがあるからだ。まだ電子メールも普及していない頃で、作成依頼書を課長名で出して依頼していた。
論理設計は、まずディレイなどを考慮しない理解しやすい回路をワープロなどで作成し、それを原本とする。これを元に論理回路をエントリするのだが、入力間違いなども当然ある。図面を打ち出して、蛍光ペンで比較しながら塗りつぶす。
ディレイを考慮して論理を組み替えた場合でも、同様のチェックを目視で行う。間違いがあれば障害管理票を提出する。これをリーダーと課長がチェックし、修正方法に問題がなければ修正にとりかかる。それまでは一切当該箇所に触らない。
論理回路は独自の記法で打ち込むのだが、版数管理は汎用機上のテキストエディタにその機能があった。原始的だが、間違いがあればセーブした時点に戻ることができた。

 1990年代後半になると、外販CADツールの利用が増えてくる。Web技術の恩恵にもあずかることになる。
CADツールを作成していた部門がワークステーションに主軸を移した。従来汎用機で使っていたツールのほとんどが移植された。これにより外販CADツールとのデータ連携がだいぶ楽になった。
これにより、従来は物好きが集まって行っていたワークステーションの管理がまとまり始め、業務の一環として認められるようになる。(それまでどんな苦労をしたことか)
膨れ上がる回路規模に修正変更が追いつかない事態に。障害管理票はWebブラウザで入力・参照できるインシデントシステムの原型ができた。これにより課長席にうず高く積もっていた障害管理票が見られなくなったがなくなったわけではない。
ワークステーション上での開発ではまだ版数管理がきちんと行われていなかった。ただし原本は汎用機上で管理されていた。
検証では論理シミュレータが活躍するが、モデリングから立ち上げには経験上一ヶ月はかかった。すべての論理回路を入れることはできない―8CPUモデルをそのまま8個入れることは無理だったので、擬似回路(Pseudo)が必要だった。
当時からVerilog-XLやvcsはあったが、速度的に話にならなかった。また、開発環境の移行時期だったので独自の設計言語をVerilog等に変換しなければならない。この変換を疑われたら話にならないので、完全移行はこの時点では無理だった。
いくらハードウェアの論理シミュレータとはいえ一日に三回走らせられればいい方で、他の設計部隊も使っていたので奪い合いだった。まあ検証担当者はどこも似たような境遇なので仲良く譲りあっていましたが。
一方、論理設計の手法は変わらず、蛍光ペンが入荷したら箱ごと奪い合うというのがチャメシ・インシデントだった。

 次の設計では大幅な刷新をした。全面的にCADベンダーのツールを採用。ネーミングルールを策定し、凡ミスを減らすようにした。論理修正には形式検証ツールを使用し誤りがないことを確認。
版数管理はCVSを導入し、ソフト屋さんから見たらかなり制限した使い方をした。1人が1モジュールのみを編集(コンフリクト防止のため)、各設計リーダーがコミットする。データは集約したあとすべてを結合し、モデルにエラーがなければタグを打って登録する。これを毎月繰り返すスパイラル開発の手法を採り入れた。
インシデントシステムは強化し、Linux+PostgreSQL+Perlで作成、より頑強にした。
設計データは各ワークステーション、PCで共有するディスクアレイ上で管理され、定期的にバックアップがとられる。これは従来汎用機を使用していた頃は意識していなかった作業だ。
各設計者がいきなりVerilog-HDLで記述するのはハードルが高い。抵抗もあった。外販のエントリシステムを導入し、PCから図面をVisioで描くように入力するとVerilogに変換された。
あいかわらず図面は印刷され蛍光ペンで塗られたが、Verilogのソースを塗っても意味はない。やはり論理設計者は図面で理解するのだ。ソースリストは読解しなければならないが、図面は一発で理解できる。

 その後、インシデントシステムは全社的に展開され、部内の自作インシデントシステムは役目を終える。
CADツールの導入は部門ごとではなく、従来CADツールを作っていた部門が一括して面倒を見るようになった。
各設計者はスクリプト言語(主にPerl)を使いこなし、それぞれ効率的にやっている。若者の図面離れが進んでいるようだ。
論理シミュレータはPC(Linux)上で動く、ソフト・シミュレータが主流となった。専用機よりもPCの方が扱いやすく速いからだ。ワークステーションはPCに置き換わった。
さて、いま作っているLSIの全貌を理解している人は何人ぐらいだろうか?

では、どのように設計環境は変化していったのかまとめ:
・設計ツールは内製から外販の物を利用するようになった
・設計ツールの土台は汎用機→ワークステーション→PC(Windows,Linux)へと変わった
・電子メールやWeb技術のおかげで部門間の依頼は担当者レベルで済み、課長は事後確認という形に
・論理回路のチェックは蛍光ペンから形式検証ツールの利用へ、しかし今でも図面でチェックする
・論理設計データは以前から版数管理されていた
・障害管理票はインシデントシステムへと置き換わり、設計者が情報を共有する(かに思えたが見ない人は見ないのよ)
・論理回路の規模が巨大になりすぎて全貌を理解している人が数人いればいいほう
・上記理由で検証コストが設計よりもかかるようになる
・部門別に購入・開発していたツール類はコストダウンのため集約される方向に

すべてはリメークなしの一発リリースのために

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック