Bài giảng Thiết kế logic số - Chương 3.1: FPGA - Hoàng Văn Phúc
Câu 5: Cấu hình của FPGA khi hoạt động được lưu ở đâu?
A. Trong khối ROM
B. Trong khối Block RAM
C. Lưu trên máy tính và khi thực thi mới được nạp vào FPGA
D. Lưu trong các SRAM nằm phân tán bên trong FPGA
54 trang |
Chia sẻ: huongthu9 | Lượt xem: 503 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Thiết kế logic số - Chương 3.1: FPGA - Hoàng Văn Phúc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TS. Hoàng Văn Phúc
Bộ môn KT Xung số - Vi xử lý
11/2014
Thiết kế logic số
(Digital logic design)
https://sites.google.com/site/phucvlsi/teaching
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
3
Tham khảo thêm:
Mật độ tích hợp của FPGA
IC Transistor count Process Manufacture Year
Intel 4004 2 300 10 um Intel 1971
Zilog Z80 8 500 4 um Zilog 1976
Intel 80286 164 000 1.5 um Intel 1982
Pentium 2 7 500 000 0.35 um Intel 1997
Pentium 4 42 000 000 180 nm Intel 2000
Core 2 Duo 291 000 000 65 nm Intel 2006
Six-core Xenon 7400 1 900 000 000 45 nm Intel 2008
10-Core Xeon 2 600 000 000 32 nm Intel 2010
AMD K8 106 000 000 130 nm AMD 2003
Spartan 3E ~40 000 000 90 nm Xilinx 1998
Virtex 4 1 000 000 000 90 nm Xilinx 2004
Virtex 5 1 100 000 000 65 nm Xilinx 2006
Starix IV 2 500 000 000 40 nm Altera 2008
StarixV 3 800 000 000 28 nm Altera 2011
Virtex 6 ~2 600 000 000 65 nm Xilinx 2010
Virtex 7 ~6 800 000 000 28nm Xilinx 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
Source: Internet 7
System on board
System on chip
(SoC)
Kiến trúc chung của FPGA
LOGIC BLOCK
LOGIC BLOCK
LOGIC BLOCK..
LOGIC BLOCK LOGIC BLOCK LOGIC BLOCK..
LOGIC BLOCK LOGIC BLOCK
LOGIC BLOCK..
IO_PAD
IO_PAD
IO_PAD
IO
_
P
A
D
IO
_
P
A
D
IO_PAD IO_PAD
IO_PAD
IO
_
P
A
D
IO
_
P
A
D
IO
_
P
A
D
..
..
.
.
IO
_
P
A
D
IP_COREs, RAM,
ROM...
Interconnect
wires
8
Tính khả trình của FPGA
Programmability
CLB
Interconnect
IOB
9
CLB: Configurable logic block (Khối logic cấu hình được)
IOB: Input/Output block
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ớ
12
Configurable Logic Block (CLB): Khối logic khả trình (có thể tái
cấu hình)
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
14Boundary Scan: Quét biên
Xilinx Spartan 3E FPGA
15DCM: Digital clock management (Khối quản lý clock)
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
18
L = logic
X1Y0
Chỉ dùng cho mạch logic (tổ hợp)
Có thể tạo ra các shift-register
X0Y0M = Memory
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
M
U
X
LUT1
OUT0
OUT1
OUT
23
Chuỗi bit nhớ - Carry chain (1)
24
Chuỗi bit nhớ - Carry chain (2)
25
Chuỗi bit nhớ - Carry chain (3)
26
IOB
27
I/O Voltage Banking (Chia bank cho I/O)
Mạch I/O trên Spartan-3E được
nhóm thành 4 I/O banks tương ứng
với 4 phía của linh kiện.
Mỗi bank có các chân nguồn riêng
(for output driver and input reference
voltages).
I/O placement phải tương thích với
các điện áp nguồn được lựa chọn
với mỗi bank.
Bank 0
Bank 2
B
an
k
1
B
an
k
3
28
Ma trận chuyển mạch kết nối
(Interconnect-Switch matrix)
29
Đường kết nối: Interconnect-lines (1)
Long lines
Hex lines
30
Đường kết nối: Interconnect lines (2)
Double lines
Direct lines
31
Block RAM (RAM khối)
32
Distributed RAM (RAM phân bố)
33
Sử dụng các LUT để tạo ra RAM
34
Mạch nhân (Multiplier) – (1)
35
Mạch nhân (Multiplier) – (2)
36
Mạch nhân (Multiplier) – (3)
Trắc nghiệm
Câu 1: Ưu điểm chính của FPGA so với các IC khả trình
trước đó:
A. Tài nguyên logic lớn
B. Tốc độ làm việc cao
C. Tính khả trình linh hoạt
D. Hiệu năng làm việc cao và ứng dụng cho lớp những bài
toán phức tạp
37
Câu 2: Bản chất của khối LUT là:
A.Một khối logic đa năng có khả năng thực hiện mọi hàm logic
B. Một khối logic khả trình có khả năng thực hiện mọi hàm logic
C. Khối logic khả trình với cấu tạo cơ bản là một multiplexer
cỡ lớn có 16 đầu vào 1 đầu ra, 4 đầu vào chọn kênh
D. Khối logic khả trình có khả năng thực hiện hàm 4 đầu vào bất kỳ
38
Câu 3: Phát biểu sau nào sau đây không chính xác:
A. Chuỗi bit-nhớ trong FPGA thực chất được thiết kế theo
thuật toán cộng nối tiếp
B. Cấu tạo của chuỗi bit nhớ làm giảm thiểu tài nguyên logic
sử dụng khi tổng hợp khối cộng trên FPGA
C. Cấu tạo của chuỗi bit nhớ làm tăng tốc độ khối cộng
D. Chuỗi bit nhớ được thiết kế riêng không phụ thuộc vào
các thành phần logic khả trình trong FPGA nhằm tối ưu khối
cộng
39
Câu 4: Vai trò của bộ chọn kênh mở rộng:
A. Để thực thi được các hàm số có nhiều hơn 4 đầu vào logic
B. Để mở rộng các khối logic chức năng
C. Để chọn kênh cho các đối tượng mở rộng
D. Để mở rộng khối BLOCK RAM
40
Câu 5: Cấu hình của FPGA khi hoạt động được lưu ở đâu?
A. Trong khối ROM
B. Trong khối Block RAM
C. Lưu trên máy tính và khi thực thi mới được nạp vào FPGA
D. Lưu trong các SRAM nằm phân tán bên trong FPGA
41
Câu 6: Vai trò của Block RAM trong FPGA:
A. Sử dụng trong các thiết kế đòi hỏi dung lượng khối nhớ lớn
B. Sử dụng như các khối đệm cho quá trình cộng nhân
thường gặp trong các bài toán DSP
C. Sử dụng trong các thiết kế đòi hỏi sự linh động trong cấu
trúc của khối RAM
D. Sử dụng trong các khối nhớ đòi hỏi tốc độ làm việc với tốc
độ cao
42
Câu 7: Tại sao phải sử dụng nhiều dạng tài nguyên kết nối
khác nhau?
A. Để linh động trong tổ chức nối các khối thiết kế con với
nhau
B. Để tối ưu thiết kế nhất có thể khi thực hiện kết nối các khối
chức năng
C. Để tiết kiệm tài nguyên logic
D. Để đáp ứng các đặc thù khác nhau của các dạng tín hiệu
khác nhau trong thiết kế số
43
Câu 8: Phát biểu sau nào sau đây không chính xác:
A. Khối nhân số nguyên được đặt cạnh các Block RAM nhằm
tiết kiệm không gian bên trong FPGA
B. Số lượng Block RAM trong Spartan 3E vào cỡ vài chục khối
C. Các đường kết nối ba là các đường kết nối một chiều
D. Tài nguyên kết nối trong FPGA gồm các ma trận chuyển và
các dạng đường kết nối khác nhau.
44
Extra Slides
(Slides bổ sung)
45
Look-up Tables (2:1 MUX Example)
Configuration memory holds output of truth table
entries
Internal signals connect to control signals of MUXs to
select a values of the truth tables for any given input
signals
46
IOB-Delay Block
47
IOB-Delay Block
48
IOB-DDR
49
Clock tree
50
Configurable Logic Blocks (CLB)
A CLB can contain
several slices, which
make up a single CLB.
Xilinx Virtex-5 FPGAs
(right) have two slices:
SLICEL (logic) and
SLICEM (memory).
In addition to the basic
CLB architecture, the
Virtex-5 contains wide-
function MUXs which can
implement:
- 4:1 MUX using 1 LUT
- 8:1 MUX using 2 LUTs
- 16:1 MUX using 4 LUTs
51
LUT Based RAM
Normal LUT mode performs
read operation
Address decoders with WE
generates clock signals to
latches for write operation
Smaller RAMs can be
combined to create larger
RAMs
52
FPGA Configuration Interfaces
Master (Serial or Parallel)
FPGA retrieves configuration from ROM at initial power-up
Slave (Serial or Parallel)
FPGA configured by an external source (i.e microprocessor/ other FPGA)
Used for dynamic partial re-configuration
Boundary Scan
4-wire IEEE standard serial interface used for testing
Write and read access to configuration memory
Interfaces to FPGA core internal routing network
53
Boundary Scan Configuration
Daisy Chain Configuration
Multi-FPGA Emulation Framework to support
NoC design and verification (UNLV NSIL)
Test Access Point
(TAP) controller
composed of 16
state FSM
Developed to test interconnect between chips
on PCB
54
Các file đính kèm theo tài liệu này:
- bai_giang_thiet_ke_logic_so_chuong_3_1_fpga_hoang_van_phuc.pdf