1 / 35

平成 1 7年度 VLSI 設計工学(夏学期 月曜3限) (資料1)  VDEC ・電子工学専攻・藤田昌宏

平成 1 7年度 VLSI 設計工学(夏学期 月曜3限) (資料1)  VDEC ・電子工学専攻・藤田昌宏. 導入と VLSI の種類と設計の流れ( 1 ) (4/11) 論理合成(2) (4/18,25) LSI のレイアウト( 5/9 ) シミュレーション (5/16) ハードウェア記述言語 (5/23) システムレベル設計・高位レベル合成(2) (5/30,6/7) 低消費電力化設計技術 (6/14) 設計検証・検査(2) (6/21,28) ソフトウェア開発技術 (7/5) まとめ( 7/12 )

pello
Télécharger la présentation

平成 1 7年度 VLSI 設計工学(夏学期 月曜3限) (資料1)  VDEC ・電子工学専攻・藤田昌宏

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 平成17年度VLSI設計工学(夏学期 月曜3限)(資料1) VDEC・電子工学専攻・藤田昌宏平成17年度VLSI設計工学(夏学期 月曜3限)(資料1) VDEC・電子工学専攻・藤田昌宏 • 導入とVLSIの種類と設計の流れ(1) (4/11) • 論理合成(2) (4/18,25) • LSIのレイアウト(5/9) • シミュレーション(5/16) • ハードウェア記述言語 (5/23) • システムレベル設計・高位レベル合成(2) (5/30,6/7) • 低消費電力化設計技術 (6/14) • 設計検証・検査(2) (6/21,28) • ソフトウェア開発技術(7/5) • まとめ(7/12) • 従来のVLSI設計は、システムLSI(System on Chip, SoC)設計となり、基本的にハードウェア・ソフトウェア協調設計である • 設計対象の多くは、組み込みシステムと呼ばれるものである Traditional LSI design methods Higher abstraction: System level design methods

  2. ムーアの法則

  3. システムLSIとSoC

  4. 組み込みシステム メモリシート エアコン パワーステアリング 車載用 ワイパー制御 ハイマウント ストップランプ エンジン制御 変速制御 エアバッグ制御 パワーウインドウ オートドアロック クルーズ制御 電子制御 サスペンション カーナビ・システム オーディオ・システム アンチロック・ブレーキ システム キーレス・エントリ

  5. LSI設計のスタイル

  6. 設計生産性の危機 • 回路規模:年率約58%で増大 • 設計生産性:年率約21%で向上 • ギャップ:年率約37%で拡大 回路規模 58%/Y 規模 設計生産性 21%/Y 年

  7. デジタルとアナログ • アナログ:信号は連続値=連続関数 • デジタル:信号は0か1=離散数学 • Discrete Mathematics • 論理関数、整数関数、離散関数 • AND, OR, NOT, EXOR • 質問:n変数の論理関数は全部でいくつあるか? • 質問:x AND b = x を満たす論理関数xを求めよ? • 質問:a OR ((NOT a) and b) = a OR bを証明せよ? • 離散関数の計算機上での効率的な操作法 • ほとんどの設計最適化・検証問題は、NP-completeあるいは、NP-hard

  8. VLSI設計工学VLSIの種類と設計の流れ 藤田昌宏 VDEC 東京大学大学院工学系研究科電子工学専攻 fujita@ee.t.u-tokyo.ac.jp http://www.cad.t.u-tokyo.ac.jp

  9. 説明の流れ • LSIの種類 • 同期回路とは? • ハードウェア設計の流れ • 論理関数と論理ゲート • 設計記述とシミュレーション • 動作合成 • 論理合成 • 配置・配線 • テスト • 検証

  10. デジタルLSIとアナログLSI • デジタルLSI • 0,1などの特定の離散値のみを用いて計算 • 実際の信号値は0 ~ 2ボルトまでを信号値の0とみなし、3 ~ 5ボルトまでは1とみなす、など • 高集積化に向く • 最先端LSIでは、2つの入力の間の積(AND)を計算する要素(ゲートと呼ばれる)を数千万個集積できる • アナログLSI • 例: オペアンプなどの増幅、演算器、無線機 • 信号値は、連続的に変化 • 高集積化はたいへん • ユーザインタフェイスは基本的にアナログ • 本講義では、基本的にデジタルLSIを対象とする • トランジスタは完全なスイッチとみなす

  11. LSIの種類: 機能 • マイクロプロセッサ: 例 Pentium(パソコンなど) • 算術演算、データ転送、条件分岐などの命令を逐次実行 • 特化プロセッサ: マルチメディアプロセッサ(デジタルテレビなど) • マイクロプロセッサと同じだが、マルチメディアアプリケーション(画像処理、音声処理など)用の専用命令を多く持つ • 組み込み型プロセッサ: 例 DSP (携帯電話など) • 命令数は少ないが、応用に合わせた特殊な命令をもつ • 例: for (i=0;i<100;i++) c := c + a[i] + b[i] が1命令  • 専用ハードウェア(ASIC: Application Specific Integrated Circuit) • 与えられた関数(数式など)を直接ハードウェアで実現 • その応用に限っては、もっとも小さくてかつ高性能。ただし、設計大変 • フィールドプログラマブルLSI: 例 FPGA(Field Programmable Gate Array) • チップを製造してから、チップの機能をプログラムできる

  12. LSIの種類:作り方 • フルカスタム • 全て手作り: 例えば、Pentium III • セミカスタム: スタンダードセル、ゲートアレイ • 使用できるセルの種類をあらかじめ決めて設計しておく • 配線も、配線領域を設定してそこだけで行う • FPGA(フィールドプログラマブルゲートアレイ) • プログラム可能なセルを配置 • プログラム可能な配線領域を設定 • すべて、LSIを作ってからプログラムできる • マイクロコントローラ+追加ハードウェア • 基本的にソフトウェアプログラムで行う • 速度など性能が不足する部分は追加ハードウェアで実行

  13. フルカスタムLSI • LSIの全ての部分を自由に設計する • 自由度が大きい→高性能化が可能だが、一方自動設計は大変 • 設計効率から部分的にセミカスタムの手法を導入するのが普通 演算を するところ 配線領域

  14. セミカスタムLSI • 演算をする部分と配線する領域を規則的に並べる • 設計の自由度は制限されるが、自動設計は相対的に容易 • 設計期間は短くできる • ASICと呼ばれているのもは、通常これ 演算を するところ 配線領域 演算を するところ 配線領域 演算を するところ

  15. 演算を するところ 演算を するところ 演算を するところ 演算を するところ 演算を するところ 演算を するところ 演算を するところ 演算を するところ 演算を するところ フィールドプログラマブルゲートアレイ • 演算をする部分と配線する領域は規則的に並べてあり、また、具体的な演算の種類や配線の仕方は、LSIを製造してからプログラムできる • 簡単にプロトタイプを作れる • 最後の最後で仕様変更できる 演算の種類は メモリに格納してある 配線領域 配線パターンは メモリに格納してある 配線領域

  16. マイクロコントローラ+追加ハードウェア • 基本的にマイクロコントローラ(通常のマイクロプロセッサと同じ)上でプログラムで実行 • 速度など性能不足の部分は、専用の追加ハードウェアで処理 • 最後の最後で仕様変更できる マイクロ コントローラ (マイクロ プロセッサ) 追加ハードウェア(専用ハードウェア) プログラム格納メモリ

  17. 組合せ回路と順序回路 • 組合せ回路 • 記憶を持たない回路、フィードバックループのない回路、現在の入力のみで出力が決る • 順序回路 • 記憶を持つ回路、フィードバックループのある回路、出力は現在および過去の入力に依存 • 同期式順序回路 • クロック信号に同期して動作する順序回路

  18. 同期式順序回路の概念図 • 組み合せ回路とエッジトリガフリップフロップ 外部入力 外部出力 n m 組み合せ回路 k k 状態変数 (現状態) 状態変数 (次状態) クロック エッジトリガフリップフロップ

  19. エッジトリガ フリップフロップ の動作 • クロックの変化時(立ち上りまたは立ち下がり)の入力を見て出力を決める • クロック変化の前(セットアップ)と後(ホールド)は入力が安定であること 入力 set-up hold クロック delay 出力

  20. 同期回路の詳細なモデル • レジスタ転送 (RT) レベル回路 組み合せ回路 組み合せ回路 組み合せ回路 組み合せ回路 クロック

  21. 設計の流れ(基本) module WaitState(load,lo input load; input [1:0] loadValue always @(positive Clk) if (load) 仕様(RTL) 動作合成 論理合成 より詳細な設計レベルほど: ・ 面積・遅延見積もりはより正確 ・ 回路変換の余地はより小さい 配置 配線 LSIの大規模化により、計算機設計支援技術(CAD: Computer Aided Design)なしでは設計できない!

  22. 実際のLSI設計 • 広く一般に使われる基本回路素子 • 基本ゲート • 演算器 • 組合せ素子: 加算器、ALU、(掛算器) • 順序素子: フリップフロップ、カウンタ、レジスタ • 大きな回路ブロック(マクロ) • レジスタファイル • メモリ • プロセッサ全体 • LSI=設計ごとに異なるもの+基本回路素子 • 設計ごとに異なるもの • 全体を制御する制御回路(ランダムロジックとも呼ばれる) • どの設計でもよく使われる回路 • ライブラリに登録してあるものから選ぶ

  23. 論理式と論理ゲート • 基本論理演算 • AND 入力全てが1なら出力1、それ以外は0 • OR  入力の1つが1なら出力1、入力全て0なら出力0 • NOT 入力1なら出力0、入力0なら出力1 • 論理ゲート(テクノロジライブラリに登録されている) • 半導体を作る上で作りやすいものを基準に構成される • NAND=AND+NOT • NOR=INV=OR+NOT • AND-OR-INVERTER(AOI) • AOI21: Out = ((a AND b) OR c) a Out b c

  24. 論理ゲート • 論理回路を構成する基本単位 • AND,OR,NOT,NAND,NOR,EOR, ... • 真理値表 a a a b c c b b a b c 0 0 0 0 1 1 1 0 1 1 1 1 a b c 0 0 0 0 1 0 1 0 0 1 1 1 a b 0 1 1 0 a a a c c b c b b a b c 0 0 0 0 1 1 1 0 1 1 1 0 a b c 0 0 1 0 1 0 1 0 0 1 1 0 a b c 0 0 1 0 1 1 1 0 1 1 1 0

  25. 論理ゲートの作り方 • MOSトランジスタは完全なスイッチとみなす • pMOS: ゲートが0ならソースとドレインが導通 • nMOS: ゲートが1ならソースとドレインが導通 • CMOSゲート (complimentary MOS) • NANDゲート、NORゲートなどは作りやすい • ANDゲート、ORゲートなどはNAND+NOT、NOR+NOTとなる

  26. 論理合成とは? • 与えられた論理式を簡単化し、テクノロジライブラリに登録されたゲートのみの回路に変換すること • 論理式簡単化 • テクノロジマッピング • 主に、回路中のランダムロジックと呼ばれるものに適用される

  27. cd cd cd cd ab 1 1 ab 1 1 ab 1 1 ab 積和形論理式簡単化 • 積和形論理式: 積項(変数のAND)をORでつなげたもの • (a AND b AND (NOT c) OR ((NOT b) AND c) • abc + bc • 積項の縮小と拡大操作を繰り返して、積項数を最小化を試みる操作 cd cd cd cd cd cd cd cd ab ab 1 1 1 1 ab ab 1 1 1 1 ab ab 1 1 1 1 ab ab abc + abd + abc abc + acd + bcd + abc abc + abcd + abcd + abc

  28. c 4 b 1 d 5 o1 e 2 8 9 o2 a 3 b f c c c 4 b 1 d o1 5 e 2 6 8 o2 X d 9 7 a 1 3 b f 多段化と多段論理式簡単化 • 積和形論理式の多段化 • 論理関数 Fを「うまく割る」関数 Dをみつける • 論理関数の因数分解(ただし、余りあり) • ac+bc+ad+bd+ef=(a+b)(c+d)+ef • 多段論理式簡単化 • 基本的に回路変換や接続変換でゲート数・配線数を減らす F = D • q + r

  29. NAND2 NAND3 INV AOI21 NAND3 テクノロジマッピング • ライブラリのセルを使って、分割された回路各々をカバーする、コスト最小のセルの集合求める • カバー: 分割された回路の各ノードは、少なくとも1つのセルに含まれること • 一般的な回路に対して、コスト最小のカバーを求める問題はNP完全

  30. 設計記述とシミュレーション • プログラミング言語 • ソフトウェアプログラム(たとえば、マイクロプロセッサで実行)を記述するための言語: C、C++、Java、など • ハードウェア記述言語(HDL: Hardware Description Language) • ハードウェア(たとえば、LSI)の動作を記述するための言語 • 歴史は、プログラミング言語と同じくらい古い • 重要な概念 • メモリ、レジスタ: ものを記憶できる • ターミナル、配線: 信号値はその場限りで忘れる • クロック: 通常、同期回路を対象としている • 並列動作: ハードウェアは、物理的に存在するものは基本的に並列に動作する • 回路遅延: 何を計算するにも時間がかかることを意識する • ハードウェア量は一定: 実行中にハードウェアは追加できない • スタックや再帰的呼び出しなどは認めない • Cのポインタなどは、ハードウェアでの実現が不可能・困難 • プログラミング言語を実行するように、HDLの実行できる • 様々なHDLや設計レベルに応じたシミュレータが存在する

  31. 高位レベル合成(動作合成)とは? • 入力: 与えられた動作記述 • Cなどのプログラミング言語の記述と同じように、if-then-else, for loop, 代入、算術演算などを使って記述 • 出力: 算術演算などは演算マクロ(ブロック)へ、また、if-then-elseなどの制御は論理式へ変換したもの • ライブラリに登録されたマクロを利用 • 制御は、論理式に変換し、論理合成にかける • 注意: すべて論理式に変換し、論理合成することも可能だげ、良い回路は生成できない

  32. 動作合成例 Out = a*u + b*v + c*w + d*x - e*y

  33. 配置配線 • 配置: 各ゲートをLSI上に並べていく • 配線: 各ゲート間をつなぐ • コスト関数 • 面積、総配線長 • 最長配線を短く • 基本的に自動配置配線ツールを利用 • 大規模なので、時間のかかる処理 • もし、自動でできなかったときは: • ツールのパラメータを変えて、もう一度 • 自分でつなぐ • フルカスタムの場合は、人手配置配線となることも多い

  34. テスト • 製造されたLSIが設計どおり動作するかを調べること • LSIに入力信号を送り、所望の出力がでるかどうかを調べる • 完全に調べる=可能な全入力パターンを調べる=不可能 • 可能性の高い故障モデルを作り、それのみを調べる • 縮退故障=入力に関係なく出力値が固定される • ブリッジ故障=回路中に配線のショートがある • 電源消費が異常に大きくなる • 通常、大規模回路のテストは大変なので、テスト容易化設計が施される • 内部のフリップフロップはすべて外部から見える

  35. 検証 • 設計が仕様を満たすか否かを調べる • 通常は、いろいろなパターンでシミュレーションして、結果を人手でチェック • 自動化 • シミュレーションパターンの自動生成 • シミュレーション結果の自動解析 • 形式的検証: 設計の正しさを数学的に証明する • 基本的には、すべての場合をしらみつぶしにチェックすることと等価 • 具体的問題 • 2つの設計の等価性検証 • ある設計が特定の性質を満たすかどうかの検証(プロパティチェッキング) • 今は、設計技術している時間よりも、設計の正しさを検証している時間の方がずっと長い!

More Related