Giáo trình Lập trình vi mạch số - Phần 1

Yêu cầu về đánh giá kết quả học tập: Nội dung: + Kiến thức: - Phân tích được cấu trúc của các mạch logic tổ hợp; - Trình bày được trình tự thực hiện lập trình các mạch logic tổ hợp; - Phân tích được những lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. + Kỹ năng: - Lập trình được các mạch logic tổ hợp theo yêu cầu kỹ thuật; - Phòng tránh và sửa được các lỗi khi lập trình điều khiển; - Kiểm tra chính xác điều kiện hoạt động của thiết bị. + Năng lực tự chủ và trách nhiệm: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; - Tự chịu trách nhiệm khi thực hiện các việc được giao. Phương pháp: + Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết + Về kỹ năng: Đánh giá kỹ năng thực hành Mỗi sinh viên, hoặc mỗi nhóm học viên thực hiện công việc theo yêu cầu của giáo viên. Tiêu chí đánh giá theo các nội dung: - Độ chính xác của công việc - Thời gian thực hiện công việc - Độ chính xác theo yêu cầu kỹ thuật + Năng lực tự chủ và trách nhiệm: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; - Tự chịu trách nhiệm khi thực hiện các việc được giao.

pdf144 trang | Chia sẻ: Tiểu Khải Minh | Ngày: 22/02/2024 | Lượt xem: 42 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Lập trình vi mạch số - Phần 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ẢN Mã bài: MĐ ĐTCN 25 - 01 Giới thiệu: Mạch logic cơ bản là các vi mạch số có thể lập trình được. Do đó, trước khi đi sâu vào lập trình vi mạch số người học phải được trang bị những kiến thức lập trình các mạch logic cơ bản như AND, OR, NOT, NAND, NOR. Mục tiêu: Sau khi học xong bài học này người học có khả năng: + Kiến thức: - Phân tích được cấu trúc của các cổng logic cơ bản; - Trình bày được trình tự thực hiện lập trình các cổng logic cơ bản; - Phân tích được các lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh; + Kỹ năng: - Lập trình được các cổng logic cơ bản theo yêu cầu kỹ thuật; - Phòng tránh và sửa được các lỗi khi lập trình điều khiển; - Kiểm tra chính xác điều kiện hoạt động của thiết bị. + Năng lực tự chủ và trách nhiệm: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; - Tự chịu trách nhiệm khi thực hiện các việc được giao. Nội dung: 1. Lập trình cổng AND 1.1. Cổng AND 1.1.1. Ký hiệu cổng AND 2 đầu vào Hình 1.1. Ký hiệu cổng And 2 đầu vào 1.1.2. Bảng trạng thái cổng AND 2 đầu vào  Cổng AND thực hiện phép toán nhân thông thường giữa 0 và 1  Ngõ ra cổng AND bằng 0 khi có ít nhất một ngõ vào bằng 0  Ngõ ra cổng AND bằng 1 khi tất cả các ngõ vào điều bằng 1 12 A B Y = A.B 0 0 0 0 1 0 1 0 0 1 1 1 Bảng 1.1. Bảng trạng thái cổng And 2 đầu vào Ví dụ: Mạch điện hình 1.2 sau thực hiện chức năng của cổng AND Hình 1.2. Sơ đồ mạch điện cổng And 2 đầu vào Bóng đèn sẽ sáng khi cả hai công tắc A và B đều đóng 1.2. Trình tự thực hiện 1.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 1.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau 13 Bước 2: Tạo project mới và đặt tên cho project là and2dauvao Vào File chọn Project sau đó chọn New Hiển thị ra hộp thoại 14 Nhấn Next hiển thị ra Hộp thoại Project name ta đặt tên là and2dauvao Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 15 Bước 3: Tạo file and2dauvao.v và and2dauvao.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ and2dauvao sau đó nhấn OK Hiển thị ra hộp thoại 16 Nhấn Next hiển thị ra hộp thoại Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ and2dauvao sau đó nhấn OK 17 Nhấn Next hiển thị ra hộp thoại Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại 18 Nhấn Finish hiển thị ra hộp thoại Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình cổng And 2 đầu vào. Sau đó nhấn OK Bước 6: Viết Chương trình trong file and2dauvao.v `timescale 1ns / 1ps module and2dauvao ( 19 input A, input B, output Y ); assign Y = A & B; endmodule Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào A, ta click chuột phải vào A Chọn Force Clock  Đặt thống số cho đầu vào B, ta click chuột phải vào B 20 Chọn Force Clock Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm Nhấn vào biểu tượng để lưu dạng sóng Bước 8: Gán chân thích ứng với thiết bị Trong phần RTL ANALYSIS ta click vào Schematic 21 Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 3 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: Nhấn vào để lưu toàn bộ dữ liệu Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis Nhấn OK Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành 22 Click vào Open Synthesized Design để quan sát thiết kế Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings 23 Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file Trong phần IMPLEMENTATION ta click vào Run Implementation Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream 24 Nhấn OK Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 25 Click vào Program device Chọn đường dẫn đến and2dauvao.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc V17 và V16 theo bảng trạng thái cổng And 2 đầu vào và qua sát đèn U16 26 1.3. Một số lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT Lỗi thường gặp Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign Y = A & B; 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 1.4. Bài tập áp dụng Lập trình Cổng AND 2 đầu vào điều khiển theo bảng trạng thái sau: A B Y 0 0 0 0 1 0 1 0 0 1 1 1 Đầu vào A được kết nối với chân V16 của board mạch Basys3 Đầu vào B được kết nối với chân V17 của board mạch Basys3 Đầu ra Y được kết nối với chân U16 của board mạch Basys3 27 2. Lập trình cổng OR 2.1. Cổng OR 2.1.1. Ký hiệu cổng OR 2 đầu vào Hình 1.3. Ký hiệu cổng OR 2.1.2. Bảng trạng thái cổng OR 2 đầu vào  Cổng OR thực hiện toán cộng thông thường giữa 0 và 1  Ngõ ra cổng OR bằng 0 khi tất cả các ngõ vào bằng 0  Ngõ ra cổng OR bằng 1 khi có ít nhất một ngõ vào bằng 1 A B Y = A + B 0 0 0 0 1 1 1 0 1 1 1 1 Bảng 1.2. Bảng trạng thái cổng OR Ví dụ: Mạch điện hình 1.4 sau thực hiện chức năng của cổng OR Hình 1.4. Mạch điện OR 2 đầu vào Bóng đèn sẽ sáng khi công tắc A hoặc công tắc B được bật 28 2.2. Trình tự thực hiện 2.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 2.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau Bước 2: Tạo project mới và đặt tên cho project là or2dauvao Vào File chọn Project sau đó chọn New 29 Hiển thị ra hộp thoại Nhấn Next hiển thị ra Hộp thoại 30 Project name ta đặt tên là or2dauvao Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 31 Bước 3: Tạo file or2dauvao.v và or2dauvao.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ or2dauvao sau đó nhấn OK Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 32 Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ or2dauvao sau đó nhấn OK Nhấn Next hiển thị ra hộp thoại 33 Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại Nhấn Finish hiển thị ra hộp thoại 34 Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình cổng or 2 đầu vào. Sau đó nhấn OK Bước 6: Viết Chương trình trong file or2dauvao.v `timescale 1ns / 1ps module or2dauvao ( input A, input B, output Y ); assign Y = A | B; endmodule Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation 35 Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào A, ta click chuột phải vào A Chọn Force Clock  Đặt thống số cho đầu vào B, ta click chuột phải vào B 36 Chọn Force Clock Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm Nhấn vào biểu tượng để lưu dạng sóng Bước 8: Gán chân thích ứng với thiết bị Trong phần RTL ANALYSIS ta click vào Schematic Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 3 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: 37 Nhấn vào để lưu toàn bộ dữ liệu Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis Nhấn OK Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành Click vào Open Synthesized Design để quan sát thiết kế 38 Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file 39 Trong phần IMPLEMENTATION ta click vào Run Implementation Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream Nhấn OK 40 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 41 Click vào Program device Chọn đường dẫn đến or2dauvao.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc V17 và V16 theo bảng trạng thái cổng or 2 đầu vào và qua sát đèn U16 2.3. Một số lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT Lỗi thường gặp Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign Y = A | B; 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 42 2.4. Bài tập áp dụng Lập trình Cổng OR 2 đầu vào điều khiển theo bảng trạng thái sau: A B Y 0 0 0 0 1 1 1 0 1 1 1 1 Đầu vào A được kết nối với chân V16 của board mạch Basys3 Đầu vào B được kết nối với chân V17 của board mạch Basys3 Đầu ra Y được kết nối với chân U16 của board mạch Basys3 3. Lập trình cổng NOT 3.1. Cổng NOT 3.1.1. Ký hiệu cổng NOT Hình 1.5. Ký hiệu cổng NOT 3.1.2. Bảng trạng thái cổng NOT Trạng thái ngõ vào và ngõ ra của cổng NOT luôn đối nhau A Y = 𝐴 0 1 1 0 Bảng 1.3. Bảng trạng thái cổng NOT Ví dụ: Mạch điện dùng thể hiện cổng NOT Hình 1.6. Mạch điện cổng NOT 43 3.2. Trình tự thực hiện 3.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 3.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau Bước 2: Tạo project mới và đặt tên cho project là cong_not Vào File chọn Project sau đó chọn New 44 Hiển thị ra hộp thoại Nhấn Next hiển thị ra Hộp thoại Project name ta đặt tên là cong_not Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next Hiển thị ra hộp thoại 45 Nhấn Next hiển thị ra hộp thoại Bước 3: Tạo file cong_not.v và cong_not.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed 46 Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ cong_not sau đó nhấn OK Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 47 Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ cong_not sau đó nhấn OK Nhấn Next hiển thị ra hộp thoại 48 Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại Nhấn Finish hiển thị ra hộp thoại Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình cổng not . 49 Bước 6: Viết Chương trình trong cong_not.v `timescale 1ns / 1ps module cong_not ( input A, output Y ); assign Y = !A; endmodule Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào A, ta click chuột phải vào Chọn Force Clock 50 Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm Nhấn vào biểu tượng để lưu dạng sóng Bước 8: Gán chân thích ứng với thiết bị Trong phần RTL ANALYSIS ta click vào Schematic Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 2 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: 51 Nhấn vào để lưu toàn bộ dữ liệu Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis Nhấn OK Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành Click vào Open Synthesized Design để quan sát thiết kế 52 Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file 53 Trong phần IMPLEMENTATION ta click vào Run Implementation Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream Nhấn OK 54 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 55 Click vào Program device Chọn đường dẫn đến cong_not.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc V17 theo bảng trạng thái cổng not đầu vào và qua sát đèn U16 3.3. Một số lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT lỗi thường gặp Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign Y = !A; 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 56 3.4. Bài tập áp dụng Lập trình Cổng NOT điều khiển theo bảng trạng thái sau: A Y 0 1 1 0 Đầu vào A được kết nối với chân V17 của board mạch Basys3 Đầu ra Y được kết nối với chân U16 của board mạch Basys3 4. Lập trình cổng NAND 4.1. Cổng NAND 4.1.1. Ký hiệu cổng NAND 2 đầu vào Hình 1.7. Ký hiệu cổng NAND 4.1.2. Bảng trạng thái cổng NAND 2 đầu vào  Cổng NAND là đảo trạng thái ngõ ra của cổng AND  Ngõ ra cổng NAND bằng 0 khi có tất cả các ngõ vào bằng 1  Ngõ ra cổng AND bằng 1 khi có ít nhất một ngõ vào bằng 0 A B Y = 𝐴. 𝐵 0 0 1 0 1 1 1 0 1 1 1 0 Bảng 1.4. Bảng trạng thái cổng NAND Ví dụ: Mạch điện hình 1.8 sau thực hiện chức năng của cổng NAND Hình 1.8 Mạch điện cổng NAND 57 Bóng đèn sẽ sáng khi công tắc A hoặc công tắc B không đựơc nhấn với quy ước khi nhấn trạng thái của công tắc là 1 và khi không nhấn là 0. 4.2. Trình tự thực hiện 4.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 4.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau Bước 2: Tạo project mới và đặt tên cho project là nand2dauvao Vào File chọn Project sau đó chọn New 58 Hiển thị ra hộp thoại Nhấn Next hiển thị ra Hộp thoại Project name ta đặt tên là nand2dauvao Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next 59 Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 60 Bước 3: Tạo file nand2dauvao.v và nand2dauvao.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ nand2dauvao sau đó nhấn OK Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 61 Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ nand2dauvao sau đó nhấn OK Nhấn Next hiển thị ra hộp thoại 62 Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại Nhấn Finish hiển thị ra hộp thoại 63 Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình cổng nand 2 đầu vào. Bước 6: Viết Chương trình trong file nand2dauvao.v `timescale 1ns / 1ps module nand2dauvao ( input A, input B, output Y ); assign Y = !(A&B); endmodule Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation 64 Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào A, ta click chuột phải vào A Chọn Force Clock  Đặt thống số cho đầu vào B, ta click chuột phải vào B 65 Chọn Force Clock Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm Nhấn vào biểu tượng để lưu dạng sóng Bước 8: Gán chân thích ứng với thiết bị Trong phần RTL ANALYSIS ta click vào Schematic Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 3 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: 66 Nhấn vào để lưu toàn bộ dữ liệu Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis Nhấn OK Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành Click vào Open Synthesized Design để quan sát thiết kế 67 Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file 68 Trong phần IMPLEMENTATION ta click vào Run Implementation Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream Nhấn OK 69 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 70 Click vào Program device Chọn đường dẫn đến nand2dauvao.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc V17 và V16 theo bảng trạng thái cổng nand 2 đầu vào và qua sát đèn U16 4.3. Một số lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT lỗi thường gặp Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign Y = !(A&B); 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 71 4.4. Bài tập áp dụng Lập trình Cổng NAND 2 đầu vào điều khiển theo bảng trạng thái sau: A B Y 0 0 1 0 1 1 1 0 1 1 1 0 Đầu vào A được kết nối với chân V16 của board mạch Basys3 Đầu vào B được kết nối với chân V17 của board mạch Basys3 Đầu ra Y được kết nối với chân U16 của board mạch Basys3 5. Lập trình cổng NOR 5.1. Cổng NOR 5.1.1. Ký hiệu cổng NOR 2 đầu vào Hình 1.9. Ký hiệu cổng NOR 2 đầu vào 5.1.2. Bảng trạng thái cổng NOR 2 đầu vào  Cổng NOR là đảo của cổng OR  Ngõ ra cổng NOR bằng 0 khi có ít nhất một ngõ vào bằng 1  Ngõ ra cổng NOR bằng 1 khi tất cả các ngõ vào bằng 0 A B Y = 𝐴 + 𝐵 0 0 1 0 1 0 1 0 0 1 1 0 Bảng 1.5. Bảng trạng thái cổng NOR 2 đầu vào Ví dụ: Mạch điện thể hiện quan hệ của cổng NOR, hình 1.10 72 B Hình 1.10 Mạch điện cổng NOR Chỉ cần nhấn một trong hai nút nhấn thì đèn sẽ tắt 5.2. Trình tự thực hiện 5.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 5.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau 73 Bước 2: Tạo project mới và đặt tên cho project là nor2dauvao Vào File chọn Project sau đó chọn New Hiển thị ra hộp thoại 74 Nhấn Next hiển thị ra Hộp thoại Project name ta đặt tên là nor2dauvao Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 75 Bước 3: Tạo file nor2dauvao.v và nor2dauvao.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ nor2dauvao sau đó nhấn OK Hiển thị ra hộp thoại 76 Nhấn Next hiển thị ra hộp thoại Nhấn vào Create file hiển thị ra hộp thoại 77 File name ta gõ nor2dauvao sau đó nhấn OK Nhấn Next hiển thị ra hộp thoại 78 Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại Nhấn Finish hiển thị ra hộp thoại 79 Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình cổng nor 2 đầu vào. Bước 6: Viết Chương trình trong file nor2dauvao.v `timescale 1ns / 1ps module nor2dauvao ( input A, input B, output Y ); assign Y = !(A | B); endmodule Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào A, ta click chuột phải vào A 80 Chọn Force Clock  Đặt thống số cho đầu vào B, ta click chuột phải vào B Chọn Force Clock Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm 81 Nhấn vào biểu tượng để lưu dạng sóng Bước 8: Gán chân thích ứng với thiết bị Trong phần RTL ANALYSIS ta click vào Schematic Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 3 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: Nhấn vào để lưu toàn bộ dữ liệu Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis Nhấn OK 82 Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành Click vào Open Synthesized Design để quan sát thiết kế Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings 83 Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file Trong phần IMPLEMENTATION ta click vào Run Implementation 84 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream Nhấn OK 85 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 86 Click vào Program device Chọn đường dẫn đến nor2dauvao.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc V17 và V16 theo bảng trạng thái cổng nor 2 đầu vào và qua sát đèn U16 5.3. Một số sai hỏng thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT Sai hỏng Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign Y = !(A | B); 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 87 5.4. Bài tập áp dụng Lập trình Cổng NOR 2 đầu vào điều khiển theo bảng trạng thái sau: A B Y 0 0 1 0 1 0 1 0 0 1 1 0 Đầu vào A được kết nối với chân V16 của board mạch Basys3 Đầu vào B được kết nối với chân V17 của board mạch Basys3 Đầu ra Y được kết nối với chân U16 của board mạch Basys3 88 CÁC BÀI TẬP MỞ RỘNG, NÂNG CAO VÀ GIẢI QUYẾT VẤN ĐỀ Bài 1: Lập trình IC 7408 Bài 2: Lập trình IC 7432 Bài 3: Lập trình IC 7400 Bài 4: Lập trình IC 7402 Bài 5: Lập trình Cổng AND 3 đầu vào Bài 6: Lập trình Cổng AND 4 đầu vào Bài 7: Lập trình Cổng OR 3 đầu vào Bài 8: Lập trình Cổng OR 4 đầu vào Bài 9: Lập trình IC 74HC04 Bài 10: Lập trình Cổng NADN 3 đầu vào Bài 11: Lập trình Cổng NADN 4 đầu vào Bài 12: Lập trình Cổng NOR 3 đầu vào Bài 13: Lập trình Cổng NOR 4 đầu vào 89 Yêu cầu về đánh giá kết quả học tập: Nội dung: + Kiến thức: - Phân tích được cấu trúc của các cổng logic cơ bản; - Trình bày được trình tự thực hiện lập trình các cổng logic cơ bản; - Phân tích được các lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh; + Kỹ năng: - Lập trình được các cổng logic cơ bản theo yêu cầu kỹ thuật; - Phòng tránh và sửa được các lỗi khi lập trình điều khiển; - Kiểm tra chính xác điều kiện hoạt động của thiết bị. + Năng lực tự chủ và trách nhiệm: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; - Tự chịu trách nhiệm khi thực hiện các việc được giao. Phương pháp: + Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết + Về kỹ năng: Đánh giá kỹ năng thực hành Mỗi sinh viên, hoặc mỗi nhóm học viên thực hiện công việc theo yêu cầu của giáo viên. Tiêu chí đánh giá theo các nội dung: - Độ chính xác của công việc - Thời gian thực hiện công việc - Độ chính xác theo yêu cầu kỹ thuật + Năng lực tự chủ và trách nhiệm: -Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; -Tự chịu trách nhiệm khi thực hiện các việc được giao. 90 BÀI 2: LẬP TRÌNH CÁC MẠCH LOGIC TỔ HỢP Mã bài: MĐ ĐTCN 25 - 02 Giới thiệu: Hiện nay các mạch logic tổ hợp có thể lập trình được. Do đó, người học phải được trang bị những kiến thức cơ bản về lập trình các mạch logic tổ hợp như: mạch cộng bán phần, mạch cộng toàn phần 2 bit, mạch cộng toàn phần 4 bit... Mục tiêu: Sau khi học xong bài học này người học có khả năng: + Kiến thức: - Phân tích được cấu trúc của các mạch logic tổ hợp; - Trình bày được trình tự thực hiện lập trình các mạch logic tổ hợp; - Phân tích được những lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. + Kỹ năng: - Lập trình được các mạch logic tổ hợp theo yêu cầu kỹ thuật; - Phòng tránh và sửa được các lỗi khi lập trình điều khiển; - Kiểm tra chính xác điều kiện hoạt động của thiết bị. + Năng lực tự chủ và trách nhiệm: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; - Tự chịu trách nhiệm khi thực hiện các việc được giao. Nội dung: 1. Lập trình mạch cộng bán phần 1.1. Mạch cộng bán phần 1.1.1. Sơ đồ mạch cộng bán phần Hình 2.1: Sơ đồ mạch cộng bán phần Mạch cộng bán phần A B C S 91 1.1.2. Bảng trạng thái mạch cộng bán phần Tín hiệu đầu vào của bộ cộng half-adder là 2 tín hiệu 1 bit sẽ cộng với nhau (A, B). Tín hiệu đầu ra là kết quả sau khi cộng (S) và cờ nhớ lên hàng (C). Hoạt động của bộ cộng half-adder sẽ cho ra kết quả tính toán như sau: Bảng: Nội dung tính A 0 1 0 1 B +) 0 +) 0 +) 1 +) 1 0 0 0 1 0 1 1 0 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ C S C S C S C S Bảng trạng thái mạch cộng bán phần được mô tả theo bảng sau A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Bảng 2.1:Bảng trạng thái mạch cộng bán phần 1.2. Trình tự thực hiện 1.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 1.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau 92 Bước 2: Tạo project mới và đặt tên cho project là machcongbanphan Vào File chọn Project sau đó chọn New Hiển thị ra hộp thoại 93 Nhấn Next hiển thị ra Hộp thoại Project name ta đặt tên là machcongbanphan Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 94 Bước 3: Tạo file machcongbanphan.v và machcongbanphan.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ machcongbanphan sau đó nhấn OK Hiển thị ra hộp thoại 95 Nhấn Next hiển thị ra hộp thoại Nhấn vào Create file hiển thị ra hộp thoại 96 File name ta gõ machcongbanphan sau đó nhấn OK Nhấn Next hiển thị ra hộp thoại 97 Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại Nhấn Finish hiển thị ra hộp thoại 98 Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình machcongbanphan. Bước 6: Viết Chương trình trong file machcongbanphan.v `timescale 1ns / 1ps module machcongbanphan( input A, input B, output S, output C ); assign S = A ^ B ; assign C = A & B ; 99 endmodule Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào A, ta click chuột phải vào A Chọn Force Clock  Đặt thống số cho đầu vào B, ta click chuột phải vào B 100 Chọn Force Clock Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm Nhấn vào biểu tượng để lưu dạng sóng Bước 8: Gán chân thích ứng với thiết bị 101 Trong phần RTL ANALYSIS ta click vào Schematic Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 4 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: Nhấn vào để lưu toàn bộ dữ liệu Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis 102 Nhấn OK Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành Click vào Open Synthesized Design để quan sát thiết kế Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings 103 Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file Trong phần IMPLEMENTATION ta click vào Run Implementation 104 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream Nhấn OK 105 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 106 Click vào Program device Chọn đường dẫn đến machcongbanphan.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc V17 và V16 theo bảng trạng thái machcongbanphan và qua sát đèn U16, E19 1.3. Một số lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT Sai hỏng Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign S = A ^ B ; assign C = A & B ; 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 107 1.4. Bài tập áp dụng Lập trình mạch cộng bán phần điều khiển theo bảng trạng thái sau: A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Đầu vào A được kết nối với chân V16 của board mạch Basys3 Đầu vào B được kết nối với chân V17 của board mạch Basys3 Đầu ra S được kết nối với chân U16 của board mạch Basys3 Đầu ra C được kết nối với chân E19 của board mạch Basys3 2. Lập trình mạch cộng toàn phần 2.1. Mạch cộng toàn phần 2.1.1. Sơ đồ mạch cộng toàn phần Mạch cộng toàn phần được cấu thành từ hai bộ cộng bán phần và mạch OR. Hình 2.2: Sơ đồ mạch cộng toàn phần 2.1.2. Bảng trạng thái Tín hiệu đầu vào của bộ cộng toàn phần là 2 tín hiệu 1 bit sẽ được cộng (A, B) và tín hiệu nhớ lên hàng (Cin). Tín hiệu đầu ra là kết quả sau khi cộng (S) và giá trị nhớ lên hàng (Cout). Hoạt động của bộ nhớ toàn phần sẽ cho kết quả tính toán như sau: Mạch cộng toàn phần A B S Cout Mạch cộng bán phần h0 Mạch cộng bán phần h1 A B B1 A1 S1 C1 Cin C2 S2 108 Bảng: Nội dung tính Cin 0 0 0 0 A 0 1 0 1 B +) 0 +) 0 +) 1 +) 1 0 0 0 1 0 1 1 0 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Cout S Cout S Cout S Cout S Cin 1 1 1 1 A 0 1 0 1 B +) 0 +) 0 +) 1 +) 1 0 1 1 0 1 0 1 1 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Cout S Cout S Cout S Cout S Theo sơ đồ mạch hình 2.2 ta có C1 = A and B S1 = A xor B A1 = S1 B1 = Cin C2 = A1 and B1 = S1 and Cin = (A xor B) and Cin S2 = A1 xor B1 Cout = C1 or C2 = (A and B) or ((A xor B) and Cin) S = S2 = A1 xor B1 = S1 xor Cin = (A xor B) xor Cin Vậy các tín hiệu đầu ra theo đầu vào sẽ là: Cout = (A and B) or ((A xor B) and Cin) S = (A xor B) xor Cin Ta có bảng trạng thái như sau: 109 Cin A B S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Bảng 2.1: Bảng trạng thái mạch cộng toàn phần 2.2. Trình tự thực hiện 2.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 2.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau 110 Bước 2: Tạo project mới và đặt tên cho project là machcongtoanphan Vào File chọn Project sau đó chọn New Hiển thị ra hộp thoại 111 Nhấn Next hiển thị ra Hộp thoại Project name ta đặt tên là machcongtoanphan Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 112 Bước 3: Tạo file machcongtoanphan.v và machcongtoanphan.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ machcongtoanphan sau đó nhấn OK Hiển thị ra hộp thoại 113 Nhấn Next hiển thị ra hộp thoại Nhấn vào Create file hiển thị ra hộp thoại 114 File name ta gõ machcongtoanphan sau đó nhấn OK Nhấn Next hiển thị ra hộp thoại 115 Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại Nhấn Finish hiển thị ra hộp thoại 116 Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình machcongtoanphan. Bước 6: Viết Chương trình trong file machcongtoanphan.v `timescale 1ns / 1ps module machcongtoanphan( input Cin, input A, input B, output S, output Cout ); assign S = (A ^ B) ^ Cin ; assign Cout = (A & B) | ((A ^ B) & Cin); endmodule 117 Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào Cin, ta click chuột phải vào Cin Chọn Force Clock 118  Đặt thống số cho đầu vào A, ta click chuột phải vào A Chọn Force Clock  Đặt thống số cho đầu vào B, ta click chuột phải vào B 119 Chọn Force Clock Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm 120 Nhấn vào biểu tượng để lưu dạng sóng Bước 8: Gán chân thích ứng với thiết bị Trong phần RTL ANALYSIS ta click vào Schematic Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 5 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: Nhấn vào để lưu toàn bộ dữ liệu 121 Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis Nhấn OK Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành Click vào Open Synthesized Design để quan sát thiết kế 122 Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file 123 Trong phần IMPLEMENTATION ta click vào Run Implementation Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream Nhấn OK 124 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 125 Click vào Program device Chọn đường dẫn đến machcongtoanphan.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc W16, V16 và V17 theo bảng trạng thái machcongtoanphan và quan sát đèn U16, E19 2.3. Một số lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT Sai hỏng Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign S = (A ^ B) ^ Cin ; 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 126 2.4. Bài tập áp dụng Lập trình mạch cộng toàn phần điều khiển theo bảng trạng thái sau: Cin A B S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Đầu vào Cin được kết nối với chân W16 của board mạch Basys3 Đầu vào A được kết nối với chân V16 của board mạch Basys3 Đầu vào B được kết nối với chân V17 của board mạch Basys3 Đầu ra S được kết nối với chân U16 của board mạch Basys3 Đầu ra Cout được kết nối với chân E19 của board mạch Basys3 3. Lập trình mạch cộng toàn phần 4 bit 3.1. Mạch cộng toàn phần 3.1.1. Sơ đồ mạch cộng toàn phần 4 bít Hình 2.3. Mạch cộng toàn phần 4 bít A3 B3 A2 B2 A1 B1 A0 B0 C0 C1 C2 C3 Cout S3 S2 S1 S0 Mạch cộng toàn phần Mạch cộng toàn phần Mạch cộng toàn phần Mạch cộng toàn phần 127 3.1.2. Bảng trạng thái Đây là một mạch cộng song song vì các hàng được cộng cùng một lúc tuy nhiên như cấu trúc mạch ở trên thì các bit ra của tổng không phải là đồng thời bởi vì các phép cộng ở các bit cao thì chậm hơn do phải chờ bit nhớ ở phép cộng trước đưa tới. Tức là đã có trì hoãn làm giảm tính đồng bộ của mạch. Nếu thêm vào mạch cho phép cung cấp sẵn các bit nhớ để phục vụ cho các phép cộng ở các hàng được cùng lúc thì sẽ khắc phục được điểm này. Với công nghệ tích hợp cao, việc thêm mạch cung cấp sẵn các bit nhớ trở nên dễ dàng hơn khi đó mạch trở thành mạch cộng có số nhớ nhìn trước. Số nhớ đầu Cn-1 Số cộng Tổng ∑n Số nhớ sau Cn An Bn 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Bảng 2.3: Bảng trạng thái mạch cộng toàn phần 4 bit 3.2. Trình tự thực hiện 3.2.1. Điều kiện thực hiện - Chuẩn bị thiết bị, dụng cụ, vật tư. THIẾT BỊ, DỤNG CỤ VẬT TƯ - Máy tính có cài phần mềm Vivado - BASYS 3 Hãng XILINX - Dây kết nối máy tính với BASYS 3 - An toàn lao động. + Đảm bảo an toàn điện. + Đảm bảo an toàn cho người và thiết bị, dụng cụ. 128 3.2.2. Các bước thực hiện Bước 1: Khởi động phần mềm Vivado Kích vào biểu tượng trên màn hình Desktop ta có giao diện phần mềm như sau Bước 2: Tạo project mới và đặt tên cho project là machcongtoanphan4bit Vào File chọn Project sau đó chọn New Hiển thị ra hộp thoại Nhấn Next hiển thị ra Hộp thoại 129 Project name ta đặt tên là machcongtoanphan4bit Project location chọn đường dẫn tới D:/vimachso sau đó nhấn Next Hiển thị ra hộp thoại Nhấn Next hiển thị ra hộp thoại 130 Bước 3: Tạo file machcongtoanphan4bit.v và machcongtoanphan4bit.xdc Target langguage ta chọn Verilog Simulator langguage ta chọn Mixed Nhấn vào Create file hiển thị ra hộp thoại File name ta gõ machcongtoanphan4bit sau đó nhấn OK Hiển thị ra hộp thoại 131 Nhấn Next hiển thị ra hộp thoại Nhấn vào Create file hiển thị ra hộp thoại 132 File name ta gõ machcongtoanphan4bit sau đó nhấn OK Nhấn Next hiển thị ra hộp thoại 133 Bước 4: Chọn chọn dòng IC lập trình Family ta chọn Artix-7, Package chọn cpg236, Speed chọn -1 sau đó ta chọn chíp xc7a35tcpg236-1 sau đó nhấn Next sẽ hiển thị ra hộp thoại Nhấn Finish hiển thị ra hộp thoại 134 Bước 5: Ghi các thông tin đầu vào và đầu ra Theo bài toán ví dụ lập trình machcongtoanphan4bit. Bước 6: Viết Chương trình trong file machcongtoanphan4bit.v `timescale 1ns / 1ps module machcongtoanphan4bit( input [3:0] A, input [3:0] B, output [3:0] S, output Cout ); assign {Cout, S} = A + B; endmodule Bước 7: Mô phỏng dạng sóng trên phần mềm Click vào Run Simulation Chọn Run Behavioral Simulation 135 Để mô phỏng dạng sóng trên phần mềm, ta đặt các thông số cho các đầu vào và quan sát dạng sóng đầu ra  Đặt thống số cho đầu vào A[3], ta click chuột phải vào [3] trong phần A[3..0] Chọn Force Clock 136  Đặt thống số cho đầu vào A[2] tương tự ta chọn period là 4s  Đặt thống số cho đầu vào A[1] ta chọn period là 2s  Đặt thống số cho đầu vào A[0] ta chọn period là 1s  Đặt thống số cho đầu vào B[3] ta chọn period là 8s  Đặt thống số cho đầu vào B[2] ta chọn period là 4s  Đặt thống số cho đầu vào B[1] ta chọn period là 2s  Đặt thống số cho đầu vào B[0] ta chọn period là 1s Nhấn vào biểu tượng để mô phỏng dạng sóng trên phần mềm Nhấn vào biểu tượng để lưu dạng sóng 137 Bước 8: Gán chân thích ứng với thiết bị Trong phần RTL ANALYSIS ta click vào Schematic Click vào I/O Ports để gán chân linh kiện phù hợp với thiết bị. Trong bài toán này ta Click vào 13 I/O Ports Ta đặt các đầu vào và đầu ra tương ứng với các chân của Chip trong cột Package Pin và dạng dữ liệu I/O Std như sau: Nhấn vào để lưu toàn bộ dữ liệu 138 Bước 9: Biên dịch tổng hợp chương trình Trong mục SYNTHESIS ta click vào Run Synthesis Nhấn OK Chọn Launch runs on local host number of jobs 4 sau đó nhấn OK Quan sát quá trình chạy đến khi hoàn thành Click vào Open Synthesized Design để quan sát thiết kế 139 Nhấn OK Bước 10: Download chương trình vào phần cứng của thiết bị Để Download chương trình vào phần cứng của thiết bị ta vào Tool chọn Settings Click vào Bitstream, chọn dạng xuất dữ liệu là -bin_file 140 Trong phần IMPLEMENTATION ta click vào Run Implementation Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Sau khi chạy thành công ta chọn Generate Bitstream Nhấn OK 141 Chọn Launch runs on local host Number or jobs 4 sau đó nhấn OK Đợi quá trình hoàn thành Để đổ chương trình vào phần cứng của thiết bị ta cắm thiết bị vào cổng USB của máy tính sau đó trong phần PROGRAM AND DEBUG ta click vào Open Target chọn Auto Connect 142 Click vào Program device Chọn đường dẫn đến machcongtoanphan4bit.bit sau đó nhấn vào Program Quá trình ghi dữ liệu đến khi hoàn thành 100% là xong. Bước 11: Chạy chương trình trên thiết bị Gạt các công tắc V17, V16, W16, W17, W15, V15, W14, W13 theo bảng trạng thái machcongtoanphan4bit và quan sát đèn U16, E19, V19, W18, U15 3.3. Một số lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. TT Sai hỏng Nguyên nhân Biện pháp xử lý, phòng tránh 1 Sai chân đầu vào/đầu ra Gán sai chân đầu vào/đầu ra trên thiết bị Xác định đúng chân đầu vào/đầu ra trên thiết bị. Gán đúng chân đầu vào/đầu ra trên thiết bị 2 Sai lệnh cấu trúc lệnh Lập trình sai cấu trúc Cần lập trình đúng theo cấu trúc lệnh: ví dụ: assign {Cout, S} = A + B; 3 Không download được chương trình xuống thiết bị Do kết nối thiết bị với máy tính Kiểm tra kết nối giữa thiết bị với máy tính 143 3.4. Bài tập áp dụng Lập trình mạch cộng toàn phần 4 bit điều khiển theo bảng trạng thái sau: Số thứ nhất B[3..0] Số thứ ha A[3..0] Bit nhớ Tổng S[3..0] B3 B2 B1 B0 A3 A2 A1 A0 Cout S3 S2 S2 S0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 Đầu vào B3, B2, B1, B0, A3, A2, A1, A0 được kết nối với các chân W13, W14, V15, W15, W17, W16, V16, V17 của board mạch Basys3 Đầu ra S3, S2, S1, S0 được kết nối với chân V19, U19, E19, U16 của board mạch Basys3 Đầu ra Cout được kết nối với chân W18 của board mạch Basys3 144 CÁC BÀI TẬP MỞ RỘNG, NÂNG CAO VÀ GIẢI QUYẾT VẤN ĐỀ Bài 1: Lập trình mạch cộng 3 số nhị phân 1 bit A, B, C với tổng là S, bít nhớ Cout Đầu vào A, B, C được kết nối với các chân W16, V16, V17 của board mạch Basys3 Đầu ra S, Cout được kết nối với các chân U16, E19 của board mạch Basys3 Bài 2: Lập trình mạch cộng toàn phần 2 bit A[1..0], B[1..0] với tổng là S[1..0], bít nhớ Cout Bài 3: Lập trình mạch cộng toàn phần 6 bit A[5..0], B[5..0] với tổng là S[5..0], bít nhớ Cout Yêu cầu về đánh giá kết quả học tập: Nội dung: + Kiến thức: - Phân tích được cấu trúc của các mạch logic tổ hợp; - Trình bày được trình tự thực hiện lập trình các mạch logic tổ hợp; - Phân tích được những lỗi thường gặp, nguyên nhân và biện pháp xử lý, phòng tránh. + Kỹ năng: - Lập trình được các mạch logic tổ hợp theo yêu cầu kỹ thuật; - Phòng tránh và sửa được các lỗi khi lập trình điều khiển; - Kiểm tra chính xác điều kiện hoạt động của thiết bị. + Năng lực tự chủ và trách nhiệm: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; - Tự chịu trách nhiệm khi thực hiện các việc được giao. Phương pháp: + Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết + Về kỹ năng: Đánh giá kỹ năng thực hành Mỗi sinh viên, hoặc mỗi nhóm học viên thực hiện công việc theo yêu cầu của giáo viên. Tiêu chí đánh giá theo các nội dung: - Độ chính xác của công việc - Thời gian thực hiện công việc - Độ chính xác theo yêu cầu kỹ thuật + Năng lực tự chủ và trách nhiệm: - Rèn luyện tính tỷ mỉ, chính xác và an toàn vệ sinh công nghiệp; - Tự chịu trách nhiệm khi thực hiện các việc được giao.

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_lap_trinh_vi_mach_so_phan_1.pdf