pldとfpga - 京都工芸繊維大学kobayasi/refresh/0312/slides/fpga.pdf4 pldの構造 pla, pal...
TRANSCRIPT
-
1
PLDとFPGA
VLD講習会2003/08
東京大学 小林和淑
-
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
PLDの構造
PLA, PAL
ANDアレイ
ORアレイ
ORアレイ固定のものがPAL
GAL, PLD
ANDアレイ
固定のORアレイマクロセル
DFFからの出力をフィードバック
PLA, PALは組合せ論理回路主体GAL, PLDは順序論理回路– カウンタ、制御回路等
-
5
FPLAの詳細構造Vcc
Vcc
A
B
C
ANDアレイ
ORアレイ
A+BC
AC+A
バイポーラトランジスタ– まだ,CMOSのないころ
接続したくないところのヒューズを溶断
ヒューズは抵抗を持つので,遅い– PALは,高速化のためにORアレイを固定化
M.J.B.Duff, “Review of the CLIP Image Processing System”, National Computer Conf., pp.1056-1060 (1978)
-
6
FPGA (Field Programmable Gate Array)
フィールドプログラマブルな大規模集積回路– ようは大規模なPLD論理ゲートとフリップフロップをアレイ上に敷き詰めて、その間の結線を自由に変更
– ただし論理ゲートそのものが内蔵されているとは限らない
コンフィグレーションデータを書き込むことにより機能が変化する
-
7
FPGAの構造
組み替え可能な論理ブロック
論理ブロック間を接続する組み替え可能な配線
論理ブロック
配線
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
論理ブロック
-
8
FPGAのプログラム記憶方式FPGAの現在の構成(コンフィグレーション)を覚えておく方法
SRAM等の揮発性メモリに書き込む.– もっともポピュラー– 特別なプロセスを必要としない– 基本特許はXilinx社が所有している
» Freeman特許(2006まで),Cartner特許(2004まで)» FPGAという商標はXilinxのみが使用できる。
EPROM, EEPROM等の不揮発性メモリに書き込む.– 電源を切っても消えない電圧をかけて, アンチヒューズを短絡させる.– 書きこみは一度のみ
-
9
FPGAのプログラム方式: SRAM
SRAMロジックと同じプロセスで製造できる。– 低コスト,最新プロセスの利用冗長度が大きい。– 1SRAMセル: 6Tr– さらに、デコーダ、センスアンプ等も必要電源を切ると消える(揮発性)
WL
BL BL
To Switch
-
10
FPGAのプログラム方式(2) 不揮発
Floating Gate
EPROM,EEPROM特殊なプロセスを要求
冗長度は小さい。
1Trのみ
INOUT >100G
Apply 16V between A and B
A B A Bopen
Antifuse小さくて高速
書き込みは一度だけ
-
11
SRAM方式FPGAの構造FPGA:– 変更可能な組合せ回路– 変更可能な配線組合せ論理回路の基本はLUT(Look-Up Table)– 組合せ論理回路を1ビットSRAMの記憶内容で表現配線の変更は
– トランジスタによるスイッチ» スイッチのON, OFFの情報もSRAMに格納
-
12
LUT(Look-up Table)
� � � � 設定値
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
� � � � �
SRAM型FPGAの可変論理を実現する。
A, B, C, Dの4ビット入力をワード線とした1ビットのSRAM– 入力数が増えるとSRAMが大きくなる
– 小さいと効率が悪いSRAMの中身を書き換えることで任意の論理を実現
(A|B)&(C|D)に対するLUT→真理値表をそのまま表現すればよい。
-
13
可変配線: スイッチマトリックス
SRAM型FPGAの可変配線を実現
スイッチマトリックス 各交点の構造
任意の接続が可能
-
14
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
-
15
ALTERA FLEXの構造(CPLD構造)
論理アレイブロック(LAB)
列配線
行配線
LUT
FF
セレクタ
キャリーチェイン
LAB制御信号
ABCD
(LAB内の全LE共通)
論理素子(LE)
論理素子(LE)
LABの構造各配線は左右, 上下でそれぞれ電気的につながっている
各交点には配線を接続するスイッチを配置
(上から下, 左から右まで1本の配線)
-
16
特許から見たSRAM型FPGA参考資料2
– プログラマブル・ロジック・デバイス技術に関する特許出願技術動向調査http://www.jpo.go.jp/old/techno/pdf/pld.pdf
Freeman特許– LUT型FPGAの基本特許
-
17
特許から見たSRAM型FPGA(2)Cartner特許– CLE(Configurable Logic
Elements)の接続方法に関する特許
Altera社のLUT型FPGAは,XILINX社に特許侵害で訴えられ,敗訴(和解)
他社は怖くて販売できない
-
18
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
-
19
Act1の構造
LogicModule
Antifuseスイッチ
-
20
マルチプレクサによる組合せ回路1
1
1
B
0
A
C
0
OUT AB
C
0
1
0
1
0
1
2入力の論理すべてと、3NANDと排他論理を除く3入力の論理を実現。8入力までの論理も実現(一部のみ)
-
21
EPROM、EEPROM型FPGAE(E)PROM: Electric(-Erasable) Programmable ROM– 電気的に書きこみ(と消去)のできるROM
EPROM(Floating-Gate MOS)の構造
P-
N+ N+
GateSource Drain
P-
N+ N+
Gate
Source Drain
Floating Gate
MOSFET Floating-Gate MOSFET
ゲート電極を2つもつFET
-
22
EPROMのプログラミングDrain, Gate間に高電圧(12V)をかけて、DrainからFloating Gateに電子をジャンプさせる。電子がFloatingゲートにたまることで、閾値が上昇する。– 常にOFFになる
P-
N+ N+
Gate
Source Drain
Apply High Voltage
Vdd
NotProgrammed ProgrammedIDS
-
23
EPROMによるProgrammable Logic
IN0OUT
IN1
IN2
IN3
Floating GateEPROMの回路図シンボル
INOUT
Floating Gate IN OUT
Unprogrammed 1 0
Unprogrammed 0 1
Programmed X 1
Programmable Inverter
Programmable NOR
-
24
EEPROMとフラッシュメモリフラッシュメモリ(Flash Memory):– EEPROMは高電圧をかけて書きこまないといけないが、フラッシュメモリは通常の電圧で読み書き可能
– 書きこみも数千回可能。(EEPROMは数回から数10回)
– 書きこみはバイト単位でできるが、消去はセクタ単位でしかできない。1Mb Flash Memoryの場合、1セクタはアドレス10ビット分(1024ビット)
– 主な応用先:» スマートメディア、メモリスティック等のメモリカード» 携帯電話のソフトウエア格納用
-
25
FPGAの特性分類
プログラム方式 再書込 不揮発性 動作速度 冗長度SRAM ○ × 遅い→速い 大EPROM △ ○ 中 中EEPROM ○ ○ 中 中アンチヒューズ × ○ 速い 小
SRAM型のFPGAは最新のプロセス技術により、スピード面での欠点は解消されている。– 最新のものは、0.09µm銅配線プロセスを用いている。
-
26
銅配線プロセス
銅配線の断面写真銅配線の威力
アルミニウムの抵抗率は銅の1.6倍
-
27
微細化の効果(Xillinx資料より)90nmプロセスと,300mmウェハで,130nm, 200mmと比べて,5倍の生産性– 価格を1/5に– 110nmは飛ばす。
ITRSのロードマップの1.5年先を行く大口径化の効果
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
ウェハーの直径
集積
度の
向上
率
微細化による効果
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)
集積
度の
向上
率
-
28
FPGAベンダ各社とも,1980年代半ば以降に創業されたベンチャー企業(参考資料2参照)FPGAの2大ベンダは、XILINXとALTERA– 2社で世界の5割から6割
その他のベンダ– Actel: antifuse型, Mars Path-Finderに搭載– Lucent: PCIやATMコントローラを内蔵したFPGA– Philips, Lattice: CPLD (Complex PLD)
-
29
FPGAのシェア1998
Ranking Vendor
Revenues(US$, millions)
1998MarketShare
1997/1998
GrowthRate1998 1997
1 Altera $ 654 $ 631 31.5% 4%2 Xilinx $ 629 $ 574 30.3% 10%3 Lattice $ 206 $ 248 9.9% -13%4 Vantis $ 205 $ 220 9.9% -16%5 Actel $ 154 $ 156 7.4% -1%6 Lucent $ 100 $ 97 4.8% 3%7 Cypress $ 39 $ 52 1.9% -25%8 Atmel $ 35 $ 31 1.7% 13%9 QuickLogic $ 30 $ 29 1.4% 3%10 Philips $ 18 $ 23 0.7% n/a
TOTAL $ 2,079 $ 2,068 0.53%
-
30
XILINXの製品マップ ファミリ プログラム方式 マクロセル数 特徴CPLD XC9500 Flash 36-288MC 安価(Glue Logic置き換え) XCR3000 EEPROM 32-512MC 低消費電力
ファミリ プログラム方式 ゲート数 特徴FPGA XC4000 SRAM 13k-85k 3.3V標準 SPARTAN SRAM 5k-200k ASIC代替
VIRTEX II SRAM 40k-8M
システムFPGAプラットフォームFPGA
VIRTEX II Pro SRAM 200k-10M CPU内蔵(最大4つ)
-
31
ALTERAの製品マップファミリ プログラム方式 マクロセル数 特徴MAX EEPROM 32-512MC 安価ファミリ プログラム方式 ゲート数 特徴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 大規模メモリ搭載Excalibur SRAM 100k CPUコア集積
-
32
FPGAの製品展開SRAM型FPGAは、LUTで実現する組合せ論理回路だけでなく、メモリ,PLL, 高速シリアル伝送回路まで内蔵する。– Stratixでは,最大7Mbitメモリは、RAM, ROM, CAM(Content Addressable Memory), FIFO, 乗算器等に使用できるさらに、CPUコアを内蔵。LSIの製造プロセス微細化のおかげで、チップ全体の1/10程度でARM, PowerPC等の32bitプロセッサが集積可能– 詳しくは来週
-
33
FPGA内のメモリFLEX 10Kの内蔵メモリ(Embedded Array Block)– 大規模SRAMに付加回路– 通常のLUTでは実現不可能な論理を実現
– 同期SRAM,非同期SRAM, FIFO, デュアルポートRAM, CAM
– 大規模なLUTとしても利用可– 乗算器: 9ビット入力
(5bit×4bit), 9ビット出力
-
34
CAMRAM: Random Access Memory– アドレスを入力すると、内容が出てくる
CAM: Content Addressable Memory– 内容を入力すると、アドレスが出てくる
CAMの主な用途– ネットワーク系:
» ARPテーブル MACアドレスとIPアドレスの変換» ルーティング,スイッチング情報
-
35
CAMの構造
A A
B B
C
W
b0 b1
MatchMatch
MatchMatch
CAMセルアレイ
CAM memory cell
searching wordP
riority Encoder
Match
Address
A=1 A=0
10
C=0SRAMセルに入力データとの比較用トランジスタを付加一致したMatchの最上位アドレスを出力
-
36
CAMの用途MACアドレス 00:50:56:01:00:00からIPアドレス(130.54.X.X)へMACアドレスからスイッチングハブのポート番号へ
CAM
Address Data
0000000000000001
MAC Address
00:50:56:01:00:0000:80:45:10:C6:9C
RAM
Address Data
0000000000000001
Port Number
1400:80:45:10:C6:9C
14
Log W オーダー
-
37
FPGAのメリット、デメリットメリット– 設計のTAT(Turn-Around Time)が短い– 論理設計とタイミングの検証のみで動作する. (物理設計がいらない)
– 少数の製品に使用できる– IP(Intellectual Property)が豊富デメリット– スピードが遅い、チップ面積が大きい– 量産時のコストが高い
» 同じ設計データを用いて安く量産できるサービスもある(Hardcopy by ALTERA)
-
38FPGAへの書込データの作成
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が書ければ,後はほぼボタンを押すだけ!!
-
39
CAD、FPGAベンダのツール Mentor Graphics FPGA Advantage 統合ツール Synplicity SynplifyPro
FPGA Compiler II WorkView Office 回路図エントリ
ALTERA Quartus 回路図エントリ,論理合成 XILINX ISE 回路図エントリ,論理合成 Actel Libero IDE 回路図エントリ,論理合成
CADベンダ
FPGAベンダ
Synopsys 論理合成ツール
各社FPGAの無償ツールあり。大学向けのプログラムもあり
See http://www.ベンダ名.com/
-
40
FPGA設計(デモ)HDLからFPGAまで
circuit.edf EDIF ネットリスト
RTL記述から回路への論理合成
出力ファイル RTL記述
Leonardo Spectrum
Quartus II
circuit.sof,pof SRAMオブジェクトファイル
FPGA上の配置配線をおこなう出力ファイル
デバの書イ込スへ
FPGA搭載ボード Power Medusa MU200-APFPGA: Altera社Apex20KE400
LUT数: 16,000 (40万ゲート相当)
-
41
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
-
42
FPGA搭載ボードFPGA単体を買ってきても何もできないので、FPGAを搭載したボードが多数販売されている三菱電機マイコン機器ソフトウエア Power MedusaCQ出版 Flex10KE評価キット
PLDとFPGAPLD、FPGAプログラマブルロジックデバイス(PLD)PLDの構造FPLAの詳細構造FPGA (Field Programmable Gate Array)FPGAの構造FPGAのプログラム記憶方式FPGAのプログラム方式: SRAMFPGAのプログラム方式(2) 不揮発SRAM方式FPGAの構造LUT(Look-up Table)可変配線: スイッチマトリックスXILINX XCシリーズの構造ALTERA FLEXの構造(CPLD構造)特許から見たSRAM型FPGA特許から見たSRAM型FPGA(2)Antifuse型FPGA (Actel Act1)Act1の構造マルチプレクサによる組合せ回路EPROM、EEPROM型FPGAEPROMのプログラミングEPROMによるProgrammable LogicEEPROMとフラッシュメモリFPGAの特性分類銅配線プロセス微細化の効果(Xillinx資料より)FPGAベンダFPGAのシェアXILINXの製品マップALTERAの製品マップFPGAの製品展開FPGA内のメモリCAMCAMの構造CAMの用途FPGAのメリット、デメリットFPGAの設計法CAD、FPGAベンダのツールFPGA設計(デモ)HDLから回路図へ(論理合成)FPGA搭載ボード