You are on page 1of 2

Bài 1

THIẾT KẾ VÀ LẬP TRÌNH HỆ THỐNG NHÚNG SỬ DỤNG LED ĐƠN VÀ CÔNG TÁC TRƯỢT
MỤC ĐÍCH
Bài thực hành này nhằm mục đích giúp sinh viên tìm hiểu cách thiết kế và lập trình cho hệ thống nhúng trên FPGA sử dụng ngoại
vi vào ra song song (parallel I/O) điều khiển các LED đơn sáng/tắt và kết nối với các công tắc trượt 2 vị trí (switch) được tích
hợp sẵn trên board Altera DE2-115.
YÊU CẦU
Thực hiện thiết kế phần cứng của hệ thống nhúng trên chip FPGA và viết chương trình ứng dụng thực hiện chức
năng của một mạch mã hóa 8 sang 3 với các ngõ vào và ra đều tác động cao. Giá trị các ngõ vào được nhận từ 8
công tắc trượt 2 vị trí (slide switch) với tên tương ứng trên board DE2-115 là SW7 – SW0 và giá trị được hiển thị bởi
8 LED đơn màu đỏ (tương ứng có tên LEDR7–LEDR0). Kết quả ngõ ra của mạch được hiển thị bởi 3 LED đơn màu
xanh (tương ứng có tên LEDG2 – LEDG0).
LÀ TẠO DỰ ÁN THIẾT KẾ MỚI
Để bắt đầu việc thiết kế hệ thống nhúng trên FPGA, sinh viên nhấp chuột vào biểu tượng trên màn hình Desktop hoặc vào menu
Start → All Program → Quartus Prime 18.1 để gọi chương trình Quartus II. Tiếp theo sinh viên chọn New Project Wizard trong
cửa sổ Start Designing hoặc chọn File – New Project Wizard trên thanh công cụ của cửa sổ Quartus Prime 18,1 (Hình 1.1).

Trong cửa sổ Directory, Name, Top-Level Entity, chọn ổ đĩa, đường dẫn để lưu hệ thống và đặt tên cho project. Sau đó chọn
Next để tiếp tục (Hình 1.2).
Tại cửa sổ Project Type chọn Empty project và Next (Hình 1.3)
Ở cửa sổ Add File, để trống phần File name, chọn Next (Hình 14).
Kế tiếp ở cửa sổ Family, Device & Board Settings chọn dòng vi xử lý tương ứng với board mạch đang sử dụng Altera DE2–
115 Development Kit. Giới thiệu chi tiết về board này sinh viên có thể xem lại trong Giáo trình thực tập Thiết kế hệ thống số.
Ở mục Device family - Family chọn Cyclone IV E và ở mục Target device chọn Specific và ở mục Available devices chọn
EPACE115F29C7, rồi chọn Next.

Tiếp theo, đối với các thiết lập trong cửa sổ EDA Tool Settings sinh viên giữ nguyên các thiết lập mặc định và chọn Next như
Hình 16.
Cuối cùng ở cửa sổ Summary chọn Finish để hoàn tất việc tạo project mới (Hình 1.7).
1.2 THIẾT KẾ HỆ THỐNG NHÚNG
Trong cửa sổ Quartus II chọn biểu tượng 4 hoặc trên thanh công cụ vào Tools nhấp chọn Platform
Designer (Hình 1.8).
Tiếp theo, sinh viên tiến hành thiết kế một hệ thống nhúng sử dụng các IP Core có sẵn bao gồm:
1.2.1. Bộ nhớ
Ở thanh tìm kiếm trong cửa sổ IP Catalog nhập vào RAM và chọn On- Chip Memory (RAM or ROM) Intel
FPGA IP.
Tiếp theo sinh viên cần thiết lập cấu hình bộ nhớ như sau:
+ Type: RAM (Writable)
+ Block type: AUTO
+ Total memory size: 32768
Chú ý: bỏ dấu tick tại dòng Initialize memory content tại mục Memory initalization (xem Hình 1.10).
+ Không thay đổi các cài đặt mặc định khác.
+ Chọn Finish để hoàn thành.
Hình 1.10 Cấu hình On-Chip Memory
Hình 1.11 On-Chip Memory (RAM) được đưa vào thiết kế
Để dễ theo dõi thiết kế, sinh viên nhấp chuột phải chọn Rename và đổi tên onchip_memory2_0 thành RAM (Hình 1.11).
1.2.2 Bộ xử lý
Ở thanh tìm kiếm trong cửa sổ IP Catalog nhập vào Nios II, sau đó trong mục Embedded Processors chọn Nios II Processor
(Hình 1.12).
Hình 1.12 Thêm CPU Niosll Processor vào thiết kế
Chọn loại bộ xử lý Nios II/f (Hình 1.13), điều này cho phép hỗ trợ bẫy lỗi chương trình và bộ điều khiển ngắt ngoài, v.v...
Hình 1.13 Cấu hình cho NIOS II Processor
Tương tự như bộ nhớ RAM, để dễ theo dõi thiết kế sinh viên nhấp chuột phải chọn Rename và đổi tên nios2 gen2 _0
thành CPU (Hình 1.14).
Hình 1.14 Nios II Processor được đưa vào thiết kế
1.2.3 Công tắc trượt 2 vị trí
Để giao tiếp với 8 công tắc trượt 2 vị trí thì trong cửa sổ IP Catalog mục Library - Processors and Peripherals → Peripherals
chọn PIO (Parallel I/O) Intel FPGA IP (Hình 1.15).
Hình 1.15 Thêm Parallel I/O
Thiết lập các thông số cho ngoại vi PIO kết nối với 8 công tắc trượt 2 vị trí như Hình 1.16. Cụ thể nhập giá trị Width là
8 và Direction là Input. Các thuộc tính khác của PIO chúng ta chưa sử dụng đến (sẽ tìm hiểu ở những bài sau) tạm
thời giữ nguyên tùy chọn mặc định. Nhấp chọn Finish để hoàn thành đưa ngoại vi vào thiết kế và thực hiện đổi tên
PIO vừa thêm vào thành SW.
Hình 1.16 Thiết lập cho ngoại vi PIO để kết nối với 8 công tắc trượt
1.2.4 LED đơn màu đỏ
Để giao tiếp với 8 LED đơn màu đỏ có sẵn trên board DE2-115 hiển thị giá trị ngõ vào được nhập từ các SW, chúng
ta cũng sẽ sử dụng ngoại vi PIO. Tương tự đối với công tắc trượt, trong cửa sổ IP Catalog mục Library - Processors
and Peripherals → Peripherals chon PIO (Parallel V/O) Intel FPGA IP. Tuy nhiên thiết lập các thông số cho PIO kết
nối với 8 LED như Hình 1.17. Cụ thể nhập giá trị Width là 8 và Direction là Output. Nhấp chọn Finish để hoàn thành
đưa ngoại vi vào thiết kế và thực hiện đổi tên PIO vừa
thêm vào thành LEDR.
Hình 1.17 Thiết lập các tham số cho LEDR
1.2.5 LED đơn màu xanh
Tương tự đối với các LED đỏ, trong cửa sổ IP Catalog mục Library - Processors and Peripherals → Peripherals chọn PIO
(Parallel I/O) Intel FPGA IP. Thiết lập các thông số cho ngoại vi PIO kết nối với 3 LED như Hình 1.18. Cụ thể nhập giá trị
Width là 3 và Direction là Output. Nhấp chọn Finish để hoàn thành dưa ngoại vi vào thiết kế và thực hiện đổi tên PIO vừa thêm
vào thành LEDG.
Hình 1.18 Thiết lập các tham số cho LEDG
1.2.6 Kết nối các thành phần của hệ thống nhúng
Di chuyển chuột đến các điểm kết nối trong cột Connections. Click chuột trái các điểm kết nối (vòng tròn rỗng) để tạo kết nối
(chuyển thành thành các vòng tròn đen) từ ngõ ra clk của nguồn xung clk_ 0 của hệ thống với tất cả các ngõ vào clk của tất cả
các thành phần còn lại của hệ thống (kết quả như Hình 1.19).
Hình 1.19 Kết quả kết nối cấp xung đồng hồ (clk) cho các thành phần
Tương tự thực hiện kết nối ngõ vào reset của tất cả các thành phần khác với ngõ ra clk_reset của nguồn xung clk_0 ( Hình 1.20).
Hình 1.20 Kết nối tín hiệu reset của thành phần

You might also like