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
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
Tham khảo thêm: http://vi.wikipedia.org/wiki/Field-programmable_gate_array http://en.wikipedia.org/wiki/Field-programmable_gate_array
3
Mật độ tích hợp của FPGA
IC
Transistor count
Intel 4004 Zilog Z80 Intel 80286 Pentium 2 Pentium 4 Core 2 Duo Six-core Xenon 7400
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
http://www.xilinx.com/products/silicon-devices/fpga/index.htm
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
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
X1Y0
L = logic
Có thể tạo ra các shift-register
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
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
Bank 0
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
3 k n a B
1 k n a B
(for output driver and input reference voltages).
Bank 2
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.
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ố)
Sử dụng các LUT để tạo ra RAM
33
Mạch nhân (Multiplier) – (1)
34
Mạch nhân (Multiplier) – (2)
35
Mạch nhân (Multiplier) – (3)
36
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
Developed to test interconnect between chips on PCB
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
54