Bài giảng Thiết kế logic số: Lecture 3.1 cung cấp cho người học các kiến thức: Giới thiệu FPGA, cấu trúc FPGA, các thành phần cơ bản trong FPGA. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1TS 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
Trang 2Nộ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
Trang 3FPGA 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
Trang 5Công nghệ chế tạo FPGA của Xinlinx
http://www.xilinx.com/products/silicon-devices/fpga/index.htm
Trang 6FPGA frequency scaling
6
Trang 7Hệ thống nhúng (embedded system) trên FPGA
Source: Internet 7
System on board
System on chip
(SoC)
Trang 8Kiế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
Interconnect wires
8
Trang 9CLB: Configurable logic block (Khối logic cấu hình được)
IOB: Input/Output block
Trang 10Tá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
Trang 11Hoạ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:
CLBs
• Thay đổi nội dung bộ nhớ cấu hình Thay đổi chức năng hệ thống
11
Trang 12Kiế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
Trang 13FPGA 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
segments)
Trang 14Programmable 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
14
Boundary Scan: Quét biên
Trang 15Xilinx Spartan 3E FPGA
15
DCM: Digital clock management (Khối quản lý clock)
Trang 16Configurable Logic Block (CLB) - Spartan 3E
16
Trang 17Phân bố Slices trong CLB - Spartan 3E
17
Trang 18Phâ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)
X0Y0
M = Memory
Trang 19Chi tiết về Slice trong Xilinx Spartan-3E FPGA
19
Trang 20Phân bố của LUT (Look-up Table: Bảng tra)
20
Trang 21Nguyên lý làm việc của LUT
21
Trang 2222
Trang 23Nguyên lý của Wide-multiplexers
Trang 24Chuỗi bit nhớ - Carry chain (1)
24
Trang 25Chuỗi bit nhớ - Carry chain (2)
25
Trang 26Chuỗi bit nhớ - Carry chain (3)
26
Trang 2727
Trang 28I/O Voltage Banking (Chia bank cho I/O)
Mạch I/O trên Spartan-3E đượcnhóm thành 4 I/O banks tương ứngvớ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ớicác điện áp nguồn được lựa chọnvới mỗi bank
Trang 29Ma trận chuyển mạch kết nối
(Interconnect-Switch matrix)
29
Trang 30Đường kết nối: Interconnect-lines (1)
Long lines
Hex lines
30
Trang 31Đường kết nối: Interconnect lines (2)
Double lines
Direct lines
31
Trang 32Block RAM (RAM khối)
32
Trang 33Distributed RAM (RAM phân bố)
33
Sử dụng các LUT để tạo ra RAM
Trang 34Mạch nhân (Multiplier) – (1)
Trang 35Mạch nhân (Multiplier) – (2)
Trang 36Mạch nhân (Multiplier) – (3)
Trang 38Câ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
Trang 39Câ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àocác thành phần logic khả trình trong FPGA nhằm tối ưu khốicộng
39
Trang 40Câ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
Trang 41Câ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
Trang 42Câ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
Trang 43Câ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ốichứ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
Trang 44Câ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ằmtiế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
Trang 45Extra Slides
(Slides bổ sung)
45
Trang 46Look-up Tables (2:1 MUX Example)
Configuration memory holds output of truth table
Trang 47IOB-Delay Block
47
Trang 48IOB-Delay Block
48
Trang 4949
Trang 50Clock tree
50
Trang 51Configurable 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
Trang 52LUT 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
Trang 53FPGA 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
Trang 54Boundary Scan Configuration
Daisy Chain Configuration
Multi-FPGA Emulation Framework to support NoC design and verification (UNLV NSIL)
Test Access Point