プログラマブルデバイス
ディジタル回路
天野英晴
1 PLD (Programmable Logic Device)とは?
ユーザが論理機能を決めることのできるIC
⇔ メモリ、CPU、ASIC (Application Specific IC)
SPLD(Simple PLD) /
PLA(Programmable Logic Array )
小規模なAND-OR構造のもの
CPLD (Complex PLD)
主としてAND-OR構造を拡張して大規模化したもの
FPGA (Field Programmable Gate Array)
LUT構造を用いた大規模なもの
用語は混乱していて、使い分けは統一されていないので注意!
FPGAの成長
論理回路搭載量 200倍
動作速度 40倍
電力 1/50
コスト 1/500
Trimberger 2007より
SPLD(Simple PLD:プロダクトターム構
造/AND-OR構造)
ABCD
OR
NOT AND
ANDとOR間の接続を
変えて任意の組み合わせ
論理を実現
プロダクトターム構造の作り方
ABCD A&B | C&D
OR
NOT AND
A&B
C&D
LUT:Look Up Table方式による論理の実現
Address Look Up Table Data
… ROM/RAM …
単純なROMまたはRAMによっても
任意の組み合わせ回路が実現できる
C B
ABC Z Z
0 A
000 0
001 0 0
010 0 0
011 1 1
100 0 0
101 0 0 実際はメモリとマルチプレク
110 0 0 サ
111 1 1 で実現する
LUT:Look Up Tableによる論理の実現例
1 1 0
C B
ABC Z Z
0 A
000 0
001 0 0
010 0 0 1
011 1 1
100 0 0
101 0 0
110 0 0
111 1 1
プロダクトターム方式 vs. LUT
プロダクトターム方式(AND-OR構造)
多入力多出力回路が効率良く実現できる
場合によっては入力項数が不足する
EEPROM、フラッシュROMでの実現に適している
LUT
任意の論理が実現できる
出力が少なく小規模な論理に有利
フラッシュ、アンチヒューズ、SRAM型に適している
順序回路の実現
Q
AND/ORアレイの出力 D
Q
フィードバック
出力回路
D Q
入力 AND・OR 出力
アレイ
D Q
または D Q
Feed
LUT D Q Back
出力にF.F.を付けて、フィードバックラインを
装備すれば任意の順序回路が実現できる
CPLD (Complex PLD)
AND/OR ロジックブロック複数をスイッチで接続 プログラマブル
スイッチ
SPLD SPLD
SPLD
プログラマブル
スイッチ
SPLD SPLD
SPLD SPLD
Altera社
MAXシリーズなど 2次元構造で大規模化
FPGA(Field Programmable Gate Array)
LUT
コネクション F.F
ブロック
論理ブロック
アイランド
スタイル
スイッチ
ブロック
LUT, スイッチ
ブロックの設定は
SRAM内の
構成情報
(コンフィギュレーション
データ)
で変更可能
IOB
柔軟性の実現
アンチヒューズ型
高圧により絶縁体を破壊し、導通させる
高速だがOne-time
Axcelerator (Actel), pASIC (QuickLogic)
EEPROM, フラッシュROM型
Floating Gateによりゲートのスイッチを実現
書き換え可能
GAL (Lattice) MAX, MAX II (Altera)
SRAM型
SRAM上のデータにより論理機能、配線を実現
ISP(In System Programming)が可能だがスイッチを切ると配線情報が消失す
る
LUT型FPGAに向き、最近急速に発達
初期のシリーズ:XC4000(Xilinx), FLEX10K(Altera), ORCA(Lucent)
現在のシリーズ:Virtex, Spartan(Xilinx), Stratix, Cyclone(Altera)
その他
磁気メモリ
DRAM
構成方式と柔軟性実現技術
高速、中規模
SPLD アンチヒューズ 書き換え不能
Axcelerator (Actel)
pASIC、PolarPro (QuickLogic)
CPLD EEPROM 高速、小中規模
書き換え可能
遅延が読める
GAL (Lattice)
フラッシュ MAX, MAXII (Altera)
FPGA
XC9500(Xilinx)
ProASIC、IGLOO(Actel)
大規模、書き換え可能、
SRAM 電源を切ると構成情報が消失
急速に発展
Virtex, Spartan(Xilinx)
Stratix, Cyclone(Altera)
PLDの概観
QuickLogic
Lattice GAL
大規模なチップ
Xilinx Virtex
QuickLogic
2.最近のFPGA
最近のFPGAの情勢
階層的構造による大規模化、高速化:
Xilinx社Virtexシリーズ、Altera社Stratixシリーズ
System on Programmable Device
DLL、CPU、DSP、メモリ、乗算器、高速リンクをハードIPとし
て混載
Xilinx社Virtex-4FX,Virtex-5FXT (Power PC)
PCI Express,DDR-SDRAM,Ethernetに対応
量産品を目指して特化
安価:Xilinx社Spartan、 Altera社Cyclone
低電圧化、低消費電力化
不揮発性FPGAは低電力用にシフト:Actel社IGLOO、
ProASIC3、SiliconBlue社iCE
ハイエンド・ローエンド共に低電力化が進む:Altera社Arriaシ
リーズ
部分再構成機能の充実
Xilinx Virtex シリーズの基本構成
Slice X 2 → CLB (Configurable Logic Block)
Q
LUT Carry D
DCM IOB
Global
Clock
Q
LUT Carry D MUX
Slice
10万CLB
3Mbit
Configurable Logic
RAM Multiplier
Programmable IOs
Altera Stratix II
DSP Blocks
Mega RAM
Blocks
PLL
M4K RAM
Blocks
LAB:Logic Array Block
M512 RAM
4入力のLUTとF.F.から成る
Blocks
LE 10個から構成される
ローカルコネクトと
グローバルコネクトにより
高速なデータ転送を実現
SoPD (System on Programmable Device)
Rocket I/O, Multi-Gigabit Transceiver
DCM
Xilinx
Virtex-II Pro
Power-PC
Multiplier
Block RAM
CLBs
FPGA内に様々なコアを取り込む
プロセステクノロジと製品
90nm 65nm 60nm 45nm 40nm
Virtex-5LX/LXT/SXT/ Virtex-6LXT/SXT/
Virtex-4LX/FX/SX
FXT/TXT HXT/CXT
200000LC
330000LC 760000LC
Stratix-II/GX Stratix-III/L/E Stratix-IV/E/GX/GT
179400LE 338000LE 531200LE
テクノロジ1世代でX1.5-X2.5 High-end
Extented
Spartan-6LX/LXT
Spartan-3A N/DSP
150000LC
53000LC
Cyclone II Cyclone IV/E/GX
68416LE Cyclone III/LS 149760LE
119088LE
High-endとLow-costではX3-X5
Low-cost
Virtex-6のSlice構造 FF
6bit Carry MUX
LUT
6inX1
5inX2 MUX FF
FF
6bit Carry MUX
LUT
6inX1
5inX2 MUX FF
FF
6bit Carry MUX
LUT
6inX1
5inX2 MUX FF
FF
6bit Carry MUX
LUT
6inX1
5inX2 MUX FF
Virtex-6マニュアルより
Virtex-6のCLB
COUT COUT COUT COUT
CLB CLB
Slice Slice
X1Y1 X3Y1
Slice Slice
X1Y0 X2Y1
CIN CIN CIN CIN
COUT COUT COUT COUT
CLB CLB
Slice Slice
X1Y0 X3Y0
Slice Slice
X0Y0 X2Y0
Virtex-6マニュアルより
Stratix-IVのALM
carry
shared_arith reg_carry
4bit adder2
LUT MUX
data MUX FF
6in
4bit adder1
LUT MUX
data MUX FF
6in
4-in LUT X 2
5-in LUT + 3-in LUT
5-in LUT + 4-in LUT 1-input shared
5-in LUT + 5-in LUT 2-input shared
6-in LUT
6-in LUT + 6-in LUT 4-input shared
Stratix-IVのLAB構造
ALMs
Local LAB Local MLAB
Interconnect Interconnect
ハードコアIP
標準装備IP
内蔵RAM
Multiplier, DSPモジュール(乗算器+ALU)
Clock Manager
高速シリアルI/O(ハイエンド、ローエンドの一部)
最近のIP
PCI Express(Virtex-6, Stratix-IV)
EthernetのMACコントロール(Virtex-6)
DRAM用メモリコントロールブロック(Spartan-6)
最近減っているもの
ハードコアCPU → ARMへの転換
FPGA内蔵CPU
ハードコア
レイアウトレベルで組み込んである
標準的な命令セットを持つ
利用可能なFPGAはかなり高価となる
PowerPC (Xilinx Virtex II Pro/Virtex-4FX/Virtex-5FXT)
ソフトコア
FPGA上のロジックブロックで構成する
一定のサイズがあればどの製品でも利用可能
MicroBlaze (Xilinx)
32ビット長、32レジスタを持つ
約500スライス、85MHz動作(Spartan-3)
PicoBlaze (Xilinx)
18ビット長、16レジスタを持つ
96スライス、44MHz動作(Spartan-3)
Nios (Altera)
16ビットのNios16と32ビットのNios32
状況に応じて構成をチューンすることが可能
Cortex-M1(Actel)
ARM互換32bitプロセッサ
FPGAの目的別製品化(サブファミリー化)
どのようなハードコアIPを組み込むかをFPGAの応用分野によって選択可能に
する。
Xilinx社 Virtex-4 (90nm):
ロジックブロック、DSP(積和演算など)、BRAM(ブロックRAM)は標準装備
LX:ロジックブロックを多数装備
SX:DSPユニットを多数装備
FX:CPUとハイスピードI/Oを装備
Xilinx社 Virtex-5 (65nm):
LX:ロジックブロックを多数装備
LXT:ロジックブロック、シリアルリンク
SXT:DSP、メモリ、シリアルリンク
FXT:CPU、高速シリアルリンク
TXT:高速リンク、通信制御用
Xilinx社 Virtex-6(40nm)
LXT:ロジックブロック、シリアルリンク
SXT:DSP、シリアルリンク
HXT:高速シリアルリンク、ネットワーク制御用
Altera社Stratix IVもE,GX,GTのサブファミリを持つ
低コスト、量産品志向製品
Spartanシリーズ(Xilinx社)
Spartan-3A (90nm)
5万Logic Cell以上の集積度、I/O数、内蔵RAM、乗算器、DCM等を
持つ
上位機種はDSPモジュールを持つ
Spartan-6 (45nm)
14万Logic Cell以上の集積度、DSPモジュール装備
上位機種はPCIExpressインタフェースを持つ
Cycloneシリーズ(Altera社)
Cyclone-IV (60nm)
Eシリーズ:RAM、乗算器、PLLのみ
GXシリーズ:PCIExpressインタフェースを持つ
実際の組み込みシステムへの利用が進む
Spartan-6 Memory Control Block
Spartan-6 FPGA
IP wrapper
CMD FIFO0
CMD FIFO1
CMD FIFO2 Arbiter
CMD FIFO3 Cont.
CMD FIFO4
CMD FIFO5
PHY
I/O Clocking Network
Dedicated Routing
User 32-bit
Logic Bidirectional DDR
IOB
DDR2
32-bit
DDR3
Bidirectional
LPDDR
32-bit
Unidirectional Datapath
32-bit
Unidirectional Conf.
32-bit Logic
Unidirectional
32-bit
Unidirectional
FPGAの低電力化
ダイナミック電力の削減
クロックゲーティング
6入力LUTの利用 Clock
Logic
ハードIPの利用
Routing
Low-Kトランジスタ
リーク(Static)電力が大
Dynamic Power
Triple-oxideトランジスタ
about 200mW
複数Vth
複数ゲート長
パワーゲーティング
Altera社Arria II Logic
SRAM型ミドルエンド Routing
Actel社IGLOO Config SRAM
フラッシュ型
SiliconBlue社iCE Static Power
SRAM型+内部フラッシュメモリ about 60mW
Spartan3S1000の消費電力[Tuan;FPGA06]
リーク電流
Sub-Threshold Leakage
Vthが高ければ少ない。しかしVthが高いと遅い
Gate Leakage
High-Kトランジスタの利用
Gate Oxide
Triple-Oxide
Gate
異なった
酸化膜厚の Source
Gate leakage
Drain
トランジスタの Sub-Threshold
利用 P-well
leakage
NMOS
Substrate
Startan-3でのパワーゲーティング [tuan06]
Config Config
SRAMs SRAMs
Interconnect
CLB
Switch Matrix
Virtual
ground Power
Config
Gate SRAMs
Tile
FPGA Core
動的部分再構成
動作中にFPGAの一部の構成データを入れ替える
チップ面積の有効利用が可能
Virtex-IIProではカラム単位
Virtex-4より新しいデバイスでは長方形領域
Virtex-6ではDynamic Reconfiguration Port(DRP)が装備
される
シリアルI/Oなどの構成情報を容易に動作中に変更
FPGA上のロジックから構成情報を変更可能
研究レベルでは、FPGAの一部を計算資源として管理する
OSが盛んに開発されている
動的部分再構成 Clock Region Boundary
PRM
Reconf
Frame
部分再構成の対象モジュールPRM(Partial Reconfigurable Module)は、
部分再構成内フレーム中に置く。
部分再構成の対象モジュールと外部の配線が問題
スライスベース・バスマクロ:単方向のバスで接続
シングルスライス・バスマクロ:任意の場所に置ける。方向も気にしなくて済む
SRAM型FPGAの動向
方向が決まって同一化が進む
BRAM、DSP、シリアルI/O、PCI express
VirtexとStratix、SpartanとCycloneが類似
高性能シリーズと低コストシリーズも類似
低消費電力化が大きく進展
部分再構成は研究レベルで一般化
最新プロセスをいち早く利用する方針は45/40nmまで
はうまく行っている
今後しばらくはうまく行くだろう
しかし、最新プロセスの時間的な間隔は空きつつある
FPGAの侵攻が止まる時が来るか?
3 PLDの設計
Impulse-Cなど
Cレベル設計 Verilog-HDL, VHDLなど
高位合成、機能合成 RTL設計
論理合成、圧縮(テクノロジ非依存)
テクノロジマッピング FPGA/PLDの
アーキテクチャ依存部分
配置
配線
概略配線/詳細配線
構成情報
4 まとめ
試作品用の特殊部品から、量産品にも用いら
れる汎用標準部品となっている。
単なる論理回路専用のデバイスではなく、シス
テム設計のプラットフォームとして発展。
最新デバイスの利用により、集積度と動作速
度は急速にASICに迫る。
コストと消費電力はまだ差があるが、これも改
善されつつある。
演習問題
左のLUTと同等の機能を右のプロダクトタームの接続により実現せよ。
(ヒント)
LUTの論理を表わす真理値表の入力は、
ABC順(Aが一番上の桁、Cが一番下の桁)で CBA
あることに注意すること。
OR
C B NOT AND
Z
0 A
0
1
0
1
0
1
1