一种基于Petri网的组合逻辑FPGA系统可达图的生成方法

文档序号:6524294阅读:431来源:国知局
一种基于Petri网的组合逻辑FPGA系统可达图的生成方法
【专利摘要】本发明一种基于Petri网的组合逻辑FPGA系统可达图的生成方法,在组合逻辑FPGA系统的Petri网建模方法的基础上,以电路逻辑功能为考虑对象,并以电路系统在一个稳定输入状态下所对应的稳定的门电路逻辑运算输出为研究条件,通过重新定义Petri网变迁激发规则,生成组合逻辑FPGA系统可达图,从该组合逻辑FPGA系统可达图中,FPGA系统的状态空间被清晰完整地呈现出来,因此,可以通过遍历搜索来检测系统是否存在违背控制目标的状态,这是验证VHDL程序逻辑错误最直接有力的方法,为VHDL程序形式化验证提供理论基础。
【专利说明】—种基于Petr i网的组合逻辑FPGA系统可达图的生成方法
【技术领域】
[0001]本发明涉及一种基于Petri网的组合逻辑FPGA系统可达图的生成方法。
【背景技术】
[0002]FPGA (Field — Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半制定电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA利用小型查找表(16 X 1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动1/0,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了 FPGA所能实现的功能。
[0003]由于FPGA内部集成锁项环,外部时钟倍频,核心频率可以到几百兆,所以运行速度很快;管脚多,有丰富的I/O资源,易实现大规模系统;其内部不同的逻辑可以并行执行,可以同时处理不同任务,所以工作效率较高;FPGA灵活性很强,有大量软核,可以方便进行二次修改;没有指令周期,时序控制能力强。正因为FPGA具有这些优势,所以被广泛应用于通信、军事、医疗、汽车电子、工业控制、消费产品等重要领域。
[0004]现在流行的FPGA设计方式是以VHDL或者Verilog语言作为硬件输入描述,再通过综合器综合使硬件描述语言映射到逻辑电路上,然后再采用FPGA产商提供的工具进行布线布局,将综合产生的逻辑电路快速烧录至FPGA上。这样的设计流程,综合以及后面的布线布局工作都是基于硬件描述语言,所以硬件语言描述的好坏直接影响了电路功能。但随着系统设计规模日渐复杂,系统状态数也随之增大,使得程序设计和调试的工作量变得更加繁琐和巨大,FPGA面临着高计算复杂性。目前的编程软件只能实现针对程序语法、语义上的测试,并不能发现整个程序中逻辑性质上的错误(如死锁、冲突),不能验证每个状态(状态数呈指数级增长),也就无法保证程序的准确性和可靠性。因此,在FPGA复杂系统设计过程中,保证硬件描述语言程序不存在逻辑错误,提高其可靠性,最大程度杜绝安全隐患,是开发人员不容忽视的一个重要问题。
[0005]为了解决上述问题,需要开发FPGA系统程序的软件验证技术,利用计算机仿真和验证程序的逻辑功能,即可降低程序开发成本,也可以保证程序的可靠性。在专利号201310010846.9《一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法》罗继亮,叶丹丹提出了组合逻辑FPGA系统的Petri网建模方法,该方法实现了描述组合逻辑FPGA系统的VHDL程序与普通Petri网之间的自动转换。
[0006]Petri网是由德国科学家Carl.Adam.Petri于1962年在其博士论文《用自动机通信》中首次提出的。Petri网以图形和数学为基础,是一种研究系统性质和行为的形式化语言。Petri网适用于异步、并发系统的分析,具有很强的模拟能力,又有严谨的数学表达式,具有直观、易懂等特性。
[0007]从组合逻辑FPGA电路的Petri网建模算法上可以看出,FPGA系统的每一个状态都能对应于Petri网系统的一个标识,Petri网的动态行为包含了 FPGA系统的行为,刻画组合逻辑FPGA系统工作过程中各个变量之间的逻辑关系和输出变量的变化过程。因此,利用Petri网的可达图分析法可以很好地分析和模拟程序的运行。但是,Petri网描述的是一个比FPGA系统更复杂的并发系统,理论上只要变迁满足使能条件就能被激发,因此它包含了更多的信息,这样就造成了状态空间爆炸的问题。为了避免这样的问题,我们基于所要研究的内容,定义了新的变迁激发规则来建立一个可以等价描述组合逻辑FPGA系统运行的可达图。

【发明内容】
[0008]本发明的目的在于在组合逻辑FPGA系统转换为普通Petri网的基础上,以组合逻辑电路输入量和门级输出之间的逻辑关系,即电路的逻辑功能为考虑对象,而电路内部的门延迟和线延长不作考虑,并且以电路在一个稳定输入量下所对应的稳定的门电路输出为研究条件,通过定义新的变迁激发规则,提出一种基于Petri网的组合逻辑FPGA系统可达图的生成方法,为VHDL程序的形式化验证建立理论基础,使得利用FPGA系统状态空间图来分析程序是否存在逻辑错误成为可能。
[0009]一种基于Petri网的组合逻辑FPGA系统可达图的生成方法,其组合逻辑FPGA系统是在一个稳定输入量下所对应的稳定的门电路输出,并且在门电路逻辑运算阶段,没有新的输入量进来;
[0010]假设Petri网(N,m0)是一个组合逻辑FPGA系统的Petri网模型,其中N=(P,T, F),P表示库所的有限集合,T表示变迁的有限集合,F G (Px Πυ0-χΡ)表示连接库所和变迁有向弧的集合,Hitl表示Petri网的初始标识,另外T=Tin U Twt,Tin表示输入量变迁集合,Twt表示门电路输出变迁集合,Tein是可使能的输入量变迁集合,Tyut是可使能的门电路输出变迁集合,并且c Tm,Te'm“ c T,一个输入量变迁的激发表示其对应的输入变量状态变
化,一个门电路输出变迁的激发表示其对应的门电路逻辑输出运算;
[0011]在所有可达电路状态R (Hici)中,如果一个状态是由激发输入量变迁演变得到的,那么该状态称为该Petri网模型的电路输入状态;如果一个状态是由激发门电路变迁演变得到的,那么该状态称为该Petri网模型的门级输出状态;
[0012]组合逻辑FPGA 系统可达图由一个三元组 GFPeA=〈M,E, ff>, M=Min U Mout, E=Ein U Eout描述,集合M中的每个节点对应于系统状态空间的一个状态,其中Min和Mwt分别表示输入状态集合和门电路逻辑运算输出状态集合,输入状态节点为实线圈,输出状态节点为虚线圈,E是一个节点指向另一个节点的有向边的集合,算法中〈m,m’ out>表示从状态m指向m’ out的一条有向边,Ein和Erat分别表不标记为输入量变迁和门电路输出变迁的边的集合,Ein中的边为单箭头实线,Eout中的边为单箭头虚线,集合W中的元素是E到T的一个映射,即每条有向边上都有变迁标记,算法中W(<m, m’ out>) =tout表示在状态m下激发变迁t—得到m’ out,Mnew=Min U Mout是未计算的系统状态集合,Mold=Min U Mout是已计算获得的系统状态集合,当未计算的系统状态集合Mnrat中某个状态的可达状态都已计算获得,则该状态便从未计算的系统状态集合Mnrat中被剔除并添加到已计算获得的系统状态集合Mtjld中;当未计算的系统状态集合Mnrat为空时,算法结束;由激发输入量变迁而获得的输入状态都放入集合Min中,激发门电路输出变迁而获得的门电路输出状态都放入集合Mwt中,具体包括如下步骤:
[0013]步骤1、输入系统的Petri网模型,由于起始时不存在输入状态和门电路输出状态,即输入状态集合Μ, =0和门电路输出状态集合M?,ri =0 ;也不存在状态之间的有向边以及有向边上的变迁标记,即状态之间的有向边集合£ = 0和有向边上的变迁集合F = 0 ;
[0014]步骤2、将初始状态mQ标记为“new”,并将[m ] — Mnew ;
[0015]步骤3、如果未计算的系统状态集合#0则继续以下操作,否则算法结束,输
出组合逻辑FPGA系统可达图: [0016]Gfpga=<M, E, ff>, M=Min U Mout,E=Ein U Eout ;
[0017]步骤4、从未计算的系统状态集合Mnew中任取一个标记为“new”的状态m ;
[0018]步骤4.1如果状态m与可达图中已有的其他状态相同,则将其标记为“old”,已计算获得的系统状态集合Mtjld=Mtjld U {m},然后转向步骤4 ;
[0019]步骤4.2如果在状态m下,没有可激发的输入变迁和门电路输出变迁,则将状态m标记为“dead end”,然后转向步骤4 ;
[0020]步骤4.3如果在状态m下存在使能变迁,此时会有两种情况:一种是既有可使能的输入变迁又有可使能的门电路输出变迁,则跳转到步骤5 ;另一种是只存在可使能的输入变迁,则跳转到步骤6;
[0021]步骤5、只要存在可使能的输出变迁,即可使能的门电路输出变迁集合Te,mil-{tout\m[tout >}^0, tout e Trat,应当优先激发所有可使能的门电路输出变迁,生成门电路输出状态;
[0022]步骤5.1从可使能的门电路输出变迁集合Tyut中任取一个门电路输出变迁twt,激发该变迁,生成门电路输出状态m’ out ;
[0023]步骤5.2将{m’J — Μ_,如果门电路输出状态m’_与可达图中已有的状态相同,贝U已计算获得的系统状态Mtjld=Mtjld U {m’J ;否则从状态m到门电路输出状态m’-之间画一条有向边虚线,则状态之间的有向边集合为Erat=Erat+{〈m, m’_>};并在该虚线上标记门电路输出变迁Ut,则有向边上的变迁集合为{W(〈m,m’ 0Ut?=t0UJ —W,说明在状态m下通过激发门电路输出变迁Ut会生成输出状态m’ out ;
[0024]步骤5.3因为从可使能的门电路输出变迁集合Tyut中取走了一个使能变迁tout,所以Tyut=I^ut-1tJ,再判断可使能的门电路输出变迁集合Tyut是否为空集,如果
,即仍有可激发的输出变迁,那么返回步骤5.1 ;如果可使能的门电路输出变迁集合, =0,即没有可激发的输出变迁,则继续以下操作;
[0025]步骤5.4因为标记为“new”的状态m是从状态集合Mnew中取出的,所以未计算的系统状态集合Mnrat=Mnrat- {m},并返回步骤3 ;
[0026]步骤6、当状态m下只存在使能的输入变迁,即可使能的输入量变迁集合TJn={t>}^0, tin e Tin,则继续激发一个使能的输入变迁,来改变输入量状态;
[0027]步骤6.1从可使能的输入变迁集合TMn中任取一个输入量变迁tin,激发该变迁,生成门电路输入状态m’ in;[0028]步骤6.2将{m’J — Min,如果m’in与可达图中已有的状态相同,则已计算获得的系统状态集合Mtjld=Mtjld U {m’in};否则从状态m到m’in2间画一条有向边实线,则状态之间的有向边集合为Ein=Ein+in>};并在该实线上标记输入量变迁tin,则有向边上的变迁集合为{W(〈m,m’in>)=tin} —W,说明在状态m下通过激发输入量变迁tin会生成输入状态
m,in ;
[0029]步骤6.2.1判断输入状态m’ in下是否存在可使能的输出变迁,如果m’ in下存在可使能的输出变迁,则跳转到步骤6.2.2,否则跳转到步骤6.2.5 ;
[0030]步骤6.2.2在可使能的门电路输出变迁集合ilt - [toui \min[toul >} * 0, tout e Tout
中任取一个门电路输出变迁Iut,激发变迁,生成门电路输出状态m’ ’ out ;
[0031]步骤6.2.3将{m’’」一Mtjut,如果m’与可达图中已有的状态相同,则已计算获得的系统状态集合Mtjld=Mtjld U {m'' out}眉则从状态^^到^’-之间画一条有向边虚线,则状态之间的有向边集合为Erat=E^Km' in,m’ ’ out>};并在该虚线上标记门电路输出变迁Ut,则有向边上的变迁集合为in,m’ ’ 0Ut?=t0UJ — W,说明在门电路输入状态m’ in下通过激发门电路输出变迁会生成输出状态m’ ’ out ;
[0032]步骤6.2.4可使能的门电路输出变迁集合Te,0Ut=Te; out- {t0UJ,再判断门电路输入状态m’ in下的可使能的门电路输出变迁集合Tqut是否为空集,如果可使能的门电路输出变迁集合I#0,即仍有可激发的输出变迁,那么返回步骤6.2.2 ;如果可使能的门电路输出变迁集合=0,即没有可激发 的输出变迁,则继续以下操作;
[0033]步骤6.2.5因为在状态m下从可使能的输入量变迁集合TMn中取走了一个使能输入量变迁tin,所以TMn=!;in-[tinl再判断可使能的输入量变迁集合τΜη是否为空集,如果可使能的输入量变迁集合#0,即仍有可激发的输入变迁,那么返回步骤6.1 ;如果可使能的输入量变迁集=0,即没有可激发的输入变迁,则继续以下操作;
[0034]步骤6.3未计算的系统状态集合Mnew=Mnew- {m},并返回步骤3。
[0035]本发明在组合逻辑FPGA系统的Petri网建模方法的基础上,以电路逻辑功能为考虑对象,并以电路系统在一个稳定输入状态下所对应的稳定的门电路逻辑运算输出为研究条件,通过重新定义Petri网变迁激发规则,提出了一种基于Petri网的组合逻辑FPGA系统可达图的生成方法,从组合逻辑FPGA系统可达图中,系统的状态空间被清晰完整地呈现出来,因此,可以通过遍历搜索来检测系统是否存在违背控制目标的状态,这是验证VHDL程序逻辑错误最直接有力的方法,为VHDL程序形式化验证提供理论基础。
【专利附图】

【附图说明】
[0036]图1为实施例某化工原料生产流程示意图;
[0037]图2为实施例的组合逻辑FPGA系统的Petri网模型;
[0038]图3为实施例的组合逻辑FPGA系统状态空间图。
[0039]以下结合附图和具体实施例对本发明作进一步详述。
【具体实施方式】
[0040]本发明选择VHDL中7种基本逻辑操作符构成的组合逻辑电路为研究对象,在组合逻辑FPGA系统的Petri网建模方法的理论成果上,基于形式化语言一Petri网,进一步研究组合逻辑FPGA系统状态空间的计算方法。首先,需要找出传统可达图与组合逻辑FPGA系统之间的差异。从流水线设计的组合逻辑FPGA电路功能上看,K级流水线就是从组合逻辑的输入到输出恰好有K个寄存器组,上一级的输出是下一级的输入而又无反馈的电路,当有输入量进来时,电路就进入逻辑运算阶段。在运算期间,输入端新的输入量也会输入寄存器组,分级向下进行逻辑运算,但最终稳定的输出量会以一定的时间间隔运算出来。这样的运算原理类似于Petri网的动态行为,只要使能的变迁都可以被激发,即有输入量的变化,内部寄存器组就会分级运算。这将导致可达图的状态量比我们要研究的FPGA系统多很多,所以传统可达图中的某些状态是不必计算的。因为FPGA运行速度极快,本发明只涉及组合逻辑电路输入量与门级输出之间的逻辑功能关系,不考虑门延迟和线延迟以及电路内部的运算过程,这里本发明规定了组合逻辑FPGA系统是在一个稳定输入量下所对应的稳定的门电路输出,并且在门电路逻辑运算阶段,没有新的输入量进来为研究条件。
[0041 ] 本发明一种基于Petri网的组合逻辑FPGA系统可达图的生成方法,其中组合逻辑FPGA系统是在一个稳定输入量下所对应的稳定的门电路输出,并且在门电路逻辑运算阶段,没有新的输入量进来;
[0042]假设Petri网(N,m0)是一个组合逻辑FPGA系统的Petri网模型,其中N= (P,T, F),P表示库所的有限集合,T表示变迁的有限集合,(ΡχΠυ0-χΡ)表示连接库所和变迁有向弧的集合,Hitl表示Petri网的初始标识,另外T=Tin U Twt,Tin表示输入量变迁集合,Twt表示门电路输出变迁集合,I^in是可使能的输入量变迁集合,Tyut是可使能的门电路输出变迁集合,并且,「 CToul,一个输入量变迁的激发表示其对应的输入变量状态变
化,一个门电路输出变迁的激发表示其对应的门电路逻辑输出运算;
[0043]在所有可达电路状态R (Hitl)中,如果一个状态是由激发输入量变迁演变得到的,那么该状态称为该Petri网模型的电路输入状态;如果一个状态是由激发门电路变迁演变得到的,那么该状态称为该Petri 网模型的门级输出状态;
[0044]组合逻辑FPGA 系统可达图由一个三元组 GFPeA=〈M,E, ff>, M=Min U Mout, E=Ein U Eout描述,集合M中的每个节点对应于系统状态空间的一个状态,其中Min和Mwt分别表示输入状态集合和门电路逻辑运算输出状态集合,输入状态节点为实线圈,输出状态节点为虚线圈,E是一个节点指向另一个节点的有向边的集合,算法中〈m,m’ out>表示从状态m指向m’ out的一条有向边,Ein和Erat分别表不标记为输入量变迁和门电路输出变迁的边的集合,Ein中的边为单箭头实线,Eout中的边为单箭头虚线,集合W中的元素是E到T的一个映射,即每条有向边上都有变迁标记,算法中W(<m, m’ out>) =tout表示在状态m下激发变迁t—得到m’ out,Mnew=Min U Mout是未计算的系统状态集合,Mold=Min U Mout是已计算获得的系统状态集合,当未计算的系统状态集合Mnrat中某个状态的可达状态都已计算获得,则该状态便从未计算的系统状态集合Mnrat中被剔除并添加到已计算获得的系统状态集合Mtjld中;当未计算的系统状态集合Mnrat为空时,算法结束;由激发输入量变迁而获得的输入状态都放入集合Min中,激发门电路输出变迁而获得的门电路输出状态都放入集合Mwt中,具体包括如下步骤:
[0045]步骤1、输入系统的Petri网模型,由于起始时不存在输入状态和门电路输出状
态,即输入状态集合Afi,, =0和门电路输出状态集合M =0也不存在状态之间的有向边以及有向边上的变迁标记,即状态之间的有向边集合f = 0和有向边上的变迁集合F = 0 ;
[0046]步骤2、将初始状态mQ标记为“new”,并将{mn} — Mnew ;
[0047]步骤3、如果未计算的系统状态集合W >0,则继续以下操作,否则算法结束,输
出组合逻辑FPGA系统可达图:
[0048]Gfpga=<M, E, ff>, M=Min U Mout,E=Ein U Eout ;
[0049]步骤4、从未计算的系统状态集合Mnev中任取一个标记为“new”的状态m ;
[0050]步骤4.1如果状态m与可达图中已有的其他状态相同,则将其标记为“old”,已计算获得的系统状态集合Mtjld=Mtjld U {m},然后转向步骤4 ;
[0051]步骤4.2如果在状态m下,没有可激发的输入变迁和门电路输出变迁,则将状态m标记为“dead end”(死锁),然后转向步骤4 ;
[0052]步骤4.3如果在状态m下存在使能变迁,此时会有两种情况:一种是既有可使能的输入变迁又有可使能的门电路输出变迁,则跳转到步骤5 ;另一种是只存在可使能的输入变迁,则跳转到步骤6;
[0053]步骤5、只要存在可使能的输出变迁,即可使能的门电路输出变迁集合Te.mit = {tm? Htallt >}本0, tout e Τ_,应当优先激发所有可使能的门电路输出变迁,生成门电路输出状态;
[0054]步骤5.1从可使能的门电路输出变迁集合Tyut中任取一个门电路输出变迁twt,激发该变迁,生成门电路输出状态m’ out ;
[0055]步骤5.2将{m’J — Μ_,如果门电路输出状态m’_与可达图中已有的状态相同,贝U已计算获得的系统状态Mtjld=Mtjld U {m’J ;否则从状态m到门电路输出状态m’-之间画一条有向边虚线,则状态之间的有向边集合为Erat=Erat+{〈m, m’_>};并在该虚线上标记门电路输出变迁Ut,则有向边上的变迁集合为{W(〈m,m’ 0Ut?=t0UJ —W,说明在状态m下通过激发门电路输出变迁Ut会生成输出状态m’ out ;
[0056]步骤5.3因为从可使能的门电路输出变迁集合Tqut中取走了一个使能变迁,所以Te, 0Ut=Te, out- {tout},再判断可使能的门电路输出变迁集合I; out是否为空集,如果# 0,gp仍有可激发的输出变迁,那么返回步骤5.1 ;如果可使能的门电路输出变迁集合F =0即没有可激发的输出变迁,则继续以下操作;
[0057]步骤5.4因为标记为“new”的状态m是从状态集合Mmw中取出的,所以未计算的系统状态集合Mnrat=Mnrat- {m},并返回步骤3 ;
[0058]步骤6、当状态m下只存在使能的输入变迁,即可使能的输入量变迁集合Tetin ={φ[^tin e Tin,则继续激发一个使能的输入变迁,来改变输入量状态;
[0059]步骤6.1从可使能的输入变迁集合TMn中任取一个输入量变迁tin,激发该变迁,生成门电路输入状态m’ in;
[0060]步骤6.2将{m’J — Min,如果m’in与可达图中已有的状态相同,则已计算获得的系统状态集合Mtjld=Mtjld U {m’in};否则从状态m到m’in2间画一条有向边实线,则状态之间的有向边集合为Ein=Ein+in>};并在该实线上标记输入量变迁tin,则有向边上的变迁集合为{W(〈m,m’in>)=tin} —W,说明在状态m下通过激发输入量变迁tin会生成输入状态m,in ;
[0061]步骤6.2.1判断输入状态m’ in下是否存在可使能的输出变迁,如果m’ in下存在可使能的输出变迁,则跳转到步骤6.2.2,否则跳转到步骤6.2.5 ;
[0062]步骤6.2.2在可使能的门电路输出变迁集合T = [tout \rndL., >} ^ 0,tout e Tout
中任取一个门电路输出变迁Iut,激发变迁,生成门电路输出状态m’ ’ out ;
[0063]步骤6.2.3将{m’’」一Mtjut,如果m’与可达图中已有的状态相同,则已计算获得的系统状态集合Mtjld=Mtjld U {m'' out}眉则从状态^^到^’-之间画一条有向边虚线,则状态之间的 有向边集合为Erat=E^Km' in,m’ ’ out>};并在该虚线上标记门电路输出变迁Ut,则有向边上的变迁集合为in,m’ ’ 0Ut?=t0UJ — W,说明在门电路输入状态m’ in下通过激发门电路输出变迁会生成输出状态m’ ’ out ;
[0064]步骤6.2.4同理可使能的门电路输出变迁集合Tyut=Tyut-1ttjJ,再判断门电路输入状态m’ in下的可使能的门电路输出变迁集合Tqut是否为空集,如果可使能的门电路输出变迁集合?;#0,即仍有可激发的输出变迁,那么返回步骤6.2.2 ;如果可使能的门电路
输出变迁集合=0,即没有可激发的输出变迁,则继续以下操作;
[0065]步骤6.2.5因为在状态m下从可使能的输入量变迁集合TMn中取走了一个使能输入量变迁tin,所以I; in=Te,in- {tj,再判断可使能的输入量变迁集合I; in是否为空集,如果可使能的输入量变迁集合L #0,即仍有可激发的输入变迁,那么返回步骤6.1 ;如果可使能的输入量变迁集合=0,即没有可激发的输入变迁,则继续以下操作;
[0066]步骤6.3未计算的系统状态集合Mnew=Mnew- {m},并返回步骤3。
[0067]本发明根据上述算法,便能获得组合逻辑FPGA系统在不考虑门延迟和线延迟,仅考虑逻辑功能的条件下,并且是一个稳定输入量下所对应的稳定输出的系统状态空间图,为叙述方便,我们把Gfpm简称FPGA可达图。
[0068]实施例:如图1所示为某化工原料生产示意图,其工艺流程简述-.V1' V2和V3分别是原料A、B和C的进料阀,V4是产品出料阀。SpS2和S3是三个液位传感器,用来监测容器中的液位是否达到目标值。M是搅拌器,L是外部定时开关。系统启动后,当液位低于S1时,V1阀打开,原料A注入容器;当液位到达S1,即传感器有信号时,V1阀关闭,同时V2阀打开,原料B注入容器;当液位到达S2时,V2阀关闭,搅拌器M开始搅拌,同时V3阀打开,原料C注入容器;液位到达S3时,M停止搅拌,V3阀关闭,在原料反应一段时间后,出料阀V4打开,外部定时开关L启动计时;当一段时间后,L关闭,V4阀关闭,系统回到最初状态。
[0069]根据上述的工作原理及生产要求,程序员给出了如下所示的VHDL程序。
[0070]library ieee;
[0071]use ieee.std—logic—1164.all;
[0072]entity example is
[0073]port (SI,S2,S3:1n std—logic;
[0074]L:buffer std—logic;
[0075]Vlj V2, V3, V4, M:out std—logic);
[0076]end example;[0077]architecture a of example is
[0078]begin
[0079]VK=Sl ;
[0080]V2<=Sland not S2 ;
[0081]V3<=S2and not S3 ;
[0082]M<=S2and not S3 ;
[0083]V4<=S3and L ;
[0084]L<=S3 ;
[0085]end ;
[0086]根据组合逻辑FPGA系统的Petri网建模方法,把上面的VHDL程序转换为如图2所示的Petri网模型。
[0087]由本发明算法可知,输入变迁集合以及输出变迁集合U,并得到如图3所示的图2的
【权利要求】
1.一种基于Petri网的组合逻辑FPGA系统可达图的生成方法,其特征在于:组合逻辑FPGA系统是在一个稳定输入量下所对应的稳定的门电路输出,并且在门电路逻辑运算阶段,没有新的输入量进来; 假设Petri网(N,m0)是一个组合逻辑FPGA系统的Petri网模型,其中N= (P,T,F),P表示库所的有限集合,T表示变迁的有限集合,表示连接库所和变迁有向弧的集合,mQ表示Petri网的初始标识,另外T=Tin U Tout, Tin表示输入量变迁集合,Tout表示门电路输出变迁集合,I^in是可使能的输入量变迁集合,Tyut是可使能的门电路输出变迁集合,并且7Ln〔 ,Te’。Ut c Tout,一个输入量变迁的激发表示其对应的输入变量状态变化,一个门电路输出 变迁的激发表示其对应的门电路逻辑输出运算; 在所有可达电路状态R(Hitl)中,如果一个状态是由激发输入量变迁演变得到的,那么该状态称为该Petri网模型的电路输入状态;如果一个状态是由激发门电路变迁演变得到的,那么该状态称为该Petri网模型的门级输出状态; 组合逻辑FPGA系统可达图由一个三元组GFPeA=〈M,E,W>,M=Min U Mout, E=Ein U Etjut描述,集合M中的每个节点对应于系统状态空间的一个状态,其中Min和Mtjut分别表示输入状态集合和门电路逻辑运算输出状态集合,输入状态节点为实线圈,输出状态节点为虚线圈,E是一个节点指向另一个节点的有向边的集合,算法中〈m,m’ out>表示从状态m指向m’ out的一条有向边,Ein和Erat分别表不标记为输入量变迁和门电路输出变迁的边的集合,Ein中的边为单箭头实线,Eout中的边为单箭头虚线,集合W中的元素是E到T的一个映射,即每条有向边上都有变迁标记,算法中W(<m, m’ out>) =tout表示在状态m下激发变迁t—得到m’ out,Mnew=Min U Mout是未计算的系统状态集合,Mold=Min U Mout是已计算获得的系统状态集合,当未计算的系统状态集合Mnrat中某个状态的可达状态都已计算获得,则该状态便从未计算的系统状态集合Mnrat中被剔除并添加到已计算获得的系统状态集合Mtjld中;当未计算的系统状态集合Mnrat为空时,算法结束;由激发输入量变迁而获得的输入状态都放入集合Min中,激发门电路输出变迁而获得的门电路输出状态都放入集合Mwt中,具体包括如下步骤: 步骤1、输入系统的Petri网模型,由于起始时不存在输入状态和门电路输出状态,即输入状态集合#?=0和门电路输出状态集合M_=0;也不存在状态之间的有向边以及有向边上的变迁标记,即状态之间的有向边集合E=0和有向边上的变迁集合灰=0., 步骤2、将初始状态mQ标记为“new”,并将{mQj — Mnew ; 步骤3、如果未计算的系统状态集合Μ,#0,则继续以下操作,否则算法结束,输出组合逻辑FPGA系统可达图:
Gfpga=〈M, E, ff>, M=Min U Mout,E=Ein U Eout ; 步骤4、从未计算的系统状态集合M脑中任取一个标记为“new”的状态m ; 步骤4.1如果状态m与可达图中已有的其他状态相同,则将其标记为“old”,已计算获得的系统状态集合Mtjld=Mtjld U {m},然后转向步骤4 ; 步骤4.2如果在状态m下,没有可激发的输入变迁和门电路输出变迁,则将状态m标记为“deadend”,然后转向步骤4 ; 步骤4.3如果在状态m下存在使能变迁,此时会有两种情况:一种是既有可使能的输入变迁又有可使能的门电路输出变迁,则跳转到步骤5 ;另一种是只存在可使能的输入变迁,则跳转到步骤6 ; 步骤5、只要存在可使能的输出变迁,即可使能的门电路输出变迁集合Tut ={t0llt\>n[tolit >}^0, tout e Trat,应当优先激发所有可使能的门电路输出变迁,生成门电路输出状态; 步骤5.1从可使能的门电路输出变迁集合Tyut中任取一个门电路输出变迁Ut,激发该变迁,生成门电路输出状态m’ out ; 步骤5.2将{m’ out} — Mout,如果门电路输出状态m’ out与可达图中已有的状态相同,则已计算获得的系统状态Mtjld=Mtjld U {m’J ;否则从状态m到门电路输出状态m’-之间画一条有向边虚线,则状态之间的有向边集合为Erat=Etjut+{〈m, m’_>};并在该虚线上标记门电路输出变迁U,则有向边上的变迁集合为{W(〈m,m’ out>) =t0UJ — ff,说明在状态m下通过激发门电路输出变迁Iut会生成输出状态m’ out ; 步骤5.3因为从可使能的门电路输出变迁集合Tqut中取走了一个使能变迁,所以Tyut=Tyut-1XJ,再判断可使能的门电路输出变迁集合I^ut是否为空集,如果*0,gp仍有可激发的输出变迁,那么返回步骤5.1 ;如果可使能的门电路输出变迁集合=0,即没有可激发的输出变迁,则继续以下操作; 步骤5.4因为标记为“new”的状态m是从状态集合Mnev中取出的,所以未计算的系统状态集合Mnev=Mnev- {m},并返回步骤3 ; 步骤6、当状态m下只存在使能的输入变迁,即可使能的输入量变迁集合TeM={tin\m[tin >}^0, tin e Tin,则继续激发一个使能的输入变迁,来改变输入量状态; 步骤6.1从可使能的输入变迁集合TMn中任取一个输入量变迁tin,激发该变迁,生成门电路输入状态m’ in ; 步骤6.2将{m’ in} —Min,如果m’in与可达图中已有的状态相同,则已计算获得的系统状态集合Mtjld=Mtjld U {m’ in};否则从状态m到m’ in之间画一条有向边实线,则状态之间的有向边集合为Ein=Ein+{〈m, m’ in>};并在该实线上标记输入量变迁tin,则有向边上的变迁集合为{W (<m, m’in>) =tin} — W,说明在状态m下通过激发输入量变迁tin会生成输入状态m’in ; 步骤6.2.1判断输入状态m’ in下是否存在可使能的输出变迁,如果m’ in下存在可使能的输出变迁,则跳转到步骤6.2.2,否则跳转到步骤6.2.5 ; 步骤6.2.2在可使能的门电路输出变迁集合, ={tou\min[t0i,t >卜0,tout e Tout中任取一个门电路输出变迁Iut,激发变迁,生成门电路输出状态m’ ’ out ; 步骤6.2.3将{m’ ’ out} —Mwt,如果m’ ’ _与可达图中已有的状态相同,则已计算获得的系统状态集合Mtjld=Mtjld U {m’’。」;否则从状态!!!^到^’-之间画一条有向边虚线,则状态之间的有向边集合为Erat=E^Km' in, m’ ’ out>};并在该虚线上标记门电路输出变迁t—,则有向边上的变迁集合为— W,说明在门电路输入状态m’in下通过激发门电路输出变迁Iut会生成输出状态m’ ’ out ; 步骤6.2.4可使能的门电路输出变迁集合Tyut=Tyut-1tJ,再判断门电路输入状态m’ in下的可使能的门电路输出变迁集合Tqut是否为空集,如果可使能的门电路输出变迁集合1- *0,即仍有可激发的输出变迁,那么返回步骤6.2.2 ;如果可使能的门电路输出变迁集合=0,即没有可激发的输出变迁,则继续以下操作; 步骤6.2.5因为在状态m下从可使能的输入量变迁集合TMn中取走了一个使能输入量变迁tin,所以I; in=Te, in- {tj,再判断可使能的输入量变迁集合I; in是否为空集,如果可使能的输入量变迁集合#0,即仍有可激发的输入变迁,那么返回步骤6.1 ;如果可使能的输入量变迁集合U = 0,即没有可激发的输入变迁,则继续以下操作; 步骤6.3未计算的系统 状态集合MnOT=MnOT-{m},并返回步骤3。
【文档编号】G06F17/50GK103699730SQ201310697453
【公开日】2014年4月2日 申请日期:2013年12月18日 优先权日:2013年12月18日
【发明者】罗继亮, 陈珑, 黄颖坤, 倪慧娟 申请人:华侨大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1