1970年7月に入ると,ホフが開発していた論理シミュレータが完成した。論理シミュレータを使って4004CPUの論理検証を開始した。困ったことに,論理シミュレータの使い方の打ち合わせ中に,その日の昼休みに担当技術者がレイオフされてしまい,戸惑ってしまった。米国の雇用の厳しさを肌で感じた瞬間であった。

 論理シミュレーションでも,回路シミュレーションと同じく,低速のテレタイプ社製ターミナルを介して外部の計算センターを使った。そのため,論理シミュレーション前に,論理のモデルと検証用テストベクタを念入りに調べた。論理設計者がテストベクタを作成すると,自分が構築した論理を調べるテストベクタの作成に偏重しがちとなる。テストホールがなく効率良いテストベクタの作成が成功への鍵となる。

 しかし,テストベクタ作成のために,論理設計とは異なった検証アプローチを考え出すことは容易なことではない。さらに,コンピュータを使った論理シミュレーションには大きな金が必要だった。毎週,ホフからコンピュータ費用の報告があり,5,000ドルに達したところで論理シミュレーションを中止した。バグが1つ見つかった。

 日本側でも,私が作成した論理図に基づいてTTLを使ってブレッドボードを作成し論理の検証を行った。幸いにも,異なる方法で異なるテストプログラムを使って同じ間違いが1つだけ見つかった。最終的に,4004CPUの論理ミスはただ1カ所だった。

 4004シリーズの中でCPU以外のLSIの開発は非常に速い速度で進められた。4001ROMと4002RAMと4003SRの論理,回路,レイアウト設計は予定通りに4カ月で終了した。9月に入ると待ちに待った4004CPUのレイアウト設計が始まった。4004CPUのレイアウトの設計を見ていると,各機能モジュールの位置も大きさも配線も,私の描いた図面通りに出来上がりつつあった。回路設計とレイアウト設計に使える配置配線を考慮に入れた論理図を描いた効果が非常に大きかった。気持ちが非常に良くなり,たいへん興奮し感激した。

 4004CPUのレイアウト設計が進行するのに従い,私も4004CPUのレイアウトのチェックに参加した。レイアウトのチェックを開始してみると,技術的なものであれ何であれ,人間にはそれぞれ強みと弱みがあり,人間は必ず同じ間違いを繰り返していることがわかった。レイアウト設計者のウイークポイントを把握できれば,問題が生じる少し手前で設計者の考え方を聞いて,失敗する前に軌道修正が可能となり,チェックを含めた設計期間の遅れを防ぐことができる。

 この当時はレイアウトの設計だけでなくチェックも人間がやっていた。レイアウトのチェックに2種類あった。コネクティビティのチェックとデザインルールのチェックである。コネクティビティのチェックでは,回路図とレイアウト図を使い,トランジスタのサイズと配線とメタル層の太さなどのチェックを行う。デザインルールのチェックでは,白い紙に10センチ四方の穴を開け,その中のレイアウトが半導体プロセスの設計ルール通りに設計されているかどうかをチェックする。そのセクションが終われば次のセクションへと進み,間違いがなくなるまで繰り返す。

 これは非常に過酷なルールであり作業であった。いかに短期間にレイアウトのチェックを終わらせるかも開発技術者の腕前の1つであった。当時は,レイアウトのチェック専門の技術者がおり,レイアウト設計者より高い収入を得ていた。しかし,レイアウト設計をやらせてみると思ったほどには上手ではなかった。

図1●再現した4004-CPUの主演算回路部のレイアウト
図1●再現した4004-CPUの主演算回路部のレイアウト
(注:1991年に放映された「NHKスペシャル 電子立国 日本の自叙伝8ミリ角のコンピューター」の収録時にレイアウト設計を再現した際に,筆者が手本として描いた4004-CPUの主演算回路部のレイアウト。黄色のレイヤーが拡散層,点線のレイヤーがポリシリコン層,青色のレイヤーがメタル層)
[画像のクリックで拡大表示]

 レイアウトが完成するとマスクの原図を作成する。マスク原図の作成には,透明の厚いフィルム上にルビー色をした薄いフィルムが張られている型紙を使用する。レイアウト図と連動した機械を使ってルビー色のフィルム部分をカットし,カットした部分を人手によって剥がす。拡散,ポリシリコン,Buried Contact,コンタクト,メタルなど各層毎にマスク原図を作成する(図1)。マスクの原図が出来上がると,下からの照明が付いたライトテーブル上にマスク原図を置いてチェックを行う。

 まず,1層ずつ,すべての層のマスク原図をチェックする。次に,関連する層を組み合わせてチェックする。拡散層とポリシリコン層,拡散層とコンタクト層,ポリシリコン層とコンタクト層,メタル層とコンタクト層,拡散層とポリシリコン層とBuried Contact層,拡散層とポリシリコン層とメタル層とコンタクト層,などのチェックを行う。1つの間違いも見落とさないように,間違いがなくなるまでチェックを行う。気の遠くなるような作業だ。

 私が担当している論理設計に関する仕事が8月中旬に終わった。入社後4年目で満27歳の誕生日を迎えた。面白い仕事に夢中だった。9月に入るとテストプログラムの作成に着手した。この頃はまだランダム論理LSI用の低価格なテスターがなく,パシフィックウェスタン社製PW10テスターを4004シリーズLSIのテスターとして使用することを検討した。PW10テスターは磁気ドラムを内蔵していて,16チャネルのテストピンが使用でき,4,000ステップのテストパターンを使うことができた。テスト時間の短縮のためにアキュムレータとキャリーの内容をシステムバスの空いている時間に自動的に送出させた論理が有効であることが実証された。

 ところが,思わぬ大きな失敗が浮かび上がった。4004CPUでは,リセット入力信号を使わなくても,内部のタイミング回路は正常にクリアされる論理を組んだのだが,リセット入力信号との同期をとらなかったのでテスト時に問題が生じた。論理的には問題が無いが,テストをする段階で問題になることもLSI設計の難しさだった。いろいろの観点から設計を評価する重要性を認識した。

 10月に入ると,4003SRと4001ROMが次々とウェーハとして出来上がってきた。LSI設計の難しさを知っているファジンは,4003SRのウェーハが出来上がると,一緒にデバッグをしようと,私を実験室に誘った。チップが予想通りに動作したときの彼の感激は非常に大きかった。私は,動いて当たり前だと思っていたので,正直に言うと,あまり興奮も感激もしなかった。後に8080の開発においてレイアウト設計を指導してLSI設計の難しさを初めて知った。しかし,このときは,論理的に間違いが無ければ,回路やレイアウトの設計は大きな障害がなく実現可能であると思っていた。経験がないと成功の喜びも薄くなる。

 残された設計の仕事は4004CPUのレイアウト設計のほんの一部分のみとなった。LSI設計に関しては門前の小僧だったが,この頃になると,お経の一部を少しは理解できるようになった。4004CPUのレイアウトが自分の描いた論理図通りに出来上がったときは感激した。回路設計やレイアウト設計やテストプログラム作成に関する設計マニュアルや設計プランなどの作成の重要性を実感した。後に,LSI設計では各設計段階で設計レビューを行うようになった。

 折角,アメリカ西海岸まで来たので,アメリカとヨーロッパで市場調査をして帰国することにした(関連記事「私とマイクロプロセッサ(6)---個性的なアイデアをはぐくむヨーロッパ」)。

(次回に続く)