Công nghệ FPGA
FPGA là một vi mạch chứa các logic cells .Các logic cells thực hiện các mạch logic và được kết nối với nhau bởi ma trận kết nối và chuyển mạch lập trình được
COÂNG NGHEÄ FPGA
I. Giôùi thieäu linh kieän logic khaû trình
II. Coâng ngheä laäp trình
III. Caáu truùc FPGA toång quaùt
IV. Caáu truùc FPGA haõng Xilinx
V. Caáu truùc FPGA haõng Altera
VI. Caáu truùc FPGA hoï Stratix (Altera)
VII. Ngoân ngöõ moâ taû phaàn cöùng Verilog vaø VHDL
VIII. Giôùi thieäu moät soá kit FPGA
IX. Moät soá hoï FPGA cuûa caùc haõng
1
X. Kết luận
I. LINH KIEÄN LOGIC KHAÛ TRÌNH
- Tröôùc ñaây phaàn lôùn caùc loaïi linh kieän ñieän töû laø coá ñònh,
khoâng laäp trình ñöôïc.
- Caùc loaïi linh kieän logic khaû trình ñôn giaûn: EPROM,
EEPROM, Flash ROM, PLD
- Ñeå thuaän tieän cho vieäc thöû nghieäm, taïo maãu, phaùt trieån öùng ng
duïng, saûn xuaát ôû quy moâ nhoû, ngöôøi ta ñaõ cheá taïo ra caùc linh
ng
kieän (thieát bò) logic khaû trình (Programmable Logic Devices),
töùc laø caùc linh kieän soá coù theå ñöôïc caáu hình laïi nhieàu laàn cho
caùc öùng duïng logic khaùc nhau
ng ng
- Goàm 2 loaïi chính: CPLD (Complex Programmable Logic
Devices) vaø FPGA (Field Programmable Gate Array)
- Caùc haõng saûn xuaát FPGA/CPLD: ALTERA, XILINX,
ATMEL, QUICKLOGIC, ACTEL,…
2
FPGA là gì?
FPGA là một vi mạch chứa các logic
cells. Các logic cells thực hiện các
mạch logic và được kết nối với nhau
bởi ma trận kết nối và chuyển mạch
lập trình được.
FPGA là tập hợp các phần tử rời rạc
được kết nối theo một cách chung.
3
II. COÂNG NGHEÄ LAÄP TRÌNH
A. NGUYEÂN LYÙ ANTIFUSE:
1. Caáu truùc Antifuse:
Antifuse: caàu chì nghòch
Difussion: khuyeách taùn
Laäp trình baèng doøng ñieän
Hình 1: Caáu truùc Antifuse (haõng Actel)
(a) Phaàn giao nhau (b) Hình veõ ñôn giaûn (c) Antifuse hoaït ñoäng nhö 1 coâng taéc
2. Öu khuyeát ñieåm:
• Kích thöôùc nhoû
• Quy trình cheá taïo khaùc vôùi coâng ngheä CMOS
4
B. NGUYEÂN LYÙ TEÁ BAØO
SRAM:
1. Caáu truùc teá baøo SRAM
Hình 2: Caáu truùc teá baøo SRAM (haõng Xilinx)
2. Öu khuyeát ñieåm
• Taùi söû duïng vaø naâng caáp thieát keá deã daøng. Caäp nhaät vaø thay ñoåi
heä thoáng baèng taùi caáu hình phaàn cöùng tröïc tieáp. Coâng ngheä
CMOS
• Döõ lieäu bò maát khi nguoàn cung caáp bò ngaét. Kích thöôùc lôùn hôn 5
antifuse
C. NGUYEÂN LYÙ UVEPROM VAØ
EEPROM
1. Nguyeân lyù hoaït ñoäng Transistor EPROM
Hình 3: Caáu truùc transistor EPROM (haõng Xilinx)
2. Öu khuyeát ñieåm
Taùi laäp trình khoâng caàn boä nhôù ngoaøi. Dieän tích nhoû
Khoâng taùi caáu hình tröïc tieáp treân maïch
6
III. CAÁU TRUÙC FPGA TOÅNG QUAÙT
NG
Caáu truùc FPGA goàm 3 phaàn: Logic Blocks (LBs), I/O Blocks
(IOB), Interconnection
7
IV. CAÁU TRUÙC FPGA HAÕNG XILINX
Caáu truùc FPGA haõng Xilinx Caáu truùc FPGA Spartan II haõng Xilinx
8
Spartan IIE
• Là một họ linh kiện FPGA của hãng Xilinx
9
Gồm các khối:
• CLB: Một CLB gồm 4-
logic-cell, Logic cell gồm
2 LUT giống nhau, mỗi
LUT gồm 4-ngõ-vào, tín
hiệu điều khiển và FF-D.
Mỗi CLB gồm hai bộ điều
khiển ngõ ra 3 trạng thái
(BUFT). Mỗi BUFT có
chân điều khiển và ngõ
vào độc lập.
10
• Đi dây: Công nghệ SRAM, General Routing Matrix (GRM)
Local routing:
I/O Routing:
General Purpose Routing:
Dedicated Routing:
Global Routing:
• IOB: tín hiệu vào qua 1 bộ đệm, tín hiệu ra qua bộ đệm 3 trạng thái,
theo các chuẩn, bộ nhớ/giao tiếp Bus. Mỗi IOB gồm 3 Flip-Flop chia
chung 1 tín hiệu Clock và các tín hiệu CE (Clock Enable), điều khiển
độc lập cho từng Flip-Flop.
11
• Khối chức năng
RAM Block: gồm nhiều khối RAM, tổ
chức thành hai cột, ở hai cạnh đứng
của linh kiện.
DLL (Delay Lock Loops): điều khiển
xung clock, nhằm loại trừ độ lệch
hoặc trì hoãn một khoảng thời gian
giữa tín hiệu Clock ngõ vào và các
xung Clock ngõ vào bên trong, giảm
tối đa sự trì hoãn, tạo sự đồng bộ và
tiết kiệm năng lượng. Mỗi DLL nối hai
mạng Clock toàn cục.
12
V. CAÁU TRUÙC FPGA HAÕNG ALTERA
Cấu trúc CPLD MAX7000 Caáu truùc FPGA haõng Altera
goàm:
Logic Element / Look up
Tables
Programmable Interconnect
Array
I/O Block
Cấu trúc MAX7000 gồm:
• Logic Array Block
• Macrocells
• Programmable
Interconnect Array
• I/O control blocks
13
MAX 7000 (t.t)
Cấu trúc
Logic Array
Block
• Một LAB bao gồm 16 Macrocells.
• Các LAB được nối với nhau qua đường kết nối chung lập trình
được Programmable Interconnect Array (PIA), các đường này sẽ
14
nối các macrocells và chân I/O.
• 36 tín hiệu ngõ vào Macrocells
MAX 7000 (t.t)
Cấu trúc Macrocells Cấu trúc I/O
• 1 Macrocell bao gồm 3 khối chức năng: Mảng logic, ma trận
chọn thành phần tích (Product Term Select Matrix) và thanh ghi
lập trình được (Programmable Register)
• Thực hiện chức năng mạch tổ hợp hoặc mạch tuần tự
• Parallel Logic Expanders cho phép nối các macrocell lại với
nhau để tạo thành chức năng logic lớn hơn và Sharable Logic Khối I/O:
Expanders mở rộng thành phần tích • Các chân I/O có thể cấu hình là ngõ vào,
ngõ ra, 2 chiều 15
• Các chân I/O đệm 3 trạng thái
Cấu trúc Flex10K
• FLEX10K bao gồm các EAB (Embedded Array Block). Mỗi EAB gồm có 2048 bit, có thể tạo RAM,
FOM, FIFO hoặc các chức năng logic tổng quát. Mỗi EAB gồm 100-600 cổng, có thể dùng độc lập
hoặc kết hợp lại với nhau. Các EAB khi là RAM có thể là 256x8, 512x4, 1024x2, 2048x1.
• Các mảng Logic bao gồm các LAB, mỗi LAB gồm 8 LE và một đường kết nối cục bộ.
• Mỗi LE gồm 1 LUT (Look-up Table) 4 ngõ vào, 1 FlipFlop lập trình được và các đường để dành để
ghép nối.
• Các Interconnection theo hàng và cột, nối các LAB với nhau
• Các IOE (I/O Element) chứa các I/O pin. Mỗi IOE gồm 1 bộ đệm 2 chiều và 1 FlipFlop có thể là ngõ
vào/ra/2 chiều, hoặc thanh ghi vào/ra.
• Ứng dụng của các EAB là tạo bộ nhớ, các bộ vi xử lý, vi điều khiển, lọc số,…
16
Caáu truùc CPLD hoï Flex10K
17
Caáu truùc CPLD hoï Flex10K (tt)
Cấu trúc Logic array block Cấu trúc LE
18
V. CAÁU TRUÙC FPGA HAÕNG ALTERA
Caáu truùc FPGA haõng Altera goàm:
Logic Element / Look up Tables
Programmable Interconnect Array
I/O Block
Caáu truùc CPLD
hoï Flex10K
19
VI. CAÁU TRUÙC FPGA HOÏ STRATIX
1. CAÁU TRUÙC HOÏ STRATIX:
- Goàm caùc LAB, Interconnection, caùc khoái boä nhôù vaø caùc khoái DSP
- Caáu truùc 2 chieàu : haøng vaø coät, duøng coâng ngheä keát noái MultiTrack
- Caùc chuoãi keát noái haøng vaø coät keát noái caùc LABs, khoái boä nhôù, IOE vaø
DSP
- Maûng logic bao goàm caùc LAB, moãi LAB goàm 10 LEs (LE laø 1 ñôn vò
logic nhoû nhaèm thöïc hieän hieäu quaû nhöõng haøm logic). Caùc LAB ñöôïc
nhoùm trong caùc haøng vaø coät xuyeân suoát trong linh kieän.
- Caùc khoái boä nhôù goàm M512 RAM, M4K RAM, M-RAM thöïc hieän
RAM, ROM, FIFO,…
- Caùc chaân I/O ( IOE) ñaët ôû cuoái haøng vaø coät cuûa LAB. Moãi IOE goàm 1
boä ñeäm 2 chieàu, 6 thanh ghi cho caùc ngoõ vaøo/ra thanh ghi vaø ñieàu khieån
- Caùc khoái DSP
- Khoái PLLs.
20