ブラウザの再読み込み(リフレッシュ)方法 - Ergotron...ブラウザの再読み込み(リフレッシュ)方法 Webページが正しく表示されない場合は、
リフレッシュ教育 - KobayashiLab»FPGAという商標はXilinxのみが使用できる。...
Transcript of リフレッシュ教育 - KobayashiLab»FPGAという商標はXilinxのみが使用できる。...
2
PLD、FPGAPLD: Programmable Logic Device– プログラム可能な論理素子
FPGA: Field Programmable Gate Array– 野外でプログラム可能な門の隊列?
– Field: 設計現場
– Gate Array: 論理ゲートをアレイ上に敷き詰めたLSI– MPGA: Mask Programmable Gate Array
» マスクでプログラムするゲートアレイ
– FPGA:» 設計現場でプログラムするゲートアレイ
» 街中でプログラムするゲートアレイ
3
プログラマブルロジックデバイス(PLD)設計者が自由にその機能を変更できるLSIの総称
(広義)– MPD: マスクプログラマブル→製造時に変更
– FPD: フィールドプログラマブル→その場で変更
小規模PLDの種類
– PLA: Programmable Logic Array» AND-OR アレイ
– PAL: Programmable Array Logic» ORアレイが固定
» 派生品として、GAL, PLD(製品名)PLD
PAL
PLA
PLDGAL
FPGA
GA(MPGA)
4
FPGAの応用先http://www.fpga.co.jp/nyumon2.html
Canopus社ビデオ
出力ボード
SONYの薄型テレビ用基盤
プレステ用
エモーション
エンジン
Altera社Cyclone
新幹線電光掲示板
5
ポータブル機器への応用
ザイリンクスは,シャープがウィルコム向けに開発・製造している携帯情報端末「W-ZERO3 シリーズ」に,米Xilinx,Inc.のCPLD「CoolRunner-II」が採用されていると発表した。W-ZERO3 シリーズは2005年12月に販売が始まっている。今回,シャープは上記のPLDを,同PDAのキーボード・インタフェース,I/O拡張機能などに使い,MCUの負荷低減と機
器の高機能化につなげたという。ザイリンクスは「CoolRunner-IIが低消費電力
なことは,採用の大きなポイントになった」と説明している。
出典:http://techon.nikkeibp.co.jp/article/NEWS/20060616/118270/
6
FPGA,PLDの歴史
参考資料
– 特許から見た「プログラマブル・ロジック・デバイス(Programmable Logic Device:PLD)」の展望
– http://www.jpo.go.jp/shiryou/toushin/chousa/pdf/pld2000_1_12.pdf
8
PLDの構造
PLA, PALは組合せ論理回路主体
GAL, PLDは順序論理回路
– カウンタ、制御回路等
PLA, PAL GAL, PLD
ANDアレイ
ORアレイ
ORアレイ固定のものがPAL
ANDアレイ
固定のORアレイマクロセル
DFFからの出力をフィードバック
9
FPLAの詳細構造
バイポーラトランジスタ– まだ,CMOSのないこ
ろ
接続したくないところのヒューズを溶断
ヒューズは抵抗を持つので,遅い– PALは,高速化のためにORアレイを固定化
Vcc
Vcc
A
B
C
ANDアレイ
ORアレイ
A+BC
AC+A
M.J.B.Duff, “Review of the CLIP Image Processing System”, National Computer Conf., pp.1056-1060 (1978)
10
FPGA (Field Programmable Gate Array)
フィールドプログラマブルな大規模集積回路– ようは大規模なPLD論理ゲートとフリップフロップをアレイ上に敷き詰めて、その間の結線を自由に変更
– ただし論理ゲートそのものが内蔵されているとは限らない
コンフィグレーションデータを書き込むことにより機能が変化する
11
FPGAの構造
組み替え可能な論理ブロック
論理ブロック間を接続する組み替え可能な配線
論理ブロック
配線
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
12
FPGAのプログラム記憶方式
SRAM等の揮発性メモリに書き込む.– もっともポピュラー
– 特別なプロセスを必要としない
– 基本特許はXilinx社が所有している
» Freeman特許(2006まで),Carter特許(2004まで)
» FPGAという商標はXilinxのみが使用できる。
EPROM, EEPROM等の不揮発性メモリに書き込む.– 電源を切っても消えない
電圧をかけて, アンチヒューズを短絡させる.– 書きこみは一度のみ
FPGAの現在の構成(コンフィグレーション)を覚
えておく方法
13
FPGAのプログラム方式:SRAM
SRAMロジックと同じプロセスで製造できる。– 低コスト, 新プロセスの利用
冗長度が大きい。– 1SRAMセル: 6Tr– さらに、デコーダ、センスアンプ等も必要
電源を切ると消える(揮発性)
WL
BL BL
To Switch
14
FPGAのプログラム方式(2) 不
揮発
Floating Gate
EPROM,EEPROM特殊なプロセスを要求
冗長度は小さい。
1Trのみ
INOUT >100G
Apply 16V between A and B
A B A Bopen
Antifuse小さくて高速
書き込みは一度だけ
15
SRAM方式FPGAの構造
FPGA:– 変更可能な組合せ回路
– 変更可能な配線
組合せ論理回路の基本はLUT(Look-Up Table)– 組合せ論理回路を1ビットSRAMの記憶内容で表現
配線の変更は
– トランジスタによるスイッチ» スイッチのON, OFFの情報もSRAMに格納
16
構成部品– CLB(Configurable Logic Block, 論
理ブロック)» LUT: 可変論理
» FF: 順序回路
– SB(Switch Block, 配線接続スイッチ)
» 縦横の配線接続を切り替え
– CB(Connection Block, 入出力スイッチ)
» CLBと配線を接続
– Wire Track» SB間の配線
アイランド型FPGACB
CLB
SB
Wire Track
18
LUT(Look-up Table)SRAM型FPGAの可変論理を実現
する。
A, B, C, Dの4ビット入力をワード線とした1ビットのSRAM– 入力数が増えるとSRAMが大きくな
る
– 小さいと効率が悪い
– これまでは4入力が主流
SRAMの中身を書き換えること
で任意の論理を実現
(A|B)&(C|D)に対するLUT→真理値表をそのまま表現すればよい。
� � � � 設定値
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
19
LUT(Look-up Table)SRAM型FPGAの可変論理を実現する。A, B, C, Dの4ビット入力をワード線とした1ビットのSRAM– 入力数が増えるとSRAMが大きくな
る– 小さいと効率が悪い– 微細化により入力ビット数が増え
る傾向にあり
SRAMの中身を書き換えることで任意の論理を実現(A|B)&(C|D)に対するLUT→真理値表をそのまま表現すればよい。
� � � � 設定値
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
21
スイッチマトリックスの構造
Fs(配線当たりの接続数)=3の各種スイッチ構
造– Disjoint: 上下左右斜め同じ番号(前頁の構造)
– Universal: 上下左右は同じで斜めで一部番号を反転
– Wilton: 上下左右は同じで斜めで番号を変更
22
スイッチマトリックスの詳細構造
NMOS SW Typeは面積が小さいが配線
容量の増大とともにスイッチの抵抗による遅延が大きくなる
Buffer Typeは高速だが,双方向にする
ために面積が非常に大きくなってしまう。
– さて,NMOS SW Typeの何倍くら
い?
Buffer Typeの欠点を解消したスイッチの構造も提案されている[1]
1ビットSRAM
[1] G. Lemieux, D. Lewis, `Circuit Design of FPGA Routing Switches'', ACM/SIGDA International Symposium on FPGAs
23
XILINX XCシリーズの構造
CLB CLB CLB
CLB CLB CLB
CLB CLB CLB
CLB CLB CLB
配線
スイッチマトリックス
スイッチマトリックス
ルックアップテーブル(LUT) FF
セレクタ
CLBの構造
共通クロック
A
B
C
D
(SRAM)
縦横配線の接続が変更できる
CLB: Configurable Logic Block
24
ALTERA FLEXの構造(CPLD構造)
論理アレイブロック(LAB)
列配線
行配線
LUT
FF
セレクタ
キャリーチェイン
LAB制御信号
ABCD
(LAB内の全LE共通)
論理素子(LE)
論理素子(LE)
LABの構造各配線は左右, 上下でそれぞれ電気的につながっている
各交点には配線を接続するスイッチを配置
(上から下, 左から右まで1本の配線)
25
特許から見たSRAM型FPGAプログラマブル・ロジック・デバイス技術に関する特許出願技術動向調査
http://www.jpo.go.jp/old/techno/pdf/pld.pdf
Freeman特許
– LUT型FPGAの基本特許
26
特許から見たSRAM型FPGA(2)
Carter特許
– CLE(Configurable Logic Elements)の接続方法に関する特
許
Altera社のLUT型FPGAは,X
ILINX社に特許侵害で訴えられ,敗訴(和解)
他社は怖くて販売できない
27
Antifuse型FPGA (Actel Act1)プログラム可能なスイッチ: 高電圧をかけて、
スイッチを溶着する。– Fuseの反対の動作
– 動作時には低抵抗で高速
プログラム可能な論理
– マルチプレクサベース
– 2入力のさまざまな組合
せ論理が実現可能
>100G
Apply 16V between A and B
A B A Bopen
SA
A0
A1
B0
B1
SB
S0
S1
OUT
0
1
0
1
0
1
29
1
1
1
B
0
A
C
0
OUT AB
C
0
1
0
1
0
1
マルチプレクサによる組合せ回路
2入力の論理すべてと、3NANDと排他論理を除く3入力の論理を実現。8入力までの論理も実現(一部のみ)
30
EPROM、EEPROM型FPGAE(E)PROM: Electric(-Erasable) Programmable ROM– 電気的に書きこみ(と消去)のできるROM
EPROM(Floating-Gate MOS)の構造
MOSFET Floating-Gate MOSFET
ゲート電極を2つもつFET
P-
N+ N+
GateSource Drain
P-
N+ N+
Gate
Source Drain
Floating Gate
31
EPROMのプログラミング
Drain, Gate間に高電圧(12V)をかけて、DrainからFloating Gateに電子をジャンプさせる。
電子がFloatingゲートにたまることで、閾値が上
昇する。– 常にOFFになる
P-
N+ N+
Gate
Source Drain
Apply High Voltage
Vdd
NotProgrammed ProgrammedIDS
32
EPROMによるProgrammable Logic
Floating Gate
INOUT
EPROMの回路図
シンボル
Floating Gate IN OUT
Unprogrammed 1 0
Unprogrammed 0 1
Programmed X 1
Programmable Inverter
Programmable NOR
IN0OUT
IN1
IN2
IN3
33
EEPROMとフラッシュメモリ
フラッシュメモリ(Flash Memory):– EEPROMは高電圧をかけて書きこまないといけないが、
フラッシュメモリは通常の電圧で読み書き可能
– 書きこみも数千回可能。(EEPROMは数回から数10
回)
– 書きこみはバイト単位でできるが、消去はセクタ単位でしかできない。1Mb Flash Memoryの場合、1セクタはアドレス10ビット分(1024ビット)
– 主な応用先:» スマートメディア、メモリスティック等のメモリカード
» 携帯電話のソフトウエア格納用
34
NAND型とNOR型フラッシュメ
モリ
NOR型: 小容量,高速,ランダムアクセス可能
NAND型: 大容量,低速,消去はブロック単位
NOR型FLASH NAND型FLASH
プログラムしないと常時ONに
35
FPGAの特性分類
SRAM型のFPGAは 新のプロセス技術により、
スピード面での欠点は解消されている。– 新のものは、65nm銅配線プロセスを用いている。
プログラム方式 再書込 不揮発性 動作速度 冗長度SRAM ○ × 遅い→速い 大EPROM △ ○ 中 中EEPROM ○ ○ 中 中アンチヒューズ × ○ 速い 小
37
微細化の効果(Xillinx資料より)
90nmプロセスと,300mmウェハで,130nm, 200mmと比べて,5倍の生産性
– 価格を1/5に– 110nmは飛ばす。
ITRSのロードマップの1.5年先を行く微細化による効果
1.29 1.341.60
1.33
2.09
0.00
0.50
1.00
1.50
2.00
2.50
220 190 150 130 90
プロセステクノロジ(nm)
集積
度の
向上
率
大口径化の効果
4.00
2.251.78
2.25
0.00
0.501.00
1.502.00
2.503.00
3.504.00
4.50
100 150 200 300
ウェハーの直径
集積
度の
向上
率
40
FPGAベンダ
各社とも,1980年代半ば以降に創業されたベンチャー企業(参考資料2参照)
FPGAの2大ベンダは、XILINXとALTERA– 2社で世界の5割から6割
その他のベンダ– Actel: antifuse型, Mars Path-Finderに搭載
– Lucent: PCIやATMコントローラを内蔵したFPGA– Philips, Lattice: CPLD (Complex PLD)
41
FPGAベンダの売り上げ高
0 0.5 1 1.5 2 2.5 3 3.5
LSI Logic
Agere System
Altera
Toshiba
Fujitsu
Xilinx
NEC Electronics
ST Microelectronics
IBM
Texus Instruments
2004
2003
FPGA/ASIC売り上げ高(10億ドル)
Xilinx, Alteraは,東芝,富士通,NEC等の日本の大手とほぼ同じ規
模
42
XILINXの製品マップ
ファミリ プログラム方式 マクロセル数 特徴CPLD XC9500 Flash 36-288MC 安価(Glue Logic置き換え) XCR3000 EEPROM 32-512MC 低消費電力
ファミリ プログラム方式 ゲート数 特徴FPGA XC4000 SRAM 13k-85k 3.3V標準 SPARTAN SRAM 5k-200k ASIC代替
SPARNTAN-3 SRAM 50k-5M 低価格かつ高性能
VIRTEX II SRAM 40k-8M
システムFPGAプラットフォームFPGA
VIRTEX II Pro SRAM 200k-10M CPU内蔵( 大4つ) VIRTEX 4 SRAM 200k-10M CPU/DSP/Ethernet積載
43
ALTERAの製品マップ
ファミリ プログラム方式 ゲート数 特徴ACEX SRAM 10k-100k 安価かつ大容量FLEX SRAM 10k-250k 高速大容量
APEX 20k SRAM 30k-1.5M SOPC(System on a ProgrammableChip)
APEX II SRAM 600k-3M 銅配線Stratix SRAM 300k-3M 大規模メモリ搭載Stratix II SRAM 600k-7M 新Excalibur SRAM 100k CPUコア集積MAXII Flash 240-2.2k 高速大容量Cyclone SRAM 2k-20k ASICの置き換えCyclone II SRAM 4k-68k 90nm, 300mmウェハHardCopy II FPGAデータから作成するASIC
44
FPGAの製品展開
SRAM型FPGAは、LUTで実現する組合せ論理回路だけでなく、メモリ,PLL, 高速シリアル伝送
回路まで内蔵する。– Stratixでは, 大7Mbitメモリは、RAM, ROM, CAM(Content Addressable Memory), FIFO, 乗算器等に使用できる
さらに、CPUコアを内蔵。LSIの製造プロセス微細化のおかげで、チップ全体の1/10程度でARM, PowerPC等の32bitプロセッサが集積可能
45
FPGAのメリット、デメリット
メリット– 設計のTAT(Turn-Around Time)が短い
– 論理設計とタイミングの検証のみで動作する. (物理設計がいらない)
– 少数の製品に使用できる
– IP(Intellectual Property)が豊富
デメリット– スピードが遅い、チップ面積が大きい
– 量産時のコストが高い» 同じ設計データを用いて安く量産できるサービスもある
(Hardcopy by ALTERA, EasyPath by Xilinx)
46
ストラクチャードASICFPGAは,短納期だが,単価が高い,速度も遅い
専用のASICは,開発費が高く,納期も遅い
ストラクチャードASIC(マスタスライスLSI)– あらかじめ,チップ上にIP(部品)を組み込んでおき,
配線層のみでカスタム化する» 構成部品が論理ゲートとメモリだけのものは,単なるゲートアレイ
– 短納期,かつ単価が安い(FPGAより面積小),速度も速い(FPGAのスイッチを単なる配線に)
マスクなしで,EBによる直猫も
儲からないのか,各社撤退へ。FPGAには勝てない
47
HardcopyII
10%のコストと,半分の消費電力でFPGAをASICにFPGAとピン互換
FPGA
LUT
SWM
LUT
SWM
Mem
ory
PLL
LUT
SWM
LUT
SWM
Mem
ory
PLL
Hardcopy II
48FPGAへの書込データの作成
LSI用CADツール
FPGAベンダ提供ツール
この境界は厳密ではない
回路図エントリ
CAB
HDL記述module nand_g(C,A,B); input A,B; output C; assign C=~(A&B);endmodule
論理合成
nand2
ネットリストmodule nand_g(C,A,B); input A,B;output C; nand2 I0(C,A,B);endmodule
論理設計
論理素子へのゲートの割り当て
LEの配置, 配線を決定する
FPGAの設計法
通常のLSIと同じ設計手
法を取る。– LUTを直接設計するわけで
はない
FPGAの配置配線は各FPGAベンダ配布のツー
ルにより行う
HDLが書ければ,後はほ
ぼボタンを押すだけ!!
49
CAD、FPGAベンダのツール
各社FPGAの無償ツールあり。大学向けのプログラムもあり
See http://www.ベンダ名.com/
Mentor Graphics FPGA Advantage 統合ツール Synplicity SynplifyPro
FPGA Compiler II WorkView Office 回路図エントリ
ALTERA Quartus II 回路図エントリ,論理合成 XILINX ISE 回路図エントリ,論理合成 Actel Libero IDE 回路図エントリ,論理合成
CADベンダ
FPGAベンダ
Synopsys 論理合成ツール
50
Verilog Simulator標準的なVerilog Simulator– Cadence社 verilog-xl, ncverilog(高速なverilog simulator)
» VDECのメディアではIUS, LDVに含まれる
» 波形を見るのはsimivision– Synopsys社 vcs
» VDECのメディアでは,vcsに含まれる
– Mentor Graphics社 modelsim» VDECのメディアでは,Modelsim» XILINX, ALTERAのFPGAソフトに機能限定版
– Plagmatic C社 GPL Cver» GPLライセンスにより,フリーで利用可能
» Windows(cygwin), linux, Solaris, OS Xなどで動作
» 波形を見るのはgtkwave– Veritakwin (菅原システムズ)
» 純国産Verilogシミュレータ
» 無料で使えるCQ版もあり
51
FPGA設計(演習内容)HDLからFPGAまで
Quartus II
circuit.sof,pof SRAMオブジェクトファイル
RTL記述から回路への論理合成
FPGA上の配置配線をおこなう
出力ファイル
出力ファイル
RTL記述
デバイスへ
の書込
Quartus II
FPGA搭載ボード Power Medusa MU200-EC6SFPGA: Altera社 Cyclone EP1C6Q240C8 (5980ロジックセル)
FPGA1個当たりの価格 1000円から2000円程度
52
HDLから回路図へ(論理合成)module calc(decimal,plus,minus,equal,CLK,RST,CE,sign,overflow,out);
input [9:0] decimal;
input CLK,CE,RST,plus,minus,equal;
output sign,overflow;
output [6:0] out;
wire [3:0] d;
wire [8:0] alu_out;
reg [1:0] state;
reg [8:0] REGA, REGB;
reg [1:0] count;
reg add_or_sub;
assign d=dectobin(decimal);
always @(posedge CLK or negedge RST)
begin
if(!RST)
begin
REGA<=0;REGB<=0;count<=0;
add_or_sub<=0;
state<=`DECIMAL;
end
else
module calc(decimal,plus,minus,equal,CLK,RST,CE,sign,overflow,out);
input [9:0] decimal;
input CLK,CE,RST,plus,minus,equal;
output sign,overflow;
output [6:0] out;
wire [3:0] d;
wire [8:0] alu_out;
reg [1:0] state;
reg [8:0] REGA, REGB;
reg [1:0] count;
reg add_or_sub;
assign d=dectobin(decimal);
always @(posedge CLK or negedge RST)
begin
if(!RST)
begin
REGA<=0;REGB<=0;count<=0;
add_or_sub<=0;
state<=`DECIMAL;
end
else
HDLソース(一部)回路図