1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn môn học cấu trúc máy tính đề bài thiết kế cpu chạy đơn chu kỳ và

14 3 0

Đ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

Định dạng
Số trang 14
Dung lượng 460,43 KB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ o0o BÁO CÁO BÀI TẬP LỚN MÔN HỌC CẤU TRÚC MÁY TÍNH TIÊU ĐỀ BÀI TẬP LỚN THIẾT KẾ CPU CHẠY ĐƠN CHU KỲ VÀ LỚP L01 – NHÓM 6 – HK[.]

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ -o0o - BÁO CÁO BÀI TẬP LỚN MÔN HỌC: CẤU TRÚC MÁY TÍNH TIÊU ĐỀ BÀI TẬP LỚN: THIẾT KẾ CPU CHẠY ĐƠN CHU KỲ VÀ …………………… LỚP L01 – NHĨM – HK222 GVHD: Trần Hồng Linh Cao Xn Hải SVTH: Nguyễn Thành Hưng Trương Quang Huy Trần Văn Nam TP HỒ CHÍ MINH, NGÀY THÁNG NĂM 2023 THÀNH VIÊN NHÓM Họ tên Trần Văn Nam Nguyễn Thành Hưng Trương Quang Huy MSSV 1914254 1913644 1913572 Chức vụ Nhóm trưởng Thành viên Thành viên MỤC LỤ C I Mục tiêu Question milestone2 II Thiết kế đơn chu kỳ Sơ đồ khối Lập bảng phân tích lệnh Kết mô III …… 10 Sơ đồ khối .10 Kết mô .10 DANH SÁCH HÌNH MINH HỌA Hình Sơ đồ khối CPU RV32 đơn chu kì Hình Bảng phân tích lệnh Hình Bảng phân tích lệnh Hình Chương trình thử nghiệm single cycle Hình Kết mơ tổng dạng sóng single cycle Hình Kết ghi so với mô .9 Hình Sơ đồ khối .10 I - Mục tiêu Xem lại hiểu biết SystemVerilog Xem lại biết hướng dẫn RV32I Thiết kế xử lý RV32I đơn chu kỳ Question milestone2 Trả lời: - Chuyển đổi số nhị phân thành biểu diễn thập lục phân nó: 16'b0010001110110011  Để chuyển đổi số nhị phân thành số thập lục phân, ta chia số nhị phân thành đoạn bit, bit bên phải nhất, sau ánh xạ đoạn bit thành chữ số thập lục phân tương ứng Với số nhị phân 16 bit này: 0010 0011 1011 0011 Chia thành đoạn bit: 0010 0011 1011 0011 Ánh xạ đoạn bit thành chữ số thập lục phân: 23B3 Vậy biểu diễn thập lục phân số nhị phân 16'b0010001110110011 0x23B3 - Chuyển đổi số thập lục phân thành biểu diễn nhị phân nó: 16'hEECA  Biểu diễn nhị phân số thập lục phân 16'hEECA 1110111011001010, 16'b1110111011001010 - Số thập lục phân bù hai số thập phân này: 16'd3043  số thập lục phân bù hai số thập phân 16'd3043 0xFF1D - Số thập lục phân bù hai số thập phân ÂM này: -16’d2022  số thập lục phân bù hai số thập phân âm -16'd2022 0xFFFA - Mở rộng thành số thập lục phân bù hai 16 bit: 8'h15  số thập lục phân bù hai 16 bit tương ứng với số dương bit 0x15 0xFFFB - Mở rộng thành số thập lục phân bù hai 16 bit: 8'hE9  số thập lục phân bù hai 16 bit tương ứng với số âm bit 0xE9 0xFFF9 - Cộng trừ • Xác định: 16’h5A78 + 16’h11FE • Xác định: 16’hEFB7 + 16’h6AA9 • Xác định: 16’h7713 – 16’h3BC1 • Giải thích khái niệm tràn tràn  Vậy, 16'h5A78 + 16'h11FE = 16'h6C76 16'hEFB7 + 16'h6AA9 = 16'h6611 16'h7713 - 16'h3BC1 = 16'h3B52 Tràn kết phép tính vượt giá trị tối đa mà biến lưu trữ Ví dụ, ta cộng hai số nguyên dương kết vượt giá trị tối đa mà số ngun lưu trữ, ta nói xảy tràn - Tính logic • Xác định: 16’h5A78 16’h11FE • Xác định: 16’hEFB7 or 16’h6AA9 • Xác định: 16’h7713 xor 16’h3BC1  16'h5A78 & 16'h11FE = 16'h1078 16'hEFB7 or 16'h6AA9 = 16'hEFFF 16'h7713 xor 16'h3BC1 = 16'h4CD2 - Dịch chuyển bit • Xác định: 16’h5A78 < < • Xác định: 16’hEFB7 > > • Xác định: 16’hF713 > > >  Vậy 16'h5A78 > = 16'h01EF 16'hF713 >>> = 16'hFFB2 • So sánh Cho hai số 16 bit, tốn tử sử dụng để biết chúng giống hệt nhau? • Cho hai số 16 bit, làm để xác định số nhỏ số khác?  • Để biết hai số 16 bit có giống hệt hay khơng, ta sử dụng toán tử so sánh (==) Nếu hai số nhau, toán tử trả giá trị true, ngược lại trả giá trị false • Để xác định số nhỏ số khác hai số 16 bit, ta sử dụng tốn tử so sánh nhỏ () để xác định số lớn số khác Nếu số thứ lớn số thứ hai, toán tử trả giá trị true, ngược lại trả giá trị false Trả lời:  Một unpacked array mảng phần tử chiếm vị trí nhớ riêng biệt Mặt khác, packed array mảng nhiều phần tử lưu trữ vị trí nhớ Trong nhiều ngơn ngữ lập trình, bao gồm số phiên Fortran C, mảng giải nén theo mặc định Điều có nghĩa phần tử mảng cấp phát địa riêng nhớ Ví dụ: mảng số nguyên giải nén có ba phần tử (tức int myArray[3]), phần tử lưu trữ địa nhớ 1000, phần tử thứ hai địa 1004 phần tử thứ ba địa 1008.Mặt khác, mảng đóng gói sử dụng số ngơn ngữ lập trình (chẳng hạn Verilog VHDL) để lưu trữ nhiều phần tử kiểu liệu khối nhớ liền kề Điều tiết kiệm nhớ làm cho số hoạt động hiệu Trong mảng số nguyên đóng gói có ba phần tử (tức int [2:0] myArray), ba phần tử lưu trữ vị trí nhớ nhất, với giá trị chiếm số bit định vị trí Kiểu đóng gói thường sử dụng thiết kế phần cứng, việc sử dụng nhớ hiệu suất yếu tố quan trọng Tóm lại, khác biệt packed array unpacked array cách chúng phân bổ nhớ đánh đổi mức sử dụng nhớ hiệu suất mà chúng mang lại  Để xác định số bit địa cần thiết cho kích thước nhớ định, sử dụng công thức: Number of address bits = log2(memory size in bytes) Cho có nhớ 8KB, trước tiên chuyển đổi nhớ thành byte cách nhân 8KB với 1024 (vì có 1024 byte kilobyte): 8KB = * 1024 = 8192 bytes Bây sử dụng công thức để xác định số bit địa cần thiết: Number of address bits = log2(8192) = 13 Do đó, chúng tơi u cầu 13 bit địa cho nhớ 8KB  -$writememh : Từ khóa sử dụng để ghi liệu vào mảng nhớ từ tệp có định dạng thập lục phân Dữ liệu từ tệp ghi vào nhớ vị trí nhớ định định dạng thập lục phân  $writememb : Từ khóa sử dụng để ghi liệu vào mảng nhớ từ tệp có định dạng nhị phân Dữ liệu từ tệp ghi vào nhớ vị trí nhớ định định dạng nhị phân  $readmemh : Từ khóa sử dụng để đọc liệu từ mảng nhớ vào tệp có định dạng thập lục phân Dữ liệu từ nhớ đọc, vị trí nhớ định, định dạng thập lục phân lưu trữ tệp  $readmemb : Từ khóa sử dụng để đọc liệu từ mảng nhớ vào tệp có định dạng nhị phân Dữ liệu từ nhớ đọc, vị trí nhớ định, định dạng nhị phân lưu trữ tệp II Thiết kế đơn chu kỳ Sơ đồ khối CPU RV32I đơn chu kỳ thiết kế theo sơ đồ khối sau: Hình Sơ đồ khối CPU RV32I đơn chu kì Yêu cầu bổ sung : - LW: nạp giá trị 32 bit từ địa đích nhớ vào ghi rd - LH: tải giá trị 16 bit từ địa đích nhớ, sau ký-mở rộng thành 32 bit trước lưu giá trị vào ghi rd - LB: nạp giá trị bit từ địa đích nhớ, sau ký-mở rộng thành 32 bit trước lưu giá trị vào ghi rd Hướng dẫn tải không dấu: - LHU: tải giá trị 16 bit từ địa đích nhớ, sau mở rộng thành 32 bit trước lưu giá trị vào ghi rd - LBU: tải giá trị bit từ địa đích nhớ sau mở rộng thành 32 bit trước lưu giá trị vào ghi rd - SW: lưu trữ giá trị 32 bit ghi rs2 đến địa đích Bộ nhớ - SH: lưu giá trị 16 bit (từ bit có nghĩa nhỏ nhất) ghi rs2 đến địa đích Bộ nhớ - SB: lưu giá trị bit (từ bit có nghĩa nhỏ nhất) ghi rs2 đến địa đích Bộ nhớ  Giải thích : -Ở khối slu thêm tín hiệu sl_op có bit từ output khối ctrl_unit để chọn lệnh bổ sung (LB, LH, LBU, LHU, SB, SH) - Sau chọn lệnh làm việc với datamemory dùng phép tính tốn để thực theo yêu cầu lệnh Lập bảng phân tích lệnh Tiến hành lập bảng bao gồm lệnh, đầu vào hình bên Hình Bảng phân tích lệnh Hình Bảng phân tích lệnh Kết mơ Hình Kết mơ tổng dạng sóng single cycle Hình Kết chạy testbench singlecycle

Ngày đăng: 15/04/2023, 04:40

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

TÀI LIỆU LIÊN QUAN

w