VLSI設計論 慶應義塾大学 理工学部 情報工学科 山﨑 信行 E-mail: yamasaki@ics.keio.ac.jp 今年のみ代講 天野 hunga@am.ics.keio.ac.jp 慶應義塾大学 理工学部 情報工学科 山﨑 信行 E-mail: yamasaki@ics.keio.ac.jp URL: http://www.ny.ics.keio.ac.jp
概要 (1/3) フロントエンド設計(HDLを用いたLSI設計手法) 論理設計 論理検証(シミュレーション) 論理合成(ネットリスト作成) Verilog-HDLの文法 論理検証(シミュレーション) Cadence社Verilog-XL (Interpreter) Cadence社NC-Verilog (Compiler) 論理合成(ネットリスト作成) Synopsys社Design Compiler (for ASIC) Synopsys社FPGA Compiler II (for FPGA/CPLD) 論理検証(仮配線シミュレーション)
概要 (2/3) 16bit RISC Processor (PICO-16)の設計実習 DMACの設計演習 命令フォーマット パイプライン DMACの設計演習 CPUとDMACを用いたシステム設計演習
概要 (3/3) バックエンド設計 レイアウト、配置配線(P&R)、クロックツリー生成(CTS) データベース RC抽出 Synopsys社(旧Avant!社) Apollo/Astro データベース Synopsys社(旧Avant!社) Milkyway RC抽出 Synopsys社(旧Avant!社) Star-RCXT 静的タイミング検証(STA) Synopsys社 PrimeTime 検証(LVS, DRC) Synopsys社(旧Avant!社) Hercules Mentor社 Caribre
HDL HDL( Hardware Description Language) Verilog-HDL VHDL SFL AHDL OrCAD HDL … ハードウェア記述言語(HDL)には、様々なものが存在するが、現在、最もメジャーなHDLは、 ・Verilog-HDL ・VHDL のふたつである。SoC設計に関する記述能力に大差はない。しいて挙げれば、VHDLの方が厳密に記述できる反面、記述が煩雑である。Verilog-HDLは、記述が簡易な反面、大規模なシステム記述には向かない。歴史的には、Verilog-HDLは、CADメーカが考案したシミュレーション言語がデファクトスタンダードになったものであり、VHDLはDODが公募によって決定したデジュールスタンダードである。Verilog-HDLの文法はC言語ににており、VHDLはAda言語に似ている。また、CPU等はVerilog-HDLで記述されている場合が多く、I/O(PCI,USB,NIC等)はVHDLが多いという傾向がある。
Verilog-HDL RTL (Register Transfer Level) BL (Behavior Level) 論理合成可能 記述に制限 設計すべきハードウェアを記述 BL (Behavior Level) 論理合成不可能 記述に制限なし 検証モジュール(テストベクトル)を記述
SFLとVerilog HDLの違い クロックを明示的に記述する。 条件を付けない文は並列に実行される。 複数クロック、立ち上がり、立ち下り、非同期リセットの記述が可能 条件を付けない文は並列に実行される。 alt文に対応するswitch文があるが制約がある シミュレーション用テストベンチをBehavior Levelで記述 secondsのスクリプトに対応する部分は言語中に記述 合成不可能な部分との混在に注意 Cライクではなく、Pascalライク 実はPascalライクでもなく、変な構文もあるが、あまり気にしてはいけない 言語上はビット幅等に寛容でなんでもできてしまう 合成時にWarningが出るので注意
非常に簡単な例題 加減算器の設計 文法は坂本氏作のまとめがweb上に掲載 addsub.v : sflを知っている人は簡単すぎてびっくりするかも my.h: defineは別ファイルに入れておき、共通化する addsub_test.v: テストベンチがもしかするとより面倒で理解しにくいかも 文法は坂本氏作のまとめがweb上に掲載
宿題 アカウントを取って、addsub.vをコピー sub入力を2ビットのcom[`ComData]に変更 cp ~hunga/vlsi07/hunga/addsub.v . sub入力を2ビットのcom[`ComData]に変更 “my.h”に`define ComData 1:0と入れておく comが00ならば、inaとinbの論理積 comが01ならば、inaとinbの論理和 comが10ならば、ina+inb comが11ならば、ina-inb とする記述を作れ verilog addsub.vだけやってみる。エラーがでなければこれを提出