演習2 発展 / RTL TO TAPEOUT / 架空プロセス CSF-28
コードが、チップになる。
演習 A〜E で自分で書いて正解した Verilog を、ゲート → セル → 配置 → 配線 → レイアウト → テープアウトまで 8 つの工程で追う。左のコードを書き換えれば、右の図がその場で変わる。
この工程は、自分で書いて正解した回路をチップにするためのものである。模範解答は使えない。演習ページで「全パターン正解」が出ると、そのコードがここに届く(同じブラウザで開くこと)。
別の端末で正解したなら、その端末の演習2 トップで「書き出し」したファイルをここで読み込む。
このデモで計算していること/架空プロセスの仮定
演習のチェッカーと同じ構文解析器で Verilog を読み、式をビット単位のゲート(NOT / AND / OR / XOR / MUX)に展開する。always @(*) の if / case はセレクタの列になる。定数伝播、重複ゲートの共有、未使用ゲートの削除を行い、架空ライブラリ CSF-28(INV・NAND2・NOR2・AND2・OR2・XOR2・XNOR2・MUX2)に割り当てる。最大伝搬遅延は各セルの遅延の和、配線後は線長ぶんを加える。配置は焼きなまし(行ごとの密度上限つき)、配線は 2 層メタルの迷路配線(通らないネットは剥がして引き直す)。
チェックは 2 つに分けてある。①は題目の期待値とセル回路を全入力パターンで照合する(題意に合っているか)。②はあなたの RTL を演習チェッカーと同じ解釈器で評価し、セル回路と照合する(合成・最適化・セル割当が意味を変えていないか)。cin を忘れた加算器は①で落ちて②は通る。②も全入力で行う。
架空なのはセルの寸法・遅延・トランジスタ数と、セル内部の様式図、テープアウト以降の絵である。1 グリッド = 0.1 µm、セル高さ 0.8 µm、配線遅延 0.25 ps/グリッド。レジスタ・クロック・セットアップ時間を扱わないので、遅延の逆数は動作周波数ではなく参考値である。製造プロセス規則のある製造用レイアウトではない。