Programmable Logic Devices プログラム可能論理

Programmable Logic Devices
プログラム可能論理
とASIC設計
ディジタル回路最終回
天野
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構造を用いた大規模なもの
用語は混乱していて、使い分けは統一されていないので注意!
PLDの成長
性能の飛躍
91年を1とすると
2000年までで
集積度は45倍
速度は12倍
価格は1/100
ゲート数
10M
1M
2004年まで
集積度は200倍
速度は40倍
価格は1/500
アンチヒューズ型
FPGA
登場
SRAM型
FPGAの
CPLD 登場
100k
階層構造
内蔵コア
低電圧化
登場
10k
ヒューズ型
PLA
1980
EEPROM型
SPLD
1990
2000
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
…
ROM/RAM
…
Data
単純なROMまたはRAMによっても
任意の組み合わせ回路が実現できる
C
ABC
000
001
010
011
100
101
110
111
Z
0
0
0
1
0
0
0
1
Z
0
0
0
1
0
0
0
1
B
A
実際はメモリとマルチプレク
サ
で実現することもある
LUT:Look Up Tableによる論理の実現例
1
C
ABC
000
001
010
011
100
101
110
111
Z
0
0
0
1
0
0
0
1
Z
0
0
0
1
0
0
0
1
1
B
0
A
1
プロダクトターム方式 vs. LUT
• プロダクトターム方式(AND-OR構造)
– 多入力多出力回路が効率良く実現できる
– 場合によっては入力項数が不足する
– EEPROM、フラッシュROMでの実現に適してい
る
• LUT
– 任意の論理が実現できる
– 出力が少なく小規模な論理に有利
– フラッシュ、アンチヒューズ、SRAM型に適してい
る
順序回路の実現
AND/ORアレイの出力
D
Q
Q
フィードバック
出力回路
入力
AND・OR
アレイ
または
LUT
D Q
出力
D Q
D Q
D Q
Feed
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), APEX, Stratix, Cyclone(Altera)
• その他
– 磁気メモリ
– DRAM
構成方式と柔軟性実現技術
SPLD
アンチヒューズ
CPLD
EEPROM
フラッシュ
FPGA
SRAM
高速、中規模
書き換え不能
Axcelerator (Actel)
pASIC (QuickLogic)
高速、小中規模
書き換え可能
遅延が読める
GAL (Lattice)
MAX, MAXII (Altera)
XC9500(Xilinx)
大規模、書き換え可能、
電源を切ると構成情報が消失
急速に発展
Virtex, SPARTAN(Xilinx)
Stratix, APEX, Cyclone(Altera)
PLDの概観
QuickLogic
Lattice GAL
大規模なチップ
Xilinx Virtex
QuickLogic
SoPDとSoC
• 最近のFPGAの情勢
– 階層的構造による大規模化、高速化:
• Xilinx社Virtexシリーズ、Altera社APEXシリーズ、
Stratix
– System on Programmable Device
• DLL、CPU、DSP、メモリ、乗算器、高速リンクをハー
ドIPとして混載
• Xilinx社Virtex Pro (Power PC)、 Altera社Excalibur
(ARM)
– 量産品を目指して特化
• 安価:Xilinx社Spartan、 Altera社Cyclone
– 低電圧化、マルチ電圧化、低消費電力化
FPGAの変遷(Xilinx社)
プロセス
シリーズ
型番
LUT数
電圧
350nm
XC4000
XC4085KLA
7448
3.3V
250nm
XC4000
XC40250KV
20102
2.5V
220nm
Virtex
XCV1000
27648
2.5V
180nm
Virtex-E
XCV2000E
43200
1.8V
150nm
Virtex-II
XC2V800O
104882
1.5V
130nm
Virtex-II
Pro
XC2VP125
125136
1.5V
90nm
Virtex-4
XC4VLX200
200488
1.2V
65nm
Virtex-5
XC5VLX330
331776
1.2V
Xilinx Virtex IIの構成
LUT
LUT
Carry
Carry
D
D
Q
Slice X 2 → CLB (Configurable Logic Block)
Q
Global
Clock
MUX
DCM
IOB
Slice
10万CLB
3Mbit
Configurable Logic
RAM Multiplier
Programmable IOs
Altera Stratix II
DSP Blocks
PLL
Mega RAM
Blocks
M4K RAM
Blocks
M512 RAM
Blocks
LAB:Logic Array Block
4入力のLUTとF.F.から成る
LE 10個から構成される
ローカルコネクトと
グローバルコネクトにより
高速なデータ転送を実現
SoPD (System on Programmable Device)
DCM
Rocket I/O, Multi-Gigabit Transceiver
Xilinx
Virtex-II Pro
Power-PC
Multiplier
Block RAM
CLBs
FPGA内に様々なコアを取り込む
• ハードコア
–
–
–
–
FPGA内蔵CPU
レイアウトレベルで組み込んである
標準的な命令セットを持つ
利用可能なFPGAはかなり高価となる
PowerPC (Xilinx Virtex II Pro/Virtex 4), MIPS (Lattice), ARM (Altera
Excalibur)
• ソフトコア
– FPGA上のロジックブロックで構成する
– 一定のサイズがあればどの製品でも利用可能
– MicroBlaze (Xilinx)
• 32ビット長、32レジスタを持つ
• 約500スライス、85MHz動作(Spartan-3)
– PicoBlaze (Xilinx)
• 18ビット長、16レジスタを持つ
• 96スライス、44MHz動作(Spartan-3)
– Nios (Altera)
• 16ビットのNios16と32ビットのNios32
• 状況に応じて構成をチューンすることが可能
多品種戦略
• Virtex II Proは、全ての製品にCPU、Rocket I/O
が装備されている → 価格が上がる
• 目的別に複数のシリーズを設ける
–
–
–
–
–
ロジックブロック、DSP、BRAMは標準装備
LX:ロジックブロックを多数装備
EX:DSPを多数装備
FX:CPUとハイスピードI/Oを装備
LX/EXの価格はVirtex II Proよりも低く設定可能
Virtex-4 LX
Virtex-4 SX
Virtex-4 FX
低コスト、量産品志向製品
• Xilinx社Spartanシリーズ(Spartan-3E)
– 90nmプロセス利用
– 10万ゲート以上の集積度、I/O数、内蔵RAM、乗算
器、DLL等を持つ
– 10万ゲートで2ドル未満、120万ゲートで9ドル未満
– 25万ユニットを越えなければASICよりSpartanが
有利(2006年では50万ユニットになるだろうとのこ
と)
• Altera社 Cyclone IIも同様なねらい
• 実際の組み込みシステムへの利用が進む
PLDの設計
Handel-Cなど
Cレベル設計
高位合成、機能合成
Verilog-HDL, VHDLなど
RTL設計
論理合成、圧縮(テクノロジ非依存)
テクノロジマッピング
配置
配線
概略配線/詳細配線
構成情報
FPGA/PLDの
アーキテクチャ依存部分
まとめ
• 試作品用の特殊部品から、量産品にも用いられる汎
用標準部品となっている。
• 単なる論理回路専用のデバイスではなく、システム設
計のベースとして発展。
• ASICによるシステムLSIとのボーダレス化が進むであ
ろう。
• 最新デバイスの利用により、集積度と動作速度は急
速にASICに迫る。
• コストと消費電力はまだ差があるが、これも改善され
つつある。
ASIC (Appplication Specific IC)
• 機能目的型のIC
• 実装方法
– ゲートアレイ
– セルベースド
– フルカスタム
• CPU、メモリ、I/O、専用ハードウェアを実装し
たシステムLSI(SoC: System on-a Chip)
– 携帯電話、情報家電、ネットワーク制御等様々な
分野で用いられる。
– 日本の半導体産業の中心になりつつある。
初期のゲートアレイの構造
…
…
…
…
…
…
…
I/O Pad
ゲート領域
配線領域
SOG(Sea Of Gates)
…
…
…
…
…
…
…
…
…
…
I/O Pad
ゲート領域
配線領域
SOGの例(FPU:Rohm 0.6μ)
Embedded Arrayが有利
• ASICを作る意義
– 大量生産時のコストの安さ
– 高速、高集積度
• Embedded Arrayとは?
– メモリやCPUなどのあらかじめ設計されたレイア
ウトを使うことができるゲートアレイ
Embedded Array
RAM
CPU
…
Random Logic
ルータチップ内部レイアウト図
RDTルータチップパッケージ
MBP-lightのレイアウト
MBP-lightの外観
スイッチチップとMBP-lightを用いて作った並列計算機JUMP-1
ハードウェア処理部
コアプロセッサ
Martini の諸元
デザインルール
0.14μm
ダイサイズ
272.91mm2
メモリ総量
538KB
I/O 伝送周波数
RHiNET-2,3/SW
800MHz
OIP-SW
250MHz
内部動作周波数
コア部
66MHz
DIMM ホストI/F
133MHz
スイッチI/F
125MHz
パッケージ
784 BGA
ASIC版 NIC
• コントローラに専用ASICを開発
• PCI bus/ DIMM slot
Martini
SO-DIMM
光インタコネクション
セルベースド設計
• それぞれのセル=ゲートのレイアウトはできている
• しかし、ゲートアレイと違って、配置は完全に自由
RTL記述
論理合成、簡単化
フロントエンド設計
ネットリスト
配置、配線
レイアウト
バックエンド設計
PICO16の概略配線
配線トラックの割付
• Route → Track Assign!
配線トラック
が割り当てら
れる
配線終了後
レイアウト画面
MuCCRA-1 Floor plan
• Rohm’s 0.18um
6-layer process
• 5.18 mm X 5.18mm
• Signal 1.8V, IO 3.3V
• QFP304 package
PE
PE Context Memory
CSC
MULT
TCC
MEM
10
MuCCRA-2 Floor Plan
•ASPLA’s 90nm
•2.5mmX2.5mm
(Core: 1.5X1.5)
16
MuCCRA-3 Floor Plan
65nm CMOS Process
MuCCRA-3 After Wiring
65nm CMOS Process
今後の授業との関連
LSI設計の流れ
計算機構成同演習
ディジタル回路
コンピュータアーキテクチャ
VLSI設計論
SoC設計論
4年春 Verilogによる設計演習
レイアウト演習
大学院 Cレベル設計
システム設計 外部講師
SoC設計演習
大学院 Cレベル設計
システム設計演習 早稲田で他の
大学生と一緒にやる
システムLSI特論
大学院 電子工学科
黒田先生