Giới thiệu chung về công nghệ IC khả trình • Các bước thiết kế VLSI... Giới thiệu chung về công nghệ IC khả trình • Các bước thiết kế VLSI 5.. Giới thiệu chung về công nghệ IC khả trình
Trang 1Chuyên đề Thiết kế số với vi mạch logic khả trình FPGA
Giảng viên: TS Huỳnh Việt Thắng
Trang 2Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
2 Thiết kế dùng IC khả trình của Xilinx
Trang 3Tài liệu tham khảo
Tham khảo chính:
1) Slide bài giảng (Lưu hành nội bộ)
Có thể đọc thêm:
2) Học viện KTQS, Thiết kế logic số, Tài liệu lưu hành nội bộ, 2011
3) Tống Văn On, Nguyên lý mạch tích hợp: Tập 2 - Lập trình ASIC, NXB Lao động xã hội, 2005 4) Peter J Ashenden, The VHDL Cookbook
5) Douglas L Perry, VHDL Programming by Example, 4 th Edition (2002)
6) Nguyễn Quốc Tuấn, Giáo trình Ngôn ngữ VHDL để thiết kế vi mạch, NXB Đại học quốc gia
TP.HCM, 2002
7) Tống Văn On, Thiết kế mạch số với VHDL và Verilog (2 tập), NXB Lao động xã hội, 2007
8) Pong P Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and
Salability
9) Pong P Chu, FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version, 2008
10) Pong P Chu, FPGA Prototyping by Verilog Examples: Xilinx Spartan-3 Version, 2008
11) Huỳnh Việt Thắng, Seminar Ứng dụng FPGA trong thực thi các ứng dụng xử lý tín hiệu và học
máy, Khoa ĐTVT, 2016
Trang 4Lời cảm ơn
Trân trọng cảm ơn PGS.TS Phạm Ngọc Nam, Viện Điện Tử Viễn Thông, Trường Đại học Bách khoa Hà Nội đã cho phép tham khảo và sử dụng bài giảng của Thầy!
Trang 5About your lecturer
• Bộ môn Kỹ thuật Điện Tử, khoa ĐTVT, Đại học Bách Khoa Đà Nẵng
Office: Khu C, ĐHBK ĐN; Email: thanghv@dut.udn.vn; (thang143@gmail.com)
• Research Interests
Reconfigurable computing (computing with FPGA)
Machine learning (Neural Networks) & Applications
Edge Computing on Embedded Devices
• Education
06/2003: Kỹ sư, Khoa ĐTVT, ĐHBK – ĐHĐN (1998-2003)
12/2007: Thạc sĩ kỹ thuật chuyên ngành Điện Tử, ĐHBK – ĐHĐN
Thesis: “Implementation of a Network-on-Chip on FPGA”, Thực hiện Network-on-Chip trên nền FPGA
07/2012: Tiến sĩ kỹ thuật chuyên ngành Điện-Điện tử, ĐH Kỹ thuật Graz (TU Graz), Cộng hòa Áo (Austria)
Thesis: “Efficient floating-point Implementation of Signal Processing Algorithms on
Trang 6Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
2 Thiết kế dùng IC khả trình của Xilinx
3 Cơ sở về thiết kế mạch số và hệ thống số
4 Ngôn ngữ mô tả phần cứng VHDL
5 Các bài thực hành trên kit FPGA của Xilinx
6 Giới thiệu một vài ứng dụng trong lĩnh vực tính toán cấu
hình lại (Reconfigurable Computing)
7 Các vấn đề khác
Trang 7Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
• Các bước thiết kế VLSI
Trang 8Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
• Các bước thiết kế VLSI
5 Giới thiệu một vài ứng dụng trong lĩnh vực tính toán cấu
hình lại (Reconfigurable Computing)
Trang 9Đặt vấn đề
• Ví dụ: Thiết kế bộ chạy đĩa DVD
Trang 10Các bước thiết kế VLSI (1/9)
Trang 11Các bước thiết kế VLSI (2/9)
System Specification – Xác định kích thước, tốc độ, công suất và các chức năng của hệ thống
Architectural Design – Xác định kiến trúc của hệ thống: ví dụ: RISC/CISC, số lượng ALU, kích thước bộ nhớ cache Việc xác định kiến trúc sẽ giúp cho việc ước lượng tốc độ
xử lý của hệ thống, kích thước chip, công suất tiêu thụ …
Trang 12Các bước thiết kế VLSI (3/9)
Functional Design – Xác định các khối chức năng chính
và kết nối giữa các khối Chưa cần xác định chi tiết cáchthức thực hiện các khối này
Trang 13Các bước thiết kế VLSI (4/9)
Logic Design – Thiết kế logic, ví dụ: thiết kế mạch logic
tổ hợp, logic dãy, ALU, khối điều khiển… Kết quả củabước thiết kế này là bản mô tả RTL (Register TransferLevel) RTL được biểu diễn bằng ngôn ngữ mô tả phầncứng HDL (Hardware Description Language), e.g.,VHDL and Verilog
X = (AB+CD)(E+F)
Trang 14Các bước thiết kế VLSI (5/9)
Circuit Design – Thiết kế mạch bao gồm các cổng logic,transistors và các kết nối Kết quả thu được từ bước thiết
kế này là một netlist
Trang 15Các bước thiết kế VLSI (6/9)
• Net list:
net1: top.in1 i1.in
net2: i1.out xxx.B
topin1: top.n1 xxx.xin1
topin2: top.n2 xxx.xin2
botin1: top.n3 xxx.xin3
net3: xxx.out i2.in
outnet: i2.out top.out
Trang 16Các bước thiết kế VLSI (7/9)
top
Component hierarchy
Trang 17Các bước thiết kế VLSI (8/9)
Physical Design – Chuyển từ netlist sang dạng biểu diễnhình học Cách biểu diễn hình học này được gọi là layout
Trang 18Các bước thiết kế VLSI (9/9)
Fabrication – Bao gồm các quá trình như quang khắc,đánh bóng, khuyếch tán …để chế tạo ra chip (IC)
Packaging – Sắp xếp các IC trên một board mạch in PCB(Printed Circuit Board) hoặc trên một module đa chípMCM (Multi-Chip Module)
Trang 19Các bước thiết kế VLSI
System Specification
Architectural Specification
Architectural
Design
Functional Design
Logic Design
Physical Design
Fabrication
Packaging
Circuit Design
or Logic Synthesis
Trang 20Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
• Các bước thiết kế VLSI
5 Giới thiệu một vài ứng dụng trong lĩnh vực tính toán cấu
hình lại (Reconfigurable Computing)
Trang 21Các bước thiết kế vật lý (1/6)
Circuit Partitioning Floorplanning & Placement
Routing Layout Compaction
Trang 23Các bước thiết kế vật lý (3/6)
Floorplanning – Thiết lập kế hoạch bố trí các module trên layout một cách hợp lý khi mà hình dạng, kích thước, ví trí chân của các module chưa được cố định
Trang 24Các bước thiết kế vật lý (4/6)
Placement – Bố trí cố định các module (module có thể làcổng logic, các khối chuẩn standard cells…) khi đã biếtcác thông số chi tiết của các module sao cho trễ tín hiệu,diện tích và số lượng kết nối nhỏ nhất
v
Feedthrough Standard cell type 1 Standard cell type 2
Trang 25Các bước thiết kế vật lý (5/6)
Routing – Kết nối giữa các module trên cơ sở bảo đảm vềtrễ, khoảng cách giữa các đường dây
Feedthrough
Trang 26Các bước thiết kế vật lý (6/6)
Compaction – Bước này tối thiểu hoá diện tích của vùnglayout để giảm kích thước chip
Verification – Kiểm tra layout bao gồm kiểm tra luật thiết
kế DRC (Design Rule Checking), tạo ngược lại mạch điện
từ layout (circuit extraction) để so sánh với netlist ban đầu,kiểm tra hoạt động (performance verification ) bằng cáchlấy thông tin hình học để tính toán các giá trị điện trở, điệndung, trễ…
Trang 27VLSI design flow
Trang 28Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
• Các bước thiết kế VLSI
5 Giới thiệu một vài ứng dụng trong lĩnh vực tính toán cấu
hình lại (Reconfigurable Computing)
Trang 29Các công nghệ dùng trong thiết kế
• Full-Custom ASICs (Application specific ICs)
Các khối logic (logic cells) và các lớp mặt nạ không được thiết kế sẵn
mà do người thiết kế thiết kế
• Semicustom ASICs
Các khối logic ( logic cells) được thiết kế sẵn (được định nghĩa trong thư viện cell) và các lớp mặt nạ được thiết kế bởi người thiết kế
2 loại: Standard-cell based and Gate-array-based ASICs
• Các linh kiện logic khả trình (Programmable Logic Devices)
Tất cả các khối logic được thiết kế sẵn và không cần phải thiết kế lớp mặt nạ nào
Phân loại:
Trang 30Các công nghệ dùng trong thiết kế
Full-Custom ASIC
• Full-Custom ASICs
Đối với mỗi một chip ASIC, người thiết kế phải thiết kế toàn bộ các khối logic, mạch điện, layout
Full-custom ICs là loại đắt nhất để chế tạo và thiết kế
Thời gian chế tạo 1 IC (không kể thời gian thiết kế) là 8 tuần
Dùng khi:
Không có các khối logic có sẵn trong thư viện
Các khối logic hiện có không đủ nhanh
Các khối logic hiện có có kích thước lớn
Các khối logic hiện có tiêu thụ công suất lớn
Chíp ASIC cần thiết kế quá đặc biệt dẫn tới nhiều mạch phải được thiết
kế một cách tuỳ biến
Trang 31Các công nghệ dùng trong thiết kế
Full-Custom ASIC
Trang 32Các công nghệ dùng trong thiết kế
Cell-based ASIC
• Cell-Based ASIC (CBIC) sử dụng các khối logic đượcthiết kế sẵn (cổng AND, OR gates, multiplexers, flip-flops, )
Vùng khối logic chuẩn bao gồm các hàng khối logic chuẩn
Vùng khối logic chuẩn có thể kết hợp với các khối khác lớn hơn cũng được thiết kế sẵn như vi điều khiển, vi xử lý, các khối này được gọi là megacell
Trang 33Các công nghệ dùng trong thiết kế
Cell-based ASIC
• Đặc điểm:
Các khối tuỳ biến có thể được nhúng vào chip ASIC Người thiết
kế ASIC chỉ phải định nghĩa vị trí đặt các khối logic chuẩn và kết nối giữa các khối
Các khối chuẩn có thể được đặt bất kỳ chỗ nào trên phiến silicon nên tất cả các lớp mặt nạ của CBIC có thể được tự do thiết kế
Thời gian chế tạo là 8 tuần
Trang 34Các công nghệ dùng trong thiết kế
• Thời gian chế tạo từ vài ngày đến 2 tuần
• Giá thành rẻ hơn các loại ASIC khác
Trang 35Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
• Các bước thiết kế VLSI
Trang 37Công nghệ IC khả trình Programmable logic array
• PLA
And planeAnd plane
Or plane
Input
Output Programmable
Trang 38Công nghệ IC khả trình Programmable logic array
• PLA
Trang 39Công nghệ IC khả trình Programmable Array Logic
• PAL
And planeAnd plane
Or plane
Input
Output Programmable
Fixed
Trang 40Công nghệ IC khả trình Programmable Array Logic
Trang 41Công nghệ IC khả trình
Complex Programmable Logic Devices
• CPLD
Trang 43Vcc Vcc Vcc Vcc FuseAfter manufacturing
Trang 442-to-4 Mux
2 LSB
Vcc Vcc Vcc VccAfter programming
Trang 45Công nghệ IC khả trình Field-programmable Gate Array
• FPGA: XC40xx
CLB CLB
Routing via switching matrices
I/O
Trang 46Thực hiện hàm tổ hợp bằng tra bảng
Trang 47Công nghệ IC khả trình Field-programmable Gate Array
• Cấu tạo của một CLB (Configurable Logic Block)
16x1 LUT:
Bool-function
of 4 variables
16x1 LUT:
Bool-function
of 4 variables
FF
G
G GQ
FF
F
F FQ
Trang 48Công nghệ IC khả trình Field-programmable Gate Array
• FPGA: Switching Matrix SM
Pass TOR
Trang 49Công nghệ IC khả trình Field-programmable Gate Array
Trang 50Công nghệ IC khả trình Field-programmable Gate Array
Trang 51Công nghệ IC khả trình Field-programmable Gate Array
• Hãng cung cấp FPGA hàng đầu thế giới
Công ty Xilinx: http://www.xilinx.com/
Công ty Altera: http://www.altera.com/
Công ty Lattice Semiconductor: http://www.latticesemi.com/
Công ty Actel: http://www.actel.com/
Công ty Crypress: http://www.cypress.com/
Công ty Atmel: http://www.atmel.com/
Công ty QuickLogic: http://www.quicklogic.com/
Trang 52Câu hỏi thảo luận 1
• Phân biệt các công nghệ ASIC khác nhau?
• Phân biệt: PLA, CPLD và FPGA?
• Cấu trúc khối CLB trong FPGA của Xilinx?
• Cấu trúc của khối LUT (Look-Up Table)
• So sánh, phân biệt các nền tảng phần cứng:
Mạch số hay hệ thống số được thực hiện bằng các IC số
FPGA (field programmable gate array)
Vi xử lý (Microprocessor) / Vi điều khiển (Microcontroller)
Trang 53Nhắc lại: phân loại ASIC
Trang 54Công nghệ IC khả trình
Ưu điểm
Trang 55Công nghệ IC khả trình
Ưu điểm
• FPGA vs Custom ASIC
FPGAs are more flexible
FPGAs are more cost effective for small quantities
ASICs have higher densities
• FPGA vs Parallel Computer
FPGAs are more cost effective
FPGAs are smaller
Parallel Computers are easier to program
Trang 56FPGA vs ASIC (1)
56
Nguồn: http://www.xilinx.com/fpga/asic.htm
Trang 57Total cost
ASIC 13µ
FPGA 13µ FPGA 09µASIC 09µ
ASIC Design
Cost is much
higher
(and increasing)!!
FPGA vs ASIC Cost
ASIC: High volumes needed to recover design cost
ASIC cost/part
is lower
Trang 58Khi nào nên dùng FPGA?
• IC tùy biến theo yêu cầu (custom IC, custom IP core)
thiết kế IC với những chức năng chuyên biệt cần thiết
• Thử nghiệm ý tưởng, phát triển sản phẩm mẫu (prototyping)
giảm chi phí thiết kế và chế tạo trước khi thực hiện trên ASIC
• Tính toán hiệu năng cao (High Performance Computing)
Hardware Accelerator (tăng tốc phần cứng) with high parallelism
• Thực thi các thuật toán DSP tốc độ cao
• Thực hiện hệ thống nhúng với các tính năng đặc biệt
• Ứng dụng phải cấu hình lại phần cứng khi chạy (runtime)
• v v…
58
Trang 59Nội dung môn học
1 Giới thiệu chung về công nghệ IC khả trình
• Các bước thiết kế VLSI
Trang 60• Digital Video Technologies
• Industrial/Scientific & Medical
• Test & Measurement
• Wired Communications
• Wireless Communications
Trang 61Ứng dụng của công nghệ IC khả
trình
Trang 62Ứng dụng của công nghệ IC khả
trình
Trang 63Ứng dụng của công nghệ IC khả
trình
Trang 64Ứng dụng của công nghệ IC khả
trình
Trang 65Ứng dụng của công nghệ IC khả
trình
Trang 66Ứng dụng của công nghệ IC khả
trình
Trang 67Ứng dụng của công nghệ IC khả
trình
Trang 68Ứng dụng của công nghệ IC khả
trình
Trang 69Ứng dụng của công nghệ IC khả
trình
Trang 70Chương 2: Thiết kế dùng IC
khả trình của Xilinx
2.1 Các họ PLD của Xilinx
2.2 Cấu trúc PLD của Xilinx
2.3 Các bước thiết kế với PLD của Xilinx
Trang 712.1 Các họ PLD của Xilinx
Trang 72Các họ FPGA hiện tại của Xilinx
• Tham khảo: devices/fpga.html
Trang 73https://www.xilinx.com/products/silicon-2.1 Các họ PLD của Xilinx
Trang 74FPGA của Intel/Altera
• https://www.intel.com/content/www/us/en/programmable/products/ boards_and_kits/all-development-kits.html
Trang 75Power per MHz Price
Trang 76200.000 logic cells, DSP, PowerPC
Thay thế ASIC, ASSP
Trang 812.2 Cấu trúc PLD của Xilinx
• All Xilinx FPGAs contain the same basic resources
Slices (grouped into CLBs)
Contain combinatorial logic and register resources
Global clock buffers
Boundary scan logic
Trang 822.2 Cấu trúc PLD của Xilinx
Distributed SelectRAM Resources
• Uses a LUT in a slice as memory
Data can be written to RAM
after configuration
• Emulated dual-port RAM
One read/write port
One read-only port
RAM16X1S
O
D WE WCLK A0 A1 A2 A3
LUT
RAM32X1S
O
D WE WCLK A0 A1 A2 A3 A4
RAM16X1D
SPO
D WE WCLK A0 A1 A2 A3 DPRA0 DPO DPRA1 DPRA2 DPRA3
Slice
LUT LUT
Trang 832.2 Cấu trúc PLD của Xilinx
Block SelectRAM Resources
• Up to 3.5 Mb of RAM in 18-kb
blocks
Synchronous read and write
• True dual-port memory
Each port has synchronous read
and write capability
Different clocks for each port
• Supports initial values
latches
• Supports parity bits
DIA DIPA ADDRA WEA ENA SSRA CLKA
DIB DIPB WEB ADDRB
ENB SSRB
DOA
CLKB
DOPA
DOPB DOB 18-kb block SelectRAM memory
Trang 842.2 Cấu trúc PLD của Xilinx
Dedicated Multiplier Blocks
• 18-bit twos complement signed operation
• Optimized to implement Multiply and Accumulate functions
• Multipliers are physically located next to block SelectRAM™ memory
18 x 18 Multiplier18 x 18 Multiplier (36 bits)Output
Data_A (18 bits)
Data_B (18 bits)
4 x 4 signed
8 x 8 signed
12 x 12 signed
18 x 18 signed
Trang 852.2 Cấu trúc PLD của Xilinx
Global Clock Routing Resources
• Sixteen dedicated global clock multiplexers
Eight on the top-center of the die, eight on the bottom-center
Driven by a clock input pad, a DCM, or local routing
• Global clock multiplexers provide the following:
Traditional clock buffer (BUFG) function
Global clock enable capability (BUFGCE)
Glitch-free switching between clock signals (BUFGMUX)
• Up to eight clock nets can be used in each clock region ofthe device
Each device contains four or more clock regions
Trang 862.2 Cấu trúc PLD của Xilinx
Digital Clock Manager (DCM)
• Up to twelve DCMs per device
Located on the top and bottom edges of the die
Driven by clock input pads
• DCMs provide the following:
Delay-Locked Loop (DLL)
Digital Frequency Synthesizer (DFS)
Digital Phase Shifter (DPS)
• Up to four outputs of each DCM can drive onto globalclock buffers
All DCM outputs can drive general routing
Trang 872.3 Các bước thiết kế với PLD của Xilinx
CPLD/FPGA design flow
• Design Flow
Trang 882.3 Các bước thiết kế với PLD của Xilinx
Design Entry
• Using schematic editor:
Works well with small designs: 5k to 10 k gates
Schematic can be compiled to HDL
• Using HDL (Hardware Description Language)
VHDL, Verilog
Others: Abel
Works with large design: > 100 k gates
• Using State Editor:
Mostly for controller
Trang 892.3 Các bước thiết kế với PLD của Xilinx
Design Entry
• Design tools:
Webpack ISE (miễn phí)
Thiết kế cho CPLD, FPGA
Có công cụ thiết kế dùng schematic, ngôn ngữ mô tả phần cứng, công
cụ tổng hợp, mô phỏng và vật lý
http://www.xilinx.com/ise/logic_design_prod/webpack.htm
ISE Design Suite
chức năng tương tự như Webpack
Vivado Design Suite
dùng cho một số họ FPGA mới của Xilinx
EDK and Platform studio