Báo cáo đồ án tốt nghiệp
Khoa Vô tuyến điện tử - 2012
Thiết kế nhân vi xử lý
nhúng với tập lệnh rút
gọn trên công nghệ
FPGA
Sinh viên thực hiện
Giáo viên hướng dẫn
Thượng tá, Th.s Nguyễn Hoài Anh
Thượng úy, Th.s Trịnh Quang Kiên
Khoa VTĐT - HVKTQS
Lớp ĐTVT6B – Khoa VTĐT
Hoàng Xuân Trường
Nội dung báo cáo
I
Đặt vấn đề
II
Nội dung đồ án
III
Kết quả nghiên cứu
VI
Hướng phát triển
I. Đặt vấn đề
- Hệ vi xử lý được
ứng dụng rộng
rãi trong thực
tiễn.
- Có thể thiết kế
logic cho nhân vi
xử lý mà không
phụ thuộc vào
quá trình sản
xuất chíp tại nhà
máy.
- Chủ động trong
vấn đề làm chủ
công nghệ thiết
kế hệ vi xử lý
ROBOT
MÁY BAY
CPU
Ô TÔ
II. Nội dung đồ án
Chương 1
TỔNG QUAN
VỀ THIẾT KẾ
BỘ VI XỬ LÝ
NHÚNG TRÊN
CÔNG NGHỆ
FPGA
Chương 2
Chương 3
THIẾT KẾ
NHÂN VI XỬ
LÝ NHÚNG
TRÊN CÔNG
NGHỆ FPGA
HIỆN THỰC
HÓA THIẾT KẾ
NHÂN VI XỬ
LÝ NHÚNG
TRÊN MẠCH
FPGA
Chương 1: Tổng quan về thiết kế bộ vi xử lý nhúng trên
công nghệ FPGA
LOGIC
(HDL)
I/O
BỘ NHỚ
Bus
CPU
THANH GHI
ĐA CHỨC
NĂNG
KẾT NỐI BÊN
TRONG CPU
VẬT LÝ
ALU
CU
NHÂN VI XỬ LÝ
1.1 Tổng quan về thiết kế bộ vi xử lý
nhúng trên công nghệ FPGA
Chương 1: Tổng quan về thiết kế bộ vi xử lý nhúng trên
công nghệ FPGA
1.2 Tổng quan về công nghệ FPGA
Chương 1: Tổng quan về thiết kế bộ vi xử lý nhúng trên
công nghệ FPGA
• VHDL là ngôn ngữ mô tả phần
cứng được phát triển dùng cho
chương trình VHSIC
• VHDL có 6 ưu điểm
- Tính công cộng.
- Khả năng hỗ trợ nhiều công
nghệ và phương pháp thiết kế.
- Khả năng mô tả mở rộng.
- Khả năng trao đổi kết quả.
- Khả năng hỗ trợ thiết kế mức
lớn và khả năng sử dụng lại
các thiết kế.
1.3 Tổng quan về ngôn ngữ VHDL
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
RISC – máy tính với
tập lênh rút gọn. Là
phương pháp thiết kế
VXL:
- Đơn giản hóa tập
lệnh
- Thời gian thực thi
tất cả các lênh đều
như nhau
- Vẫn đảm bảo bộ vi
xử lý có thể thực thi
được những lệnh
chính
- Tốc độ nhanh
2.1 Tổng quan về RISC
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
DB8B
Kiến trúc
HARVARD
Mã lệnh
16 bit
Dữ liệu
8 bit
Thiết kế theo
phương
pháp RISC
DB8B có
27 lệnh
Tất cả
các lệnh
trải qua 5
chu kỳ
lệnh
2.2 Tổng quan về nhân vi xử lý
DB8B
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
DB8B có 27 lệnh:
Cấu trúc lênh theo
hai kiểu A, B.
DB8B phân loại
nhóm lệnh như sau:
- Nhóm lệnh
NOP,HALT
- Nhóm lệnh toán
học
- Nhóm lệnh logic
- Nhóm lệnh
MOV
- Nhóm lệnh nhảy
2.3 Xây dựng tập lệnh cho nhân vi
xử lý DB8B
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
2.4 Thiết kế chức năng khối DU
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
KHỐI CU: là một máy trạng thái
hữu hạn. Bao gồm 6 trạng thái.
- Mỗi trạng thái thực hiện mất
một chu kỳ xung nhịp.
- Ba trạng thái đầu START,
READ_ROM và DECODE
thực hiện các thao tác như
nhau với tất cả các nhóm lệnh
khác nhau (trừ nhóm lệnh
nhảy).
- Ba trạng thái còn lại với mỗi
lệnh cụ thể sẽ cho ra các tín
hiệu điều khiển khác nhau.
2.5 Thiết kế chức năng khối CU
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
Địa chỉ
ROM
X”0000”
001001101110
001
10010000001
10010
Quá trình thực hiện
lệnh
rf[3] <=
imm[01110001]--movri
rf[3] <= rf[3] not rf[2]-not
X”0002”
00010010000
00001
rf[2] <=
imm[00000001]
X”0003”
10000001001
10010
rf[3] <= rf[3] srl rf[2]
X”0001”
Chương trình
2.6 Kiểm tra, mô phỏng DG8B với phần mềm
ModelSim SE 6.5
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
2.6 Kiểm tra, mô phỏng DG8B với phần mềm
ModelSim SE 6.5
Chương 2: Thiết kế nhân vi xử lý nhúng với tập lệnh rút
gọn DB8B
MÃ
LÊNH
Trạng thái decode lệnh MOVRI
Chương 3: Hiện thực hóa thiết kế nhân vi xử lý DB8B
trên mạch FPGA
-
-
Mạch được thiết kế trên nền
tảng Xilinx Spartan 3E FPGA
XCS500 PQG208
Phần trung tâm của mạch là
FPGA và FLASH ROM
có các cổng VGA, UART,
cổng PS/2, LCD, USB, các
switch
3.1 Mạch phát triển ứng dụng trên công nghệ FPGA
Chương 3: Hiện thực hóa thiết kế nhân vi xử lý DB8B
trên mạch FPGA
- Số cổng vào ra sử
dụng 27 chiếm 17%.
- 206 slice chiếm 4%
- 269 LUT tương ứng
2%
- Như vậy với thiết kế
nhân vi xử lý 8 bit như
trên sử dụng một tài
nguyên tương đối nhỏ
của FPGA
===================================
Device utilization summary:
--------------------------Selected Device : 3s500epq208-5
Number of Slices: 206 out of 4656 4%
Number of Slice Flip Flops: 199 out of 9312
2%
Number of 4 input LUTs: 269 out of 12 2%
Number of IOs:
27
Number of bonded IOBs: 27 out of 58 17%
Number of GCLKs:
1 out of
24 4%
===================================
Final Register Report
Macro Statistics
# Registers
: 199
Flip-Flops
: 199
3.2 kết quả tổng hợp thiết kế trên Xilinx ISE Design Suite
Chương 3: Hiện thực hóa thiết kế nhân vi xử lý DB8B
trên mạch FPGA
Biên dịch
Ánh xạ
Kết nối
Biên dịch
Ánh xạ
Kết nối
Hiện thực hóa thiết (Implementation) kế FPGA là quá
trình chuẩn bị dữ liệu cho việc cấu hình FPGA từ thông tin đầu
vào là mô tả netlist. Quá trình này bắt đầu bằng quá trình biên
dịch và ánh xạ thiết kế lên đối tượng FPGA cho tới khi thiết kế
vật lý được phân bố cụ thể và kết nối với nhau
3.3 Hiện thực hóa thiết kế
Chương 3: Hiện thực hóa thiết kế nhân vi xử lý DB8B
trên mạch FPGA
-
-
-
Quá trình này là việc ghi dữ
liệu vào SRAM
Quy định cách thức làm việc,
kết nối của các phần tử trong
FPGA
Thiết kế được dịch sang 1
file cấu hình (BIT file) và nạp
vào trong FPGA thông qua
giao thức JTAG
File BIT này cũng có thể
được biến đổi thành các định
dạng PROM khác nhau để
nạp vào trong ROM
3.4 Cấu hình FPGA
Chương 3: Hiện thực hóa thiết kế nhân vi xử lý DB8B
trên mạch FPGA
- Qúa trình test thiết kế
trên FPGA ta để tần số
thấp để khi hiển thi ra
đèn led mắt người có thể
qua sát được.
- Ở đây tần số đầu vào
DB8B sau khi chia thì cứ
1s tương ứng với một
chu kỳ xung nhịp. Như
vậy cứ sau 5s (tức năm
chu kỳ xung nhịp) thì
DB8B đổi trạng thái
•
•
•
•
•
•
•
•
•
•
•
NET "cpu_input[0]"
LOC = P160;
NET "cpu_input[1]"
LOC = P161;
NET "cpu_input[2]"
LOC = P162;
NET "cpu_input[3]"
LOC = P163;
NET "cpu_input[4]"
LOC = P164;
NET "cpu_input[5]"
LOC = P165;
NET "cpu_input[6]"
LOC = P167;
NET "cpu_input[7]"
LOC = P168;
NET "cpu_output[0]"
LOC = P8;
NET "cpu_output[1]"
LOC = P9;
NET "cpu_output[2]"
LOC = P11;
3.6 Test thiết kế trên mạch FPGA
•
•
•
•
•
•
•
•
•
•
•
•
NET "cpu_output[3]"
LOC = P12;
NET "cpu_output[4]"
LOC = P15;
NET "cpu_output[5]"
LOC = P16;
NET "cpu_output[6]"
LOC = P18;
NET "cpu_output[7]"
LOC = P19;
NET "cpu_pc_out[0]"
LOC = P30;
NET "cpu_pc_out[1]"
LOC = P31;
NET "cpu_pc_out[2]"
LOC = P33;
NET "cpu_pc_out[3]"
LOC = P34;
NET "clk" LOC = P80;
NET "clk16_out" LOC =
P41;
NET "reset" LOC =
P120;
III. Kết quả nghiên cứu
- Thiết kế RTL cho nhân vi
xử lý 8bit với tập lệnh rút
gọn (27 lệnh).
- Tổng hợp kiểm tra thiết
kế trên mạch FPGA với
chíp Xilinx Spartan 3E
FPGA XCS500 PQG208
- Tất cả các lệnh đều
cho kết quả đúng như
thiết kế yêu cầu
IV. Hướng phát triển
Kết nối DB8B với cổng giao tiếp
UART
Kết nối DB8B với cổng giao tiếp
VGA
Kết nối DB8B với cổng giao tiếp
PS/2
Kết nối DB8B với bộ định thời,
biến đổi A/D, PWR và
Watchdog timer
BÀI BÁO CÁO CỦA EM XIN
DỪNG LẠI TẠI ĐÂY
EM XIN CHÂN THÀNH CẢM ƠN
CÁC THẦY VÀ CÁC BẠN ĐÃ CHÚ
Ý THEO DÕI!