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