có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật và code đầy đủ cho mạch THIẾT kế mô PHỎNG MẠCH CỘNG 4BITS và XUẤT RA mã LED 7 đoạn (verilog và VHDL có code ) ...............................................................................................................................................................
ĐỒ ÁN THIẾT KẾ MÔ PHỎNG MẠCH CỘNG 4BITS VÀ XUẤT RA MÃ LED ĐOẠN MỤC LỤC DANH MỤC HÌNH VẼ CHƯƠNG 1: 1.1: Tổng quan nguyên lý thiết kế Chip…………………………………… 2.1:Thiế kế Top-down……………………………………………………………10 2.2:Thiết kế Bottom-down………………………….………………………… 11 CHƯƠNG II 2.1: cổng logic Full adder bit……………………………………… 17 GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI THIẾT KẾ BỘ NHÂN BIT Giới thiệu đề tài nguyên lý thiết kế Chip 1.1 Giới thiệu đề tài đồ án Trong việc tính toán máy tính, phép tính thường sử dụng phép tính cộng ,trừ, nhân, chia Trong báo cáo ta tìm hiểu phân tích phép nhân số bit từ thiết kế mạch nhân bit Cộng hai số nhị phân tương tự thập phân,tuy nhiên hệ nhị phân có hai số nên việc cộng tương đối đơn giản 1.2 Nguyên lý thiết kế Chip GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT Nguyên lý thiết kế chip ICs số thường dựa trình “Basic platform development flow” Hình 1.1: Tổng quan nguyên lý thiết kế Chip Khi thực thiết kế ta cần phân tích, xác định đặc tính kỹ thuật IC số cách tìm hiểu xu hướng thị trường, yêu cầu khách hàng Từ đưa đặc trưng (spec) hệ thống, thông số kỹ thuật: hoạt động hệ thống (performance), tiêu hao lượng (power dissipation), độ tin cậy, giá cả… Trong trình thiết kế ta cần quan tâm: – Tối ưu hóa hệ thống: rút gọn phần dư, mô tả không cần thiết – Cần phân tích để tránh tình huống, yếu tố làm thay đổi hệ thống Ví dụ: cấu trúc khối, phân tầng thiết kế,chiều dài dây nối, … làm thay đổi tần số hoạt động tối đa, công suất tiêu tán chip… Về mặt kỹ thuật ta cần quan tâm đến spec, thông số kỹ thuật khác: tần số hoạt động, kích thước, công nghệ chế tạo Các hệ thống lớn thường xây dựng lên cách kế thừa hệ thống nhỏ có sẵn Kết hợp phát triển hệ thống nhỏ để có hệ thống lớn Tập hợp hệ thống nhỏ lưu giữ thư viện Đây trình hình thành thư viện thiết kế (các library cell) Ngoài library cell, cần có thêm thư viện công nghệ, luật, quy tắc thiết kế,… Sơ đồ khối mạch thiết kế GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT Hình 2.1 Sơ đồ khối cộng bits xuất led đoạn CHƯƠNG II: TÌM HIỂU NGÔN NGỮ VERILOG/ VHDL Một số khái niệm Verilog Verilog HDL ngôn ngữ mô tả phần cứng đa mục đích dễ học dễ sử dụng Nó có cấu trúc đơn giản tương tự ngôn ngữ lập trình C Đối với người thiết kế có kinh nghiệm lập trình với ngôn ngữ C thấy dễ dàng học Verilog Verilog cho phép người thiết kế mô tả thiết kế nhiều cấp độ: mô tả hành vi, mô tả luồng liệu, mô tả mức cổng, ghi kết hợp mức Do người thiết kế cần học ngôn ngữ cho nhiều loại thiết kế khác Hầu hết công cụ tổng hợp hỗ trợ ngôn ngữ Verilog Do đó, Verilog ngày trở nên phổ biến lựa chọn nhà thiết kế Tất nhà sản xuất cung cấp thư viện VerilogHDL để tổng hợp cho thiết kế Nên việc sử dụng Verilog cho phép lựa chọn nhà sản xuất Phương pháp thiết kế Để dễ cho việc thiết kế người ta thường chia nhỏ công việc để giải Sau chia nhỏ công việc cho thiết kế người ta thực thiết kế theo phương pháp từ xuống (top-down) từ lên (bottom-up) Top-down phương pháp thiết kế thực thiết kế khối top trước thiết kế khối chính, cuối thiết kế khối cell (leaf cell) Top-down GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT design đòi hỏi người thiết kế cẩn thận tuân thủ chặt nguyên tắc thiết kế Các module gọi chưa thiết kế Hình 2.1 Mô tả phương pháp thiết kế Top-down Bottom-up phương pháp thiết kế mà ta xây dựng khối nhỏ trước Sau khối thiết kế lớn xây dựng từ khối thiết kế nhỏ Từng bước xây dựng lên khối cao xây dựng lên top module Hình 2.2 Mô tả việc thiết kế Bottom-up Các mức mô tả Logic Trong Verilog ta có nhiều cấp độ mô tả: Mô tả mức trạng thái (hành vi) Mô tả mức luồng liệu Mô tả mức cổng Mô tả mức Switch GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT Verilog cho phép người thiết kế kết hợp bốn mức mô tả module Trong Verilog khối mô tả gọi module Trong module ta gọi thể module thấp Verilog HDL :Là ngôn ngữ để thiết kế hệ thống có CPU.Các khối (module) chức HLD thực song song, tùy vào người lập trình Cấu trúc viết chương trình module 4.1 Cấu trúc 1) Module Verilog đưa khái niệm module Module khối xây dựng Verilog Một module thành phần tập hợp khối thiết kế nhỏ Một module phải diễn tả, thể giao tiếp bên nội dung bên khối Nội dung mô tả mức cấu trúc, luồng liệu hay mô tả hành vi Hình 3.1: Ví dụ module đơn giản Trên module nhỏ mô tả gồm phép tính logic đơn giản GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT Hình 3.2: Cấu trúc module Thông thường ta có cấu trúc module bao gồm phần sau: -Khai báo, định nghĩa module -Khai báo port xuất, nhập tín hiệu bên module -Mô tả chức module -Kết thúc module Phân tích ví dụ Trong module port xuất nhập phải khai báo từ khóa: “input”, “output” Các tín hiệu bên module khai báo dạng “Register” “Net” Các “Register” dùng cho tín hiệu có khả tự lưu trữ liệu GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT Các “Net” Verilog diễn tả kết nối vật lý phần cứng Nó dùng để nối module hay cổng lại với nhau, thân tự lưu trữ giá trị Một “wire” dùng chỗ module, gán bởi: • Ngõ module, cổng • Gán với phép gán liên tục • Các phép gán liên tục khai báo lệnh “assign” Tất phép gán liên tục thực đồng thời 4.2 Các qui ước Verilog hỗ trợ cho người thiết kế mô tả hệ thống nhiều cấp độ khác Mức mô tả hành vi: Là cấp độ mô tả trừu tượng cao Module thực điều kiện mong muốn thiết kế mặt logic Mà không quan tâm đến việc thực mặt phần cứng Do cấp độ thiết kế Verilog giống với ngôn ngữ C Mức mô tả luồng liệu: Ở mức người thiết kế phải rõ luồng liệu Người thiết kế phải hiểu luồng liệu ghi, hiểu liệu xử lý thiết kế Mức mô tả mức cổng: Module thể giới hạn mức cổng kết nối cổng Mức mô tả Switch: Là mức mô tả cấp thấp mà Verilog cung cấp Module thực dựa vào điều khoảng switch, storage nodes, kết nối chúng 4.3 Các phép tính Là phần dùng để mô tả phép toán Verilog, trước sâu vào phép toán ta cần nắm sơ toán hạng -Toán hạng Toán hạng là: Con số; net (bit phần bit lựa chọn); reg (bit phần bit chọn) Giá trị trả gọi function -Toán tử Các toán tử hỗ trợ Verilog miêu tả bảng sau -Các phép toán số học : + ; - ; * ; / -Các phép toán quan hệ (so sánh): < ; > ; =; == ; != -Các phép toán logic : ! && || -Toán tử rút gọn : & | ^ GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT -Kết hợp với toán tử not : ~& ~| ~^ Toán tử dịch – Dịch trái: > Toán tử điều kiện: Conditional_expression ? true_expression: false_expression CHƯƠNG III: TÌM HIỂU NGUYÊN LÝ HOẠT ĐỘNG CỦA BỘ CỘNG BITS XUẤT LED ĐOẠN >Giới thiệu chung Bộ “Cộng xuất led đoạn” cộng gồm luồng liệu bit cộng với FA(Full Adder) sau kết xuất với hiển thị led đoạn.Bài báo cáo tìm hiểu,đánh giá trình mộ thông qua phần mềm Qaurtus II Để hiển thị qua led đoạn cần thông qua khối sau: GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT -Khối cộng FA(Full Adder) -Khối “Bin-to_Dec” -Khối “MUX” -Khối “7seg Decoder” Sơ đồ giải thuật Nguyên lý hoạt động Hình 2.1: cổng logic Full adder bit GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 10 Sau tạo xong project ta tiếp tục chọn File-New chọn tạo file verilog để thiết kế Hình 3.7 Chọn Verilog HDL File Kế tiếp soạn thảo code cho khối FA chạy chương trình.Sau dịch thành công ta có mạch sau: GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 19 Hình 3.9 Viết code Full adder 1bit phần mềm quartus II Hình 3.10 Bộ Full adder bit Vậy ta thiết kế xong khối FA,kế đến ta thiết kế cổng AND kết nối mạch Code khối FA: GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 20 module light(A,B,Cin,S,Cout); input A,B; input Cin; output S,Cout; assign S=A^B^Cin ; assign Cout=(A&B)|(A&Cin)|(B&Cin); endmodule 2)Khối FA 4bits GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 21 Hình 3.11 Setup Khởi tạo project xong ta lại chọn file verilog để thiết kế Kế tiếp soạn thảo code chạy chương trình.Sau dịch thành công ta có mạch sau: Hình 3.12 Viết code Bộ cộng 4bits Code cộng 4bits: module FA4bit(A,B,Cin,S,Cout); input [3:0]A,B; input Cin; output [3:0]S; output Cout; wire C0,C1,C2; GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 22 light T1(A[0],B[0],Cin,S[0],C0); light T2(A[1],B[1],C0,S[1],C1); light T3(A[2],B[2],C1,S[2],C2); light T4(A[3],B[3],C2,S[3],Cout); endmodule 3) Khối bin-to-dec Code khối bin to dec 1: module btd1 (A,B); input [3:0]A; output [4:0]B; reg [4:0]B; always@(A) begin GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 23 if(A==0) B=5'B00000; else if(A==1) B=5'B00001; else if(A==2) B=5'B00010; else if(A==3) B=5'B00011; else if(A==4) B=5'B00100; else if(A==5) B=5'B00101; else if(A==6) B=5'B00110; else if(A==7) B=5'B00111; else if(A==8) B=5'B01000; else if(A==9) B=5'B01001; else if(A==10) B=5'B10000; else if(A==11) B=5'B10001; else if(A==12) B=5'B10010; else if(A==13) B=5'B10011; else if(A==14) B=5'B10100; else B=5'B10101; end endmodule 4) Khối bin to dec GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 24 Code khối bin to dec 2: module btd2 (A,B); input [1:0]A; output [3:0]B; reg [3:0]B; always@(A) begin if(A==0) B=4'B0110; else if(A==1) B=4'B0111; else if(A==2) B=4'B1000; else B=4'B1001; end endmodule 5) Khối Mux GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 25 Code khối mux module mux21(a,b,c,y); input [3:0]a,b; input c; output [3:0]y; reg [3:0]y; always@(c) begin if(c==0) y=a; else y=b; end endmodule 6) Khối mux GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 26 Code khối mux module mux21b(A,B,C,Y); input [6:0]A,B; input C; output [6:0]Y; reg [6:0]Y; always@(C) begin if(C==0) Y=A; else Y=B; end endmodule 7) Khối seg Decoder GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 27 Code khối seg Decoder module led7 (A,B); input [3:0]A; output [6:0]B; reg [6:0]B; always@(A) begin if(A==0) B=7'B1111110; else if(A==1) B=7'B0110000; else if(A==2) B=7'B1101101; else if(A==3) B=7'B1111001; else if(A==4) B=7'B0110011; else if(A==5) B=7'B1011011; else if(A==6) B=7'B1011111; else if(A==7) B=7'B1110000; else if(A==8) B=7'B1111111; GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 28 else B=7'B1111011; end endmodule GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 29 CHƯƠNG V: MÔ PHỎNG MẠCH Phần sau tạo project xong ta add vào project thiết kế trước đó: ADDER,Mux… Sau thêm project ta tạo file Verilog để soạn thảo chương trình.Tiếp theo ta nhấn để biên dịch chương trình GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 30 Code tổng dây module congxuatled7(A,B,cin,led71,led72); input [3:0] A,B; input cin; output [6:0] led71,led72; wire [3:0] S,M1,H; wire [4:0] M; wire C,x; FA4bit FA(A,B,cin,S,C); btd1 bd1(S,M); btd2 bd2(S[1:0],M1); mux21 mux1(M[3:0],M1,C,H); led7 led(H,led71); assign x=C|M[4]; GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 31 mux21b mux2(7'b1111110,7'b0110000,x,led72); endmodule Kết mô Quartus II Vậy kết mô chạy hoàn toàn xác,đúng theo yêu cầu thiết kế lý thuyết đặt GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 32 KẾT LUẬN -Quá trình mô đáp ứng yêu cầu ban đầu đặt ra,kết hiển thị xác,không có sai sót -Tuy nhiên mạch thiết kế có nhiều nhược điểm như: + Code dài,chưa tối ưu +Do khối led HEX hiển thị giá trị mà luồng liệu đầu vào khối ADDER tới bit tức giá trị cộng tối đa 30 khối led hiển thị tối đa 19.Vượt giá trị khối led hiển thị sai -Ứng dụng: dùng để tạo chip,vi mạch,có chức cộng GVHD: TS.VÕ PHÚ THOẠI – SVTH: THÁI MINH NHỰT 33 ... NGUYÊN LÝ HOẠT ĐỘNG CỦA BỘ CỘNG BITS XUẤT LED ĐOẠN >Giới thiệu chung Bộ Cộng xuất led đoạn cộng gồm luồng liệu bit cộng với FA(Full Adder) sau kết xuất với hiển thị led đoạn. Bài báo cáo tìm hiểu,đánh... việc cho thiết kế người ta thực thiết kế theo phương pháp từ xuống (top-down) từ lên (bottom-up) Top-down phương pháp thiết kế thực thiết kế khối top trước thiết kế khối chính, cuối thiết kế khối... 30 Code tổng dây module congxuatled7(A,B,cin ,led7 1 ,led7 2); input [3:0] A,B; input cin; output [6:0] led7 1 ,led7 2; wire [3:0] S,M1,H; wire [4:0] M; wire C,x; FA4bit FA(A,B,cin,S,C); btd1 bd1(S,M);