You are on page 1of 28

Giới thiệu về công nghệ FPGA và

một số board mạch

GV: 2/ Trần Văn Nghĩa


ĐT: 0985 295164
Email: nghia0205ktqs@gmail.com

1
LỊCH SỬ CÔNG NGHỆ CHẾ TẠO IC
• CN chế tạo đơn cực MOS
(Metal-Oxide-Silicon) và CN
lưỡng cực TTL, CMOS, BiCMOS
• Thập kỷ 60, SSI (Small Scale
Integrated) chứa vài – vài chục
cổng logic trên một chip đơn
• Thập kỷ 70, MSI chứa 20 -100 cổng: register, decoder, multiplexor,
counter, adder, comparators,…. tăng tốc độ xử lý, và kích thước giảm
• Cuối thập kỷ 70, LSI chứa 200-1000 cổng, tích hợp các bộ ALU và
Register, các bộ ĐK ngắt và vi chương trình tuần tự theo khuân dạng
bit-slice. Các khối nhớ (ROM, PROM, RAM) tăng dung lượng.
• Đầu thập kỷ 80, VLSI chứa 200.000 đến hàng triệu cổng. VLSI chế
tạo theo tiêu chuẩn và IC “trắng” – ASIC (Application Specific IC)
2
Sự phát triển của các thiết bị khả trình PLD

• PROM, EPROM và EEPROM


• PLD
• CPLD
• FPGA
• Giới thiệu về khả năng ứng dụng của FPGA và một số công
trình khoa học

3
PROM, EPROM và EEPROM
• PROM là thiết bị lập trình chỉ được một lần gồm một dãy các ô nhớ
chỉ đọc. PROM có thể thực hiện bất kỳ một hàm logic theo bảng sự
thật nào đó, bằng cách sử dụng các đường địa chỉ như các ngõ nhập
vào và ngõ xuất đựơc xác định nội dung các bít nhớ. Có hai loại:
• Mask-Programmable được lập trình bởi nhà sản xuất. Tốc độ cao vì các kết
nối bên trong được thực hiện bằng phần cứng ngay khi sản xuất.
• Field-Programmable được lập trình bởi người dùng. Các kết nối luôn cần đến
một số chuyển mạch lập trình được (cầu chì, transistor truyền…) vì vậy tốc độ
truyền chậm hơn của thiết bị nối cứng. Tuy nhiên nó có nhiều ưu điểm như:
. Các chíp Field-Programmable có thể lập trình trong thời gian ngắn.
. Các chíp Field-Programmable rẻ hơn nhiều khi sản xuất với số lượng nhỏ.

• Hai biến thể của PROM là EPROM (Eraseable Programmable Read


Only Memory) và EEPROM (Electrically Eraseable Programmable
Read Only Memory)
4
Programmable Logic Device (PLD)
• Cấu trúc PLD thông thường có cấu tạo gồm một dãy các cổng
AND được nối với một dãy các cổng OR. Có hai loại:
PAL_Programmable PLA_Programmable Logic Array
Logic Array A B C
A B C

Can NOT share X=A&B#C


X Y Y = A & B # !C
common logic X Y
Indicates ‘used’ junction
Indicates ‘unused’ junction Common logic may be shared
Indicates ‘fixed’ junction in CoolRunner-II
5
Programmable Logic Device (PLD)
• Cấu trúc CPLD (Complex
Programmable Logic Devices)
là kết quả của việc tăng mật độ
của họ SPLDs lên nhiều lần:
• XC9500: Tốc độ cao (dẫn đầu
trong nền công nghiệp) và giá
thành thấp

• CoolRunner: tiêu thụ nguồn cực


thấp, dẫn đầu trong thị trường các
thiết bị xách tay

6
Field Programmable Gate Arrays – FPGAs

Các khối logic có


khả năng định
cấu hình CLB

Các khối
Block RAMs

Block RAMs
I/O

Các khối
RAM

7
Field Programmable Gate Arrays – FPGAs

• CLB: Gồm các cổng AND 2 ngõ nhập, các bộ dồn kênh
(Multiplexer), các bảng tìm kiếm (Lock-up Table). Ngoài
ra có thể chứa các Flip-Flop để hỗ trợ cho việc thực hiện
một cách tuần tự
• Routes: Gồm các đoạn đây nối và các chuyển mạch khả
trình. Các chuyển mạch khả trình có cấu tạo khác nhau
như pass-transistor, được điều khiển bởi các cell SRAM,
các phần tử cầu chì nghịch, EPROM transistor và
EEROM transitor

8
Các công nghệ lập trình FPGA

• SRAM, anti-fuse, EPROM transistor, EEROM transistor


• Cấu hình được trong một trong hai trạng thái ON hoặc
OFF để thực hiện các kết nối lập trình được giữa các khối
lôgic của các FPGA
• Tính chất:
• Chiếm càng ít diện tích của chíp càng tốt
• Có trở kháng thấp khi ở trạng thái ON và trở kháng cao khi ở
trạng thái OFF
• Có điện dung ký sinh thấp khi kết nối các đoạn dây
• Có thể chế tạo một cách tin cậy số lượng lớn phần tử lập trình
trên một chíp

9
Các công nghệ lập trình FPGA

SRAM

• pass-transistor và pass-gate thay đổi trở kháng khi on-off, còn


multiplexer lựa chọn đầu kết nối
• Có tính bay hơi nên cần bộ nhớ lưu trữ thường trực ROM, đĩa từ
• Diện tích lớn do cần ít nhất 5 tranzistor cho mỗi RAM Cell
• Tái cấu hình ngay trên mạch rất nhanh và chế tạo bằng CMOS chuẩn
• Được sử dụng trong nhiều công ty FPGA, nhiều nhất là Xilinx
10
Các công nghệ lập trình FPGA
Anti-fuse

• Cấu trúc: Silic


n+diffusion, Oxide
và Poly-Silic

• Lập trình: Nhiệt nóng chảy điện môi tạo một liên kết dẫn điện
• Diện tích anti-fuse nhỏ nhưng cần không gian lớn cho tranzistor điện
thế cao khi cấu hình; chế tạo không theo quy trình CMOS chuẩn
• Được sử dụng trong nhiều công ty FPGA: Actel-Corp, Quick Logic
và Cross Point Solution
11
Các công nghệ lập trình FPGA
EPROM & EEPROM

• Ưu điểm: Tái cấu hình mà không cần bộ nhớ ngoài


• Nhược điểm: Không thể tái cấu hình ngay trên bo mạch; Cần nhiều
nguồn điện thế để tái cấu hình, và tiêu tốn năng lượng bởi các điện
trở của nguồn
• Được sử dụng trong các công ty FPGA: Atera-Corp và Plus Logic

12
Thị trường FPGA
Công ty Kiến trúc Kiểu khối logic CN lập trình

Xilinx Symmetrical Array Look-up Table Static RAM

Actel Hierachical-PLD PLD Block EPROM

Altera Row-based Multiplexers-Based Anti-fuse

Plessey Sea-of-gates NAND-gate Static RAM

Plus Hierachical-PLD PLD Block EPROM

AMD Hierachical-PLD PLD Block EPROM

QuyckLogic Symmetrical Array Multiplexers-Based Anti-fuse

Algotronix Sea-of-gates Multiplexers-Based Gate Static RAM

13
Các họ FPGA của Xilinx
• Các họ cũ
• XC3000, XC4000, XC5200
• Công nghệ cũ 0.5µm, 0.35µm and 0.25µm.
• Các họ thực thi cao
• Virtex (0.22µm)
• Virtex-E, Virtex-EM (0.18µm)
• Virtex-II, Virtex-II PRO (0.13µm)
• Virtex-4 (0.09µm)
• Virtex-6
• Họ giá thành thấp
• Spartan/XL – derived from XC4000
• Spartan-II – derived from Virtex
• Spartan-IIE – derived from Virtex-E
• Spartan-3/ Spartan 3E/3A/3AN
• Spartan-6

14
Sơ đồ khối FPGA của Xilinx

15
Cấu trúc của CLB - Configurable Logic Block

16
Cấu trúc thành phần của Slice

• Mỗi slice gồm hai Function generator 4 đầu vào, cờ


logic, các cổng logic số học, bộ dồn kênh rộng và hai
phần tử cất giữ (register)
17
Chức năng của LUT (Look Up Table)
x1
x2
y
x3 LUT
x1
0
x2
0
x3
0
x4
0
y
1
x4
x1
0
x2
0
x3
0
x4
0
y
0 • LUT là các phần tử
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0 chủ yếu để thực thi
0 0 1 1 1 0 0 1 1 0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
logic
0 1 1 0 1 0 1 1 0 0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
• Mỗi bảng LUT có
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0 thể thực hiện một
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1 hàm logic bốn đầu
1 1 0 1 0 1 1 0 1 1
1
1
1
1
1
1
0
1
0
0
x1 x2 x3 x4 1
1
1
1
1
1
0
1
0
0
vào bất kỳ

x1 x2

18
Thực hiện hàm 5 đầu vào sử dụng 2 LUT
LUT
A4
ROM
D
A3 RAM
A2
A1
WS DI F5
0
F5
1 X
WS DI GXOR
F4 A4 G
D
F3 A3
F2 A2 LUT
ROM
F1 A1
RAM

BX nBX
BX
1
0

• Một thầnh phần CLB có thể thực hiện một hàm bất kỳ có 5 đầu vào
• Hàm logic được phân chia giữa hai bảng LUT
• Bộ dồn kênh F5 lựa chọn LUT

19
Thực hiện hàm 5 đầu vào sử dụng 2 LUT
X5 X4 X3 X2 X1 Y
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 0 0
0 0 0 1 1 0
0 0 1 0 0 1
0 0 1 0 1 1
0 0 1 1 0 0
0 0 1 1 1 0 LUT
0 1 0 0 0 1
0 1 0 0 1 0
0 1 0 1 0 0
0 1 0 1 1 1 OUT
0 1 1 0 0 1
0 1 1 0 1 1
0 1 1 1 0 1
0 1 1 1 1 1
1 0 0 0 0 0
1 0 0 0 1 0
1 0 0 1 0 0
1 0 0 1 1 0
1 0 1 0 0 0
1 0 1 0 1 0
1 0 1 1 0 0
1 0 1 1 1 1
1 1 0 0 0 0 LUT
1 1 0 0 1 1
1 1 0 1 0 0
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 0 1 1
1 1 1 1 0 0
1 1 1 1 1 0

20
RAM phân bố
RAM16X1S
D
WE

• CLB LUT có thể định cấu hình =


WCLK
LUT A0 O
A1

như RAM phân tán A2


A3

• Một LUT bằng RAM 16x1 RAM32X1S


D
WE
• Bổ sung các cổng đơn hoặc kép WCLK
A0 O
A1
• Xếp chồng các LUT để tăng kích A2
A3

thước RAM A4

• Ghi đồng bộ
LUT
or RAM16X2S
D0
D1
WE

• Đọc đồng bộ/không đồng bộ = WCLK


A0
A1
A2
O0
O1
RAM16X1D
D
WE
• Các flip-flop phụ sử dụng để đọc A3
WCLK

or
A0 SPO
đồng bộ LUT
A1
A2
A3
DPRA0 DPO
DPRA1
DPRA2
DPRA3

21
Thanh ghi dịch
LUT
• Mỗi LUT có thể được định D Q
IN
cấu hình như thanh ghi dịch CE CE

• Vào nối tiếp, ra nối tiếp CLK

• Các địa chỉ động có thể giữ D Q


chậm tới 16 chu kỳ CE

• Có thể lập trình theo dạng


đường ống
• Xếp chồng để có chu kỳ giữ
LUT
= D
CE
Q OUT

chậm lớn hơn


• Sử dụng các flip-flops của
CLB để tăng chiều sâu
D Q
CE

DEPTH[3:0]

22
Bộ nhân nhúng 18x18 mới
• Các hàm số học nhanh
• Tối ưu để thực hiện các Module nhân và nhân
tích luỹ
18 x 18 signed multiplier
Fully combinatorial
Optional registers with CE & RST (pipeline)
Independent from adjacent block RAM

23
Bộ nhân 18 x 18
• Bộ nhân nhúng 18-bit x 18-bit
• Phép tính có dấu thực hiện với số bù 2
• Các bộ nhân được sắp xếp thành các cột

Data_A
(18 bits)

18 x 18 Output
Multiplier (36 bits)

Data_B
(18 bits)

Xem Virtex-II Data Sheet để có


thông tin mới

24
Cấu trúc của khối vào/ra cơ sở
Three-State D Q
FF Enable EC
Three-State
Clock SR Control
Set/Reset

Output D Q
FF Enable EC
Output Path
SR

Direct Input
FF Enable
Input Path
Registered Q D
Input EC
SR

25
Chức năng của IOB
• IOB đưa ra các mạch ghép nối giữa các chân đóng gói
với các CLB
• Mỗi IOB có thể làm việc như I/O một hoặc hai chiều hỗ
trợ tới 19 các chuẩn tín hiệu khác nhau, bao gồm LVDS,
BLVDS, LVPECL, LVCMOS, HSTL, SSTL, GTL…
• Các đầu ra có thể được ép lên mức trở kháng cao
• Các đầu vào và ra có tốc độ cao có khả năng hỗ trợ với
tất cả các bộ nhớ hiện đại và giao tiếp bus khác nhau

26
Tài nguyên kết nối

CLB CLB CLB

PSM PSM
Ma trận chuyển
mạch có khả năng
CLB CLB CLB lập trình

PSM PSM

CLB CLB CLB

27
Many thanks!!!

George Mason University

You might also like