1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Tiểu luận) báo cáo thiết kế hệ thống số phần modelsim phần quartus

32 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 2,22 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 : Sinh viên thực : GV: TS.Thầy Nguyễn Cao Quí HỌ TÊN : Phan Quốc Việt MSSV: Cần Thơ, tháng 06 năm 2020 h 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 h 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 "." 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, đơi bỏ ln 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; h 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 h 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 h 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; h #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 sốt Khi ngã kiểm soát = 1, cổng mở cho phép tín hiệu logic ngã vào cịn lại qua cổng bị đảo, ngã kiểm soá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 h 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 h 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 h 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; h A_tb=1'b1; B_tb=1'b1; #5 A_tb=1'b0; B_tb=1'b0; end endmodule e) Kết mô h 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; h 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Ế h 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; h 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Ế h 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; h ); 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Ế h 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Ế h 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 h 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; h 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; h 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; h output B_LED; assign Y=A|B; assign A_LED=A; assign B_LED=B; endmodule DEMO THỰC TẾ h h h

Ngày đăng: 10/05/2023, 15:16

w