CN103093046A - 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法 - Google Patents
一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法 Download PDFInfo
- Publication number
- CN103093046A CN103093046A CN2013100108469A CN201310010846A CN103093046A CN 103093046 A CN103093046 A CN 103093046A CN 2013100108469 A CN2013100108469 A CN 2013100108469A CN 201310010846 A CN201310010846 A CN 201310010846A CN 103093046 A CN103093046 A CN 103093046A
- Authority
- CN
- China
- Prior art keywords
- point
- formula
- vhdl
- topworks
- sensor
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明一种将FPGA硬件描述语言VHDL转换为普通Petri网的方法,针对编译好的VHDL程序,得到输入输出之间的逻辑关系,将输入输出之间的逻辑关系式化简为V2P布尔表达式,将V2P布尔表达式变形,利用变形后的布尔表达式转换为普通Petri网;本发明提供了VHDL程序的建模方法,是FPGA硬件描述语言VHDL的仿真和验证的有力工具。
Description
技术领域
本发明涉及一种将FPGA硬件描述语言VHDL转为普通Petri网的方法。
背景技术
FPGA(Field-Programmable Gate Array)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(VHDL)所完成的电路设计,可以经过简单的综合与布局,快速地烧录至FPGA上进行测试。FPGA(现场可编程逻辑器件)产品的主要应用领域有通信、消费电子、汽车电子、工业控制、测试测量等。随着技术要求的日渐提高,控制系统规模和结构复杂性增长日渐迅速。比如铁路交通控制系统,系统的状态个数随传感器和执行机构的数目呈现指数级的增长,若某一系统有n个传感器和执行机构,则这个系统状态有2n个,状态数非常庞大,所以FGPA面临着高计算复杂性的问题。
而高计算复杂性带来很多实际问题,比如:VHDL程序设计和程序调试工作量繁琐和巨大,芯片开发周期和成本不可调控;VHDL程序仿真无法验证每个状态(2n),无法保证程序的正确性和可靠性,而程序出错可能造成严重事故。为了避免上述一些问题的出现,我们需要开发FPGA硬件描述语言VHDL的软件验证方法,利用计算机来完成程序仿真和验证工作,降低程序开发成本,保证程序的正确性和可靠性。因此,需要将VHDL程序模拟为计算机数学模型,即将VHDL程序转换为一种计算机数学模型—-Petri网,以Petri网为工具对VHDL程序进行仿真和验证。Petri网是1960年代德国科学家卡尔·A·佩特里发明的,适合于模拟异步的、并发的动态系统,既有严格的数学表述方式,又有直观的图表达方式。
发明内容
本发明提供了一种将FPGA硬件描述语言VHDL转化为普通Petri网模型的方法。
一种将FPGA硬件描述语言VHDL转为普通Petri网的方法,包括如下步骤:
步骤1:针对编译成功的VHDL程序,在实体中找到该程序的输入X,输出Y,其中Xm,Xn∈X,Y,Yk∈Y,得到关于输入输出的逻辑表达式,称为V2P公式:其中 I,J,M,N∈{N+},Yk,Xm,XN代表布尔量或布尔量取反,且
步骤2:令V2P公式中的Yk=Lk,Xm,n=Wm,n或Lm,n,其中Lk,Wm,n,Lm,n为布尔量或布尔量的逆,得到一个关于L和W的逻辑关系式(1),为V2P公式的变形:
步骤3:将关于L和W的逻辑关系式(1)转化为普通Petri网模型,具体步骤如下:
步骤3.1:用集合表示所有的传感器WP和执行机构LQ,传感器{Wp|Wp∈WP,p,P∈N+}和执行机构{Lq|Lq∈LQ,q,Q∈N+};
步骤3.3:首先令p=P;
步骤3.5:p=p-1;
步骤3.6:当p≠0时,转步骤3.4,当p=0时,所有传感器的模型都建立起来了;
步骤3.8:首先令q=Q;
步骤3.12:q=q-1,;
步骤3.13:当q≠0时,转步骤3.9,当q=0时,所有的执行机构的模型都建立起来了;
步骤3.14:将建立的传感器和执行机构的模型合并起来,得到完整的Petri网模型。
本发明实现了VHDL程序到普通Petri网模型的自动转换,由于普通Petri网激发条件简洁,逻辑思维方式简单,更直观易懂;而且所得Petri网模型能够完全模拟VHDL程序中状态的转换,便于对程序分析、纠错,使程序逻辑更为严谨。
附图说明
图1为本发明的工作流程图;
图2为本发明实施例一站点的Petri网模型;
图3为发明实施例一小车进站出站系统的Petri网模型;
图4为本发明实施例二单容水箱示意图;
图5为本发明实施例二单容水箱的Petri网模型。
以下结合附图和具体实施例对本发明做进一步详述。
具体实施方式
如图1所示,本发明一种将FPGA硬件描述语言VHDL转为普通Petri网的方法,具体包括如下步骤:
步骤1:针对编译成功的VHDL程序,在实体中找到该程序的输入X,输出Y,其中Xm,Xn∈X,Y,Yk∈Y,得到关于输入输出的逻辑表达式,称为V2P公式:其中 I,J,M,N∈{N+},Yk,Xm,XN代表布尔量或布尔量取反,且
步骤3:将关于L和W的逻辑关系式(1)转化为普通Petri网模型步骤如下:
步骤3.1:用集合表示所有的传感器WP和执行机构LQ,传感器{Wp|Wp∈WP,p,P∈N+}和执行机构{Lq|Lq∈LQ,q,Q∈N+};
步骤3.3:首先令p=P;
步骤3.5:p=p-1;
步骤3.6:当p≠0时,转步骤3.4,当p=0时,所有传感器的模型都建立起来了;
步骤3.8:首先令q=Q;
步骤3.12:q=q-1,;
步骤3.13:当q≠0时,转步骤3.9,当q=0时,所有的执行机构的模型都建立起来了;
步骤3.14:将建立的传感器和执行机构的模型合并起来,得到完整的Petri网模型。
以下结合实施例来加深对上述步骤的理解。
实施例1:一辆小车从A站点开往B站点,经过A站点时触发A站点传感器,当小车行驶在A,B站点中间段的时候,不允许其他小车进入A站点,当小车到达B站点,触发B站点传感器,此时允许其他小车进入A站点。
步骤1:在已有的VHDL程序里面找到输入输出:X,Y,即输入为a,b;输出为c;
步骤3:利用布尔量运算规则: 化简为V2P公式:
步骤5:用W0表示站点A,W1表示站点B,用一对库所p1,p2,即表示站点A的两种状态,用一对库所p3,p4即表示站点B的两种状态,在上述的两对库所之间分别加上两个变迁,t0,t1,t2,t3,用八条有向弧arc1-arc8连接库所和变迁,如图2所示:
步骤7:在库所之间加上一对变迁t4,t5,用四条有向弧连接,得到路段绿灯的状态必须变迁t5激发或变迁t4不激发,利用V2P公式变形的形式,对变迁t4,利用公式,在t5与之间用双向弧连接,对变迁t5,利用公式,在t4与之间用双向弧连接,如图3所示;
步骤8:得到图3的Petri网模型后,利用其性质进行验证:
步骤8.1:小车进入A站点,传感器有信号,t1激发,B站点无信号,t2激发,则p1中有标识,p4中有标识,变迁t4激发,路段处于红灯状态,不能允许下一辆小车进入A站点;
步骤8.2:小车离开A站点,传感器无信号,变迁t0激发,标识回到p2库所;
步骤8.3:小车在路段之间行驶时间内,路段始终处于红灯状态,即标识处于p6库所内,
步骤8.4:小车到达B站点时,B站点传感器有信号,变迁t3激发,标识从p4内转移到p3内,此时t5变迁激发,标识从p6中转移到p5中,路段处于绿灯状态,表示下一辆小车可以进入A站点,与实际要求相符合,完成验证。
实施例2:单容水箱,传感器S,进水阀A,出水阀B,当水位到达S时,进水阀A关闭,出水阀B打开,当水位未到达S时,进水阀A打开,出水阀B关闭,如图4所示。
步骤1:在已有的VHDL程序里面找到输入输出X,Y,这个系统里面有两个输出c1,c2,输入为a;
步骤2:得到关于c1,c2,a的逻辑表达式:c1=not a,c2=a,用‘-’代表not,表达式变为:c2=a;
步骤3:利用布尔量运算规则: 化简为V2P公式:
步骤5:用W表示传感器S,用一对库所p1,p2,即(WW,IW)表示传感器的两种状态,有信号和无信号状态,在这对库所之间加上两个变迁t1,t2,用四条有向弧连接库所和变迁;
步骤7:在之间加上变迁t3,t4,用四条有向弧连接库所和变迁,得到进水阀打开的状态,则变迁t3激发或变迁t4不能激发,利用V2P公式的变形公式在变迁t3与IW之间加上双向弧,在变迁t4与WW之间加上双向弧;
步骤9:在之间加上变迁t5,t6,用四条有向弧连接库所和变迁,得到进水阀打开的状态,则变迁t5激发或t6不能激发,利用V2P公式的变形公式在变迁t5与WW之间加上双向弧,在变迁t6与IW之间加上双向弧,如图5所示;
步骤10:得到图5的Petri网模型后,利用其性质进行验证:
步骤10.1:当库所p1有标识,即传感器有信号,水位上升到S点时,t4,t5激发,进水阀A关闭,出水阀B打开;
步骤10.2:当变迁t2激发,水位为上升到S点时,p2有标识,则t3,t6激发,进水阀A打开,出水阀B关闭,与实际要求相吻合,验证完毕。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (1)
1.一种将FPGA硬件描述语言VHDL转为普通Petri网的方法,其特征在于包括如下步骤:
步骤1:针对编译成功的VHDL程序,在实体中找到该程序的输入X,输出Y,其中Xm,Xn∈X,Y,Yk∈Y,得到关于输入输出的逻辑表达式,称为V2P公式:其中 I,J,M,N∈{N+},Yk,Xm,XN代表布尔量或布尔量取反,且
步骤3:将关于L和W的逻辑关系式(1)转化为普通Petri网模型,具体步骤如下:
步骤3.1:用集合表示所有的传感器WP和执行机构LQ,传感器{Wp|Wp∈WP,p,P∈N+}和执行机构{Lq|Lq∈LQ,q,Q∈N+};
步骤3.3:首先令p=P;
步骤3.5:p=p-1;
步骤3.6:当p≠0时,转步骤3.4,当p=0时,所有传感器的模型都建立起来了;
步骤3.8:首先令q=Q;
步骤3.12:q=q-1,;
步骤3.13:当q≠0时,转步骤3.9,当q=0时,所有的执行机构的模型都建立起来了;
步骤3.14:将建立的传感器和执行机构的模型合并起来,得到完整的Petri网模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310010846.9A CN103093046B (zh) | 2013-01-11 | 2013-01-11 | 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310010846.9A CN103093046B (zh) | 2013-01-11 | 2013-01-11 | 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103093046A true CN103093046A (zh) | 2013-05-08 |
CN103093046B CN103093046B (zh) | 2016-03-30 |
Family
ID=48205606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310010846.9A Expired - Fee Related CN103093046B (zh) | 2013-01-11 | 2013-01-11 | 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103093046B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699730A (zh) * | 2013-12-18 | 2014-04-02 | 华侨大学 | 一种基于Petri网的组合逻辑FPGA系统可达图的生成方法 |
CN103761387A (zh) * | 2014-01-20 | 2014-04-30 | 华侨大学 | 一种fpga组合逻辑系统顺序规范的形式化验证方法 |
CN104503816A (zh) * | 2014-12-30 | 2015-04-08 | 西安电子科技大学 | 一种硬件语言vhdl到msvl的自动转换系统 |
CN109002601A (zh) * | 2018-07-06 | 2018-12-14 | 西安电子科技大学 | 一种基于Petri网的FPGA系统的验证模型建模方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020054239A (ko) * | 2000-12-27 | 2002-07-06 | 오길록 | 에스디엘로 기술된 프로토콜을 자료 흐름과 셀프루프를처리하여 칼라드 페트리 넷으로 변환하는 방법 |
CN102411330A (zh) * | 2011-08-25 | 2012-04-11 | 华侨大学 | 一种将可编程逻辑控制器程序转换为普通Petri网的方法 |
-
2013
- 2013-01-11 CN CN201310010846.9A patent/CN103093046B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020054239A (ko) * | 2000-12-27 | 2002-07-06 | 오길록 | 에스디엘로 기술된 프로토콜을 자료 흐름과 셀프루프를처리하여 칼라드 페트리 넷으로 변환하는 방법 |
CN102411330A (zh) * | 2011-08-25 | 2012-04-11 | 华侨大学 | 一种将可编程逻辑控制器程序转换为普通Petri网的方法 |
Non-Patent Citations (1)
Title |
---|
朱国魂等: "描述VHDL语句的Petri Nets模型", 《系统仿真学报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699730A (zh) * | 2013-12-18 | 2014-04-02 | 华侨大学 | 一种基于Petri网的组合逻辑FPGA系统可达图的生成方法 |
CN103699730B (zh) * | 2013-12-18 | 2017-02-22 | 华侨大学 | 一种基于Petri网的组合逻辑FPGA系统可达图的生成方法 |
CN103761387A (zh) * | 2014-01-20 | 2014-04-30 | 华侨大学 | 一种fpga组合逻辑系统顺序规范的形式化验证方法 |
CN103761387B (zh) * | 2014-01-20 | 2017-01-18 | 华侨大学 | 一种fpga组合逻辑系统顺序规范的形式化验证方法 |
CN104503816A (zh) * | 2014-12-30 | 2015-04-08 | 西安电子科技大学 | 一种硬件语言vhdl到msvl的自动转换系统 |
CN104503816B (zh) * | 2014-12-30 | 2017-09-19 | 西安电子科技大学 | 一种硬件语言vhdl到msvl的自动转换系统 |
CN109002601A (zh) * | 2018-07-06 | 2018-12-14 | 西安电子科技大学 | 一种基于Petri网的FPGA系统的验证模型建模方法 |
CN109002601B (zh) * | 2018-07-06 | 2020-09-08 | 西安电子科技大学 | 一种基于Petri网的FPGA系统的验证模型建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103093046B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102411330B (zh) | 一种将可编程逻辑控制器程序转换为普通Petri网的方法 | |
CN105302950A (zh) | 一种软、硬件协同的可编程逻辑器件交联仿真测试方法 | |
CN103093046B (zh) | 一种将FPGA硬件描述语言VHDL转化为普通Petri网的方法 | |
CN107346249A (zh) | 一种基于模型的计算机软件开发方法 | |
CN104375842A (zh) | 一种自适应软件uml建模及其形式化验证方法 | |
CN104573182A (zh) | 一种用于飞行器多模态控制系统的设计方法 | |
CN109933529A (zh) | 基于计算单元的验证方法及验证平台 | |
CN104598373B (zh) | 一种多技术融合的嵌入式软件测试方法 | |
CN103150440A (zh) | 一种模块级电路网表仿真方法 | |
US10289774B1 (en) | Systems and methods for reuse of delay calculation in static timing analysis | |
CN106411635A (zh) | 一种实时协议的形式化分析及验证方法 | |
CN104732001B (zh) | 电子器件的在线设计验证 | |
CN103455362A (zh) | 一种硬件语言自动转换系统 | |
CN102184136B (zh) | 一种验证aadl模型运行状态与需求一致性的方法 | |
CN107016165A (zh) | 一种SoC自动化随机验证的方法 | |
CN105956287A (zh) | Cad系统环境下产品设计与环境影响评价集成系统与方法 | |
CN103761387B (zh) | 一种fpga组合逻辑系统顺序规范的形式化验证方法 | |
CN110362912A (zh) | 介观结构优化方法 | |
CN105989212A (zh) | 一种分析汽车车门过开启的方法 | |
CN101377795A (zh) | 一种工业便携式终端专用soc芯片逻辑验证方法 | |
CN106777729A (zh) | 一种基于fpga的算法库仿真验证平台实现方法 | |
CN105740579A (zh) | 一种连接uvm验证平台的搭建方法 | |
CN103699730B (zh) | 一种基于Petri网的组合逻辑FPGA系统可达图的生成方法 | |
Ebeid et al. | HDL code generation from UML/MARTE sequence diagrams for verification and synthesis | |
CN107704664A (zh) | 一种基于疲劳折算的安全系数计算方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
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: 20160330 Termination date: 20220111 |