TRƯỜNG ĐẠI HỌC CẦN THƠ TRƯỜNG BÁCH KHOA BỘ MÔN ĐIỆN TỬ VIỄN THÔNG BÁO CÁO THỰC TẬP MÔN THIẾT KẾ HỆ THỐNG SỐ Giảng viên hướng dẫn: Nguyễn Cao Quí Sinh viên thực hiện: Trần Văn Hào B2016830 Võ Tấn Tài B2016796 Nguyễn Phương Vũ B2012994 I Phân công nhiệm vụ : Trần Văn Hào B2016830: viết code , chạy mạch ,viết báo cáo Võ Tấn Tài B2016796: viết code , chạy mạch ,viết báo cáo Nguyễn Phương Vũ B2012994: viết code , chạy mạch ,viết báo cáo Bài 1: GIỚI THIỆU BOARD ALTERA DE2-115, PHẦN MỀM QUARTUS II VÀ MODELSIM Mục đích Giới thiệu board Altera DE2-115 Development kit Hướng dẫn người học cà đặt và tạo dự án(project) mô phỏng các thiết kế hệ thống số với phần mềm ModelSim Hướng dẫn người học cài đặt và thiết kế hệ thống số với phần mềm Quartus II Hướng dẫn các bước nạp thiết kế hệ thống số xuống chip FPGA trên board Altera DE2-115 và kiểm tra hoạt động của hệ thống Yêu cầu Người học biết rõ về các ngoại vi của board Altera DE2-115 Development Kit Người học nắm vững kiến thức và kĩ nắng lập trình thiết kế, mô phỏng, thực hiện một hệ thống số dựa trên công nghệ FPGA 1 Phần mềm ModelSim: Để tiến hành cài đặt và sử dụng ModelSim người học thực hiện theo các bước sau: Bước 1: Cài đặt phần mềm theo hướng dẫn, chạy file cài đặt và đồng ý các điều khoản. Hình 1.1: Chọn các gói cài đặt Bước 2: Chọn Next qua phần hướng dẫn, chọn gói các phần mềm: Quartus II, Modem Sim- Altera Edition, Nios II Embedded Design Suite Bước 3: Chọn Next để tiếp tục và Finish để hoàn thành. Sau khi đã cài đặt chương trình thành công, ta bắt đầu tạo project và biên dịch chương trình theo các bước bên dưới. Bước 1: Mở cửa sổ Quartus II 11.0 sp1 trên Desktop sẽ thấy cửa sổ như Hình 1.2. Hình 1.2: Mở chương trình Quartus Cửa sổ Quartus Hình 1.3 Cửa sổ Quartus Chọn Create a New Project hoặc trên thanh công cụ vào File è New Project Wizard Hình 1.4: Tạo Project Bước 2: Chọn Next qua phần hướng dẫn đến chọn nơi lưu, đặt tên Project và thư mục. Hình 1.5: Chọn nơi lưu và đặt tên, chọn Next sẽ xuất hiện bảng tóm tắt như hình Bước 3: Tùy theo board sử dụng để thiết kế hệ thống nhúng, nên sẽ chọn thiết bị cho phù hợp. Chúng ta sử dụng board Altera DE2-115 Hoặc DE2-70 theo hướng dẫn sẽ chọn lần lượt là Cyclone IV E và Cyclone II. Chú ý: Nên thực hiện kỹ bước này, vì nếu sai sẽ phải thực hiện lại từ đầu. Nhấn Next và Finish để kết thúc phần tạo project. Khi đã hoàn thành 3 bước trên bây giờ sẽ tạo file viết chương trình và gán chân cho hệ thống. Bước 4: Từ cửa sổ project Quartus chọn New è SystemVerilog HDL và lưu lại với tên phải trùng với tên module. 2 Code bài 1 Code bài 1_test Bước 5: chọn processing -> start compilation để chạy dịch chương trình Thông báo dịch thành công Bước 6: Gán chân cho FPGA, vào Assignments sau Pin Planner kết quả như Bước 7 : Biên dịch chương trình lần nữa, sau đó tiến hành nạp xuống board. Vào Tool Programmer. Trong Hardware Setup chọn Hardware là USB-Blaster [USB-0] và kết thúc nạp ứng dụng thành công bằng cách nhấp vào Start Nạp chương trình xuống board Biểu diễn cấu trúc RTL: Tùy thuộc vào ứng dụng và các yêu cầu, cấu hình và phần thiết kế bên trên chỉ mang tính chất hướng dẫn cơ bản để tạo một project và thực hiện chương trình. Gán trạng thái SW0 cho trạng thái LEDR0, khi SWICH mở thì LEDR 0 sáng, khi SWICH đóng thì LEDR 0 tắc Kết quả Bài 2: MẠCH TỔ HỢP Mục đích Lập trình thiết kế cổng logic cơn bản AND, OR và mạch kiểm tra chẵn lẽ bằng ngôn ngữ mô tả phần cúng Verilog Sử dụng phần mềm ModelSim mô phỏng, kiểm tra các thiết kế Sử dụng phần mềm Quartus II để thực hiện và kiểm chứng hoạt động của các thiết kế trên board Altera DE2-115 Yêu cầu Người học ôn lại các kiến thức về mạch tổ hợp dã học ở phần học mạch số và hệ thống số Sinh viên xem, ôn lại các bước thiết kế và kiểm thử sử dụng các phần mềm ModelSim, Quartus II và board Altera DE2-115 đã xem ở bài 1 2.1 CỔNG AND CODE bài 2A CODE bài 2A_test Chọn Processing -> Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra ( 3 LED đơn, 2 công tắc) ngõ vào. Gán chân cho hệ thống Biên dịch lại lần nữa sau đó nạp xuống board rồi kiểm tra Biểu diễn RTL Nạp thiết kế cổng AND xuống chip FPGA trên board DE2-115 Kết quả: Cổng AND thực hiện những trạng thái đúng với bảng trạng thái : khi 1 LED A hoặc LED B sáng thì LED Y không sáng, LED A và B đều sáng thì LED Y sáng, đúng với bảng sự thật. Các trạng thái được thể hiện ở Bảng 2.1: A B Y=A.B TRẠNG THÁI 0 0 0 0 1 0 1 0 0 1 1 1 Bảng 2.1 : Các trạng thái của mạch 2.2 CODE bài 2B CODE bài 2B_test CỔNG OR Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (3 LED đơn, 2 công tắc) ngõ vào. Biểu diễn cấu trúc RTL Kết quả: Cổng OR thực hiện những trạng thái đúng với bảng trạng thái ban đầu mà thiết kế mong muốn đạt được: khi 1 LED A hoặc LED B sáng thì LED Y sáng, LED A và B đều sáng thì LED Y sáng, đúng với bảng sự thật. Các trạng thái được thể hiện ở Bảng 2.2. A B Y=A+B 0 0 0 0 1 1 TRẠNG THÁI 1 0 1 1 1 1 Bảng 2.2: Các trạng thái của mạch 2.3MẠCH KIỂM TRA CHẴN LẺ CODE bài 2C Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (5 LED đơn, 4 công tắc) ngõ vào. Biểu diễn cấu trúc RTL Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 2.3. A B C D Y 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 TRẠNG THÁI 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 Bảng 2.3: Các trạng thái của mạch Bài 3 MẠCH TỔ HỢP (TIẾP THEO) Mục đích Người học tiếp tục được trang bị các kiến thức về lập trình thiết kế mạch tôt hợp qua các bài tập thiết kế mạch cộng và mã hóa ưu tiên Người học được hướng dẫn lập trình theo kiểu Bottom-Up: thiết kế các mô-đun nhỏ để sử dụng thiết kế ác mô-đun, hệ thống lớn hơn,phát triển các thiết kế theo phương pháp thứ bậc,thừa kê Yêu cầu Người học nắm vững kiến thức lâp trình bằng ngôn ngữ mô tả phần cứng Verilog để thiết kế hệ thống số; phương pháp phát triển hệ thống theo hướng Bottom-Up 3.1 MẠCH CỘNG BÁN PHẦN Sơ đồ và trạng thái của mạch cộng bán phần Mô phỏng và thực hiện mạch công bán phần Code bài 3 và bài 3_test Chọn Processing -> Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment -> Pin Planner rồi thiết lập các ngõ ra , ngõ vào. Biểu diễn cấu trúc RTL Nạp thiết kế xuống board Altera DE2-115 Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 3.1. INPUT OUTPUT TRẠNG THÁI A B Sum Carry 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Bảng 3.1: Các trạng thái của mạch 3.2 MẠCH CỘNG TOÀN PHẦN Sơ đồ mạch cộng toàn phần Code bài 3b và bài 3b_test Chọn Processing -> Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment -> Pin Planner rồi thiết lập các ngõ ra (5 LED đơn, 3 công tắc) ngõ vào. Biểu diễn cấu trúc RTL Nạp thiết kế xuống board Altera DE2-115 Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 3.2. INPUT OUTPUT A B C Sum Carry 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 TRẠNG THÁI 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 Bảng 3.2: Các trạng thái của mạch 3.3MẠCH MÃ HÓA ƯU TIÊN 8 ĐƯỜNG SANG 3 ĐƯỜNG Mô phỏng và thực hiện mạch mã hóa ưu tiên 8 đường sang 3 đường Code bài 3c và bài 3c_test Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (9 LED đơn, 9 công tắc) ngõ vào. Hình 3.3.1: Gán chân cho hệ thống Biểu diễn cấu trúc RTL và nạp thiết kế xuống mạch thực hành Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 3.1.2. STT 1 2 3 4 5 6 7 8 9 EN 0 1 1 1 1 1 1 1 1 X7 X 0 0 0 0 0 0 0 1 INPUT X6 X5 X X 0 0 0 0 0 0 0 0 0 0 0 1 1 X X X X4 X3 X2 X1 X X X X 0 0 0 0 0 0 0 1 0 0 1 X 0 1 X X 1 X X X X X X X X X X X X X X X Bảng 3.3.1: Bảng sự thật OUTPUT X0 Y2 X Z 1 0 X 0 X 0 X 0 X 1 X 1 X 1 X 1 Y1 Z 0 0 1 1 0 0 1 1 Y0 Z 0 1 0 1 0 1 0 1 STT 1 2 3 4 5 6 7 TRẠNG THÁI 8 9 Bảng 3.3.2: Bảng trạng thái của mạch BÀI 4 MẠCH TUẦN TỰ Mục đích Người học tiếp tục được trang bị các kiến thức về lập trình thiết kế mạch tuần tự qua các bài thực tập thiết kế flip-flop D, mạch dịch trái và mạch dịch trái/phải Người học tiếp ục được hướng dẫn lập trinh heo kiểu Bottom-Up: thiết kế các môđun nhỏ để sử dụng thiết kế các mô-đun, hệ thống lớn hơn, phát triển các thiết kế theo phương thứ bậc, thừa kế Yêu cầu Người học ôn lại các kiên thức liên quan về mạch tuần tự đã học ở phần Mạch số và Hệ thống số 4.1 FLIP-FLOP D Kí hiệu flip-flop D Code bài 4a và bài 4a_test Chọn Processing-> Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment -> Pin Planner rồi thiết lập các ngõ ra (3 LED đơn, 1 công tắc, 2 nút nhấn) ngõ vào. Hình 4.1.1: Gán chân cho hệ thống Biểu diễn cấu trúc RTL Nạp thiết kế xuống board Altera DE2-115 Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 4.1. INPUT OUTPUT A RS CL Q ~Q 0 0 ↑ 0 1 1 0 ↑ 0 1 0 1 ↑ 0 1 1 1 ↑ 1 0 TRẠNG THÁI Bảng 4.1: Các trạng thái của mạch 4.2 MẠCH DỊCH TRÁI Code bài 4b và bài 4b_test Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (6 LED đơn, 1 công tắc, 2 nút nhấn) ngõ vào. Hình 4.1.1: Gán chân cho hệ thống Sơ đồ RTL Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 4.2.2. STT 1 CLR 0 INPUT CL ↑ D X Q3 0 OUTPUT Q2 Q1 0 0 Q0 0 2 3 4 5 6 7 8 STT 1 2 3 4 1 1 1 1 1 1 1 ↑ ↑ ↑ ↑ ↑ ↑ ↑ 1 0 0 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 0 1 0 Bảng 4.2.1: Bảng sự thật TRẠNG THÁI (5 TRẠNG THÁI ĐẦU) 0 1 1 1 1 0 0 1 1 1 1 0 0 0 5 Bảng 4.2.2: Các trạng thái của mạch 4.3 MẠCH DỊCH TRÁI/ PHẢI CODE bài 4c Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (18 LED đơn, 10 công tắc, 2 nút nhấn) ngõ vào. Hình 4.1.1: Gán chân cho hệ thống Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 4.3. STT TRẠNG THÁI ( DỊCH TRÁI) 1 2 Sau 4 xung CLOCK 3 Sau 2 xung CLOCK tiếp theo STT TRẠNG THÁI ( DỊCH PHẢI) 1 2 Sau 2 xung CLOCK tiếp theo Bảng 4.3: Các trạng thái của mạch BÀI 5 MẠCH TUẦN TỰ (TIẾP THEO) Mục đích Tiếp tục trang bị cho người học kiến thức và kĩ năng lập trình thiết kế mạch tuần tự qua việc thiết kế mạch đêm lên/xuống và đếm vòng Tiếp tục phát triển kĩ năng lập trình, sử dụng phần mềm ModelSim và Quartus II, thành thạo các bước thiết kế trên board Altera DE2-15 Yêu cầu Người học ôn lại các kiến thức liên quan mạch đếm trong giáo trình Mạch số và giáo trình Thiết kế hệ thống số 5.1 MẠCH ĐẾM LÊN Code bài 5A Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (6 LED đơn, 2 nút nhấn) ngõ vào. Hình 5.1: Gán chân cho hệ thống Biểu diễn RTL và nạp thiết kế xuống board Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 5.1.2. STT 1 2 3 4 5 6 7 8 9 10 11 12 13 CLR 0 1 1 1 1 1 1 1 1 1 1 1 1 INPUT CL ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ Q3 0 0 0 0 0 0 0 0 1 1 1 1 1 Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 OUTPUT Q1 0 0 1 1 0 0 1 1 0 0 1 1 0 Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 14 15 16 STT 1 2 3 4 5 1 1 1 ↑ ↑ ↑ 1 1 1 1 1 1 Bảng 5.1.1: Bảng sự thật TRẠNG THÁI 0 1 1 1 0 1 6 7 8 9 10 11 12 13 14 15 16 Bảng 5.1.2: Các trạng thái của mạch 5.2 MẠCH ĐẾM 4 BIT – ĐẾM LÊN/ XUỐNG CODE bài 5B Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (7 LED đơn, 2 nút nhấn, 1 công tắc) ngõ vào. Hình 5.2: Gán chân cho hệ thống Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 5.2. STT 1 TRẠNG THÁI (ĐẾM LÊN) 2 Sau 3 xung CLOCK STT TRẠNG THÁI (ĐẾM XUỐNG) 1 2 Sau 3 xung CLOCK tiếp theo Bảng 5.2: Các trạng thái của mạch 5.3 MẠCH ĐẾM VÒNG CODE bài 5C Chọn Processing -> Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (7 LED đơn, 2 nút nhấn) ngõ vào. Hình 5.3: Gán chân cho hệ thống Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 5.3. STT 1 2 3 4 TRẠNG THÁI 5 Bảng 5.3: Các trạng thái của mạch Bài 6: MÁY TRẠNG THÁI HỮU HẠN Mục đích Trang bị cho người học kiến thức và kỹ năng lập trình thiết kế hệ thống số áp dụng phương pháp máy trạng thái hữu hạn Tiếp tục phát triển kĩ năng lập trình, sử dụng phần mềm ModelSim và Quartus II, thành tạo các bước thiết kế trêm board Altera DE2-115 Yêu cầu Người học ôn lại các kiến thức liên quan tới phương pháp máy trạng thái hữu hạn trong Giáo trình Thiết kế hệ thống số 6.1 Máy moore- mạch phát hiện chuỗi bít Mô phỏng và thực hiện máy moore- mạch phát hiện chuỗi bit 1011 Code bài 6A và bài 6_test Chọn Processing è Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment è Pin Planner rồi thiết lập các ngõ ra (1 LED đơn, 2 nút nhấn, 1 công tắc) ngõ vào. Hình 6.1: Gán chân cho hệ thống Biểu diễn RTL Sơ đồ trạng thái máy Nạp thiết kế xuống board DE2-115 Kết quả: Mạch phát hiện dãy định trước bằng các báo LED xanh. Trạng thái được thể hiện ở Hình 6.1. Hình 6.1: Trạng thái của mạch 6.2 MÁY MEALY – PHÁT HIỆN CHUỖI BÍT CODE bài 6B Chọn Processing -> Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment -> Pin Planner rồi thiết lập các ngõ ra (1 LED đơn, 2 nút nhấn, 1 công tắc) ngõ vào. Hình 6.2: Gán chân cho hệ thống Kết quả: Mạch phát hiện dãy định trước bằng các báo LED xanh. Trạng thái được thể hiện ở Hình 6.2. Hình 6.2: Trạng thái của mạch 6.3 ĐÈN GIAO THÔNG CODE bài 6C Chọn Processing -> Start để biên dịch chương trình, đợi quá trình biên dịch kết thúc rồi vào Assignment -> Pin Planner rồi thiết lập các ngõ ra (7 LED đơn, 1 nút nhấn) ngõ vào. Hình 6.3: Gán chân cho hệ thống Kết quả: Mạch thực hiện những trạng thái đúng với bảng trạng thái ban đầu thiết kế. Các trạng thái được thể hiện ở Bảng 6.3. TG (s) TH C1 C2 0 X Đ 5 1 V Đ 1 2 Đ Đ 1 3 Đ X 5 4 Đ V 1 TRẠNG THÁI 5 Đ Đ 1 Hình 6.3: Các trạng thái của mạch