Đồ án môn học ít nhất sinh viên điện tử phải gặp phải cho nên hôm nay mình có đồ án môn học về đồ án thiết kế mạch số sử dụng ngôn ngữ verilog VHDL để lập trình viết các cổng logic và cũng như mình đã thiết kế lại con ic 74ls90 mà thầy đã giao.
Đồ Án Thiết Kế Mạch Số - Nhóm MỤC LỤC Chương I: Phân Tích Hoạt Động IC 74ls90 IC 74ls90 Gồm Được Cấu Tạo Hình Thành Như Sau: 2 Chức Năng Hoạt Động Của 74ls90 Chương II: Nguyên Lý Làm Việc Của IC 74ls90 Nguyên Lý Đáp Ứng Của Từng Chân Vào Ra Của Ic Quan Hệ Logic Giữa Các Chân Ra Với Chân Vào Các Trường Hợp Đặc Biệt Cần Chú Ý Như Sau Chương III: Mã Nguồn Thực Thi Mã Chương Trình Verilog Mã Chương Trình Testbench Hiển Thị RTL Sơ Đồ Nối Chương IV: Kiểm Thử Testbench Và Kết Luận Giản Đồ Thị Testbench Kết Luận Đồ Án Thiết Kế Mạch Số - Nhóm Chương I: Phân Tích Hoạt Động IC 74ls90 IC 74ls90 gồm cấu tạo hình thành sau: - Sơ đồ chân hồn thiện IC gồm có 14 chân Bảng 1: Sơ đồ chân Số Chân Tên Chân Chức Năng Chân số CP_1 Xung clock Chân số MR_1 Reset Chân số MR_2 Reset Chân số & Chân số 13 NC Khơng có chức Chân số VCC Nguồn 5V Chân số MS_1 Set Chân số MS_2 Set Chân số Q_2 Ngõ Q_2 Chân số Q_1 Ngõ Q_1 Chân số 10 GND Nguồn Đất Chân số 11 Q_3 Ngõ Q_3 Chân số 12 Q_0 Ngõ Q_0 Chân số 14 CP_0 Xung clock - Cấu tạo IC74LS90 gồm bit đếm Flip Flop JK, cổng NAND Cổng NAND gồm chân số 2, 3, 6, dùng để đóng vai trị chức SET RESET bit đếm Fip Flop JK bit cho xung Clock CP_0 chân số 14 bit chân số đóng vai trị CP_1 Chức Năng Hoạt Động Của 74ls90 - 74ls90 đóng vài trị đếm BCD từ đến Đồ Án Thiết Kế Mạch Số - Nhóm - Cách hoạt động chân RESET & SET INPUT OUTPUT có bảng trạng thái sau: Bảng 2: bảng trạng thái hoạt động chân R/S RESET/SET INPUTS MR_1 MR_2 MS_1 H H L H H X X X H L X L L X X X L L OUTPUTS MS2 X L H X L X Q_0 L L H Q_1 Q_2 L L L L L L COUNT COUNT COUNT Q_3 L L H Ký hiệu: - H: High Voltage Level L: Low Voltage Level X: Don’t Care Sơ đồ trạng thái IC qua đếm BCD hiển thị giá trị sau: Bảng 3: bảng trạng thái hoạt động BCD COUNT OUTPUT Q_0 L H L H L H L H L H Q_1 L L H H L L H H L L Ký hiệu: H: High Voltage Level L: Low Voltage Level X: Don’t Care Q_2 L L L L H H H H L L Q_3 L L L L L L L L H H Đồ Án Thiết Kế Mạch Số - Nhóm Chương II: Nguyên Lý Làm Việc Của IC 74ls90 Nguyên lý đáp ứng chân vào ic - Nguyên lý hoạt động chân ic vào gồm có sau: o Chân số & đóng vai trị chức Reset ic hoạt động chân cho mức cao ic bị reset trở 0, cịn chân mà có chân mức thấp ic hoạt động bình thường Bảng trạng thái chân số & 3: Bảng trạng thái reset MR_1 0 1 MR_2 1 Q_out Hoạt động Hoạt động Hoạt động Ngừng mức o Chân số & đóng vai trị chức Set có nghĩa chân mà cho mức cao ngõ ic bật số 9, chân mà có chân mức thấp ic hoạt động bình thường Bảng trạng thái chân số & 7: Bảng trạng thái Set MR_1 0 1 MR_2 1 Q_out Hoạt động Hoạt động Hoạt động Ngừng mức số o Chân số & 14 đóng vai trị xung clock có nghĩa ic có chức đếm Nhưng khối FF_JK Q_0 khối đếm bit FF sau Q_1, Q_2, Q_3 khối đếm bit Khi chân 14 cấp xung đầu Q_0 hoạt động bình thường với chế độ đếm 1bit Chân số nối với chân Q_0 chân 14 cấp xung ngõ Q_0 đếm đến Q_3 có nghĩa đếm 4bit o Chân số 8, 9, 11 12 đóng vai trị ngõ ic có nghĩa cấp xung clock vào chân bắt đầu đếm từ đến Quan hệ logic chân với chân vào Đồ Án Thiết Kế Mạch Số - Nhóm - Dữ liệu đầu Q_out phụ thuộc đầu vào cấp vào Khi xung CP_0 cấp Q_0 đếm CP_1 nối với Q_0 lúc FF đếm đến đếm đến trở Đối với chân MS_1 & MS_2 set người ta thay vào cổng NAND tương tự MR_1 & MR_2 Sơ đồ cấu trúc 74ls90 tương tự hình Hình 1: Sơ đồ cấu trúc tự thiết kế 74ls90 Các trường hợp đặc biệt cần ý sau - Khi ghép nối với IC ý tránh trường hợp mạch thực chạy giá trị Q_0 muốn đếm tới phải nối CP_1 với Q_0 lại với Và muốn IC hoạt động để chân số 2, 3, với mức thấp bảng trạng thái để tránh tình trạng IC bị reset set Muốn IC đếm nhanh hay chậm phụ thuộc xung clock đầu vào chân 14 tần số cao hay thấp Đồ Án Thiết Kế Mạch Số - Nhóm Chương III: Mã Nguồn Thực Thi Mã Chương Trình Verilog module ic7490(Ms1, Ms2, Mr1, Mr2, Clk1, Q); input Ms1, Ms2, Mr1, Mr2, Clk1; output [3:0]Q; wire a, b, c, x, y, CLR, SET; parameter g = 1'b1; assign a = Q[0]; assign b = Q[1]; assign c = Q[2]; assign x = ~Q[3] | ~Q[1]; assign SET = ~(Ms1 & Ms2); assign CLR = ~(Mr1 & Mr2) ^ ~x; ff_jk ff_jk ff_jk ff_jk h1(.clk(~Clk1), cd(~CLR), sd(SET), j(g), k(g), q(Q[0])); h2(.clk(~a), cd(~CLR), j(g), k(g), q(Q[1])); h3(.clk(~b), cd(~CLR), j(g), k(g), q(Q[2])); h4(.clk(~c), cd(~CLR), sd(SET), j(g), k(g), q(Q[3])); endmodule //chuong trinh flip flop jk module ff_jk (clk, j, k, q, cd, sd); input clk, j, k, cd, sd; output reg q; initial begin q =1'b1; end always @ (posedge clk or negedge cd or negedge sd)begin if (cd == 1'b0) q = 1'b0; else if(sd == 1'b0) q = 1'b1; else case({j , k}) 2'b00: q=q; 2'b01: q=0; 2'b10: q=1; 2'b11: q=~q; default: q