Trong các hệ thống tính toán hiện đại và tiên tiến, việc sử dụng bộ tăng tốc phần cứng Accelerator trong các tính toán phức tạp như nhân ma trận đang trở nên phổ biến.. Phép nhân ma trận
Trang 1ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
PHAN TRUONG SINH - 20521836
LAM SƠN NHẬT THAI - 20521886
KHOA LUAN TOT NGHIEP
THIẾT KE BỘ TANG TÓC PHAN CỨNG VỚI RISC-V
Design Hardware Accelerator With Risc-V
CU NHÂN NGANH KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN
ThS Ta Trí Đức
ThS Pham Minh Quan
TP HO CHÍ MINH, 2024
Trang 2LỜI CẢM ƠN
Khóa luận này không thê được hoàn thành nếu không có sự trợ giúp của nhiều
con người và điêu kiện của nhiêu yêu tô.
Trước hết, em xin gửi lời cảm ơn sâu sắc đến thầy Tạ Trí Đức, người đã tận tìnhhướng dẫn, chia sẻ kiến thức và kinh nghiệm của thầy trong suốt chặn đường khóaluận, cũng như đã luôn động viên, hỗ trợ em trong suốt quá trình thực hiện khóa luận.Cảm ơn vì sự ân cần và quan tâm của thầy trong nhiều lúc đồ án đi vào nhiều giaiđoạn rất khó khăn
Em cũng xin cảm ơn ban giám hiệu nhà trường và các thầy cô ở khoa Kỹ Thuật MáyTính đã tạo điều kiện thuận lợi và cung cấp mọi tài liệu, cơ sở vật chất cần thiết choquá trình nghiên cứu và học tập của em Em cũng cảm ơn thầy Nguyễn Minh Sơn -trưởng khoa đã hỗ trợ và giải đáp cho em những lúc cần nhất Cảm ơn thầy Trịnh LêHuy và thầy Trần Quang Nguyên đã góp ý và chỉnh sửa ở đầu và giữa kỳ Dé khối
lượng công việc được giảm tải và đảm bảo khóa luận được hoàn thành.
Xin chân thành cảm ơn bạn cùng đồng hành đã đi trong suốt chặn đường khóa luận
Cuôi cùng, em muôn bày tỏ lòng biệt ơn sâu sac đên gia đình, những người đã luôn
là nguôn động viên lớn nhât, luôn ở bên cạnh và lăng nghe em.
Một lân nữa, em xin gửi lời cảm ơn chân thành đên tât cả mọi người!
Trang 3MỤC LỤC
THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIẸP - 3LOT CAM ON wiecsssessssessssessssessssescssseessneeesnseessneessnseesuneesnnseesuneesniseesueesnneeenueesnneeenneses 4TOM TAT KHOA LUẬN :-5:©©+2©+t2E++22Ext2EEEESEESEEtSErrttrtrsrrrrrrrrrrrrek 12
Chương 1.GIỚI THIEU DE TALI oessesscsscsssesssessessesssessesssessessesssessessesssessessesseesesssessess 13
1.1 Lý do chọn dé ti coeccecceccesceccessessessessessessessessessessessessessesusssesseaesssansseesseaeaees 13
1.2 Mục tiêu nghiÊH CứỨU Ă cv TH gen 14
1.2.1 Phạm vi nghiÊH CỨI ccĂSc SE ren 14
1.3 Phương pháp nghiÊH CỨU eĂSĂ Ăn kSshEsisrrkeersrrrrrerrerrree 14
1.4 Cấu trúc khóa luận - -:-©-c++25+c2c+tvEEtrSExrerrtrsrxrerrrrerrrree 15Chương 2.CƠ SỞ LÝ THUYET cesessessssssssessessesssssesssssesssssessessessesssssessessesesseseesssseeseess 16
2.1 Giao thức APB TH TK tk tk ng key 16
2.2 CAC thuật toán nhân MQ trẬN c5 5333111 EEeeeeeees 17
2.2.1 _ Thuật toán nhân MQ tr Gn veccccccccccccccccccccccccccsccscsseccssssccecessssssecessssseeeees 17
2.3 Quy trình công nghỆ HH kg 19
2.4 Các công CU EDA cọ TH ng ng tr, 19
VN nh ` €7 đe 20
Chương 3.QUI TRÌNH THIET K É, + + St EEEEEEEEEEEEEEEEEEE 2112112112112 21
3.1 Phân tích và lên kế hoạch thiết k :-c-ccsccccscxesrrversrreesre 21
3.1.1 Phân tích lý do sử dụng phương pháp APB «c«cccseeexes 21
3.1.2 _ Đặc tả kỹ thuật cho phần Front-end (Specification of Front-end) 223.1.3 Đặc ta kỹ thuật cho phân Back-end (Specification of Back-end) 23
3.2.1 Xây dựng khối nhân ma trận (Matrix_ mulfiply) -.-«<<<<<5 25
3.2.2 Xây dựng khối tOp_ACC e-cc 5c ESEE SE EEEEEE11111212111 xe 26
3.2.3 Xây dựng khối dpD_dCC c-ccSeScEEEEEEEEEEEEEEEkererrrkerees 263.2.4 Xây dựng bộ test cho thiẾt Ke cccccccceccssscsssesssessessesssessesssessessesssesseessesses 28
Trang 43.3 Thực hiện ở phân Back-end eecceccesssssssssessesssessesssessessssssessesssessessesssessessssseess 29
3.3.1 Design Compiler [RTL SyntheSiS] ĂĂSSSSSksseeeeeeresees 30
3.3.2 Formalify Check cccccccccccccesscssseeesscssseeseeeseessneceseesseeceseeeeaecueeseaeenseenses 34
3.3.3 IC C2 — Physicdl D@signicc.cccccccccccccccsssceessecesssessseeeessesessesessessssesensaes 35
Chương 4.KET QUA vosscssescsssessessessessessessessessessessesssssessesssesessessssusaseassssessassseseseseess 42
4.1 Kết quả của đặc tả thiết kế (result of specification) c.cccccescessessessessesseseeses 42
4.2.1 Mô phỏng APB khi ghi dữ lIỆU óc 5S seseesersersee 43
4.2.2 Mô phỏng APB khi đọc đữ lIỆU Ă- 5S SSĂSSSSksseeeeeeresees 45
4.2.3 Kết quả từ khi nhân hai ma trận trên VivddÌO « -««<<sx<+ 46
4.3 Kết quả mô phỏng từ VCS e.c5-5ccc E EEEEEEEEEEEEEEiErrrkrrrrkee 50
4.4 Kế quả từ Synthesis & FOTHNQÏIIV Ă cv kEkskkseekeeeerserke 53
4.4.1 SCHEMATIC VỈ@WU Ă SGK kg 53
4.4.2 Chất lượng thiết kế c5 cEEEE SE EEEEEEkrrkrrrerkee 54
4.5 Kết quả Formality CheCĂ -©2+©c++cESE+EEeEEtEerkerkerreervee 57
4.5.1 Kết quả mafching c55ccccccccccccErkerrerrerrerree 58
4.5.1 Ket quả Verify cceccecscsscessesssessesssessessesssessessssssessecssessessssssecsessnessessesseeses 59
4.6 Kết quả Physical Design ccccsccsscsscsscessssesssssessessessessessessessessessessesseaveaesvease 59
4.6.1 KẾI quả tng QUAM ececcescesceccescessessessessessessessessessessessesssssesseasesesssseeseeses 604.6.2 Kết quả từng bước trong thiết kế vật Vf ccecceccscsessssssssssesseesvsseeseeseeseeees 61
4.7 Physical Ve€rijfiC@fiOH SE vn key 67
Chương 5.KÉT LUẬN VA HUONG PHAT TRIỂN ©22-©c5c+ccztczcssrxeei 68
5.1 Tóm tắt các kết L00128212182/710/SR SE 685.2 Đánh giá thiết kế và hiệu nĂng -:- 2-52 £25e+E£+E+E+EEE+Errrrrrreree 695.3 Hướng Phát TriỂn -cc St EEEEEEEEEEEEEEEE tre 69
TÀI LIEU THAM KHẢ - 5: St+E+EtSE+E‡EEE+EEEEEEEEEEESEEEEEEEEEEEEEEEEEEEEEEEEEEErrrkerrree 72
Trang 5DANH MỤC HÌNH
Hình 2 1 Flow của một thiết kế ASIC đơn giản - -: -+©-s+©cs+©5++c5+c5sze: 19Hình 3.1 Hệ thong SoC Pulpino gom lõi RISC-V và DUS APB -252 22Hình 3 2 Sơ đồ khối Ong QUAM cessesscescescessessessessesssssessessessessessessessessesssssesseseseseesvees 24
Hình 3 3 Khối chức năng nhân ma trận ⁄x44 -c©ce+cc+ctectesrerkerreersees 25
Hình 3 4 Khối top dCC€Ï@FfOF - - 5t SESE‡SE‡EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErrrrree 26Hình 3 5 Khối APB qcC ccàà SH re 26Hình 3 6 Quy trình của bước Synthesis — ngudn sÿWOJDSVS 2©55555s5c<55c: 30
Hình 3 9 Quy trình của bước FOrmality - «5s kskseseekseseersekee 35
Hình 3 10 Quy trình thiết kế của bước Physical Design - 2©52©s+cs+ssc5e: 36
Hình 3 11 Die core sau khi AUWOC td c S5 56113218 kkkersseeeeee 37
Hình 3 12 Sau khi hoàn thành power DÏẠH - c5 5+ + £*+E+E+e+eeEee+eereekss 38
Hình 3 13 Cấu trúc của MOt SCCNATIOS ceccececcscesesvssssvssssvevsseeveresveecssveresesversaveeseaene 39
Hình 3 14 Các scenarios được kích NOt «-ẶScccS+ + k+skkEsseeesssexss 39
Hình 3 15 Kết quả sau bước placement secceccsscssvesssssessessessessessessessesessessesessseseeseees 40Hình 3 16 Cấu trúc clock tree trong thiết kế - ++ce+ce+ce+E+E+tcztrrerreres 41
Hình 4 1 APB trạng thái Setup CUA WILE cccccesecceesscceesceetenseeeenneeeeseeeeenaeeeenaeeeenaes 43
Hình 4 2 APB trạng thái Access ghi dit liỆM CUA WIiItE e5 «<< << +2 44
Hình 4 3 APB trạng thái [dle CUQ Wiite c5 ESeEEeeeEeseeseeeeeeereeeee 44
Hình 4 4 APB trạng thái Setup CÚA reAd c cv SSvEksseeseeeersseeere 45
Hình 4 5 APB trạng thái của ACCESS F€đÏ scSSsSSxhisikrireke 46
Trang 66 APB trạng thái Idle CUA F€@QÏ c SĂ 3E VESEeeEEseeeeeseeeeeeee 46
7 So sánh Ket quả, Leeccecsesscecsessesssessesssessesssssessesssessessusssetsesssessessesssessesseseseess 48
8 So sánh kết QUA 2 5-55 St‡SEEEEEEEEEEEEEE2E121121121121121121121121 1 xe 48
9 So SGmh 5:28.,71.8.N00NNnnh aa 49
10 So Sánh kẾt quả 4 veccscecsesssesssesssesssesssesssesssecssesssessssssusssessssssecssecssessseessecs 50
11 So sánh kết quả của DVE và Vivado phan I -:-52 51
12 So sánh kết quả của DVE và Vivado phan2 ¬— 52
13 Kết quả schematic của design c.scecceccesssssessssvessessesseseessessssessesssseeseeseeseess 53
14 Kết quả schematic bên trong của design veecceccescescessessessessesessesseeseeseesees 53
15 Report constraint của quá trình SYNth@Sis cceccccesccesccessecerecesseeeneeesseees 54
16 Report AREA của quá trình sVHfÏ€SÌS s-cẶSĂS se sseksseseeeeeee 55
17 Report power của quá trinh $yHfÏ€S1S c5 5< SE +ssseseeeeee 56
18 Biểu đồ report timing của tool DC 2 s©s+ss+s£+££+xe+eezxezeezee+es 57
19 Kết quả matching từ tool ƒorimÏity 5-55 s5e+se+ce+£e+£ezeczeereres 58
20 Két qua verify thành công tại bước ƒOrIndÏIFy « «<< «<< s++sss+ 59
21 Két quả timming SUMMALY ooecseesscssscessesssesssesssesssesssesssesssesssessssssssseesseeees 60
22 Diện tích tong thể của thiết kế coeecceccesccscsessesssessesseessessesssessecsesssessecsseesen 60
23 Report power của thiết kế ở bước physical design -5:-: 61
24 Tổng quan qua các quá fFÌHHh - :- +5 S£+S£+Et+E+E2E£EzEzErEerrerxee 62
25 Kết quả timing tổng quan tại bud'c DÌAC€IHHÍ - 5555 <s + +sx 63
26 Map congestion của thiẾt kế - 2-2 2©5eS£+S£+EE+E+EE+E£E+EzEzEzrersee 64
27 Map density của thiẾt Ké cccccccecccscescsssesssssessessessssessessessessessessesesesessease 64
28 Clock tree của thiết Ké seccsssssssccssssessssseesssssneessessneecesnsneessensnneessessiey 65
29 Kết quả check gor của thiết tại bước CTS veesceccsscssscessessssseseesessseseeseeseeses 65
Trang 7Hình 4 30 Một phan của thiết kế sau DUC TOME€ - 5-52-5225 E‡EE+EE+EeE+EerEereei
Hình 4 31 Report timming ở bước route
Hinh 4.32 Kiém tra DRC va LVS cho thiét ké
Trang 8DANH MỤC BANG
Bang 3 1 Bang thể hiện đặc tả kỹ thuật cho phần ƒront-end 22-55: 23Bảng 3 2 Các yêu câu ở bước bac-ehid - - 5s 5e cs+E+E+E+EtEEzErEerrrrrerreee 24Bảng 3 3 Dia chỉ và các bit được biểu diễn của ma trận inpuf -5-: 27Bảng 3 4 Địa chỉ và các bit duoc biểu diễn của ma trận OIHÍIDHÍ, «<< <++x 28Bang 4 1 Khả năng đáp ứng của các yêu câu đặt rd - 2 c+ce+ce+csecscsceei 42
Trang 9DANH MỤC TU VIET TAT
EDA: Exploratory Data Analysis
RISC-V: Reduced Instruction Set Computer
APB: Advanced Peripheral Bus
RTL: Register-Transfer Level
GDS: Graphic Data System
ASIC: Application-Specific Integrated Circuit
DRC: Design Rule Check
LVS: Layout Versus Schematic
DC: Design Compiler
FM: Formal Verification
ICC2: Innovus Implementation System
DC: Design Compiler
AXI: Advanced eXtensible Interface
IP: Intellectual Property
PV: Physical Verification (Xac minh vat ly)
SDC: Synopsys Design Constraints (Các rang buộc thiết kế cua Synopsys)
VCS: Verilog Compiler Simulator (Trinh m6 phong trinh bién dich Verilog)
PVT: Process, Voltage, Temperature
CTS: Clock Tree Synthesis
NDR: Non-Default Rule
Trang 10TÓM TẮT KHÓA LUẬN
Với khả năng phát triển của công nghệ, tốc độ ngày càng cao nên từ đó với mongmuốn phát triển những ứng dụng phần mềm trên phần cứng đề tốc độ hoạt động đượccải thiện Cùng với tinh thần tìm hiểu và thực hiện full-flow một quy trình của việcsản xuất chip ASIC Dé tai hướng đến việc thiết kế một bộ nhân ma trận 4x4 đơn giảnđược tích hợp với APB Từ đó có thê tùy biến và kết hợp với một số lõi như RISC-V
dé đánh giá hiệu suất trên phần cứng và phần mềm Qua thực hiện và kiểm tra dé tài
đã thực hiện thành công với một IP nhân ma trận đơn giản từ RTL đến GDS
12
Trang 11Chương 1 GIỚI THIỆU ĐÈ TÀI
Ngày nay cùng với sự phát triển mạnh mẽ của công nghệ, các yêu cầu về mặt
truyền nhận, tốc độ ngày càng được đề cao Nhu cầu xử lý dữ liệu nhanh chóng và
hiệu quả dần trở nên cấp thiết Trong các hệ thống tính toán hiện đại và tiên tiến,
việc sử dụng bộ tăng tốc phần cứng (Accelerator) trong các tính toán phức tạp như
nhân ma trận đang trở nên phổ biến Với kiến trúc RISC-V, tính linh hoạt và khả
năng mở rộng của nó đã gây ra sự quan tâm đáng kể trong cộng đồng những người
nghiên cứu, học thuật.
Bộ nhân ma trận là một thành phần quan trọng trong nhiều ứng dụng tính toán, từ
xử lý tín hiệu số, thị giác máy tính cho đến trí tuệ nhân tạo Việc thiết kế và tích hợp
một bộ nhân ma trận hiệu quả với giao điện APB, từ đó có khả năng tùy biến và
thích hợp với các lõi xử lý như RISC-V hay bất kỳ CPU nào Điều này không chỉ
giúp mở ra nhiều hướng phát triển mới trong việc đưa phần mềm xuống phần cứng
dé thực hiện tác vụ song song, tăng tốc độ xử lý mà còn nâng cao hiệu suất Tăng
tính học thuật cho nghiên cứu, tạo sự tiền đề cho sự phát triển lớn hơn vi mô hơn
1.1 Lý do chọn đề tài
Với ý tưởng hiện thực hóa khả năng của phần mềm trên phần cứng dé giúp tối ưuhóa chương trình và tốc độ của phần mềm, từ đó có thê tối ưu hóa tốc độ xử lý của
hệ thống, việc phát triển các bộ tăng tốc phần cứng ngày càng trở nên quan trọng
Ttong các ứng dụng tính toán hiệu năng cao, như trí tuệ nhân tao, xử lý hình ảnh va
video, và các hệ thống nhúng tốc độ xử lý và hiệu quả năng lượng là yếu tố then chốt.Việc tối ưu hóa những tác vụ này phần cứng có thé mang lại nhiều lợi ích, bao gồmgiảm thiểu thời gian xử lý, tiết kiệm năng lượng và nâng cao hiệu suất tông thể
Một trong những tác vụ tính toán cơ bản được sử dụng nhiều đó là phép nhân matrận Phép nhân ma trận là một thành phần quan trọng trong các thuật toán về xử lý
đồ họa, hay xử lý các tín hiệu số Do đó, với tiêu chí hướng đến việc phát triển một
bộ nhân ma trận hiệu quả trên phần cứng sẽ góp phần cho việc cải thiện hiệu suất hiệnthống trong các tác vụ kể trên
13
Trang 121.2 Mục tiêu nghiên cứu
Mục tiêu nghiên cứu của đề tài này là thực hiện một bộ nhân ma trận được tích hợpvới bus APB từ đó tạo tiền đề cho việc phát triển và tích hợp lớn hơn trên các lõi CPUnhư RISC-V Bộ nhân ma trận sẽ biểu diễn diễn được tập số nhân và kết quả khi tíchhợp với APB Sau khi được kiểm tra và đánh giá đúng ở bước front-end, sẽ được tiếptục thực hiện layout bằng các phần mềm EDA chuyên dụng và phải đảm bảo về mặt
timming, DRC, LVS.
1.2.1 Pham vi nghiên cứu
Phạm vi nghiên cứu của đề tài này chỉ giới hạn ở bộ nhân với kích thước 4x4 và
chỉ hỗ trợ với số nguyên dương Ngoài ra, bộ nhân sẽ chỉ được tích hợp với APB màkhông tiếp tục tích hợp với RISC-V bởi vì tính phức tạp và thời gian giới hạn của đềtài Tuy nhiên, sau khi thực hiện xong bộ nhân ở mức RTL và kiểm thử bộ nhân đúng
về mặt logic thì sẽ tiếp tục thực hiện ở back-end trong đó có tổng hợp netlist phải
được đảm bảo đúng về mặt logic giữa trước và sau tổng hợp Sau đó dé tài sẽ đượclayout bằng các công cụ EDA như ICC2 Ở bước layout, tần số hoạt động tối đa của
đề tài không quá 200Mhz và một số ràng buộc (constraint) cơ bản sẽ khác được áp
dụng Tất nhiên phải đảm bảo về mặt timing, DRC, LVS, Những yếu tố cơ bản
của bước back-end.
1.3 Phương pháp nghiên cứu
Phương pháp nghiên cứu đặt ra gồm có bốn giai đoạn
Giai đoạn thứ nhất, nhóm sẽ tìm hiéu sâu về mặt lý thuyết của APB, các thuật toánnhân ma trận từ đó tìm ra thuật toán thuận tiện và tối ưu nhất cả trong việc tích vớihợp APB và cả trong việc tích hợp với RISC-V về sau Sau giai đoạn tìm hiểu nhóm
sẽ tiễn hành trién khai và thiết kế - thiết kế RTL bằng các công cụ như Vivado hayVCS với ngôn ngữ Sverilog Giai đoạn thứ ba sau khi thiết kế nhóm sẽ tiến hành môphỏng và kiểm tra dé đảm bảo thiết kế hoạt động đúng mong doi ít nhất là về mặtluận lý phải chính xác Sau khi kiểm thử thành công, thiết kế sẽ tiến hành thiết kế vật
14
Trang 13lý dé thiết kế được thực hiện thực trên thực tế Sau các giai đoạn trên đề tài sẽ được
nhóm tiễn hành đánh giá các hiệu năng mà dé tài mang lại cũng như xác minh thiết
kế đảm bảo hoàn thành các chỉ tiêu về quy tắc thiết kế cũng như khả năng tối ưu, khả
năng tích hợp về sau của thiết kế.
1.4 Cầu trúc khóa luận
Cấu trúc của khóa luận này được chia thành bốn phần chính; Nền tảng kỹ thuật,phương pháp, kết quả và các kết luận và hướng phát triển
Ở chương nền tang kỹ thuật, các lý thuyết về mặt kỹ thuật có liên quan đến đề tài
sẽ được đề cập và trình bay cho người đọc Hon thế nữa, các thuật toán được sử dụng
và thực hiện sẽ được thảo luận cũng như các công cụ (tool) EDA được sử dụng cho
quá trình thiết kế vật lý (physical design) cho thiết kế
Chương phương pháp gồm những thông tin về đặc tả sơ đồ hệ thống, cách thựchiện và kiểm tra ở front-end cũng như quá trình thực hiện thiết kế vật lý và đánh giá
hiệu suât của dé tài ở phan back-end.
Ở chương Kết Quả sẽ trình bày về các kết quả đạt được của thiết về mặt hiệu năng,tiêu thụ, diện tích, và tính đúng đắn của đề tài đạt được những gì so với những đặc tả
Trang 14Chương 2 CƠ SỞ LÝ THUYET
Một số lý thuyết nền tảng cần thiết trước khi thực hiện và triển khai bộ nhân matrận tích hợp với APB Đầu tiên ta cần hiểu về APB và cách hoạt động của nó khảnăng tích hợp của nó trên các hệ thống khác nhau Tiếp theo, lý thuyết về các cáchnhân, các thuật toán dé thực hiện việc nhân sẽ được sử dụng để tối ưu cũng như dễthực hiện Thứ ba, cần phải hiểu rõ chức năng và một số công cụ cần thiết trong quá
trình thiết kế vật lý, hay quá trình kiểm tra tính tương đương của thiết kế Ngoài ra
các lý thuyết về RISC-V, điện tử số, ngôn ngữ mô tả phần cứng cũng rat cần thié bởi
vì nó được áp dụng và phát triển xuyên suốt thực hiện hay phát triển về sau của đề
xe
tal.
Cơ sở lý thuyết, cần giới thiệu lại các lý thuyết, nghiên cứu gần hoặc liên quanđến đề tài (lưu ý chỉ các lý thuyết, cơ sở lý luận, nghiên cứu gần và liên quan Phảiluận được sự liên quan và phải có tài liệu tham khảo về lý thuyết, nghiên cứu đó) Có
thê giới thiệu công cụ, bộ công cụ nêu cân thiêt.
2.1 Giao thức APB
Giao thức APB (Advanced Peripheral Bus) là một thành phần của hệ thống busAMBA (Advanced Microcontroller Bus Architecture) do ARM phát triển
APB có tính chi phí thấp, được tối ưu hóa đề tiêu thụ điện năng tối thiểu và không
quá phức tạp khi sử dụng Ngoài ra, APB còn được thiết kế nhằm truy cập vào cácthanh ghi điều khién Các thiết bị ngoại vi APB thường được kết nối với hệ thống bộnhớ chính bang các APB bridge Lấy ví dụ, có thé sử dung bridge từ AXI đến APB
dé kết nối một số thiết bị ngoại vi APB với hệ thống bộ nhớ AXI
Một APB thường sử dụng một số tín hiệu đơn giản dé điều khiển giao tiếp như:
PCLK (Peripheral Clock): Xung nhịp clock của APB, PADDR (Peripheral Address):
Dia chi bus dùng dé truy cập, PSEL (Peripheral Select): Tín hiệu chon thiết bi ngoại
vi cụ thé, PENABLE (Peripheral Enable): Tín hiệu cho biết một giao tiếp dang hoạtđộng, PWRITE (Peripheral Write): Tin hiệu cho biết một giao tiếp dang hoạt động
16
Trang 15ghi (nếu nó bằng không thì đang hoạt động đọc), PWDATA (Peripheral Write Data):
Dữ liệu ghi vào thiết bị ngoại vi, PRDATA (Peripheral Read Data): Dữ liệu doc từ
thiết bị ngoại vi, PREADY (Peripheral Ready): Tin hiệu cho biết thiết bị ngoại vi đãsẵn sàng hoàn tất giao dịch, PSLVERR (Peripheral Slave Error): Tín hiệu báo lỗi từthiết bị ngoại vi Bằng cách sử dụng các tín hiệu trên một giao tiếp APB thường sẽ có
ba trang thái: trạng thái chờ (idle),trang thái chuẩn bi (setup), trạng thái access (truy cập).
2.2 Các thuật toán nhân ma trận
Trong phan này, các thuật toán có thé được sử dụng dé triển khai phan cứng sẽ
được mô tả Có nhiêu cách triên khai khác nhau với các mức độ phức tạp khác nhau.
Các phép toán đơn giản nhất dé triển khai là các phép cộng và trừ ma trận Chúng
là các phép toán nhị phân được định nghĩa cho các ma trận có cùng kích thước, trong
đó mỗi phần tử của ma trận thứ nhất được cộng hoặc trừ với phần tử ở cùng vi trí
trong ma trận thứ hai.
Việc thực hiện các phép cộng và trừ ma trận trên phân cứng sẽ nhanh hơn đôi với
các ma trận lớn so với trên phân mêm Trong phân mêm, các phép toán với ma trận
phải được tính toán tuân tự, nhưng trong phân cứng, nhiêu phép toán có thê được thực
hiện song song, dẫn đến số lượng lệnh tổng thé ít hơn và do đó hiệu suất cao hơn
Khi xem xét các thuật toán dé triển khai, cần cân nhắc một số yếu tố Thứ nhất, độphức tạp là một yêu tố quan trọng vì các thuật toán có độ phức tạp thấp hơn sẽ mat ítthời gian tính toán hơn, đặc biệt là đối với các ma trận lớn Thứ hai, độ khó trong việctriển khai chúng trên phần cứng và liệu thời gian tính toán được rút ngắn có đáng với
sự phức tạp thêm vào hay không Cuối cùng, mức độ hữu ích và tần suất các phéptoán được sử dụng trong thực tế
2.2.1 Thuật toán nhân ma trận
Một phép toán trung tâm trong đại số tuyến tính là phép nhân ma trận, có théđược tính toán bằng nhiều thuật toán khác nhau Thuật toán đơn giản nhất đề triển
17
Trang 16khai là thuật toán nhân ma trận cơ bản, hoạt động theo định nghĩa cơ bản của phép
nhân ma trận Thuật toán này có độ phức tạp O(n*) [1].
Mặc dù có những thuật toán nhanh hơn thuật toán nhân ma trận cơ bản, nhưng
lại chúng không dễ triển khai, dù là trong phần mềm hay phan cứng Ví dụ như thuậttoán Strassen, có độ phức tạp O(n?Š!) [1] Độ phức tạp này thấp hơn so với thuật toánnhân ma trận cơ bản, nhưng cũng khó triển khai hơn và có thé không mang lại hiệusuất tốt hơn cho các ma trận nhỏ, dựa trên số lượng lệnh cần thiết dé tính toán mỗiphần tử
Một thuật toán khác là thuật toán Coppersmith-Winograd, có độ phức tạp
O(n?3”% [2] [3] Mặc dù thuật toán này rõ ràng có độ phức tạp tốt hơn, nhưng cũng
là một thuật toán phức tạp khó dé triển khai và, giống như thuật toán Strassen, có khả
năng dẫn đến hiệu suất sẽ chậm hơn đối với các ma trận nhỏ như trong giới hạn đề
xe
tal.
Gan đây, có một thuật toán mới được phát hiện cho phép nhân ma trận với độ
phức tạp tốt hơn một chút là O(n?'”3) [3] Tuy nhiên nó tương tự như các thuật toán
như Coppersmith-Winograd và Strassen, cũng có khả năng dẫn dén hiệu suất khôngđược tốt cho các ma trận nhỏ như trong đề tài
Các bộ tăng tôc phân cứng cho các ma trận nhỏ sẽ có lợi hơn khi triên khai băng
thuật toán nhân ma trận cơ bản Khi các ma trận đủ lớn, hiệu suât có thê được cải
thiện bằng cách sử dụng một trong ba thuật toán khác đã thảo luận ở trên
18
Trang 172.3 Quy trình công nghệ
Vì đề tài sẽ được thực hiện layout nên sẽ thảo luận qua một 86 quy trình công nghệ
và cách triển khai của thiết kế ở bước thiết kế vật lý Có rất nhiều quy trình thiết kế
từ đơn giản đến phức tạp tuy nhiên nhóm sẽ chọn quy trình cơ bản nhất của quá trìnhthiết kế như hình 2.1 bên dưới Đây cũng là quy trình mà nhóm sẽ bám theo trongxuyên suốt quá trình thiết kế vật lý cho thiết kế
Trang 18dé tài này sẽ sử dụng một số công cụ như VCS (Verilog Compiler Simulator) để giúp
mô phỏng, kiểm tra và xác minh chức năng của thiết kế được viết với ngôn ngữ mô
ta phần cứng system verilog DC hay Design Compiler sẽ giúp cho việc tổng hợp
RTL thành gate-netlist Formality (FM) giúp kiểm tra tính tương đương về mặt logic
của thiết kế sau khi tông hợp Cuối cùng ta sẽ sủ dụng ICC2 (IC Compiler II) dé tiến
hành tạo thiết kế vật lý và kiểm tra các ràng buộc về sản xuất vật lý của thiết kế.
2.5 RISC-V
RISC-V là một dự án nhằm tạo ra một ISA mở và miễn phí, có thể được thương
mại hóa mà không phải trả phí giấy phép [4] ISA này ban đầu được phát triển tại Đại
hoc California, Berkeley.[4]
RISC-V, như tên gọi của nó, là một ISA dựa trên RISC [5] Có các phiên ban khác
nhau của ISA hỗ trợ kiến trúc 32-bit, 64-bit và 128-bit [5] RISC-V hỗ trợ một số lệnh
cơ bản, và bat kỳ tính năng hoặc lệnh bé sung nào cũng có thé được triển khai khicần, nhờ vào tính chất mã nguồn mở của nó
Với thiết kế là một bộ tăng tốc phần cứng tách biệt khỏi lõi xử lý sẽ được tạo ratrong dự án này, ta sẽ không đi sâu vào các thành phần và lõi của RISC-V Vì vậy,
các thảo luận về các chi tiệt kỹ thuật của kiên trúc sẽ được bỏ qua trong báo cáo này.
20
Trang 19Chương 3 QUI TRÌNH THIET KE
Ở chương này, sẽ giải thích chỉ tiết các đặc tả, các yêu cầu của thiết kế được đặt ra ở
cả front-end và back-end và cách mà đề tài được triển khai và thực hiện về mặt luận
lý cũng như về mặt vật lý Ngoài ra các quy trình kiểm tra và đánh giá cũng sẽ đượcthảo luận ở phan này
3.1 Phân tích và lên kế hoạch thiết kế
3.1.1 Phân tích lý do sử dụng phương pháp APB
Mục tiêu ban đầu của đề tài là thiết kế một bộ nhân ma trận tích hợp với lõi
RISC-V Nhưng vi ly do về thời gian và khả năng am hiểu về hệ thống còn han hẹp nênnhóm quyết định chỉ dừng ở việc tích hợp ma trận với APB bus ở đề tài này Như vậytrên các hệ thống lớn một SoC có lõi RISC -V như hình 3.1 sẽ dễ dàng tích hợp đượcvới bộ nhân qua APB Có thé thấy một hệ thong với tên Pulpino gồm lõi RISC-V vàbus AXI, APB Dữ liệu từ APB có thé được truy cập qua AXI qua bridge giữa AXI
và APB Tuy rằng APB sẽ mang lại hiệu năng thấp hơn AXI nhưng vì tính đơn giản
của nó nhóm sẽ chọn APB và tích hợp với bộ nhân tạo thành một IP (Intellectual
Property) Từ đó có thê phát triển và kết hợp với lõi RISC-V trong tương lai qua APBhoặc phát triển hơn là qua AXI
21
Trang 203.1.2 Đặc tả kỹ thuật cho phan Front-end (Specification of Front-end)
Bộ nhân ma trận sẽ được viết và thiết kế chính ở phần này Điều tối thiêu cần đạtđược là bộ nhân phải biểu diễn được các phép tính toán nhân ma trận cơ bản trên số
nguyên 8bit trên ma trận vuông Bộ nhân phải có khả năng hỗ trợ các phép toán thực
hiện trên ít nhất là số nguyên không dấu, và không cần hỗ trợ xử lý lỗi trong trườnghợp xảy ra tràn số nguyên Phép nhân ma trận là phép toán quan trong cần hỗ trợ vì
nó phức tạp hơn so với phép nhân thông thường (nhân từng phan tử) và có độ phứctạp bậc ba, do đó nó sẽ tối ưu cho việc tăng tốc phần cứng và tích hợp cho sau này
Các đặc tả chính được trình bày như bảng
Kết quả cuối cùng phải đạt những yêu cầu cơ bản như bảng 3.1 dưới đây dé đảm
bảo về các chức năng cơ bản nhat.
22
Trang 21Bảng 3 1 Bang thể hiện đặc tả kỹ thuật cho phan front-end
Mục Mô tả
FE.I Bộ nhân phải tính toán đúng với số
nguyên
FE.2 Phải là ma trận vuông
FE.3 Tích hợp được với APB
3.1.3 Đặc tả kỹ thuật cho phần Back-end (Specification of Back-end)
Sau khi thiết kế hoàn thành các yêu cầu ở Front-end Bước tiếp theo ta sẽ triểnkhai xuống phần cứng thực hiện layout cho kết quả hiện có (RTL đã xác minh) Cóthể nói đây là bước then chốt trong việc chuyên đổi thiết kế thành một sơ đồ vật lýthực tế dé có thé chế tạo ở nhà máy Quá trình này gồm rất nhiều bước quan trọngnhư đã được trình bày Tuy nhiên, để đảm bảo thiết kế được hoàn thiện và đáng tin
cậy cần phải dam bảo những yếu tô như trong bảng 3.2 dé đạt được hiệu suất tối ưu
nhất
Thiết kế phải đạt được các chỉ tiêu về tần số là 200Mhz, về timing đảm bao không
bị vi phạm về mặt setup (thiết lập), điều này đảm bảo rằng APB có thé đáp ứng đượcvới yêu cầu tầng số <=200Mhz vì trên thực tế APB sẽ hoạt động không quá nhanh sovới tốc độ đề ra Chính vì thế ta cần phải dự trù cho khả năng của thiết kế khi hoạtđộng trên điều kiện thực tế là được tích hợp trong một thành phần khác.Ngoài ra thiết kế cần phải được phân tích và thực hiện trên tối thiêu hai điều kiện hoạtđộng khác nhau - tệ nhất và tốt nhất Mục đích là để đảm bảo rằng thiết kế có khảnăng đáp ứng được các điều kiện trong khuôn khổ cho phép vì đã được dự trù trướctrong việc thiết kế vật lý
Cần đảm bảo tính tương đồng sau khi tổng hợp netlist xong vì nếu không có sự
tương đồng, đồng nhất từ RTL cho đến sau khi tổng hợp netlist thì các công việc sau
23
Trang 22đó hoàn toàn là vô nghĩa Chính vì thế đây là bước quan trọng trong phần back-endcũng cần phải được bao phủ.
Bảng 3 2 Các yêu cầu ở bước back-end
Mục Mô tả
BE.1 Tan số hoạt động >= 200Mhz
BE.2 Corner phân tích >= 2 scenariors trong việc đặt rang
buộc va phân tích dé đảm bảo mạch có thé hoạt độngđược trong các điều kiện khác nhau
BE.3 Không bị vi phạm (violated) về timing ở cả bước tong
hợp netlist và bước thiết kế vật lý
BE.4 Cần phải đảm bảo tính tương đồng trước và sau khi
HRESET
Hình 3 1 Sơ đồ khối tổng quan
PSLVERR
24
Trang 23khối tổng quan như ở hình 3.2 Ta sẽ đi chỉ tiết vào chức năng cũng như vai trò của
các khối
3.2.1 Xây dựng khối nhân ma trận (Matrix_multiply)
Trước tiên ta cần xây dựng khối nhận ma trận với đúng spec đã đề ra với tênmatrix_multiply như hình Tức là một khối nhân ma trận 4x4 với input đầu vào là hai
ma trận 4x4 gồm 16 phan tử với mỗi phan tử trong ma trận là 8bit dữ liệu Output của
Hình 3 2 Khối chức năng nhân ma trận 4x4Giả sử ta có hai ma trận A và B kích thước 4x4 tức là gồm 16 phần tử với mỗiphan tử là 8bit dir liệu như đã đề cập trước đó
đi jy I1 Ay bị Địa bịy bị;
A= đi G22 Q23 Q21 B= boy by bạy bag
431 432 433 34 bz, Dạy bạ bạ¿
đại dạy gg đạa bay Dạy Dạy Da
Các phần tử trong ma trận kết quả C được tính như sau
Cụ = an X bij + ai2 X bai + ai3 X bai + aia X bai
Vi dụ: cịi= an X bi + ai2 X bại + ala X bai + al4 X bại
25
Trang 243.2.2 Xây dựng khối top_acc
acc_out
acc inB |mat_B
Hình 3 3 Khối top acceleratorMục đích chính của khối này giúp việc giao tiếp giữa APB va ma trận dé hơn
Giúp việc nhận và nhập dir liệu sử dụng dé dàng hơn Ngoài ra quan trọng nhất, saunày còn có thé truyền dữ liệu vào cho các khối khác như tính chuyền vị, ma trận
nghịch đảo,
3.2.3 Xây dựng khối apb_acc
Sau khi đã có khối nhân tiếp đến ta sẽ xây dựng khối giao tiếp giữa APB vàmatrix Giúp khối top_acc hiểu được tín hiệu của APB khi có tín hiệu từ vi xử lí, từ
đó có thể nhận và gửi dữ liệu một cách dễ dàng Ở khối này gồm các input nhưPADDR là tín hiệu địa chỉ 32bit, PSEL giúp chon slave dé truyền tín hiệu, PNABLE
giúp kích hoạt chu kỳ chuyên APB tiếp theo, PWDATA giúp ghi dữ liệu và PWRITE
giúp kích hoạt ghi (high) hoặc đọc (low) dữ liệu Day là những tín hiệu input quan
trọng và cơ bản nhất của APB
26
Trang 25PENABLE
Hình 3 4 Khối APB acc
Ngoài ra các tín hiệu output của khối apb_acc này gồm có PREADY chỉ rằngslave đã sẵn sàng nhận dữ liệu, PSLVERR hoạt động khi có lỗi truyền tải và PRDATA
chỉ răng dữ liệu dữ liệu sẵn sàng được đọc.
Apb_acc sẽ hoạt động trên ba trạng thái chính Đầu tiên là trạng thái nghỉ nghĩa
là dữ liệu sẽ trong trạng thái chờ trạng thái tiếp theo Thứ hai là trạng thái chuẩn bị:lúc này đữ liệu sẽ vào trạng thái chuẩn bị cho trạng thái truy cập tiếp theo,trong đócác tín hiệu như PSEL và PREADY phải được bật thông báo rằng slave đã được chọn
và sẵn sàng, trong khi đó PWRITE sẽ đại diện cho trạng thái ghi (high) hay đọc (low)
trên slave này Cuối cùng là trạng thái truy cập, ở trạng thái này tín hiệu PENABLE
sẽ được bật và tùy theo trạng thái là đọc hoặc ghi thì tín hiệu sẽ được gửi với trạng thái khác nhau Như khi ghi dữ liệu sẽ truy cập vào thanh ghi địa chỉ PADDR , được
gửi đi thông qua PWDATA và gửi thang vào ma trận con với dit liệu là dãy số 32 bitthê hiện cho một dòng ma trận, trong đó mỗi 8 bit sẽ đại diện cho một số Như đượcthể hiện ở bảng 3.3 dưới đây
Bảng 3 3 Địa chi và các bit được biểu diễn của ma trận input
Address” Bit 31:24 Bit 23:16 Bit 15:8 Bit 7:0
27
Trang 26Ox1A108000 | Mat_in A Mat_in_ A33 Mat_in_Aj2 Mat_in_ Ai
0x1A108004 | Mat_in_Az4 Mat_in_A23 Mat_in_A22 Mat_in_ Aai
Ox1A108008 | Mat_in_A34 Mat_in_A33 Mat_in_A32 Mat_in_A31
Ox1A10800C | Mat_in Aas Mat_in_Aq43 Mat_in_Aa2 Mat_in_Aa1
0x1A108010 | Mat_in_Bui4 Mat_in_Bi3 Mat_in_Bi2 Mat_in_Bìi
0x1A108014 | Mat_in_Baa Mat_in_Bz23 Mat_in_B22 Mat_in_Bai
0x1A108018 | Mat_in_ B34 Mat_in_ B33 Mat_in_B32 Mat_in_Bai
0x1A10801C | Mat_in_Baa Mat_in_Ba3 Mat_in_Ba¿ Mat_in_Bì+¿
Khi đọc, PADDR cũng được truy cập vào PRDATA sẽ mang tính chất nhận
dữ liệu và dữ liệu sẽ là ma trận kết quả với dữ liệu sẽ là dãy số 32bit thé hiện cho hai
số liền ké, trong đó mỗi 16 bit sẽ đại điện cho một số - một phần tử trong ma trận kếtquả Cách tổ chức được thé hiện như bảng 3.4 bên dưới
Bảng 3 4 Địa chỉ và các bit được biểu diễn của ma trận output
Address” Bit 31:16 Bit 15:0
0x1A108000 Mat_out_Ci2 Mat_out_Ci;
0x 1A108004 Mat_out_Ci4 Mat_out_ Ca
0x1A108008 Mat_out_C22 Mat_out_ Cai
0x1A10800C Mat_out_C24 Mat_out_C23
0x1A108010 Mat_out_C32 Mat_out_ Cai
0x1A108014 Mat_out_C34 Mat_out_C33
0x1A108018 Mat_out_Ca2 Mat_out_ Cái
0x1A10801C Mat_out_ Caa Mat_out_ Caa
3.2.4 Xây dựng bộ test cho thiết kế
Sau khi đa hoàn thành thiết kế, ta sẽ tiễn hành xây dựng một bộ test hoàn chỉnhcho dé đảm bảo thiết kế đúng về mặt logic Với testbench sẽ chạy quá trình nhập và
28
Trang 27ghi dữ liệu của APB, từ đó cho ra kết quả sau khi đã có day đủ dữ liệu.Ở bước RTL,
ta sẽ sử dụng bộ test này với Vivado và sử dụng với VCS sau khi có netlist từ kết quả
synthesis Testbench này sẽ giúp đưa thử các input input đầu vào và giúp ta kiểm trakết quả trên các input đầu vào đó mục đích để xác minh rằng thiết kế vẫn đúng vềmặt logic sau khi thiết kế và ngay cả sau khi tổng hợp thành netlist Điều này đảm
bảo tính toàn vẹn về chức năng của thiệt kê.
3.3 Thực hiện ở phần Back-end
Ở phan này ta sẽ tiến hành thực hiện các yêu cầu của phan back-end từ tổng hợpnetlist cho đến thiết kế vật lý cho thiết kế Quy trình thiết kế của giai đoạn bao gồmviệc synthesis (tổng hợp netlist) kiểm tra tính tương đồng bằng Formality(Equivalence check) và sau đó tiến hành layout bằng công cụ ICC2 (IC Compiler II)
Trước tiên thiết kế cần được tong hợp từ RTL sang netlist (mức cổng) bang DC(Design Compiler), ở bước này cần thực hiện và tối ưu trong quá trình tổng hợp bởitool DC Sau khi đã có netlist được tong hợp ta cần phải xác minh rang netlist hiệntai trong đồng với RTL gốc bằng cách sử dung tool Formality Nếu quá trình này xảy
ra thiếu sót cần phải debug và chạy lai quá trình tổng hợp Lap lại cho đến khi không
có sự thiếu sót giữa RTL gốc và netlist được tạo ra sau cùng Bởi vì nếu không có sựtương đồng giữa RTL gốc và gate netlist thì chức năng có thể bị sai hoàn toàn, chức
năng sai thì việc layout trở nên hoàn toàn vô nghĩa.
Sau khi đã có netlist hoàn chỉnh ta sẽ tiến hành thực hiện thiết kế vật lý cho thiết
kế Ở bước này ta sẽ sử dụng tool ICC2 Cần lưu ý các thư viện và các thiết lập ràng
buộc sao cho thỏa mãn với các yêu câu đặt ra.
29
Trang 283.3.1 Design Compiler [RTL Synthesis]
Sau khi thiết kế xong luận ly va đã có RTL chuẩn ta sẽ tiễn hành sử dung DesignCompiler dé tổng hop RTL (Register Transfer Logic) với thư viện standard cell làmdau vào, và kết qua dau ra sẽ là một netlist cấp công phụ thuộc vào công nghệ ở đây
ta sẽ sử dụng thư viện công nghệ CMOS 32nm Netlist cấp công không gì khác hơn
là sự biểu diễn cấu trúc của các standard cell dựa trên thư viện đầu vào Công cụ tổnghợp thực hiện nhiều bước nội gồm cả phân tích (analyze), elaborate, tông hợp(compile), Bên dưới là lưu đồ của quá trình tổng hop
Map to
Link Library (if gate-level)
Write-out Optimized Netlist
Apply
Constraints
Hình 3 5 Quy trình của bước Synthesis — nguồn Synopsys
Trong giai đoạn nay Design Compiler đọc các thư viện công nghệ (tech lib), thu
viện DesignWare và thư viện symboll dé thực hiện tổng hợp Trong quá trình tổng
hợp, Design Compiler (DC) dịch RTL thành các thành phần được trích xuất từ thư
viện công nghệ và thư viện DesignWare Thư viện công nghệ (tech lib) bao gồm cáccông logic cơ bản và các flip-flop Thư viện DesignWare chứa các thành phần phức
tạp hơn, ví dụ như bộ cộng và bộ so sánh, có thể được sử dụng cho các khối xây dựng
số học DC có thé tự động xác định khi nào cần sử dụng các thành phần DesignWare
và sau đó có thé tổng hợp hiệu quả các thành phan này thành các triển khai cấp công
30
Trang 29Sau khi đã chuan bị thư viện và các thiết lập cần thiết xong, các ràng buộc
(constraint) chính như input_ delay, output_ delay, cần được thiết lập ở giai đoạn
này (xem phụ lục ) Sau khi hoàn thành việc thiết lập và xây dựng các ràng buộc tacần đảm bảo răng thiết kế không có bất kỳ vấn đề gì nghiêm trọng như không thểtham chiếu thư viện đích hay các kết nói bị ngắt bị lỗi bằng lệnh check_ design
Sau khi đảm bao rằng thiết kế đã được kiểm tra, thiết kế sẽ được tiến hành tông hợp
bằng lệnh compile trong DC tool Đây là bước trái tim của tổng hop netlist Trongquá trình tổng hợp ta sẽ sử dụng một số tùy chọn khác như map_effort dé tăng khả
năng ánh xạ, hay area effort cho việc tối ưu diện tích (xem phụ lục), và các tùy chọn
khác tùy thuộc vào mục đích thiết kế và tối ưu
Sau khi compile DC sẽ cố gắng tổng hợp thiết kế trong khi vẫn đáp ứng các ràng
buộc DC xem xét hai loại ràng buộc: ràng buộc do người dùng chỉ định và ràng buộc
quy tắc thiết kế Các ràng buộc do người dùng chỉ định là do ta đã định nghĩa và ápdụng cho tool như ở trên Rang buộc quy tắc thiết kế là các ràng buộc cô định đượcquy định bởi thư viện standard cell Ví dụ, có những hạn chế về tải mà các công cụ
thê có thê điêu khiên và thời gian chuyền đôi của một sô chân nhât định.
Lệnh compile sẽ báo cáo cách thiết kế đang được tối ưu hóa Ta sẽ thấy DC thực
hiện ánh xạ công nghệ, tối ưu hóa độ trễ và giảm diện tích Hình 3.7 cho thấy một
đoạn trích từ kết quả đầu ra của lệnh compile Mỗi dòng là một lần tối ưu hóa Cộtdiện tích được tính theo don vi cụ thé của thư viện standard cell Cột slack âm lớnnhất (worst negative slack) cho thấy khoảng trống giữa đường dữ liệu quan trongtrong thiết kế Giá trị slack âm lớn hơn thì tệ hơn vì điều này có nghĩa là thiết kếkhông đạt tần số xung nhịp mong muốn với một khoảng cách lớn hơn Tổng slack âm(total negative slack) là tổng của tất cả các slack âm trên tất cả các điểm cuối trongthiết kế - nếu đây là một số âm lớn, điều đó cho thấy rang không chỉ thiết kế khôngđạt thoi gian, mà còn có thể nhiều đường dữ liệu qua chậm Nếu tổng slack âm là một
sô âm nhỏ, điêu đó cho thây chỉ có một vải đường dân quá chậm Design rule cost là
31
Trang 30chỉ số chỉ về số lượng cell vi phạm một trong các ràng buộc quy tắc thiết kế của thư
viện chuân.
Beginning Delay Optimization Phase
WORST NEG SETUP DESIGN
SLACK COST RULE COST ENDPOINT
49957.6 49957.6 49957.6
Area-Recovery Phase (max_area 64300)
TOTAL
WORST NEG SETUP DESIGN
SLACK RULE COST ENDPOINT
E2 3 > + > 3 (2 Ú2 (2 2 aD œ@œ(Œœ(Œœ(Œœ(@(ŒœŒœ(Œ(Œ@œ%(Œœ(ŒœCŒGœ(œ eooooocoocococoocoo@Ooooqooooccoocoo OoOoooqocoococooncdocooSoocqcoocoooooooa so
700: 49955.1
Loading db file ' /home/student84/STNHPHAN/MUL/ref/DBs/saed32hvt_ss0p75v125c.
Loading db file ' /home/student04/STNHPHAN/MUL /ref/DBs/saed32hvt_ss0p75vn40c.
Loading db file '/home/student@4/SINHPHAN/MUL /ret/DBs/saed32lvt_ss@p75v125c.
Loading db file '/home/student04/SINHPHAN/MUL/ref/DBs/saed32lvt_ssOp75vn40c.
Hình 3 6 Một đoạn từ kết quả compile
dụng useful-skew hay giảm delay thực tế trên đường data path Tuy nhiên ta cũng có
thé xem xét nới long (relax) ràng buộc nếu cần thiết dé giảm thời gian thực thi cũngnhư giảm thời gian debug cho thiết kế Ví dụ như vi phạm về mặt area ở đây ta có thể
xem xét và nới long constraint hiện có về mặt diện tích đành chỗ cho các constraint
được ưu tiên hơn như là timming.
32
Trang 31min_capacitance (MET)
max_transition 88 (MET)
max_Capacitance 88 (MET)
Hình 3 7 Một mẫu constraint bi violate
Bên cạnh netlist cap công đã được tổng hợp, tệp dc_synth.tcl còn tạo ra nhiềubáo cáo văn ban chỉ tiết khác giúp ta dé dang đánh giá chất lượng của thiết kế Ví dụ,báo cáo synth_area.rpt chứa thông tin về diện tích cho mỗi mô-đun trong thiết kế.Chúng ta có thé sử dung báo cáo synth area.rpt dé hiểu rõ cách các mô-đun khác
nhau được triển khai Chúng ta cũng có thể sử dụng báo cáo diện tích để đo lường
diện tích tương đôi của các mô-đun khác nhau.
Báo cáo synth_area.rpt - Chứa thông tin về diện tích cho mỗi instance mô-đun
Hierarchical Cell Count: 178
Hierarchical Port Count: 8354
Leaf Cell Count: 17882
Buf/Inv Cell Count: 983
Buf Cell Count: 291
Inv Cell Count: 692
CT Buf/Inv Cell Count: 0
Combinational Cell Count: 17370
Sequential Cell Count: 512
Macro Count: 0
33
Trang 32Combinational Area: 46571.887894
Noncombinational Area: 3383.165039
Buf/Inv Area: 1489.283870
Total Buffer Area: 609.95
Total Inverter Area: 879.34
Macro/Black Box Area: 0.000000
Net Area: 16032.939738
Cell Area: 49955.052933
Design Area: 65987.992671
Design Rules
Total Number of Nets: 20705
Nets With Violations: 0
Max Trans Violations: 0
Max Cap Violations: 0
Design WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0
Design (Hold) WNS: 0.00 TNS: 0.00 Number of Violating Paths: 0
3.3.2 Formality Check
Sau khi hoàn thành bước synthesis, lúc này ta đã có một netlist ở mức công ma
Design Compiler đã tạo ra Để xác minh được liệu netlist này có còn đúng logic so
với RTL được viết ban đầu không ta cần đảm bảo tính tương đồng giữa chúng Đâycũng là bước dé xác minh điều này Dưới đây là flow của bước check Formality
34
Trang 33Check
Synthesis (Formality)
(Design Compiler)
SVF (guidance)
Hình 3 8 Quy trình cua bước Formality
Qua flow ta có thé thấy input đầu vào của chúng ta cần là Netlist, SVF SVF(guidance) là file được Design Compiler sinh ra và cần cho bước Formality Ngoài ra
RTL và thư viện tham chiếu gốc cũng là input quan trọng dé Formality có thé so sánh.Với các input trên sau khi kiểm tra rằng không có điều gì bị thiết sót, tức là netlistvẫn tương đồng với RTL, lúc này ta có thê chuyền sang bước kế tiếp kiêm thử lại lần
nữa về mặt logic bang cách sử dung VCS, sau khi mọi thứ không có van dé gì ta tiến
hành layout cho thiết kế băng ICC2
3.3.3 ICC2 — Physical Design
Sau khi đã có một netlist chuẩn với các yêu cầu về mặt luận lý vẫn đúng, tiếp đến
ta sẽ tiễn hành layout cho kết qua netlist được synthesis ở bước Design Compiler.Quy trình thiết kế của bước thiết kế vật lý này được trình bày như hình 3.10 bên dưới
Bao gồm các bước từ Import Design cho đến Physical Verification (Xác minh vật lý)
Day là một quy trình cơ bản và quan trọng trong thiết kế vật lý Dé dam bao rằng thiết
kế được hoàn thiện và không có bất kỳ các lỗi nào liên quan đến timming hay, các lỗi
về công nghệ như DRC, LVS Tất cả mọi bước đều cần được xem xét và hoàn thiện
kỹ càng dé đảm bao mọi thứ có thé hoàn thiện Có thé thay đây là một quy trình tươngđối phức tạp chính vì thế nhóm mất nhiều thời gian dé thiết lập quy trình (flow) chảy
xuyên suôt một các hợp lý Cũng khi làm quen với tool và các chức năng cơ bản của
35
Trang 34tool thiết kế Sau khi đã hoàn thiện về flow một cách logic ta sẽ tién hanh thuc hién
theo trinh tu dugc trinh bay sau.
Import Design, đây là bước thiết lập và chuẩn bi các input đầu vào cho thiết kế
Cũng là bước khó khăn hơn hết vì cần phải chuẩn bị đầy đủ các input cũng như cácthiết lập về các biến môi trường dé thiết kế có thé chạy xuyên suốt Các input quan
trọng ở bước này gồm: netlist (.v), file sdc (.sdc), RC model, techfile (.tf), va thư viện
thiết kế (.ndm) - ở đây ta sẽ sử dụng thư viện 32nm như đã đề cập Sau khi đã thiếtlập các input cần thiết ta cần thiết lập các biến global và xây dựng lại flow dé thiết kế
có thể chạy một cách logic từ import cho đến route Chạy ở bước sau sẽ cần bướctrước và bước trước sẽ được lưu trước khi thực hiện bước sau Điều này giúp ta dễdàng debug và quản lý thư mục, các biến input, biến options, một cách dé dàng
Một khi môi trường và các biến input đã được thiết lập và sẵn sàng ta sẽ tiến hànhtạo die, core va tao port cho thiết kế ở bước floorplan Vì thiết kế của chúng ta là thiết
36
Trang 35kế top, cũng không có quy tắc hình dạng (shape rule) nào được áp dụng nên ta sẽ cho
tool tự tạo shape hình vuông với tỉ lệ urate là 65% điều này để đảm bảo design khôngquá bó buộc và có chỗ trồng dé chèn cell dé sửa các vi phạm về timming nếu có sau
này Tỉ lệ urate sẽ được tính theo công thức bên dưới.
Cell area
Urate (%) = 100* (3.1)
(Core area—macro area)
Die, core được tao va port được rải déu xung quanh các cạnh trên thiết kế nhưhình 3.11 Lúc này thiết chỉ mới hoàn thành tạo die, core, port, site-row các thànhphan co ban can thiét cho thiét ké
Với die, core vừa tạo xong ta sẽ tiến hành xây dựng lưới power cho thiết kế.Đây là một bước phức tạp và mat nhiều thời gian dé tìm hiểu cách xây dựng powercho thiết kế vì nếu xây dựng sai có thê tạo ra rất nhiều lỗi DRC, LVS liên quan đếncác via được bắt giữa các lớp layer ở lớp layer cao và các layer thấp Có rất nhiều
37