Xây dựng mô hình biểu diễn vi mạch loại bất đồng bộ

105 19 0
Xây dựng mô hình biểu diễn vi mạch loại bất đồng bộ

Đ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

ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ Xà HỘI CHỦ NGHIà VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc oOo Tp HCM, ngày 16 tháng 12 năm 2007 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Trần Hoàng Hà Giới tính: Nam ;/ Nữ … Ngày, tháng, năm sinh: 28/11/1982 Nơi sinh: Lâm Đồng Chuyên ngành: Khoa học Máy tính Khố: 2006 1- TÊN ĐỀ TÀI: XÂY DỰNG MƠ HÌNH BIỂU DIỄN VI MẠCH LOẠI BẤT ĐỒNG BỘ 2- NHIỆM VỤ LUẬN VĂN: xây dựng mơ hình biểu diễn trung gian vi mạch loại bất đồng thỏa mãn u cầu sau - Mơ hình biểu diễn trung gian biểu diễn vi mạch loại bất đồng - Mơ hình hỗ trợ q trình biến đổi từ đặc tả cấp cao vi mạch bất đồng sang mơ hình trung gian - Mơ hình hỗ trợ việc mô mức hành vi mạch bất đồng 3- NGÀY GIAO NHIỆM VỤ: 07/2007 4- NGÀY HOÀN THÀNH NHIỆM VỤ: 12/2007 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS Đ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 CHỦ NHIỆM BỘ MÔN (Họ tên chữ ký) QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) TS Đinh Đức Anh Vũ TS Đinh Đức Anh Vũ 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: PGS TS Nguyễn Hữu Phương Cán chấm nhận xét 2: TS Trần Văn Hoài 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 30 tháng 01 năm 2008 i 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 16 tháng 12 năm 2007 Trần Hồng Hà Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hồng Hà ii 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ành viên dự án PAiD, bạn bè người thân 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 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 Tôi trân trọng dành tặng thành luận văn cho Cha Mẹ Nhờ công lao dưỡng dục Người mà chúng có thành ngày hôm Con xin hứa tiếp tục cố gắng phấn đấu để vươn cao Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hồng Hà iii TĨM TẮT LUẬN VĂN Mạch bất đồng đưa vào năm 1946 không ý phát triển thời gian dài Gần mạch bất đồng giành nhiều quan tâm nhà khoa học công ty Tuy nhiên việc thiết kế sản xuất mạch bất đồng gặp nhiều khó khăn thiếu công cụ hỗ trợ thiết kế Mục tiêu đề tài xây dựng mơ hình biểu diễn trung gian nhằm hỗ trợ việc thiết kế mạch bất đồng Mơ hình đề nghị mơ hình Petri-DFG Việc biến đổi từ đặc tả cấp cao mạch bất đồng sang mơ hình Petri-DFG mơ vi mạch BĐB mức hành vi hỗ trợ mơ hình xây dựng Trong mơ hình Petri-DFG, mạng Petri sử dụng để biểu diễn dòng điều khiển DFG dùng để biểu diễn dòng liệu mạch bất đồng Với việc sử dụng mạng Petri, cấu trúc điều khiển tuần tự, song song lặp hỗ trợ Đồng thời, kênh truyền thông giao thức bắt tay biểu diễn cách đầy đủ Việc kết hợp mạng Petri DFG giúp mơ hình Petri-DFG biểu diễn vi mạch loại bất đồng cách hoàn chỉnh Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà iv ABSTRACT Asynchronous circuits design was invented in 1940s Because of the difficulties when design circuits using this approach compared with synchronous approach, there were not many applications using the asynchronous mechanism In recent years, synchronous designs faced with some obstacles for which the best solutions are asynchronous circuits Therefore, scientists and companies have paid more attention to asynchronous design However, it has not been mature due to the lack of EDA tools In order to encourage the research and development of asynchronous design, this work proposes an intermediate representation model called Petri-DFG model This model is created by the combination of Petri network and data flow graph (DFG) The control flows and the data flows of asynchronous circuits are denoted by Petri network and DFG respectively The Petri-DFG model can support basis control flow structures as sequence, parallel and iteration Moreover, communication channels and handshaking protocols of asynchronous circuits are completely described by this model The Petri-DFG model proves its worth to be used as the main intermediate model in PAiD project, which develops a design tool for asynchronous circuits In this project, the synthesis process of asynchronous circuits from high level specifications to gate netlist is conducted efficiently by using Petri-DFG model In addition, this model enhances the signal level simulation of asynchronous circuits As a sequence, Petri-DFG is a suitable intermediate representation model for asynchronous circuits design Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà v 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 vii Chương 1.1 1.2 1.3 1.4 GIỚI THIỆU ĐỀ TÀI .1 Lý thực đề tài Mục tiêu giới hạn đề tài Tóm lược kết đạt Cấu trúc luận văn Chương CƠ SỞ LÝ THUYẾT 2.1 Mạch bất đồng .6 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 Khái niệm mạch bất đồng Ưu điểm mạch bất đồng Khuyết điểm mạch bất đồng Phân loại mạch bất đồng 10 Các giao thức mã hóa liệu 12 Các giao thức bắt tay 15 2.2 Lý thuyết mạng Petri .18 2.2.1 Định nghĩa mạng Petri 18 2.2.2 Tính chất mạng Petri 20 2.3 Đồ thị dòng liệu DFG 23 Chương NHỮNG CÔNG TRÌNH LIÊN QUAN 25 3.1 Mạch bounded-delay .25 3.1.1 Fundamental mode mạch Huffman 25 3.1.2 Mạch Burst-mode 27 3.1.3 Một số vấn đề phương pháp bounded-delay 28 3.2 Mạch Delay-Insensitive 29 3.2.1 Mơ hình I-Net .30 3.2.2 Biên dịch dựa module .30 3.2.3 So sánh mạch DI mạch bounded-delay .31 3.3 Mạch Speed-Independent mạch Quasi-Delay-Insensitive 31 3.3.1 STG 32 3.3.2 Change diagrams 34 3.3.3 Communicating Processes Compilation .35 3.4 Vi mạch micropipeline 37 3.5 Đánh giá mơ hình biểu diễn mạch bất đồng 39 Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà vi Chương MƠ HÌNH BIỂU DIỄN TRUNG GIAN MẠCH BẤT ĐỒNG BỘ .42 4.1 Đặt vấn đề 42 4.2 Hướng giải 43 4.2.1 Mơ hình Petri-DFG 43 4.2.2 Biểu diễn phần tử mạch bất đồng mô hình Petri-DFG .44 4.3 Quá trình tổng hợp đặc tả Petri-DFG từ đặc tả hình thức .49 4.4 Tổng kết 50 Chương HIỆN THỰC .51 5.1 Hiện thực mơ hình Petri-DFG 51 5.2 Ứng dụng mô hình Petri-DFG dự án PAiD 53 5.3 Ví dụ q trình tổng hợp đặc tả Petri-DFG mạch bất đồng 54 5.3.1 Mạch đếm .54 5.3.2 Mạch trọng tài 56 5.4 Kết luận 59 Chương 6.1 6.2 6.3 6.4 KẾT LUẬN 60 Tổng kết 60 Những đóng góp đề tài .61 Hướng phát triển .61 Cơng trình công bố liên quan đến đề tài tác giả 61 TÀI LIỆU THAM KHẢO 62 PHỤ LỤC 64 Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hồng Hà vii DANH MỤC HÌNH Hình 1.1: Mơ hình hệ thống thiết kế mạch bất đồng Hình 2.1: Mơ hình mạch đồng Hình 2.2: Mơ hình mạch bất đồng Hình 2.3: Các loại hazard Hình 2.4: Mơ hình thời gian trễ 10 Hình 2.5: Các loại giao thức bắt tay 13 Hình 2.6: Giao thức bốn pha - mã hóa dây 14 Hình 2.7: Mơ hình Pipeline với giao thức bốn pha bundled-data 15 Hình 2.8: Mơ hình pipeline với giao thức hai pha bundled-data 16 Hình 2.9: Cấu trúc latch thực giao thức hai pha 17 Hình 2.10: Mạch bit, ba tầng sử dụng giao thức bốn pha dual-rail 17 Hình 2.11: Ví dụ mạng Petri 18 Hình 2.12: Quá trình chuyển trạng thái 20 Hình 2.13: Tính sống mạng Petri 21 Hình 2.14: Thuộc tính mạng Petri 23 Hình 2.15: Ví dụ DFG 24 Hình 3.1: Bảng dòng chảy máy trạng thái 26 Hình 3.2: Bìa Karnaugh mạch thực có hazard 26 Hình 3.3: Cấu trúc mạch Huffman 27 Hình 3.4: Mạch Burst-mode 28 Hình 3.5: Cấu trúc Join cấu trúc Merge I-net 30 Hình 3.6: Isochronic fork mạch delay-insensitive 32 Hình 3.7: So sánh STG/MG, mạng Petri State Graph 33 Hình 3.8: STG với đầu vào chọn đầu vào không chọn 33 Hình 3.9: CD sơ đồ trạng thái tương ứng 35 Hình 3.10: Ví dụ CSP 37 Hình 3.11: Cấu trúc vi mạch kiểu micropipeline 38 Hình 3.12: Cấu trúc micropipeline với xử lý ghi 38 Hình 4.1: Cấu trúc 44 Hình 4.2: Cấu trúc song song 45 Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà viii Hình 4.3: Cấu trúc rẽ nhánh 45 Hình 4.4: Cấu trúc lặp 46 Hình 4.5: Giao tiếp sử dụng kênh truyền thông giao thức 4-pha 47 Hình 4.6: Giao tiếp sử dụng kênh truyền thông giao thức 2-pha 47 Hình 4.7: Mơ hình mạch trọng tài 48 Hình 4.8: Biểu diễn mạch trọng tài mơ hình Petri-DFG 49 Hình 5.1: Mơ hình biểu diễn trung gian trình tổng hợp 54 Hình 5.2: Mạch đếm chưa tối ưu 55 Hình 5.3: Mạch đếm tối ưu 55 Hình 5.4: Mạch hàm main mạch trọng tài chưa tối ưu 56 Hình 5.5: Mạch hàm main mạch trọng tài tối ưu 57 Hình 5.6: Mạch Arbiter chưa tối ưu 58 Hình 5.7: Mạch Arbiter tối ưu 59 Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 81 pnPlaceGetPartnerId() int ƒ ƒ pnPlaceGetPartnerId (const pnPlace *place) Chức năng: Truy xuất giá trị PartnerId Place Mơ tả • ƒ Truy xuất giá trị PartnerId Place Kết trả • PartnerId Place *Place khác NULL Ngược lại trả pnPlaceGetPreTransList() List* pnPlaceGetPreTransList (const pnPlace *place) ƒ ƒ Chức năng: Truy xuất giá trị trỏ danh sách PreTrans Mơ tả ƒ • Truy xuất trỏ danh sách PreTrans Kết trả • Con trỏ PreTrans Place trỏ Place khác NULL Ngược lại trả NULL pnPlaceGetPosTransList() GList* pnPlaceGetPosTransList (const pnPlace *place); ƒ ƒ Chức năng: Truy xuất giá trị trỏ danh sách PosTrans Mơ tả ƒ • Truy xuất trỏ PosTrans Place Kết trả • Con trỏ PosTrans Place trỏ Place khác NULL Ngược lại trả NULL pnPlaceGetAction() dfg * pnPlaceGetAction (const pnPlace *place) ƒ ƒ Chức năng: Truy xuất trỏ action Mơ tả ƒ • Truy xuất trỏ action Place Kết trả • Con trỏ action Place trỏ Place khác NULL Ngược lại trả NULL pnPlaceGetDisplay() pnDisp* ƒ pnPlaceGetDisplay (const pnPlace *place); Chức năng: Truy xuất trỏ display Place Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 82 ƒ Mơ tả ƒ • Truy xuất giá trị trỏ display Place Kết trả • Con trỏ display Place trỏ Place khác NULL Ngược lại trả NULL pnPlaceRemoveAllLink() pnErr pnPlaceRemoveAllLink (pnPlace *place); ƒ ƒ Chức năng: Xóa tất liên kết đến Place Mơ tả ƒ • Xóa tất liên kết đến Place Kết trả • FAIL SUCCESSFUL trỏ Place NULL Ngược lại trả trả trả pnPlaceRemovePreLink() pnErr pnPlaceRemovePreLink (pnPlace *place); ƒ ƒ Chức năng: Xóa liên kết từ Trans đến Place Mơ tả ƒ • Xóa liên kết từ Trans đến Place Kết trả • FAIL SUCCESSFUL trỏ Place NULL Ngược lại pnPlaceRemovePosLink() pnErr pnPlaceRemovePosLink (pnPlace *place); ƒ ƒ Chức năng: Xóa liên kết từ Place đến Trans Mơ tả ƒ • Xóa liên kết từ Place đến Trans Kết trả • FAIL SUCCESSFUL trỏ Place NULL Ngược lại pnPlaceInsert() pnErr pnPlaceInsert (pnTrans *pre_trans, pnPlace *place, pnTrans *pos_trans); ƒ Chức năng: Chèn Place vào hai Trans Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 83 ƒ Mơ tả • ƒ Thêm liên kết từ pre_trans đến Place từ Place đến pos_trans Để chèn Place vào hai Trans Kết trả • FAIL SUCCESSFUL trỏ Place NULL Ngược lại trả pnPlaceInsertFromList() pnErr pnPlaceInsertFromList (GList *pre_trans_list, pnPlace *place, GList *pos_trans_list); ƒ Chức năng: Chèn Place vào hai danh sách pre pos Trans ƒ Mô tả • ƒ Thêm liên kết từ danh sách pre_trans đến Place từ Place đến danh sách pos_trans để chèn Place vào hai danh sách pre_trans_list pos_trans_list Kết trả • FAIL trỏ Place NULL Ngược lại trả SUCCESSFUL pnPlaceCopy() pnPlace* ƒ ƒ pnPlaceCopy (const pnPlace *place); Chức năng: Copy nội dung Place Mơ tả • ƒ Hàm tạo Place sau chép tồn nội dung Place cũ sang Place Hai Place có nội dung giống có Id khác Kết trả • NULL trỏ Place NULL hay gặp lỗi cấp phát nhớ Ngược lại trả trỏ đến Place tạo pnPlaceFree() pnErr pnPlaceFree ƒ ƒ Chức năng: Giải phóng nhớ cho Place Mơ tả ƒ • Giải phóng nhớ cho Place Kết trả • (pnPlace *place); SUCCESSFUL Luận văn cao học: Xây dựng mô hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 84 pnPlaceConcat() pnTree* pnPlaceConcat (pnPlace *place_1, pnPlace *place_2, int type); ƒ ƒ Chức năng: Nối hai Place để tạo thành Mơ tả • ƒ Hai Place ghép lại với với type (SEQUENCE) hay song song (PARALLEL) để tạo thành Hàm tự động sinh Trans Tree cần thiết cho việc ghép nối Kết trả • NULL trỏ place_1 place_2 NULL Ngược lại trả trỏ tạo pnPlaceFindPartner() pnPlace* pnPlaceFindPartner (pnTree *tree, const pnPlace *place); ƒ ƒ Chức năng: Tìm Partner Place Mơ tả • ƒ Hàm tìm Partner Place cho trỏ place việc tìm kiếm thực Tree trỏ tree Kết trả • NULL trỏ place tree NULL, từ Place đến hai Trans, hay khơng tìm Partner Place Ngược lại trả trỏ đến Partner Place pnPlaceFindPartnerUnlimit() pnPlace* ƒ ƒ pnPlaceFindPartnerUnlimit (const pnPlace *place); Chức năng: Tìm Partner Place Mơ tả • ƒ Hàm tìm Partner Place cho trỏ place Việc tìm kiếm kết thúc khơng tìm thấy Partner Place Kết trả • NULL trỏ place NULL, từ Place đến hai Trans, hay khơng tìm Partner Place Ngược lại trả trỏ đến Partner Place Cấu trúc pnTrans Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 85 Trans nút để thực việc kiểm tra điều kiện trỏ cond Đây trỏ kiểu dfg đến dfg mô tả cụ thể điều kiện Trans Điều kiện kiểm tra tất Place trước nằm danh sách pre_place_list thực xong Khi điều kiện kiểm tra tất Place sau thực struct pnTrans{ int id; int partner_id; GList *pre_place_list; GList *pos_place_list; dfg *cond; pnDisp *display; }; id Trans id partner_id id Trans đối ngẫu(1) (partner) với trans pre_place_list đến Trans trỏ GList đến dsách Place có cạnh nối pos_place_list nối đến trỏ GList đến dsách Place mà Trans trỏ dfg mô tả điều kiện Trans cond trỏ pnDisp chứa thông tin dùng để hiển thị Place display Khái niệm đối ngẫu (Partner) Trans (Place) x Trans (Place) y tất cạnh xuất phát từ Trans (Place) x đến Trans (Place) y Trans (Place) y Trans (Place) mà tất đường gặp Chú ý: ta tìm định nghĩa đối ngẫu cho Trans (Place) đến nhiều Place (Trans) pnTransCreateFull() pnTrans* pnTransCreateFull (int partner_id, GList* pre_place_list, GList *pos_place_list, dfg *cond); ƒ ƒ Chức năng: Tạo Trans với đầy đủ đối số Mơ tả • ƒ Tạo Trans với đầy đủ thơng số hình thức Id Trans sinh tự động Kết trả • Con trỏ đến Trans tạo Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 86 pnTransCreate() pnTrans* ƒ ƒ pnTransCreate (dfg *cond); Chức năng: Tạo Trans với trỏ đến action Mơ tả • ƒ Tạo Trans với trỏ đến cond, thông số khác gán cho giá trị mặc định Id Trans sinh tự động Kết trả • Con trỏ đến Trans tạo pnTransSetId() pnErr pnTransSetId (pnTrans *place, const int id); ƒ ƒ Chức năng: Thiết lập Id Trans Mơ tả • ƒ Thiết lập Id Trans Kết trả • FAIL Trans trỏ NULL hay Id trùng với Id Trans khác Ngược lại trả SUCCESSFUL pnTransSetPartnerId() pnErr pnTransSetPartnerId (pnTrans *trans, const int partner_id); ƒ ƒ Chức năng: Thiết lập PartnerId cho Trans Mô tả ƒ • Thiết lập PartnerId cho Trans Kết trả • FAIL Trans trỏ NULL hay PartnerId không Id Trans Ngược lại trả SUCCESSFUL pnTransSetPrePlaceList() pnErr pnTransSetPrePlaceList *pre_place_list); ƒ ƒ (pnTrans *trans, const GList Chức năng: Thiết lập danh sách Place đến Trans Mơ tả • ƒ Thiết lập trỏ danh sách Place đến Trans Hàm tự động giải phóng danh sách cũ Place đến Trans Kết trả • FAIL Trans trỏ NULL Ngược lại trả SUCCESSFUL Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 87 pnTransSetPosPlaceList() pnErr pnTransSetPosPlaceList (pnTrans *trans, const GList *pos_place_list); ƒ ƒ Chức năng: Thiết lập danh sách Place mà Trans đến Mơ tả • ƒ Thiết lập trỏ danh sách Place mà Trans đến Hàm tự động giải phóng danh sách cũ Place mà Trans đến Kết trả • FAIL Trans trỏ NULL Ngược lại trả SUCCESSFUL pnTransSetCond() pnErr pnTransSetAction (pnTrans *trans, const dfg *cond); ƒ ƒ Chức năng: Thiết lập cond cho Trans Mô tả • ƒ Thiết lập trỏ cond cho Trans Hàm tự động giải phóng trỏ cũ đến cond Kết trả • FAIL Trans trỏ NULL Ngược lại trả SUCCESSFUL pnTransSetDisplay() pnErr pnTransSetDisplay (pnTrans *trans, const pnDisp *display); ƒ ƒ Chức năng: Thiết lập trỏ đến display Mơ tả • ƒ Thiết lập trỏ display cho Trans Hàm tự động giải phóng trỏ cũ đến diplay Kết trả • FAIL Trans trỏ NULL Ngược lại trả SUCCESSFUL pnTransGetId() int pnTransGetId (const pnTrans *trans); ƒ ƒ Chức năng: Truy xuất giá trị Id Trans Mơ tả ƒ • Truy xuất giá trị Id Trans Kết trả Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 88 • Id Trans trỏ Trans khác NULL Ngược lại trả pnTransGetPartnerId() int pnTransGetPartnerId (const pnTrans *trans); ƒ ƒ Chức năng: Truy xuất giá trị PartnerId Trans Mơ tả ƒ • Truy xuất giá trị PartnerId Trans Kết trả • PartnerId Trans Trans khác NULL Ngược lại trả -1 pnTransGetPrePlaceList() List* pnTransGetPrePlaceList (const pnTrans *trans); ƒ ƒ Chức năng: Truy xuất giá trị trỏ danh sách PrePlace Mơ tả ƒ • Truy xuất trỏ danh sách PrePlace Kết trả • Con trỏ PrePlace Trans trỏ Trans khác NULL Ngược lại trả NULL pnTransGetPosPlaceList() GList* pnTransGetPosPlaceList (const pnTrans *trans); ƒ ƒ Chức năng: Truy xuất giá trị trỏ danh sách PosPlace Mơ tả ƒ • Truy xuất trỏ PosPlace Trans Kết trả • Con trỏ PosPlace Trans trỏ Trans khác NULL Ngược lại trả NULL pnTransGetCond() dfg * pnTransGetCond (const pnTrans *trans); ƒ ƒ Chức năng: Truy xuất trỏ cond Mơ tả ƒ • Truy xuất trỏ cond Trans Kết trả • Con trỏ cond Trans trỏ Trans khác NULL Ngược lại trả NULL Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 89 pnTransGetDisplay() pnDisp* pnTransGetDisplay (const pnTrans *trans); ƒ ƒ Chức năng: Truy xuất trỏ display Trans Mơ tả ƒ • Tru xuất giá trị trỏ display Trans Kết trả • Con trỏ display Trans trỏ Trans khác NULL Ngược lại trả NULL pnTransRemoveAllLink() pnErr pnTransRemoveAllLink (pnTrans *trans); ƒ ƒ Chức năng: Xóa tất liên kết đến Trans Mơ tả ƒ • Xóa tất liên kết đến Trans Kết trả • FAIL SUCCESSFUL trỏ Trans NULL Ngược lại trả trả trả pnTransRemovePreLink() pnErr pnTransRemovePreLink (pnTrans *trans); ƒ ƒ Chức năng: Xóa liên kết từ Place đến Trans Mơ tả ƒ • Xóa liên kết từ Place đến Trans Kết trả • FAIL SUCCESSFUL trỏ Place NULL Ngược lại pnTransRemovePosLink() pnErr pnTransRemovePosLink (pnPlace *trans); ƒ ƒ Chức năng: Xóa liên kết từ Trans đến Place Mô tả ƒ • Xóa liên kết từ Trans đến Place Kết trả • FAIL SUCCESSFUL trỏ Trans NULL Ngược lại pnTransInsert() pnErr pnTransInsert (pnTrans *pre_place, Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 90 pnTrans *trans, pnTrans *pos_place); ƒ ƒ Chức năng: Chèn Trans vào hai Place Mơ tả • ƒ Thêm liên kết từ pre_place đến Trans từ Trans đến pos_place Để chèn Trans vào hai Place Kết trả • FAIL trỏ Trans NULL Ngược lại trả SUCCESSFUL pnTransInsertFromList() pnErr pnTransInsertFromList (GList *pre_place_list, pnTrans *trans, GList *pos_place_list); ƒ ƒ Chức năng: Chèn Trans vào hai danh sách pre pos Place Mơ tả • ƒ Thêm liên kết từ danh sách pre_place đến Trans từ Trans đến danh sách pos_place Để chèn Trans vào hai danh sách pre_place_list pos_place_list Kết trả • FAIL trỏ Trans NULL Ngược lại trả SUCCESSFUL pnTransCopy() pnTrans* ƒ ƒ pnTransCopy (const pnTrans *trans); Chức năng: Copy nội dung Trans Mơ tả • ƒ Hàm tạo Trans sau chép tồn nội dung Trans cũ sang Trans Hai Trans có nội dung giống có Id khác Kết trả • NULL trỏ Trans NULL hay gặp lỗi cấp phát nhớ Ngược lại trả trỏ đến Trans tạo pnTransFree() pnErr ƒ ƒ pnTransFree (pnTrans *trans); Chức năng: Giải phóng nhớ cho Trans Mô tả Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hồng Hà 91 ƒ • Giải phóng nhớ cho Trans Kết trả • SUCCESSFUL pnTransFindPartner() pnTrans * pnTransFindPartner (pnTree *tree, const pnTrans *trans); ƒ ƒ Chức năng: Tìm Partner Trans Mơ tả • Định nghĩa: Partner Trans x Trans y tất cạnh xuất phát từ Trans x đến Trans y Trans y Trans mà tất đường gặp Chú ý: ta tìm Partner cho Trans có đến nhiều Place • ƒ Hàm tìm Partner Trans cho trỏ trans việc tìm kiếm thực Tree trỏ tree Kết trả • NULL trỏ trans tree NULL, từ Trans đến hai Trans, hay khơng tìm Partner Trans Ngược lại trả trỏ đến Partner Trans pnTransFindPartnerUnlimit() pnTrans * ƒ ƒ (const pnTrans *trans); Chức năng: Tìm Partner Trans Mơ tả • ƒ pnTransFindPartnerUnlimit Định nghĩa: Partner Trans x Trans y tất cạnh xuất phát từ Trans x đến Trans y Trans y Trans mà tất đường gặp Chú ý: ta tìm Partner cho Trans có đến nhiều Place • Hàm tìm Partner Trans cho trỏ trans Kết trả • NULL trỏ trans NULL, từ Trans đến hai Trans, hay khơng tìm Partner Trans Ngược lại trả trỏ đến Partner Trans Cấu trúc pnArc Cấu trúc Arc cấu trúc chứa thông tin cạnh Petri Net Các thông tin dùng trình mơ Petri Net Mỗi cạnh xác định hướng từ Place đến Trans (PLACE2TRANS) từ Trans đến Place (TRANS2PLACE), trỏ tới Place, trỏ tới Trans danh sách điểm dùng để vẽ cạnh hiển thị struct pnArc{ int direction; Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 92 pnPlace *arc_place; pnTrans *arc_trans; GList *point_list; }; direction chiều cạnh arc_place trỏ pnPlace trỏ đến Place Arc arc_trans trỏ pnTrans trỏ đến Trans Arc point_list trỏ GList trỏ đến danh sách điểm để vẽ nên cạnh pnArcPlaceTransCreate() pnErr pnArcPlaceTransCreate (pnPlace *place, pnTrans *trans); pnErr pnArcPlaceTransCreateFirst (pnPlace *place, pnTrans *trans); pnErr pnArcPlaceTransCreateLast (pnPlace *place, pnTrans *trans); pnErr pnArcPlaceTransCreatePos (pnPlace *place, pnTrans *trans, int pos); pnErr pnArcPlaceTransCreatePos2 (pnPlace *place, pnTrans *trans, int posPlace, int posTrans); ƒ ƒ Chức năng: Tạo cạnh từ Place đến Trans Mơ tả • • • Tạo cạnh từ Place xác định trỏ place đến Trans xác định trỏ trans Vị trí cạnh xác định tùy theo hàm mà ta gọi Hàm pnArcPlaceTransCreate thêm Trans vào cuối danh sách Trans mà Place nối đến (place->pos_trans_list) thêm Place vào cuối danh sách Place đến Trans (trans->pre_place_list) Hàm pnArcPlaceTransCreateFirst thêm Trans vào đầu danh sách Trans mà Place nối đến (place->pos_trans_list) Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 93 ƒ thêm Place vào cuối danh sách Place đến Trans (trans->pre_place_list) • Hàm pnArcPlaceTransCreateLast thêm Trans vào cuối danh sách Trans mà Place nối đến (place->pos_trans_list) thêm Place vào cuối danh sách Place đến Trans (trans->pre_place_list) • Hàm pnArcPlaceTransCreatePos thêm Trans vào vị trí pos danh sách Trans mà Place nối đến (place>pos_trans_list) thêm Place vào cuối danh sách Place đến Trans (trans->pre_place_list) • Hàm pnArcPlaceTransCreatePos2 thêm Trans vào vị trí posTrans danh sách Trans mà Place nối đến (place>pos_trans_list) thêm Place vào vị trí posPlace danh sách Place đến Trans (trans->pre_place_list) Kết trả • FAIL Trans hay Place trỏ NULL Ngược lại trả SUCCESSFUL pnArcTransPlaceCreate() pnErr pnArcTransPlaceCreate (pnTrans *trans, pnPlace *place); pnErr pnArcTransPlaceCreateFirst (pnTrans *trans, pnPlace *place); pnErr pnArcTransPlaceCreateLast (pnTrans *trans, pnPlace *place); pnErr pnArcTransPlaceCreatePos (pnTrans *trans, pnPlace *place, int pos); pnErr pnArcTransPlaceCreatePos2 (pnTrans *trans, pnPlace *place, int posTrans, int posPlace); ƒ ƒ Chức năng: Tạo cạnh từ Trans đến Place Mô tả • • Tạo xác tùy Hàm cạnh từ Trans xác định trỏ trans đến Place định trỏ place Vị trí cạnh xác định theo hàm mà ta gọi pnArcTransPlaceCreate thêm Place vào cuối danh sách Place mà Trans nối đến (trans->pos_place_list) thêm Luận văn cao học: Xây dựng mô hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà 94 ƒ Trans vào cuối danh sách Trans đến Place (place->pre_trans_list) • Hàm pnArcTransPlaceCreateFirst thêm Place vào đầu danh sách Place mà Trans nối đến (trans->pos_place_list) thêm Trans vào cuối danh sách Trans đến Place (place->pre_trans_list) • Hàm pnArcTransPlaceCreateLast thêm Place vào cuối danh sách Place mà Trans nối đến (trans->pos_place_list) thêm Trans vào cuối danh sách Trans đến Place (place->pre_trans_list) • Hàm pnArcTransPlaceCreatePos thêm Place vào vị trí pos danh sách Place mà Trans nối đến (trans>pos_place_list) thêm Trans vào cuối danh sách Trans đến Place (place->pre_trans_list) • Hàm pnArcTransPlaceCreatePos2 thêm Place vào vị trí posPlace danh sách Place mà Trans nối đến (trans>pos_place_list) thêm Trans vào vị trí posPlace danh sách Trans đến Place (place->pre_trans_list) Kết trả • FAIL Trans hay Place trỏ NULL Ngược lại trả SUCCESSFUL pnArcPlaceTransRemove() pnErr pnArcPlaceTransRemove (pnPlace *place, pnTrans *trans); ƒ ƒ Chức năng: Xóa cạnh từ Place đến Trans Mơ tả • ƒ Xóa cạnh từ Place đến Trans cách xóa Place khỏi danh sách Place có liên kết đến Trans xóa Trans khỏi danh sách Trans mà Place trỏ đến Kết trả • FAIL Place SUCCESSFUL hay Trans NULL Ngược lại trả pnArcTransPlaceRemove() pnErr pnArcTransPlaceRemove (pnTrans *trans, pnPlace *place); ƒ ƒ Chức năng: Xóa cạnh từ Trans đến Place Mơ tả • ƒ Xóa cạnh từ Trans đến Place cách xóa Trans khỏi danh sách Trans có liên kết đến Place xóa Place khỏi danh sách Place mà Trans trỏ đến Kết trả • FAIL Place SUCCESSFUL hay Trans NULL Luận văn cao học: Xây dựng mô hình biểu diễn vi mạch loại bất đồng Ngược lại trả HVTH: Trần Hoàng Hà 95 Cấu trúc pnDisp Cấu trúc pnDisp chứa thông tin cần thiết cho q trình mơ hiển thị Petri Net Các giá trị tọa độ Place hay Trans, tọa độ code ứng với Place hay Trans đó, số token, thời gian delay struct pnDisp{ int x; int y; int xlabel; int ylabel; int token; int delay; int cur_delay; int active; void *object; }; x,y tọa độ cấu trúc hiển thị xlabel, ylabel tọa độ code đối tượng token số token đối tượng delay thời gian thực đối tượng cur_delay thời gian thực active trạng thái đối tượng object pointer đến đối tượng, cần qtrình hiển thị mơ Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà ... văn đưa mơ hình biểu diễn vi mạch loại BĐB xây dựng hàm thư vi? ??n hỗ trợ q trình biểu diễn, mơ tổng hợp vi mạch loại BĐB Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH:... học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hồng Hà vii DANH MỤC HÌNH Hình 1.1: Mơ hình hệ thống thiết kế mạch bất đồng Hình 2.1: Mơ hình mạch đồng Hình. .. Vi mạch micropipeline 37 3.5 Đánh giá mơ hình biểu diễn mạch bất đồng 39 Luận văn cao học: Xây dựng mơ hình biểu diễn vi mạch loại bất đồng HVTH: Trần Hoàng Hà vi Chương MƠ HÌNH

Ngày đăng: 11/02/2021, 23:08

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan