CN112613199B - FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具 - Google Patents
FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具 Download PDFInfo
- Publication number
- CN112613199B CN112613199B CN202011500487.1A CN202011500487A CN112613199B CN 112613199 B CN112613199 B CN 112613199B CN 202011500487 A CN202011500487 A CN 202011500487A CN 112613199 B CN112613199 B CN 112613199B
- Authority
- CN
- China
- Prior art keywords
- library
- transition
- arc
- color
- token
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/22—Design optimisation, verification or simulation using Petri net models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具,针对基于通用计算机系统的软件相较于基于FPGA的硬件系统仿真速度较慢,且难以描述Petri网的并发结构;而人工使用Verilog进行有色Petri网的描述会随有色Petri网规模的增加而难以实现的问题,本发明提供了一套标准的FPGA加速的有色Petri网Verilog HDL代码生成工具,仅需要编写Petri网描述文档,通过结构体循环方式自动生成代码,避免了人工编写的困难,将生成的Verilog描述文件经过综合、布局布线生成FPGA配置文件后,能够借助FPGA加速提高仿真的速度。
Description
技术领域
本发明涉及有色Petri网的FPGA加速仿真实现方法及其Verilog HDL代码的自动生成,属于计算机技术领域。
背景技术
Petri网是一种适合于对并发、异步、分布式系统进行分析的理论。由于Petri网的结构简单,便于用图形进行直观表达,提供了一种以图形和数学为基础的形式化建模方法。随着计算机技术的发展,待解决问题复杂性的提高,为了满足不同实际问题的需要,Petri网建模理论从简单Petri网开始逐渐发展出了有色Petri网等高级Petri网,这又进一步拓宽了Petri网的应用范围。有色Petri网目前已成功用于对软件系统建模与分析、对通信协议的建模与分析等领域。为了仿真有色petri网,研究学者设计开发了许多仿真软件,其中比较著名的是CPN tools;但基于通用计算机系统的软件相较于基于FPGA的硬件系统仿真速度较慢,且难以描述Petri网的并发结构;而人工使用Verilog进行有色Petri网的描述会随有色Petri网规模的增加而难以实现。因此研究有色Petri网的FPGA加速的仿真实现方法及Verilog HDL代码生成工具是有必要的。
发明内容
为了解决上述问题,本发明提出了一种FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具;
其中,所述的FPGA加速的有色Petri网仿真方法,该方法主要步骤包括:
一、有色Petri网参数的分析;二、有色Petri网描述文档的编写;三、生成有色Petri网的Verilog HDL设计文件;四、将生成的Verilog描述文件经过综合、布局布线生成FPGA配置文件后,通过下载器将其配置到FPGA中进行仿真。
一、有色Petri网参数的分析,包括以下步骤:
(1)确定库所与变迁的个数;
(2)确定每个库所包含的不同的token的颜色的个数;
(3)确定每个变迁的发生颜色的个数;
(4)确定库所与变迁之间的流关系,并用库所的全局关联矩阵表示;
(5)确定库所对token的容限;
(6)确定每个库所中token的初始数量,即确定有色Petri网的初状态。
其中,所述的库所的全局关联矩阵是为了描述有色Petri网的流关系而定义的,分为“库所的前向全局关联矩阵”与“库所的后向全局关联矩阵”两类,有色Petri网中每个库所都对应有一个前向矩阵和一个后向矩阵。Petri网中前向与后向表示的是流关系的方向,前向指流关系从库所指向变迁,后向值流关系从变迁指向库所。本发明中定义的矩阵不是数学意义上的矩阵,而更类似于有一定行数列数的表格,每个矩阵的“单元格”中存放的是一组具有特殊含义的文本。“库所的全局关联矩阵”中每一项对应变迁的一种发生颜色;其由基本元素构成,每个基本元素对应库所中的一种token,基本元素为字符串“颜色标识符:权值”,颜色标识符是流关系对应库所token的颜色,权值表示此流关系发生时对相应颜色token数量的影响;每一项的不同基本元素之间用符号“+”相连;如果矩阵中某项对应的变迁的发生颜色与该库所之间没有流关系,直接用字符串“0:0”表示。
任何一个库所的全局关联矩阵可表示为如下的矩阵形式:
其中Co1:Cot表示该库所包含的t种token的颜色,表示变迁Tn在发生颜色cm下对颜色为Cot的token的数量的影响(弧的权值),如果变迁Tn在发生颜色cm下对颜色为Cot的token的数量的影响为零,即变迁Tn在发生颜色cm下对Cot-token的流关系不存在,则用“+”连接的该项可以不写;但如果变迁Tn在发生颜色cm下对库所的所有token都不产生影响,此时这一整项需用0:0填写,以表示流关系不存在。n是变迁的个数,m是变迁发生颜色的个数最大值。
二、有色Petri网描述文档的编写;
所述的描述文档包括:库所与变迁的个数描述部分、变迁发生颜色的个数描述部分、库所中token颜色的个数描述部分、库所的前向流关系描述部分、库所的后向流关系描述部分、库所的token容限描述部分和有色Petri网的初状态描述文档部分;
其中,库所与变迁的个数描述部分中包含库所的个数和变迁的个数表达式;
变迁发生颜色的个数描述部分为各个变迁发生颜色个数的列表;
库所中token颜色的个数描述部分为各个库所中token颜色的个数的列表;
库所的前向流关系描述部分为各个库所前向全局关联矩阵的列表;
库所的后向流关系描述部分为各个库所后向全局关联矩阵的列表;
库所的token容限描述部分为各个库所对各个颜色token的最大容量值的列表,其由颜色标识符区分颜色;
有色Petri网的初状态描述部分为初始状态下各个库所中各颜色token的数量的列表,其由颜色标识符区分颜色。
三、生成有色Petri网的Verilog HDL设计文件;
根据有色Petri网描述文档进行参数分析和整理,将上述描述文档中的参数更新至对应的库所、变迁和单色弧链表及定义的常量与变量中,所述的库所、变迁和单色弧链表及定义的常量与变量具体包括:
(1)定义常量:库所最大扇入扇出单色弧个数
(2)定义常量:库所变迁数量最大个数
(3)定义常量:每个库所颜色个数的最大值
(4)定义常量:变迁发生规则的最大个数
(5)定义常量:每个变迁发生规则中条件个数的最大值
(6)定义常量:默认托肯容量
(7)定义变量:库所的个数
(8)定义变量:变迁的个数
(9)单色弧结构体链表包括:
弧的编号;
与弧连接的库所编号;
与弧连接的变迁编号;
表征弧的方向0:库所>变迁,1:变迁>库所;
该弧的颜色对应于变迁所有发生规则的编号;
该弧的颜色在库所所有颜色中的编号;
保存弧的颜色字符串;
库所对与弧同颜色的token的容限;
库所中与弧同颜色的token的初始数量;
弧的权值;
(10)库所结构体链表包括:
库所的编号;
库所的包含token的颜色数;
库所对每种颜色token的容限;
库所中每种token的初始数;
库所前置弧的个数;
库所后置弧的个数;
库所前置弧的编号数组;
库所前置弧的颜色在库所token颜色中的编号;
库所前置弧对库所的影响数;
库所后置弧的编号数;
库所后置弧所对应颜色在库所token颜色中的编号;
库所后置弧对库所的影响数;
(11)变迁结构体的链表包括:
变迁的编号;
变迁发生规则的个数;
每个变迁规则下前置弧的个数;
每个变迁规则下后置弧的个数;
每个变迁规则对应的前置弧的编号;
每个变迁规则对应的后置弧的编号;
每个变迁规则下对相应前置弧的影响数;
每个变迁规则下对相应后置弧的影响数组;
每个变迁规则下前置弧所连库所的该色托肯最大容量;
每个变迁规则下后置弧所连库所的该色托肯最大容量;
分析和整理的过程具体如下:
(1)读取描述文档的库所与变迁的个数描述部分,并将库所个数赋值给全局变量库所的个数(row),变迁个数赋值给全局变量变迁的个数(column);然后分别为每一个库所和变迁创建一个节点的空链表。
(2)读取描述文档的变迁发生颜色的个数描述部分,将值依次赋给变迁链表中每个结构体的变迁发生规则的个数变量。
(3)读取描述文档的库所中token颜色的个数描述部分,将值依次赋给库所链表中每个结构体的库所包含token的颜色数变量。
(4)读取描述文档的“库所的后向流关系描述”部分,按照发明内容中介绍的“全局关联矩阵”中元素的组成格式进行字符串解析,得到所有从库所指向变迁的单色弧及弧的权值,并对所有单色弧进行编号,更新到弧链表的弧节点中的“弧的编号”中,弧的权值更新到弧节点中的“弧的权值”中;同时将此弧的编号和权值分别更新到库所链表的“库所后置弧的编号数”列表、“库所后置弧对库所的影响数”列表及变迁链表的“每个变迁规则对应的前置弧的编号”列表、“每个变迁规则下对相应前置弧的影响数组”列表中。
(5)读取描述文档的“库所的前向流关系描述”部分,与(4)类似在完成字符串解析后,根据解析结果进行库所、变迁及弧链表的更新,即将得到所有从变迁指向库所的单色弧的编号及权值分别更新到库所链表的“库所前置弧的编号数”列表、“库所前置弧对库所的影响数”列表及变迁链表的“每个变迁规则对应的后置弧的编号”列表、“每个变迁规则下对相应后置弧的影响数组”列表中。
(6)读取描述文档的“库所的token容限描述”部分,将该部分下每个库所颜色标识符对应的token的最大容量值保存到库所结构体的库所对每种颜色token的容限数组中。
(7)读取描述文档的“有色Petri网的初状态描述”部分,将该部分下每个库所颜色标识符对应的值保存到库所结构体的库所中每种token的初始数列表中。
(8)经过上述7步,得到了包含有色Petri网所有信息的库所、变迁和单色弧链表,根据这些信息进一步打印硬件设计文件;
(9)编写顶层模块实现库所与变迁模块间的互联与调度,具体如下:将token定义为库所模块中的output reg类型的变量,位宽由库所的token容限描述确定,将库所与变迁间的流关系映射为顶层模块中wire类型的变量,连接库所与变迁模块;将流关系的权值定义为库所模块中的parameter参量;变迁使能的条件判断用组合逻辑实现;库所中token数量的更新用时序逻辑实现。
本发明的有益效果:
本发明在有色Petri网的仿真方面,相较于软件仿真方式,采用了FPGA利用Verilog HDL代码生成方法,实现硬件仿真过程,可提高仿真的速度。
附图说明
图1是一个“包传输”有色Petri网模型;
图2是实现有色Petri网的硬件架构。
具体实施方式
下面以具体实施例的形式对本发明技术方案做进一步解释和说明。
首先,对有色Petri网参数的分析,包括以下步骤:
第一步确定有色Petri网中库所与变迁的个数。由图1可知,该有色Petri网有10个库所和6个变迁。
第二步确定有色Petri网中每个库所包含的token的颜色的个数和每个变迁的发生颜色的个数。原则就是要满足模型的功能要求。本实施例模拟传输3个包,库所Send存储待发送的包,因此库所Send包含的token的颜色的个数为3。要模拟传输3种包,变迁TransmitPacket也需要有3种发生颜色,以满足模拟要求。通过这种方式,得到表2。
表2
第三步获得库所与变迁间的流关系,可以通过分析图1中的弧和模型的功能得到,并将流关系用“库所的全局关联矩阵”表示。
“库所的全局关联矩阵”中每一项对应变迁的一种发生颜色;其由基本元素构成,每个基本元素对应库所中的一种token,基本元素为字符串“颜色标识符:权值”,颜色标识符是流关系对应库所token的颜色,权值表示此流关系发生时对相应颜色token数量的影响;每一项的不同基本元素之间用符号“+”相连;如果矩阵中某项对应的变迁的发生颜色与该库所之间没有流关系,直接用字符串“0:0”表示。
下面列出了库所Send的前向全局关联矩阵:
第一列表示库所与变迁SendPacket的三种发生颜色之间的流关系。对于第二行的第一个元素(2,"g and An"):1,表示当变迁SendPacket的第二种发生颜色发生时,消耗库所Send中的颜色为(2,"g and An")的token,即发送第二个数据包。元素0:0表示库所与变迁的该发生颜色之间不存在流关系。
第四步确定库所对不同颜色token的容限和不同颜色token的初始数量,本实施例对库所的容限和token的初始数量的设置如表3所示。为了简化表述,本文采用p1、p2等字符区分不同的库所,采用t1、t2区分变迁,采用C1、C2等字符作为token的颜色标识,区分库所中不同的token,并记作C1-token。
库所p1的C1-token对应包(1,"Modellin"),C2-token对应包(2,"g and An"),C3-token对应包(3,"alysis")。库所p2的颜色标识C1、C2、C3分别对应数字“1”、“2”、“3”,数字是“将要”或“此时正”传输的包的编号。所有库所中p1、p3、p7的颜色标识的含义对应相同,p2、p4、p8、p9的颜色标识的含义对应相同,如p1的C1与p3的C1都指包1,p2的C3与p8的C3都指数字“3”。
在解释该模型时提到,库所p10以一个包含空字符串“”(属于颜色集DATA)的数据开始,用来保存那些已成功接收的消息的内容;因此需要特别指出,库所p10的C1-token表示接收器未接收到包时的空字符串“”,C2-token表示接收器接收到包(1,"Modellin")后的字符串“Modellin”,C3-token表示接收器又接收到包(2,"g and An")后得到的字符串“Modelling and An”,C4-token表示接受器继续接收到包(3,"alysis")后得到的字符串“Modelling and Analysis”。
表3
在完成对实施例的参数分析之后,编写该有色Petri网的“描述文档”,所述的描述文档包括:库所与变迁的个数描述部分、变迁发生颜色的个数描述部分、库所中token颜色的个数描述部分、库所的前向流关系描述部分、库所的后向流关系描述部分、库所的token容限描述部分和有色Petri网的初状态描述文档部分;
描述文档每部分格式定义如下:
(1)库所与变迁的个数描述:
places_number(row)=NP,transitions_number(column)=NT
(2)变迁发生颜色的个数描述:
[thenumberoftransition'sactivationrules]
(3)库所中token颜色的个数描述:
[color_number of places]
(4)库所的前向流关系描述:
[pre_matrix of petri net]
p1
Wspre_of_p1
p2
Wspre_of_p2
(5)库所的后向流关系描述:
[post_matrix of petri net]
p1
Wspost_of_p1
p2
Wspost_of_p2
(6)库所的token容限描述:
[Thecapacityofplaces]
p1
库所1中某颜色标识符L
p2
库所2中某颜色标识符L
(7)有色Petri网的初状态描述:
[initial token number of places]
p1
库所1中某颜色标识符M
p2
库所2中某颜色标识符M
上述描述中,NP是库所的个数,NT是变迁的个数;NCTi是变迁i发生颜色的个数;NCPj是库所j包含token的颜色的个数;Wspre_of_pj是库所j的前向全局关联矩阵;Wspost_of_pj是库所j的后向全局关联矩阵;L是库所对该颜色token的最大容量;M是在CPN的初始状态下库所中该颜色token的数量。
三、生成有色Petri网的Verilog HDL设计文件;
根据有色Petri网描述文档进行参数分析和整理,将上述描述文档中的参数更新至对应的库所、变迁和单色弧链表及定义的常量与变量中。
(1)//定义库所最大扇入扇出单色弧个数
#define Max_inout_num 100
(2)//定义库所变迁数量最大各100个
#define Max 100
(3)//每个库所颜色个数的最大值
#define Max_color_num_ofplace 10
(4)//变迁发生规则的最大个数
#define Max_rule_num 10
(5)//每个变迁发生规则中条件个数的最大值
#define Max_color_num_inrule 10
(6)//定义默认托肯容量
#define Default_Maxsize_token 1
(7)//保存库所的个数
int row;
(8)//保存变迁的个数
int column;
(9)单色弧结构体的定义:
(10)库所结构体的定义:
(11)变迁结构体的定义:
分析和整理的过程具体如下:
(1)读取描述文档的库所与变迁的个数描述部分,并将库所个数赋值给全局变量库所的个数(row),变迁个数赋值给全局变量变迁的个数(column);然后分别为每一个库所和变迁创建一个节点的空链表。
(2)读取描述文档的变迁发生颜色的个数描述部分,将值依次赋给变迁链表中每个结构体的变迁发生规则的个数变量。
(3)读取描述文档的库所中token颜色的个数描述部分,将值依次赋给库所链表中每个结构体的库所包含token的颜色数变量。
(4)读取描述文档的“库所的后向流关系描述”部分,按照发明内容中介绍的“全局关联矩阵”中元素的组成格式进行字符串解析,得到所有从库所指向变迁的单色弧与弧的权值,并对所有单色弧进行编号,更新到弧链表的弧节点的表征“弧的编号”的变量id中,弧的权值更新到弧节点中的表征“弧的权值”的变量num中;同时将此弧的编号和权值分别更新到库所链表的“库所后置弧的编号数”列表id_of_postarcs中、“库所后置弧对库所的影响数”列表dec_from_postarcs及变迁链表的“每个变迁规则对应的前置弧的编号”列表id_of_prearcs、“每个变迁规则下对相应前置弧的影响数组”列表dec_to_prearcs中。
(5)读取描述文档的“库所的前向流关系描述”部分,与(4)类似在完成字符串解析后,根据解析结果进行库所、变迁及弧链表的更新,即将得到所有从变迁指向库所的单色弧的编号及权值分别更新到库所链表的“库所前置弧的编号数”列表id_of_prearcs、“库所前置弧对库所的影响数”列表inc_from_prearcs及变迁链表的“每个变迁规则对应的后置弧的编号”列表id_of_postarcs、“每个变迁规则下对相应后置弧的影响数组”列表inc_to_postarcs中。
(6)读取描述文档的“库所的token容限描述”部分,将该部分下每个库所颜色标识符对应的token的最大容量值保存到库所结构体的库所对每种颜色token的容限数组中。
(7)读取描述文档的“有色Petri网的初状态描述”部分,将该部分下每个库所颜色标识符对应的值保存到库所结构体的库所中每种token的初始数列表中。
(8)经过上述7步,得到了包含有色Petri网所有信息的库所、变迁和单色弧链表,根据这些信息进一步打印硬件设计文件;
(9)编写顶层模块实现库所与变迁模块间的互联与调度,具体如下:将token定义为库所模块中的output reg类型的变量,位宽由库所的token容限确定,将库所与变迁间的流关系映射为顶层模块中wire类型的变量,连接库所与变迁模块;将流关系的权值定义为库所模块中的parameter参量;变迁使能的条件判断用组合逻辑实现;库所中token数量的更新用时序逻辑实现。
Claims (2)
1.FPGA加速的有色Petri网仿真方法,该方法主要步骤包括:
一、有色Petri网参数的分析;
二、有色Petri网描述文档的编写;
三、生成有色Petri网的Verilog HDL设计文件;
四、将生成的Verilog描述文件经过综合、布局布线生成FPGA配置文件后,通过下载器将其配置到FPGA中进行仿真;
其中,步骤一、有色Petri网参数的分析,包括以下步骤:
(1)确定库所与变迁的个数;
(2)确定每个库所包含的不同的token的颜色的个数;
(3)确定每个变迁的发生颜色的个数;
(4)确定库所与变迁之间的流关系,并用库所的全局关联矩阵表示;
(5)确定库所对token的容限;
(6)确定每个库所中token的初始数量,即确定有色Petri网的初状态;
步骤一中,所述的库所的全局关联矩阵是为了描述有色Petri网的流关系而定义的,分为“库所的前向全局关联矩阵”与“库所的后向全局关联矩阵”两类,有色Petri网中每个库所都对应有一个前向矩阵和一个后向矩阵;Petri网中前向与后向表示的是流关系的方向,前向指流关系从库所指向变迁,后向值流关系从变迁指向库所;本申请中定义的全局关联矩阵不是数学意义上的矩阵,而是有一定行数列数的表格,每个矩阵的“单元格”中存放的是一组具有特殊含义的文本;“库所的全局关联矩阵”中每一项对应变迁的一种发生颜色;其由基本元素构成,每个基本元素对应库所中的一种token,基本元素为字符串“颜色标识符:权值”,颜色标识符是流关系对应库所token的颜色,权值表示此流关系发生时对相应颜色token数量的影响;每一项的不同基本元素之间用符号“+”相连;如果矩阵中某项对应的变迁的发生颜色与该库所之间没有流关系,直接用字符串“0:0”表示;
任何一个库所的全局关联矩阵表示为如下的矩阵形式:
其中Co1:Cot表示该库所包含的t种token的颜色,表示变迁Tn在发生颜色cm下对颜色为Cot的token的数量的影响,即弧的权值,如果变迁Tn在发生颜色cm下对颜色为Cot的token的数量的影响为零,即变迁Tn在发生颜色cm下对Cot-token的流关系不存在,则用“+”连接的该项不写;但如果变迁Tn在发生颜色cm下对库所的所有token都不产生影响,此时这一整项需用0:0填写,以表示流关系不存在;n是变迁的个数,m是变迁发生颜色的个数最大值;
二、有色Petri网描述文档的编写;
所述的描述文档包括:库所与变迁的个数描述部分、变迁发生颜色的个数描述部分、库所中token颜色的个数描述部分、库所的前向流关系描述部分、库所的后向流关系描述部分、库所的token容限描述部分和有色Petri网的初状态描述文档部分;
其中,库所与变迁的个数描述部分中包含库所的个数和变迁的个数表达式;
变迁发生颜色的个数描述部分为各个变迁发生颜色个数的列表;
库所中token颜色的个数描述部分为各个库所中token颜色的个数的列表;
库所的前向流关系描述部分为各个库所前向全局关联矩阵的列表;
库所的后向流关系描述部分为各个库所后向全局关联矩阵的列表;
库所的token容限描述部分为各个库所对各个颜色token的最大容量值的列表,其由颜色标识符区分颜色;
有色Petri网的初状态描述部分为初始状态下各个库所中各颜色token的数量的列表,其由颜色标识符区分颜色;
三、生成有色Petri网的Verilog HDL设计文件;
根据有色Petri网描述文档进行参数分析和整理,将上述描述文档中的参数更新至对应的库所、变迁和单色弧链表及定义的常量与变量中,所述的库所、变迁和单色弧链表及定义的常量与变量具体包括:
(1)定义常量:库所最大扇入扇出单色弧个数
(2)定义常量:库所变迁数量最大个数
(3)定义常量:每个库所颜色个数的最大值
(4)定义常量:变迁发生规则的最大个数
(5)定义常量:每个变迁发生规则中条件个数的最大值
(6)定义常量:默认token容量
(7)定义变量:库所的个数
(8)定义变量:变迁的个数
(9)单色弧结构体链表包括:
弧的编号;
与弧连接的库所编号;
与弧连接的变迁编号;
表征弧的方向0:库所>变迁,1:变迁>库所;
该弧的颜色对应于变迁所有发生规则的编号;
该弧的颜色在库所所有颜色中的编号;
保存弧的颜色字符串;
库所对与弧同颜色的token的容限;
库所中与弧同颜色的token的初始数量;
弧的权值;
(10)库所结构体链表包括:
库所的编号;
库所的包含token的颜色数;
库所对每种颜色token的容限;
库所中每种token的初始数;
库所前置弧的个数;
库所后置弧的个数;
库所前置弧的编号数组;
库所前置弧的颜色在库所token颜色中的编号;
库所前置弧对库所的影响数;
库所后置弧的编号数;
库所后置弧所对应颜色在库所token颜色中的编号;
库所后置弧对库所的影响数;
(11)变迁结构体的链表包括:
变迁的编号;
变迁发生规则的个数;
每个变迁规则下前置弧的个数;
每个变迁规则下后置弧的个数;
每个变迁规则对应的前置弧的编号;
每个变迁规则对应的后置弧的编号;
每个变迁规则下对相应前置弧的影响数;
每个变迁规则下对相应后置弧的影响数组;
每个变迁规则下前置弧所连库所的对与该规则相关的token的最大容量;
每个变迁规则下,后置弧所连库所对与该规则相关的token的最大容量;
分析和整理的过程具体如下:
(1)读取描述文档的库所与变迁的个数描述部分,并将库所个数赋值给全局变量库所的个数,变迁个数赋值给全局变量变迁的个数;然后分别为每一个库所和变迁创建一个节点的空链表;
(2)读取描述文档的变迁发生颜色的个数描述部分,将值依次赋给变迁链表中每个结构体的变迁发生规则的个数变量;
(3)读取描述文档的库所中token颜色的个数描述部分,将值依次赋给库所链表中每个结构体的库所包含token的颜色数变量;
(4)读取描述文档的库所的后向流关系描述部分,对全局关联矩阵中元素的组成格式进行字符串解析,得到所有从库所指向变迁的单色弧及弧的权值,并对所有单色弧进行编号,更新到弧链表的弧节点中的“弧的编号”中,弧的权值更新到弧节点中的“弧的权值”中;同时将此弧的编号和权值分别更新到库所链表的“库所后置弧的编号数”列表、“库所后置弧对库所的影响数”列表及变迁链表的“每个变迁规则对应的前置弧的编号”列表、“每个变迁规则下对相应前置弧的影响数组”列表中;
(5)读取描述文档的库所的前向流关系描述部分,对全局关联矩阵中元素的组成格式进行字符串解析,根据解析结果进行库所、变迁及弧链表的更新,即将得到所有从变迁指向库所的单色弧的编号及权值分别更新到库所链表的“库所前置弧的编号数”列表、“库所前置弧对库所的影响数”列表及变迁链表的“每个变迁规则对应的后置弧的编号”列表、“每个变迁规则下对相应后置弧的影响数组”列表中;
(6)读取描述文档的“库所的token容限描述”部分,将该部分下每个库所颜色标识符对应的token的最大容量值保存到库所结构体的库所对每种颜色token的容限数组中;
(7)读取描述文档的“有色Petri网的初状态描述”部分,将该部分下每个库所颜色标识符对应的值保存到库所结构体的库所中每种token的初始数列表中;
(8)经过上述7步,得到了包含有色Petri网所有信息的库所、变迁和单色弧链表,根据这些信息进一步打印硬件设计文件;
(9)编写顶层模块实现库所与变迁模块间的互联与调度,具体如下:将token定义为库所模块中的output reg类型的变量,位宽由库所的token容限描述确定,将库所与变迁间的流关系映射为顶层模块中wire类型的变量,连接库所与变迁模块;将流关系的权值定义为库所模块中的parameter参量;变迁使能的条件判断用组合逻辑实现;库所中token数量的更新用时序逻辑实现。
2.一种FPGA加速的有色Petri网Verilog HDL代码生成工具,其特征在于,该工具按照以下步骤运行完成Verilog HDL代码生成,
根据有色Petri网描述文档进行参数分析和整理,将上述描述文档中的参数更新至对应的库所、变迁和单色弧链表及定义的常量与变量中,所述的库所、变迁和单色弧链表及定义的常量与变量具体包括:
(1)定义常量:库所最大扇入扇出单色弧个数
(2)定义常量:库所变迁数量最大个数
(3)定义常量:每个库所颜色个数的最大值
(4)定义常量:变迁发生规则的最大个数
(5)定义常量:每个变迁发生规则中条件个数的最大值
(6)定义常量:默认托肯容量
(7)定义变量:库所的个数
(8)定义变量:变迁的个数
(9)单色弧结构体链表包括:
弧的编号;
与弧连接的库所编号;
与弧连接的变迁编号;
表征弧的方向0:库所>变迁,1:变迁>库所;
该弧的颜色对应于变迁所有发生规则的编号;
该弧的颜色在库所所有颜色中的编号;
保存弧的颜色字符串;
库所对与弧同颜色的token的容限;
库所中与弧同颜色的token的初始数量;
弧的权值;
(10)库所结构体链表包括:
库所的编号;
库所的包含token的颜色数;
库所对每种颜色token的容限;
库所中每种token的初始数;
库所前置弧的个数;
库所后置弧的个数;
库所前置弧的编号数组;
库所前置弧的颜色在库所token颜色中的编号;
库所前置弧对库所的影响数;
库所后置弧的编号数;
库所后置弧所对应颜色在库所token颜色中的编号;
库所后置弧对库所的影响数;
(11)变迁结构体的链表包括:
变迁的编号;
变迁发生规则的个数;
每个变迁规则下前置弧的个数;
每个变迁规则下后置弧的个数;
每个变迁规则对应的前置弧的编号;
每个变迁规则对应的后置弧的编号;
每个变迁规则下对相应前置弧的影响数;
每个变迁规则下对相应后置弧的影响数组;
每个变迁规则下前置弧所连库所的该色托肯最大容量;
每个变迁规则下后置弧所连库所的该色托肯最大容量;
分析和整理的过程具体如下:
(1)读取描述文档的库所与变迁的个数描述部分,并将库所个数赋值给全局变量库所的个数,变迁个数赋值给全局变量变迁的个数;然后分别为每一个库所和变迁创建一个节点的空链表;
(2)读取描述文档的变迁发生颜色的个数描述部分,将值依次赋给变迁链表中每个结构体的变迁发生规则的个数变量;
(3)读取描述文档的库所中token颜色的个数描述部分,将值依次赋给库所链表中每个结构体的库所包含token的颜色数变量;
(4)读取描述文档的库所的后向流关系描述部分,对全局关联矩阵中元素的组成格式进行字符串解析,得到所有从库所指向变迁的单色弧及弧的权值,并对所有单色弧进行编号,更新到弧链表的弧节点中的“弧的编号”中,弧的权值更新到弧节点中的“弧的权值”中;同时将此弧的编号和权值分别更新到库所链表的“库所后置弧的编号数”列表、“库所后置弧对库所的影响数”列表及变迁链表的“每个变迁规则对应的前置弧的编号”列表、“每个变迁规则下对相应前置弧的影响数组”列表中;
(5)读取描述文档的库所的前向流关系描述部分,对全局关联矩阵中元素的组成格式进行字符串解析,根据解析结果进行库所、变迁及弧链表的更新,即将得到所有从变迁指向库所的单色弧的编号及权值分别更新到库所链表的“库所前置弧的编号数”列表、“库所前置弧对库所的影响数”列表及变迁链表的“每个变迁规则对应的后置弧的编号”列表、“每个变迁规则下对相应后置弧的影响数组”列表中;
(6)读取描述文档的“库所的token容限描述”部分,将该部分下每个库所颜色标识符对应的token的最大容量值保存到库所结构体的库所对每种颜色token的容限数组中;
(7)读取描述文档的“有色Petri网的初状态描述”部分,将该部分下每个库所颜色标识符对应的值保存到库所结构体的库所中每种token的初始数列表中;
(8)经过上述7步,得到了包含有色Petri网所有信息的库所、变迁和单色弧链表,根据这些信息进一步打印硬件设计文件;
(9)编写顶层模块实现库所与变迁模块间的互联与调度,具体如下:将token定义为库所模块中的output reg类型的变量,位宽由库所的token容限描述确定,将库所与变迁间的流关系映射为顶层模块中wire类型的变量,连接库所与变迁模块;将流关系的权值定义为库所模块中的parameter参量;变迁使能的条件判断用组合逻辑实现;库所中token数量的更新用时序逻辑实现;
所述的库所的全局关联矩阵是为了描述有色Petri网的流关系而定义的,分为“库所的前向全局关联矩阵”与“库所的后向全局关联矩阵”两类,有色Petri网中每个库所都对应有一个前向矩阵和一个后向矩阵;Petri网中前向与后向表示的是流关系的方向,前向指流关系从库所指向变迁,后向值流关系从变迁指向库所;本申请中定义的全局关联矩阵不是数学意义上的矩阵,而是有一定行数列数的表格,每个矩阵的“单元格”中存放的是一组具有特殊含义的文本;“库所的全局关联矩阵”中每一项对应变迁的一种发生颜色;其由基本元素构成,每个基本元素对应库所中的一种token,基本元素为字符串“颜色标识符:权值”,颜色标识符是流关系对应库所token的颜色,权值表示此流关系发生时对相应颜色token数量的影响;每一项的不同基本元素之间用符号“+”相连;如果矩阵中某项对应的变迁的发生颜色与该库所之间没有流关系,直接用字符串“0:0”表示;
任何一个库所的全局关联矩阵表示为如下的矩阵形式:
其中Co1:Cot表示该库所包含的t种token的颜色,表示变迁Tn在发生颜色cm下对颜色为Cot的token的数量的影响,即弧的权值,如果变迁Tn在发生颜色cm下对颜色为Cot的token的数量的影响为零,即变迁Tn在发生颜色cm下对Cot-token的流关系不存在,则用“+”连接的该项不写;但如果变迁Tn在发生颜色cm下对库所的所有token都不产生影响,此时这一整项需用0:0填写,以表示流关系不存在;n是变迁的个数,m是变迁发生颜色的个数最大值;
所述的描述文档包括:库所与变迁的个数描述部分、变迁发生颜色的个数描述部分、库所中token颜色的个数描述部分、库所的前向流关系描述部分、库所的后向流关系描述部分、库所的token容限描述部分和有色Petri网的初状态描述文档部分;
其中,库所与变迁的个数描述部分中包含库所的个数和变迁的个数表达式;
变迁发生颜色的个数描述部分为各个变迁发生颜色个数的列表;
库所中token颜色的个数描述部分为各个库所中token颜色的个数的列表;
库所的前向流关系描述部分为各个库所前向全局关联矩阵的列表;
库所的后向流关系描述部分为各个库所后向全局关联矩阵的列表;
库所的token容限描述部分为各个库所对各个颜色token的最大容量值的列表,其由颜色标识符区分颜色;
有色Petri网的初状态描述部分为初始状态下各个库所中各颜色token的数量的列表,其由颜色标识符区分颜色。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010957206 | 2020-09-12 | ||
CN2020109572069 | 2020-09-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112613199A CN112613199A (zh) | 2021-04-06 |
CN112613199B true CN112613199B (zh) | 2022-05-24 |
Family
ID=75240357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011500487.1A Active CN112613199B (zh) | 2020-09-12 | 2020-12-18 | FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112613199B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298827A (zh) * | 2014-10-13 | 2015-01-21 | 江苏大学 | 一种基于Petri网的异步电路建模和VHDL实现方法 |
CN104463332A (zh) * | 2013-09-23 | 2015-03-25 | 苏州工业职业技术学院 | 基于有色Petri网的FMS生产仿真分配方法 |
CN107688704A (zh) * | 2017-08-25 | 2018-02-13 | 金陵科技学院 | 基于Petri网模型的ASIP行为逻辑综合方法 |
US10114917B1 (en) * | 2016-08-01 | 2018-10-30 | The Mathworks, Inc. | Systems and methods for mapping executable models to programmable logic device resources |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734492B2 (en) * | 2005-04-26 | 2010-06-08 | Xerox Corporation | Validation and analysis of JDF workflows using colored petri nets |
-
2020
- 2020-12-18 CN CN202011500487.1A patent/CN112613199B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463332A (zh) * | 2013-09-23 | 2015-03-25 | 苏州工业职业技术学院 | 基于有色Petri网的FMS生产仿真分配方法 |
CN104298827A (zh) * | 2014-10-13 | 2015-01-21 | 江苏大学 | 一种基于Petri网的异步电路建模和VHDL实现方法 |
US10114917B1 (en) * | 2016-08-01 | 2018-10-30 | The Mathworks, Inc. | Systems and methods for mapping executable models to programmable logic device resources |
CN107688704A (zh) * | 2017-08-25 | 2018-02-13 | 金陵科技学院 | 基于Petri网模型的ASIP行为逻辑综合方法 |
Non-Patent Citations (5)
Title |
---|
A Method Based on Petriand a Matrix Model to Implement Reconfigurable Logic Controllor;Silva C F;《IEEE Transactions on Industrial Electronics》;20101231;全文 * |
A Novel Matrix Approach for the Stability and Stabilization Analysis of Colored Petri Nets;Zhao J T;《Science China( Information Sciences)》;20190730;全文 * |
Extended Object-Oriented Petri Net Model for Mission Reliability Simulation of Repairable PMS with Common Cause Failures;Wu X Y;《Reliability Engineering and System Safety》;20151231;全文 * |
FPGA程序的形式化建模与分析方法研究;陈珑;《中国优秀硕士论文集》;20160315;全文 * |
From Petri Net Models to VHDL Implementation of Digital Controllers;Gomes L;《33rd Annual Conference of the IEEE Industrial Electronics Society》;20160616;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112613199A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5197016A (en) | Integrated silicon-software compiler | |
Lengauer | Combinatorial algorithms for integrated circuit layout | |
Luque et al. | Parallel genetic algorithms: Theory and real world applications | |
US5267175A (en) | Data base access mechanism for rules utilized by a synthesis procedure for logic circuit design | |
US5450545A (en) | Generation of rules-based computer programs using data entry screens | |
US5448740A (en) | Generation of a user interface code from a corresponding declarative language program | |
US7167817B2 (en) | Automated approach to resolving artificial algebraic loops | |
CN106997341A (zh) | 一种创新方案匹配方法、装置、服务器及系统 | |
O'Donnell | Hardware description with recursion equations | |
CN104298827B (zh) | 一种基于Petri网的异步电路建模和VHDL实现方法 | |
Wolf | An object-oriented, procedural database for VLSI chip planning | |
CN112613199B (zh) | FPGA加速的有色Petri网仿真方法及Verilog HDL代码生成工具 | |
Lange et al. | DESCARTES: Development Environment for Simulating Hybrid Con-nectionist Architectures | |
CN1294495C (zh) | 模拟器构造方法 | |
Hunter et al. | Introduction to VHDL | |
Grinberg | A Knowledge Based Design System for Digital Electronics. | |
CN111931913A (zh) | 基于Caffe的卷积神经网络在FPGA上的部署方法 | |
Jones | An example-based introduction to graph grammars for modeling | |
KR20010075871A (ko) | 소프트웨어 유지보수를 위한 제어흐름 그래프 자동 생성방법 | |
Navabi | Hardware program simulator | |
Kim | A 3d XML-based modeling and simulation framework for dynamic models | |
Britts | Dialog management in interactive systems: a comparative survey | |
Паулін et al. | CONCEPT OF BUILDING A LIBRARY OF TASKS AND SOLUTIONS | |
Camurri et al. | Extended Simple Colored Petri Nets: A Tool for Plant Simulation | |
Cartwright | Application of definitive scripts to computer aided conceptual design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |