Tải bản đầy đủ (.docx) (43 trang)

THIẾT kế CPU RISC 32 BIT đơn CHU kỳ THỰC HIỆN LỆNH BNE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.24 MB, 43 trang )

Trang 1/43

THIẾT KẾ CPU RISC 32 BIT ĐƠN CHU
KỲ THỰC HIỆN LỆNH BNE

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 2/43

MỤC LỤC
DANH MỤC CÁC HÌNH VẼ...............................................................................................3
DANH MỤC CÁC BẢNG BIỂU.........................................................................................5
DANH MỤC CÁC TỪ VIẾT TẮT......................................................................................6
CHƯƠNG 1. TỔNG QUAN VỀ SYSTEM VERILOG HDL.........................................7
1.1

GIỚI THIỆU.................................................................................................................7

1.2

CẤU TRÚC CỦA NGÔN NGỮ........................................................................................8

1.2.1

Khối xây dựng cơ bản Module..........................................................................8

1.2.2

Các loại dữ liệu:................................................................................................8



1.2.3

Mảng array......................................................................................................10

1.2.4

Các câu lệnh điều khiển..................................................................................12

CHƯƠNG 2. HỆ THỐNG CPU RISC 32-BIT...............................................................14
2.1

TỔNG QUAN VỀ CPU RISC.....................................................................................14

2.1.1

Giới thiệu.........................................................................................................14

2.1.2

Cấu trúc cơ bản của một máy tính MIPS........................................................15

2.1.3

Khuôn dạng mã lệnh.......................................................................................16

2.2

CÁC KHỐI CẤU TẠO CHÍNH......................................................................................18


2.2.1

Khối bộ nhớ lệnh IM.......................................................................................18

2.2.2

Khối tập thanh ghi...........................................................................................19

2.2.3

Khối ALU.........................................................................................................21

CHƯƠNG 3. THIẾT KẾ CPU MIPS THỰC HIỆN BNE.............................................23
3.1

LƯU ĐỒ HOẠT ĐỘNG THỰC HIỆN BNE......................................................................23

3.2

THIẾT KẾ ĐƯỜNG DỮ LIỆU.......................................................................................24

3.3

THIẾT KẾ ĐƯỜNG ĐIỀU KHIỂN.................................................................................28

3.4

KẾT QUẢ MÔ PHỎNG TRÊN QUARTUS......................................................................29

3.4.1


Mạch RTL mô phỏng:......................................................................................29

3.4.2

Kết quả mô phỏng...........................................................................................32

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 3/43

3.5

KẾT QUẢ KIỂM TRA TRÊN KIT DE2........................................................................33

CHƯƠNG 4. KẾT LUẬN..................................................................................................35
4.1

KẾT LUẬN................................................................................................................35

4.2

ỨNG DỤNG...............................................................................................................35

4.3

HƯỚNG PHÁT TRIỂN................................................................................................35


TÀI LIỆU THAM KHẢO..................................................................................................36
PHỤ LỤC

........................................................................................................................37

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 4/43

DANH MỤC CÁC HÌNH VẼ
HÌNH 1-1: SYSTEMVERILOG TRÊN NỀN TẢNG VERILOG..................................7
HÌNH 1-2: CẤU TẠO MẢNG...........................................................................................10
HÌNH 2-1: MÔ TẢ CẤU TẠO CPU MIPS......................................................................15
HÌNH 2-2: HOẠT ĐỘNG CỦA CPU...............................................................................15
HÌNH 2-3: KHUÔN MÃ LỆNH CỦA RISC CPU..........................................................16
HÌNH 2-4: KHUÔN MÃ CỦA LỆNH BNE.....................................................................17
HÌNH 2-5: BỘ NHỚ LỆNH...............................................................................................18
HÌNH 2-6: MẠCH RTL MÔ PHỎNG KHỐI IM...........................................................18
HÌNH 2-7: KẾT QUẢ MÔ PHỎNG KHỐI IM..............................................................19
HÌNH 2-8: KHỐI TẬP THANH GHI...............................................................................19
HÌNH 2-9: MẠCH RTL MÔ PHỎNG KHỐI RF...........................................................20
HÌNH 2-10: KẾT QUẢ MÔ PHỎNG KHỐI RF............................................................20
HÌNH 2-11: KHỐI TÍNH TOÁN ALU.............................................................................21
HÌNH 2-12: MẠCH TRỪ CỦA KHỐI ALU....................................................................22
HÌNH 2-13: MẠCH RTL MÔ PHỎNG KHỐI ALU THỰC HIỆN TRỪ...................22
HÌNH 2-14: KẾT QUẢ MÔ PHỎNG KHỐI ALU THỰC HIỆN TRỪ......................22
HÌNH 3-1: ĐỌC LỆNH TỪ ĐỊA CHỈ PC........................................................................25
HÌNH 3-2: XUẤT GIÁ TRỊ TỪ TRƯỜNG LỆNH.......................................................25

HÌNH 3-3: TÍNH TOÁN TỪ GIÁ TRỊ XUẤT RA.........................................................26
HÌNH 3-4: ĐƯỜNG DỮ LIỆU HOÀN CHỈNH THỰC HIỆN BNE...........................27
HÌNH 3-5: BỘ ĐIỀU KHIỂN LỆNH BNE......................................................................28
HÌNH 3-6: ĐƯỜNG ĐIỀU KHIỂN KHỐI ALU THỰC HIỆN TRỪ..........................29
HÌNH 3-7: MẠCH RTL MÔ PHỎNG RISC MIPS.......................................................29
HÌNH 3-8: MẠCH RTL MÔ PHỎNG CPU MIPS.........................................................30

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 5/43

HÌNH 3-9: MẠCH RTL MÔ PHỎNG ĐƯỜNG ĐIỀU KHIỂN...................................30
HÌNH 3-10: MẠCH RTL MÔ PHỎNG ĐƯỜNG DỮ LIỆU........................................30
HÌNH 3-11: MẠCH RTL MÔ PHỎNG KHỐI RF.........................................................31
HÌNH 3-12: MẠCH RTL MÔ PHỎNG KHỐI PC.........................................................31
HÌNH 3-13: KẾT QUẢ MÔ PHỎNG CPU MIPS THỰC HIỆN LỆNH BNE...........32
HÌNH 3-14: KẾT QUẢ BẰNG NHAU KIỂM TRA TRÊN KIT..................................33
HÌNH 3-15: KẾT QUẢ KHÔNG BẰNG NHAU KIỂM TRA TRÊN KIT.................34

DANH MỤC CÁC BẢNG BIỂ

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 6/43

BẢNG 1-1: BẢNG TỔNG HỢP MỘT SỐ LOẠI DỮ LIỆU...........................................9

BẢNG 1-2: TỔNG HỢP MỘT SỐ PHÉP TOÁN THÔNG DỤNG..............................11
BẢNG 2-1: BẢNG TỔNG HỢP ĐƯỜNG ĐIỀU KHIỂN KHỐI ALU........................21

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 7/43

DANH MỤC CÁC TỪ VIẾT TẮT
CPU

Central Processing Unit

RISC

Reduced Instruction Set Computer

MIPS

Microprocessor without Interlocked Pipeline Stages

ISA

Instruction Set Architecture

RF

Register File


IM

Instruction Memory

ALU

Arithmetic Logic Unit

MUX

Multiplexer

PC

Program Counter

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 8/43

CHƯƠNG 1.

TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH PHẦN
CỨNG SYSTEM VERILOG

1.1

Giới thiệu

 SystemVerilog hợp nhất một số ngôn ngữ thiết kế phần cứng và kiểm tra, là
phần mở rộng của Verilog HDL, thừa hưởng tất cả các tính năng của Verilog.
Những phần mở rộng này cung cấp khả năng mới cho việc mô hình hoá phần
cứng tại cấp RTL, hệ thống và các cấp kiến trúc, cùng với một bộ các tính
năng phong phú khác để kiểm tra hoạt động của mô hình.
 Phần lớn các chức năng kiểm tra được dựa trên ngôn ngữ OpenVera do
Synopsys cung cấp. SystemVerilog đã trở thành tiêu chuẩn IEEE P18002005.

Hình 1-1: Phát triển SystemVerilog trên nền tảng Verilog [3]

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 9/43

1.2

Cấu trúc của ngôn ngữ

1.2.1 Khối xây dựng cơ bản Module
 Khối module được sử dụng chủ yếu để biểu diễn các khối thiết kế, nhưng
cũng có thể chứa đoạn mã kiểm tra và kết nối giữa các khối kiểm tra và thiết
kế. Một số cấu trúc mà module có thể chứa bao gồm:
o Các cổng và khai báo của nó.
o Khai báo dữ liệu.
o Khai báo liên tục.
o Định nghĩa kiểu người dùng định nghĩa.
o Định nghĩa nhóm, lớp.
 Cấu trúc câu lệnh:

module (khai báo cổng vào, ra)
Đoạn mã;
endmodule
1.2.2 Các loại dữ liệu:
 SystemVerilog thêm các loại dữ liệu mới và mở rộng cho việc đóng gói và
nén gọn tốt hơn. Thêm vào đó là hỗ trợ ngôn ngữ C giống như các kiểu dữ
liệu. Loại dữ liệu 2 trạng thái mới được thêm vào chỉ có thể có giá trị bit là 0
hoặc 1, khác với các kiểu dữ liệu 4 trạng thái có 0, 1, X và Z. SystemVerilog
cũng cho phép người dùng định nghĩa các kiểu dữ liệu mới.
 SystemVerilog cung cấp một số loại dữ liệu tổng hợp của cả hai kiểu dữ liệu
Verilog và C. Các loại dữ liệu 2 trạng thái có thể được mô phỏng nhanh, tốn
ít bộ nhớ và được sử dụng nhiều hơn trong một số kiểu thiết kế.

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 10/43

Bảng 1-1: Bảng tổng hợp một số loại dữ liệu [3]

 Các loại dữ liệu:
o Loại cấu trúc: wire và reg
 Để mô hình các kết nối phần cứng giữa các thành phần trong
mạch. Loại wire hoạt động như dây thực trong mạch, còn reg
thì giữ giá trị của nó đến khi một giá trị khác được ghi đè vào
giống như một thanh ghi. Khai báo của loại này nằm trong khối
module chính nhưng nằm ngoài các khối các liên tục.
 Cú pháp: reg (wire) tên_biến
o Loại hành vi: integer, real, time, parameter, logic,…

 Để khai báo biến dựa trên hành vi, tính chất của biến đó như
một biến là số nguyên, số thực, logic,…
 Cú pháp: tên_dữ_liệu tên_biến; parameter tên_biến = giá_trị;

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 11/43

o Loại gán có dấu: signed và unsigned:
 Giá trị dùng cho các phép toán số học có thể là số có dấu hoặc
không dấu, mặc định dấu này sẽ được gán cho những loại dữ
liệu thích hợp nhưng người dùng có thể gán một cách thủ công
theo mong muốn.
 Cú pháp: tên_dữ_liệu (un)signed tên_biến;
1.2.3 Mảng array
 Là một tập hợp các biến cùng một loại dữ liệu và được truy cập bằng cách sử
dụng cùng một tên cộng với một hoặc nhiều chỉ số.
 Mảng giữ một số lượng cố định các phần tử dữ liệu có kích thước bằng nhau.
Các phần tử được truy cập bằng chỉ số, sử dụng một dãy số nguyên liên tiếp.
Một số loại mảng cho phép truy cập từng phần tử bằng cách sử dụng các giá
trị không liên tục của bất kỳ loại dữ liệu nào. Mảng có thể được phân loại
thành mảng có kích thước cố định (còn gọi là mảng tĩnh) có kích thước
không thể thay đổi sau khi khai báo hoặc mảng động, có thể thay đổi kích
thước.
 Mảng cố định có thể được chia ra làm hai loại: mảng “đóng gói” chỉ loại
mảng có chiều được khai báo trước tên của một biến. Ngược lại, mảng
“không đóng gói” có chiều được khai báo sau.


Hình 1-1: Cấu tạo mảng [3]

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 12/43

Bảng 1-2: Tổng hợp một số phép toán thông dụng

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 13/43

1.2.4 Các câu lệnh điều khiển
 Câu lệnh if-else
o Kiểm tra điều kiện để quyết định có thực hiện một phần của mã lệnh
hay không. Nếu điều kiện là đúng thì đoạn mã sẽ được thực hiện,
ngược lại đoạn mã khác sẽ được thực hiện.
o Cấu trúc câu lệnh:
if (điều kiện) begin
Đoạn mã;
end else begin
Đoạn mã;
end
 Câu lệnh case
o Được sử dụng khi có một biến cần được kiểm tra cho nhiều giá trị.
Lệnh case hoạt động như một bộ giải mã địa chỉ, với ngõ vào là một

địa chỉ cần được kiểm tra với tất cả các giá trị mà nó có thể nhận.
o Cấu trúc câu lệnh:
case (địa chỉ)
địa chỉ 0: Đoạn mã;…
địa chỉ n: Đoạn mã;
default: Đoạn mã;
endcase
 Câu lệnh while
o Thực hiện câu lệnh lặp lại nếu điều kiện gán vẫn còn đúng và chỉ
dừng khi điều kiện đó không còn đúng nữa.
o Cấu trúc câu lệnh:

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 14/43

while (điều kiện) begin
Đoạn mã;
end
 Câu lệnh lặp for
o Thực hiện câu lệnh lặp lại tham chiếu với điều kiện đã gán.
o Cấu trúc câu lệnh:
for (đặt giá trị ban đầu; điều kiện; tăng giá trị biến) begin
Đoạn mã;
end
 Câu lệnh thiết lập khối ban đầu
o Khối được thực hiện chỉ một lần khi bắt đầu.
o Cấu trúc câu lệnh:

initial begin
Đoạn mã gán giá trị;
end
 Câu lệnh khối always
o Khối khai báo luôn được thực hiện, có thể kèm theo danh sách các
biến nhạy và sẽ gán lại giá trị khi các biến này thay đổi.
o Cấu trúc câu lệnh:
always @(danh sách biến nhạy) begin
Đoạn mã;
end
 Câu lệnh gán

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 15/43

o Thực hiện phép gán giá trị liên tục.
o Cấu trúc câu lệnh:
assign biến = giá trị hoặc (điều kiện) ? giá trị 1: giá trị 2;

CHƯƠNG 2.
2.1

HỆ THỐNG CPU RISC 32-BIT

Tổng quan về CPU RISC

2.1.1 Giới thiệu

 RISC là một thiết kế CPU dựa trên tập lệnh đơn giản hóa cung cấp hiệu năng
cao hơn khi kết hợp với một kiến trúc vi xử lý có khả năng thực hiện các
lệnh bằng cách sử dụng ít hơn chu kỳ bộ vi xử lý cho mỗi lệnh. Một máy tính
dựa trên cách thiết kế này được gọi là một máy tính có tập lệnh rút gọn.
 RISC có các đặc điểm:
o Tất cả các hoạt động cần thiết xảy ra trong bộ xử lý.
o Khuôn mã lệnh có chiều dài cố định.
o Sử dụng các lệnh nạp và lưu trữ vào các đơn vị bộ nhớ.
o Số chế độ định địa chỉ bị giới hạn bởi độ rộng của trường lệnh.
o Số các thao tác bị giới hạn hơn so với các loại vi xử lý khác.
 MIPS là một loại máy tính RISC dùng kiến trúc tập lệnh (ISA). MIPS là một
kiến trúc lưu - tải (còn gọi là kiến trúc “thanh ghi - thanh ghi”), có nghĩa là
nó chỉ thực hiện các phép toán số học và logic giữa các thanh ghi của CPU,
yêu cầu các lệnh tải hoặc lưu để truy cập vào bộ nhớ.
 Thiết kế của MIPS được đơn giản hóa để chỉ chứa các tập lệnh:
o Các lệnh thực thi trên bộ nhớ dữ liệu: lw, sw.
o Các lệnh tính toán số học, logic: add, sub, and, or, slt, …

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 16/43

o Các lệnh tính toán số học, logic trực tiếp: addi, andi, ori, …
o Các lệnh rẽ nhánh, nhảy: beq, bne, j, …
2.1.2 Cấu trúc cơ bản của một máy tính MIPS

Hình 2-1: Mô tả cấu tạo CPU MIPS [2]
 Tổ chức của một bộ xử lý MIPS:

o Hoạt động của một bộ xử lý:
 Tìm nạp lệnh từ bộ nhớ lệnh.
 Giải mã lệnh để xác định hoạt động cần thực hiện.
 Thực thi lệnh đã giải mã bao gồm các hoạt động như nhận dữ
liệu từ bộ nhớ hoặc các cổng vào và ra, sử dụng các dữ liệu này
để thực hiện các phép toán số học hoặc logic. Kết quả của quá
trình thực thi này có thể được dùng để ghi dữ liệu lại vào các
đơn vị lưu trữ hoặc các cổng vào và ra.

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 17/43

Hình 2-2: Hoạt động của CPU [2]
o Đường điều khiển:
 Xác định lệnh tiếp theo và nạp lệnh này từ bộ nhớ lệnh.
 Tiến hành giải mã lệnh để thực hiện hoạt động cần thiết.
 Xuất ra các tín hiệu điều khiển các đơn vị cần thiết.
 Chỉ đến lệnh tiếp theo trong chuỗi lệnh.
o Đường dữ liệu:
 Thực thi lệnh, các đơn vị chức năng, tính toán và các đơn vị bộ
nhớ, lưu trữ.
 Liên kết các đơn vị chức năng và lưu trữ để thực hiện lện theo
đúng mục đích mong muốn.
 Nhập hoặc xuất dữ liệu từ các đơn vị lưu trữ.
 Bộ xử lý MIPS chỉ thực hiện một hoạt động duy nhất dựa trên lệnh yêu cầu.
Mỗi lệnh chỉ ra các toán hạng cần thiết trong lệnh, các toán hạng này được
chứa trong tập thanh ghi của đường dữ liệu ($t0, $s1, $s2, …). Ví dụ:

add
$t0,
$s1,
$s2
đích



nguồn1,

lệnh,

nguồn2

2.1.3 Khuôn dạng mã lệnh
 Cấu trúc lệnh trong MIPS bao gồm: R-Format, I-Format, J-Format

Hình 2-3: Khuôn mã lệnh của RISC CPU [5]

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 18/43

Các trường của khuôn mã lệnh:
o
o
o
o

o

op: 6-bit opcode chỉ ra lệnh cần thực hiện.
rs, rt: 5-bit chỉ địa chỉ của hai thanh ghi nguồn.
rd: 5-bit chứa địa chỉ của thanh ghi đích.
shamt: 5-bit được dùng trong các lệnh dịch bit.
funct: 6-bit được dùng để hỗ trợ cho các lệnh dạng R chỉ ra lệnh cần

thực hiện.
o immediate lệnh dạng I: 16-bit chứa giá trị offset.
o immediate lệnh dạng J: 26-bit chứa địa chỉ đích đến trong lệnh jump.
 Khuôn dạng mã máy của lệnh rẽ nhánh không bằng bne:

Hình 2-4: Khuôn mã của lệnh bne [5]
o Mục đích: so sánh giá trị các thanh ghi sau đó thực hiện lệnh rẽ nhánh
có điều kiện theo PC.
o Mô tả: 16 bit offset được dịch trái 2 bit được thêm vào địa chỉ của
lệnh tiếp theo để thực hiện lệnh rẽ nhánh. Nếu giá trị của trường rs và
rt không bằng nhau thì lệnh rẽ nhánh này sẽ được thực hiện, ngược lại
sẽ thực hiện lệnh tiếp theo.
o Cú pháp: bne $s2, $s1, label
o Ý nghĩa: if ($s2 != $s1) pc += i << 2

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 19/43

2.2


Các khối cấu tạo chính

2.2.1 Khối bộ nhớ lệnh IM

Hình 2-5: Bộ nhớ lệnh [4]
 Là khối lưu trữ tập các lệnh cần thực thi, có một ngõ vào là địa chỉ 32 bit và
một đầu ra chứa giá trị 32 bit của thanh ghi tương ứng với địa chỉ đầu vào
được lấy từ bộ PC. Giá trị xuất ngõ ra là khuôn mã lệnh của lệnh cần thực
hiện.
 Mạch mô phỏng RTL:

Hình 2-6: Mạch RTL mô phỏng khối IM

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 20/43

 Kết quả mô phỏng:

Hình 2-7: Kết quả mô phỏng khối IM

2.2.2 Khối tập thanh ghi

Hình 2-8: Khối tập thanh ghi [4]
 Một tập thanh ghi bao gồm một chuỗi các các thanh ghi có thể được đọc và
ghi khi cung cấp địa chỉ 5 bit của thanh ghi cần được truy cập, được xây
dựng từ các D Flip-flop. Dữ liệu ra là giá trị chứa trong hai thanh ghi 32 bit,

có thể đọc hai thanh ghi cùng một lúc. Ngoài ra, có thể viết dữ liệu vào thanh
ghi bằng đường ghi dữ liệu 32 bit chỉ khi có tín hiệu điều khiển ghi. Tập
thanh ghi nhận giá trị địa chỉ từ khối IM, từ địa chỉ đó chọn thanh ghi tương
ứng để xuất dữ liệu của thanh ghi cho khối ALU thực hiện tính toán.

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 21/43

 Mạch mô phỏng RTL:

Hình 2-9: Mạch RTL mô phỏng khối RF
 Kết quả mô phỏng:

Hình 2-10: Kết quả mô phỏng khối RF

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 22/43

2.2.3 Khối ALU

Hình 2-11: Khối tính toán ALU [4]
 Khối ALU là khối được sử dụng cho quá trình tính toán các phép tính số học,
logic như: add, sub, bne, zero, …. Là khối tính toán chính của hệ thống, mọi
phép toán đều phải thông qua khối này. Khối có hai ngõ vào 32 bit, giá trị

nhận từ khối RF sẽ được dùng để tính toán, kết quả được xuất ra để sử dụng
hoặc bật cờ báo cần thiết. Ngõ vào điều khiển được sử dụng để chọn phép
toán mà khối ALU sẽ thực hiện.
Bảng 2-2: Bảng tổng hợp một số đường điều khiển khối ALU [4]

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 23/43

 Đối với lệnh bne thì khối ALU chỉ cần thực hiện lệnh trừ do đó có thể được
đơn giản hóa chỉ để thực hiện một phép trừ.

Hình 2-12: Mạch trừ của khối ALU [4]
 Mạch mô phỏng RTL:

Hình 2-13: Mạch RTL mô phỏng khối ALU thực hiện trừ
 Kết quả mô phỏng kiểm tra:

Hình 2-14: Kết quả mô phỏng khối ALU thực hiện trừ

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 24/43

CHƯƠNG 3.


THIẾT KẾ CPU MIPS 32-BIT ĐƠN CHU KỲ THỰC
HIỆN LỆNH BNE

1.1

Lưu đồ mô tả hoạt động của CPU thực hiện lệnh bne

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


Trang 25/43

Mô tả hoạt động của lưu đồ:
Khi hệ thống được cấp nguồn, chương trình bắt đầu chạy ở trạng thái chờ xung
clock cạnh lên, nạp các giá trị ban đầu. Khi có xung clock cạnh lên, chương trình sẽ
nạp lệnh kế tiếp được lưu trong PC. Các giá trị sẽ được truy xuất vào và ra từ RF
tương ứng dựa trên địa chỉ theo trường op từ bộ IM. CPU sẽ thực hiện tuần tự các
lệnh có trong IM cho đến khi CPU đọc được lệnh bne thì CPU sẽ thực hiện các hoạt
động sau:
 Bật cờ báo là lệnh rẽ nhánh và gửi tín hiệu điều khiển đến khối ALU để thực
hiện phép toán thích hợp.
 Sau khi khối ALU nhận được giá trị hai thanh ghi từ RF thì khối này sẽ thực
hiện phép toán trừ. Kết quả đạt được sẽ đem so với mức logic 0.
 Nếu kết quả bằng 0 thì có nghĩa là giá trị hai thanh ghi bằng nhau, không rẽ
nhánh, thực hiện lệnh tiếp theo trong khối IM. Ngược lại, nếu khác 0 thì giá
trị hai thanh ghi khác nhau, thực hiện lệnh rẽ nhánh
 Sau khi rẽ nhánh thì CPU lại tiếp tục thực hiện tuần tự các lệnh tiếp theo sau
nhánh.
3.1


Thiết kế đường dữ liệu
Đường dữ liệu là đường thể hiện dòng đi của các tín hiệu của mạch, thể hiện cơ

bản hoạt động của một mạch. Đường điều khiển được thiết kế qua các bước:
1. Bộ đếm chương trình PC chứa địa chỉ của các lệnh, được sử dụng để tìm nạp
lệnh từ bộ nhớ lệnh và cập nhật PC cho các lệnh tiếp theo. Đầu tiên lệnh thực
thi được đọc từ bộ nhớ lệnh, PC được kết nối với địa chỉ đầu vào của bộ nhớ
lệnh. Từ địa chỉ từ PC này, bộ nhớ lệnh đọc ra lệnh 32-bit, có nhãn là Instr.
Hoạt động của vi xử lý phụ thuộc vào chỉ dẫn cụ thể được nạp vào, trong
trường hợp này thì khuôn mã lệnh bne sẽ được đọc ra.

Thiết Kế CPU RISC 32 Bit Đơn Chu Kỳ
Thực Hiện Lệnh Bne


×