output f;assign f= !x&!y|y&z|!y&!z; endmodule Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của hàm trên mô phỏng, ghi kết quả vào cột f sim của Bảng 2.1..
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN KỸ THUẬT ĐIỆN TỬ
BÁO CÁO LAB 2
KỸ THUẬT SỐ (TN) (EE1010)
GVHD: Vũ Quang Thời Lớp DT04 – Nhóm 03
TP HỒ CHÍ MINH, 2023
Trang 2THÍ NGHIỆM 0
Kết nối SW0-SW17 với LEDR0-LEDR17
THÍ NGHIỆM 1
Yêu cầu: Sinh viên thực hiện khảo sát hoạt động của hàm f ( x , y , z )=´x yz+ ´xy z +xy và điền
các kết quả khảo sát vào Bảng 2.1 theo hướng dẫn ở mục Kiểm tra
Trang 3 Sinh viên tiến hành thay các giá trị của x, y, z vào hàm f ( x , y , z )=´x yz+ ´xy z +xy đã
cho, điền kết quả vào cột f của Bảng 2.1.
Sinh viên tiến hành vẽ sơ đồ cổng logic của mạch cần thiết kế
f ( x , y , z )=´x yz+ ´xy z +xy
Sinh viên viết đoạn mã SystemVerilog thực hiện hoạt động của hàm
f ( x , y , z )=´x yz+ ´xy z +xy như hướng dẫn từ Prelab với sơ đồ gán chân như sau:
o Chân x, y, z gán tới SW2, SW1, SW0 và LEDR2, LEDR1, LEDR0 tương ứng
o Chân f gán tới LEDG0
module bai21(
input x,y,z,
Trang 4output f);
assign f= (!x&!y)|(y&z)|(!y&!z);
endmodule
Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của
hàm trên mô phỏng, ghi kết quả vào cột f sim của Bảng 2.1.
Sinh viên xem kết quả Netlist > RTL Viewer của mạch Kết quả này có giống với
sơ đồ cổng logic sinh viên đã vẽ không, tại sao?
Kết quả mô phỏng giống với sơ đồ cổng logic sinh viên vẽ về mặt kết quả hàm đầu
ra, nhưng cách sử dụng cổng OR, AND, … là khác so với bản sinh viên vẽ
Lý do là vì khi lặp trình, thứ tự các biến các phép OR, AND,… được đặt ở các vị trí khác với khi vẽ tay
(Chèn hình chụp Netlist > RTL Viewer)
Trang 5 Sinh viên thực hiện nạp đoạn mã lên Kit DE2, thiết kế có thực hiện chính xác như
yêu cầu hay không? Ghi kết quả vào cột f Kit của Bảng 2.1.
(Chèn hình chụp minh chứng sinh viên đã nạp lên Kit hoạt động)
Kết quả kiểm tra f Kit
Trang 6THÍ NGHIỆM 2
Mục tiêu: Nắm được cách khảo sát hàm boolean sử dụng kit DE2
Yêu cầu: Sinh viên thực hiện khảo sát hoạt động của hàm được cho bởi Bảng 2.2 và điền
các kết quả khảo sát vào Bảng 2.2 theo hướng dẫn ở mục Kiểm tra.
Viết biểu thức ngõ f theo các ngõ vào x, y, z
f =´x ´y+ yz+ ´y ´z
Sinh viên tiến hành vẽ sơ đồ cổng logic của mạch cần thiết kế
Trang 7 Sinh viên viết đoạn mã SystemVerilog thực hiện hoạt động của hàm f ( x , y , z)như
hướng dẫn từ Prelab với sơ đồ gán chân như sau:
o Chân x, y, z gán tới SW2, SW1, SW0 và LEDR2, LEDR1, LEDR0 tương ứng
o Chân f gán tới LEDG0
module bai21(
input x,y,z,output f);
assign f= (!x&!y)|(y&z)|(!y&!z);
endmodule
Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của
hàm trên mô phỏng, ghi kết quả vào cột f sim của Bảng 2.2.
(Chèn hình chụp minh chứng sinh viên đã mô phỏng mạch)
Sinh viên xem kết quả Netlist > RTL Viewer của mạch Kết quả này có giống với
sơ đồ cổng logic sinh viên đã vẽ không, tại sao?
(Chèn hình chụp Netlist > RTL Viewer)
Trang 8 Sinh viên thực hiện nạp đoạn mã lên Kit DE2, thiết kế có thực hiện chính xác như
yêu cầu hay không? Ghi kết quả vào cột f Kit của Bảng 2.2.
(Chèn hình chụp minh chứng sinh viên đã nạp lên Kit hoạt động)
Kết quả kiểm tra f Kit
Trang 9Minh chứng cho trường hợp x = 0, y = 0, z =0:
THÍ NGHIỆM 3
Mục tiêu: Nắm được cách khảo sát hàm boolean sử dụng kit DE2.
Yêu cầu: Sinh viên xem mạch được cho bởi Hình 2.4 và điền các kết quả khảo sát vào
Bảng 2.3 theo hướng dẫn ở mục Kiểm tra.
Hình 2.4
Trang 10 Sinh viên viết đoạn mã SystemVerilog thực hiện hoạt động của hàm Ftrên Hình
2.4 như hướng dẫn từ Prelab với sơ đồ gán chân như sau:
o Chân x, y, z gán tới SW2, SW1, SW0 và LEDR2, LEDR1, LEDR0 tương ứng
o Chân f gán tới LEDG0
module bai32(
input x,y,z,output f);
assign f= !((!(x|(y&z)))|(!(!y&z)));
endmodule
Sinh viên xem kết quả Netlist > RTL Viewer của mạch Kết quả này có giống với
sơ đồ cổng logic trên Hình 2.4 không, tại sao?
(Chèn hình chụp Netlist > RTL Viewer)
Trang 11 Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của
hàm trên mô phỏng, ghi kết quả vào cột f sim của Bảng 2.3.
(Chèn hình chụp minh chứng sinh viên đã mô phỏng mạch)
Kiểm tra f sim
Sinh viên thực hiện nạp đoạn mã lên Kit DE2, thiết kế có thực hiện chính xác như
yêu cầu hay không? Ghi kết quả vào cột f Kit của Bảng 2.3.
(Chèn hình chụp minh chứng sinh viên đã nạp lên Kit hoạt động)
Trang 12Minh chứng cho trường hợp x = 1, y = 0, z = 1:
Kiểm tra f Kit
Trang 13THÍ NGHIỆM 4
Mục tiêu: Nắm được cách thức thiết kế các IC chức năng bằng ngôn ngữ SystemVerilog
và ứng dụng trên kit DE2
Yêu cầu: Sinh viên thực hiện thiết kế hàm boolean f ( x , y , z )=∑(1,2,4,7 ) sử dụng IC chứcnăng 74LS151 và các cổng logic cần thiết trên ngôn ngữ SystemVerilog Kết quả khảo
sát điền vào Bảng 2.4 theo hướng dẫn ở mục Kiểm tra.
Trang 14 Sinh viên viết đoạn mã SystemVerilog thực hiện hoạt động của hàm
f ( x , y , z)=∑(1,2,4,7 ) như hướng dẫn từ Prelab với sơ đồ gán chân như sau:
o Chân x, y, z gán tới SW2, SW1, SW0 và LEDR2, LEDR1, LEDR0 tương ứng
o Chân f gán tới LEDG0
o Trong đó, gọi IC 74LS151 như một module con
module ic74151 ( input enable, input [7:0] data_input, input [2:0] data_select, output data_output );
assign data_output = (~enable) & data_input[data_select];
endmodulemodule bai42(
input X, Y, Z, output led_X, led_Y, led_Z, output F
Trang 15);
endmodule
Sinh viên xem kết quả Netlist > RTL Viewer của mạch Kết quả này có giống với
sơ đồ đã thiết kế hay không, tại sao?
Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của
hàm trên mô phỏng, ghi kết quả vào cột f sim của Bảng 2.4
Trang 16 Sinh viên thực hiện nạp đoạn mã lên Kit DE2, thiết kế có thực hiện chính xác như
yêu cầu hay không? Ghi kết quả vào cột f Kit của Bảng 4.
(Chèn hình chụp minh chứng sinh viên đã nạp lên Kit hoạt động)
Minh chứng cho trường hợp x=1,y=1,z=1
Kiểm tra fKit
Trang 17THÍ NGHIỆM 5
Mục tiêu: Nắm được cách thức thiết kế các IC chức năng bằng ngôn ngữ SystemVerilog và
ứng dụng trên kit DE2
Yêu cầu: Sinh viên thực hiện thiết kế hàm boolean f(x,y,z,w)= ∑(2,5,7,9,12,13) sử dụng IC
chức năng 74LS151 và các cổng logic cần thiết trên ngôn ngữ SystemVerilog Kết quả khảo
sát điền vào bảng 5 theo hướng dẫn ở mục Kiểm tra.
Trang 18 Sinh viên viết đoạn mã SystemVerilog thực hiện hoạt động của hàm f(x,y,z,w) như
hướng dẫn
o Chân x, y, z, w gán tới SW3,SW2, SW1, SW0 và LEDR3, LEDR2, LEDR1, LEDR0 tương ứng
o Chân f gán tới LEDG0
o Trong đó, gọi IC 74LS151 như một module con
module ic74151 ( input enable, input [7:0] data_input, input [2:0] data_select, output data_output );
assign data_output = (~enable) & data_input[data_select]; endmodule
module bai52(
input X, Y, Z, W, output F
Trang 19data_output (F1) );
ic74151 ic2(
enable (!X), data_input (D2), data_select ({ Y, Z,W}), data_output (F2)
);
assign F=F1|F2;
endmodule
Sinh viên xem kết quả Netlist > RTL Viewer của mạch Kết quả này có giống với sơ đồ
đã thiết kế hay không, tại sao?
(Chèn hình chụp Netlist > RTL Viewer)
Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của hàm trên
mô phỏng, ghi kết quả vào cột fsim của Bảng 5
(Chèn hình chụp minh chứng sinh viên đã mô phỏng mạch)
Trang 20(Chèn hình chụp minh chứng sinh viên đã nạp lên Kit hoạt động)
Minh chứng cho trường hợp x=0, y=0, z=1, w=0
Trang 21Kiểm tra fkit
Trang 22Mục tiêu: Nắm được cách thức thiết kế các IC chức năng bằng ngôn ngữ SystemVerilog
và ứng dụng trên kit DE2
Yêu cầu: Sinh viên thực hiện thiết kế hàm boolean f ( x , y , z )=∑(0,2,5,7) sử dụng IC chứcnăng 74LS138 và các cổng logic cần thiết trên ngôn ngữ SystemVerilog Kết quả khảo
sát điền vào Bảng 6 theo hướng dẫn ở mục Kiểm tra.
Sinh viên viết đoạn mã SystemVerilog thực hiện hoạt động của hàm f ( x , y , z ) như
hướng dẫn từ Prelab với sơ đồ gán chân như sau:
o Chân x, y, z gán tới SW2, SW1, SW0 và LEDR2, LEDR1, LEDR0 tươngứng
o Chân f gán tới LEDG0
o Trong đó, gọi IC 74LS138 như một module con
Trang 23module ic74138 (
input [2:0] enable, //enable = {G1, G2A, G2B};
input [2:0] select, //select = {A, B, C};
output [7:0] outputs //outputs = {Y7, Y6, Y5, Y4, Y3, Y2, Y1, Y0};);
.enable (3'b100), //enable = {G1, G2A, G2B};
.select ({Z, Y, X}), //select = {A, B, C};
.outputs (I) //outputs = {Y7, Y6, Y5, Y4, Y3, Y2, Y1, Y0};
);
assign F = ~(I[0] && I[2] && I[5] && I[7]);
endmodule
Trang 24 Sinh viên xem kết quả Netlist > RTL Viewer của mạch Kết quả này có giống với
sơ đồ đã thiết kế hay không, tại sao?
Bảng 6: Kết quả khảo sát hoạt động của hàm boolean
Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của
hàm trên mô phỏng, ghi kết quả vào cột f sim của Bảng 6.
(Chèn hình chụp minh chứng sinh viên đã mô phỏng mạch)
Trang 25Bảng 6: Kết quả khảo sát hoạt động của hàm Boolean
Sinh viên thực hiện nạp đoạn mã lên Kit DE2, thiết kế có thực hiện chính xác như
yêu cầu hay không? Ghi kết quả vào cột f Kit của Bảng 6.
(Chèn hình chụp minh chứng sinh viên đã nạp lên Kit hoạt động)
Trang 26Minh chứng cho trường hợp x=0, y=0, z=0
Kiểm tra fkit
Mục tiêu: Nắm được cách thức thiết kế các IC chức năng bằng ngôn ngữ SystemVerilog
và ứng dụng trên kit DE2
Yêu cầu: Sinh viên thực hiện thiết kế hàm boolean f ( x , y , z , w)=∑(1,3,5,7,10, 12,14 )sửdụng IC chức năng 74LS138 và các cổng logic cần thiết trên ngôn ngữ SystemVerilog
Kết quả khảo sát điền vào bảng 7 theo hướng dẫn ở mục Kiểm tra.
Trang 28 Sinh viên viết đoạn mã SystemVerilog thực hiện hoạt động của hàm f ( x , y , z , w)
như hướng dẫn từ Prelab với sơ đồ gán chân như sau:
o Chân x, y, z, w gán tới SW3,SW2, SW1, SW0 và LEDR3, LEDR2,LEDR1, LEDR0 tương ứng
o Chân f gán tới LEDG0
o Trong đó, gọi IC 74LS138 như một module con
module ic74138 ( input [2:0] enable, //enable = {G1, G2A, G2B};
input [2:0] select, //select = {A, B, C};
output [7:0] outputs //outputs = {Y7, Y6, Y5, Y4, Y3, Y2, Y1,Y0};
);
always @(*) begin outputs = '1;
if(enable == 3'b100) outputs[select] = '0;
end endmodule
module bai72(
input X, Y, Z, W,output F );
reg [15:0] I;
ic74138 ic1(
Trang 29enable ({2'b10,X}), //enable = {G1, G2A, G2B};
select ({Y,Z,W}), //select = {A, B, C};
outputs (I[7:0]) //outputs = {Y7, Y6, Y5, Y4, Y3, Y2, Y1,Y0};);
ic74138 ic2(
enable ({2'b10,!X}), //enable = {G1, G2A, G2B};
select ({Y,Z,W}), //select = {A, B, C};
outputs (I[15:8]) //outputs = {Y7, Y6, Y5, Y4, Y3, Y2, Y1, Y0};);assign F = ~(I[1] && I[3] && I[5] && I[7] && I[10] && I[12]
&& I[14] );
endmodule
Sinh viên xem kết quả Netlist > RTL Viewer của mạch Kết quả này có giống với
sơ đồ đã thiết kế hay không, tại sao?
(Chèn hình chụp Netlist > RTL Viewer)
Sinh viên tiến hành tổng hợp thiết kế System Verilog và khảo sát hoạt động của
hàm trên mô phỏng, ghi kết quả vào cột f sim của Bảng 7.
(Chèn hình chụp minh chứng sinh viên đã mô phỏng mạch)
Trang 30Bảng 7: Kết quả khảo sát hoạt động của hàm boolean
Sinh viên thực hiện nạp đoạn mã lên Kit DE2, thiết kế có thực hiện chính xác như
yêu cầu hay không? Ghi kết quả vào cột f Kit của Bảng 7.
(Chèn hình chụp minh chứng sinh viên đã nạp lên Kit hoạt động)
Trang 31Minh chứng cho trường hợp x=1, y=1, z=0, w= 0
Kiểm tra fkit
Trang 321 1 1 0 1 1 1