首页 » 业界动态 » 基于VHDL的Petri网系统的FPGA实现

基于VHDL的Petri网系统的FPGA实现

作者:  时间:2009-03-02 22:47  来源:
1 引言

  Petri网是一种系统的、数学的和图形的描述和分析工具[1],随着超大规模集成电路FPGA和CPLD的发展,Petri网的硬件实现成为可能,而基于Petri网的逻辑控制器的逻辑电路实现方法成为最近几年的研究热点[2]。在目前的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 [1]同步PN是一个三元组。其中

  R是一已标识的PN

  E是外界事件集

  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。

同步Petri网系统库所和变迁的实现

  变迁元件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;

  begin  t<=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。

  定义2[1]  T时延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。

变迁时化Petri网元件的实现

  用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; 

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点