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

Nghiên cứu, thiết kế vi xử lý 8 bit dựa 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 (233.92 KB, 11 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trần Hiếu

NGHIÊN CỨU, THIẾT KẾ VI XỬ LÝ 8 BÍT
DỰA TRÊN CÔNG NGHỆ FPGA

LUẬN VĂN THẠC SĨ

Hà Nội - 2008


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trần Hiếu

NGHIÊN CỨU, THIẾT KẾ VI XỬ LÝ 8 BÍT
DỰA TRÊN CÔNG NGHỆ FPGA

Ngành: Công nghệ Điện tử - Viễn thông
Chuyên ngành: Kĩ thuật Điện tử
Mã số: 60 52 70

LUẬN VĂN THẠC SĨ

Người hướng dẫn khoa học: PSG.TS Trần Quang Vinh

Hà Nội - 2008



Lời cảm ơn.

Để có thể hoàn thành tốt luận văn này, tôi xin được bày tỏ sự biết ơn tới PGS.TS Trần
Quang Vinh đã hướng dẫn, chỉ bảo tận tình và dành thời gian quý báu giúp đỡ tôi hoàn
thành luận văn.
Xin được gửi lời cảm ơn tới các cán bộ phòng thí nghiệm SIS đã giúp đỡ và cho tôi những
kinh nghiệm quý báu trong khi làm thực nhiệm.
Tôi cũng xin được gửi lời cảm ơn tới gia đình, cơ quan và bạn bè đã luôn bên tôi, hỗ trợ,
giúp đỡ tôi trong suốt quá trình học tập cũng như quá trình làm luận văn.


MỤC LỤC
DANH MỤC BẢNG .......................................................................................................... 6
DANH MỤC HÌNH VẼ ...................................................................................................... 7
LỜI NÓI ĐẦU ................................................................................................................... 9
CHƢƠNG 1 TỔNG QUAN VỀ FPGA ............................................................................ 10
1.1. Giới thiệu chung .................................................................................................................................................. 10
1.2. Tổng quan về thiết bị logic khả trình – PLD ..................................................................................................... 10
1.3. Thiết bị logic khả trình đơn giản – Simple PLD ................................................... Error! Bookmark not defined.
1.4. Thiết bị logic khả trình phức tạp – Complex PLD ............................................... Error! Bookmark not defined.
1.5. FPGA – Field Programmable Gate Arrays .......................................................... Error! Bookmark not defined.

CHƢƠNG 2 THIẾT KẾ TẬP LỆNH...................... ERROR! BOOKMARK NOT DEFINED.
2.1. Mô tả chung về tập lệnh. ......................................................................................... Error! Bookmark not defined.
2.2. Thiết kế chi tiết tập lệnh.......................................................................................... Error! Bookmark not defined.

CHƢƠNG 3 THIẾT KẾ KIẾN TRÚC VI XỬ LÍ ..... ERROR! BOOKMARK NOT DEFINED.
3.1. Giới thiệu. ................................................................................................................. Error! Bookmark not defined.
3.2. Thiết kế datapath và điều khiển cho RICS............................................................ Error! Bookmark not defined.

3.4. Xây dựng module điều khiển .................................................................................. Error! Bookmark not defined.
3.5. Tổ chức bộ nhớ ........................................................................................................ Error! Bookmark not defined.

CHƢƠNG 4: THIẾT KẾ TESTBENCH VÀ PHƢƠNG PHÁP MÔ PHỎNG TRÊN
MODELSIM .......................................................... ERROR! BOOKMARK NOT DEFINED.
4.1. Giới thiệu .................................................................................................................. Error! Bookmark not defined.
4.2. Thiết kế hệ mô phỏng. ............................................................................................. Error! Bookmark not defined.
4.3. Mô phỏng để kiểm tra thiết kế................................................................................ Error! Bookmark not defined.

CHƢƠNG 5: THIẾT KẾ CHI TIẾT CHỨC NĂNG CỦA VI ĐIỀU KHIỂN VÀ MÔ PHỎNG
TRÊN MODELSIM. .............................................. ERROR! BOOKMARK NOT DEFINED.
5.1. Giới thiệu chung. ..................................................................................................... Error! Bookmark not defined.


5.2.

Thiết kế và mô phỏng chức năng của các module cơ bản trong vi xử lý. .... Error! Bookmark not defined.

5.3

Thiết kế bộ mô phỏng hệ thống tự động. ........................................................ Error! Bookmark not defined.

5.4
Mô phỏng vi điều khiển thực hiện một đoạn chương trình đơn giản, kiểm tra chức năng các module
trong vi điều khiển. ......................................................................................................... Error! Bookmark not defined.

CHƢƠNG 6 TRIỂN KHAI TRÊN KÍT DE2 VÀ MỘT ỨNG DỤNG ĐƠN GIẢN .... ERROR!
BOOKMARK NOT DEFINED.
6.1 Tổng quan về Kit DE2 .............................................................................................. Error! Bookmark not defined.
6.2 Triển khai và chạy thử trên kít DE2. ...................................................................... Error! Bookmark not defined.

6.3 Một ứng dụng nhỏ sử dụng vi điều khiển 8 bít. ..................................................... Error! Bookmark not defined.

KẾT LUẬN. .......................................................... ERROR! BOOKMARK NOT DEFINED.
TÀI LIỆU THAM KHẢO.................................................................................................. 11
Phụ lục 1: Các chương trình test bench dùng để mô phỏng và kiểm tra chức năng của vi điều khiển......... Error!
Bookmark not defined.
Phụ lục 2. Mã nguồn Verilog của nhân vi điều khiển. ................................................. Error! Bookmark not defined.


DANH MỤC BẢNG
Bảng 1 - 1: Tóm tắt về các thiết bị PLD ............................. Error! Bookmark not defined.
Bảng 1 - 2 Altera CPLD. .................................................... Error! Bookmark not defined.
Bảng 1 - 3 Xilinx CPLD. ..................................................... Error! Bookmark not defined.
Bảng 2- 1: Các lệnh hướng byte của vi điều khiển ............ Error! Bookmark not defined.
Bảng 2- 2: Các lệnh hướng bít của vi điều khiển ............... Error! Bookmark not defined.
Bảng 2- 3: Các lệnh rẽ nhánh của vi điều khiển ................ Error! Bookmark not defined.
Bảng 3 - 1: Các thanh ghi chức năng đặc biệt ................... Error! Bookmark not defined.
Bảng 3 - 2: Thanh ghi trạng thái của vi điều khiển. .......... Error! Bookmark not defined.
Bảng 5 - 1: Lối vào điều khiển của ALU ............................ Error! Bookmark not defined.
Bảng 5 - 2: Mã nguồn chương trình được mô phỏng. ........ Error! Bookmark not defined.
Bảng 5 - 3: Các testbench được dùng để mô phỏng và kiểm tra chức năng của vi điều
khiển.................................................................................... Error! Bookmark not defined.


DANH MỤC HÌNH VẼ
Hình 1 - 1 Cấu trúc một thiết bị PAL. ............................................ Error! Bookmark not defined.
Hình 1 - 2 Cấu trúc một thiết bị PLA. ............................................ Error! Bookmark not defined.
Hình 1 - 3: Cấu trúc chip GAL 16V8.............................................. Error! Bookmark not defined.
Hình 1 - 4: Cấu trúc chung của một CPLD. ................................... Error! Bookmark not defined.
Hình 1 - 5 Cấu trúc CPLD XC9500 của Xilinx .............................. Error! Bookmark not defined.

Hình 1 - 6: Cấu trúc chung của FPGA. .......................................... Error! Bookmark not defined.
Hình 1 - 7: Cấu trúc một CLB trong FPGA họ XC40000E ............ Error! Bookmark not defined.
Hình 1 - 8: Cấu trúc một Logic Cell trong Spartan-IIE ................. Error! Bookmark not defined.
Hình 1 - 9 Cấu trúc IOB trong Spartan-IIE. .................................. Error! Bookmark not defined.
Hình 1 - 10: Liên kết trong một chuyển mạch. ............................... Error! Bookmark not defined.
Hình 1 - 11 Mạng liên kết giữa các CLB. ....................................... Error! Bookmark not defined.
Hình 1 - 12 Các kết nối trực tiếp giữa các khối trong FPGA. ....... Error! Bookmark not defined.
Hình 1 - 13 FPGA Spartan IIE của Xilinx...................................... Error! Bookmark not defined.
Hình 2- 1: Định dạng các lệnh hướng byte .................................... Error! Bookmark not defined.
Hình 2- 2 Định dạng các lệnh hướng bít ........................................ Error! Bookmark not defined.
Hình 2- 3: Định dạng các lệnh rẽ nhánh ....................................... Error! Bookmark not defined.
Hình 2- 4: Định dạng của lệnh goto ............................................... Error! Bookmark not defined.
Hình 3- 1: Một datapath đơn giản và mô đun điều khiển tương ứng ........... Error! Bookmark not
defined.
Hình 3- 2: Tổng quan về kiến trúc của vi điều khiển ..................... Error! Bookmark not defined.
Hình 3- 3: Mô hình điều khiển datapath ........................................ Error! Bookmark not defined.
Hình 3- 4: Bộ nhớ chương trình, PC và module tính PC+1 được kết nối với nhau tạo thành
datapath đơn giản ........................................................................... Error! Bookmark not defined.
Hình 3- 5: Tệp thanh ghi (register file) .......................................... Error! Bookmark not defined.
Hình 3- 6: Bộ logic và số học ALU ................................................ Error! Bookmark not defined.
Hình 3- 7: Kết nối bộ logic và số học với register file ................... Error! Bookmark not defined.
Hình 3- 8: Datapath đơn giản sau khi đã kết nối các thành phần của vi điều khiển với nhau.
........................................................................................................ Error! Bookmark not defined.
Hình 3- 9: Datapath của vi điều khiển sau khi đã được thêm vào các thanh ghi pipeline để có thể
thực hiện được kĩ thuật xử lý đường ống. ....................................... Error! Bookmark not defined.
Hình 3- 10: Trạng thái của datapath khi thực hiện pha đầu tiên, tìm và nạp lệnh. ............... Error!
Bookmark not defined.


Hình 3- 11: Trạng thái của datapath khi thực hiện bước giải mã lệnh và đọc dữ liệu từ register

file. .................................................................................................. Error! Bookmark not defined.
Hình 3- 12: Trạng thái của datapath khi thực hiện bước thực thi lệnh. ...... Error! Bookmark not
defined.
Hình 3- 13: Datapath sau khi đã thêm khối điều khiển. ................. Error! Bookmark not defined.
Hình 3- 14: Tổ chức bộ nhớ chương trình của vi điều khiển ......... Error! Bookmark not defined.
Hình 3- 15: Tiến trình thực hiện lệnh GOTO ................................. Error! Bookmark not defined.
Hình 3- 16: Tiến trình thực hiện lệnh CALL .................................. Error! Bookmark not defined.
Hình 3- 17: Tổ chức bộ nhớ dữ liệu, bao gồm cả thanh ghi chức năng đặc biệt và thanh ghi chức
năng chung ..................................................................................... Error! Bookmark not defined.
Hình 3- 18: Sơ đồ kiến trúc của vi xử lý. ........................................ Error! Bookmark not defined.
Hình 4 - 1 Môi trường đồng mô phỏng đồng nhất. ........................ Error! Bookmark not defined.
Hình 4 - 2 Môi trường đồng mô phỏng không đồng nhất ............... Error! Bookmark not defined.
Hình 5 - 1: Bộ lô gic và số học ALU .............................................. Error! Bookmark not defined.
Hình 5 - 2 MUX lựa chọn lối vào cho S1 của bộ ALU. .................. Error! Bookmark not defined.
Hình 5 - 3: Bộ nhớ RAM single port được dùng làm bộ nhớ chương trình . Error! Bookmark not
defined.
Hình 5 - 4: Sơ đồ khối của bộ nhớ chương trình ............................ Error! Bookmark not defined.
Hình 5 - 5: Sơ đồ khối của bộ chia tần số ...................................... Error! Bookmark not defined.
Hình 5 - 6: Sơ đồ khối của bộ nhớ chương trình ............................ Error! Bookmark not defined.
Hình 5 - 7: IP core được dùng để làm bộ nhớ chương trình .......... Error! Bookmark not defined.
Hình 5 - 8: Sơ đồ bên trong của register file .................................. Error! Bookmark not defined.
Hình 5 - 9: Bộ nhớ Stack ................................................................ Error! Bookmark not defined.
Hình 5 - 10: Kết quả mô phỏng PC và bộ nhớ chương trình của vi điều khiển . Error! Bookmark
not defined.
Hình 5 - 11: Kết quả mô phỏng khối ALU...................................... Error! Bookmark not defined.
Hình 5 - 12: Kết quả mô phỏng register file................................... Error! Bookmark not defined.
Hình 6 - 1 Sơ đồ các thành phần trên kít phát triển DE2 ............... Error! Bookmark not defined.
Hình 6 - 2: Lưu đồ thuật toán thực hiện chạy chữ trên LCD. ........ Error! Bookmark not defined.



LỜI NÓI ĐẦU
Với xu hướng phát triển rất nhanh của các bộ vi xử lý cũng như yêu cầu ngày càng
cao của người dùng, việc phát triển một một bộ vi xử lý với tốc độ tính toán thật mạnh đã
và đang là yêu cầu khẩn thiết đối với những nhà phát triển công nghệ. Việc thiết kế các bộ
vi xử lý có khả năng tính toán cao không còn là một vấn đề mới mẻ trên thế giới, nhưng
với Việt Nam nó vẫn đòi hỏi phải vượt qua những khó khăn nhất định. Trong luận văn
này tác giả không có tham vọng thiết kế một bộ vi xử lý có khả năng tính toán cao mà chủ
yếu tập trung vào phân tích kiến trúc và thiết kế một vi xử lý đơn giản. Mục đích chính
của tác giả là nắm được kiến trúc, quy trình thiết kế, triển khai và kiểm định một vi xử lý.
Trên cơ sở đó tác giả sẽ mở rộng, cải tiến một vài mô đun, chức năng của vi xử lý để nâng
cao dần hiệu suất tính toán của vi xử lý. Kết quả của luận văn sẽ là tiền đề để tác giả có
thể phát triển những vi xử lý mới có tốc độ xử lý cao hơn.
Luận văn sẽ bắt đầu với việc tìm hiểu về xu hướng cũng như những loại thiệt bị
lôgic lập trình được hiện nay, tìm hiểu, thiết kế tập lệnh, datapath và bộ điều khiển cho
một vi xử lý 8 bít đơn giản dựa trên kiến trúc RISC với 33 lệnh trong tập lệnh, tiến hành
triển khai bằng ngôn ngữ Verilog và mô phỏng kiểm tra chức năng của vi xử lý bằng phần
mềm ModelSim. Mục đích chính của phần đầu này là hiểu về quy trình thiết kế và xây
dựng môi trường phát triển. Sau đó tác giả sẽ cải tiến dần vi xử lý để có thể có khả năng
tính toán tốt hơn, như áp dụng kĩ thuật đường ống pipeline, nâng độ sâu của bộ nhớ stack,
mở rộng không gian nhớ của bộ nhớ chương trình và bộ nhớ dữ liệu dùng kĩ thuật
banking. Cuối cùng thực hiện tổng hợp thiết kế trên kít FPGA DE2 của Altera và chạy thử
các chương trình nhỏ. Phần cuối cùng tác giả sẽ trình bày về một ứng dụng nhỏ sử dụng
vi điều khiển vừa được thiết kế. Kết quả cho thấy, vi điều khiển có thể thực hiện đúng
được những chức năng cơ bản.


Chƣơng 1 TỔNG QUAN VỀ FPGA
1.1. Giới thiệu chung
Ngày nay việc sử dụng một hệ FPGA đang là một đề tài rất được quan tâm trên thế
giới, sở dĩ như vậy là do các lý do cơ bản sau:

-

Do sự phát triển rất nhanh của công nghệ bán dẫn, giá thành của chip FPGA ngày
càng rẻ.

-

Việc sử dụng chip FPGA để phát triển sản phẩm sẽ rút ngắn được rất nhiều thời
gian thiết kế cũng như thời gian đưa sản phẩn ra thị trường so với một số phương
pháp thiết kế truyền thống như ASIC.

-

Sử dụng công nghệ FPGA để verification một thiết kế ASIC cũng rút ngắn được
rất nhiều thời gian simulation cũng như giảm được nhiều giá thành và công sức
thiết kế.

Dưới đây trình bày sơ lược về các thiết bị logic khả trình cũng như quy trình thiết
kế dựa trên công nghệ FPGA, sở dĩ tác giả chỉ tập trung vào giới thiệu quy trình thiết kế
dựa trên công nghệ FPGA là do tác giả sẽ sử dụng chip FPGA của Altera để thử
Prototype thiết kế của tác giả. Phần đầu tiên của chương này sẽ giới thiệu về các thiết bị
PLD: khái niệm PLD, quá trình phát triển của các thiết bị PLD, cấu trúc của một vài loại
thiết bị PLD và FPGA, công nghệ chế tạo cũng như tính năng và ứng dụng.

1.2. Tổng quan về thiết bị logic khả trình – PLD
Field Programmable Device (FPD) – Một thuật ngữ chung để chỉ bất cứ loại
mạch tích hợp nào được sử dụng để thực thi một phần cứng số, mà ở đó con chip có thể
được cấu hình lại bởi người dùng cuối nhằm thu được một thiết kế mới. Người dùng có
thể cấu hình lại cho thiết bị ngay tại nơi thiết bị được sử dụng mà không cần đem thiết bị
cho nhà sản xuất thực hiện việc cấu hình. Lập trình cho các thiết bị trên bao gồm việc đưa

con chip vào một thiết bị lập trình đặc biệt (nạp cấu hình), nhưng một số khác có thể cấu
hình ngay trên hệ thống (ISP – In System Programming). Một tên gọi khác của FPD là
Programmable Logic Devices (PLD). Sau đây ta sẽ đi tìm hiểu kỹ hơn về các thiết bị
PLDs cụ thể.
PLD – Programable Logic Device là thiết bị logic số lập trình được, PLD được
đưa ra giới thiệu vào khoảng giữa thập kỷ 70, bắt nguồn từ ý tưởng chế tạo ra một mạch
logic tổ hợp có khả năng tái lập trình lại phần cứng (khả trình), nhằm phục vụ cho việc
thử nghiệm, tạo mẫu, phát triển ứng dụng, sản xuất ở quy mô nhỏ.


TÀI LIỆU THAM KHẢO
1. David A. Patterson, John L. Hennesly, Computer organization and design the
hardware software interface 3rd 2004.
2. David A. Patterson, John L. Hennesly, Computer Architecture a Quantiative
Aprroach.
3. Thomas & Moorby’s The verilog Hardware Discription Laguage, fifth edition.
4. Zainalabedin, Digital Design and Implimentation with Field Programable Devices.
5. Nicola Bombieri, Hardware Design and Simulation for Verification. The 6th
international school on Formal Methods for Design of Computer, Communication,
and Software Systems, SFM 2006 Bertinolo, Italy, May, 2006.
6. Volnei A. Pedroni, Circuit Design with VHDL, MIT Press, 2004
7. Xilinx , MicroBlaze Processor reference guide
8. www.microchip.com
9. [43] Ghosh, S., Chakraborty, T.: On behavior fault modeling for digital design.
International Journal of Electronic Testing: Theory and application. (1991).
10.




×