Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 107 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
107
Dung lượng
3,8 MB
Nội dung
ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA PHẠM QUỐC CƯỜNG NGHIÊN CỨU VÀ XÂY DỰNG PHƯƠNG PHÁP HIỆN THỰC VI MẠCH BẤT ĐỒNG BỘ TRÊN FPGA Chuyên ngành: Khoa học Máy tính LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, Tháng 07 năm 2009 CƠNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học: TS Đinh Đức Anh Vũ Cán chấm nhận xét 1: TS Trần Ngọc Thịnh Cán chấm nhận xét 2: PGS TS Nguyễn Hữu Phương Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 18 tháng năm 2009 ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc -oOo Tp HCM, ngày 03 tháng năm 2009 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Phạm Quốc Cường Giới tính : Nam / Nữ Ngày, tháng, năm sinh: 28/03/1985 Nơi sinh : Tiền Giang Chuyên ngành: Khoa học Máy tính Khoá (Năm trúng tuyển) : 2007 1- TÊN ĐỀ TÀI: Nghiên cứu xây dựng phương pháp thực vi mạch bất đồng FPGA 2- NHIỆM VỤ LUẬN VĂN - Nghiên cứu phương pháp thực vi mạch bất đồng FPGA có - Nghiên cứu xây dựng phương pháp thực vi mạch bất đồng phù hợp với FPGA có Việt Nam - Xây dựng công cụ hỗ trợ thực - Kiểm thử phương pháp công cụ 3- NGÀY GIAO NHIỆM VỤ: 02/2009 4- NGÀY HOÀN THÀNH NHIỆM VỤ: 07/2009 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN (Ghi đầy đủ học hàm, học vị ): T.S.Đinh Đức Anh Vũ Nội dung đề cương Luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) T.S Đinh Đức Anh Vũ T.S Đinh Đức Anh Vũ LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ kết tham khảo từ cơng trình khác ghi rõ luận văn, công việc trình bày luận văn tơi thực chưa có phần nội dung luận văn nộp để lấy cấp trường trường khác Ngày tháng năm 2008 Phạm Quốc Cường Học viên: Phạm Quốc Cường i LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành đến TS Đinh Đức Anh Vũ, người Thầy tận tình hướng dẫn tơi suốt trình thực luận văn cao học tạo điều kiện để tơi hồn thành luận văn Để hồn thành luận văn này, tơi nhận giúp đỡ thầy cô anh chị em bạn bè khoa Khoa học Kỹ thuật Máy tính nói chung, mơn Kỹ thuật Máy tính nói riêng Tơi xin chân thành cảm ơn Và xin gửi lời cảm ơn sâu sắc đến gia đình, người thân động viên tạo điều kiện tốt để tơi tiếp tục theo đuổi việc học tập nghiên cứu Học viên: Phạm Quốc Cường ii TÓM TẮT LUẬN VĂN Ngày thiết kế bất đồng ngày đầu tư phát triển nhờ vào ưu so với thiết kế đồng loại bỏ vấn đề lệch xung đồng hồ tiêu hao lượng Qua nghiên cứu giới, có nhiều phương pháp luận giới thiệu để thiết kế cách hiệu hệ thống bất đồng lớn Mặc dù mạch bất đồng thực cơng nghệ VLSI thủ công (Full-custom VLSI) thời gian chế tạo cơng nghệ q dài để thực việc làm mẫu cho thiết kế Trong đó, FPGA chiếm ưu việc làm phương tiện hiệu để làm mẫu nhanh chóng cung cấp khả thử nghiệm cho mạch số với chi phí kỹ thuật thấp Tuy nhiên, FPGA lại khơng hỗ trợ mạch bất đồng thiếu phần tử đóng vai trị quan trọng mạch bất đồng ví dụ cổng Muller Trong nghiên cứu này, đề nghị phương pháp để làm mẫu mạch bất đồng hệ thống kết hợp đồng bất đồng FPGA dạng LUT Các kỹ thuật phát triển nghiên cứu dựa việc xây dựng phần tử đóng vai trò quan trọng mạch bất đồng Các ràng buộc thời gian và/hoặc ràng buộc vị trí sinh tự động để ánh xạ phần tử chuyên biệt cho mạch bất đồng vào khối luận lý khả cấu hình FPGA thỏa mãn ràng buộc mạch bất đồng Các chip FPGA dạng LUT nhà cung cấp Altera, Xilinx,… dùng để thực mạch bất đồng theo phương pháp đề nghị nghiên cứu Cuối cùng, giới thiệu số mạch bất đồng thực với họ Xilinx FPGA Spartan-3 Học viên: Phạm Quốc Cường iii ABSTRACT Nowadays, asynchronous design is more and more predominante over synchronous design because of its advanges such as no clock skew, lower power, etc As evidenced by many articles, methodologies have developed to efficiently design large asynchronous systems While asynchronous circuits can be built in custom VLSI chips, their fabricated-time is too long to allow rapid prototyping FPGA device is a dominant implementation medium for digital circuits Unfortunately, they not support asynchronous circuits because of the lack of asynchronous circuit elements such as Muller gates, etc In this paper, new efficient approaches are proposed to prototype asynchronous or mixed synchronous/asynchronous circuits on Look-Up Table-based (LUT) FPGA rapidly The developed techniques are based on building of elements which play an important role in asynchronous circuits The hazard-free elements are predefined in libraries in HDL and EDIF format Timing and/or area constraints for place&route tool are automatically generated to map the asynchronous elements on suitable FPGA’s logic blocks Several FPGA devices such as Altera, Xilinx and Actel could be used as target for the implementation For the purpose of demonstration, some asynchronous circuits are implemented with Xilinx Spartan FPGA family Học viên: Phạm Quốc Cường iv MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii TÓM TẮT LUẬN VĂN iii ABSTRACT iv MỤC LỤC v DANH MỤC HÌNH .viii DANH MỤC BẢNG xi Chƣơng GIỚI THIỆU ĐỀ TÀI 1.1 Lý thực đề tài 1.2 Mục tiêu giới hạn đề tài 1.3 Tóm lược kết đạt 1.4 Bố cục luận văn Chƣơng CƠ SỞ LÝ THUYẾT 2.1 Tổng quan mạch Bất đồng 2.1.1 Giới thiệu mạch bất đồng 2.1.2 Phân biệt khái niệm mạch đồng bất đồng 2.1.3 Ưu nhược điểm thiết kế bất đồng 2.1.4 Những vấn đề cần quan tâm thiết kế bất đồng 2.1.5 Các mơ hình bất đồng 2.1.6 Các giao thức bắt tay 10 2.1.7 Hiện thực giao thức bắt tay dùng cổng Muller 13 2.2 Tổng quan FPGA 14 2.2.1 Khái niệm FPGA 14 2.2.2 Kiến trúc FPGA 15 2.2.3 Những ứng dụng FPGA 17 2.2.4 Thiết kế ứng dụng FPGA 18 2.2.5 Các loại FPGA 20 2.3 Kết chương 25 Chƣơng NHỮNG CƠNG TRÌNH LIÊN QUAN ĐẾN HIỆN THỰC MẠCH BẤT ĐỒNG BỘ TRÊN FPGA 26 3.1 Những khó khăn thực mạch bất đồng FPGA 26 Học viên: Phạm Quốc Cường v 3.1.1 Nhiễu 26 3.1.2 Ràng buộc thời gian 27 3.1.3 Các phần tử giữ trạng thái (Stateholding Elements) 27 3.2 Các nghiên cứu công bố 28 3.2.1 Xây dựng mạch bất đồng FPGA có 28 3.2.2 Xây dựng kiến trúc FPGA phù hợp cho thiết kế bất đồng 32 3.3 Đánh giá đóng góp nghiên cứu 38 3.4 Kết chương 39 Chƣơng HIỆN THỰC CÁC CỔNG MULLER KHÔNG NHIỄU TRÊN FPGA 40 4.1 Các loại nhiễu 40 4.1.1 Nhiễu hàm tổ hợp (combinational functional hazard) 41 4.1.2 Nhiễu luận lý tổ hợp (combinational logic hazard) 42 4.2 Xây dựng cổng Muller không nhiễu FPGA dạng LUT 44 4.2.1 Phân tích nhiễu mạch thực LUT 44 4.2.2 Xây dựng cổng Muller không nhiễu FPGA dạng LUT 45 4.3 Hiện thực thư viện cổng Muller không nhiễu Xilinx CLB 46 4.3.1 Xây dựng cổng Muller không nhiễu dùng Xilinx LUT 46 4.3.2 Thư viện cổng Muller cho Xilinx Spartan-3 49 4.4 Kết chương 49 Chƣơng CÁC PHƢƠNG PHÁP HIỆN THỰC MẠCH BẤT ĐỒNG BỘ TRÊN FPGA DẠNG LUT 51 5.1 Phương pháp dùng quy trình thiết kế FPGA truyền thống kết hợp với thư viện cổng Muller mức HDL 51 5.1.1 Tóm tắt quy trình thiết kế FPGA truyền thống 51 5.1.2 Hiện thực mạch bất đồng dựa quy trình thiết kế FPGA truyền thống52 5.2 Phương pháp kết hợp PAiD phần mềm hỗ trợ thực FPGA 55 5.2.1 Phương pháp PAiD 55 5.2.2 Hiện thực mạch bất đồng FPGA kết hợp PAiD phần mềm hỗ trợ thiết kế FPGA 56 5.3 So sánh hai phương pháp thực nghiên cứu 59 5.4 Các ví dụ thực mạch bất đồng 60 5.4.1 Mạch đệm 60 5.4.2 Mạch So sánh 61 5.4.3 Mạch chọn lựa 62 Học viên: Phạm Quốc Cường vi 5.5 Kết chương 64 Chƣơng KẾT LUẬN 65 6.1 Tổng kết 65 6.2 Những đóng góp nghiên cứu 65 6.3 Những vấn đề cần phải hoàn thiện hướng phát triển 66 6.4 Cơng trình cơng bố liên quan 67 Tài liệu tham khảo 68 Phụ Lục A Cấu trúc liệu miêu tả mạch bất đồng 70 Phụ Lục B Electronic Design Interchange Format 76 B.1 Cấu trúc tổng quát EDIF 76 B.2 Ví dụ tập tin netlist 79 Phụ Lục C Thƣ viện cổng MULLER không nhiễu 86 C.1 MULLER2 86 C.2 MULLER2R 87 C.3 MULLER3 88 C.4 MULER3R 89 C.5 MULLER4 90 Học viên: Phạm Quốc Cường vii Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA phải khai báo phát biểu instance trước Trong trường hợp kết nối ngõ vào Cell định nghĩa khơng cần xuất phát biểu instanceRef B.2 Ví dụ tập tin netlist Trên chúng tơi vừa trình bày tóm tắt cấu trúc tập tin EDIF với góc nhìn netlist dùng để giao tiếp cơng cụ hỗ trợ thực FPGA Phần nội dung tập tin EDIF biểu diễn netlist mạch đệm trình bày phần 5.4.1 Tập tin EDIF sinh tự động phần mềm hỗ trợ thiết kế FPGA ISE 10.1 Xilinx (edif Buffer (edifVersion 0) (edifLevel 0) (keywordMap (keywordLevel 0)) (status (written (timestamp 2009 17 15 56 23) (program "Xilinx ngc2edif" (version "K.31")) (author "Xilinx Inc ") (comment synthesis tools") "This EDIF netlist (comment design component") "for determining is to be used resource/timing within estimates supported of (comment "represented by this netlist.") (comment "Command line: Buffer.ngc Buffer.edif "))) (external UNISIMS (edifLevel 0) (technology (numberDefinition)) (cell LUT3 (cellType GENERIC) (view view_1 (viewType NETLIST) (interface (port I0 (direction INPUT) ) (port I1 (direction INPUT) ) (port I2 HVTH: Phạm Quốc Cường 79 the Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA (direction INPUT) ) (port O (direction OUTPUT) ) (property TYPE (string "LUT3") (owner "Xilinx")) (property XSTLIB (boolean (true)) (owner "Xilinx")) (property INIT (string "17") (owner "Xilinx")) ) ) ) (cell LUT2 (cellType GENERIC) (view view_1 (viewType NETLIST) (interface (port I0 (direction INPUT) ) (port I1 (direction INPUT) ) (port O (direction OUTPUT) ) (property TYPE (string "LUT2") (owner "Xilinx")) (property XSTLIB (boolean (true)) (owner "Xilinx")) (property INIT (string "1") (owner "Xilinx")) ) ) ) (cell IBUF (cellType GENERIC) (view view_1 (viewType NETLIST) (interface (port I (direction INPUT) ) (port O HVTH: Phạm Quốc Cường 80 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA (direction OUTPUT) ) (property TYPE (string "IBUF") (owner "Xilinx")) (property XSTLIB (boolean (true)) (owner "Xilinx")) ) ) ) (cell OBUF (cellType GENERIC) (view view_1 (viewType NETLIST) (interface (port I (direction INPUT) ) (port O (direction OUTPUT) ) (property TYPE (string "OBUF") (owner "Xilinx")) (property XSTLIB (boolean (true)) (owner "Xilinx")) ) ) ) ) (library Buffer_lib (edifLevel 0) (technology (numberDefinition)) (cell Buffer (cellType GENERIC) (view view_1 (viewType NETLIST) (interface (port I_0 (direction INPUT) ) (port I_1 (direction INPUT) ) (port I_ack HVTH: Phạm Quốc Cường 81 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA (direction OUTPUT) ) (port O_ack (direction INPUT) ) (port O_0 (direction OUTPUT) ) (port O_1 (direction OUTPUT) ) (designator "xc3s200-5-ft256") (property TYPE (string "Buffer") (owner "Xilinx")) (property NLW_UNIQUE_ID (integer 0) (owner "Xilinx")) (property NLW_MACRO_TAG (integer 0) (owner "Xilinx")) (property NLW_MACRO_ALIAS (string "Buffer_Buffer") (owner "Xilinx")) ) (contents (instance (rename M2_LUT3_inst "M2/LUT3_inst") (viewRef view_1 (cellRef LUT3 (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) (property INIT (string "17") (owner "Xilinx")) ) (instance (rename M1_LUT3_inst "M1/LUT3_inst") (viewRef view_1 (cellRef LUT3 (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) (property INIT (string "17") (owner "Xilinx")) ) (instance I_ack1 (viewRef view_1 (cellRef LUT2 (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) (property INIT (string "1") (owner "Xilinx")) ) (instance (rename I_0_IBUF_renamed_0 "I_0_IBUF") (viewRef view_1 (cellRef IBUF (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) ) (instance (rename I_1_IBUF_renamed_1 "I_1_IBUF") (viewRef view_1 (cellRef IBUF (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) HVTH: Phạm Quốc Cường 82 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA ) (instance (rename O_ack_IBUF_renamed_2 "O_ack_IBUF") (viewRef view_1 (cellRef IBUF (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) ) (instance (rename I_ack_OBUF_renamed_3 "I_ack_OBUF") (viewRef view_1 (cellRef OBUF (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) ) (instance (rename O_0_OBUF_renamed_4 "O_0_OBUF") (viewRef view_1 (cellRef OBUF (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) ) (instance (rename O_1_OBUF_renamed_5 "O_1_OBUF") (viewRef view_1 (cellRef OBUF (libraryRef UNISIMS))) (property XSTLIB (boolean (true)) (owner "Xilinx")) ) (net I_0 (joined (portRef I_0) (portRef I (instanceRef I_0_IBUF_renamed_0)) ) ) (net I_0_IBUF (joined (portRef I0 (instanceRef M1_LUT3_inst)) (portRef O (instanceRef I_0_IBUF_renamed_0)) ) ) (net I_1 (joined (portRef I_1) (portRef I (instanceRef I_1_IBUF_renamed_1)) ) ) (net I_1_IBUF (joined (portRef I0 (instanceRef M2_LUT3_inst)) (portRef O (instanceRef I_1_IBUF_renamed_1)) ) HVTH: Phạm Quốc Cường 83 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA ) (net I_ack (joined (portRef I_ack) (portRef O (instanceRef I_ack_OBUF_renamed_3)) ) ) (net I_ack_OBUF (joined (portRef O (instanceRef I_ack1)) (portRef I (instanceRef I_ack_OBUF_renamed_3)) ) ) (net O_0 (joined (portRef O_0) (portRef O (instanceRef O_0_OBUF_renamed_4)) ) ) (net O_0_OBUF (joined (portRef O (instanceRef M1_LUT3_inst)) (portRef I2 (instanceRef M1_LUT3_inst)) (portRef I0 (instanceRef I_ack1)) (portRef I (instanceRef O_0_OBUF_renamed_4)) ) ) (net O_1 (joined (portRef O_1) (portRef O (instanceRef O_1_OBUF_renamed_5)) ) ) (net O_1_OBUF (joined (portRef O (instanceRef M2_LUT3_inst)) (portRef I2 (instanceRef M2_LUT3_inst)) (portRef I1 (instanceRef I_ack1)) (portRef I (instanceRef O_1_OBUF_renamed_5)) ) HVTH: Phạm Quốc Cường 84 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA ) (net O_ack (joined (portRef O_ack) (portRef I (instanceRef O_ack_IBUF_renamed_2)) ) ) (net O_ack_IBUF (joined (portRef I1 (instanceRef M2_LUT3_inst)) (portRef I1 (instanceRef M1_LUT3_inst)) (portRef O (instanceRef O_ack_IBUF_renamed_2)) ) ) ) ) ) ) (design Buffer (cellRef Buffer (libraryRef Buffer_lib) ) ) ) HVTH: Phạm Quốc Cường 85 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA Phụ Lục C Thƣ viện cổng MULLER không nhiễu Nghiên cứu xây dựng hai thư viện cổng Muller không nhiễu hai mức khác HDL EDIF Phần phụ lục trình bày thiết kế dạng LUT đặc tả Verilog-HDL cổng Muller C.1 MULLER2 Cổng Muller hai ngõ nhập có thiết kế LUT Hình C.1 Hình C.1 Thiết kế LUT cổng Muller ngõ nhập Đặc tả Verilog-HDL cổng Muller nhập thư viện cổng Muller không nhiễu mức HDL thiết kế Hình C.1 sau module MULLER2( input A, input B, output S ); LUT3 #(.INIT(8'hE8) // Specify LUT Contents ) LUT3_inst ( O(S), // LUT general output I0(A), // LUT input I0 I1(B), // LUT input I1 I2(S) // LUT input I2 ); endmodule Cổng Muller ngõ nhập sử dụng thiết kế mạch với Verilog-HDL mơ hình cấu trúc có mẫu (template) sau MULLER2 Muller_inst ( A(A) //Muller input B(B) //Muller input HVTH: Phạm Quốc Cường 86 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA S(S) //Muller output ); C.2 MULLER2R MULLER2R cổng Muller ngõ nhập có tín hiệu Reset Khi tín hiệu Reset tích cực ngõ cổng Muller tương ứng mức Hình C.2 biểu diễn thiết kế LUT cổng MULLER2R Hình C.2 Thiết kế LUT cổng Muller ngõ nhập với tín hiệu Reset Đặc tả Verilog-HDL cổng Muller ngõ nhập có Reset thư viện cổng Muller khơng nhiễu mức HDL thiết kế Hình C.2 sau module MULLER2R( input A, input B, input R, output S ); LUT4 #(.INIT(16'hE800) // Specify LUT Contents ) LUT3_inst ( O(S), // LUT general output I0(A), // LUT input I1(B), // LUT input I2(S), // LUT input I3(R) ); endmodule Cổng Muller ngõ nhập có tín hiệu Reset sử dụng thiết kế mạch với Verilog-HDL mô hình cấu trúc có mẫu sau MULLER2R Muller2R_inst (.A(A), B(B), HVTH: Phạm Quốc Cường 87 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA R(Reset), S(S) ); C.3 MULLER3 Cổng Muller ngõ nhập có giá trị ngõ ngõ vào Ngõ cổng Muller đồng thời ngõ vào Trong trường hợp khác, ngõ MULLER3 giữ nguyên giá trị cũ Đặc tả cổng Muller ngõ nhập biểu diễn Hình C.3 Hình C.3 Thiết kế LUT cổng Muller ngõ nhập Đặc tả Verilog-HDL cổng Muller ngõ nhập thư viện cổng Muller không nhiễu mức HDL thiết kế Hình C.3 sau module MULLER3( input A, input B, input C, output S ); LUT4 #(.INIT(16'hFE80) // Specify LUT Contents ) LUT3_inst ( O(S), // LUT general output I0(A), // LUT input I1(B), // LUT input I2(C), // LUT input I3(S) HVTH: Phạm Quốc Cường 88 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA ); endmodule Cổng Muller ngõ nhập sử dụng thiết kế mạch với Verilog-HDL mơ hình cấu trúc có mẫu sau MULLER3 Muller3_inst (.A(A), B(B), C(C), S(S) ); C.4 MULER3R MULLER3R cổng Muller ngõ nhập có tín hiệu Reset Khi tín hiệu Reset tích cực ngõ cổng Muller tương ứng mức Hình C.4 biểu diễn thiết kế LUT cổng MULLER3R Hình C.4 Thiết kế LUT cổng Muller ngõ nhập có tín hiệu Reset Đặc tả Verilog-HDL cổng Muller ngõ nhập có tín hiệu Reset thư viện cổng Muller không nhiễu mức HDL thiết kế Hình C.4 sau MULLER3R( input A, input B, input C, input R, output S HVTH: Phạm Quốc Cường 89 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA ); LUT4 #(.INIT(16'hEAA8)) LUT4_inst( I0(S), I1(C), I2(B), I3(A), O(w1) ); LUT2 #(.INIT(4'h8)) LUT2_Inst( I0(R), I1(w1), O(S) ); endmodule Cổng Muller ngõ nhập với tín hiệu Reset sử dụng thiết kế mạch với Verilog-HDL mơ hình cấu trúc có mẫu sau MULLER3R Muller3R_Inst( A(A), B(B), C(C), R(Reset), S(S) ); C.5 MULLER4 Cổng Muller ngõ nhập có giá trị ngõ ba ngõ vào Ngõ cổng Muller đồng thời ba ngõ vào Trong trường hợp khác, ngõ MULLER4 giữ nguyên giá trị cũ Hình C.5 Thiết kế LUT cổng Muller ngõ nhập HVTH: Phạm Quốc Cường 90 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA Đặc tả cổng Muller ngõ nhập biểu diễn Hình C.5 Khác với cổng Muller khác thư viện, cổng Muller ngõ nhập ngồi việc sử dụng LUT cịn sử dụng thêm Multiplexer Trong Xilinx Spartan-3, Multiplexer có tên MUXF5 thiết kế sẵn Slice Xilinx CLB Đặc tả Verilog-HDL cổng Muller ngõ nhập thư viện cổng Muller khơng nhiễu mức HDL thiết kế Hình C.5 sau module MULLER4( input A, input B, input C, input D, output S ); LUT4 #( INIT(16'h8000) // Specify LUT Contents ) LUT4_OR ( O(w1), // LUT general output I0(A), // LUT input I1(B), // LUT input I2(C), // LUT input I3(D) // LUT input ); LUT4 #( INIT(16'hFFFE) // Specify LUT Contents ) LUT4_AND ( O(w2), // LUT general output I0(A), // LUT input I1(B), // LUT input I2(C), // LUT input I3(D) // LUT input ); MUXF5 MUXF5_inst ( O(S), // Output of MUX to general routing I0(w1), // Input (tie directly to the output of LUT4) I1(w2), // Input (tie directoy to the output of LUT4) S(S) // Input select to MUX HVTH: Phạm Quốc Cường 91 Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA ); endmodule Cổng Muller ngõ nhập sử dụng thiết kế mạch với Verilog-HDL mơ hình cấu trúc có mẫu sau MULLER4 Muller4_Inst( A(A), B(B), C(C), D(D), S(S) ); HVTH: Phạm Quốc Cường 92 Lý lịch trích ngang Họ tên: Phạm Quốc Cường Ngày tháng năm sinh: 28 tháng năm 1985 Nơi sinh: Tiền Giang Địa liên lạc: Khoa Khoa học Kỹ thuật Máy tính, Đại học Bách Khoa TPHCM, 268 Lý Thường Kiệt, Quận 10, TPHCM Quá trình Đào tạo: - Từ tháng năm 2002 đến tháng năm 2007: học Đại học Đại học Bách Khoa – Đại học Quốc Gia TPHCM, ngành Công nghệ thông tin - Từ tháng năm 2009 đến tháng năm 2009: học Cao học Đại học Bách Khoa – Đại học Quốc Gia TPHCM, ngành Khoa học Máy tính Q trình cơng tác: - Từ tháng năm 2007 đến nay: Cán giảng dạy Bộ mơn Kỹ thuật Máy tính, Khoa KH&KTMT, Đại học Bách Khoa – Đại học Quốc Gia TPHCM ... TÀI: Nghiên cứu xây dựng phương pháp thực vi mạch bất đồng FPGA 2- NHIỆM VỤ LUẬN VĂN - Nghiên cứu phương pháp thực vi mạch bất đồng FPGA có - Nghiên cứu xây dựng phương pháp thực vi mạch bất đồng. .. thực mạch bất đồng FPGA HVTH: Phạm Quốc Cường Chương Giới thiệu đề tài Hình 1.1 mơ tả mơ hình hệ thống để thực mạch bất đồng FPGA Nghiên cứu xây dựng phương pháp thực mạch bất đồng FPGA Đầu vào... HIỆN THỰC MẠCH BẤT ĐỒNG BỘ TRÊN FPGA 3.1 Những khó khăn thực mạch bất đồng FPGA Mặc dù thiết kế bất đồng ngày phổ biến, thiết bị để thực mạch hệ thống bất đồng chưa đáp ứng yêu cầu thiết kế bất