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.
144 trang |
Chia sẻ: Tiểu Khải Minh | Ngày: 22/02/2024 | Lượt xem: 80 | Lượt tải: 0
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:
- giao_trinh_lap_trinh_vi_mach_so_phan_1.pdf