1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế bộ tăng tốc phần cứng với RISC-V

70 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Bộ Tăng Tốc Phần Cứng Với RISC-V
Tác giả Phan Truong Sinh, Lam Son Nhat Thai
Người hướng dẫn ThS. Tạ Trớ Đức, ThS. Phạm Minh Quan
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 70
Dung lượng 73,37 MB

Nội dung

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 2

LỜ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 3

MỤ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 4

3.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 5

DANH 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 6

6 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 7

Hì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 8

DANH 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 9

DANH 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 10

TÓ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 11

Chươ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 12

1.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 13

lý 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 14

Chươ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 15

ghi (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 16

khai 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 17

2.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 18

dé 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 19

Chươ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 20

3.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 21

Bả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 23

khố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 24

3.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 25

PENABLE

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 26

Ox1A108000 | 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 27

ghi 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 28

3.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 29

Sau 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 30

chỉ 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 31

min_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 32

Combinational 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 33

Check

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 34

tool 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 35

kế 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

Ngày đăng: 08/12/2024, 14:57

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] S. Huss-Lederman, E. M. Jacobson, J. R. Johnson, A. Tsao, and T. Turnbull,“Implementation of strassen’s algorithm for matrix multiplication,” inSupercomputing’96: Proceedings of the 1996 ACM/IEEE Conference on Supercomputing, pp. 32-32, IEEE, 1996 Sách, tạp chí
Tiêu đề: Implementation of strassen’s algorithm for matrix multiplication
[2] D. Coppersmith and S. Winograd, “Matrix multiplication via arithmeticprogressions,” Journal of symbolic computation, vol. 9, no. 3, pp. 251—280,1990 Sách, tạp chí
Tiêu đề: Matrix multiplication via arithmeticprogressions
[3] V. V. Williams, “Multiplying matrices faster than coppersmith-winograd.,” inSTOC, vol. 12, pp. 887-898, Citeseer, 2012 Sách, tạp chí
Tiêu đề: Multiplying matrices faster than coppersmith-winograd
[4] RISC-V Foundation, “About the risc-v foundation.” https://riscv.org/ risc-v- foundation/. Accessed: 2019-06-0 Sách, tạp chí
Tiêu đề: About the risc-v foundation
[5] A. Waterman, Y. Lee, D. A. Patterson, and K. Asanovic, “The risc-v instruction set manual, volume 1: Base user-level isa,” EECS Department, UC Berkeley,Tech. Rep. UCB/EECS-2011-62, vol. 116, 2011 Sách, tạp chí
Tiêu đề: The risc-v instructionset manual, volume 1: Base user-level isa
[6] J. Redmon and A. Farhadi, “Yolov3: An incremental improvement,” arXiv,2018 Sách, tạp chí
Tiêu đề: Yolov3: An incremental improvement

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN