You are on page 1of 7

NGHIÊN CỨU FPGA TRONG THIẾT KẾ CPU 32 BIT THEO KIẾN

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.

Keywords: FPGA, designing a CPU, MIPS architecture, pipeline architecture.

I.GIỚI THIỆU đời của Trung tâm Đào tạo và Thiết kế Vi


Mạch (ICDREC). Trong bối cảnh ngành
Ngành công nghiệp điện tử Việt Nam công nghiệp thiết kế vi mạch nước nhà
vốn rất nhỏ bé so với các nước trên thế đang trên đà phát triển. Tác giả muốn
giới, các sản phẩm điện tử mới chỉ dừng lại nghiên cứu công nghệ FPGA để thiết kế
ở công việc lắp ráp mà người ta quen gọi là
CPU 32 bit theo kiến trúc MIPS với các
công nghệ Tuốc-nơ-vít. Sản xuất trong ngoại vi hỗ trợ kèm theo gồm
nước chủ yếu là nhập linh kiện, công
Uart,Timer,Gpio được đề cập trong bài báo
nghiệp phụ trợ kém phát triển, có chăng thì này [3].
sản xuất các sản phẩm đơn giản, hàm
lượng chất xám tích lũy nghèo nàn, giá trị II.PHƯƠNG PHÁP NGHIÊN CỨU VÀ
gia tăng thấp. Ngành thiết kế vi mạch chỉ CÁCH THIẾT KẾ
mới bắt đầu hình thành trong những năm
trở lại đây (từ năm 2007 đến nay) với sự ra 1.Phương pháp nghiên cứu

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

Bảng 1. Một số lệnh loại R J-type op jump address

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

Các lệnh loại R chỉ làm việc với các thanh


ghi toán hạng từ ngõ vào, tính toán kết quả Đối với các lệnh nhảy, chương trình sẽ
và lưu đến thanh ghi đích khi kết thúc lệnh. luôn luôn chuyển đến địa chỉ PC mới do
Tùy theo mỗi lệnh mà số lượng toán hạng lệnh chỉ ra. Địa chỉ rẽ nhánh đến chỉ thay
đầu vào có thể là một, hai, hoặc không có đổi trong 28 bit thấp của PC, 4 bit trọng số
toán hạng nào. Và tương tự, thanh ghi đích cao của PC sẽ được giữ lại do địa chỉ
cần dùng trong một số lệnh, và không truyền vào từ lệnh nhảy chỉ gồm có 26 bit
trong các trường hợp khác [ 5 ]. và được dịch trái 2 bit thành 28 bit [ 5].

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ừ

1111 thiết lập bằng 1 khi


Hình 2. Sơ đồ khối tổng quát CPU 32 bit nhỏ hơn

Thông tin về các tầng đường ống:


3
dùng chọn lựa chức năng tính toán của
ALU [3,4].
Việc điều khiển ALU sử dụng nhiều mức
giải mã.
Instr[3]

Đơn vị điều khiển chính tạo ra các bit Instr[2]


Instr[1]
Instr[0]

ALUOp. ALUOp1
ALUOp0

Đơn vị điều khiển ALU tạo ra các bit


ALUcontrol. Mỗi toán tử sẽ có một giá trị ALUcontrol3

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

Inst funct ALUO Action ALUcontr


r op p ol

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

beq xxxxx 01 subtra 1110


Instr[31]
x ct Instr[30]
Instr[29]
Instr[28]
add 10000 10 add 0110 Instr[27]
Instr[26]
0

subt 10001 10 subtra 1110


0 ct R-type lw sw beq
RegDst

and 10010 10 and 0000 ALUSrc

0 MemtoReg
RegWrite
or 10010 10 or 0001 MemRead

1 MemWrite
Branch
xor 10011 10 xor 0010 ALUOp1
ALUOp0
0

nor 10011 10 nor 0011


1
Hình 4. Mạch tổ hợp khối điều khiển chính
slt 10101 10 slt 1111
0 2.3.3. Thiết kế các Module cho các tầng
CPU

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.

III. KẾT QUẢ MÔ PHỎNG VÀ THỰC


Hình 5. Các khối chức năng CPU thiết kế NGHIỆM

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 8. Kết quả mô phỏng lệnh R

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

2.3.4. Phần cứng trên FPGA

Hệ thống gồm có lõi vi xử lý, bộ nhớ và


các ngoại vi cơ bản như GPIO, Timer ,
Uart

MCU
ROM Timer
Core

UART GPIO
FPGA
Hình 9. Kết quả mô phỏng lệnh I

1.3. Nhóm lệnh J


Hình 7. Mô hình phần cứng trên FPGA
5
phải thực hiện thêm những ngoại vi [3]. Nguyễn Minh Chánh, Phân tích-thiết
sau:Giao tiếp SPI, I2C Ngắt ,… kế lõi vi xử lý 8 bit kiểu RISC và kiểm tra
thực nghiệm trên FPGA, Đại Học Sư Phạm
Kỹ Thuật TPHCM,2009
TÀI LIỆU THAM KHẢO [4]. M. Abd-El-Barr and H. El-Rewini,
[1]. Tài liệu thực hành vi mạch số Fundamentals of computer organization
HDL,ĐHBK TPHCM,tháng 09,năm 2009. and architecture. Hoboken, New Jersey,
Canada: John Wiley & Sons, Inc, 2005.
[2]. Kiến trúc máy tính và hợp ngữ,khoa
CNTT ,ĐHKH Tự Nhiên Tp.HCM. [5].http://123doc.org/doc_search_title/136
3031-kien-truc-bo-lenh-mips.htm

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)

TS. Nguyễn Minh Ngọc

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.

You might also like