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