Bài giảng Thiết kế logic số - Chương 3 (Phần 1) - Hoàng Văn Phúc

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

2FPGA 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

pdf 54 trang yennguyen 3920
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Thiết kế logic số - Chương 3 (Phần 1) - Hoàng Văn Phúc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Thiết kế logic số - Chương 3 (Phần 1) - Hoàng Văn Phúc

Bài giảng Thiết kế logic số - Chương 3 (Phần 1) - Hoàng Văn Phúc
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

File đính kèm:

  • pdfbai_giang_thiet_ke_logic_so_chuong_3_phan_1_hoang_van_phuc.pdf