Từ các mô hình Petri net người thiết kế có thể dễ dàng viết các hàm logic phức tạp trong các chương trình HDL. Bài báo này đề xuất sử dụng mạng Petri thời gian ngẫu nhiên (SPN) và thời gian ngẫu nhiên chung (GSPN) để mô hình hóa và viết các chương trình VHDL để thiết kế các mạch số.
Nghiên cứu khoa học cơng nghệ MƠ HÌNH PETRI NET THỜI GIAN CỦA CÁC MẠCH SỐ Dư Đình Viên*, Hồ Khánh Lâm Tóm tắt: FPGA trở thành phương tiện thực mạch số chục năm Các hệ thống số lớn thường thiết kế nhờ sử dụng ngôn ngữ mô tả phần cứng VHDL hay Verilog Loại ngôn ngữ cho phép mạch tổng hợp mô đủ trước xẩy thực vật lý Bên cạnh HDL mạng Petri sử dụng để thiết kế hệ thống số mạch Các mạng Petri chứng minh hiệu hỗ trợ thuật toán để giải vấn đề tổng hợp mạch số phức tạp điều khiển chúng mơ hình hóa loại Petri Net Từ mơ hình Petri net người thiết kế dễ dàng viết hàm logic phức tạp chương trình HDL Bài báo đề xuất sử dụng mạng Petri thời gian ngẫu nhiên (SPN) thời gian ngẫu nhiên chung (GSPN) để mơ hình hóa viết chương trình VHDL để thiết kế mạch số Từ khóa: Các hệ thống mạch số, VHDL, FPGA, SPN, GSPN GIỚI THIỆU PETRI NET Lý thuyết Petri Nets đề xuất nhà khoa học máy tính người Đức Carl Adam (1926-2010) luận văn tiến sĩ năm 1962 [1] Đến nay, Petri Nets phát triển cơng cụ đồ thị tốn học để mơ hình hóa, phân tích, thiết kế hệ thống với nhiều đặc tính khác nhiều lĩnh vực nghiên cứu lý thuyết thực tiễn: điện tử-viễn thơng, cơng nghệ thơng tin, tự động hóa, v.v… Petri Net (PN) đồ thị song hướng có trọng số gồm bộ: tập hợp vị trí P (place), tập hợp chuyển tiếp T, hàm vào I hàm O (1) PN ( P, T , I , O ) đó: P p1 , p , , p m ; m 0 T t1 , t , , t n ; n P T ; (2) I :T P O:P T O(t i ) - tập hợp vị trí chuyển tiếp t i , A tập hợp cung hình thành cặp ( p j , t i ) (t i , p j ) Vị trí p j vị trí vào chuyển tiếp t i p j I (t i ) , p j vị trí p j O (t i ) I (t i ) p j P : ( p j , t i ) A (3) O(t i ) p j P : (t i , p j ) A Như vậy, PN có hai tập hợp nút (vị trí chuyển tiếp) tập hợp cung nối cặp nút (vị trí, trạng thái) Nếu PN có trọng số, W giá trị nguyên ghi cung trọng số cung số cung (cùng hướng) nối cặp nút (vị trí, chuyển tiếp) trường hợp có nhiều cung nối cặp nút) PN có trọng số biểu diễn: Tạp chí Nghiên cứu KH&CN quân sự, Số 44, 08 - 2016 63 Kỹ thuật điều khiển & Điện tử (4) PN ( P, T , A, W ) đó: A ( PxT ) (TxP ) tập hợp cung từ nút vị trí đến nút chuyển tiếp ( p j , t i ) từ nút chuyển tiếp đến nút vị trí (t j , p i ) Có biểu diễn trọng số sau: w : A 1,2,3, hàm trọng số cung w( p j , t i ) : trọng số, hay số cung từ vị trí p j đến chuyển tiếp t i w( p j , t i ) p j I (t i ) : p j không thuộc tập hợp vào I chuyển tiếp t i ; w(t i , p j ) : trọng số, hay số cung từ chuyển tiếp t j đến vị trí p i w(t i , p j ) p j O (t i ) : p j không thuộc tập hợp O chuyển tiếp t i ; Nếu khơng có gía trị trọng số gắn cung cung có trọng số mặc định = (tức có cung nối vị trí chuyển tiếp) Khi có cung vào cung nối cặp nút (vị trí, chuyển tiếp) (chuyển tiếp, vị trí) PN gọi mạng Petri thông thường OPN (Ordinary PN) Biểu diễn thơng thường PN mạng có đánh dấu (MPN), biểu diễn đồ thị, đó: vòng tròn – vị trí, đậm (hay hộp chữ nhật) – chuyển tiếp, mũi tên – cung nối vị trí chuyển tiếp, dấu tròn nhỏ tơ mầu (đen) bên vị trí – thẻ (token) thể trạng thái hệ thống Các chuyển tiếp thể hành vi Sự kích kích hoạt chuyển tiếp (hay hành vi thực hiện) kéo theo số thẻ vị trí vào thêm vào số thẻ vị trí chuyển tiếp trọng số cung nối chuyển tiếp kich hoạt vị trí ra, qua thay đổi trạng thái hệ thống Ví dụ hình (a) mơ hình mạng Petri máy tính gồm CPU nhớ (vị trí CPU) hai ổ đĩa cứng (các vị trí DISK1, DISK2) Khi máy tính khơng trạng thái tính tốn, vị trí CPU khơng thẻ Khi máy tính trạng thái tính tốn có số liệu cần chuyển đến hai ổ đĩa vị trí CPU có thẻ Khi chuyển tiếp t1 phép kích hoạt Ở hai ổ đĩa cạnh tranh tài nguyên từ CPU, t1 kích hoạt thẻ đến DISK1 đến DISK2 Vì vậy, để đảm bảo tài ngun, CPU phải có hai thẻ (hình b) điều mơ CPU chip hai nhân (hai lõi xử lý) Khi đó, DISK1 DISK2 nhận thẻ Sự kích hoạt hai lần t1 dẫn đến DISK1 DISK2 (hình c) t2 DISK1 CPU t1 t2 CPU t1 DISK2 t3 t2 DISK1 DISK1 CPU t1 DISK2 t3 DISK2 t3 (a) (b) Hình PN hệ thống máy tính CPU ổ đĩa (c) Chúng làm cho chuyển tiếp t2 t3 phép kích hoạt làm cho vị trí CPU lại có hai thẻ Qua cho thấy mơ hình hóa hệ thống phức tạp máy tính nhờ sử dụng mạng Petri giải pháp tường minh dễ dàng Nếu ta đưa vào trễ thời gian cho chuyển tiếp để chúng kích hoạt hệ thống máy tính có hoạt động ổn định trình 64 D Đ Viên, H K Lâm, “Mơ hình Petri Net thời gian mạch số.” Nghiên cứu khoa học công nghệ Petri net có thời gian (TPN): thực tế, hệ thống có hành vi hay tiến trình xẩy theo thời gian xác định hay ngẫu nhiên Vì Petri net đưa vào đặc tính thời gian cho trạng thái chuyển tiếp để mô hình hóa phân tích hệ thống hay q trình theo thời gian Chuyển tiếp gắn thời gian trễ kích hoạt thể điều kiện kích hoạt thỏa mãn (các vị trí vào chuyển tiếp có thẻ) phải sau qng trễ thời gian gán trước (hoặc xác định theo hàm thời gian) chuyển tiếp kích hoạt làm chuyển trạng thái vị trí vào chuyển tiếp Như vậy, chuyển trạng thái chuyển tiếp thay đổi theo thời gian Petri net, mà tất trễ thời gian kích hoạt biến ngẫu nhiêu gọi SPN (Stochastic PN) với chuyển tiếp ký hiệu hay hộp trắng Trễ thời gian kích hoạt chuyển tiếp ti ký hiệu ti Nếu có chuyển tiếp tức thời ti , trễ kích hoạt ti , mạng gọi mạng Petri ngẫu nhiên chung GSPN (Generalized SPN), chuyển tiếp tức thời (trễ kích hoạt 0) ký kiệu hay hộp đen Các chuyển tiếp tức thời ln có ứu tiên cao chuyển tiếp có thời gian p2 p2 p1 p1 p1 p1 p2 p2 1 t1 2 1 t2 t1 2 t2 1 t2 t1 1 t1 t2 p3 p4 p p4 p3 p4 p p4 (a) (b) (c) (d) Hình SPN GSPN Để so sánh SPN GSPN, ta xét hình Hình 2(a) SPN với trễ kích hoạt , hai chuyển tiếp t1 t đủ điều kiện kích hoạt, t1 kích hoạt trước tạo SPN hình 2(b) (vì ) làm điều kiện kích hoạt chuyển tiếp t Hình 2(c) GSPN với chuyển tiếp thời gian t1 tức thời t có t1 đủ điều kiện kích hoạt Chỉ sau trễ chuyển tiếp t1 kích hoạt tạo GSPN hình 2(d) làm cho t có đủ điều kiện kích hoạt.GSPN thuận tiện cho mơ hình hóa phân tích hệ thống có tiến trình tức thời ngẫu nhiên Các đặc tính: tuần tự, đồng bộ, kết hợp, tương tranh, đụng độ, hỗn độn, loại trừ lẫn nhau, ưu tiên, khóa chết, đặc tính hành vi: đạt được, an tồn, tích cực, hữu hạn, bảo toàn, khứ hồi, phủ, cố chấp, khoảng cách đồng bộ, công Petri Nets [1] áp dụng phổ biến cho mô phân tích nhiều hệ thống khác BIỂU DIỄN CÁC MẠCH LOGIC BẰNG MƠ HÌNH PETRI NETS Các ngôn ngữ thiết kế phần cứng VHDL Verilog sử dụng phổ biến để thiết kế hệ thống phần cứng phức tạp cơng nghệ Tạp chí Nghiên cứu KH&CN qn sự, Số 44, 08 - 2016 65 Kỹ thuật điều khiển & Điện tử ASIC (CPLD, FPGA) Tuy nhiên, người thiết kế thường gặp khó khăn thực lập trình mơ tả hành vi (các chức năng) thiết kế phần cứng phức tạp Trong Petri net lại phù hợp cho mô tả chức hệ thống Petri Nets biểu diễn trung gian ngôn ngữ mô tả phần cứng VHDL hệ thống chuyển tiếp ký hiệu Đã có số nghiên cứu ứng dụng loại Petri net cho thiết kế hệ thống số, chuyển từ ngơn ngữ lập trình sang mơ hình Petri Nets [2] chuyển từ Petri Nets sang VHDL thực hệ thống FPGA [3][4], mơ hình hóa mạch cổng logic số [5][6], thực thuật toán phân tích phân tán Petri net vào FPGA [7], sử dụng Petri net có mầu CPN (có chứa liệu vị trí chuyển tiếp) để mơ hệ nhúng FPGA [8], phát triển hệ thống điều khiển nhúng phân tán với Petri nets [9] Bài báo đề xuất mơ hình hóa mạch logic nhờ sử dụng mạng Petri nhờ sử dụng đặc tính Có số nghiên cứu đề xuất sử dụng mạng Petri để mơ hình hóa mạch số, nhiên, khơng có thống kết nào, mơ hình tạo phức tạp Ở đây, chúng tơi sử dụng GSPN để mơ hình hóa nhằm đơn giản mơ hình kết đảm bảo mơ hình hóa mạch số khơng đồng để dễ dàng chuyển sang chương trình VHDL Bài để xuất giải pháp mơ hình hóa mạch số nhằm tạo thư viện mơ hình mạng Petri cho mạch số, để từ xây dựng chương trình VHDL cho thiết kế mạch số FPGA Trong GSPN hình 3, vị trí có thẻ thể giá trị logic = (true) Vị trí có thẻ là vị trí x=0 hay x=1 Hình 3(a) 3(b) thể mạch logic Inverter Repeater SPN có chuyển tiếp có thời gian với trễ chuyển tiếp khác Trễ xác định đặc tính tốc độ mạch logic mà PN mơ Các hình (c, d, e, f) GSPN xây dựng từ SPN Repeater cho mạch logic (AND, NAND, OR, NOR) xây dựng từ mạch Inverter cách dễ dàng Về nguyên tắc, từ SPN Repeater xây dựng GSPN cho mạch logic Như với GSPN ta phân tích đặc tính mạch logic thơng qua đặc tính GSPN Đó ý nghĩa đề xuất xây dựng PN cho mạch logic Từ GSPN mạch logic ta thiết kế mạch số lớn GSPN cho ghi, nhớ, đếm,v.v… Điểm khác biệt giải pháp sử dụng GSPN với cung cấm để mơ hình hóa mạch logic Việc đặt trễ kích hoạt cho chuyển tiếp cho phép ta lựa chọn phù hợp cho yêu cầu thiết kế mạch số Các cung có dấu hình tròn cung cấm Nó định cho phép chuyển tiếp kích hoạt Điều kiện kích hoạt chuyển tiếp có cung cấm theo nguyên tắc ưu tiên sau: 1) Một chuyển tiếp có cung cấm, phép kích hoạt trường hợp: 1.1) Tất vị trí vào, nối với chuyển tiếp cung bình thường (cung có mũi tên), chứa số thẻ trọng số cung, 1.2) Khi khơng có thẻ tất vị trí vào nối với chuyển tiếp cung cấm 2) Một chuyển tiếp có cung cấm khơng thể kích hoạt vị trí vào cung cấm chứa số thẻ nhiều số cung 66 D Đ Viên, H K Lâm, “Mơ hình Petri Net thời gian mạch số.” Nghiên cứu khoa học công nghệ x=0 x x=0 y t1 t2 t1 y1= t2 y=0 x2=0 t2 y1=0 t3 y2=1 (a): Mạng Petri (PN) mơ hình PN rút gọn mạch đảo (Inverter) y=0 y=1 (b): Mạng Petri (PN) mơ hình PN rút gọn mạch lặp (Repeater) y=1 x1 x2 y x1=0 PN x1=1 x=0 x1=1 y=1 y=0 y=0 x=0 PN x=1 x=1 x1=0 y=1 x=0 PN x=1 x=1 x t1 y t5 y=1 x2=0 PN x2=1 x=1 y=1 y=0 y=0 t6 y=1 y=0 x=0 PN x=1 x1=0 x1=1 y=1 x2=0 y=0 x2=1 PN And y=1 y=0 (c): Mạng Petri (PN) mơ hình PN rút gọn mạch AND (là kết hợp mạch đảo) PN y= x1 and x2 x2=1 x1=0 t4 t1 y2=0 y1= x1 x2 y x=0 x1=1 x2=0 x2=1 x1=0 t2 y1=0 t3 y2=1 t4 t1 y2=0 y1= x=1 x2=0 t2 y1=0 t3 y2=1 y=1 x1 x2 x=1 x1=0 t4 t1 t5 y=1 y=0 t6 y2=0 y1= x1 x2 x=0 x1=1 x2=0 t2 y1=0 t3 y2=1 x=1 t4 y2=0 y=1 y=0 x=0 PN x=1 (d): Mạng Petri (PN) mơ hình PN rút gọn mạch NAND (là kết hợp mạch đảo) x1=0 PN x1=1 x2=0 PN x2=1 y=1 y=0 y=1 y=0 x=0 PN x=1 x1=0 x1=1 y=1 x2=0 y=0 x2=1 PN Or y=1 y=0 (e): Mạng Petri (PN) mơ hình PN rút gọn mạch OR (là kết hợp mạch đảo) y t5 t6 y=1 y=0 PN y= x1 or x2 x2=1 x2=0 PN x2=1 x1=0 PN x1=1 Nand y=1 y=0 y=1 x2=0 y=0 x2=1 y PN y= x1 or x2 x2=1 y=1 y=0 y=0 t6 PN y=not (x1 and x2) x=0 x1=1 t5 x1=0 PN x1=1 x1=0 PN x1=1 x2=0 PN x2=1 y=1 y=0 y=1 y=0 x=0 PN x=1 x1=0 PN x1=1 y=1 x2=0 Nor y=0 x2=1 (f): Mạng Petri (PN) mơ hình PN rút gọn mạch NOR (là kết hợp mạch đảo) Hình GSPN mạch logic LẬP TRÌNH VHDL DỰA VÀO MƠ HÌNH MẠNG PETRI Tạp chí Nghiên cứu KH&CN qn sự, Số 44, 08 - 2016 67 y=1 y=0 Kỹ thuật điều khiển & Điện tử GSPN mạch logic thể hàm logic qua ngơn ngữ lập trình VHDL Ví dụ, GSPN mạch Inverter (hình 3a) viết chương trình VHDL ví dụ Ví dụ 1: VHDL GSPN Inverter; library IEEE; use IEEE.STD_LGIC_1164.ALL; entity inverter is port (x: in STD_LOGIC; y: out STD_LOGIC); end inverter; architecture behavioral of inverter is begin process (x) begin if (x=’1’) then y