Tải bản đầy đủ (.pdf) (80 trang)

Thiết kế system on chip (soc) và thực hiện bằng FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.76 MB, 80 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------TRẦN VĂN TIÊN

Trần Văn Tiến

KỸ THUẬT MÁY TÍNH VÀ
TRUYỀN THÔNG

THIẾT KẾ SYSTEM ON CHIP (SoC) VÀ THỰC HIỆN BẰNG
FPGA

LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG

CH2011B
Hà Nội – 2013


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Trần Văn Tiến

THIẾT KẾ SYSTEM ON CHIP (SoC) VÀ THỰC HIỆN BẰNG FPGA

Chuyên ngành : Kỹ thuật máy tính và truyền thông

LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THƠNG

NGƯỜI HƯỚNG DẪN KHOA HỌC :


TS. NGUYỄN KIM KHÁNH

Hà Nội – 2013


LỜI CAM ĐOAN

Tôi xin cam đoan đề tài nghiên cứu của tơi hồn tồn do tơi tự làm dưới sự
hướng dẫn của thầy giáo Ts Nguyễn Kim Khánh, Viện công nghệ thông tin và truyền
thông - Đại học Bách Khoa Hà Nội. Các số liệu, kết quả trình bày trong luận văn là
hoàn toàn trung thực và chưa từng được cơng bố trong bất cứ cơng trình nào.
Các tài liệu tham khảo sử dụng trong luận văn đều được dẫn nguồn (có bảng
thống kê các tài liệu tham khảo) hoặc được sự đồng ý trực tiếp của tác giả.
Nếu xảy ra bất cứ điều không đúng như những lời cam đoan trên, tơi xin chịu
hồn tồn trách nhiệm trước Viện và Nhà trường.

Hà Nội, ngày 15 tháng 03 năm 2013
Tác giả

Trần Văn Tiến

1


LỜI CẢM ƠN
Để hoàn thành luận văn tốt nghiệp này, tôi xin gửi lời cảm ơn chân thành nhất
tới tập thể các thầy giáo, cô giáo trường Đại học Bách Khoa Hà Nội nói chung, viện
Cơng nghệ thơng tin và Truyền thơng, bộ mơn Kĩ thuật máy tính, đã đào tạo cho tôi
những kiến thức, những kinh nghiệm qúy báu trong suốt thời gian học tập và rèn luyện.
Tôi xin chân thành cảm ơn sự giúp đỡ của thầy Nguyễn Kim Khánh. Trong quá

trình thực hiện đề tài thầy đã ln tận tình hướng dẫn, gợi cho tơi nhiều ý tưởng để
hoàn thành luận văn một cách tốt nhất.
Cuối cùng là lời cảm ơn chân thành nhất tới gia đình, bạn bè đã động viên, góp
ý và tạo mọi điều kiên tốt nhất để tơi có thể hồn thành luận văn tốt nghiệp này.
Tuy nhiên, do thời gian và trình độ có hạn nên đồ án này chắc chắn khơng tránh
khỏi những thiếu sót, tơi rất mong được sự đóng góp ý kiến của các thầy, các cơ và
tồn thể các bạn .Tôi xin chân thành cảm ơn.

Hà Nội, ngày 15 tháng 3 năm 2013
Sinh viên:

Trần Văn Tiến

2


MỤC LỤC

LỜI CAM ĐOAN ............................................................................................................ 1
LỜI CẢM ƠN .................................................................................................................. 2
MỤC LỤC ........................................................................................................................ 3
DANH MỤC TỪ VIẾT TẮT, THUẬT NGỮ ................................................................. 6
DANH MỤC CÁC HÌNH ................................................................................................ 7
DANH MỤC CÁC BẢNG............................................................................................... 9
MỞ ĐẦU ........................................................................................................................ 10
1. Lý do chọn đề tài .................................................................................................... 10
2. Lịch sử nghiên cứu ................................................................................................. 10
3. Mục đích, đối tượng và phạm vi nghiên cứu .......................................................... 10
4. Tóm tắt các luận điểm cơ bản và đóng góp của đồ án ............................................ 10
5. Phương pháp nghiên cứu ........................................................................................ 11

NỘI DUNG .................................................................................................................... 12
CHƯƠNG 1. TỔNG QUAN VỀ SYSTEM ON CHIP (SoC) ....................................... 12
1.1. Cơ sở lý thuyết ..................................................................................................... 12
1.1.1. Sự ra đời của SOC ......................................................................................... 12
1.1.2. SoC và đặc điểm ............................................................................................ 14
1.1.3. Cơng cụ lựa chọn ........................................................................................... 16
1.2. Quy trình thiết kế System on Chip ...................................................................... 17
1.2.1. Giai đoạn thiết kế Front end .......................................................................... 18
3


1.2.2. Giai đoạn thiết kế Back end .......................................................................... 21
CHƯƠNG 2. TỔNG QUAN VỀ CÔNG NGHỆ FPGA ................................................ 22
2.1. Giới thiệu về FPGA. ............................................................................................ 22
2.2. Kiến trúc chung của một FPGA........................................................................... 23
1.2.1. Khối logic FPGA .......................................................................................... 23
1.2.2. Hệ thống mạch liên kết ................................................................................. 24
1.2.3. Các phần tử tích hợp sẵn .............................................................................. 25
2.3. Ngôn ngữ phần cứng HDL. ................................................................................. 25
1.3.1. Các ưu điểm của VHDL ................................................................................ 26
1.3.2. Cấu trúc một mơ hình hệ thống sử dụng ngôn ngữ VHDL .......................... 27
CHƯƠNG 3. THIẾT KẾ SYSTEM ON CHIP VÀ THỰC HIỆN BẰNG FPGA......... 34
3.1. Thiết kế bộ vi xử lý .............................................................................................. 34
3.1.1. Cấu trúc tổng quát ......................................................................................... 34
3.1.2. Sơ đồ khối thiết kế. ........................................................................................ 35
3.1.3. Quá trình thiết kế CPU .................................................................................. 36
3.1.4. Thực hiện code mổ phỏng trên FPGA........................................................... 41
3.2. Thiết kế các module nối ghép vào ra ................................................................... 43
3.2.1. Thiết kế module IP UART ............................................................................ 43
3.2.2. Thiết kế module IP I2C ................................................................................. 53

3.3. Thực hiện hệ thống SoC FPGA dựa trên Vi xử lý 32-bit Nios II ........................ 66
3.3.1. Tạo hệ thống NIOS II bằng SOPC Builder ................................................... 66
3.3.2. Điều khiển Nios sử dụng ngôn ngữ C ........................................................... 73
CHƯƠNG 4. KẾT QUẢ VÀ ĐÁNH GIÁ .................................................................... 76
4.1. Các kết quả đạt được............................................................................................ 76

4


4.2. Đánh giá và định hướng....................................................................................... 76
KẾT LUẬN .................................................................................................................... 77
TÀI LIỆU THAM KHẢO .............................................................................................. 78

5


DANH MỤC TỪ VIẾT TẮT, THUẬT NGỮ

Số thứ tự

Từ viết tắt

Ý nghĩa

1

SoC

System on Chip


2

FPGA

Field-programmable gate array

3

UART

Universal Asynchronous Receiver/Transmitter

4

IP

Intelecture Property

5

I2C

Inter-Integrated Circuit

6

BSP

Board Support Package


7

EDS

Embedded Design Suite

8

TCL

Tool Command Lanluage

9

LSI

Large Scale Integration

10

AC

Address Counter

11

LCD

Liquid Crystal Display


12

API

Application Program Interface

13

EPCS

Erasable Programmable Configurable Serial

14

IRQ

Interrupt Request

15

HDL

Hardware Description Language

16

ADC

Analog to Digital Converter


17

DAC

Digital to Analog Converter

18

DUT

Device Under Test

19

SOPC

System on a Programmable Chip

20

HAL

Hardware Abstract Layer

21

MM

Memory Mapped


22

SBT

Software Build Tool

6


DANH MỤC CÁC HÌNH
Hình 1.1. Sự gia tăng mật độ transitor ........................................................................... 12
Hình 1.2. Giảm giá thành sản phẩm ............................................................................... 13
Hình 1.3. Mơ hình cơ bản SoC....................................................................................... 14
Hình 1.4. Quy trình thiết kế SoC.................................................................................... 17
Hình 1.5. RTL Coding ................................................................................................... 18
Hình 1.6. Dynamic Verification ..................................................................................... 19
Hình 1.7. Synthesis and Scan Insertion.......................................................................... 20
Hình 1.8. Formal Verification ........................................................................................ 21
Hình 2.1. Cấu trúc tổng thể của một FPGA .................................................................. 23
Hình 2.2. Khối Logic ..................................................................................................... 24
Hình 2.3. Bộ bán tổng .................................................................................................... 27
Hình 2.4 Sơ đồ thiết kế VHDL ...................................................................................... 32
Hình 2.5. Sơ đồ tổng quát của một chương trình thử (Testbench) ........................ 33
Hình 3.1. Sơ đồ khối bộ vi xử lý .................................................................................... 35
Hình 3.2. Khối Datapath ................................................................................................ 36
Hình 3.3. Khối instruction_fetch .................................................................................... 38
Hình 3.4. Sơ đồ máy trạng thái FSM cho bộ vi xử lý .................................................... 40
Hình 3.5. Sơ đồ thiết kế hồn chỉnh bộ vi xử lý ............................................................ 41
Hình 3.6. Cấu trúc file trên quatus ................................................................................. 41
Hình 3.7. Kết quả mơ phỏng .......................................................................................... 43

Hình 3.8. Sơ đồ khối Uart .............................................................................................. 46
Hình 3.9. Sơ đồ tín hiệu kết nối giữa các module .......................................................... 47
Hình 3.10. Interfaces module baud_gen.v ..................................................................... 48
Hình 3.11. Interface module uart_tx.v ........................................................................... 49
Hình 3.12. Interface module uart_rx.v ........................................................................... 50
Hình 3.13. Interface module fifo.v ................................................................................. 51
7


Hình 3.14. Mơ phỏng dạng sóng module top.v .............................................................. 53
Hinh 3.15. Truyền nhận dữ liệu UART ......................................................................... 53
Hình 3.16. I2C và các thiết bị kết nối ............................................................................ 54
Hình 3.17. Bit transfer on the I2C bus ........................................................................... 56
Hình 3.18. Sơ đồ khối I2C ............................................................................................. 58
Hình 3.19. Khối Top_Control ........................................................................................ 59
Hình 3.20. Khối Byte control ......................................................................................... 62
Hình 3.20. Trạng thái FSM khối bit control .................................................................. 63
Hình 3.21. Kết quả mơ phỏng I2C ................................................................................. 65
Hình 3.22. Kết quả mơ phỏng I2C trên Modelsim......................................................... 66
Hình 3.23. SoPC Builder ............................................................................................... 67
Hình 3.24. Chọn hệ SoPC dựa trên ngơn ngữ Verilog................................................... 68
Hình 3.25. Chọn Loại NIOS II ....................................................................................... 69
Hình 3.26. Tạo bộ nhớ hệ thống..................................................................................... 71
Hình 3.27. JTAG UART ................................................................................................ 71
Hình 3.28. Giao diện phát triển Nios II IDE .................................................................. 73
Hình 3.29. Tạo example hello_world_small .................................................................. 74
Hình 3.30. Nạp chương trình cho Nios II ...................................................................... 75
Hình 3.31. Example Hello world small.......................................................................... 75

8



DANH MỤC CÁC BẢNG
Bảng 1.1. Các công cụ phát triển .................................................................................... 16
Bảng 3.1. Tập lệnh bộ vi xử lý ....................................................................................... 39
Bảng 3.1. Module baudgen.v Interfaces Description ..................................................... 48
Bảng 3.2. Module uart_tx.v Interfaces Description ....................................................... 50
Bảng 3.3. Module uart_rx.v Interfaces Description ....................................................... 51
Bảng 3.4. Module fifo.v Interfaces Description ............................................................. 52
Bảng 3.5. UART top module .......................................................................................... 53
Bảng 3.6. Bảng các thanh ghi ......................................................................................... 59
Bảng 3.8. Thanh ghi điều lệnh ........................................................................................ 60
Bảng 3.9. Thanh ghi phát................................................................................................ 61
Bảng 3.10. Thanh ghi nhận ............................................................................................. 61
Bảng 3.11. Thanh ghi trạng thái ..................................................................................... 61

9


MỞ ĐẦU
1. Lý do chọn đề tài
Hệ thống trên chip SoC (System on Chip) là xu hướng phát triển mới cho các
sản phẩm điện tử ngày nay. Mục đích là đưa tất cả các module với các chức năng khác
nhau lên cùng một chip sử dụng công nghệ FPGA. Và ngày càng có nhiều cơng ty
chun thiết kế các module riêng biệt cho phép người thiết kế hệ thống lựa chọn các
module phù hợp với yêu cầu, tích hợp vào hệ thống và xây dựng ứng dựng cho sản
phẩm mà không phải xây dựng chi tiết từ đầu từng module riêng lẻ. Từ những xu
hướng phát trển thực tế, do vậy tôi chọn đề tài : Thiết kế SoC (System on Chip) và thực
hiện bằng FPGA để nghiên cứu tìm hiểu cách thức thực hiện xây dựng thiết kế các IP
core, tìm hiểu cơng nghệ FPGA, xây dựng hệ thống SoC. Từ đó có được tài liệu để các

bạn học viên tiếp tục nghiên cứu phát triển hệ thống System on Chip.
2. Lịch sử nghiên cứu
Luận văn được thực hiện dưới sự hướng dẫn của thầy giáo Ts Nguyễn Kim
Khánh, Viện Công nghệ thông và Truyền thông-Đại học Bách Khoa Hà Nội. Luận văn
được hướng dẫn, xem xét điều chỉnh, báo cáo theo lịch đều đặn 2 tuần/ lần với giáo
viên hướng dẫn. Luận văn được bắt đầu nghiên cứu từ tháng 10/2012 và hồn thành
vào tháng 03/2013.
3. Mục đích, đối tượng và phạm vi nghiên cứu
Tìm hiểu được quy trình xây dựng và thiết kế SoC. Tìm hiểu cơng nghệ FPGA.
Tìm hiểu các IP core trong hệ thống SoC. Thiết kế được các IP Core thiết yếu của hệ
thống SoC : Bộ xử lý, bộ nhớ, các modun nối ghép vào ra. Thực hiện hệ thống SoC
FPGA dựa trên Vi xử lý 32-bit Nios II.
4. Tóm tắt các luận điểm cơ bản và đóng góp của đồ án
Mục tiêu chính của luận văn là nghiên cứu hệ thống System on Chip, quy trình
thiết kế System on Chip, tìm hiểu công nghệ FPGA. Xây dựng các khối IP Core của hệ

10


thống System on Chip từ đó có cái nhìn tổng quan để xây dựng hoàn thiện hệ thống
SoC.
Bố cục của luận văn tốt nghiệp
Chương 1: Tổng quan về System on Chip
Trình bày tổng quan về System on Chip, các quy trình thiết kế và hướng đi của
luận văn trong xây dựng thiết kế hệ thống SoC.
Chương 2 : Công nghệ FPGA
Trình bày cơng nghệ FPGA, kiến trúc FPGA và ngơn ngữ sử dụng cho FPGA.
Chương 3 : Thiết kế System on Chip và thực hiện bằng FPGA
Thiết kế bộ vi xử lý, bộ nhớ
Thiết kế các module nối ghép vào ra

Thực hiện trên FPGA
Đánh giá các kết quả đạt được.
5. Phương pháp nghiên cứu
Luận văn được nghiên cứu dựa trên cơ sở lý thuyết từ các tài liệu về SoC, các
tài liệu về bộ vi xử lý nói của các tác giả trong và ngoài nước, các website và bài báo
cần thiết để phát triển luận văn. Các kết quả của luận văn được thực hiện trên bộ phần
mềm của Altera : Quatus, Modelsim và NiosII.

11


NỘI DUNG
CHƯƠNG 1. TỔNG QUAN VỀ SYSTEM ON CHIP (SoC)
1.1. Cơ sở lý thuyết
1.1.1. Sự ra đời của SOC
[2] Trong 40 năm qua đã có sự tiến bộ kinh ngạc trong kĩ thuật silicon và kết
quả là sự tăng nhạnh mật độ và hiệu năng của transitor.

Hình 1.1. Sự gia tăng mật độ transitor
Biểu đồ cho thấy sự tiến bộ không ngừng trong việc cải tiến mật độ transistor và
đồng thời với đó là sự giảm về giá thành thiết bị.

12


Hình 1.2. Giảm giá thành sản phẩm
[2] Những cơng nghệ sản xuất tiên tiến có thể sản xuất các chíp ngày nay có thể
chứa tới 100 triệu transitor, kích thước của transitor được đo bằng nanometer, và xấp xỉ
18 tháng số lượng transitor trên mỗi chip lại tăng lên gấp đôi (Moore’s law). Và kết
quả là rất nhiều các Component (module) bây giờ được tích hợp trên cùng một Printed

Circuit Board do vậy tạo ra sự phát triển lĩnh vực thiết kế SOC.

13


1.1.2. SoC và đặc điểm

Hình 1.3. Mơ hình cơ bản SoC
Hình 1.3 minh họa một số những yếu tố cơ bản của một hệ thống SoC. Chúng bao gồm
một số lượng đa dạng các xử lý để kết nối đến một hoặc nhiều thành phần bộ nhớ cùng
với một dãy các cấu hình logic. Thường xun, SoC cũng có mạch tương tự để quản lý
dữ liệu cảm biến và chuyển đổi tương tự đến kỹ thuật số, hoặc để hỗ trợ truyền dữ liệu
khơng dây.[2]
Ví dụ, một SoC cho điện thoại thông minh sẽ cần phải hỗ trợ, thêm vào đầu vào âm
thanh và khả năng đầu ra cho một điện thoại truyền thống, chức năng truy cập internet
và phương tiện truyền thông video, xử lý tài liệu, và giải trí đa phương tiện
chẳng hạn như các trị chơi và phim ảnh.

14


-

SoC là một hệ thống bao gồm Chip + Software + Integration.
o SoC chip bao gồm Embedded Processor, ASIC Logics và các mạch tương tự
o SoC software bao gồm OS, compiler, simulator, firmware, driver, protocol
stackIntegrSted development environment (debugger, linker, ICE)Application
interface (C/C++, assembly)
o SoC integration bao gồm giải pháp tổng thể cho hệ thống, các kỹ thuật hỗ trợ
và đặc tả của nhà sản xuất.


-

Điểm điểm :
o Quá trình phát triển SoC nhanh hơn so với phát triển ASIC.
o Có một Bus kết nối chuẩn (SoC interconnection) trong hệ thống và tất cả các
Component giao tiếp với nhau cần được kết nối tới hệ thống Bus này thông
qua các Interface. Một số hệ thống Bus :
 AMBA (Advanced Microcontroller Bus Architecture).
 APB (Advanced Peripheral Bus).
 ASB (Advanced System Bus).
 AHB (Advanced High Performance Bus).
o Các Component (hay còn gọi là các Core) này có đặc điểm là khả năng sử
dụng lại ,được phát triển bởi nhà sản xuất, các IP vendor…
 Soft Core : linh động, tính tái sử dụng, dễ tích hợp
 Firm Core : mang đặc tính của cả hai SoftCore và HardCore.
 Hard Core : Hiệu suất ,tốc độ hoạt động cao.

-

Ưu điểm :
o Tiêu thụ ít năng lượng.
o Tốc độ hoạt động được cải thiện.
o Kích thước mạch nhỏ.
o Giá thành rẻ trên mỗi transitor được tích hợp.
o Độ tin cậy cao.
15


-


Nhược điểm :
o Mở rộng độ phức tạp của hệ thống.
o Mở rộng yêu cầu kiểm tra (verification) cho toàn bộ hệ thống.

-

Ứng dụng của SoC trong các lĩnh vực :
o Xử lý tín hiệu tiếng nói.
o Xử lý tín hiệu âm thanh và hình ảnh.
o Cơng nghệ thơng tin:
 PC interface (USB, PCI,PCI-Express, IDE,..etc) Computer
peripheries (printer control, LCD monitor controller, DVD
controller,.etc) .
o Trao đổi dữ liệu :
 Wireline Communication: 10/100 Based-T, xDSL, Gigabit
Ethernet,.. Etc
 Wireless

communication:

BlueTooth,

WLAN,

2G/3G/4G,

WiMax, UWB, …,etc
1.1.3. Công cụ lựa chọn
Phần cứng

Phần mềm

Công cụ sử dụng

Chức năng của công cụ

Quartus II

Tạo thiết kế FPGA

SOPC Builder

Xây dựng hệ thống SoC

NIOS II SBT

Phát triển phần mềm ứng

NIOS II IDE

dụng

Bảng 1.1. Các công cụ phát triển

16


1.2. Quy trình thiết kế System on Chip
Functional Specification


Floorplanning

Define Architecture

Place and Route

RTL Coding

post-layout STA

Fail

Dynamic Verification

Functions
with Timing
Pass

Fail

Check
Functions

Tape-out
Pass

Synthesis and Scan Insertion

STA


Fail
Check
Timing
Pass
Formal Verification

Fail
Check
Functions
Pass

FONT END

BACK END

Hình 1.4. Quy trình thiết kế SoC

17


1.2.1. Giai đoạn thiết kế Front end
Giai đoạn thiết kế Front End thực hiện việc xây dựng thiết kế về mặt luận lý như
viết mã, mô phỏng kiểm tra, thiết đặt các ràng buộc, phân tích thời gian v.v... [2][6][8]
Functional Specification
Chip ra đời xuất phát từ những ứng dụng thực tế, người thiết kế từ mục đích của
ứng dụng và ý tưởng phải phác thảo ra bảng mô tả chi tiết thơng số kỹ thuật cũng như
những tính năng mà thiết kế cần đạt được. Bảng thông số kỹ thuật cho biết những đặc
điểm của thiết kế như tần số hoạt động, điều kiện điện áp, nhiệt độ và các mối quan hệ
định thời trong thiết kế.
Define Architecture

Từ bảng mô tả chi tiết thông số kỹ thuật của thiết kế, người thiết kế sẽ phác họa
sơ đồ khối cho thiết kế bao gồm nhiều khối Logic kết nối với nhau, mỗi khối Logic
thực hiện một chức năng nhất định trong thiết kế.
RTL Coding
Sau khi có sơ đồ khối của thiết kế với các khối Logic kết nối với nhau, người
thiết kế sẽ tiến hành viết mã RTL cho từng khối Logic đó. Viết mã RTL là giai đoạn
quan trọng, viết mã RTL ngoài việc đảm bảo đúng chức năng Logic còn phải thỏa mãn
phần cứng yêu cầu trong thiết kế (Flip Flop, Latch, Mux …).

Hình 1.5. RTL Coding
Dynamic Verification
Sau giai đoạn viết mã RTL thiết kế sẽ được mô phỏng động bằng cách đưa các
tín hiệu vào và nhận tín hiệu ra sau khi mơ phỏng. Vì chức năng thiết kế là hoàn toàn
18


xác định trước nên ứng với một tín hiệu ngõ vào xác định người thiết kế có thể biết
được ngõ ra mong muốn, so sánh tín hiệu ngõ ra với tín hiệu ngõ ra mong muốn để
kiểm tra mã RTL có thỏa chức năng của thiết kế hay khơng. Nếu chưa thỏa phải kiểm
tra lại mã RTL.Việc kiểm tra này không quan tâm đến thông số thời gian, định thời của
thiết kế, chỉ thuần túy về mặt chức năng.
Chương trình viết để đưa tín hiệu ngõ vào và nhận tín hiệu ngõ ra mong muốn
được gọi là Testbench. Testbench cũng được viết bằng ngôn ngữ mô tả phần cứng để
giao tiếp với thiết kế cần mơ phỏng.

Hình 1.6. Dynamic Verification
Synthesis and Scan Insertion
Sau khi đã đảm bảo về chức năng của thiết kế, thiết kế sẽ được chuyển qua giai
đoạn Synthesis và Scan Insertion.
Synthesis là quá trình dùng phần mềm để biên dịch mã RTL sang Gate-level

Netlist bằng cách kết hợp với các ràng buộc về điều kiện môi trường, ràng buộc thời
gian để tương tác với phần mềm nhằm mục đích chọn ra các Cell trong thư viện thỏa
các điều kiện ràng buộc của thiết kế. Trong quá trình này phần mềm sẽ cố gắng tối ưu
để thỏa các điều kiện ràng buộc. Phần mềm của Synopsys thường được sử dụng là
Design Compiler (viết tắt là DC).
Những thiết kế ngày nay bao gồm cả thiết kế cho việc kiểm tra lỗi Silicon của
quá trình sản xuất, kỹ thuật này gọi là Design For Test (DFT). Một trong những

19


phương pháp của kỹ thuật DFT là Scan Insertion, phương pháp này sẽ tạo nên trong
thiết kế những cấu trúc dùng riêng cho việc kiểm tra lỗi Silicon.

Hình 1.7. Synthesis and Scan Insertion
STA (Static Timing Analysis)
Thiết kế sau khi được Synthesis phải đảm bảo đúng về mặt chức năng, thỏa mãn
các thông số vật lý và phải hoạt động ở một tốc độ nhất định, đây chính là tốc độ yêu
cầu của thiết kế.
STA là giai đoạn phân tích về mặt thời gian của thiết kế sau khi Synthesis, phần
mềm sử dụng là PrimeTime cho phép phân tích độ trì hỗn qua các đường truyền tín
hiệu trong thiết kế. Kết quả phân tích sẽ là các báo cáo, người thiết kế dựa vào các
bảng báo cáo này để xem tốc độ hoạt động của thiết kế có đạt yêu cầu hay khơng.
Trong thực tế q trình STA được lặp đi lặp lại nhiều lần với Synthesis cho đến khi các
yêu cầu về thời gian của thiết kế được thỏa mãn.
STA gồm hai giai đoạn: pre-layout STA và post-layout STA. Giai đoạn prelayout STA đảm bảo thiết kế thỏa mãn các yêu cầu về thời gian sau quá trình
Synthesis. Giai đoạn post-layout STA đảm bảo thiết kế vẫn thỏa về thời gian sau khi
Back End thiết đặt các giá trị thực về R, C của các Cell và các dây nối.
Formal Verification
Formal Verification là giai đoạn nhằm đảm bảo tính chính xác về mặt chức năng

của thiết kế, không xem xét đến thông số định thời và thông số vật lý của thiết kế.
Không giống như Dynamic Verification, Formal Verification không đưa các tín hiệu cụ
thể vào để kiểm tra mà thực hiện các phương pháp toán học để so sánh nhằm đảm bảo

20


Gate-level Netlist của thiết kế sau khi Synthesis vẫn đảm bảo đúng chức năng so với
mã RTL ban đầu.
Nếu kết quả sau giai đoạn Formal Verification vẫn đảm bảo đúng chức năng so
với mã RTL ban đầu thì chuyển sang giai đoạn thiết kế Back End. Ngược lại thì kiểm
tra lại quá trình Synthesis.

Hình 1.8. Formal Verification
1.2.2. Giai đoạn thiết kế Back end
Floorplanning
Floorplanning là quá trình sắp xếp các khối trong vùng die hay bên trong các
khối khác và giữa chúng phải có định nghĩa các vùng dùng để đi dây.
Q trình Floorplanning có ảnh hưởng rất lớn đến hiệu suất và định thời của mạch,
nhất là đối với những thiết kế phức tạp.
Chất lượng Floorplanning ảnh hưởng đáng kể đến chất lượng thiết kế của chúng ta.
Place and Route
Place and Route là quá trình đặt các Cell và kết nối dây dựa trên kết nối về mặt
Logic giữa các Cell trong Gate-level Netlist. Sau khi hoàn tất việc đặt các Cell và kết
nối dây sẽ tiến hành giai đoạn post-layout STA và post-layout simulation để đảm bảo
Netlist với các giá trị thực về R, C của các Cell và dây nối vẫn thỏa chức năng và thời
gian. Nếu không có lỗi, xuất dữ liệu ra dưới dạng file gds2. Nếu có lỗi, kiểm tra lại việc
đặt các Cell và kết nối dây.
Tape-out
Kiểm tra lại tất cả các báo cáo sau quá trình Place and Route trước khi đưa đi sản xuất.

21


CHƯƠNG 2. TỔNG QUAN VỀ CÔNG NGHỆ FPGA
2.1. Giới thiệu về FPGA.
[1][4] FPGA là viết tắt của "Field Programmable Gate Array", là vi mạch dùng
cấu trúc mảng phần tử logic mà người dùng có thể lập trình được, có thể thực hiện các
tính năng logic thơng qua máy tính của mình với giá rẻ, và có thể xóa đi viết lại nhiều
lần. Xilinx là công ty đầu tiên bán ra FPGA và ln chiếm thị phần lớn nhất. Ngồi ra
cịn có Alterna, Lattice, Actel, QuickLogic. Nhiều nhà sản xuất hiện đang cung cấp rất
nhiều cấu trúc và phương pháp xử lý khác nhau. Vì vậy, việc chọn một cấu trúc và một
phương pháp xử lý để có thể đáp ứng được các yêu cầu về chức năng và độ ổn định,
đối với một hệ thống trong thực tế là vấn đề mang tính quyết định. Thiết bị logic lập
trình được được phát minh lần đầu vào cuối thập kỷ 1970 và ngay lập tức đã trở lên
phổ biến trong ngành cơng nghiệp bán dẫn. Ngồi khả năng lập trình đa dạng, cơng
nghệ này cịn có thời gian sản xuất nhỏ nên có khả năng cạnh tranh thương mại rất lớn.
Hơn nữa, việc thiết kế với nó khá dễ dàng và nó có khả năng lập trình lại nhiều lần.
FPGA được thiết kế đầu tiêm bởi Ross Freeman, người sáng lập công ty Xilinx
vào năm 1984, kiến trúc mới của FPGA cho phép tính hợp số lượng tương đối lớn các
phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD

(Complex

Programmable Logic Device).Điểm tương đồng của CPLD và FPGA là ở chỗ chúng
đều bao gồm một số lượng tương đối lớn các phần tử logic khả trình. Tuy nhiên mật độ
tích hợp thì khác nhau, mật độ cổng logic của CPLD nằm trong khoảng từ vài nghìn
đến hàng chục nghìn, trong khi với FPGA thì mật độ tích hợp cỡ hàng chục nghìn cho
đến vài triệu.
FPGA và CPLD có rất nhiều điểm khác biệt tuy nhiên kiến trúc là điểm khác
biệt chính giữa CPLD và FPGA. CPLD có kiến trúc giới hạn ở một mức độ nào đó, nó

bao gồm một hoặc nhiều dải logic “sum-of-products” khả trình và được cung cấp một
số tương đối nhỏ các thanh ghi được đồng bộ. Điều này làm cho CPLD trở nên không
được mềm dẻo lắm, nhưng bù lại trễ timing lại dễ dự đoán hơn và tốc độ kết nối logic
22


cũng cao hơn FPGA. Với FPGA, thì kiến trúc theo một cách khác trội hơn hẳn CPLD
bởi vì FPGA sử dụng các liên kết nối. Điều này không những tạo cho nó mềm dẻo hơn
rất nhiều mà cịn làm tăng độ phức tạp trong thết kế.
Điểm khác biệt nữa giữa FPGA và CPLD là trong hầu hết chip FPGA đều có
các hàm cấp cao (như bộ cộng và bộ nhân) và các bộ nhớ đã được nhúng vào. Ngoài ra,
trong các FPGA đời mới còn hỗ trợ đầy đủ hoặc một phần việc cấu hình lại trong hệ
thống, cho phép thay đổi thiết kế tức là có thể cập nhật hệ thống hoặc cấu hình động
(dynamic reconfiguration) khi chúng đang ho ạt động như là một chức rất bình thường.
Một vài FPGA cịn có khả năng cấu hình lại cục bộ (partial re-configuration) tức là một
phần của thiết bị được cấu hình trong khi các phần cịn lại vẫn đang hoạt động.
2.2. Kiến trúc chung của một FPGA
Cấu trúc tổng thể của FPGA bao gồm:
- Các khối Logic
- Hệ thống liên kết mạch
- Các phần tử tích hợp sẵn

Hình 2.1. Cấu trúc tổng thể của một FPGA
1.2.1. Khối logic FPGA

FPGA chứa trong nó rất nhiều khối logic có thể tái cấu hình CLB (Configurable Logic
Blocks) được liên kết với nhau thành bằng các liên kết khả trình (Programmable
Interconnect). Các khối vào ra được phân bố xung quanh chip tạo thành các liên kết với
23



×