BỘ GIÁO DỤC VÀ ĐÀO TẠO THỰC HÀNH
HỆ THỐNG NHÚNG
Biên soạn:
ThS. Nguyễn Trọng Hải
KS. Bùi Hữu Hiên
www.hutech.edu.vn Tài Liệu Lưu Hành Tại HUTECH
BÀI 4: HỎI VÒNG VÀ NGẮT 54
BÀI 5: GIAO TIẾP BUS 60
TÀI LIỆU THAM KHẢO 84
II
HƯỚNG DẪN
HƯỚNG DẪN
Giới thiệu phần mềm Quartus II:
Quartus II là công cụ phần mềm phát triển của hãng Altera, cung cấp môi trường
thiết kế toàn diện cho các thiết kế SOPC (hệ thống trên 1 chip khả trình - system on a
programmable chip). Đây là phần mềm đóng gói tích hợp đầy đủ phục vụ cho thiết kế
logic với các linh kiện logic khả trình PLD, FPGA của Altera, gồm các dòng APEX,
Cyclone, FLEX, MAX, Stratix Quatus ii cung cấp các khả năng thiết kế sau:
Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các ngôn
ngữ: AHDL, VHDL, và Verilog HDL.
Thiết kế LogicLock.
Là công cụ mạnh để tổng họp logic.
Khả năng mô phỏng chức năng và thời gian.
Phân tích thời gian.
Phân tích logic nhúng với công cụ phân tích SignalTap® II.
Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chương trình.
Tự động định vị lỗi.
Khả năng lập trình và nhận diện linh kiện.
Phần mềm Ọuartus II sử dụng bộ tích hợp NativeLink® với các công cụ thiết
kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công cụ thiết kế
phần cứng EDA khác.
Quartus II cũng có thể đọc các file mạch (netlist) EDIF chuẩn, VHDL và
chương trình ứng dụng. Chúng tôi sẽ sử dụng phần mềm Quartus II và SoPC Builder
để tạo ra phần cứng của hệ thống. Chúng tôi sẽ sử dụng phần mềm Altera Debug
Client để biên dịch, tải và chạy các chương trình ứng dụng.
1.2 PHẦN I:
Trong bài tập này, bạn sẽ sử dụng Builder SoPC để tạo ra hệ thống như trong
hình, trong đó bao gồm một bộ xử lý Nios II/e và một khối bộ nhớ. Bộ vi xử lý Nios
II/e xử lý dữ liệu. Khối bộ nhớ lưu trữ chương trình và dữ liệu.
Hệ thống Nios II trong SoPC Builder
Các bước thực hiện như sau:
2
THỰC HÀNH HỆ THỐNG NHÚNG
1.2.1 Tạo một dự án Quartus II mới. Chọn Cyclone IIEP2C35F672C6 như chip mục
tiêu, đó là FPGA chip trên board DE2 Altera.
Trước tiên, ta phải tạo project trên Quartus trước, Chọn chip Cyclone II
EP2C35F672C6, đó là chip FPGA trên mạch Altera DE2.
giao diện thiết lập New Project
Sau đó, ta tạo một file mới block diagram cho toàn bộ hệ thống. Đặt tên file là
nios_2.pdf
Tạo file .pdf cho hệ thống
Tạo hệ thống Nios II sử dụng Altera SoPC Builder:
Click vào biểu tượng SoPC Builder để tạo hệ thống Nios II.
BÀI 1: MỘT HỆ THỐNG MÁY TÍNH ĐƠN GIẢN
3
Tắt mục Hardware divide
Trong phần Reset Vector chọn onchip_mem
Trong phần Exception Vectorchọn onchip_mem
Các mục khác để mặc định
Giao diện cấu hình tham số CPU Nios II /s Core
6
THỰC HÀNH HỆ THỐNG NHÚNG Giao diện cấu hình tham số JTAG Debug Module
Click Finish. Quay trở lại tab SoPC System Contents, và một con CPU Nios II
đã xuất hiện trong bảng system contents.
1.2.3 Từ menu System, chọn Auto-Assign Base Addresses. Bây giờ bạn có hệ thống
như trong hình vẽ:
Hệ thống Nios II hoàn chỉnh
BÀI 1: MỘT HỆ THỐNG MÁY TÍNH ĐƠN GIẢN
71.2.4 Tạo ra hệ thống, thoát khỏi Builder SoPC và trở về phần mềm Quartus II.
Click vào tab System Generation.
Chọn None cho Create simulation model.
Click Generate. Click Save và chờ hệ thống hoàn tất Nếu hệ thống yêu cầu đặt
tên thì đánh nios.
Click Exit. Quay trở lại giao diện thiết kế của quartus.
1.2.5 Tích hợp hệ thống SoPC Builder vào project Quartus II:
Trong phần này, chúng ta sẽ phải thực hiện các bước sau để hoàn thành thiết kế
gán chân như hình vẽ.
clk - PIN N2 (đó là chân xung clock 50 MHz).
reset n - PIN G26 (đó là chân nút nhấn KEY0).
BÀI 1: MỘT HỆ THỐNG MÁY TÍNH ĐƠN GIẢN
9
Hộp thoại Pin Planner
Trên menu Assignments, click Device. Bảng hội thoại Device xuất hiện.
Click Device and Pin Options, Bảng hội thoại Device and Pin Options xuất hiện.
Click vào trang Unused Pins.
Trong danh sách Reserve all unused pins , chọn As input tri-stated with
weak
pull-up . Với lựa chọn này, tất cả các chân không dùng trên thiết bị FPGA sẽ có
trạng thái tổng trở cao. Chú ý, luôn luôn dùng option này để tránh làm hư các chân
IO và linh kiện trên board do các chân không dùng có mức điện áp xung đột
Click OK để đóng các hộp thoại.
Biên dịch hệ thống và kiểm tra timing:
Chúng ta phải biên dịch hệ thống để tạo ra file .sof mà có thể download xuống
board. Sau khi biên dịch xong, chúng ta phải kiểm tra timing của thiết kế có làm việc
dưới điều khiện của phần cứng hay không. Để đảm bảo thiết kế đạt yêu cầu về
timing.ta thực hiện các bước sau:
Trên menu File, click New.
Trong danh sách file, Chọn Synopsys Design Constraints File (*.sdc).
Đặt tên là hw_leo.sdc và click OK. Mở file trong chương trình Editor.
10
THỰC HÀNH HỆ THỐNG NHÚNG
Màn hình Welcome có thể xuất hiện. Đóng nó bằng cách nhấn vào"Workbench"
mũi tên ở góc trên bên phải.
Vào menu File - New - Project.
BÀI 1: MỘT HỆ THỐNG MÁY TÍNH ĐƠN GIẢN
13 14
THỰC HÀNH HỆ THỐNG NHÚNG
Chọn "Nios IIC/ C + +Application" và nhấp "Next".
Đặt tên cho chương trình.
Trong mục select target hardware chọn đường dẫn tới file nios.ptf vừa tạo ở
phần trên.
Trong mục select project template chọn Blank project.
Click Next.
Chọn Create a new system library name. Click finish.
Vào menu File, chọn New, chọn Source File.
BÀI 1: MỘT HỆ THỐNG MÁY TÍNH ĐƠN GIẢN
15
trình một lần nữa (ở bước 6), mặc dù bỏ qua hai bước đầu.
Lúc này thêm một điểm ngắt tại địa chỉ 0x28. Chương trình sẽ tự động dừng khi
thực hiện xong.
Gán 0xabcdef90 cho thanh ghi r7. Nhấn F3 và quan sát có bao nhiêu bit 1 liên
tiếp?
1.4 PHẦN III
Hướng dẫn biểu diễn chuỗi số 1 và số 0, tương tự như dữ liệu. Trong phần này,
chúng ta sẽ khảo sát quy trình được thực hiện như thế nào.
Thực hiện như sau:
Chạy lại chương trình (bằng cách chọn Actions > Load) để xóa các chỉnh sửa bộ
nhớ đã thực hiện trong phần II. Sau đó, thực thi chương trình chỉ một lần.
Sử dụng Nios II Processor Reference Handbook có sẵn trên trang web của Altera
để biểu diễn ngôn ngữ chương trình máy theo ngôn ngữ Assembly: and r3, r7, r16;
sra r7, r7, r3.
Sử dụng chức năng memory-fill của Altera Debug Client để đặt hai chỉ thị tại vị
trí bộ nhớ 0 và 4. Chúng ta nên lưu ý rằng sẽ không nhìn thấy những giá trị này được
cập nhật trong giao diện của Debug Client.
Đặt 0x00000000 cho Program Counter. Điều gì sẽ xảy ra thời gian này? Là để
xác minh câu trả lời mà bước trước đã hướng dẫn bạn đặt ở địa chỉ 0 và 4 (để xem
kết quả của chúng) và sau đó thì thực hiện phần còn lại của chương trình.
18
THỰC HÀNH HỆ THỐNG NHÚNG
Sử dụng chức năng memory-fill để thay đổi nhánh cuối cùng để trở về đầu
chương trình thay thế. Điều này sẽ loại bỏ các chỉnh sửa thủ công Program Counter.
Chạy lại chương trình cho đến khi số 1 và các dữ liệu đang được thử nghiệm vẫn
không đổi.
Bây giờ lặp lại các bước từ 1 - 6 , nhưng sử dụng chỉ dẫn srl r7, r7, r3 thay vì