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