CN112613200A - 一种基于FPGA的Petri网模拟仿真平台 - Google Patents
一种基于FPGA的Petri网模拟仿真平台 Download PDFInfo
- Publication number
- CN112613200A CN112613200A CN202011500495.6A CN202011500495A CN112613200A CN 112613200 A CN112613200 A CN 112613200A CN 202011500495 A CN202011500495 A CN 202011500495A CN 112613200 A CN112613200 A CN 112613200A
- Authority
- CN
- China
- Prior art keywords
- library
- module
- fpga
- petri
- description part
- 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.)
- Pending
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)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于FPGA的Petri网模拟仿真平台,属于计算机技术领域。本发明用于将使用Verilog HDL语言编写的Petri网项目文件进行编译同时下载到FPGA中,并对项目进行进行单步、定步、循环调试,调试数据可保存于数据库中。此外,该平台也可对项目内的Petri网绘制出网图,调试数据也可被绘制成波形图展示。本发明在有色Petri网的仿真方面,相较于软件仿真方式,采用了FPGA利用Verilog HDL代码描述Petri网,实现硬件仿真过程,可提高仿真的速度。
Description
技术领域
本发明涉及一种基于FPGA的Petri网模拟仿真平台,属于计算机技术领域。
背景技术
1962年,德国数学家Carl Adam Petri博士首次在他的博士论文《用自动机通信》(Communication With Autamata)提出网状结构的信息流模型——Petri网。Petri网是用普通图形描述的形式语言集合,特别适用于并发系统的可视化建模。Petri网已被认为是对离散事件系统并发行为建模的有效方法。它的主要优点在于有充分的模拟能力和丰富的分析方法,作为一种适合描述和分析具备异步性、并发性、并行性等特点的并发系统的形式化语言,Petri 网的应用非常广泛。迄今为止,关于Petri网的硬件实现问题的研究从未停止,并且随着硬件的不断出新而不断有新的进展,使得Petri网有可能成为电路设计的一种通用方法。国内赵不贿教授的研究团队一直致力于对Petri网硬件实现方面的研究,他们用硬件描述语言 ABEl-HDL描述Petri网,研究了用CPLD实现Petri网监控器的方法。这种方法不仅完成了 Petri网的硬件实现,而且提供了一种设计逻辑控制器的新方法。葡萄牙LuisGomes的研究团队介绍了FORDESIGN项目——将Petri网的使用集成到嵌入式系统的开发生命周期中。该项目旨在开发一系列工具,以弥补自动化系统和(网络化)嵌入式系统开发中的这一空白。该工具集基于Petri网类,称为输入-输出Petri网(IOPT),并使用Petri网标记语言(PNML) 的表示。
发明内容
基于上述研究现状,为便于硬件Petri网理论研究和实现,本发明提供了一种基于FPGA 的Petri网模拟仿真平台。
本发明中一种基于FPGA的Petri网模拟仿真平台,其硬件组成包括:PC机和FPGA板,所述的FPGA开发板通过PCIe总线与PC机连接,
所述的PC机中安装仿真平台软件,
所述的仿真平台软件由以下功能模块组成:
项目加载模块,用于新建和打开项目文件;
Petri网代码生成工具模块,用于将Petri网描述文件编译成Petri网代码并保存为项目文件,代码使用Verilog HDL语言;
编译模块,该模块利用FPGA开发环境将使用Verilog HDL语言编写的项目文件编译并下载到FPGA开发板;
测试工具模块,由加载功能模块、匹配功能模块、单步调试模块、定步调试模块、循环单步调试模块和循环定步调试模块,通过PCIe总线与PC机通信;
所述的加载功能模块用于向FPGA芯片内的硬件Petri网加载初始值;
所述的匹配功能模块用于向FPGA芯片内存储区域加载数据,匹配Petri网的指定运行状态;
所述的单步调试模块和定步调试模块用于执行单步或指定步长的运行,并记录运行所得库所值;
所述的循环单步调试模块和循环定步调试模块用于执行循环单步或指定循环步长的运行,并记录运行所得库所值保存至数据库中,可以在调试结束后读取数据库绘制数据折线图;
测试工具模块中还包括:Petri网网图自动绘制功能模块,该模块用于读取并解析Petri 网描述文件,生成图形表示文件,图形表示文件中库所使用圆形表示,变迁使用矩形表示,并通过解析Petri网描述文件对Petri网进行布局,然后绘制Petri网图;网图中库所值根据单步调试模块、定步调试模块运行过程中每一步所得到的库所值显示出数值。
所述的Petri网描述文件包括:库所与变迁的个数描述部分、变迁发生颜色的个数描述部分、库所中token颜色的个数描述部分、库所的前向流关系描述部分、库所的后向流关系描述部分、库所的token容限描述部分和有色Petri网的初状态描述文档部分;
其中,库所与变迁的个数描述部分中包含库所的个数和变迁的个数表达式;
变迁发生颜色的个数描述部分为各个变迁发生颜色个数的列表;
库所中token颜色的个数描述部分为各个库所中token颜色的个数的列表;
库所的前向流关系描述部分为各个库所前向全局关联矩阵的列表;
库所的后向流关系描述部分为各个库所后向全局关联矩阵的列表;
库所的token容限描述部分为各个库所对各个颜色token的最大容量值的列表,其由颜色标识符区分颜色;
有色Petri网的初状态描述部分为初始状态下各个库所中各颜色token的数量的列表,其由颜色标识符区分颜色。
本发明的有益效果:
本发明在有色Petri网的仿真方面,相较于软件仿真方式,采用了FPGA利用Verilog HDL 代码生成方法,实现硬件仿真过程,可提高仿真的速度。
附图说明
图1是测试平台软件逻辑框图。
图2是本发明新建项目的方法。
图3是本发明打开已有项目的方法。
图4是本发明打开实例项目后的界面。
图5是本发明的调试界面。
图6是本发明实例的Petri网图。
图7是本发明实例的循环单步调试波形图。
具体实施方式
下面以具体实施例的形式对本发明技术方案做进一步解释和说明。
本实施例中一种基于FPGA的Petri网模拟器仿真平台,其硬件组成包括:PC机和FPGA 板,所述的FPGA开发板通过PCIe总线与PC机连接,
所述的PC机中安装仿真平台软件,该软件采用Qt软件编写,编程语言为C++;
所述的仿真平台软件由以下功能模块组成:
项目加载模块,用于新建和打开项目文件;
该模块中调用QFileDialog::getOpenFileName(this,"选择项目文件","../","TXT(*.ptp)")函数实现,ptp文件为本发明中自定义的文件,为项目文件,本实施例中的项目文件中包含如下文件:
HF matrix_of_petrinet.pf
MF transition4.v
MF transition3.v
MF transition2.v
MF transition1.v
MF place5.v
MF place4.v
MF place3.v
MF place2.v
MF place1.v
MF petri.v
MF controller.v
MF petri_controller.v
MF scaner.v
MF scheduler.v
MF loader.v
HF表示Petri网描述文件,MF表示硬件文件。
所述的Petri网描述文件包括:库所与变迁的个数描述部分、变迁发生颜色的个数描述部分、库所中token颜色的个数描述部分、库所的前向流关系描述部分、库所的后向流关系描述部分、库所的token容限描述部分和有色Petri网的初状态描述文档部分;
其中,库所与变迁的个数描述部分中包含库所的个数和变迁的个数表达式;
变迁发生颜色的个数描述部分为各个变迁发生颜色个数的列表;
库所中token颜色的个数描述部分为各个库所中token颜色的个数的列表;
库所的前向流关系描述部分为各个库所前向全局关联矩阵的列表;
库所的后向流关系描述部分为各个库所后向全局关联矩阵的列表;
库所的token容限描述部分为各个库所对各个颜色token的最大容量值的列表,其由颜色标识符区分颜色;
有色Petri网的初状态描述部分为初始状态下各个库所中各颜色token的数量的列表,其由颜色标识符区分颜色。
编译模块,该模块利用FPGA开发环境将使用Verilog HDL语言编写的项目文件编译并下载到FPGA开发板;
TCL文件是编译模块自动生成的脚本文件,该文件内有着选择FPGA芯片型号、设置顶层模块、分配引脚、选择下载端口等描述,FPGA开发环境通过执行该脚本文件,就能对项目进行编译、下载;
测试工具模块,由加载功能模块、匹配功能模块、单步调试模块、定步调试模块、循环单步调试模块和循环定步调试模块;
所述的加载功能模块用于向FPGA芯片内的硬件Petri网加载初始值;
所述的匹配功能模块用于向FPGA芯片内存储区域加载数据,匹配Petri网的指定运行状态;
所述的单步调试模块和定步调试模块用于执行单步或指定步长的运行,并记录运行所得库所值;
所述的循环单步调试模块和循环定步调试模块用于执行循环单步或指定循环步长的运行,并记录运行所得库所值保存至数据库中;
测试工具模块中还包括:Petri网网图自动绘制功能模块,该模块用于读取并解析Petri 网描述文件,生成GV文件,该文件为一个图形文件,GV文件中库所使用圆形表示,变迁使用矩形表示,并利用描述文件对Petri网进行布局,然后绘制Petri网图;网图中库所值根据单步调试模块、定步调试模块运行过程中每一步所得到的库所值显示出数值。
本实施例中的测试工具模块通过调试面板方式实现,调试界面如图5所示。第一步需要点击“连接”手动连接PCIe总线,若连接成功将显示“连接成功”。Load(加载)功能区可以向 FPGA芯片内的硬件Petri网加载初始值,点击“Edit Data”编辑库所初始值,再点击“Load”载入到FPGA中;Match(匹配)功能区可以向FPGA芯片内存储区域加载数据,用于匹配Petri 网的指定运行状态,点击“Edit Data”编辑匹配值,点击“Match”进行匹配,若匹配成功则显示“匹配状态:成功”,成功后点击“count”会在其右侧显示Petri网从初始状态运行到匹配状态用到的步数;单步调试和定步调试,可在点击“读取运行结果”后在Petri网绘制图上直观地查看运行结果,如图6所示,定步调试时能在“定步步长”右侧文字框输入指定步长;循环单步调试和循环定步调试,运行结果保存在数据库中,可点击“读取运行结果”查看运行数据的波形图,如图7所示,循环定步调试时可在“循环定步步长”右侧输入指定步长,若显示“存储器状态:满”,可点击“存储器复位”清空存储器;单击“中断”让Petri网调试中断,单击“继续”继续调试。
Claims (4)
1.一种基于FPGA的Petri网模拟仿真平台,其特征在于,其硬件组成包括:PC机和FPGA板,所述的FPGA开发板通过PCIe总线与PC机连接,
所述的PC机中安装仿真平台软件,
所述的仿真平台软件由以下功能模块组成:
项目加载模块,用于新建和打开项目文件;
编译模块,该模块利用FPGA开发环境将使用Verilog HDL语言编写的项目文件编译并下载到FPGA开发板;Verilog HDL语言编写的项目文件中包含使用Verilog HDL语言编写的Petri网硬件文件;
测试工具模块,由加载功能模块、匹配功能模块、单步调试模块、定步调试模块、循环单步调试模块和循环定步调试模块,通过PCIe总线与PC机通信;
所述的加载功能模块用于向FPGA芯片内的硬件Petri网加载初始值;
所述的匹配功能模块用于向FPGA芯片内存储区域加载数据,匹配Petri网的指定运行状态;
所述的单步调试模块和定步调试模块用于执行单步或指定步长的运行,并记录运行所得库所值;
所述的循环单步调试模块和循环定步调试模块用于执行循环单步或指定循环步长的运行,并记录运行所得库所值保存至数据库中,可以在调试结束后读取数据库绘制数据折线图。
2.根据权利要求1所述的基于FPGA的Petri网模拟仿真平台,其特征在于,所述的测试工具模块中还包括:Petri网网图自动绘制功能模块,该模块用于读取并解析Verilog HDL语言编写的项目文件中还包含的Petri网描述文件,生成图形表示文件,图形表示文件中库所使用圆形表示,变迁使用矩形表示,并通过解析Petri网描述文件对Petri网进行布局,然后绘制Petri网图;网图中库所值根据单步调试模块、定步调试模块运行过程中每一步所得到的库所值显示出数值。
3.根据权利要求1所述的基于FPGA的Petri网模拟仿真平台,其特征在于,所述的Petri网描述文件包括:库所与变迁的个数描述部分、变迁发生颜色的个数描述部分、库所中token颜色的个数描述部分、库所的前向流关系描述部分、库所的后向流关系描述部分、库所的token容限描述部分和有色Petri网的初状态描述文档部分。
4.根据权利要求3所述的基于FPGA的Petri网模拟仿真平台,其特征在于,库所与变迁的个数描述部分中包含库所的个数和变迁的个数表达式;
变迁发生颜色的个数描述部分为各个变迁发生颜色个数的列表;
库所中token颜色的个数描述部分为各个库所中token颜色的个数的列表;
库所的前向流关系描述部分为各个库所前向全局关联矩阵的列表;
库所的后向流关系描述部分为各个库所后向全局关联矩阵的列表;
库所的token容限描述部分为各个库所对各个颜色token的最大容量值的列表,其由颜色标识符区分颜色;
有色Petri网的初状态描述部分为初始状态下各个库所中各颜色token的数量的列表,其由颜色标识符区分颜色。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020109572054 | 2020-09-12 | ||
CN202010957205 | 2020-09-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112613200A true CN112613200A (zh) | 2021-04-06 |
Family
ID=75240369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011500495.6A Pending CN112613200A (zh) | 2020-09-12 | 2020-12-18 | 一种基于FPGA的Petri网模拟仿真平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112613200A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113378417A (zh) * | 2021-08-16 | 2021-09-10 | 傲林科技有限公司 | 一种基于事件网的建模方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630253A (zh) * | 2009-07-21 | 2010-01-20 | 任爱华 | 基于面向对象Petri网的并发软件开发方法和系统 |
CN107301128A (zh) * | 2017-06-23 | 2017-10-27 | 北京计算机技术及应用研究所 | 基于Petri网模型的系统仿真验证方法 |
CN109002601A (zh) * | 2018-07-06 | 2018-12-14 | 西安电子科技大学 | 一种基于Petri网的FPGA系统的验证模型建模方法 |
CN110674590A (zh) * | 2019-10-07 | 2020-01-10 | 中国人民解放军陆军装甲兵学院 | 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法 |
-
2020
- 2020-12-18 CN CN202011500495.6A patent/CN112613200A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630253A (zh) * | 2009-07-21 | 2010-01-20 | 任爱华 | 基于面向对象Petri网的并发软件开发方法和系统 |
CN107301128A (zh) * | 2017-06-23 | 2017-10-27 | 北京计算机技术及应用研究所 | 基于Petri网模型的系统仿真验证方法 |
CN109002601A (zh) * | 2018-07-06 | 2018-12-14 | 西安电子科技大学 | 一种基于Petri网的FPGA系统的验证模型建模方法 |
CN110674590A (zh) * | 2019-10-07 | 2020-01-10 | 中国人民解放军陆军装甲兵学院 | 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法 |
Non-Patent Citations (3)
Title |
---|
吴楠: "基于FPGA的虚拟平台硬件仿真加速单元的设计", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》, no. 1, 15 January 2019 (2019-01-15), pages 27 - 31 * |
秦岩: "基于Petri网的磨矿过程设定控制算法组态及软件实现", 《中国优秀博硕士学位论文全文数据库(硕士) 工程科技Ⅰ辑》, no. 3, 15 March 2017 (2017-03-15), pages 35 - 39 * |
赵谦: "基于Petri网的ASIP流水线研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》, no. 12, 15 December 2014 (2014-12-15), pages 27 - 62 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113378417A (zh) * | 2021-08-16 | 2021-09-10 | 傲林科技有限公司 | 一种基于事件网的建模方法、装置及电子设备 |
CN113378417B (zh) * | 2021-08-16 | 2021-12-14 | 傲林科技有限公司 | 一种基于事件网的建模方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302950B (zh) | 一种软、硬件协同的可编程逻辑器件交联仿真测试方法 | |
US7865350B1 (en) | Partitioning a model in modeling environments | |
EP2598989B1 (en) | Developing programs in a graphical specification and constraint language | |
CN110674590A (zh) | 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法 | |
CN107562969B (zh) | 航空发动机控制系统软件的集成方法和装置 | |
WO2003056473A2 (en) | System, method, and article of manufacture for profiling an application targeted for reconfigurable logic using calls to profiling functions | |
US8972931B1 (en) | Contextual verification of generated code | |
Baldassari et al. | An environment for object-oriented conceptual programming based on PROT nets | |
CN111650847A (zh) | 执行机构模型在航空发动机硬件在回路平台的集成方法 | |
US8265918B1 (en) | Simulation and emulation of a circuit design | |
US7490032B1 (en) | Framework for hardware co-simulation by on-demand invocations from a block model diagram design environment | |
Karlesky et al. | Effective test driven development for embedded software | |
CN112613200A (zh) | 一种基于FPGA的Petri网模拟仿真平台 | |
AU2003264083B2 (en) | Object-oriented design method for the time-effective and cost-effective development of production-grade embedded systems based on a standardized system architecture | |
Brockmeyer et al. | Tamagotchis need not die—verification of STATEMATE designs | |
Kang et al. | A design and test technique for embedded software | |
Gilles et al. | Applying WCET analysis at architectural level | |
Yu et al. | The use of UML sequence diagram for system-on-chip system level transaction-based functional verification | |
CN110632856A (zh) | 一种面向过程的仿真测试验证系统 | |
Katelman et al. | vlogsl: A strategy language for simulation-based verification of hardware | |
Liu et al. | A survey of formal techniques for hardware/software co-verification | |
US8914274B1 (en) | Method and system for instruction set simulation with concurrent attachment of multiple debuggers | |
CN111123084A (zh) | 一种基于tcl语言的数字电路快速测试方法 | |
CN117707654B (zh) | 一种多物理场核心工业仿真处理软件信号通道继承方法 | |
Wang et al. | Model-based simulation testing for embedded software |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210406 |