Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
2,21 MB
Nội dung
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ BÁO CÁO THIẾT KẾ HỆ THỐNG SỐ Giảng viên hướng dẫn : GV: TS.Thầy Nguyễn Cao Quí Sinh viên thực : HỌ TÊN : Phan Quốc Việt MSSV: Cần Thơ, tháng 06 năm 2020 B1708919 NỘI DUNG A.PHẦN MODELSIM I II CỔNG AND CỔNG OR III CỔNG NAND IV CỔNG NOR V CỔNG NOT VI VII B CỔNG EX-OR CỔNG EX-NOR PHẦN QUARTUS I II MẠCH ĐẾM 16 BIT MẠCH CỘNG TRỪ NHỊ PHÂN III MẠCH CỘNG BCB IV CỔNG EX-OR V VI VII VIII CỔNG EX-NOR CỔNG NOR CỔNG NAND CỔNG OR A PHẦN MODELSIM I CỔNG AND Cổng AND là một cổng logic dùng để thực hàm AND hai hay nhiều biến Cổng AND có các ngõ vào tùy thuộc số biến ngõ a) Đặc tính tốn học Phương trình cổng AND có ngõ vào: Trong biểu thức dấu "." khơng phải tượng trưng cho phép tốn nhân bình thường mà tượng trưng cho phép tốn AND, bỏ dấu chấm "." Ngõ cổng AND mức cao (1) tất ngõ vào mức cao (1) Khi có ngõ vào mức thấp (0) ngõ mức thấp (0) bất chấp ngõ vào lại b) Bảng thật c) ký hiệu d) Phần code module LAB2 (Y,A_LED,B_LED,A,B); input A,B; output Y; output A_LED; output B_LED; assign Y=A&B; assign A_LED=A; assign B_LED=B; endmodule module LAB2_testbench(); reg A_tb; reg B_tb; wire Y_tb; LAB2 testbench( A(A_tb), B(B_tb), Y(Y_tb) ); initial begin #5 A_tb=1'b0; B_tb=1'b0; #5 A_tb=1'b0; B_tb=1'b1; #5 A_tb=1'b1; B_tb=1'b0; #5 A_tb=1'b1; B_tb=1'b1; end endmodule e) Kết mô II CỔNG OR Cổng OR dùng để thực hàm OR hay nhiều biến Cổng OR có số ngã vào tùy thuộc số biến ngã a) Đặc tính tốn học Có nhất đầu ngã vào đầu ngã Đầu có đầu vào 1, trường hợp khác đầu b) Bảng thật c) Ký hiệu d) Code module LAB2 (Y,A_LED,B_LED,A,B); input A,B; output Y; output A_LED; output B_LED; assign Y=A|B; assign A_LED=A; assign B_LED=B; endmodule module LAB2_testbench(); reg A_tb; reg B_tb; wire Y_tb; LAB2 testbench( A(A_tb), B(B_tb), Y(Y_tb) ); initial begin #5 A_tb=1'b0; B_tb=1'b0; #5 A_tb=1'b0; B_tb=1'b1; #5 A_tb=1'b1; B_tb=1'b0; #5 A_tb=1'b1; B_tb=1'b1; end endmodule e) Kết mô III CỔNG NAND Là kết hợp cổng AND cổng NOT a) Đặc tính tốn học Tương tự cổng AND, cổng NAND ta dùng ngã vào làm ngã kiểm soát Khi ngã kiểm soát = 1, cổng mở cho phép tín hiệu logic ngã vào lại qua cổng bị đảo, ngã kiểm sốt = 0, cổng đóng, ngã ln - Khi nối tất ngã vào cổng NAND lại với nhau, hoạt động cổng đảo b) Bảng thật c) Ký hiệu d) Code module LAB2 (C,Y,A_LED,B_LED,A,B); input A,B; output Y; output C; output A_LED; output B_LED; assign Y=A&B; assign A_LED=A; assign B_LED=B; assign C=~Y; endmodule module LAB2_testbench(); reg A_tb; reg B_tb; wire Y_tb; wire C_tb; LAB2 testbench( A(A_tb), B(B_tb), Y(Y_tb), C(C_tb)); initial begin #5 A_tb=1'b0; B_tb=1'b0; #5 A_tb=1'b0; B_tb=1'b1; #5 A_tb=1'b1; B_tb=1'b0; #5 A_tb=1'b1; B_tb=1'b1; end endmodule e) Kết mô IV CỔNG NOR Là kết hợp cổng OR cổng NOT a) Đặc tính tốn học Là kết hợp cổng OR cổng NOT Thực lúc chức OR NOT Có hay nhiều ngã vào có ngã b) Bảng thật c) Ký hiệu d) Code module LAB2 (C,Y,A_LED,B_LED,A,B); input A,B; output Y; output C; output A_LED; output B_LED; assign Y=A|B; assign A_LED=A; assign B_LED=B; assign C=~Y; endmodule module LAB2_testbench(); reg A_tb; reg B_tb; wire Y_tb; A_tb=1'b1; B_tb=1'b1; #5 A_tb=1'b0; B_tb=1'b0; end endmodule e) Kết mô B PHẦN QUARTUS MẠCH ĐẾM 16 BIT Mô tả hoạt động đếm lên đếm từ đến 15 Code module mux( sw_in,sw_dk,LED_in,LED_dk,LED_out,LED_out0); input wire[7:0] sw_in; input [2:0] sw_dk; output [7:0] LED_in; output [2:0] LED_dk; output reg [7:0] LED_out; output [6:0] LED_out0; integer num, kq=0,dv =0; SEG7_2(.num(dv),.seg7(LED_out0)); always@(sw_in) begin case(sw_dk) 3'h0: begin LED_out[0]=sw_in[0]; LED_out[1]=0; LED_out[2]=0; LED_out[3]=0; LED_out[4]=0; LED_out[5]=0; LED_out[6]=0; LED_out[7]=0; end 3'h1: begin LED_out[1]=sw_in[1]; LED_out[0]=0; LED_out[2]=0; LED_out[3]=0; LED_out[4]=0; LED_out[5]=0; LED_out[6]=0; LED_out[7]=0; end DEMO THỰC TẾ MẠCH CỔNG TRỪ SỐ NHỊ PHÂN Code : module machcong(a,b,ketqua,pheptinh_LED, sotran,enable,sohang1,sohang2,pheptinh); input [3:0] sohang1; input [3:0] sohang2; input pheptinh; input enable; output [3:0] a; output [3:0] b; output [3:0] ketqua; output sotran; output pheptinh_LED; reg [3:0] ketqua; reg sotran; always @(*) if(enable==0) ketqua=4'b0; else begin case (pheptinh) 0: {sotran,ketqua} = a+b; 1: {sotran,ketqua} = a-b; default: {sotran, ketqua} = 0; endcase end assign pheptinh_LED = pheptinh; assign a = sohang1; assign b =sohang2; endmodule DEMO THỰC TẾ MẠCH CỘNG TRỪ BCD CODE: module BCD(kq,a_LED,b_LED,kq_7g,a,b,enable, enable_LED); input [3:0] a; input [3:0] b; input enable; output [7:0] kq; output [3:0] a_LED ; output [3:0] b_LED; output [13:0] kq_7g; output enable_LED; reg [7:0] kq; always @(*) begin if(enable==0) kq=4'b0; else if ((a5'b01001) kq=kq+5'b00110; end else begin kq = 4'b0; end end LED7g00_18 i3( in7g(kq[4:0]), out7g(kq_7g) assign a_LED = a; assign b_LED = b; assign enable_LED=enable; endmodule module LED7g00_18(out7g,in7g); input [4:0] in7g; output [13:0] out7g; ); reg [13:0] out7g; always @(in7g) begin case (in7g) 5'b00000000: out7g = 14'b10000001000000; //00 5'b00000001: out7g = 14'b10000001111001; //01 5'b00000010: out7g = 14'b10000000100100; //02 5'b00000011: out7g = 14'b10000000110000; //03 5'b00000100: out7g = 14'b10000000011001; //04 5'b00000101: out7g = 14'b10000000010010; //05 5'b00000110: out7g = 14'b10000000000010; //06 5'b00000111: out7g = 14'b10000001111000; //07 5'b00001000: out7g = 14'b10000000000000; //08 5'b00001001: out7g = 14'b10000000010000; //09 5'b00010000: out7g = 14'b11110011000000; //10 5'b00010001: out7g = 14'b11110011111001; //11 5'b00010010: out7g = 14'b11110010100100; //12 5'b00010011: out7g = 14'b11110010110000; //13 5'b00010100: out7g = 14'b11110010011001; //14 5'b00010101: out7g = 14'b11110010010010; //15 5'b00010110: out7g = 14'b11110010000010; //16 5'b00010111: out7g = 14'b11110011111000; //17 5'b00011000: out7g = 14'b11110010000000; //18 default: out7g = 14'b10000001000000;//00 endcase end endmodule DEMO THỰC TẾ CỔNG EX- OR CODE module LAB2 (G,F,E,C,Y,A_LED,B_LED,A,B); input A,B; output Y; output C; output E; output F; output G; output A_LED; output B_LED; assign A_LED=A; assign B_LED=B; assign C=!A; assign E=!B; assign F=(!A&B); assign G=(!B&A); assign Y=(G|F); endmodule DEMO THỰC TẾ 5.CỔNG EX-NOR Code module LAB2 (Z,G,F,E,C,Y,A_LED,B_LED,A,B); input A,B; output Y; output C; output E; output F; output G; output Z; output A_LED; output B_LED; assign A_LED=A; assign B_LED=B; assign C=!A; assign E=!B; assign F=(!A&B); assign G=(!B&A); assign Y=(G|F); assign Z=!Y; endmodule DEMO THỰC TẾ 6.CỔNG NOR CODE module LAB2 (C,Y,A_LED,B_LED,A,B); input A,B; output Y; output C; output A_LED; output B_LED; assign Y=A|B; assign A_LED=A; assign B_LED=B; assign C=~Y; endmodule DEMO THỰC TẾ CỔNG NAND DEMO module LAB2 (C,Y,A_LED,B_LED,A,B); input A,B; output Y; output C; output A_LED; output B_LED; assign Y=A&B; assign A_LED=A; assign B_LED=B; assign C=~Y; endmodule DEMO THỰC TẾ CỔNG OR CODE module LAB2 (Y,A_LED,B_LED,A,B); input A,B; output Y; output A_LED; output B_LED; assign Y=A|B; assign A_LED=A; assign B_LED=B; endmodule DEMO THỰC TẾ