Giới thiệu về kiểm chứng thiết kế vi mạch, kiến thức cơ bản, kiến trúc và hoạt động của chương trình mô phỏng, phát triển phần mềm mô phỏng và đưa ra kết luận, hướng phát triển đề tài. Giới thiệu về kiểm chứng thiết kế vi mạch, kiến thức cơ bản, kiến trúc và hoạt động của chương trình mô phỏng, phát triển phần mềm mô phỏng và đưa ra kết luận, hướng phát triển đề tài.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI -*** - ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG Chuyên ngành: KỸ THUẬT TRUYỀN THÔNG LUẬN VĂN THẠC SĨ KỸ THUẬT KỸ THUẬT TRUYỀN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HOÀNG PHƯƠNG CHI Hà Nội – Năm 2013 KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG LỜI CAM ĐOAN Tôi xin cam đoan: Luận văn công trình nghiên cứu thực cá nhân, thực hướng dẫn khoa học Tiến sĩ Hoàng Phương Chi Các số liệu, kết luận nghiên cứu trình bày luận văn trung thực chưa cơng bố hình thức Tôi xin chịu trách nhiệm nghiên cứu Học viên: Đặng Quốc Đường ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG LỜI CẢM ƠN Lời đầu tiên, xin chân thành cảm ơn Tiến sĩ Hoàng Phương Chi, người trực tiếp hướng dẫn tơi hồn thành luận văn Với lời dẫn, tài liệu, tận tình hướng dẫn lời động viên cô giúp tơi vượt qua nhiều khó khăn q trình thực luận văn Tôi xin cảm ơn quý thầy, giảng dạy chương trình cao học thuộc trường Đại học Bách Khoa Hà Nội truyền dạy cho kiến thức quý báu, kiến thức hữu ích giúp tơi nhiều thực nghiên cứu Cuối xin gửi lời cảm ơn tới gia đình bạn bè động viên, giúp đỡ tạo điều kiện cho tơi hồn thành luận văn Tôi xin chân thành cảm ơn ! Học viên: Đặng Quốc Đường ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ A PHẦN MỞ ĐẦU B PHẦN NỘI DUNG 10 CHƯƠNG I: GIỚI THIỆU VỀ KIỂM CHỨNG THIẾT KẾ VI MẠCH 10 1.1 Khái niệm kiểm chứng thiết kế 10 1.2 Nguyên lý kiểm chứng 12 1.3 Phương pháp kiểm chứng 13 1.3.1 Kiểm chứng mô 13 1.3.2 Kiểm chứng hình thức 16 1.4 So sánh kiểm chứng mơ kiểm chứng hình thức 19 CHƯƠNG II: KIẾN THỨC CƠ BẢN 22 2.1 Các phép biểu diễn hàm Boolean 22 2.1.1 Những thuộc tính cần có phép biểu diễn 22 2.1.2 Các phép biểu diễn hàm boolean truyền thống 23 2.1.3 Đồ thị định nhị phân BDD 29 2.1.4 Biểu thức CNF toán SAT 33 2.2 Các mơ hình mạch logic 36 2.2.1 Mơ hình cấu trúc Gate net-list 36 2.2.2 Mơ hình cấu trúc AND/INV graph 37 CHƯƠNG III: KIẾN TRÚC VÀ HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH MƠ PHỎNG 41 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MƠ PHỎNG 3.1 Trình biên dịch 42 3.2 Các trình mơ 44 3.2.1 Trình mơ theo kiện 44 3.2.2 Trình mơ theo chu kỳ 49 3.2.3 Bộ mô trình mơ phần cứng 58 3.3 Phân loại so sánh trình mơ 62 3.3.1 Trình mơ trạng thái trạng thái 62 3.3.2 Trình mơ trễ khơng trễ đơn vị 63 3.3.3 Trình mơ theo kiện theo chu kỳ 64 3.4 Hoạt động ứng dụng trình mơ 65 3.4.1 Cấu trúc tập tin mô 65 3.4.2 Hiệu suất gỡ lỗi 66 3.4.3 Kiểm chứng thời gian 68 3.5 Phép biên dịch bước 69 CHƯƠNG IV: PHÁT TRIỂN PHẦN MỀM MÔ PHỎNG 72 4.1 Tổng quát phương pháp mơ có 72 4.1.1 Đặc điểm mô logic 72 4.1.2 Một số trình mơ logic 75 4.2 Phát triển module kiểm chứng dùng mô 77 4.2.1 Tổng quan khung chương trình kiểm chứng FCK-BK 77 4.2.2 Cấu trúc liệu biểu diễn mạch số FCK-BK 79 4.2.3 Phát triển thuật toán mô mạch số dựa FCK-BK 86 4.2.4 Tổng kết 100 CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 101 TÀI LIỆU THAM KHẢO 103 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Ý NGHĨA TỪ VIẾT TẮT AIG AND-INV Graph BDD Binary Decision Diagram CNF Conjunctive Normal Form DAC Directed Acyclic Graph DFS Depth First Search FF FRAIG Flip Flop Functionally Reduced AND-INV Graphs FSM Finite State Machine FPGA Field Programmable Gate Array IP Intellectual Property NDI No Directly Impact HDL Hardware Description Language PI Primary Input PLI Programming Language Interface PO Primary Output RO-BDD Reduced Ordered Binary Decision Diagram RTL Register Transfer Level SAT Satifiability SCC Strongly Connected Components SDF Standard Delay File SOP Sum Of Products TS Topological Sort VCD Value Change Dump ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG DANH MỤC BẢNG BIỂU Bảng 3.1: Ảnh hưởng tùy chọn trình mô 67 Bảng 4.1 : Các biến Private lớp Circuit 79 Bảng 4.2 : Các hàm lớp Circuit 80 Bảng 4.3: Các biến Private lớp Module 81 Bảng 4.4: Các biến Protected lớp Component 82 Bảng 4.5: Các hàm Proteced lớp Component 83 Bảng 4.6: Các biến Proteced lớp Function 83 Bảng 4.7: Các hàm lớp Function 84 Bảng 4.8: Các hàm chung lớp lớp Function 85 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MƠ PHỎNG DANH MỤC HÌNH VẼ Hình 1.1: Thang trừu tượng thiết kế 10 Hình 1.2: Mối quan hệ thiết kế kiểm chứng 11 Hình 1.3: Nguyên lý kiểm chứng thiết kế 13 Hình 1.4: Quá trình kiểm chứng dựa mô 16 Hình 1.5: Quy trình kiểm thử hình thức 19 Hình 1.6: Cách đánh giá không gian đầu 20 Hình 2.1: Mạng Boolean 26 Hình 2.2: Đồ hình định nhị phân BDD 31 Hình 2.3: Đồ thị định nhị phân với node gốc 31 Hình 2.4: BDD phân cấp 32 Hình 2.5: ROBDD 32 Hình 2.6: Nguyên tắc rút gọn BDD (a) Loại bỏ (b) Kết hợp 33 Hình 2.7: Biểu thức CNF cho mạch cổng 35 Hình 2.8: Ví dụ mạch Gate net-list 37 Hình 2.9: Hai AIGs khác cho hàm 38 Hình 3.1: Các thành phần trình mơ 41 Hình 3.2: Cấu trúc hệ thống mô biên dịch 44 Hình 3.3: Vịng quay thời gian 45 Hình 3.4: Phân cấp hợp lý cho phép đánh giá cổng 51 Hình 3.5: Sử dụng topological sort để thu thứ tự đánh giá phù hợp 52 Hình 3.6: Xác định SCC 54 Hình 3.7: Chia phạm vi đồng hồ mạch chứa nhiều đồng hồ 56 Hình 3.8: Cấu hình dạng lưới chiều (A) vành xuyến chiều (B) 59 Hình 3.9: Kiến trúc phần cứng trình mơ thơng dụng 60 Hình 3.10: Chuyển trạng thái mở rộng kết mơ hình trễ: 64 Hình 3.11: Cấu trúc thư mục mô 65 Hình 3.12: Tiến trình biên dịch bước 70 Hình 4.1: Các thư mục FCK 77 Hình 4.2: Các thư viện FCK 78 Hình 4.3: Sơ đồ mạch cần mô 89 Hình 4.4: Lưu đồ thuật toán xử lý Component 95 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG A PHẦN MỞ ĐẦU Để thiết kế mạch tích hợp có độ phức tạp lớn u cầu tiên nhà khoa học phải làm chủ công nghệ tảng tổng hợp, tối ưu kiểm tra tự động phần cứng số Ngày nay, mạch tích hợp có hàng triệu cổng logic, phần mềm tự động có khả tối ưu kiểm tra chúng Sử dụng phần mềm thiết kế, kiểm tra tự động cho phép giải hai vấn đề thiết kế chế tạo mạch tích hợp suất thiết kế chất lượng vi mạch Để thiết kế kiểm tra chất lượng vi mạch, hãng chế tạo lớn sử dụng công cụ thiết kế, kiểm tra phức tạp có giá thành cao, việc ảnh hưởng lớn đến chất lượng giá thành sản phẩm đầu Công nghệ sản xuất vi mạch phát triển nhanh chóng cho phép sản xuất vi mạch có độ tích hợp lớn lên đến hàng trăm triệu phần tử logic phiến silicon Tuy nhiên, giải pháp thiết kế kiểm tra chưa phát triển đầy đủ phép thiết kế, kiểm tra nhanh chóng, suất hệ thống phức tạp Hơn hệ thống điện tử không bao gồm chip phần cứng mà bao gồm phần mềm Điều làm độ phức tạp tốn kiểm tra hệ thống điện tử tăng cao vượt khả đáp ứng giải pháp thiết kế, kiểm tra Do đó, thuật tốn tự động tổng hợp, tối ưu kiểm tra vi mạch vấn đề nhận quan tâm đặc biệt cộng đồng nghiên cứu thiết kế vi mạch Phương pháp kiểm chứng sử dụng phổ biến kiểm chứng dùng mơ Trong q trình kiểm chứng dùng mô phỏng, thiết kế đặt giá thử (test bench), kích thích đầu vào áp dụng với giá thử, đầu thiết kế so sánh với đầu tham chiếu Một giá thử bao gồm mã hỗ trợ hoạt động thiết kế, tạo kích thích đầu vào so sánh đầu với đầu tham chiếu ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG Đây phương pháp kiểm chứng có tính linh động cao, đáp ứng với thiết kế phức tạp, có tính trực quan cao nên giúp tăng khả gỡ lỗi người dùng Từ điểm nêu trên, đề tài luận văn “Kiểm chứng vi mạch phương pháp mô phỏng” nhắm đến việc nghiên cứu sâu phương pháp kiểm chứng mô phỏng, cấu trúc nguyên tắc hoạt động chương trình mơ Từ đề xuất xây dựng thuật tốn mơ mạch số dựa khung chương trình mơ FCK-BK, thư viện mã nguồn mở C++ viết môi trường GNU LINUX Nội dung luận văn bao gồm chương sau: Chương I: Giới thiệu kiểm chứng thiết kế vi mạch Chương cho ta nhìn tổng quát kiểm chứng thiết kế vi mạch, phương pháp kiểm chứng nhìn nhận ưu, nhược điểm phương pháp Chương II: Kiến thức Đây chương tổng hợp tất kiến thức mạch số cần nắm vững trước sâu tìm hiểu phương pháp kiểm chứng mô Chương III: Kiến trúc hoạt động chương trình mơ Chương phân tích chi tiết kiến trúc nguyên lý hoạt động chương trình mơ phỏng, phân loại so sánh loại chương trình mơ khác nhau, để từ đưa định lựa chọn loại chương trình mô phù hợp cho trường hợp mô Chương IV: Phát triển phần mềm mô Chương sâu giới thiệu khung chương trình mơ FCK-BK, từ đề xuất phương pháp mơ mạch số dựa thư viện mã nguồn mở C++ FCK-BK Chương V: Tổng kết luận văn, đúc rút điểm đạt tồn cần nghiên cứu thêm hướng phát triển đề tài ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG FF1 A B FF2 s-a-1 Hình 4.3: Sơ đồ mạch cần mơ Khai báo thành phần mạch fanin.push_back("a"); fanin.push_back("1"); fanout="a_in"; cir.AddComponent(INPUT,fanin,fanout,modulename); //thêm thành phần INPUT có fanin a, fanout a_in vào module có tên “modulename” name.push_back("a_in"); fanin.clear(); fanin.push_back("PS_OUT1"); fanin.push_back("1"); fanout="PS_IN1"; cir.AddComponent(PS_INPUT,fanin,fanout,modulename); fanin.clear(); fanin.push_back("PS_OUT2"); fanin.push_back("1"); fanout="PS_IN2"; cir.AddComponent(PS_INPUT,fanin,fanout,modulename); fanin.clear(); 89 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG fanin.push_back("a_in"); fanin.push_back("PS_IN1"); fanout="and1"; cir.AddComponent(AND,fanin,fanout,modulename); fanin.clear(); fanin.push_back("and1"); fanin.push_back("1"); fanout="PS_OUT1"; cir.AddComponent(PS_OUTPUT,fanin,fanout,modulename); fanin.clear(); fanin.push_back("a_in"); fanin.push_back("1"); fanout="PS_OUT2"; cir.AddComponent(PS_OUTPUT,fanin,fanout,modulename); fanin.clear(); fanin.push_back("PS_IN2"); fanin.push_back("PS_IN1"); fanout="or1"; cir.AddComponent(OR,fanin,fanout,modulename); fanin.clear(); fanin.push_back("or1"); fanout="b"; cir.AddComponent(OUTPUT,fanin,fanout,modulename); Kết nối thành phần Flip-Flop cir.GetTopmodule()->GetComponent("PS_OUT1")- 90 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG >AddFanin(cir.GetTopmodule()->GetComponent("and1"),0); cir.GetTopmodule()->GetComponent("PS_IN1")>AddFanin(cir.GetTopmodule()->GetComponent("PS_OUT1"),0); cir.GetTopmodule()->GetComponent("PS_OUT2")>AddFanin(cir.GetTopmodule()->GetComponent("a_in"),0); cir.GetTopmodule()->GetComponent("PS_IN2")>AddFanin(cir.GetTopmodule()->GetComponent("PS_OUT2"),0); d) Xử lý file VCD Sau mô mạch, ta có file vcd Nhiệm vụ đặt đọc file vcd, lưu lại thông tin mạch Sau phần mềm mơ mạch tiến hành ghi file vcd Xây dựng cấu trúc liệu để lưu trữ file vcd Từ dạng cấu trúc file vcd trình bày trên, xây dựng cấu trúc liệu để lưu trữ file vcd sau: Các kiểu liệu định nghĩa: // kiểu giá trị để lưu giá trị biến(tương đương file vcd 0|1|x) enum lValue{FALSE=0,TRUE=1,DONTCARE=5}; // kiểu liệu đầu vào cấu trúc file vcd enum typevar {integer,parameter,real,reg,supply0,supply1,tri,triand,trior,trireg,tri0,tri1,wand,wire,wo r}; Các class lưu trữ thông tin: 91 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG //class lưu trữ thông số đầu vào class SignalValue { int size;// kích thước biến typevar type;// kiểu biến string signal_name;// tên đầu vào string vcd_name;// tên biến đầu vào map values; // lưu thời điểm giá trị biến vector time;// vector lưu thời điểm bắt đầu thay đổi giá trị biến public: …………… //phần hàm xử lý } //class chứa thơng tin tồn file vcd class vcd_file: public SignalValue { string mode;//chế độ string namemode;//tên chế độ string scale;// đơn vị thời gian int timescale;// nhân đơn vị vector signals; // vector signals mang tồn thơng tin biến public: ………… //phần hàm xử lý } 92 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG ]Xây dựng hàm để đọc ghi file vcd Các hàm class SignalValue o class SignalValue { ……… // phần khai báo biến public: // hàm đọc liệu biến đầu vào: kích thước _size, tên đầu vào _name, tên biến _vari, kiểu biến _type void in_name(int _size,string _name,string _vari,string _type); void out_name(int &_size,string &_name,string &_type); //hàm lấy thông tin biến string varia(); //hàm trả tên biến vcd_name string signal();//hàm trả tên tín hiệu signal_name void in_value(int _time,string _value,int k); //hàm đọc giá trị biến thứ k _value thời điểm _time int out_sizet() //hàm trả số lượng thời điểm biến { return time.size(); // trả kích thước vector time } int get_signal_value(int time1,vector &values1);//hàm đưa giá trị biến thời điểm time1 vào vector values1 void set_values(int time1,vector &values1);//hàm tạo giá trị biến thời điểm time1 từ vector values1 int out_time(int i); //hàm lấy giá trị thời điểm thứ i+1 biến string out_value(int k); //hàm lấy giá trị thời điểm time[k] biến friend ostream& operatorGetMOutputName(); 96 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG //lấy giá trị output fanin int I_index; for (k=0;kGetMOutputName()==I_name) {I_index=k;break;} for (k=0;kGetFanin()[0]>GetMOutputName(); int I_index; for (k=0;kGetMOutputName()==I_name) {I_index=k; break;} for (k=0;kGetMOutputName(); int I_index; for (k=0;kGetMOutputName()==I_name) {I_index=k;break;} for (k=0;kSimulate(inpVals,outVals); for (j=0;jwrite_VCD(); //khi có file đầu vào, tạo biến kiểu vcd_file để lưu thông tin cần thiết file vcd đầu vào vcd_file x; int i,cnt; cnt= x.read("original_in.vcd"); cnt=5; string I_name; cir.Print(); //in sơ đồ mạch theo chuẩn file dot mValueC.resize(cnt+1); for (int t=0; tGetComponent(i)>GetMType()==INPUT) { vector tg; ten=cir.GetModule(modulename)->GetComponent(i)>GetMOutputName(); x.get_signal_values(ten,t*5,tg); for (int j=0;jSimulateVCD(t, mValueC,inpVals); } //cuối ghi file vcd cir.GetModule(modulename)->write_VCD_2(cnt,mValueC); Hàm write_VCD write_VCD_2 có cách làm tương tự khác write_VCD chưa có giá trị biến 4.2.4 Tổng kết Ở ta tìm hiểu phương pháp mơ mạch logic bất kỳ, xử lý đọc, ghi liệu mô mạch với định dạng file vcd, lưu lại giá trị output tất component mạch Với ưu điểm nhỏ gọn đơn giản định dạng file vcd, nên sử dụng phổ biến nhiều cơng cụ mơ mạch Chính vậy, việc mơ mạch sử dụng liệu định dạng file vcd có khả tương thích tốt với phần mềm mô khác khả tái sử dụng mạch mô cao Tuy nhiên, phần code xử lý biến bít, chưa xử lý nhiều bít cách tạo mạch cịn thủ cơng 100 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Trong luận văn này, ta tìm hiểu thừa nhận vai trò to lớn phép kiểm chứng thiết kế Ngày nay, thiết kế mạch tích hợp ngày phức tạp, lên đến hàng triệu cổng logic, vai trị kiểm chứng thể rõ rệt thiết Phương pháp kiểm chứng sử dụng phổ biến kiểm chứng dùng mơ phỏng, theo đó, thiết kế mơ đặt vào module kiểm tra (test bench), kích thích đầu vào khác đặt vào test bench thu đáp ứng đầu thiết kế Vì kiểm chứng mơ có tính linh hoạt khả tái sử dụng cao Luận văn trình bày chi tiết cấu trúc nguyên lý hoạt động loại trình mơ khác Cho ta nhìn sâu loại trình mơ phỏng, so sánh ưu nhược loại để từ lựa chọn trình mơ phù hợp với ứng dụng cụ thể Trong phần mơ phỏng, ta tìm hiểu tổng quan khung chương trình kiểm chứng FCK-BK, thư viện mã nguồn mở LINUX, viết dựa ngơn ngữ C++, có tất hàm cần thiết để xây dựng, mô kiểm tra mạch Ta thực mô thiết kế mạch đơn giản, thực xử lý file vcd, tính tốn lưu giữ giá trị output component có thiết kế mạch vào file vcd, thành phần đầu vào sử dụng trình kiểm chứng mơ Tuy vậy, luận văn cịn nhiều thiếu sót, dừng lại việc mơ mạch đầu vào phục vụ kiểm chứng mô vi mạch, chưa thực việc kiểm chứng vi mạch Việc tạo mạch cịn thủ cơng xử lý biến bít Vì vậy, hướng phát 101 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG triển đề tài xây dựng mô công cụ tạo mạch tự động, với giao diện người dùng tiện dụng, xử lý biến đa bít, tiến tới thực việc kiểm chứng mạch mơ với mạch thuộc tính 102 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MÔ PHỎNG TÀI LIỆU THAM KHẢO Alan Mishchenko, Roland Jiang, Satrajit Chatterjee, Robert Brayton, FRAIGs: Functionally Reduced AND-INV Graphs, California Christoph Kern; Mark R Greenstreet (2000), Formal Verification in Hardware Design, New York Dr Nguyen Duc Minh (2009), System-on-Chip Protocol Compliance Verification Using Interval Property Checking Dr Nguyen Duc Minh (2003), Latch Mapping for Equivalence Checking Dr Nguyen Duc Minh, Tổng quan phương pháp kiểm chứng vi mạch M Gunes, M A Thornton, F Kocan, S A Szygenda (2003), A Survey and Comparison of Digital Logic Simulators, Texas Malay Ganai and Aarti Gupta (2007), SAT-Based Scalable Formal Verification Solutions, Springer, Massachusetts RÜDIGER EBENDT; GÖRSCHWIN FEY; ROLF DRECHSLER (2005), Advanced BDD Optimization, Bremen, Germany Paul Molitor, Janett Mohnke (2004), Equivalence Checking of Digital Circuits, Germany 10 William K Lam, Sun Microsystems (2005), Hardware Design Verification: Simulation and Formal Method-Based Approaches, Prentice Hall PTR, Massachusetts 103 ĐẶNG QUỐC ĐƯỜNG ... Nguyên lý kiểm chứng thiết kế (A) Kiểm chứng tương đương (B) Kiểm chứng thuộc tính (C) Mơ 1.3 Phương pháp kiểm chứng 1.3.1 Kiểm chứng mô Phương pháp kiểm chứng sử dụng phổ biến kiểm chứng dựa mô Trong... phương thức kiểm chứng 20 ĐẶNG QUỐC ĐƯỜNG KIỂM CHỨNG VI MẠCH BẰNG PHƯƠNG PHÁP MƠ PHỎNG hình thức khác so với kiểm chứng mô vi? ??c kiểm chứng nhóm điểm khơng gian thiết kế thay điểm Vì thế, để kiểm. .. văn ? ?Kiểm chứng vi mạch phương pháp mô phỏng? ?? nhắm đến vi? ??c nghiên cứu sâu phương pháp kiểm chứng mô phỏng, cấu trúc nguyên tắc hoạt động chương trình mơ Từ đề xuất xây dựng thuật tốn mơ mạch