CN104298827A - 一种基于Petri网的异步电路建模和VHDL实现方法 - Google Patents
一种基于Petri网的异步电路建模和VHDL实现方法 Download PDFInfo
- Publication number
- CN104298827A CN104298827A CN201410537655.2A CN201410537655A CN104298827A CN 104298827 A CN104298827 A CN 104298827A CN 201410537655 A CN201410537655 A CN 201410537655A CN 104298827 A CN104298827 A CN 104298827A
- Authority
- CN
- China
- Prior art keywords
- transition
- vhdl
- storehouse
- arc
- automatic control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于Petri网的异步电路建模和VHDL实现方法,包括以下步骤:对普通Petri网进行扩展,定义广义同步自控P/T***;根据用户需求,创建待描述的数字***的广义同步自控P/T***模型;对已建立的广义同步自控P/T***模型进行功能分析;对已建立的***模型进行VHDL代码自动转换;对转换后生成的VHDL代码进行***仿真。本发明提出的方法适合于异步电路的建模和VHDL实现。本发明可以降低开发成本,减少设计人员的工作量,增加可靠性,提高开发速度。
Description
技术领域
本发明涉及一种基于Petri网的数字***建模和VHDL实现方法,属于将Petri网用于异步电路的设计领域。
背景技术
Petri网是一种用于***的图形化建模工具,具有直观的图形表示和坚实的数学基础,它具有强大的描述异步、并发等能力。在数字***建模、分析与综合中得到了广泛的应用。
为了提高Petri网用于数字***的建模和分析能力,许多学者对Petri网进行了扩展,主要表现为在普通Petri网的基础上增强了与环境的交互。由于FPGA和CPLD的问世及其在应用方面的迅速推广,各种EDA软件工具相继出现,并且功能不断增强,硬件设计变为“软件化”,从而可以根据Petri网的拓扑结构用硬件加以实现。与其它硬件描述语言相比,VHDL具有较强的行为描述能力,描述层次比较高,支持大规模设计的分解和已有设计的复用功能。对Petri网模型用VHDL进行描述,即可方便的完成Petri网模型的硬件实现。针对Petri网用于数字***的建模、分析与综合,发表的文献主要包括:
《DIRECT IMPLEMENTATION OF PETRI NET BASED MODEL IN FPGA》和《FromPetri net models to VHDL implementation of digital controllers》主要采用了Petri网标记语言(PNML)来对Petri网进行描述表示,并给出了相应规则实现PNML到VHDL代码的自转换。
《DEVELOPMENT PROCESS FOR DEPENDABLE HIGH-PERFORMANCE CONTRO-LLERS USING PETRI Nets and FPGA Technology》一文提出了基于信号解释Petri网(SIPN)对控制器建模,并将SIPN中的变迁、库所、输出信号和定时器等各类元素,映射到VHDL语言中的不同逻辑表达式。《From Petri Net Models to VHDL Implementation of DigitalControllers》一文在库所变迁网基础上,规范了网和环境之间的接口,提出了用于数字控制器建模的输入输出库所变迁网(IOPT网)且采用了PNML语言对Petri网模型描述,进而开发了包括图形编辑器、自动代码产生器和仿真器等在内的一组工具集。从而较好的支持了从规范到实施的完整的***开发过程。《FPGA-based Implementation of Synchronous PetriNets》定义了一种同步Petri网用于时钟驱动逻辑电路规范。《Petri网-VHDL编译程序的构造》提出将Petri网中的C/E***转换为VHDL代码的方法,具体用CONPAR语言对C/E***进行描述,获得CONPAR格式的Petri网文本文件;通过编译工具软件FLEX、BYACC,产生VHDL代码。
以上所提出的Petri网软件工具所综合的控制器电路均为同步实现。与同步电路相比,异步电路具有功耗低、高速、电磁辐射低、模块化程度高、可移植性强和没有时钟偏差(skew)等诸多优势。Petri网用于异步电路方面,目前用得较多的电路综合方法是信号转换图(Signal Transition Graph,STG),但STG存在状态组合***和编码复杂的缺点。
为了将Petri网用于异步电路的设计,Petri网仅仅在逻辑级描述***是远远不够的,需要扩展Petri网的建模能力。Petri网模型只有直接映射的方式才能避免状态组合***,但电路实现需要有支撑的逻辑器件。同步电路中采用全局时钟,所以触发器只需要一个时钟,但一般的触发器不适合用于具有多个输入输出变迁的库所的实现。赵不贿教授发明的多输入-多时钟维持阻塞型D触发器可应用于时序电路的设计,特别是由事件驱动的分布式***和异步电路的设计,能够实现多路数据的锁存,但针对数字***的Petri网模型,如何基于此类器件实现VHDL的实现尚未给出有效方法。
自控网***(cyber net system)又称为自修正***(self-modifying system),是C.A.Petri提出的有向弧的权受控的Petri网,它的意义在于使Petri网中的有向弧的权由常量变成了变量,从而更加清楚地表现***参数受***状态的影响,反映出***内部更为复杂的耦合关系。但目前利用自控网***对数字***建模、分析与硬件实现的方法尚未见报道。
发明内容
本发明对普通Petri网进行扩展,定义广义同步自控P/T***,基于此对数字***建模,并实现广义同步自控P/T***模型向VHDL的自动转换。
本发明的目的及解决其技术问题采用以下技术方案来实现。依据本发明提出的一种基于Petri网的数字***建模和VHDL实现方法,包括以下步骤:
步骤1,对普通Petri网进行扩展,定义广义同步自控P/T***;
步骤2,根据用户需求,创建待描述的数字***的广义同步自控P/T***模型;
步骤3,对已建立的广义同步自控P/T***模型进行功能分析;
步骤4,对已建立的***模型进行VHDL代码自动转换;
步骤5,对转换后生成的VHDL代码进行***仿真。
进一步,所述步骤1从普通Petri网本质出发,对P/T***和自控网***的定义进行扩展,定义广义自控P/T***;针对广义自控P/T***的图形表示,提出一类特殊的权控制弧:读弧和写弧;进而在广义同步自控P/T***定义的基础上引入同步事件,定义广义同步自控P/T***(GSCPT)。
进一步,所述步骤2采用图形建模方式,根据广义同步自控P/T***模型的网规则建立待描述的数字***的GSCPT***模型。
进一步,所述的步骤3具体包括:
步骤3.1,从步骤2所建立的GSCPT模型中包含的信号的波形文件中提取并记录外部事件信息,按时序关系存于外部事件列表中,波形文件可利用EDA设计软件建立;
步骤3.2,基于状态方程构造模型的可达标识集,可达标识集采用链表结构存储,分析模型标识的演化情况。
进一步,所述步骤3.2中可达标识集的构造算法如下:
步骤3.2.1,创建初始表头结点,在链表结点结构的Markings域存放网初始标识M0,则当前标识为初始标识;
步骤3.2.2,在当前标识下,若有变迁使能且未关联外部事件,则该变迁发生,根据状态方程计算后续标识M,并生成一新的链表结点,其Markings域为M,链表结点结构的FireCondition域为发生的变迁名,将该结点加入链表的尾部;
步骤3.2.3,对取出的表头结点,根据变迁使能规则找出在当前标识下网中所有的使能变迁,若使能变迁数为0,则构造过程结束,否则将所有使能变迁加入集合FiresSet中;
步骤3.2.4,找与此变迁集合FiresSet中变迁关联的事件中最先发生的外部事件E,若E存在则与之关联的变迁发生,根据状态方程计算后续标识M′,并生成一新的链表结点,其Markings域为M′,FireCondition域为发生的变迁名和外部事件E名,将该结点加入链表的尾部,转步骤3.2.2;若外部事件列表已搜索完毕,则构造过程结束。
进一步,所述步骤4具体包括:
步骤4.1,构造多输入多时钟维持阻塞型D触发器的IP核;
步骤4.2,采用直接映射的转换策略,具体转换以库所为核心,由库所的输入弧构建输入转换块,由库所的输出弧构建输出转换块,通过定义一系列的转化规则自动完成广义同步自控P/T***模型到VHDL代码的转换。
进一步,所述步骤4.1的IP核设计的功能模块包括数据输入模块和输出锁存模块,其中数据输入模块用于实现电路原理图中输入单元功能,输出锁存模块用于实现电路原理图中输出锁存模块功能。
进一步,所述步骤4.2中广义同步自控P/T***模型到VHDL代码转换的规则为:
步骤4.2.1,库所的输入转换块映射为条件信号赋值语句;输入转换块由输入弧及其相连的变迁构成,其中变迁的使能条件映射为赋值表达式中的赋值条件,根据输入弧的类型和权值函数映射为具体的赋值表达式,由于广义同步自控P/T***中变迁关联有事件,通过创建中间信号以存储运算结果;
步骤4.2.2,库所的输出转换块转换规则与输入转换块类似,亦映射为条件信号赋值语句,输出转换块由输出弧及其相连的变迁构成,根据输出弧的类型和权值函数映射为具体的赋值表达式;
步骤4.2.3,库所映射为存储器。
进一步,所述步骤4.2.3中库所映射为存储器的规则如下:
步骤a,存储器的位数根据库所设定的容量函数确定,初值由库所的初始托肯数确定;
步骤b,时钟触发端个数为库所的输入弧和输出弧个数之和,各时钟触发端信号根据库所前集变迁和后集变迁相关联的事件类型区别对待;
步骤c,数据输入端信号为库所的输入转换块和输出转换块映射的VHDL代码中所创建的中间信号。
借由上述技术方案、本发明基于广义同步自控网P/T***模型的数字***硬件实现方法至少具有下列优点及有益效果:
通过对Petri网定义的扩展,提出了广义同步自控P/T***,用于对数字***从算法级和***级进行建模。基于多输入-多时钟端维持阻塞型D触发器器件,设计了相应的IP软核,实现了广义同步自控P/T***模型到VHDL程序的自动转换,从而为数字***的建模、仿真与综合,提供了一套从规范级到实现级的完整方法。本发明提出的方法适合于异步电路的建模和VHDL实现。本发明可以降低开发成本,减少设计人员的工作量,增加可靠性,提高开发速度。
附图说明
图1是本发明基于Petri网的数字***的VHDL实现方法流程图;
图2是本发明定义的广义自控P/T***模型及其读写弧表示示意图;
图3是本发明具体实施方式建立的广义同步自控P/T***模型示意图;
图4是本发明具体实施方式中构造可达标识集采用的数据结构;
图5是本发明具体实施例模型中外部信号时序图示意图;
图6是图3模型的可达标识集的演变图;
图7是3输入-3时钟端维持阻塞型D触发器的电路原理图;
图8是3输入-3时钟端维持阻塞型D触发器IP核设计结构原理图;
图9是对图3模型进行自动转换所得VHDL代码的功能仿真波形图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,下面结合附图及实施例,对依据本发明提出的基于广义同步自控P/T***模型的数字***的VHDL实现方法的具体实施方式,做详细说明如后。
步骤1定义广义同步自控P/T***。
本发明中,在普通P/T***的基础上进行扩展,首先对广义自控P/T***进行形式化语法定义。用∑表示如下:
∑=(S,T;F,K,W,M0),其中:
1)N=(S,T;F)构成有向网,称为∑的基网。
2)K={KL,KH}称为N上的容量函数;
KL:S→R;KH:S→R。KL和KH分别称为下界容量函数和上界容量函数。KL(s)<KH(S),s的容量可表示为[KL(s),KH(s)]。当KL(s)、KH(s)为无穷时,容量的闭区间变成开区间。
3)W:F→R∪Exp(S)称为N上的权函数;其中Exp(S)是S元素的函数表达式集。
4)M:S→R称为N的标识,M0称为∑的初始标识。
若在广义自控P/T***中,对所有的s∈S,令KL(s)=0,KH(s)=∞,且W:F→N∪S,则广义自控P/T***就成为自控网***。因此广义自控P/T***状态方程可写成自控网***的状态方程形式:
M′=M0+→C·U。
其中矩阵运算符“+→”表替换加,C为∑的关联矩阵,U为∑的并发步序列U1U2…Uk的矩阵表示。
针对广义自控P/T***的图形表示,本发明提出了一类特殊的权控制弧:读弧和写弧。图2(a)表示了一个广义自控网***,在该网***下,变迁t发生时,库所s1、s2中的标识值不变,而库所s3标识值更新为只与s1、s2标识值有关,与原标识值无关。图2(b)是使用读写弧的广义自控网***,图形上读弧和写弧用中间带有箭头的有向弧来表示。
本发明中,定义广义同步自控P/T***作为数字***模型,用GSCPT表示如下:
GSCPT=(∑,E,G),其中
1)∑=(S,T;F,K,W,M0)是一个广义自控P/T***;
2)G:T→E∪{ε},其中E为∑的事件集,ε表示一个恒发生事件。
在GSCPT模型中,与变迁关联的外部事件标注在变迁图符旁,当变迁与ε关联时,采取默认方法,即图形上不标明事件ε。
从以上定义可以看出,广义同步自控P/T***是P/T***的扩展,具有以下特点:
(1)变迁与事件相关联;当一个变迁有发生权且与之关联事件为真时,变迁发生。
(2)弧的权函数为以S元为变量,以正整数(含0)为值的函数;
(3)***弧类型包含读弧和写弧;读弧和写弧是一种特殊的权控制弧,若一个变迁通过读弧和写弧分别连接库所,则变迁发生时,通过读弧相连的库所不改变托肯数,通过写弧相连的库所托肯数由弧权值更新。
(4)库所与容量函数相联系,从而完整的对的***对象的数量进行约束。
步骤2创建广义同步自控P/T***模型。
采用图形建模方式,以直观的交互式的方式建立待描述的数字***的GSCPT***模型。模型中库所用圆表示,变迁用矩形表示,弧用带箭头的直线或折线表示,根据线和箭头的形状来区分普通弧和控制弧,变迁关联的事件显示于变迁图符旁,以符号“↑”或“↓”后紧跟信号名表示。具体建模时,用鼠标选择相应的库所工具按钮或变迁工具按钮并在屏幕上指定位置单击鼠标,相应的库所或变迁图形即自动生成,而对于弧的创建操作,只需用鼠标分别单击弧的起点和终点控件后自动绘制出相应的弧线。通过Windows的消息响应机制,可以对当前选中的模型中某个控件响应鼠标和键盘等各种事件,以实现控件的移动、删除以及属性修改等操作。创建具体实施例的广义同步自控P/T***模型如图3所示。该模型中,外部信号包括S、X1、X2。T3、T4和T5均关联信号S上升沿,当S上升沿到来时,读取库所P0、P1和P2中的数据分别存入库所P3、P4和P5中。变迁T1与T2分别关联信号X1上升沿与X2的下降沿,变迁T6未关联外部事件。
步骤3 对已建立的GSCPT模型***进行功能分析。
步骤3.1 从波形文件中提取并记录外部事件信息,按时序关系存于外部事件列表中,波形文件可利用Quartus、ISE、Modelsim等EDA设计软件建立;
步骤3.2 基于状态方程构造模型的可达标识集,分析模型标识的演化情况。
可达标识集采用链表结构存储,链表的结点结构如图4所示。在该结点中,Name域表示结点的名称,Markings表示***模型的标识,FireCondition表示到达本结点标识的发生变迁和外部事件,Next为指向后继结点的指针。
***可达标识集的构造算法如下:
①创建初始表头结点,其Markings域存放网初始标识M0,当前标识为初始标识;
②在当前标识下,若有变迁使能且未关联外部事件,则该变迁发生,根据状态方程计算后续标识M,并生成一新的链表结点,其Markings域为M,FireCondition域为发生的变迁名,将该结点加入链表的尾部;
③对取出的表头结点,根据变迁使能规则,找出在当前标识下网中所有的使能变迁,若使能变迁数为0,则构造过程结束,否则将所有使能变迁加入集合FiresSet中。
④找与集合FiresSet中的变迁关联的事件中最先发生的外部事件E,若E存在则与之关联的变迁发生,根据状态方程计算后续标识M′,并生成一新的链表结点,其Markings域为M′,FireCondition域为发生的变迁名和外部事件E名,将该结点加入链表的尾部,转②;若外部事件列表已搜索完毕,则构造过程结束。
图5是本发明具体实施例模型中外部信号时序图示意图;图6为实施例模型可达标识集的演变图,可以分析:当S的上升沿到来时,变迁T3、T4和T5发生,***状态从初始标识(5,2,4,0,0,0,0)变成(5,2,4,5,2,4,0);当X1的第一个上升沿到来时,变迁T1发生,***状态变成(5,2,4,3,6,4,0);当X2的第一个下降沿到来时,变迁T2发生,***状态变为(5,2,4,3,3,5,0);当X2的第二个下降沿到来时,变迁T2发生,***状态变为(5,2,4,3,3,6,0),在此状态下,变迁T6发生,***状态变成(5,2,4,3,0,0,3)。
通过从EDA设计软件中建立的波形文件中提取信号的时序图,基于状态方程分析标识的演化情况,对所建立的模型进行功能仿真。
步骤4 对已建立的***模型进行VHDL代码转换。
步骤4.1 多输入多时钟D触发器的IP核构造
本发明采用赵不贿教授发明的多输入-多时钟维持阻塞型D触发器作为***的存储器件,此类触发器应用于时序电路的设计,特别是由事件驱动的分布式***和异步电路的设计,能够实现多路数据的锁存。该D触发器每路数据输入端分别对应一个时钟触发端,每个时钟触发端用来接受一个外部事件。当外部事件发生时,相应的数据输入端的数据被锁存。
图7是一个3输入-3时钟端维持阻塞型D触发器的电路原理图,具体由3个输入单元(参见图7中的虚线框1)和1个多输入基本锁存器(图7中的虚线框2中)组成。该触发器有3个数据输入端d1、d2和d3,对应的3个时钟触发端分别是CP1、CP2和CP3,输出端为q和nq,nq与q是逻辑互补关系。3组输入,正常情况下只有一组有效。
为了有效的利用此类触发器完成广义同步自控P/T***的VHDL实现,采用VHDL语言将其设计成可配置的IP软核。IP软核设计的功能模块包括输入模块和输出锁存模块,其中数据输入模块用于实现电路原理图中输入单元功能,输出锁存模块用于实现电路原理图中输出锁存模块功能,输入模块中输出信号finished用于指示输入时钟变化,当任一时钟触发端信号上升沿到达,则此信号置为1。IP软核设计中增加了设置触发器初始值功能。图7中所示3输入-3时钟端维持阻塞型D触发器具体IP核设计结构原理参见图8。
生成的IP软核的接口如下:
该接口中定义了类属参量n,用于表明多输入-多时钟端维持阻塞型D触发器的电路结构,各端口信号功能说明如下:
d(n-1...0)和cp(n-1...0):n个数据输入端和对应的时钟触发端;
q和nq:数据输出端和反向数据输出端;
rst:复位信号,有效后将数据输出端清0;
set:置位信号,有效后将数据输出端置1;
finished:时钟触发指示信号。
单个触发器只能表示一位二进制数,由多个多输入多时钟D触发器即可组成存储器,从而实现多位数据的存储。
步骤4.2 进行广义同步自控P/T***模型的VHDL代码自动转换。
从广义同步自控P/T***模型到VHDL代码转换过程采用直接映射的转换策略,即将***模型中库所由多输入多时钟D触发器组成的存储器所表示,弧映射为组合电路运算表达式,变迁的发生就是将组合电路运算的结果锁存到存储器中。具体转换以库所为核心,由库所的输入弧构建输入转换块,由库所的输出弧构建输出转换块,将库所、输入转换块和输出转换块分别转换为不同的VHDL表达式。转换规则如下:
1)库所的输入转换块映射为条件信号赋值语句。输入转换块由输入弧及其相连的变迁构成,其中变迁的使能条件映射为赋值表达式中的赋值条件,根据输入弧的类型和权值函数映射为具体的赋值表达式。由于广义同步自控P/T***中变迁关联有事件,通过创建中间信号以存储运算结果。
2)库所的输出转换块转换规则与输入转换块类似,亦映射为条件信号赋值语句。输出转换块由输出弧及其相连的变迁构成,根据输出弧的类型和权值函数映射为具体的赋值表达式。
3)库所映射为存储器,规则如下。
a)存储器的位数根据库所设定的容量函数确定,初值由库所的初始托肯数确定。
b)时钟触发端个数为库所的输入弧和输出弧个数之和,各时钟触发端信号根据库所前集变迁和后集变迁相关联的事件类型区别对待。若s∈x,t∈·sVs·,
①t→e,e∈E,则存储器对应此变迁的时钟触发端信号即为e所对应的信号;
②t→ε,则构造一事件e′,满足当变迁t使能条件满足时,e′发生,从而存储器对应此变迁的时钟触发端信号为e′所对应的信号;
c)数据输入端信号为库所的输入转换块和输出转换块映射的VHDL代码中所创建的中间信号。
下面结合图3中模型为例来说明VHDL自动转换过程。考查图中的库所P5,该库所包含两个输入转换块,其中与T2相连的弧类型为普通弧,与T5相连的弧类型为写弧;P5包含一个输出转换块。库所映射为存储器具体通过例化步骤4.1中Dtrigger IP核实现。图3中P5库所转换生成的VHDL代码如下,其中常量widthn为存储器的位数,常量P4Init保存存储器初值,T6Signal是为变迁T6构造的信号。
步骤5对转换后生成的VHDL代码进行***功能仿真。
根据步骤4自动产生的VHDL代码,基于Xilinx ISE、Altera QuartusII或Modelsim平台下进行功能仿真。针对图3所示的模型转换后的VHDL代码,在ISE平台下功能仿真结果如图9所示。从图中可以看出,仿真结果与图6中所示可达标识集的标识演化结果一致,说明广义自控网***的动态方程可以用来作为数字电路的功能仿真计算模型。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定专利保护范围。
Claims (9)
1.基于Petri网的异步电路建模和VHDL实现方法,其特征在于,包括以下步骤:
步骤1,对普通Petri网进行扩展,定义广义同步自控P/T***;
步骤2,根据用户需求,创建待描述的数字***的广义同步自控P/T***模型;
步骤3,对已建立的广义同步自控P/T***模型进行功能分析;
步骤4,对已建立的***模型进行VHDL代码自动转换;
步骤5,对转换后生成的VHDL代码进行***仿真。
2.根据权利要求1所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述步骤1从普通Petri网本质出发,对P/T***和自控网***的定义进行扩展,定义广义自控P/T***;针对广义自控P/T***的图形表示,提出一类特殊的权控制弧:读弧和写弧;进而在广义同步自控P/T***定义的基础上引入同步事件,定义广义同步自控P/T***(GSCPT)。
3.根据权利要求1所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述步骤2采用图形建模方式,根据广义同步自控P/T***模型的网规则建立待描述的数字***的GSCPT***模型。
4.根据权利要求1所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述的步骤3具体包括:
步骤3.1,从步骤2所建立的GSCPT模型中包含的信号的波形文件中提取并记录外部事件信息,按时序关系存于外部事件列表中,波形文件可利用EDA设计软件建立;
步骤3.2,基于状态方程构造模型的可达标识集,可达标识集采用链表结构存储,分析模型标识的演化情况。
5.根据权利要求4所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述步骤3.2中可达标识集的构造算法如下:
步骤3.2.1,创建初始表头结点,在链表结点结构的Markings域存放网初始标识M0,则当前标识为初始标识;
步骤3.2.2,在当前标识下,若有变迁使能且未关联外部事件,则该变迁发生,根据状态方程计算后续标识M,并生成一新的链表结点,其Markings域为M,链表结点结构的FireCondition域为发生的变迁名,将该结点加入链表的尾部;
步骤3.2.3,对取出的表头结点,根据变迁使能规则找出在当前标识下网中所有的使能变迁,若使能变迁数为0,则构造过程结束,否则将所有使能变迁加入集合FiresSet中;
步骤3.2.4,找与此变迁集合FiresSet中变迁关联的事件中最先发生的外部事件E,若E存在则与之关联的变迁发生,根据状态方程计算后续标识M′,并生成一新的链表结点,其Markings域为M′,FireCondition域为发生的变迁名和外部事件E名,将该结点加入链表的尾部,转步骤3.2.2;若外部事件列表已搜索完毕,则构造过程结束。
6.根据权利要求1所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述步骤4具体包括:
步骤4.1,构造多输入多时钟维持阻塞型D触发器的IP核;
步骤4.2,采用直接映射的转换策略,具体转换以库所为核心,由库所的输入弧构建输入转换块,由库所的输出弧构建输出转换块,通过定义一系列的转化规则自动完成广义同步自控P/T***模型到VHDL代码的转换。
7.根据权利要求6所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述步骤4.1的IP核设计的功能模块包括数据输入模块和输出锁存模块,其中数据输入模块用于实现电路原理图中输入单元功能,输出锁存模块用于实现电路原理图中输出锁存模块功能。
8.根据权利要求6所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述步骤4.2中广义同步自控P/T***模型到VHDL代码转换的规则为:
步骤4.2.1,库所的输入转换块映射为条件信号赋值语句;输入转换块由输入弧及其相连的变迁构成,其中变迁的使能条件映射为赋值表达式中的赋值条件,根据输入弧的类型和权值函数映射为具体的赋值表达式,由于广义同步自控P/T***中变迁关联有事件,通过创建中间信号以存储运算结果;
步骤4.2.2,库所的输出转换块转换规则与输入转换块类似,亦映射为条件信号赋值语句,输出转换块由输出弧及其相连的变迁构成,根据输出弧的类型和权值函数映射为具体的赋值表达式;
步骤4.2.3,库所映射为存储器。
9.根据权利要求8所述的基于Petri网的异步电路建模和VHDL实现方法,其特征在于,所述步骤4.2.3中库所映射为存储器的规则如下:
步骤a,存储器的位数根据库所设定的容量函数确定,初值由库所的初始托肯数确定;
步骤b,时钟触发端个数为库所的输入弧和输出弧个数之和,各时钟触发端信号根据库所前集变迁和后集变迁相关联的事件类型区别对待;
步骤c,数据输入端信号为库所的输入转换块和输出转换块映射的VHDL代码中所创建的中间信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410537655.2A CN104298827B (zh) | 2014-10-13 | 2014-10-13 | 一种基于Petri网的异步电路建模和VHDL实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410537655.2A CN104298827B (zh) | 2014-10-13 | 2014-10-13 | 一种基于Petri网的异步电路建模和VHDL实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298827A true CN104298827A (zh) | 2015-01-21 |
CN104298827B CN104298827B (zh) | 2017-06-27 |
Family
ID=52318551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410537655.2A Expired - Fee Related CN104298827B (zh) | 2014-10-13 | 2014-10-13 | 一种基于Petri网的异步电路建模和VHDL实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298827B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139161A (zh) * | 2015-10-14 | 2015-12-09 | 常州大学 | 一种基于Petri网的虚拟企业建模与调度方法 |
CN109740177A (zh) * | 2018-11-23 | 2019-05-10 | 张墅 | 一种基于程序语言的印制线路板原理图的设计方法 |
CN112613199A (zh) * | 2020-09-12 | 2021-04-06 | 山东科技大学 | FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具 |
CN112632806A (zh) * | 2020-09-12 | 2021-04-09 | 山东科技大学 | 一种Petri网Verilog HDL代码生成方法 |
CN112883595A (zh) * | 2021-04-16 | 2021-06-01 | 山东建筑大学 | 用于多机器人制造***的嵌入式***仿真方法及*** |
CN114925520A (zh) * | 2022-05-19 | 2022-08-19 | 河南大学 | 一种遥感数据处理流程的自动形式化建模方法及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202385065U (zh) * | 2011-08-02 | 2012-08-15 | 江苏大学 | 一种多输入-多时钟维持阻塞型d触发器 |
-
2014
- 2014-10-13 CN CN201410537655.2A patent/CN104298827B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202385065U (zh) * | 2011-08-02 | 2012-08-15 | 江苏大学 | 一种多输入-多时钟维持阻塞型d触发器 |
Non-Patent Citations (6)
Title |
---|
万军: "并行计算的Petri网建模和FPGA实现", 《计算机应用研究》 * |
万军: "自控网***建模工具的研究与开发", 《计算机科学》 * |
赵不贿: "控制电路基于Petri网元件的图形化设计与仿真研究", 《电路与***学报》 * |
郑博: "基于Petri网的棉花图像处理***模块化设计方法", 《农业工程学报》 * |
陆继远: "同步Petri网的仿真及硬件实现", 《电讯技术》 * |
陆阳: "基于约束组合CTPN的带式输送机***建模", 《***仿真学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139161A (zh) * | 2015-10-14 | 2015-12-09 | 常州大学 | 一种基于Petri网的虚拟企业建模与调度方法 |
CN105139161B (zh) * | 2015-10-14 | 2018-10-16 | 常州大学 | 一种基于Petri网的虚拟企业建模与调度方法 |
CN109740177A (zh) * | 2018-11-23 | 2019-05-10 | 张墅 | 一种基于程序语言的印制线路板原理图的设计方法 |
CN112613199A (zh) * | 2020-09-12 | 2021-04-06 | 山东科技大学 | FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具 |
CN112632806A (zh) * | 2020-09-12 | 2021-04-09 | 山东科技大学 | 一种Petri网Verilog HDL代码生成方法 |
CN112613199B (zh) * | 2020-09-12 | 2022-05-24 | 山东科技大学 | FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具 |
CN112883595A (zh) * | 2021-04-16 | 2021-06-01 | 山东建筑大学 | 用于多机器人制造***的嵌入式***仿真方法及*** |
CN114925520A (zh) * | 2022-05-19 | 2022-08-19 | 河南大学 | 一种遥感数据处理流程的自动形式化建模方法及*** |
CN114925520B (zh) * | 2022-05-19 | 2024-07-09 | 河南大学 | 一种遥感数据处理流程的自动形式化建模方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104298827B (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104298827A (zh) | 一种基于Petri网的异步电路建模和VHDL实现方法 | |
US7739629B2 (en) | Method and mechanism for implementing electronic designs having power information specifications background | |
CN1885295B (zh) | 使用逻辑单元建置集成电路 | |
CN103793562B (zh) | 基于fpga的有源配电网暂态实时仿真***设计方法 | |
EP1964266B1 (en) | A method for multi-cycle clock gating | |
CN103914580B (zh) | 一种用于fpga电路位流仿真的方法 | |
JP4393450B2 (ja) | 論理回路モデル変換装置及び論理回路モデル変換プログラム | |
CN102831273B (zh) | 包含双边沿触发器的数字集成电路设计方法 | |
US9443050B2 (en) | Low-voltage swing circuit modifications | |
JP2015524590A (ja) | 相対タイミングアーキテクチャ | |
CN104899076A (zh) | 一种超大规模集成电路门级网表仿真的加速方法 | |
US11461523B1 (en) | Glitch analysis and glitch power estimation system | |
KR20220148913A (ko) | 초기 단계 회로 설계에서 기계 학습 기반 메트릭 예측 | |
CN109687848A (zh) | 一种逻辑功能可配置的可逆触发器及其配置方法 | |
US11526641B2 (en) | Formal gated clock conversion for field programmable gate array (FPGA) synthesis | |
CN107357948A (zh) | 用于建立fpga网表的方法 | |
CN105447215B (zh) | 数字电路设计方法及相关的*** | |
CN107844678B (zh) | 包含IP/Memory时序路径的spice仿真方法 | |
CN100527138C (zh) | 集成电路元件的模拟实例产生方法与装置 | |
Li et al. | Verilog-to-PyG-A Framework for Graph Learning and Augmentation on RTL Designs | |
Bommu et al. | Retiming-based factorization for sequential logic optimization | |
Han et al. | Clocked and asynchronous FIFO characterization and comparison | |
JP2010257003A (ja) | 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体 | |
Masoumi et al. | New tool for converting high-level representations of finite state machines to verilog hdl | |
US11816409B1 (en) | Strongly connected component (SCC) graph representation for interactive analysis of overlapping loops in emulation and prototyping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170627 Termination date: 20171013 |