Microsoft PowerPoint - slide

Similar documents
Microsoft PowerPoint - FPGA

PLDとFPGA

プログラマブル論理デバイス

Microsoft PowerPoint - Chap1 [Compatibility Mode]

電卓の設計 1

VelilogHDL 回路を「言語」で記述する

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

Verilog HDL による回路設計記述

0630-j.ppt

Microsoft PowerPoint - 3.3タイミング制御.pptx

VLSI工学

計数工学実験/システム情報工学実験第一 「ディジタル回路の基礎」

Microsoft PowerPoint LC_15.ppt


main.dvi

<91E63589F161>

Microsoft Word - TC4013BP_BF_J_P9_060601_.doc

フリップフロップ

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

ソフトウェア基礎技術研修

HW-Slides-05.ppt


デジタル回路入門

1, Verilog-HDL, Verilog-HDL Verilog-HDL,, FPGA,, HDL, 11, 1 (a) (b) (c) FPGA (d) 2 10,, Verilog-HDL, FPGA, 12,,,, html % netscape file://home/users11/

Microsoft Word - 実験4_FPGA実験2_2015

Microsoft Word - TC4017BP_BF_J_P10_060601_.doc

計算機ハードウエア

<4D F736F F F696E74202D C190DD B A CB48D65208E DC58F49205B8CDD8AB B83685D>

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

スライド 1

計算機ハードウエア

Microsoft Word - TC4011BP_BF_BFT_J_P8_060601_.doc

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

Microsoft PowerPoint - 4.CMOSLogic.ppt

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

Microsoft PowerPoint - 6.memory.ppt

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Microsoft Word - TC4538BP_BF_J_2002_040917_.doc

ブロック図 真理値表 入力出力 OUTn (t = n) CLOCK LATCH ENABLE SERIAL-IN OUT 0 OUT 7 OUT 15 SERIAL OUT H L D n D n D n 7 D n 15 D n 15 L L D n No Change D n 15 ( 注 )

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

デザインパフォーマンス向上のためのHDLコーディング法

Microsoft PowerPoint - 集積回路工学(5)_ pptm

, FPGA Verilog-HDL

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

Quartus II クイック・スタートガイド

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

. ディジタル回路設計を始める前に 2

「電子政府推奨暗号の実装」評価報告書

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

Microsoft PowerPoint - 7.Arithmetic.ppt

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

FPGAによる24時間時計回路

Microsoft PowerPoint - Lec pptx

Microsoft PowerPoint - 11.ppt

Microsoft PowerPoint - LogicCircuits11note.ppt [互換モード]

スライド タイトルなし

HW-Slides-04.ppt

Quartus II はじめてガイド - EDA ツールの設定方法

LSI LSI

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

論理設計の基礎

Microsoft Word - N-TM307取扱説明書.doc

Microsoft PowerPoint LC1_14_論理回路シミュレータ.ppt

Design at a higher level

スライド 1

Transcription:

ディジタル回路設計の基礎 京都大学情報学研究科小林和淑 kobayasi@i.kyoto-u.ac.jp

内容 単相クロック完全同期回路 構成要素 D フリップフロップ 同期回路の性能 ハードウエア設計手法 論理設計手法の歴史 ハードウエア記述言語 RTL 設計 LSI の設計フロー セルベース設計とゲートアレイ PLD と FPGA 2

単相クロック完全同期回路

同期回路とは? 時間方向を同期パルス ( クロック ) により 量子化 ( ディジタル化 ) した回路 クロックにより クロックとの間のタイミングを考慮するだけでよくなる クロックがないと すべての信号の時間関係を考慮して設計を行わなければならない クロックは通常記憶素子 ( フリップフロップ ) に入力される クロックが入力される毎に FF の値が変わる 4

同期回路の構成要素 RST フリップフロップ (FF) からなる記憶素子 RST RST D FFA Q D FFB Q CLK CLK 組み合わせ 論理回路 A B RST 入出力ピン D FFC CLK Q CLK 5

単相クロック完全同期回路 記憶素子はフリップフロップ (FF) のみである 外部から単一のクロックが与えられる このクロックの立ち上がりもしくは立ち下がりエッジのどちらか一方にすべての FF が同期して動作する 通常の同期設計では 立ち上がりエッジに同期する FF と立ち下がりエッジに同期する FF が混在してはならない 非同期リセットは通常 電源投入時のみ使用する 6

基本論理ゲート NOT AND OR XOR MIL A Y A Y B A B Y A B Y A 0 1 0 0 1 1 0 0 1 1 0 0 1 1 B - - 0 1 0 1 0 1 0 1 0 1 0 1 Y 1 0 0 0 0 1 0 1 1 1 0 1 1 0 Verilog-HDL Y=~A Y=A&B Y=A B Y=A^B 2 進数の各種演算を実行するための基本演算 複合演算を実現する 複合ゲート ANDNOR 等 7

組み合わせ論理回路の例全加算器 A B C S C+ 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 A B C S C+ S = A Φ B Φ C 回路図 真理値表と論理式 C+ = A&BjB&CjC&A 8

LSI 中の CMOS 基本論理ゲート CMOS 論理ゲートは負論理 (NOT, NAND, NOR) が基本 A B Y A Y VDD + = A Y VDD B B Y A Y A B C+ A S C 9

D フリップフロップ リセット CLK 入力 出力 D クロック Q 入力の変化がクロックの立下り または立ち上がりにより出力に伝わる 通常 リセットはクロックとは非同期 10

CMOS 論理ゲートを用いた D-FF 面積が大きくなるので LSI 中では使用されない SET RST Q CLK Q D 11

D フリップフロップの回路構造 集積回路中の D-FF は, マスターとスレーブの 2 個の D-Latch を接続した構造をしている CLKN master CLKP slave D Q CLKP CLKP CLKN CLKN CLKN CLKP CLKN CLKP CLK ポジティブエッジトリガ型 D フリップフロップの一例 ( リセットなし ) 12

D フリップフロップの回路構造 ( 続き ) RST CLKN master CLKP slave D Q CLKP CLKP CLKN CLKN CLKN CLKP CLK CLKN CLKP D-FF 非同期リセットつき 13

D フリップフロップの動作 D Q CK CK D master マスター動作時 (CLK=0) slave Q CK CK master スレーブ動作時 (CLK=1) slave 14

セットアップとホールド時間 t setup t hold セットアップ ホールド時間を守らないと 誤動作 ( ハザード ) を起こす場合がある 先ほどの回路構造からセットアップ時間 ホールド時間がどの部分の遅延に依存するか考えてみよう 15

DFF による遅延素子 RST RST RST RST RST IN D D-FF Q D D-FF Q D D-FF Q D D-FF Q OUT CLK CLK CLK CLK CLK D-FF を 4 個つなげば 4 クロック遅れる遅延素子に CLK IN OUT 遅延させるだけでは 何もできない 記憶を行わなければならない 16

イネーブルつき DFF (DFFE) DFFE RST RST D selector D DFF CLK Q Q ENABLE CLK ENABLE=1のとき Dの入力を取り込む ENABLE=0のときは Qを保存 値の記憶に使う 17

同期回路の性能 FFA FF FFC FFB FF 間の遅延を削減すれば 性能 ( クロック周波数 ) があげられる クリティカルパス : 最大遅延パス FFへのクロック供給をしっかり行い クロックのずれ ( スキュー ) をなくすことが大事 クロックツリー等 18

クロックの両エッジ 設計者の陥る誘惑 クロックの両エッジを使うと 1 クロックで倍の仕事ができる 両エッジを使うのは 誤動作の温床 周波数は変わらないが デューティー比は簡単に変わる 両エッジを使うなら クロック周波数を倍にせよ デューティー比をコントロールできれば 使用することも可 19

クロックのデューティー比 入力デューティー比 50:50 3 段目デューティー比 48.8:51.2 両エッジを使うと さらに余分なインバータが入り クロックの位相がずれる 入力 1 段目 2 段目 3 段目 20

ハードウエア設計手法

ハードウエア設計手法の歴史 50 代 : 頭で考えて 紙に書き TTL で実装 40 代 : 回路図を CAD で描いて LSI で実装 30 代 : HDL より論理合成 20 代 : さらに高級な言語 (C, C++ 等 ) より 直接回路を合成 ( システムレベル記述言語 ) 回路規模 ( ゲート数 ) ここを説明 ゲート数に比例して回路設計の抽象度がどんどんあがっている 22

回路設計のつぼ 回路設計技術の向上が目覚しいが 動作から自動的に最適な回路を作る技術はまだまだ 人間による最適な回路構造の設計が重要 3つの力 動作から 回路をおこす想像力 よりコンパクトで高速な回路を考える技術力 さまざまなツールを使いこなす応用力» CADツール間のフィルタ記述 (perl, awk, sed 等 )» Window のボタンをクリックしているだけではよい LSI はできない 23

HDL の目的 目的とする回路の機能を人間のわかりやすいようにテキストで記述して, その記述から自動的に回路記述を生成する HDL 記述 回路 高級言語 回路 論理合成 高位合成 24

動作記述と RTL 記述 動作記述 回路の動作を記述する クロックがない ソフトウエアとほぼ同じ RTL(Register Transfer Level) 記述 レジスタ ( 記憶素子 FF) 間の接続関係を表現したもの そのまま論理合成に使える事が多い 25

HDL の種類 Verilog-HDL と VHDL Verilog-HDL: Cadence 社の論理シミュレータ用言語から派生 VHDL: 回路仕様を書くことを目的に 標準化 どちらも 論理合成を目的として開発した言語ではない 記述できるが 合成できない シミュレーションできるが合成できない 合成しても正しく動作しない 26

Verilog-HDL と VHDL(Cont.) Verilog-HDL: 抽象度が低い 回路的 電気系向き VHDL: 抽象度が高い プログラム的 情報系向き S0, S1, S2 の状態へのマッピング `define S0 2'b00; `define S1 2'b01; `define S2 2'b10; type state is (S0,S1,S2); 割り当ては合成任せ ビット数と割り当てを明示 27

Verilog-HDL による論理素子 A B A B Y Y assign Y=A&B; assign Y=A B; D RST DFF CLK Q always @(posedge CLK or negedge RST) if(!rst) Q<=0; else Q<=D; 28

HDL を使うメリット 抽象度をあげられる HDL HDL A B FPGA A B FPGA A B 29

HDL を書くための準備 回路中のフリップフロップ, レジスタ等の記憶素子の構成を決める それらフリップフロップ, レジスタをどのように接続するかを考え, ブロック図を書く レジスタ間に存在する組み合わせ回路の詳細は考える必要はない レジスタの動作を記述する (RTL 設計 ) どのような回路を意図するか? が重要 ブロック図を書いて意図した以外の FF, レジスタが入るのを防ぐ 30

HDL 設計の例 ( カウンター ) 記述 A module counter(out,clk); input CLK; output [3:0] out; DFF DFF0(q0,d0,CLK); DFF DFF DFF1(q1,d1,CLK);... assign d0=q0&~q1...; 組み合わせ assign d1=...; 論理回路 endmodule ただ単に 回路図をテキストで書いただけ 記述 B module counter(out,clk); input [3:0] in; input CLK; output [3:0] out; reg [3:0] out; always @(posedge CLK) out<=out+1; endmodule レジスタ ( フリップフロップ ) の動作を記述する 31

RTL 設計の例 例題 : 自動販売機の入金額と商品購入額よりお釣りを計算する 動作 入力 : 入金額 (1 回のみ ) 購入商品代金 ( 複数 ) 出力 : お釣り 32

自動販売機お釣り計算 CLK e_in 10 in[9:0] e_item 10 item[9:0] 入金後商品のボタンを押せば その金額が送られてくる 入金があったときと 商品のボタンを押したときには それに同期したパルスが入力される 33

RTL 設計 使用するレジスタを決める レジスタ間の接続を決める レジスタに書き込む条件を決める 使用するレジスタ inmoney[9:0] 入金額 itmoney[9:0] 商品代金 change[9:0] お釣り 入金額 in 商品代金 item e_in EN inmoney itmoney????? change お釣り change Change に書き込む条件? 34 EN e_item

RTL 設計の最適化 入金額 商品代金は覚えておかなくてよい 制御が簡単なように RTL を変更する 使用するレジスタ change[9:0] お釣り e_in が 1 なら in, e_item が 1 なら減算結果を書き込む in item change change Verilog-HDL 記述 module vend(change,e_in,e_it,in,item,clk); output [9:0] change; input e_in,e_it,clk; input [9:0] in,item; reg [9:0] change; always @(posedge CLK) if(e_in) change<=in; else if(e_it) change<=change-item; endmodule 35

最適な RTL を設計するには 経験と勘が必要 豊富な設計経験 共有できるものは共有する ( リソースシェアリング ) ただし共有するとかえって悪くなる場合もある どのような回路が合成される ( た ) かを考える RTL 記述がどのような回路になるか? たとえば HDL の if 記述の多階層化 if() if() if(). クリティカルパスがどんどん長くなる 36

LSI の設計フロー

LSI の設計フロー ( 設計側 ) nand2 A B (LVS) C HDL module nand_g(c,a,b); input A,B; output C; assign C=~(A&B); endmodule module nand_g(c,a,b); input A,B;output C; nand2 I0(C,A,B); endmodule n 1 A B (LVS) nand2 C HDL module nand_g(c,a,b); input A,B; output C; assign C=~(A&B); endmodule module nand_g(c,a,b); input A,B;output C; nand2 I0(C,A,B); endmodule LSI 1 LSI 38

LSI の設計フロー ( 製造側 ) nand2 A B (LVS) C HDL module nand_g(c,a,b); input A,B; output C; assign C=~(A&B); endmodule module nand_g(c,a,b); input A,B;output C; nand2 I0(C,A,B); endmodule レイアウトとマスクは 1 対 1 対応ではない n 1 n 1 LSI 1 LSI 1 LSI LSI 39

LSI の設計フロー (Cont.) 論理設計 : ネットリスト 回路図エントリ HDL 記述からの論理合成 レイアウト設計 : レイアウトパタン フルカスタム : 全部手で書く セミカスタム : ある程度自動化 マスク設計 : マスクパタン レイアウトパタンからマスクを作成 LSI の製造 クリーンルームにて 原理は印刷と同じ 40

セルベース設計とゲートアレイ (GA) フルカスタム ( レイアウトを手で描く ) では 時間と費用がかかりすぎる!! ただし 性能は圧倒的によくなる セルベース設計 ( スタンダードセル ) あらかじめ 基本論理ゲートのパタンを用意し それを規則的に並べる ゲートアレイ (GA) 基本論理ゲートの下地を作っておき 配線のみ変更 設計期間 製造期間の短縮 マスク代が安くなる 41

スタンダードセルレイアウト例 チップ全体のレイアウト PAD 領域 VDEC CMOS1.2um 2.3mm 角 Core 領域 42

スタンダードセルレイアウト例 レイアウトの一部 論理ゲート FF 等のライブラリセルをアレイ上に並べてから 配線を行う 43

PLD と FPGA

プログラマブルロジック (PLD) 設計者が自由にその機能を変更できる LSI の総称 ( 広義 ) MPD: マスクプログラマブル 製造時に変更 FPD: フィールドプログラマブル その場で変更 PLD の種類 PLA: Programmable Logic Array» AND-OR アレイ PAL: Programmable Array Logic»OR アレイが固定» 派生品として GAL, PLD( 狭義 ) 45

PLD の構造 OR OR PAL OR AND AND DFF PLA, PAL GAL, PLD 46

PAL のプログラム例 AB+AC A B C 47

FPGA (Field Programmable Gate Array) フィールドプログラマブルな大規模集積回路 ようは大規模な PLD 論理ゲートとフリップフロップをアレイ上に敷き詰めて その間の結線を自由に変更 ただし論理ゲートそのものが内蔵されているとは限らない コンフィグレーションデータを書き込むことにより機能が変化する MPGA: Mask Programmable Gate Array 一般的にGA 48

FPGA の構造 組み替え可能な論理ブロック 論理ブロック間を接続する組み替え可能な配線 49

FPGA のプログラム記憶方式 FPGA の現在の構成 ( コンフィグレーション ) を覚えておく方法 SRAM 等の揮発性メモリに書き込む. もっともポピュラー 特別なプロセスを必要としない EPROM, EEPROM 等の不揮発性メモリに書き込む. 電圧をかけて, アンチヒューズを短絡させる. 50

プログラム方式 BL WL SRAM ロジックと同じプロセスで製造できる 冗長度が大きい BL To Switch Floating Gate EPROM,EEPROM 特殊なプロセスを要求 冗長度は小さい >100G 51 IN A B A B open Anti-fuse 小さくて高速 Apply 16V between A and B 書き込みは一度だけ OUT

FPGA の特性分類 SRAM EPROM 書き込み回数に制限のあるものが多い 52

XILINX XC シリーズの構造 A CLB CLB CLB B C (LUT) (SRAM) FF CLB CLB CLB CLB CLB CLB D CLB CLB CLB CLB CLB: Configurable Logic Block 53

LUT(Look-up Table) SRAM 型 FPGA の可変論理を実現する A, B, C, D の 4 ビット入力をワード線とした 1 ビットの SRAM SRAM の中身を書き換えることで任意の論理を実現 (A B)&(C D) に対する LUT B C D A 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 54

スイッチマトリックス SRAM 型 FPGA の可変配線を実現 任意の接続が可能 55

ALTERA FLEX の構造 (LE) A B C D LAB (LAB LE ) LUT FF (LE) LAB (LAB) ( 1) 56

FPGA の設計法 A B nand2 C HDL module nand_g(c,a,b); input A,B; output C; assign C=~(A&B); endmodule 通常の LSI と同じ設計手法を取る LUT を直接設計するわけで はない FPGA の配置配線は各 FPGA ベンダー配布のツールにより行う module nand_g(c,a,b); input A,B;output C; nand2 I0(C,A,B); endmodule LE LSI CAD FPGA FPGA 00/8/7,11 VLSI 設計 夏の学校 ディジタル回路設計の基礎 57

CAD FPGA ベンダのツール CAD FPGA Compiler II Synopsys spectrum Exemplar Synplify Synplicity Synopsys(Viewlogic) WorkView Office FPGA MAX+plus II Quartus, ALTERA Alliance, XILINX DeskTop Actel FPGA Compiler IIはVDECのライセンスで利用可能 各社 FPGAの無償ツールあり 大学向けのプログラムもあり See http://www. ベンダ名.com/ 58

まとめ 記述レベルがどんどん抽象化していっても RTL はしばらく生き残る 回路の動作から最適なRTLを導き出す能力を養うことが肝要 組み合わせ回路の最適化は 計算機に任せればよいが 記述からどのような回路が合成されているかは見ておく 59

参考資料 ディジタル集積回路の設計と試作 VDEC 監修浅田邦博編 ( 培風館 ) ISBN4-563-03547-5 / 定価 3000 円 著者 : 越智裕之 ( 広島市立大学 ) 池田誠 ( 東京大学 ) 小林和淑 ( 京都大学 ) 本資料 http://www-lab13.kuee.kyoto-u.ac.jp/~kobayasi/refresh にて PDF で公開予定 琵琶湖 WS ポスターセッションの投稿を!! 賞金 10 万円 締切 8 月 31 日 60