Chương 1. TONG QUAN wivesssesssssesssssesssssessssecssseesssssesssssecssssssssseesssesssssecsssecssssecssssecessees 3 1. Kiến trúc vi xử LY cecceeecceeccssecssseessssecsssecssssscssssecssseecsssscssssecssssesssvecssseesssseessssessssess 3 1. _ Tổng quan về vi xử lý.
Kiến trúc CISC. Kiến trúc RISC. Kiến trúc MIPS. — Lịch sử phát tri@n i.
Kién trúc tập lệnh. Các tập lệnh thực thi trong khóa luận.----- 5s 5s+s<+s+s>sc+x 13 Chương 2. THIẾT KE VI XỬ LÝ MIPS32. Tổng quan thiết kế vi xử Ys.
Các khối chức năng trong VI XỬ ÌẾ. Khối Block Memory Generafor.------z-©se+2++e+cr+szrrseeere 17 2. Khối Program COunIer. Khối Control Unit.
— Khối Register File. _ Khối Register High/LOow. Khối Sign Extend. Khối xử lý MemLoad.
Khối Forwarding Unit. Khối Hazard Unit. Các xung đột đường ống cần giải quyết.-----++22+ze+cz+ererrrerrrrecee 32 2. Kiến trúc đường ống hóa của vi xử lý.
KUNG GOt AT LSU 1. Xung đột Load Data oe eeeesesseeeeeeeeeeeeseeeeeseeeeseseeeeaeeeeeceeeeseeeeaees 35 2. Xung đột rẽ nhánh oo ee escsssseseeseseeeeeeeeeeeseeeeseeeeecseeeeseeeeeeeeeeeaees 37 Chương 3. THIET KE VI XU LY MIPS32 VOI GIAO THỨC AX14.
Đóng gói vi xử ly MIPS với giao thức AXÍ4. _ Kiến trúc vi xử lý trước khi đóng gói. _ Kiến trúc vi xử lý khi đóng gói thành IP. Giao thức AXĨ4.
HH HH HH re gh 4I 3. _ Tổng quan giao thức.------=+2++£+2E+Et2EE+etEEEEerrrkerrrreerri 41 3. Các tín hiệu cụ thé của giao thức AXI trong khóa luận. Mô phỏng tổng quan năm kênh giao tiếp AXI.
Bố sung các khối chức năng khác.----s-cs xx‡Ext+EEtSEEEEEEEEEEESEEEEEEEEkrEEkrtrkerrkerrrrrs 47 Chương 4. THIẾT KE BLOCK DESIGN TREN VIVADO. Tổng quan thiết kế Block Design. __ Kiến trúc tổng quan thiết kẾ.
Thiết kế trên Vivado. Các IPcủa Xilinx dùng trong thiết kế Block Design. IP Memory Interface Generator (MIG 7 S€r1e$). IP Central Direct Memory Access (IP CDMA).
IP AXT Bram ControÏÏeT.-- ---- <5 S5 3+ * 3+3 # +2 ££#EeeEeeeeeeeeeeeees 51 Chương 5. MÔ PHONG VA ĐÁNH GIA THIET KE. Mô phỏng tập lệnh.--2-++++2VE++++2EEE++tEEEEEEEEEEEEtEEEEEErrrrrkrrrrrrrkrree 52 5. Mô hình kịch bản kiểm thử.
_ Kết quả mô phỏng. Kết quả tổng hợp, thực thi và đánh giá thiết kế. Két quả tong hợp, thực thi của IP vi xử lý MIPS. __ Kết quả tong hợp, thực thi của Block Design.
— Đánh giá thiết kế.----ccccLeccErkerrrkerrrrkrrrrrrrree 76 Chương 6. KÉT LUẬN VÀ HƯỚNG PHAT TRIÉN. Những kinh nghiệm tích lũy. _ Các vẫn đề tồn đọng.
Kết quả đạt được. Hướng phat triÊn. 78 TÀI LIEU THAM KHẢO.--2--©22£©++2EE+++EEEEEEEEEEEEEEEEEEEEEEEEerrrrkrrrrrrrrre 79 PHU LUC I. KIT FPGA XILINX VIRTEX-7 VC707.----2¿-©c¿22ccsscc+ẻ 80 PHU LUC II.
CAC BUGC GENERATE BITSTREAM .ccccssscssecssessseesseessceseeeseeess 83 DANH MỤC HÌNH Hình 1. -- Set rec 9 Hình 1. St St Skeirerrsreererree 9 Hình 2.1: Các giai đoạn xử lý ca Vi XỬ lý.- 5S k+x kg rrrep 16 Hình 2.2: Khối Block Memory enertOr.3: Cách thức ghi va đọc của | port trong Block Memory Generator! .4: Khối Program COU€T.---2- 2£ ©+£2++£+2EEE£EEEEESEEEECEEEEEEEEEEtEErkrrrrrkrrre 19 Hình 2.5: Khối Control Unit.----ccccccccccccctccc++‡EEEEEEEEktktttrrrrrrrrrrrrrrrrrrrrrrrrte 19 Hình 2.7: Khối Register High/LOW.9: Khối Sign Extend cccccccscssesssssesssssesssssessssesssssesssseessssecssssesessecssssesesssesesseesesseeee 24 Hình 2.----:tt,ttttrrhhhhiHHHHHeeerieg 25 Hình 2.13: Khối Forwarding Unit.-----¿©++£+2E+++EE+Et2EEEEtEEEEerEEEerrrrkerrrrerrre 28 Hình 2.14: Khối Hazard Unit.---cccccccccccccccc22‡EEEEEEEEttttttrrrirrrrrrrrrrrrrrrrrrrrtkke 30 Hình 2.15: Kiến trúc đường ông hóa của vi xử lý.------¿¿se+c+xetzerxerrrreerr 32 Hình 2.16: Gửi vượt trước dữ liệu trong Vi Xử lý.17: Gửi vượt trước cho lệnh ghi MemOryy .18: Xung đột với các lệnh load dữ liệu. --- -- 5555 x+<£se+seesserseeee 36 Hình 2.19: Lệnh load dit liệu và tính toán dữ liệu.20: Lệnh rẽ nhánh xảy ra trong đường ống xử lý .21: Lệnh rẽ nhánh ở vi trí B trong cặp lệnh.
---- «5= «+s+ss++ex+ess2 38 Hình 2.22: Lệnh rẽ nhánh cần dữ liệu từ lệnh trước .----- se s++:x++zx++zx++rss 38 Hình 3.1: Kiến trúc vi xử lý MIPS trước khi đóng gói.2: Kiến trúc vi xử lý MIPS khi đóng gói thành IP.3: Kiến trúc chung của giao thức AXI4.4: Một transaction doc của giao thức AXHÍổÌ,. cv exsxsrsrerersrses 42 Hình 3.5: Một transaction ghi của giao thức AXXHIÏổÌ,. tt stststexerererrrsrerses 43 Hình 3.6: Mô phỏng hai kênh đọc AXI4 của Vi xử lý .7: Mô phỏng hai kênh ghi AXI4 của vĩ Xử lý. 5 se cscsrseereereeeee 45 Hình 3.8: Mô phỏng kênh phản hồi tín hiệu ghi AXI4 của vi xử lý .--2¿-++2EE+++22EE+++EEEEE++tEEEEEEEEEEEEtEEEEEErrrrrkrrrrrrkrree 46 Hình 3.10: Khối Store(Queue.1: Kiến trúc tổng quan thiết kế của Block Design.2: Block Design trên phan mềm Vivado.----2¿2©s22+22£+z+£zxz+cvsez 50 Hình 4.3: IP Memory Interface Generator .-- 5 + + 5+ EE+vEeEeeereeererrrreerke 50 Hình 4.4: IP Central Direct Memory Access (CDMA) .5: IP Bram Controller va IP Block Memory GeneratfOr.1: Mô hình kịch bản kiểm thtte.2: Doan câu lệnh trong Initial .- --- ¿2+ 5+ *+s£+eE+eEek+eEeekeeeeerrseeerre 53 Hình 5.3: Yêu cầu đọc trên kênh địa chỉ dC .4: Nhận dữ liệu qua kênh doc dữ liệu.
----- 5+ 5+++£+++>++exez+e+ezsesss 54 Hình 5.5: Ghi dữ liệu được đọc từ bus AXI vào Instruction Memory.6: Quá trình thực thi trong vi xử lý [1] .7: Khối Mult/Div thực hiện tính toán.8: Quá trình thực thi trong vi xử lý [2] .9: Ghi giá trị vào Data MeImOrV.-- - - c1 x2 S kg tr gi 57 Hình 5.10: Ghi giá tri trên bus AXÍ⁄4. -- 55+ Sc + St SH grrrkg 57 Hình 5.11: Tín hiệu phản hồi ghi dữ liệu.12: Quá trình thực thi trong vi xử lý [3]. 5c cc+csxseeerereeesrseeee 58 Hình 5.13: Quá trình thực thi trong vi xử lý [4]. --- ---cc+cs<c+ccsersexeeereerees 59 Hình 5.14: Quá trình thực thi trong vi xử lý [Š ].- s5 se cccsserseeererrreereeee 60 Hình 5.15: Kết quả Register File và High/Low Register [1].16: So sánh kết qua mô phỏng với phần mềm MARS [1].17: Đoạn câu lệnh trong Main Ì.18: Đoạn lệnh chương trình con SubÌ - Ì.
---- 5s ++s+x+x+exse+exexeeeereeees 62 Hình 5.19: Kết quả thực thi của Sub 1-1 .20: Kết quả mô phỏng của Sub1-1 trên MARS.21: Đoạn lệnh chương trình con Sub Í -2.-- ¿+ + +s++++sx+e+erseeseeeeesreeree 64 Hình 5.22: Giá tri lưu trên Data Memory trong MARS [1].23: Kết quả lưu Data Memory trên vi xử lý [ Ï].----¿zz5csez 64 Hình 5.24: Đoạn lệnh chương trình con Sub Ï -Ä.---- ¿55+ s+ss+x+exsssexezeeeexssres 64 Hình 5.25: Kết quả thực thi của Sub Í -3.--22-2sc+2E++c2EEEEtEEEEetEEEErrrkkrrrkrcrek 65 Hình 5.26: Kết qua mô phỏng của Sub1-3 trên MARS.----2- zcsz+c5se¿ 65 Hình 5.27: Đoạn lệnh chương trình con Subl -4.-----s+s++sssx+x+ereeeexereeesreeeee 66 Hình 5.28: Kết quả thực thi của Sub Í ~4.--22-se+2E+Ec2EEEEtEEEEetEEEkrrrrkrrrrrerrek 66 Hình 5.29: Kết quả mô phỏng của Sub1-4 trên MARS.30: Đoạn câu lệnh trong Main 2.31: Doan câu lệnh trong Sub2-1 .32: Kết quả thực thi của Sub2-[.33: Kết qua mô phỏng của Sub2-1 trên MARS.34: Đoạn câu lệnh trong Sub 2 -2.35: Kết quả thực thi của Sub22-2.36: Kết qua mô phỏng của Sub2-2 trên MARS.37: Kết quả vi xử lý khi hoàn tat kịch bản kiểm thử.38: Kết qua mô phỏng trên MARS. 2-22 ©2£2E£+EEE££EEEtEEEerrrxerrseee 71 Hình 5.39: Giá tri trong Data Memory của Vi XỬ Ìý.40: Giá tri Data Memory trong phần mềm MARS.41: Tai nguyên sử dụng của IP vi xử lý MIPS. 555cc ssc+sersesee 72 Hình 5.42: Tài nguyên sử dụng của các khối logic trong IP vi xử lý MIPS.43: Xung clock chính trong IP vi xử lý MIPS .44: Phân tích Timing cho IP vi xử lý MIPS.45: Bao cáo năng lượng tiêu thụ của IP vi xử lý MIPS.46: Tổng số lượng xung clock trong thiết kỀ.----2-- ¿2se2cszeccsed 74 Hình 5.47: Phân tích Timing cho Block Des1gn.48: Tài nguyên sử dụng trong Block Design .49: Báo cáo năng lượng tiêu thụ của Block Design.-----c+c++ DANH MỤC BẢNG Bảng 1.1: Tập thanh ghi trong MIPS. 5 + 5S St St ererrekrereerrrrke II Bang 1.2: Các thanh ghi khác .-¿-¿- ¿+ + ++*+*+*E+E*E#E£kEkEkEkEEkEkEk TH ng ve.3: Cấu trúc định l;šp3g [dit .4: Cau trúc định dang lệnh I .2--2¿©2+++22ES+++t2E+zretrxxrrrrrrrrcree 12 Bảng 1.5: Cau trúc định dạng lệnh ]J.---2¿©+++222E++ttEE+vrrtrxxrrrrrrrecree 13 Bảng 1.6: Các nhóm câu lệnh Xử Ly.
- ---- + 5+ + S+*+k+Ev+eEeEexerekersrsreerkrrrrrke 13 Bang 2.1: Các tín hiệu của khối.2: Các tín hiệu của khối Program CounIer.3: Các tín hiệu của khối Control Unit.4: Quy ước mã bit ALUControl .-5- 5 S2 E22 E*E#EESE+eEekEeEskekekerkeekre 20 Bảng 2.5: Quy ước mã bit BranchÏni§.6: Các tín hiệu của khối Register File .----- 2 ©s¿+2E+ee+evxzecrseeere 22 Bảng 2.7: Các tín hiệu của khối Register High/Low.8: Các tín hiệu của khối 0900 ìv 001 .9: Các tín hiệu của khối Sign Extend.- 2-2 ©s£+2E+ze+£vxee+rrseerr 25 Bảng 2.10: Các tín hiệu của khối AL/U.11: Các tín hiệu của khối Mult/Div.12: Các tín hiệu của khối xử lý MemLoad.13: Các tín hiệu của khối Forwarding Unit.-----+2ez+:+e+czszzr 28 Bảng 2.14: Các tín hiệu của khối Forwarding Unit.-:--z2sc+2ccsscce2 28 Bảng 2.15: Các tín hiệu của khối Hazard Unit.- 2-2 ©s£+2E+ze+EExee+czseerr 31 Bang 2.16: Tông quan xử ly xung đột trong đường ONG .1: Các tín hiệu trong AX 4 bus. Ăn HH ri, 44 Bảng 3.2: Các tín hiệu của khối Control.3: Các tín hiệu của khối StoreQueue.1: Kết quả tính toán lệnh [Ï].------ 2£ ©+£++++2EE+£2EE+£+EEEEe+Erxerrrreerr 55 Bảng 5.2: Kết quả tính toán lệnh [2].3: Két quả tính toán lệnh [3]. eee eeeeseeseeseeeceeeseeseeeeeesecseeeeessetseeaeeeseeeaes 59 Bảng 5.4: Kết quả tính toán lệnh [4] Bảng 5.5: Kết quả tính toán lệnh [5] DANH MỤC TU VIET TAT Internet of Thing Internet van vat Advanced eXtensible Interface Giao diện bus mở rộng nâng cao Complex Instruction Set Computer | Máy tính với tập lệnh phức tạp Reduced Instruction Set Computer | Máy tính với tập lệnh đơn giản hóa Advanced RISC Machines Máy học phát triển từ RICS Microprocessor without Interlocked | Kiên trúc tập lệnh RISC phát triên Pipeline Stages bởi MIPS Technologies FPGA | Field Programmable Gate Array trúc mang phan tử logic mà người dùng có thê lập trình Hệ thông kiểm soát tân số khép kín Trình quản lý xung clock chế độ MMCM | Mixed-Mode Clock Manager - hon hợp TOM TAT KHÓA LUẬN Đề tài khóa luận bao gồm hai nội dung chính xoay quanh nghiên cứu thiết kế bộ vi xử ly MIPS và đóng gói vi xử lý thành IP theo chuẩn giao tiếp AXH. Nội dung thứ nhất là hướng đến nghiên cứu thiết kế vi xử lý MIPS theo kiến trúc Superscalar.
Vi xử lý gồm có hai khối ALU giúp xử lý các lệnh liên quan đến số nguyên (có dấu và không dấu), bên cạnh đó bổ sung thêm khối Nhân/chia, giúp nhân chia các số nguyên (có dấu và không dấu). Tiếp đến là em sẽ dụng IP Block Memory Generator cua Xilinx, được sử dụng làm Instruction Memory và Data Memory. Nội dung thứ hai của dé tài khóa luận là đóng gói bộ vi xử lý. Hầu hết các IP trên phần mềm Vivado giao tiếp với nhau thông qua bus AXI4 hoặc AXI.
Trong khóa luận này, MIPS sẽ được đóng gói theo chuẩn giao tiếp AXI4. Sau đó kết nối MIPS với các IP khác trên Block Design của phần mềm Vivado đề tạo sự liên kết giữa hai nội dung. Trong Block Design, MIPS đóng vai trò là một Master, yêu cầu đọc dữ liệu từ các Slaver thông qua bus AXI4, tính toán và lưu các giá trị đó vào trong Data Memory, đồng thời trả các giá trị đó cho Slaver hoặc xuất ra Uart. Qua hai nội dung của khóa luận này, em hy vọng sẽ góp phần phô biến lợi ích của vi xử lý MIPS, và đồng thời đề xuất các bước tiếp cận thiết kế một vi xử lý MIPS nói riêng cũng như thiết kế các vi xử lý khác nói chung, nhằm đóng góp vào lĩnh vực phát triển vi mạch của đất nước Việt Nam.
MỞ ĐÀU Bước vào kỷ nguyên hiện đại của thế kỷ 21, công nghệ giao tiếp không dây được xem là xu hướng dẫn đầu của thời đại loT và là động lực thúc đây sự phát triển của rất nhiều ứng dụng IoT hữu ích.