Đề tài 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ạchlogic 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
Bạn đang xem trước 20 trang tài liệu Đề tài Công nghệ FPGA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1COÂ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
X. Kết luận
2I. 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
duïïng, saûûn xuaáát ôûû quy moââ nhoûû, ngöôøøi ta ñaõõ cheáá taïïo ra caùùc linh
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
- 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,…
3FPGA 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.
4A. NGUYEÂN LYÂ ÙÙ ANTIFUSE:
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
Antifuse: caàu chì nghòch
Difussion: khuyeách taùn
Laäp trình baèng doøng ñieän
1. Caáu truùc Antifuse:
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
II. COÂNG NGHEÄ LAÄP TRÌNH
5B. NGUYEÂN LYÂ ÙÙ TEÁÁ BAØØO
SRAM:
Hình 2: Caáu truùc teá baøo SRAM (haõng Xilinx)
1. Caáu truùc teá baøo SRAM
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
antifuse
6C. NGUYEÂN LYÂ ÙÙ UVEPROM VAØØ
EEPROM
Hình 3: Caáu truùc transistor EPROM (haõng Xilinx)
1. Nguyeân lyù hoaït ñoäng Transistor EPROM
2. Öu khuyeát ñieåm
9 Taùi laäp trình khoâng caàn boä nhôù ngoaøi. Dieän tích nhoû
9 Khoâng taùi caáu hình tröïc tieáp treân maïch
7III. CAÁÁU TRUÙÙC FPGA TOÅÅNG QUAÙÙT
Caáu truùc FPGA goàm 3 phaàn: Logic Blocks (LBs), I/O Blocks
(IOB), Interconnection
8IV. 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
9Spartan IIE
• Là một họ linh kiện FPGA của hãng Xilinx
10
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.
11
• Đ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.
12
• 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.
13
Cấu trúc CPLD MAX7000
Cấu trúc MAX7000 gồm:
• Logic Array Block
• Macrocells
• Programmable
Interconnect Array
• I/O control blocks
V. CAÁÁU TRUÙÙC FPGA HAÕNG ALTERAÕ
Caáu truùc FPGA haõng Altera
goàm:
9 Logic Element / Look up
Tables
9 Programmable Interconnect
Array
9 I/O Block
14
MAX 7000 (t.t)
• 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ẽ
nối các macrocells và chân I/O.
• 36 tín hiệu ngõ vào Macrocells
Cấu trúc
Logic Array
Block
15
MAX 7000 (t.t)
Khối I/O:
• Các chân I/O có thể cấu hình là ngõ vào,
ngõ ra, 2 chiều
• Các chân I/O đệm 3 trạng thái
• 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
Expanders mở rộng thành phần tích
Cấu trúc Macrocells Cấu trúc I/O
16
• 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ố,…
Cấu trúc Flex10K
17
Caáu truùc CPLD hoï Flex10K
18
Caááu truùùc CPLD hoïï Flex10K (tt)
Cấu trúc Logic array block Cấu trúc LE
19
V. CAÁÁU TRUÙÙC FPGA HAÕNG ALTERAÕ
Caáu truùc FPGA haõng Altera goàm:
9 Logic Element / Look up Tables
9 Programmable Interconnect Array
9 I/O Block
Caáu truùc CPLD
hoï Flex10K
20
VI. CAÁÁU TRUÙÙC FPGA 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.
1. CAÁÁU TRUÙÙC HOÏÏ STRATIX:
21Caáu truùc FPGA hoï Stratix (haõng Altera)
22Caáu truùc LAB hoï Stratix (haõng Altera)
23Caáu truùc LUT hoï Stratix (haõng Altera)
24
2. TAØØI NGUYEÂN KEÂ ÁÁT NOÁÁI HOÏÏ STRATIX:
- Keát noái giöõa caùc LE, boä nhôù, DSP vaø chaân I/O
- Keát noái haøng goàm:
+ Keát noái tröïc tieáp giöõa caùc LAB vaø caùc khoái keá caän
+ Keát noái R4, Keát noái R8, Keát noái haøng R24 xuyeân suoát chieàu daøi linh kieän
- Keát noái coät goàm:
+ Keát noái chuoãi LUT vaø chuoãi thanh ghi trong LAB
+ Keát noái C4, Keát noái C8, Keát noái coät C16 xuyeân suoát chieàu doïc linh kieän
- Keát noái haøng keát noái vôùi keát noái coät.
25
Caáu truùc IOE hoï Stratix (haõng Altera)
26
3. CAÙÙC KHOÁÁI CHÖÙÙC NAÊNG HOÊ ÏÏ STRATIX:
1. Khoái boä nhôù:
+ RAM 2-port ñôn giaûn, RAM 1 port, FIFO, ROM, thanh ghi dòch.
Khoái boä nhôù goàm 3 khoái RAM: M512, M4K, M-RAM
2. Khoái PLLs: (Phase Lock Loop)
+ Caáu truùc phaân caáp xung Clock
+ Keát hôïp caùc nguoàn taøi nguyeân xung Clock vôùi toång hôïp taàn soá
chính xaùc ñöôïc cung caáp bôûi caùc PLL nhanh vaø tieân tieán taïo thaønh
giaûi phaùp quaûn lyù xung Clock hoaøn chænh
3. Khoái DSP: (Digital Signal Processing)
+ Duøng trong loïc FIR, loïc FIR phöùc taïp, loïc IIR, FFT, bieán ñoåi
Cosin rôøi raïc, töông quan
+ Khoái DSP goàm caùc thaønh phaàn sau:
o Khoái nhaân
o Khoái coäng/ngoõ ra
27Caáu truùc khoái boä nhôù hoï Stratix (haõng Altera)
28Caáu truùc MAC - DSP hoï Stratix (haõng Altera)
29Caáu truùc PLLs hoï Stratix (haõng Altera)
30
VII. NGOÂN NGÖÕ MOÂ TAÛ PHAÀN CÖÙNG
VERILOG HDL VAØ VHDL
+ Coù raát nhieàu ngoân ngöõ moâ taû phaàn cöùng ñöôïc phaùt trieån nhaèm muïc ñích moâ
phoûng, taïo maãu, thieát keá, kieåm tra vaø laøm taøi lieäu cho caùc heä thoáng soá.
+ Tuy nhieân ngaøy nay coù hai ngoân ngöõ ñöôïc söû duïng raát phoå bieán, ñoù laø :
Verilog HDL vaø VHDL.
+ VHDL (Very High Speed Integrated Circuits Hardware Description
Language) laø ngoân ngöõ moâ taû phaàn cöùng ñöôïc coâng nhaän tieâu chuaån IEEE töø
naêm 1987. Noù laø ngoân ngöõ coù ñaày ñuû söùc maïnh cho vieäc thieát keá vaø moâ taû caùc
heä thoáng soá ngaøy nay. Tuy nhieân VHDL raát gioáng vôùi ngoân ngöõ Ada, moät
ngoân ngöõ khoâng phoå bieán. Ñaëc ñieåm naøy laøm cho VHDL khoù hoïc hôn.
+ Verilog HDL ñöôïc chuaån hoùa töø naêm 1995 vaø raát gioáng ngoân ngöõ C. Chính
ñaëc ñieåm naøy maø noù ñöôïc söû duïng khaù roäng raõi ngaøy nay. Taïi Vieät Nam, coâng
ty Renesas cuõng söû duïng ngoân ngöõ naøy trong vieäc thieát keá.
31
VIII. GIÔÙI THIEÄU MOÄT SOÁ KIT FPGA
Kit Stratix EP1S25 (Altera) cuûa
haõng Parallax
+ 144 chaân I/O
+ Boä dao ñoäng xung clock 50MHz
+ Nguoàn 3.3V cho I/O vaø 1.5V cho
loõi FPGA
+ Coång noái tieáp chuaån 9 chaân
+ Caùc chaân noái JTAG
www.parallax.com
32
Kit UP2 cuûa Altera
+ Chip EPM7128S hoï Max7000
+ Chip EPF10K70 hoï FLEX10K
+ Hoã trôï 2 led 7 ñoaïn
+ 16 led
+ JTAG chain, caùp taûi
ByteBlaster II
+ Coång giao tieáp P/S2, VGA
+ Boä taïo dao ñoäng 25.17 MHz
Ngoaøi ra coøn coù Kit UP3 (Altera)
www.altera.com
33
Kit Digilab 2E cuûa Digilent
+ Spartan 2E XC2S200E cuûa Xilinx
+ 143 chaân I/O ngöôøi duøng
+ Nguoàn ñieàu chænh 1,5A (2,5 vaø
3,3V)
+ Boä dao ñoäng 50MHz
+ Coång JTAG
+ Coång RS-232
+ Moät led vaø moät nuùt baám
www.digilentinc.com
34
Virtex-4 ML401 Development Board
Linh kieään: XC4VLX25-FF668-10C
Taààn soáá: 100 MHz Oscillator•
Boää nhôùù: 64 MB DDR SDRAM,
8Mb ZBT SRAM, 64 Mb Flash, 4
kb I2C EEPROM
Hieåån thò: 16x2 Character LCD
Caùùc giao tieááp: 4 SMA (Differential
Clocks), 2 PS/2 (Keyboard/Mouse),
4 Audio Jacks (Line In/Out,
Microphone, Head Phone), RS-232
Serial Port, 3 USB Ports, JTAG,
VGA
www.nuhorizons.com
35
PHAÀN MEÀM SÖÛ DUÏNG
TRONG THIEÁT KEÁ FPGA
Xilinx: Xilinx ISE Foundation 7.1
Altera: Maxplus II, Quartus II (Taøøi lieääu söûû duïïng
Maxplus II ñaõõ ñöôïïc ñaêngê trong phaààn tin CMS Dieãnã
ñaøøn ñieään töûû), www.altera.com
Caùùc phaààn meààm hoãã trôïï FPGA khoângâ phuïï thuoääc haõngõ
saûûn xuaáát nhö FPGA Advantage (Mentor Graphics):
Leonardo Spectrum, ModelSim,…
Matlab, Labview,… www.mentor.com
36
Giao dieän cuûa chöông trình Quartus II
Chöùc naêng:
Soaïn thaûo thieát keá:
Verilog HDL, VHDL,
AHDL; Graphic Mode
Bieân dòch
Toång hôïp
Toái öu hoùa
Phaân tích ñònh thôøi
Moâ phoûng daïng soùng
Naïp chöông trình
Chöông trình Quartus II
37
XI. MOÄT SOÁ HOÏ FPGA CUÛA CAÙC HAÕNG
•+ Altera : goàm caùc hoï Max3000, Max7000, MAXII, Flex10K, Cyclone,
APEX, ACEX, Mercury, Stratix, Stratix GX, Stratix II (coù theå tham khaûo
taïi www.altera.com).
•
•+ Xilinx : XC3000, XC4000, XC9500, Spartan, Spartan2, Spartan3, Qpro
Virtex, Virtex, VirtexII (coù theå tham khaûo taïi www.xilinx.com).
•+ QuickLogic : Eclipse, EclipsePlus, QuickRam, pASIC1, pASIC2,
pASIC3 (coù theå tham khaûo taïi www.quicklogic.com).
•+ Atmel : AT6000, AT40K (coù theå tham khaûo taïi www.atmel.com).
38
X. KẾT LUẬN
1. ỨNG DỤNG
+ Thieát keá maïch logic soá hieän ñaïi theo nhu caàu cuûa ngöôøi thieát keá
+ Taïo maãu tröôùc khi cheá taïo vi maïch
+ Thieát keá caùc boä vi xöû lyù, vi ñieàu khieån
+ Xöû lyù tín hieäu soá
+ Xöû lyù aûnh soá, Video
+ Xöû lyù aâm thanh
+ Trong truyeàn thoâng: caùc chuaån Ethernet, maõ Turbo, maõ Viterbi, Reed –
Solomon,…
+ Caùc giao tieáp PCI, USB
+ Ñieàu khieån töï ñoäng
+ Vaø caùc öùng duïng khaùc …
39
2. QUY TRÌNH THIEÁT KEÁ FPGA
Ngoõ vaøo thieát keá
(Schematics,
Verilog, VHDL)
Moâ phoûng
haønh vi
Toång hôïp
thieát keá
Thöïc hieän thieát keá
(FPGA Place and
Route)
Moâ phoûng
Caáu hình FPGA
(Taûi thieát keá
xuoáng FPGA)
40
Ngoaøøi ra coøøn coùù theåå thieáát keáá treân FPGA, keâ áát hôïïp
phaààn meààm cuûûa haõng saõ ûûn xuaáát vaøø phaààn meààm
Labview
Sô ñoà thieát keá FPGA söû duïng phaàn meàm
Labview cuûa haõng National Instrumetns
Öu ñieåm:
Söû duïng caùc thö vieän saün coù
Tröïc quan vaø deã söû duïng
Ruùt ngaén thôøi gian thieát keá
Ñôn giaûn hoùa quy trình thieát keá
41
Thieáát keáá treân FPGA, keâ áát hôïïp phaààn meààm cuûûa
haõng saõ ûûn xuaáát vôùùi phaààn meààm Matlab
Sô ñoà thieát keá FPGA keát hôïp phaàn meàm Quartus
II cuûa haõng Altera vaø Matlab cuûa Mathworks
42
3. ÖU VAØ KHUYEÁT ÑIEÅM FPGA
Öu ñieåm :
+ Thôøi gian thöïc hieän thieát keá nhanh
+ Coù theå thay ñoåi thieát keá deã daøng
+ Chi phí thaáp
Khuyeát ñieåm :
+ Toác ñoä chaäm
+ Chæ hieäu quaû trong caùc maïch logic soá
+ Khoâng theå thay theá caùc linh kieän ASIC
Tuy nhieân ngaøy nay khuyeát ñieåm naøy ñang ñöôïc khaéc phuïc nhôø söï tieán boä
cuûa coâng ngheä. Do ñoù FPGA ngaøy caøng ñöôïc söû duïng phoå bieán vaø roäng raõi
trong moïi lónh vöïc cuûa ñôøi soáng.
43
So sánh FPGA và CPLD
NhỏVừa và lớnỨng dụng
Mảng AND-OR,
PAL-like
LUTCấu trúc logic
EPROM, EEPROMSRAMCông nghệ lập trình
Đơn giản hơnPhức tạpKết nối
Logic cell nằm giữa
các nguồn tài
nguyên
Logic cell nằm
ngoài, chia chung
nguồn tài nguyên
Khối Logic
CPLDFPGA
44
• Field-Programmable Device (FPD) — a general term that refers to any type of
integrated circuit used for implementing digital hardware, where the chip can be
configured by the end user to realize different designs. Programming of such a device
often involves placing the chip into a special programming unit, but some chips can
also be configured “in-system”. Another name for FPDs is programmable logic
devices (PLDs); although PLDs encompass the same types of chips as FPDs, we
prefer the term FPD because historically the word PLD has referred to relatively
simple types of devices.
• SPLD — refers to any type of Simple PLD, usually either a PLA or PAL
• CPLD — a more Complex PLD that consists of an arrangement of multiple SPLD-like
blocks on a single chip. Alternative names (that will not be used in this paper)
sometimes adopted for this style of chip are Enhanced PLD (EPLD), Super PAL, Mega
PAL, and others.
• FPGA — a Field-Programmable Gate Array is an FPD featuring a general structure
that allows very high logic capacity. Whereas CPLDs feature logic resources with a
wide number of inputs (AND planes), FPGAs offer more narrow logic resources.
FPGAs also offer a higher ratio of flip-flops to logic resources than do CPLDs.
45
LÔØI CAÛM ÔN
Xin chaân thaønh caùm ôn caùc baïn ñaõ ñeán tham
döï lôùp hoïc naøy. Raát mong nhaän ñöôïc caùc yù
kieán ñoùng goùp cuûa caùc baïn.