ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Mục lục
Chương I 3
Giới Thiệu Về Phần Mềm 3
I.1. Phần Mềm Quartus II 3
I.2. SOPC BUILDER 11
I.2.1 Khái niệm về SOPC: 11
I.2.2 Thiết Kế SOPC Builder Dùng Mã Verilog 15
I.3 Phần Mềm NIOS II IDE 21
I.3.1 Tổng quan các tính năng của bộ vi xử lý NIOS II: 22
I.3.2 Cấu Trúc Thanh Ghi 23
I.3.3. Truy Xuất Bộ Nhớ Và Thiết Bị I/O 26
I.3.4. Địa Chỉ 27
I.3.5. Tập Lệnh 28
I.4 Board DE2 29
I.4.1. Tính năng của mạch DE2 29
I.4.2. Thông số kỹ thuật 30
I.4.3. Những Ví Dụ Về Những ứng Dụng Cao Cấp 34
Chương II 36
Audio Codec W8731/L 36
II.1 Giới Thiệu Về AUDIO CODEC W8731/L 36
II.1.1 Đường Dẫn Line Input 38
II.1.2 Ngõ Vào Microphone 41
II.1.3 MICROPHONE BIAS 41
II.1.4 Bộ Lọc ADC 41
II.1.5 Bộ Lọc DAC 43
II.1.6 Line Ngõ Ra 44
II.1.7 HEADPHONE AMPLIFIER 45
II.2 Các Chế Độ Hoạt Động 47
II.2.1 SYPASS MODE 47
II.2.2 SIDETONE MODE 49
II.3 Hoạt Động Của Thiết Bị 50
II.3.1 Cài Đặt Lại Thiết Bị 50
II.3.2 Lược Đồ CLOCKING 50
II.3.3 LÕI XUNG CLOCK. 51
II.3.4 Máy Tạo Dao Động CRYSTAL 51
II.3.5 CLOCKOUT 52
II.3.6 Giao Diện Phần Mềm 53
II.3.7 Chế Độ Năng Lượng 55
II.3.8 Bản Đồ Thanh Ghi 59
II.3.9 Nét Đặc Trưng Của Đầu Lọc Kỹ Thuật Số 59
II.3.10 Sự Hoạt Động Ở Chế Độ Master/Slave. 61
II.4 Mô tả tổng quát về SD CARD 62
II.4.1 Tính Năng 63
II.4.2 Ứng dụng 63
II.4.3 Mô Tả Port Của SD Card 63
II.5 Định Dạng FAT 64
II.6 Khái Niệm Về Tập Tin Wave 68
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 1
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Chương 3 Hệ Thống Tổng Quát 70
III.1 Thiết Kế Mô Hình SD Music Player. 70
III.2 Chương Trình Demo 71
III.2.1 Các Định Nghĩa Thiết Lập 71
III.2.2 Các Chương Trình Con Và Các Hàm Con 73
III.2.3 Chương Trình Chính 85
Tài liệu tham khảo 89
Phụ Lục 90
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 2
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Chương I
Giới Thiệu Về Phần Mềm
I.1. Phần Mềm Quartus II
Hệ thống Quartus II bao gồm đầy đủ tất cả công thức thông thường để mô tả
yêu cầu mạch vào trong một hệ thống CAD. Người dùng có thể chỉ định yêu cầu mạch
vào trong ngôn ngữ mô tả phần cứng Verilog hoặc VHDL. Và cái khác là dựa trên nội
dung yêu cầu mạch trong mẫu của một sơ đồ biểu đồ. Bước cuối cùng trong quá trình
thiết kế cần phải cấu hình mạch thiết kế trong thiết bị Nios II thật.
Mỗi mạch logic, hay mạch phụ, thiết kế bằng phần mềm Quartus II được gọi là một
Project. Phần mềm làm việc trên một project tại một thời điểm và giữ thông tin cho
project trong một thư mục trên file hệ thống. Để bắt đầu thiết kế một mạch logic mới,
trước tiên phải tạo một thư mục để chứa các file của nó.
Hình 1.1.1. Hiển thị chính Quartus II.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 3
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hầu hết các lệnh cung cấp bởi Quartus II có thể được truy xụất bằng cách dùng
một thiết lập của menu được xác định dưới dạng thanh tiêu đề.
Hình 1.1.2. ví dụ file menu
Để bắt đầu một thiết kế mới trước tiên phải định nghĩa một thiết kế project mới.
Tạo một project mới như sau:
¾ Chọn File > New Project Wizard để được cửa sổ như hình 1.1.3. Có thể
bỏ qua cửa sổ này trong project sau bằng cách đánh dấu check vào hộp
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 4
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
thoại Don’t show me this introduction again. Nhấn next sẽ thấy cửa sổ
như hình 1.1.4.
Hình 1.1.3. Thao tác thực hiện bằng Wizard Tasks
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 5
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.1.4. Tạo một project mới.
¾ Nhấn next. Từ đây chúng ta đã tạo ra một thư mục introtutorial hay chưa, phần
mềm Quartus II hiện ra một hộp trong hình 1.1.5 hỏi nó sẽ tạo ra một thư mục
mong muốn. click Yes, hiện ra cửa sổ trong hình 1.1.6
Hình 1.1.5. Phần mềm Quartus II sẽ tạo ra một thư mục cho project
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 6
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.1.6. Wizard có thể bao gồm file thiết kế lý thuyết.
¾ Nếu không có file nào tồn tại, Click next, sẽ thấy cửa sổ trong hình 7.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 7
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.1.7. Chọn một họ thiết bị và một thiết bị cụ thể
¾ Chúng ta có kiểu thiết bị cụ thể, mà mạch được thiết kế sẽ được thực thi đầy đủ.
Chọn Cyclone II làm họ thiết bị mục tiêu. Chúng ta có thể cho phép phần mềm
Quartus II chọn họ thiết bị cụ thể, hay chúng ta có thể chọn thiết bị rõ ràng. Từ
danh sách thiết bị cho phép chọn thiết bị EP2C35F672C6, mà được SOPC
Builder dùng trên board DE2. nhấn next mở cửa sổ trong hình 1.1.8.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 8
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.1.8. Công cụ EDA khác
¾ Người dùng có thể chỉ định bất kỳ công cụ EDA nào. Phổ biến là dùng phần
mềm CAD cho mạch điện là các công cụ EDA. Thuật ngữ này được dùng trong
thông báo Quartus II đề cập đến ba công cụ. từ đây chúng ta sẽ dựa vào các
công cụ của Quartus II, không chọn công cụ nào khác.
¾ Nhấn next. Tóm tắt của những chọn lựa trên là xuất hiện màn hình như hình
1.1.9. nhấn finish, trở về cửa sổ chính Quartus II, nhưng với light được định
nghĩa như project mới trong thanh tiêu đề như hình 1.1.10
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 9
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.1.9. Tóm tắt của việc cài đặt project.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 10
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.1.10. Quartus II sau khi project được tạo
I.2. SOPC BUILDER
I.2.1 Khái niệm về SOPC:
System on Programmable chip (SOC) là một ý tưởng về sự tích hợp tất cả mọi
thành phần của một hệ thống vào một mạch tich hợp (IC). Mạch này có thể bao gồm
cả các chức năng số, tương tự, hoặc cả hai- tất cả trên một chip. Ứng dụng điển hình
cho ý tưởng này là các hệ thống nhúng. Các SOC có ưu điểm là giá thành thấp và đơn
giản. Thiết bị logic khả trình (PLD: Programmable logic device) là một thiết bị được
tạo ra từ các cổng logic, có khả năng lập trình được để tạo các ứng dụng khác nhau. Từ
ý tưởng trên, thuật ngữ SOPC-system on programmable chip ra đời. Toàn bộ thiết kế
hệ thống sẽ được tạo trên một thiết bị logic khả trình (PLD). Lĩnh vực này thường ứng
dụng để thử nghiệm các hệ thống trước khi chế tạo các IC. Một sơ đồ ví dụ về hệ
thống SOPC được được trình bày trong hình 1.1.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 11
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.2.1: Sơ đồ ví dụ về hệ thống SOPC tích hợp trên PLD của Altera
Các thư viện của SOPC builder thường bao gồm các thành phần sau:
¾ Vi xử lý
¾ Các IP và các kết nối ngoại vi
¾ Các giao diện với bộ nhớ
¾ Các thiết bị liên lạc ngoại vi
¾ Các giao diện và các bus, bao gồm cả giao diện Avalon
¾ Các lõi DSP
Ta có thể sử dụng SOPC builder để xây các hệ thống nhúng bao gồm CPU, giao
tiếp bộ nhớ, và các module I/O. Ta cũng có thể dùng nó chỉ để tạo ra một hệ thống tạo
luồng dữ liệu mà không bao gồm CPU.
SOPC sử dụng một giao diện người dùng gồm các nhãn dán (Tab). Các tác vụ
được phân chia theo chức năng và các tác vụ có liên quan với nhau sẽ được trình bày
trên cùng một nhãn. Nhãn system contents được hiển thị khi ta mở SOPC Builder.
Hình 1.2.2 trình bày giao diện của nhãn này (và cũng là giao diện mặc định của SOPC
Builder). Với nhãn systemm contents ta có thể:
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 12
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
¾ Thêm vào hoặc loại ra các component trong hệ thống.
¾ Cấu hình các component.
¾ Chỉ định các đường kết nối giữa các component.
Hình 1.2.2: Các thành phần trong nhãn system contents
Bảng 1.1: Các thành phần giao diện người dùng trên nhãn system contents
Thành phần Chức năng
Các nhãn (Tabs) Phân loại các điều khiển giao diện người dùng dựa trên tác vụ
Danh sách các thành
phần sẵn có (List of
Liệt kê thư viện các thành phần sẵn có theo từng loại. Mỗi
thành phần xuất hiện kèm một chấm màu ngay bên tên của
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 13
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Available Component) nó. Chấm màu này có ý nghĩa sau:
• Chấm xanh lá: các thành phần đầy đử và có bản quyền
đã được cài đặt
• Chấm vàng: thành phần không đầy đủ, chỉ là bản đánh
giá (evaluation version).
• Chấm trắng: thành phần chưa cài đặt
Lọc các thành phần
(component filters)
Lọc các thành phần theo loại
Bảng các thành phần
đã kích hoạt (Table of
Active Components)
Liệt kê các thành phần đã được cài đặt trên hệ thống, cho
phép ta chỉ định:
• Tên của từng thành phần
• Địa chỉ cơ bản cho mỗi cổng slave
• Nguồn xung clock cho mỗi thành phần
• Ưu tiên ngắt (nếu có) cho mỗi cổng slave
Bảng kết nối
(Connection Panel)
Trình bày các liên kết giữa những thành phần, cho phép ta:
Chỉ định liên kết giữa cổng master và cổng slave
Chỉ định các chia sẻ thỏa hiệp cho các cổng slave được nhiều
cổng master truy cập.
Các thiết lập bo mạch
(Board Settings)
Cho phép ta chỉ định chi tiết nền phần cứng:
Ví dụ ta có thể chỉ định board cụ thể sử dụng cho thiết kế
này, nhờ đó SOPC Builder sẽ tự động hỗ trợ kết nối các chân
ra các thiết bị ngoài chip (nhưng vẫn trên board). Điều này
giảm đáng kể thời gian phải nối chân cho thiết kế.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 14
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Bảng thiết lập xung
clock (Clock Settings
Table)
Cho phép định nghĩa các tín hiệu clock được sử dụng trong
hệ thống bao gồm: tên, nguồn, tần số, và tùy chọn pipeline
cho các thiết kế có tốc độ cao
Cửa sổ thông báo
(Messages Window)
Hiển thị các cảnh báo, lỗi hay thông tin liên quan đến hệ
thống hiện tại.
I.2.2 Thiết Kế SOPC Builder Dùng Mã Verilog
I.2.2.1. Bắt Đầu Một SOPC Builder: Sao khi hoàn thành xong chương
trình chính việc xây một project mới của Quartus II, góc phải của giao diện ta
thấy biểu tượng SOPC Builder, click vào đó sẽ cho phép chúng thiết kế một hệ
thống SOPC Builder có thể lập trình được bằng Nios II IDE. Giao diện được
thể hiện ở hình 1.2.3.
Hình 1.2.3. tạo mới một SOPC Builder.
I 2.2.2 Thiết Kế Hệ Thống: sao khi tạo mới một SOPC Builder, chúng ta
thiết kế các đường kết nối bằng cách click vào Nios II processor để add một
cpu_0 được thể hiện ở hình 1.2.4.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 15
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.2.4. add cpu_0 vào để tạo kết nối.
Nhấn finish là chúng ta đã hoàn thành việc thiết kế một kết nối cpu_0 cơ bản.
Giao diện được thể hiện ở hình 1.2.5.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 16
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.2.5. thiết kế module cpu_0.
Tương tự, trong cửa sổ SOPC Builder này cũng cho phép chúng ta add thêm
các module kết nối cần thiết cho việc kế một hệ thống cần thiết. Minh họa trong hình
1.2.6 sẽ cho chúng ta nhìn rõ hơn quá trình này.
Hình 1.2.6. add các module cần thiết
Để kết nối cpu_0 với onchip_memory2_0 lại với nhau, ta cần chỉ ra đường dẫn
cho cpu_0 đi đến. đường dẫn này được thể hiện trong hình 1.2.7.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 17
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.2.7. liên kết cpu_0 với onchip_memory2_0
Xong công việc thiết kế một hệ thống, chúng ta biên dịch lại chương trình bằng
cách click vào button Generate để biết xem trong quá trình thiết kế có sai xót gì không.
Quá trình biên dịch thành công được thể hiện ở hình 1.2.8.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 18
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.2.8. biên dịch thành công
Biên dịch thành công, để tiếp tục chương trình thiết kế hệ thống chúng ta quay
lại với cửa sổ chính của Quartus II trong hình 1.1.1 và gán pin cho hệ thống theo hình
1.2.9.
Hình 1.2.9. Gán pin
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 19
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Sao khi gán pin xong, chúng ta biên dịch lại chương trình một lần nữa trong
Quartus II để hệ thống liên kết lại với nhau. Quá trình biên dịch thành công được thể
hiện trong hình 1.2.10.
Hình 1.2.10. Quartus II biên dịch thành công
Xong quá trình thiết phần cứng. Để điều khiển được hệ thống trên, Nios II IDE
sẽ cho phép chúng ta lập trình điều khiển toàn bộ hệ thống mà chúng ta vừa thiết kế.
Quay lại với SOPC Builder sao khi biên dịch thành công, click vào button Nios II IDE
để thực hiện việc lập trình. Hình 1.2.11 sẽ cho chúng ta được nhìn rõ hơn vấn đề này.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 20
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
Hình 1.2.11. lập trình Nios II IDE
I.3 Phần Mềm NIOS II IDE
Đây là chương trình biên dịch ngôn ngữ lập trình C và download chúng vào
trong chip Nios II. Nó chọn hệ thống SOPC gồm có: bộ nhớ, bộ đếm và nhiều lựa
chọn khác để biên dịch, debug và chạy chương trình C. JTAG UARC dùng để
download file C tới chip NIOS II. NIOS II IDE có một new project wizard dùng để tự
động cài đặt project ứng dụng C/C++ và project thư viện hệ thống. hơn nữa, NIOS II
IDE cung cấp mã phần mềm ví dụ( trong dạng project khuôn mẫu) để hỗ trợ các kỹ sư
phần mềm làm việc với hệ thống nhanh nhất có thể. Mỗi khuôn mẫu là lựa chọn file
phần mềm và thiết lập project. Người thiết kế có thể thêm mã nguồn của riêng họ vào
project bằng cách thay thế code vào trong thư mục project hoặc import file vào trong
project. Dựa trên chuẩn công nghiệp chuỗi công cụ JNU, NIOS II cung cấp giao diện
người dùng để biên soạn. Môi trường xây dựng NIOSS II IDE được thiết kế để thuận
tiện phát triển phần mềm cho bộ xử lý NIOS II của ALTERA miễn là dễ dùng Push-
Button. Mặc dù cũng cho phép người thiết kế xây dựng các thiết lập cao cấp bằng tay.
Môi trường xây dựng NIOS II IDE cung cấp một make file dựa trên cấu hình hệ thống
cụ thể(file SOPC Builder GENERATE PTF). Thay đổi thiết lập trình biên dịch/mối
liên kết trong NIOS II IDE được làm tự động trong make file này. Thiết lập này có thể
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 21
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
bao gồm tùy chọn cho file khởi tạo bộ nhớ(MIF), nội dung flash, file khởi tạo mô
phỏng(DAT/HEX), và file tóm tắt profile.
NIOS II IDE chứa debug phần mềm dựa trên debug GNU, GDP. Debug cung
cấp nhiều tính năng debug cơ bản, cũng như các tính năng debug khác thường là
không có sẵn trong các kit phát triển bộ xử lý giá thấp. Hoặt động chạy debug được
cung cấp sẵn bằng cách click phải vào project. NIOS II IDE cho phép bạn chạy hoặc
debug project trên board mục tiêu hoặc tập lệnh mô phỏng NIOS II(ISS). Mỗi ứng
dụng có thư viện riêng của nó. Thư viện này chứa file liên quan tới hệ thống xây dựng
của SOPC Builder. Nó có thể thực hiện lựa chọn bộ nhớ ngõ vào, ngõ ra và bộ đếm
cho ứng dụng. Có nhiều tùy chọn của biên dịch và chạy chương trình. Nó thì rất hữu
ích cho luận điểm project này ”tùy chọn thư viện C nhỏ”. Khi “tùy chọn thư viện C
nhỏ” được chọn, thư viện hệ thống dùng bổ xung giảm bớt của thư viện chuẩn Newlib
ANSI C. đặt biệt, họ prinf() của thủ tục(prinf(), fprinf(), sprinf()) giá trị con trỏ thay
đổi khi tùy chọn này được check.
I.3.1 Tổng quan các tính năng của bộ vi xử lý NIOS II:
NIOS II là một bộ vi xử lý mềm có một số tính năng có thể cấu hình phù hợp
với người dùng để tạo ra một hệ thống mong muốn được xử lý có thể cung cấp công
cụ trong ba cách có thể cấu hình khác nhau.
NIOS II/“fax” được thiết kế cho việc thực thi mạnh. Nó có nhiều tùy chọn để cấu hình,
có thể được sử dụng để tối ưu cho bộ xử lý thực thi.
NIOS II/S là một phiên bản “chuẩn”, phiên bản này yêu cầu nguồn tài nguyên thấp
trong một thiết bị FPGA thích hợp cho các thực thi đơn giản.
NIOS II/E là một phiên bản “kinh tế”, phiên bản này yêu cầu nguồn tài nguyên thấp
nhất của thiết bị FPGA nhưng nó cũng có nhiều giới hạn nhất để thiết lập các tính
năng mà người sử dụng có thể dùng.
Bộ xử lý NIOS II là kiến trúc máy tính thiết lập các tập lệnh đơn giản(RISC),
các hoạt động số học logic của nó được thi hành trên các toán hạn trong các thanh ghi
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 22
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
đa năng. Dữ liệu được di chuyển giữa bộ nhớ và các thanh ghi này theo mục đích của
lệnh load và store.
Độ dài của bộ xử lý NIOS II là 32 bit. Tất cả các thanh ghi có độ dài là 32 bit,
các byte địa chỉ trong 32 bit có thể được gán trong kiểu little-endian hoặc kiểu bit-
endian. Các kiểu gán này là một trong những tùy chọn mà người sử dụng có thể lựa
chọn để cấu hình thời gian. Kiến trúc NIOS II dùng để tách rời các bus tập lệnh và dữ
liệu. cái này thường liên quan tới kiến trúc phần cứng.
Một bộ xử lý NIOS II có thể hoạt động trong ba chế độ sau:
¾ Chế độ giám sát: cho phép bộ xử lý thi hành tất cả các tập lệnh và thực hiện tất
cả các hàm có sẵn. khi bộ xử lý reset, nó sẽ đi vào chế độ này.
¾ Chế độ người dùng: ngăn ngừa việc thực hiện một vài tập lệnh dùng cho hệ
thống mục tiêu. Một vài tính năng của bộ xử lý không sử dụng được trong chế
độ này.
¾ Chế độ debug: được sử dụng bởi các công cụ debug để thực hiện các tính năng
như điểm ngắt và điểm theo dõi.
Các chương trình ứng dụng có thể chạy trong chế độ người dùng hoặc chế độ giám
sát. Các phiên bản có sẵn hiện giờ của bộ xử lý NIOS II không hổ trợ chế độ người
dùng.
I.3.2 Cấu Trúc Thanh Ghi
Bộ xử lý NIOS II có 32 thanh ghi đa năng có 32 bit, một vài thanh ghi được
giành cho một mục đích cụ thể và có tên riêng. Nó được thừa nhận bởi chương
trình dịch hợp ngữ.
¾ Thanh ghi R0 được xem như là thanh ghi zero luôn luôn chứa giá trị không
đổi là 0.
¾ Thanh ghi R1 được sử dụng bởi chương trình hợp ngữ như một thanh ghi
tạm thời. Nó không được sử dụng cho chương trình người dùng.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 23
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
¾ Thanh ghi R24 và R29 được sử dụng xử lý các ngoại lệ. chúng không có sẵn
trong chế độ người dùng.
¾ Thanh ghi R25 và R30 được sử dụng giành riêng cho chế độ debug JTAG.
¾ Thanh ghi R27 và R28 dùng để điều khiển Stack.
¾ Thanh ghi R31 được sử dụng để giữ giá trị trả về khi một chương trình con
được gọi.
Thanh ghi Tên Chức năng
r0 zero 0x00000000
r1 at Chương trình dịch hợp ngữ tạm thời
r2
r3
. . .
. . .
. . .
r23
r24 et phản đối tạm thời (1)
r25 bt điểm ngắt tạm thời (2)
r26 gb con trỏ tòan cục
r27 sp con trỏ stack
r28 fp con trỏ khung
r29 ea địa chỉ trả về ngoại lệ (1)
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 24
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN
r30 ba địa chỉ trả về điểm ngắt (2)
r31 ra địa chỉ trả về
(1) thanh ghi không có sẵn trong chế độ người dùng
(2) thanh ghi chỉ dùng trong chế độ debug JTAG
Bảng 1 Các Thanh Ghi Đa Năng
Các thanh ghi này được sử dụng tự động cho mục đích điều khiển. chúng có thể
đọc và ghi bằng các lệnh riêng biệt rdctl và wrdctl, cái này chỉ có thể thực hiện cho
mục đích giám sát. Các thanh ghi được sử dụng như sau:
¾ Thanh ghi ctl0 tương ứng với trạng thái hoạt động của bộ xử lý. Chỉ có 2bit
của thanh ghi này có ý nghĩa:
• U là bit chế độ người dùng/giám sát. U=1 là chế độ
người dùng, U=0 là chế độ giám sát.
• PIE là bit xử lý enable ngắt. PIE=1, bộ xử lý có thể
chấp nhận ngắt bên ngoài. PIE=0, bộ xử lý bỏ qua ngắt
bên ngoài.
¾ Thanh ghi ctl1 giữ bản sao lưu trữ của thanh ghi trang thái trong quá trình
xử lý ngoại lệ. bit EU và EPIE dùng để lưu trữ các bít trạng thái U và PIE.
¾ Thanh ghi ctl2 lưu giữ bản sao của thanh ghi trạng thái trong quá trình xử lý
ngắt debug. Bit BU và BPIE lưu giá trị của bit trạng thái U và PIE.
¾ Thanh ghi ctl3 dùng để enable riêng ngắt bên ngoài. Mỗi bit tương ứng một
ngắt irq0 tới irq31. Giá trị là 1 có nghĩa là ngắt enable, là 0 thì nó disable.
¾ Thanh ghi ctl4 chỉ ra ngắt đang chờ. Giá trị của bit nhận được, ctl4, được set
là 1 nếu ngắt irqk thì cả 2 active và enable bởi bit ngắt enable, ctl3, set đến
1.
¾ Thanh ghi ctl5 giử giá trị nhận biết xử lý duy nhất trong hệ thống đa xử lý.
SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 25