3.3变迁时化Petri网元件实现的应用举例
两台计算机使用一个公共存储器,如图3(a),假设每台计算机可以有三种状态:(a)不需要该存储器;(b)需要存储器但还没有使用它;(c)正在使用存储器。
则对其建立Petri网模型如图3(b)示。各库所和变迁的含义解释为:P1,P4分别表示CP1、CP2发出需要该存储器请求;P2、P5分别表示CP1、CP2占用该存储器;P3,P6分别表示CP1、CP2不需要该存储器;P7表示存储器;变迁中与时间相关的是T2、T5,分别表示cp占用存储器的时间。这是一个时延Petri网系统。分别调用元件库中所形成的库所元件、变迁元件和时延变迁元件,作出该系统的逻辑电路图如图4(a),并在EDA软件Max+PlusⅡ中对其编译、仿真下载,仿真波形如图4(b)示。
4 变迁时化有色Petri网CTPN的实现
4.1 CTPN网简介
CTPN={P, T, F, C, S, G}为变迁时间化的有色Petri网,其中,P 是一个有限的库所集合。库所包含有色托肯。
T 是一个有限的变迁集合。每个变迁均有一正实数的持续时间。一个激发颜色集与变迁相联系,其中每种颜色表明了一种激发的可能性。
F 是与变迁相联系的函数,表明了变迁激发后其输入弧和输出弧上信息的转换关系,若F为恒等函数,则省略不标。
C 是与库所相连的颜色的集合,C={C1,C2…Ci}。
4.2 CTPN网的元件实现
PROCESS进程是VHDL语言中最有特色的部分。在一个VHDL语言设计中,一个结构体中可以包括多个进程,而进程之间是并发的关系,同时又可以通过信号实现进程之间的联系。在有色Petri网的实现过程中,主要利用了vhdl语言中的进程语句process,根据库所中的颜色设置所需的进程,并将每一种颜色作为每一个相对应进程的敏感信号,而敏感信号的任何变化都可以启动进程的运行,当敏感信号不发生变化时,进程是挂起的,从而实现了有色Petri网中库所对不同颜色的识别。
如图5(a)所示为一个简单的变迁时化有色petri网模型,具有颜色集{b,y},如果P1中有标记b(或y),则变迁T1对于颜色b(或y)是使能的,T1的激发包括从库所P1中移去一个标记b(或y),在P2中增加一个标记b(或y)。该模型的库所和变迁元件的实现如图5(b)、(c),其部分源程序为:
architecture beh of p_c is
begin
process(clk,reset,inb,outb)
…
end process;
process(clk,reset,iny,outy)
…
end process; … end beh;
变迁元件T_C的实现是将同步PN网中的变迁根据激发颜色进行细化。将变迁元件T_C和计时器相连即可实现时化的有色变迁,在Max+PlusⅡ中形成可调用的时化变迁元件timc。
对图5(a)模型的硬件实现通过调用库所元件P_C和变迁元件T_C、timc实现,其实现的顶层元件图如图6(a)所示。并在Max+PlusⅡ中对其作仿真,波形图如图6(b)。
5 本文作者创新点
本文给出了几种Petri网系统的硬件实现方案,采用VHDL语言分模块实现,描述元件的功能并将元件存入WORK库中,使设计具有很强的可读性、可重复性、及可修改性,大大提高了系统的开发效率。