基于VHDL语言和可编程逻辑器件实现Petri网逻辑控制器的设计

作者:王玲玲 ,刘惊雷 ,马晓敏
1 引言
petri网是一种系统的、数学的和图形的描述和分析工具,随着超大规模集成电路fpga和cpld的发展,petri网的硬件实现成为可能,而基于petri网的逻辑控制器的逻辑电路实现方法成为最近几年的研究热点。在目前的petri网硬件实现的研究中,主要给出了petri网c/e系统和p/t系统的几种实现方法,但主要存在如下缺点:1)使用基本门电路和触发器用图形法自底向上实现了petri网基本元件库所与变迁。这种设计方法的最大缺点是不易于任意修改逻辑电路设计。2)用vhdl语言实现了整体电路设计的软件化,但未形成模块化的petri网元件。
vhdl语言由于其其强大的行为描述能力及与硬件行为无关的特性,被广泛的用于数字系统设计,实现了硬件电路设计的软件化,成为实现petri网逻辑控制器的有力的工具。用vhdl语言进行数字电路设计的很大的优势是其自顶向下的设计方法,可以充分的实现电路的层次化设计,从而很方便的修改顶层的控制器电路。本文分别用vhdl语言研究了几种petri网系统的硬件实现,包括同步pn、时延pn,尤其是高级网系统有色pn。在当前的研究中有色petri网的硬件实现是一个难点。
2 同步petri网的实现
2.1 同步petri网简介
定义1 同步pn是一个三元组。其中r是一已标识的pne是外界事件集sync是从r的变迁集到事件集的函数。在同步pn中,每个变迁总是与一个事件相联系,当变迁是使能的,且与变迁联系的事件发生时,产生变迁的激发。
2.2 同步petri网的元件实现
元件p_m实现了基本的同步petri网系统(如图1(a))中的库所模块,库所p具有两个输入变迁和两个输出变迁,且每个变迁均与外部事件有关。当库所p中没有托肯且库所p0或p1中有托肯时,外部事件e发生,变迁t0或t1激发,则托肯从库所p0或p1移动到库所p;当p中有托肯且库所p2或p3中没有托肯时,外部事件e发生,变迁t2或t3激发,则托肯从库所p移动到库所p2或p3;元件p_m(如图1(b))是在eda软件max+plusⅱ中采用vhdl语言描述,经过编译、仿真后形成模块并存放与元件库中的。它有两个输入变迁in1,in2和两个输出变迁out1,out2,当变迁激发时,其值为逻辑1,否则为逻辑0;reset为复位信号,用来设置库所的初始状态。clk为全局时钟。p的值表示库所中是否含有托肯,若含有托肯,取值为逻辑1,否则为逻辑0。
变迁元件t_m(如图1(d)),具有两个输入库所p0和p1,两个输出库所p2和p3,且受外部事件x的控制,如图1(c)所示,其激发规则是当库所p0和p1中有托肯,而库所p2和p3中没有托肯,且事件x发生时,变迁激发。变迁元件t_m 输入端in1,in2,out1,out2分别表示输入库所和输出库所中含有托肯的状态,若含有托肯,则取值为逻辑1,否则为逻辑0,x是外部事件。t表示变迁的激发状态,若可激发则取值为逻辑1。
用vhdl语言描述部分源程序如下:
architecture beh of t_m is
signal t0: std_logic;
begint<=x and in1 and in2 and (not out1) and (not out2);end beh;
库所元件p_m和变迁元件t_m均存放在max+plusⅱ中建立的元件库中,是可以调用使用的。
3 时延petri网的实现
3.1 时延petri网的定义
时延pn被用来描述其运行与时间有关的系统。主要有两种:p时延pn和t时延pn。因二者是等效的,其中一个模型可以转换成另一个模型,故在此主要实现了t时延pn。
定义2t时延pn是二元组, 其中r是标识的pn;
tempo是从变迁集t到非负有理数集的函数,tempo(tj)=dj是与变迁tj相联系的时限,它规定了petri网中的每一个变迁的持续时间。
在t时延pn中,每个变迁均有一为零或任一正实数的持续时间。而库所中没有持续时间,只要和它相连的变迁激发,库所就可失去或获得托肯。当变迁的输入库所中含有托肯时,变迁是使能的,但要真正激发需要经过一段持续时间。
3.2 变迁时化petri网元件的实现
t时延pn中库所元件与同步petri网一致。
t时延pn中变迁元件的实现是在基本petri网中变迁元件的基础上设计了一个计时器time,如图2(b),clk为计时频率,决定了计时的精度;en为其使能端,当变迁可激发时,en为1,计时器开始计时,计时结束时co输出为1。
在图2(a)中变迁t与时延d=n相连,当库所p0和p1中各有一个托肯时,变迁t获得发生权,但到t发生,需有n个单位的延时.调用元件t_m和计时元件time,建立逻辑电路如图2(c)示,并经过编译形成图2(d)所示逻辑模块时化变迁元件tim。
用vhdl语言实现计时器模块源程序如下:
if clkevent and clk=1 then
if en=1 then
if q=n then q<=0;co<=1;else q<=q+1; co<=0;end if;
else q<=0; co<=0;end if;end if;
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库中,使设计具有很强的可读性、可重复性、及可修改性,大大提高了系统的开发效率。


数字货币多种钱包开发搭建技术
澳大利亚追随美国 华为和中兴再次被拒
多种亮点亮相,40dB降噪深度,南卡A2降噪蓝牙耳机正式发布
今日看点丨消息称江淮、华为合作“百万级轿车”将对标宝马 7 系;高通 3 月发布 SM7675 及 SM8635 芯片
关于霍尼韦尔VPX系列阀门位置指示器/ 阀门回讯器的性能分析和介绍
基于VHDL语言和可编程逻辑器件实现Petri网逻辑控制器的设计
如何让智能化为经济赋能为生活添彩
开关电源方面的应用,PWM信号的产生机制
华为Mate 60与Mate 60 Pro有什么区别?
Milestone 推出 XProtect Go:免费 IP
电子工程师:是否会后悔选择这个专业
大数据分析技术在发电企业的应用
三相电机倒顺开关怎么接 三相电机怎么改单相电机
自然语言处理入门基础之hanlp详解
小米手环3代到5代 NFC 功能已至此16张公交卡
华为擎云生态&鸿蒙系统,国产系统还远吗?
板载音效详解
小米Note又有新品“小米note3”希望雷军不再耍猴!
电子芯片5G通讯新秀材料-LCP材料是什么材料
【智能工厂】环境监测安全预警系统解决方案