Professional Documents
Culture Documents
TRÚC MIPS
RESEARCH FPGA IN DESIGNING A CPU 32 BIT WITH MIPS
ARCHITECTURE
Võ Văn Trung
Trường Cao Đẳng Công Thương Thành Phố Hồ Chí Minh
TÓM TẮT
Bài báo này có nhiệm vụ nghiên cứu FPGA trong việc thiết kế CPU 32 bit theo kiến trúc
MIPS. Lõi vi xử lý được thiết kế theo kiến trúc 5 tầng đường ống và bao gồm các ngoại như
là: TIMER, UART, GPIO.Mỗi lệnh được thực hiện trong một chu kỳ máy. Bộ tập lệnh tương
thích với vi xử lý RISC. Tác giả sử dụng ngôn ngữ verilog để viết chương trình cho hệ thống,
mô phỏng trên phần mềm modelsim và kiểm tra trên kít FPGA.
Từ khóa: FPGA, thiết kế CPU, kiến trúc MIPS, kiến trúc pipeline.
ABSTRACT
This paper is research FPGA in designing a CPU 32 bit with MIPS architecture . The
processor core is designed with 5 stages pipeline architecture and includes the peripheral
such as: TIMER,UART,GPIO. Each instruction is executed in one machine cycle and it is
entire compatible with instruction set of RISC. Author using hardware description verilog
languages to write program the system simulation on modelsim and check on kit FPGA.
1
Phân tích hoạt động của vi xử lý bắt đầu 2.1.2.Các lệnh loại I
với từng nhóm lệnh riêng lẻ. Ví dụ như:
nhóm R, nhóm I, nhóm J sẽ chọn ra 1 lệnh I-type
để thực hiện và làm dần cho các lệnh khác
đến khi xây dựng xong chức năng cho tất op rs rt address offset
cả các lệnh. 6bit 5bit 5bit 16bit
Ghép các đường dữ liệu của từng nhóm Bảng 2. Một số lệnh loại I
lệnh lại với nhau, nếu các đường tín hiệu
xảy ra cùng đưa đến cho 1 đầu vào thì cần ADDI ADDIU ANDI ORI XORI BEQ
chèn thêm các mạch chọn lựa đầu vào
trong các trường hợp này. Kết quả là BNE LUI LW SW SLTI SLTIU
đường dữ liệu cho tất cả các lệnh hoạt
Lệnh loại I thường làm việc với các giá
động trong 1 chu kỳ xung clock.
trị trực tiếp được gán thông qua mã lệnh.
Chia đường dữ liệu đơn chu kỳ thành các Nhóm này cũng bao gồm 2 lệnh lệnh truy
tầng đường ống dữ liệu. xuất đến bộ nhớ là lw (đọc) và sw (ghi).
Đối với lệnh loại I, trong mã lệnh luôn bao
2.Cách thiết kế gồm một toán hạng là giá trị hằng số
truyền trực tiếp thông qua các bit thấp của
2.1.Nhóm tập lệnh theo kiến trúc MIPS
mã lệnh chương trình. Giá trị tức thời này
2.1.1.Các lệnh loại R là hằng số tính toán khi lệnh sử dụng là các
lệnh tính toán, là địa chỉ offset khi là lệnh
R-type rẽ nhánh, là địa chỉ offset bộ nhớ khi là
lệnh truy cập bộ nhớ [5 ].
op rs rt rd shamt funct
2.1.3. Các lệnh loại J
6bit 5bit 5bit 5bit 5bit 6bit
6bits 26 bits
ADD ADDU SUB SUBU AND OR XOR
Bảng 3. Một số lệnh loại J
NOR JR MFHI MFLO MTHI MTLO MULT
J JAL JALR
MULTU SLL SRL SRA SLT SLTU
2
2.2. Thiết kế 5 tầng đường ống. IF: thực hiện nạp mã lệnh chương
trình từ bộ nhớ chương trình
Kỹ thuật Pipeline là một kỹ thuật vào ra
song song.Nó giúp cho toàn bộ thông ID: giải mã các mã lệnh và tạo ra
lượng của tải được tăng lên. tín hiệu điều khiển tương ứng
Khi sử dụng chu kỳ clock không hiệu quả EX: thực hiện chức năng của các
– chu kỳ clock phải được định thời để phù mã lệnh và trả về kết quả tính toán
hợp với lệnh chậm nhất. Đặc biệt khó giải
MEM: thực hiện các thao tác
quyết đối với các lệnh phức tạp như là
nhân số dấu chấm động [2 ]. đọc/ghi đến bộ nhớ dữ liệu của
chương trình. Chỉ có lệnh
5 tầng đường ống của CPU
Load/Sotre có thể tác động đến nội
dung của khối này
WB: ghi lại các kết quả tính toán
hoặc xử lý đến tập thanh ghi của vi
xử lý
2.3.2. Đơn vị điều khiển ALU
Hình 1. Cơ chế đường ống
Khi thực thi tính toán giá trị cho các
lệnh theo các toán tử, thì tương ứng với
mỗi toán tử ALU phải đối xử và tạo ra kết
2.3. CPU 32 bit quả khác nhau. Để chọn lựa toán tử thực
hiện thì cần có khối điều khiển ALU để
2.3.1. CPU 32 bit với 5 tầng
xác định tại một thời điểm, toán tử nào
Định hướng là thiết kế CPU theo kiến trúc đang được xử lý [3 ].
RISC có sử dụng kỹ thuật thiết kế đường
Bảng 4. Giá trị tín hiệu điều khiển ALU
ống. Thiết kế sẽ chia thành 5 tầng như sơ
đồ khối bên dưới Đầu vào điều khiển Chức năng
ALU
0000 and
0001 or
0010 xor
0011 nor
0110 cộng
1110 trừ
ALUOp. ALUOp1
ALUOp0
ALUcontrol2
bit nhị phân riêng biệt với nhau.
ALUcontrol1
Bảng 5. Tín hiệu điều khiển ALUcontrol
ALUcontrol0
lw xxxxx 00 add 0110 Hình 3. Mạch điều khiển các tín hiệu
x ALUControl
sw xxxxx 00 add 0110
x
0 MemtoReg
RegWrite
or 10010 10 or 0001 MemRead
1 MemWrite
Branch
xor 10011 10 xor 0010 ALUOp1
ALUOp0
0
Như vậy, các tín hiệu sau khi sắp xếp ta Xây dựng được vi xử lý 32 bit hỗ trợ xử
sẽ có bảng bên dưới. Tín hiệu chọn lựa sẽ lý theo kỹ thuật đường ống. Số lượng tập
gồm có các bit chức năng là sáu bit thấp lệnh MIPS hỗ trợ là 31 lệnh. Trong đó, các
của mã lệnh instruction[5:0], và hai lệnh bao gồm cả 3 loại R, I, và J giúp cho
ALU_op[1:0]. Kết quả ngõ ra sẽ là 4 bit việc lập trình các chương trình có để đáp
ứng được.
4
Các ngoại vi được thiết kế và lập trình điều
khiển trên phần mềm Quartus và được viết
chương trình để thực nghiệm trên kit
Altera.
Việc thiết kế bản CPU 32 bit phải trãi qua 1.Kết quả mô phỏng
5 tầng ,trong mỗi tần có những khối con.
Do đó cần phải lập trình các modul riêng lẽ 1.1. Nhóm lệnh R
của từng tầng sau đó tiến hành biên dịch và
tổng hợp trên phần mềm quartus II [ 1 ].
Hình 6. 5 tầng của CPU khi được thiết kế 1.2. Nhóm lệnh I
và biên dịch
MCU
ROM Timer
Core
UART GPIO
FPGA
Hình 9. Kết quả mô phỏng lệnh I
Thông tin liên hệ tác giả chính (người chịu trách nhiệm bài viết):
Họ tên: Võ Văn Trung
Đơn vị: GV.TG ,Trường Cao Đẳng Công Thương TPHCM
Điện thoại: 01694480499
E mail: vovantrungspkt@gmail.com
Xác nhận của giảng viên hướng dẫn
(Ký và ghi rõ họ tên)
7
BÀI BÁO KHOA HỌC
THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ
Bài báo khoa học của học viên
có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn
Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ
Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam.
Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý
của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.
ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN!
Thực hiện theo MTCL & KHTHMTCL Năm học 2016-2017 của Thư viện Trường Đại học Sư
phạm Kỹ thuật Tp. Hồ Chí Minh.