Tải bản đầy đủ (.pdf) (74 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 (2.17 MB, 74 trang )

LỜI CAM ĐOAN
T i xin
hƣớng

m o n

t i nghi n ứu ủ t i ho n to n o t i tự l m ƣới sự

n ủ 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

số liệu kết quả tr nh

ho n to n trung thự v

ng ố trong ất ứ

hƣ t ng ƣợ

Các tài liệu tham khảo sử dụng trong lu n v n
thống kê các tài liệu tham khảo) hoặ

y trong lu n v n l

ng tr nh n o

u ƣợc d n nguồn (có bảng

ƣợ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

m o n tr n t i xin hịu

hoàn toàn trách nhiệm trƣớc Viện v Nh trƣờng.

Hà Nội, ngày 18 tháng 12 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 đã luôn 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ể hoà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à
toàn thể các bạn .Tôi xin chân thành cảm ơn.

Hà Nội, ngày 18 tháng 12 năm 2013
Tác giả:


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ự r
1 1 2 SoC v

ời của SOC [2] ................................................................................................. 12


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 Gi i oạn thiết kế Front end ........................................................................................ 18
1 2 2 Gi i 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. [1][4] .............................................................................................. 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

3


2.3.1. Giới thiệu ngôn ngữ mô tả phần cứng VHDL............................................................. 25
2.3.3. Cấu trúc một mô hình hệ thống mô tả bằng VHDL .................................................... 27
2.3.4 Trình tự thiết kế một chíp dựa trên VHDL .................................................................. 31
CHƢƠNG 3. THIẾT KẾ SYSTEM ON CHIP VÀ THỰC HIỆN BẰNG FPGA ............. 32
3.1. Thiết kế SoC ..................................................................................................................... 32
3 3 1 Sơ ồ tổng quan thiết kế .............................................................................................. 32
3.3.2. Giới thiệu các thành phần [1] ...................................................................................... 32
3.3.2.1. Bộ vi xử lý ............................................................................................................ 32
3.3.2.2.Bộ nhớ ................................................................................................................... 33
3.3.2.3. Kết nối .................................................................................................................. 36
3.3.2.4.Các tiêu chuẩn giao tiếp vào ra.............................................................................. 37
3.2. Cài đặt thử nghiệm .......................................................................................................... 41
3 2 1 Sơ ồ thiết kế............................................................................................................... 41
3.2.2. Thiết kế MIPS ............................................................................................................. 41
3.2.2.1. Lệnh trong MIPS .................................................................................................. 42

3.2.2.2. Các khối ơ ản .................................................................................................... 45
3.2.2.2.1. Khối PC: ........................................................................................................ 45
3.2.2.2.2. Khối Instruction Memory: ............................................................................. 45
3.2.2.2.3. Khối ADD ...................................................................................................... 46
3.2.2.2.4. Khối mux2x5to5 ............................................................................................ 46
3.2.2.2.5. Khối mux2x32to32 ........................................................................................ 46
3.2.2.2.6. Khối register file ............................................................................................ 47
3.2.2.2.7. Khối ALU ...................................................................................................... 48
3.2.2.2.8. Khối Data Memory ........................................................................................ 48
3.2.2.2.9. Khối Sign Extend ........................................................................................... 49
3.2.2.3. Các khối i u khiển .............................................................................................. 51
3.2.2.3.1. The Control Unit ............................................................................................ 51
3.2.2.3.2. ALU Control .................................................................................................. 53
3 2 2 4 Sơ ồ khối MIPS Processor .................................................................................. 55

4


3225 X

ịnh các xung Clock ...................................................................................... 55

3.2.2.6. Kiểm tra hệ thống ................................................................................................. 57
3 2 2 6 1 C i ặt file trên hệ thống................................................................................. 57
3 2 2 6 2 Sơ ồ Netlist ................................................................................................... 60
3.2.2.6.3 Mô phỏng ....................................................................................................... 60
3.2.2.4. Xây dựng khối hiển thị LCD ................................................................................ 61
3.2.2.5. Xây dựng khối hiển thị VGA ............................................................................... 62
3.2.2.5.1 Giới thiệu VGA............................................................................................... 62
3.2.2.5.2. Kỹ thu t hiển thị Video .................................................................................. 63

3.2.2.5.3. Video Refress ................................................................................................. 64
3.2.2.5 4 FPGA ự tr n thế hệ tín hiệu VGA .............................................................. 66
3.2.2.5.5. Char – Rom .................................................................................................... 67
3.2.2.5.6 Sơ ồ hiển thị kí tự trên VGA ....................................................................... 68
3.2.2.6 Kết quả thực hiện trên kit De2 .............................................................................. 69
CHƢƠNG 4. KẾT LUẬN ...................................................................................................... 72
TÀI LIỆU THAM KHẢO ...................................................................................................... 74

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

LCD

Liquid Crystal Display

4

ADC

Analog to Digital Converter

5

DAC

Digital to Analog Converter

6

SOPC

System on a Programmable Chip

7

VGA

Video Graphics Array


8

RTL

Register-transfer level

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. KIẾN TRÚC THỰC MỘT THỂ ENTITY .................................................. 28
HÌNH 2.4 VÍ DỤ CỦA MỘT MÔ HÌNH VHDL CÓ THỨ BẬC ................................ 29
HÌNH 2.5. KIẾN TRÚC THỰC THỂ TESSTBENCH ................................................. 30
HÌNH 2.6. QUY TRÌNH THIẾT KẾ CHIP DỰA TRÊN VHDL ................................. 31
HÌNH 3 1 SƠ ĐỒ TỔNG QUAN THIẾT KẾ SOC ..................................................... 32
HÌNH 3.3 AMBA BUS .................................................................................................. 36
HÌNH 3.4. CORECONNECT BUS ............................................................................... 37
HÌNH 3.5. PARALLEL PORT TRANSFER OF AN 8-BIT DATA VALUE .............. 38
HÌNH 3.6. RS-232C SERIAL INTERFACE TRANSMISSION OF AN 8-BIT DATA
VALUE .......................................................................................................................... 39

HÌNH 3.7. THE TWO SPI SLAVE DEVICECONFIGURATION OPTIONS ............ 40
HÌNH 3.8. I2C INTERFACE SERIAL TRANSMISSION OF AN 8-BIT DATA
VALUE .......................................................................................................................... 40
HÌNH 3 10 ĐỊNH DẠNG LỆNH MIPS ....................................................................... 42
HÌNH 3.11. CON TRỎ PC ............................................................................................ 45
HÌNH 3.12. KHỐI INSTRUCTION MEMORY ........................................................... 45

7


HÌNH 3.13. BỘ CỘNG .................................................................................................. 46
HÌNH 3.16. KHỐI INSTRUCTION FETCH STAGE .................................................. 47
HÌNH 3.17. KHỐI REGISTER FILE ............................................................................ 48
HÌNH 3.18. KHỐI ALU................................................................................................. 48
HÌNH 3.22. KHỐI CU ................................................................................................... 51
HÌNH 3 23 SƠ ĐỒ KHỐI MIPS .................................................................................. 55
HÌNH 3 24 CÀI ĐẶT FILE .......................................................................................... 59
HÌNH 3.25. NETLIST.................................................................................................... 60
HÌNH 3.26. KẾT QUẢ MÔ PHỎNG ............................................................................ 60
HÌNH 3.28. VGA IMAGE - 640 BY 480 PIXEL LAYOUT ........................................ 65
HÌNH 3.29. VERTICAL SYNC SIGNAL TIMING FOR 640 BY 480 AT 60HZ. ...... 65
HÌNH 3.30. HORIZONTAL SYNC SIGNAL TIMING FOR 640 BY 480 AT 60HZ . 66
HÌNH 3.31. FPGA BASED GENERATION OF VGA VIDEO SIGNALS ................. 67
HÌNH 3.32. TRUY CẬP FONT KÍ TỰ SỬ DỤNG ROM ............................................ 67
HÌNH 3 33 SƠ ĐỒ VGA .............................................................................................. 68
HÌNH 3.23. TỔNG HỢP HỆ THỐNG .......................................................................... 69
HÌNH 3.35. KẾT QUẢ HIỂN THỊ TRÊN LCD............................................................ 70
HÌNH 3.36. KẾT QUẢ HIỂN THỊ VGA ...................................................................... 71

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 ĐẶC TÍNH CỦA SOFT CORE ................................................................. 33
BẢNG 3.2. SO SÁNH SỰ KHÁC BIỆT CÁC BỘ NHỚ. ........................................... 35
BẢNG 3.3. BẢNG LỆNH MIPS ................................................................................... 43
BẢNG 3.4. MÔ TẢ TÍN HIỆU CU ............................................................................... 52
BẢNG 3.5. CÁC CHÂN LCD ....................................................................................... 62
BẢNG 3.6. BẢNG CÁC CHÂN VGA .......................................................................... 68

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ụ

í hl

ƣ tất cả các module với các chứ n ng kh

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
chuyên thiết kế các module riêng biệt ho 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
ầu t ng module riêng lẻ. T những xu

phẩm mà không phải xây dựng chi tiết t
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 hệ thống SoC,
tìm hiểu công nghệ FPGA. T

ó ó ƣợ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 ƣớ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
ƣợ hƣớng d n xem xét i u chỉnh, báo cáo theo lị h

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 3/2013 và hoàn thành vào
tháng 09/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 thiết kế Mips Processor. Thực nghiệm trên kit De2.
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 ứu hệ thống System on Chip, quy trình
thiết kế System on Chip, tìm hiểu công nghệ FPGA. Tìm hiểu thiết kế Mips Processor,
tìm hiểu thiết kế module hiển thị LCD và VGA trên kid De2. Thực hiện kết quả trên kit
De2.
Bố cục của lu n v n tốt nghiệp.

10



Chƣơng 1: Tổng quan v hệ thống SoC
Trình bày tổng quan v System on Chip, các quy trình thiết kế v hƣớng i ủa
lu n v n trong xây ự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.
Chƣơng 3 : Thiết kế System on Chip và thực hiện bằng FPGA
Thiết kế hệ thống SoC.
Thiết kế Mips Processor.
Thiết kế module hiển thị LCD và VGA
Thực nghiệm trên FPGA kit De2.
Chƣơng 4 : Kết lu n
5. Phƣơng pháp nghiên cứu
Lu n v n ƣợc nghiên cứu dự tr n ơ sở lý thuyết t các tài liệu v SoC, các
tài liệu, datasheet v các khối, 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 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 qu

ã ó sự tiến bộ kinh ngạ trong kĩ thu t silicon và kết quả là

sự t ng nhanh m t ộ và hiệu n ng ủa transitor.


Hình 1.1. Sự gi 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
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 tr nsitor kí h thƣớc củ tr nsitor ƣợ

o ằ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. [2]

13


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

Hình 1.3. M h nh ơ ản SoC
Hình 1.3 minh họa một số những yếu tố ơ ản của một hệ thống SoC. Chúng bao gồm
một số lƣợng


ạ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 xuyên, SoC ũng có mạ h 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 ho 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ứ n ng truy
và phƣơng tiện truy n thông video, xử lý tài liệu, và giải trí
chẳng hạn nhƣ

trò hơi và phim ảnh.

14

p internet

phƣơng tiện


-

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ạ h 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 nh nh 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

Core) n y ó ặ

dụng lại ƣợc phát triển bởi nhà sản xuất

iểm là khả n ng sử

IP ven or…

 Soft Core : linh ộng, tính tái sử dụng, dễ tích hợp
 Firm Core : m ng ặc tính của cả hai SoftCore và HardCore.
 Hard Core : Hiệu suất ,tố
-

ộ hoạt ộng cao.

Ƣu iểm :

o Tiêu thụ ít n ng lƣợng.
o Tố

ộ hoạt ộng ƣợc cải thiện.

o Kí h thƣớc mạch nhỏ.
o Giá thành rẻ trên mỗi tr nsitor ƣợc tích hợp.
o Độ tin c y cao.

15


-

Nhƣợ

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

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 Tr o ổi dữ liệu :
 Wireline Communication: 10/100 Based-T, xDSL, Gigabit
Ethernet,.. Etc
 Wireless

communication:

BlueTooth,

WLAN,

2G/3G/4G,

WiM x UWB … et
1.1.3. Công cụ lựa chọn
Phần ứng
Phần m m

C ng ụ sử ụng

Chứ n ng ủ

Quartus II

Tạo thiết kế FPGA

SOPC Builder


Xây ựng hệ thống SoC

NIOS II SBT

Ph t triển phần m m ứng
ụng

NIOS II IDE

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

16

ng ụ


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


FRONT 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
Gi i 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... [7]
Functional Specification
Chip r

ời xuất phát t những ứng dụng thực tế ngƣời thiết kế t mụ

í h ủ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 ũ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ứ n ng nhất ịnh trong thiết kế.

RTL Coding
S u khi ó sơ ồ khối của thiết kế với các khối Logic kết nối với nh u ngƣời
thiết kế sẽ tiến hành viết mã RTL cho t ng khối Logi
quan trọng, viết mã RTL ngoài việ

ó Viết mã RTL l gi i oạn

ảm bảo úng hứ n ng Logi

òn phải thỏa mãn

phần cứng yêu cầu trong thiết kế (Flip Flop L t h Mux …)

Hình 1.5. RTL Coding
Dynamic Verification
S u gi i oạn viết mã RTL thiết kế sẽ ƣợc mô phỏng ộng bằng

h ƣ các

tín hiệu vào và nh n tín hiệu ra sau khi mô phỏng. Vì chứ n ng thiết kế là hoàn toàn

18


x

ịnh trƣớc nên ứng với một tín hiệu ngõ v o x

ị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ứ n ng ủa thiết kế hay không. Nếu hƣ thỏa phải kiểm
tra lại mã RTL.Việc kiểm tr n y kh ng qu n tâm ến thông số thời gi n

ịnh thời của

thiết kế, chỉ thuần túy v mặt chứ n ng
Chƣơng tr nh viết ể ƣ tín hiệu ngõ vào và nh n tín hiệu ngõ ra mong muốn
ƣợc gọi l Test en h Test en h ũ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
S u khi ã ảm bảo v chứ n ng ủ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
gi n ể tƣơng t

với phần m m nhằm mụ

i u kiện m i trƣờng, ràng buộc thời

í h họn r

Cell trong thƣ viện thỏa

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ỏ


i u kiện ràng buộc. Phần m m củ 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 ủa kỹ thu t DFT l S n 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ế s u khi ƣợc Synthesis phải ảm bảo úng v mặt chứ n ng thỏa mãn
các thông số v t lý và phải hoạt ộng ở một tố

ộ nhất ịnh

ây chính là tố

ộ yêu

cầu của thiết kế.
STA l gi i 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 ho phép phân tí h ộ tr hoãn qu

ƣờ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

o

o n y ể xem tố

ộ hoạt ộng của thiết kế ó ạt yêu cầu hay không.

Trong thực tế qu tr nh STA ƣợc lặp i lặp lại nhi u lần với Synthesis ho ế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 h i gi i oạn: pre-layout STA và post-l yout STA Gi i oạn prel yout 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 Gi i oạn post-l yout 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
Form l Verifi tion l gi i oạn nhằm ảm bảo tính chính xác v mặt chứ 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ƣ Dyn mi Verifi tion Form l Verifi tion kh ng ƣ
thể v o ể kiểm tra mà thực hiện

phƣơng ph p to n họ

20

tín hiệu cụ

ể so sánh nhằm ảm bảo



Gate-level Netlist của thiết kế sau khi Synthesis v n ảm bảo úng hứ n ng so với
mã RTL

n ầu.

Nếu kết quả s u gi i oạn Formal Verification v n ảm bảo úng hứ n ng so
với mã RTL

n ầu thì chuyển s ng gi i oạn thiết kế B k En

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 ó ịnh nghĩ

vùng ùng ể i ây

Quá trình Floorplanning có ảnh hƣởng rất lớn ến hiệu suất v
nhất l

ịnh thời của mạch,

ố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
Pl e n 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ệ

ặt các Cell và kết

nối dây sẽ tiến h nh gi i oạn post-layout STA và post-l yout simul tion ể ả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ứ 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ả

o

o s u qu tr nh Pl e n Route trƣớ khi ƣ
21

i sản xuất.


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ử logi 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ó

i viết lại nhi u

lần. Xilinx là c ng ty ầu tiên bán ra FPGA và luôn chiếm thị phần lớn nhất. Ngoài ra
ng ung ấp rất

còn có Alterna, Lattice, Actel, QuickLogic. Nhi u nhà sản xuất hiện

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ứ

ối với một hệ thống trong thực tế là vấn
tr nh ƣợ

n ng v

ộ ổn ịnh,

mang tính quyết ịnh. Thiết bị logic l p

ƣợc phát minh lần ầu vào cuối th p kỷ 1970 và ngay l p tứ

phổ biến trong ngành công nghiệp bán d n. Ngoài khả n ng l p tr nh

ã trở lên

ạng, công

nghệ này còn có thời gian sản xuất nhỏ nên có khả n ng ạnh tr nh 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ên bởi Ross Freem n 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ú trƣớ

ó l CPLD

(Complex

Programmable Logic Devi e) Đ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ú l
biệt chính giữa CPLD và FPGA. CPLD có kiến trúc giới hạn ở một mứ
bao gồm một hoặc nhi u dải logi “sum-of-pro u ts” khả trình v
số tƣơng ối nhỏ

th nh ghi ƣợ

iểm khác
ộ n o ó nó

ƣợc cung cấp một

ồng bộ Đi u này làm cho CPLD trở nên không


ƣợc m m dẻo lắm nhƣng ù lại trễ timing lại dễ dự o n hơn v tố

22

ộ kết nối logic


ũng

o 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à ò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 hip FPGA

u có

các hàm cấp cao (nhƣ ộ cộng và bộ nhân) và các bộ nhớ ã ƣợc nhúng vào. Ngoài ra,
trong

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 th y ổi thiết kế tức là có thể c p nh t hệ thống hoặc cấu h nh
(dynamic reconfiguration) khi húng

ng ho ạt ộng nhƣ l một chức rất

ộng


nh thƣờng.

Một vài FPGA còn có khả n ng ấ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

ng 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
Logi Blo ks) ƣợ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 r

ƣợc phân bố xung quanh chip tạo thành các liên kết với
23


bên ngoài. Bên trong khối logic CLB có bảng LUT (Look-Up Table) và các phần tử
nhớ (FlipFlop hoặc bộ chốt). LUT (Look up table) là khối logic có thể thực hiện bất kì
hàm logic nào t 4 ầu vào, kêt quả của hàm này tùy vào mụ

í h m gửi ra ngoài

khối logic trực tiếp hay thông qua phần tử nhớ flip-flop.

Trong tài liệu hƣớng d n của các dòng FPGA của Xilinx còn sử dụng khái niệm
SLICE, 1 Slice tạo thành t gồm 4 khối logic, số lƣợng

Sli es th y ổi t vài

nghìn ến vài chục nghìn tùy theo loại FPGA.Nếu nhìn cấu trúc tổng thể của mảng
LUT th ngo i 4

ầu vào kể trên còn hỗ trợ th m 2 ầu vào bổ xung t các khối logic

phân bố trƣớc và sau nó nâng tổng số ầu vào của LUT lên 6 chân. Cấu trúc này là
nhằm t ng tốc các bộ số học logic.

Hình 2.2. Khối Logic
1.2.2. Hệ thống mạch liên kết
Mạng liên kết trong FPGA ƣợc cấu thành t
phƣơng ng ng v

ứng, tùy theo t ng loại FPGA m

ƣờng kết nối theo hai
ƣờng kết nối ƣợc chia

thành các nhóm khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn, dài
và rất dài. Các ƣờng kết nối ƣợc nối với nhau thông qua các khối chuyển mạch l p
tr nh

ƣợc (programable switch), trong một khối chuyển mạch chứa một số lƣợng nút

chuyển l p tr nh ƣợ


ảm bảo cho các dạng liên kết phức tạp khác nhau.

24


1.2.3. Các phần tử tích hợp sẵn
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích
hợp thêm khác nhau, ví d ụ ể thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 của
Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel

FPSLIC tích hợp nhân

ARV… h y ho những ứng dụng xử lý tín hiệu số DSP trong FPGA ƣợc tích hợp
các DSP Slide là bộ nhân cộng tố
Virtex của Xilinx chứa t vài chụ

ộ cao, thực hiện hàm A*B+C, ví dụ dòng

ến h ng tr m DSP sli es với A, B, C 18-bit.

2.3. Ngôn ngữ phần cứng HDL.
2.3.1. Giới thiệu ngôn ngữ mô tả phần cứng VHDL
VHDL là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tố

ộ rất cao, là

một loại ngôn ngữ mô tả phần cứng ƣợc phát triển ùng ho trƣơng tr nh VHSIC
(Very High Speed Itergrated Circuit) của bộ quốc phòng Mỹ. Mục tiêu của việc phát
triển VHDL l


ó ƣợc một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhất

cho phép thử nghiệm các hệ thống số nh nh hơn ũng nhƣ ho phép ễ

ng ƣ

hệ thống ó v o ứng dụng trong thực tế. Ngôn ngữ VHDL ƣợc ba công ty Intermetics,
IBM và Texas Instruments bắt ầu nghiên cứu phát triển v o th ng 7 n m 1983 Phi n
bản ầu ti n ƣợc công bố vào tháng 8-1985 S u ó VHDL ƣợ

xuất ể tổ chức

IEEE xem xét thành một tiêu chuẩn hung N m 1987 ã ƣ r ti u huẩn v VHDL (
tiêu chuẩn IEEE-1076-1987).
VHDL ƣợc phát triển ể giải quyết
và l p tài liệu cho các hệ thống số Nhƣ t

khó kh n trong việc phát triển th y ổi
ã iết, một hệ thống số có rất nhi u tài liệu

mô tả Để có thể v n hành bảo trì sửa chữa một hệ thống ta cần tìm hiểu kỹ lƣỡng tài
liệu ó Với một ngôn ngữ mô phỏng phần cứng tốt việc xem xét các tài liệu mô tả trở
nên dễ

ng hơn v

ộ tài liệu ó ó thể ƣợc thự thi ể mô phỏng hoạt ộng của hệ

thống Nhƣ thế ta có thể xem xét toàn bộ các phần tử của hệ thống hoạt ộng trong một

mô hình thống nhất.
VHDL ƣợc phát triển nhƣ một ngôn ngữ ộc l p không gắn với bất kỳ một

25


×