Tải bản đầy đủ (.pdf) (23 trang)

Báo cáo đề tài thiết kế nhân vi xử lý nhúng trên công nghệ FPGA

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 (1.66 MB, 23 trang )

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


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!



×