Thiết kế logic số
(Digital logic design)
TS. Hoàng Văn Phúc
Bộ môn KT Xung số - Vi xử lý
11/2014
/>
Nội dung
Giới thiệu FPGA, cấu trúc FPGA
Các thành phần cơ bản trong FPGA
Thời lượng: 06 tiết
2
FPGA là gì?
FPGA (Field-Programmable Gate Array):
- Là công nghệ IC lập trình (tái cấu hình: reconfigurable)
tiên tiến nhất hiện nay
- Field: khả năng lập trình (tái cấu hình) bởi người sử dụng,
không phụ thuộc vào dây chuyền sản xuất IC
- Ưu điểm:
+ Khả năng tái cấu hình một cách đơn giản, linh động
+ Tài nguyên lớn
+ Tốc độ/hiệu năng cao
+ Được hỗ trợ rộng rãi
Tham khảo thêm:
/> />3
Mật độ tích hợp của FPGA
IC
Intel 4004
Zilog Z80
Intel 80286
Pentium 2
Pentium 4
Core 2 Duo
Six-core Xenon 7400
Transistor count
2 300
8 500
164 000
7 500 000
42 000 000
291 000 000
1 900 000 000
Process
10 um
4 um
1.5 um
0.35 um
180 nm
65 nm
45 nm
Manufacture
Intel
Zilog
Intel
Intel
Intel
Intel
Intel
Year
1971
1976
1982
1997
2000
2006
2008
10-Core Xeon
AMD K8
Spartan 3E
Virtex 4
Virtex 5
Starix IV
StarixV
Virtex 6
Virtex 7
2 600 000 000
106 000 000
~40 000 000
1 000 000 000
1 100 000 000
2 500 000 000
3 800 000 000
~2 600 000 000
~6 800 000 000
32 nm
130 nm
90 nm
90 nm
65 nm
40 nm
28 nm
65 nm
28nm
Intel
AMD
Xilinx
Xilinx
Xilinx
Altera
Altera
Xilinx
Xilinx
2010
2003
1998
2004
2006
2008
2011
2010
2011
4
Công nghệ chế tạo FPGA của Xinlinx
/>
FPGA frequency scaling
6
Hệ thống nhúng (embedded system) trên FPGA
System on board
System on chip
(SoC)
Source: Internet
7
Kiến trúc chung của FPGA
IO_PAD
LOGIC BLOCK
LOGIC BLOCK
IO_PAD
IO_PAD
IP_COREs, RAM,
ROM...
…………………..
…………………..
LOGIC BLOCK
LOGIC BLOCK
Interconnect
wires
IO_PAD
LOGIC BLOCK
…………………..
LOGIC BLOCK
……………….
……………….
………………
IO_PAD
LOGIC BLOCK
…………………..
IO_PAD
IO_PAD
LOGIC BLOCK
…………………..
IO_PAD
IO_PAD
LOGIC BLOCK
IO_PAD
IO_PAD
IO_PAD
8
Tính khả trình của FPGA
Interconnect
CLB
IOB
Programmability
CLB: Configurable logic block (Khối logic cấu hình được)
IOB: Input/Output block
9
Tái cấu hình cho FPGA
SRAM-based:
- Hoạt động phụ thuộc nguồn điện cung cấp
- Khả năng tái cấu trúc linh hoạt
- Cho phép thực hiện các thiết kế lớn
10
Hoạt động của FPGA
Người dùng ghi giá trị vào bộ nhớ
cấu hình (configuration memory)
để xác định chức năng hệ thống:
Kết nối giữa CLBs và I/O cells
Mạch logic cần thực thi trên
CLBs
Các khối I/O
• Thay đổi nội dung bộ nhớ cấu hình Thay đổi chức năng hệ thống
• Việc thay đổi có thể thực hiện khi mạch đang chạy (run-time
configuration) Tính toán tái cấu hình (RC: reconfigurable computing)
11
Kiến trúc của Configurable Logic Blocks (CLBs)
Mỗi CLB bao gồm:
Look-up Table (LUT): Bảng tra (chứa giá trị của hàm
logic cần tạo ra ứng với các tổ hợp tín hiệu vào tương
ứng)
Mạch Carry & Control
Các phần tử nhớ
Configurable Logic Block (CLB): Khối logic khả trình (có thể tái
cấu hình)
12
FPGA Programmable Interconnection Network
Lưới kết nối dùng các chuyển mạch khả trình (programmable switches),
hay các điểm kết nối khả trình (PIP: programmable interconnect points),
do các bit nhớ của bộ nhớ cấu hình điều khiển
Một số loại PIP được sử dụng như sau:
Cross-point = connects vertical or horizontal wire segments allowing
turns
Breakpoint = connects or isolates 2 wire segments
Decoded MUX = group of 2^n cross-points connected to a single output
configured by n configuration bits
Non-decoded MUX = n wire segments each with a configuration bit (n
segments)
Compound cross-point = 6 Break-point PIPS (can isolate two isolated
signal nets)
13
Programmable Input/output Cells
Bi-directional Buffers
Programmable for inputs or outputs
Tri-state controls bi-directional operation
Pull-up/down resistors
FFs/ Latches are used to improve timing issues
Routing Resources
Connections to core of array
Programmable I/O voltage and current levels
Boundary Scan Access
Boundary Scan: Quét biên
14
Xilinx Spartan 3E FPGA
DCM: Digital clock management (Khối quản lý clock)
15
Configurable Logic Block (CLB) - Spartan 3E
16
Phân bố Slices trong CLB - Spartan 3E
17
Phân bố tài nguyên trong SLICEM và SLICEL- Spartan 3E
M = Memory
X0Y0
Có thể tạo ra các shift-register
X1Y0
L = logic
Chỉ dùng cho mạch logic (tổ hợp)
18
Chi tiết về Slice trong Xilinx Spartan-3E FPGA
19
Phân bố của LUT (Look-up Table: Bảng tra)
20
Nguyên lý làm việc của LUT
21
Wide-multiplexers
22
Nguyên lý của Wide-multiplexers
LUT0
MUX
OUT0
OUT
OUT1
LUT1
23
Chuỗi bit nhớ - Carry chain (1)
24
Chuỗi bit nhớ - Carry chain (2)
25