一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于FPGA芯片的高层次综合仿真验证方法及系统与流程

2021-12-14 21:58:00 来源:中国专利 TAG:

一种基于fpga芯片的高层次综合仿真验证方法及系统
技术领域
1.本发明涉及数字处理技术领域,更具体地,涉及一种基于fpga芯片的高层次综合仿真验证方法及系统。


背景技术:

2.高层次综合(high

level synthesis)简称hls,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。其中,高层次语言包括c、c 等,通常是具有较高的抽象度的,通常不具有时序的概念,而所谓的低层次语言,如verilog、vhdl、systemverilog等,通常用来描述寄存器传输型模型,通常具有时钟的概念。
3.目前针对高层次综合工具的语言转换准确度缺少系统性的验证技术,导致高层次综合工具的功能正确性可能会存在误判,因此高层次综合工具无法投入市场正常使用。现有采用verilog验证平台对低层次语言的正确性进行验证,其中verilog验证平台是基于eda仿真验证工具所提供的语言调用接口来调用相应的语言实现仿真验证。然而由于eda仿真验证工具所提供的接口仅适用于对c/system c或者system verilog的调用,存在一定局限性。


技术实现要素:

4.本发明为克服上述现有技术所述的针对高层次综合工具的语言转换准确度缺少系统性的验证技术的缺陷,提供一种基于fpga芯片的高层次综合仿真验证方法,以及一种基于fpga芯片的高层次综合仿真验证系统。
5.为解决上述技术问题,本发明的技术方案如下:
6.一种基于fpga芯片的高层次综合仿真验证方法,包括以下步骤:
7.s1:获取通过高层次语言表达的函数或算法;
8.s2:将所述函数或算法通过待验证的高层次综合工具转换为低层次语言代码;
9.s3:在fpga芯片配置低层次语言代码,fpga芯片接收激励并输出响应;
10.s4:将fpga芯片输出的响应与根据所述函数或算法的类型预设的预期结果进行对比验证,得到验证结果。
11.作为优选方案,所述函数或算法包括浮点运算函数、chstone的sha加密算法、aes加密算法、motion压缩算法、jpeg压缩算法、blowfish加密算法、gsm编码算法、三角运算函数、mips处理器函数中的一种。
12.作为优选方案,所述s3步骤中,在fpga芯片配置低层次语言代码的步骤包括:
13.s31:将低层次语言代码烧录在fpga芯片上;
14.s32:设置uart串口,通过所述uart串口实现dut与fpga的交互通讯;
15.s33:通过串口调试助手将激励输入dut中,dut响应并执行运算,向fpga返回响应结果。
16.作为优选方案,设置uart串口的步骤包括:
17.1)例化待测文件,通过参数化方式例化的uart串口输入与输出串口对象;
18.2)初始化uart串口功能,设置时钟频率、波特率以及每秒总时钟周期数量;
19.3)设置三段式主状态机;
20.4)根据下层输入与输出串口的输出控制线在主状态机中设置状态跳转条件;
21.5)设置转并与转串功能;
22.6)设置asic字符转换功能;
23.7)设置子状态机用于对预设激励进行检验并输出;
24.8)设置自定义的计数器用于对输入的连续32位16进制的数据进行切分,并通过输入串口传入内部寄存器,然后通过控制线传入例化的dut。
25.作为优选方案,所述uart串口的时钟频率设置为50m,波特率设置为115200。
26.作为优选方案,所述s3步骤中,还包括以下步骤:采用xilinx vivado的ila进行仿真,ila通过下载器与fpga芯片连接,将fpga芯片的测试信号输入ila中并经过一段延时后,输出得到响应结果。
27.作为优选方案,所述s4步骤中,还包括以下步骤:采用chstone基准测试套件计算fpga芯片中实现的最高频率情况,用于衡量待验证的高层次综合工具的实现效果;所述最高频率情况f
max
的计算表达公式如下:
[0028][0029]
式中,period参数表示fpga芯片综合使用的时钟信号的周期,slack参数表示fpga芯片相应时估计的建立时间富余量。
[0030]
作为优选方案,还包括以下步骤:搭建uvm验证平台对待验证的高层次综合工具转换的低层次语言代码进行验证。
[0031]
本发明还提出一种基于fpga芯片的高层次综合仿真验证系统,应用于上述任一技术方案提出的基于fpga芯片的高层次综合仿真验证方法,其具体包括:
[0032]
获取模块,用于获取通过高层次语言表达的函数或算法;
[0033]
高层次综合工具,用于将所述函数或算法转换为低层次语言代码;
[0034]
fpga芯片,用于配置经过待验证的高层次综合工具转换的低层次语言代码;所述fpga芯片还用于接收预设激励并输出响应;
[0035]
验证模块,用于将fpga芯片输出的响应与根据所述函数或算法的类型预设的预期结果进行对比验证,输出验证结果。
[0036]
作为优选方案,所述验证模块还包括uvm平台,用于验证低层次语言代码的正确性。
[0037]
与现有技术相比,本发明技术方案的有益效果是:本发明利用fpga开发板对高层次综合工具转换的低层次语言代码正确性进行验证,进而实现高层次综合仿真验证;通过搭配uart串口程序,完成dut工程在主流fpga芯片上的可交互或直接实现,从而验证高层次综合工具的实用性。
附图说明
[0038]
图1为实施例1的基于fpga芯片的高层次综合仿真验证方法的流程图。
[0039]
图2为实施例2的基于fpga芯片的高层次综合仿真验证系统的原理图。
[0040]
图3为实施例2的uvm平台拓扑结构图。
具体实施方式
[0041]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0042]
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0043]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0044]
实施例1
[0045]
本实施例提出一种基于fpga芯片的高层次综合仿真验证方法,如图1所示,为本实施例的基于fpga芯片的高层次综合仿真验证方法的流程图。
[0046]
本实施例提出的基于fpga芯片的高层次综合仿真验证方法中,包括以下步骤:
[0047]
步骤1:获取通过高层次语言表达的函数或算法。
[0048]
其中,所述高层次语言包括basic、java、c、c 、python等程序设计语言。
[0049]
本实施例中用于验证高层次综合工具所使用的函数或算法包括浮点运算函数、chstone的sha加密算法、aes加密算法、motion压缩算法、jpeg压缩算法、blowfish加密算法、gsm编码算法、三角运算函数、mips处理器函数中的一种。
[0050]
步骤2:将所述函数或算法通过待验证的高层次综合工具转换为低层次语言代码。
[0051]
其中,所述低层次语言代码包括verilog、rtl、vhdl、systemverilog等。
[0052]
步骤3:在fpga芯片配置低层次语言代码,fpga芯片接收激励并输出响应。
[0053]
本步骤中,在fpga芯片配置低层次语言代码的步骤包括:
[0054]
s31:将低层次语言代码烧录在fpga芯片上;
[0055]
s32:设置uart串口,通过所述uart串口实现dut与fpga的交互通讯;
[0056]
s33:通过串口调试助手将激励输入dut中,dut响应并执行运算,向fpga返回响应结果。
[0057]
本实施例中,可以通过串口调试助手发送输入激励给dut,经过运算之后dut返回计算的结果,与正确结果作比较,从而验证dut功能的正确性。
[0058]
其中,所设置的uart串口文件主要用于确定串口所需的一系列信号如时钟信号,复位信号,串口输入信号,串口输出信号以及若干控制和指示信号。
[0059]
本实施例中设置uart串口的步骤包括:
[0060]
1)例化待测文件,通过参数化方式例化的uart串口输入与输出串口对象;
[0061]
2)初始化uart串口功能,设置时钟频率、波特率以及每秒总时钟周期数量;本实施例中实现的输入与输出串口代码的默认时钟频率设为50m,波特率设为115200;
[0062]
3)设置三段式主状态机;本实施例中根据需求分为闲置状态,验证预设激励状态,等待用户输入自定义激励状态;
[0063]
4)根据下层输入与输出串口的输出控制线在主状态机中设置状态跳转条件;
[0064]
5)设置转并与转串功能;
[0065]
6)设置asic字符转换功能;
[0066]
7)设置子状态机负责对testbench预设激励进行检验并输出,根据目标testbench
情况设置子状态机状态个数与对应寄存器的初始值,该部分功能可通过perl脚本进行快速编写;
[0067]
8)设置自定义的计数器用于对输入的连续32位16进制的数据进行切分,并通过输入串口传入内部寄存器,然后通过控制线传入例化的dut。
[0068]
本实施例还可以进一步采用xilinx vivado的ila进行仿真,ila通过下载器与fpga芯片连接,将fpga芯片的测试信号输入ila中并经过一段延时后,输出得到响应结果。
[0069]
步骤4:将fpga芯片输出的响应与根据所述函数或算法的类型预设的预期结果进行对比验证,得到验证结果。
[0070]
进一步的,本实施例采用chstone基准测试套件计算fpga芯片中实现的最高频率情况,用于衡量待验证的高层次综合工具的实现效果,当实现的最高频率越高,则高层次综合的实现效果就越好;所述最高频率情况f
max
的计算表达公式如下:
[0071][0072]
式中,period参数表示fpga芯片综合使用的时钟信号的周期,slack参数表示fpga芯片相应时估计的建立时间富余量。
[0073]
进一步的,本实施例还通过搭建uvm验证平台对待验证的高层次综合工具转换的低层次语言代码进行验证。参照图3,数据流向如图中的箭头所示。待测数据在测试激励产生与约束模块(seq_item)生成,然后通过数据驱动模块(driver)对激励传输的时序做调整,接着通过顶层接口(interface)传入待测设计(dut)中,如果需要使用寄存器模型(ral)对待测设计进行配置,则可以在testbench顶层通过配置参数拓展出寄存器模型测试模块(ral_regblock)来完成配置。在待测设计处理完输入激励后,数据将通过接口模块(interface)将数据传入测试结果收集模块(monitor),再进一步传递入比较模块(scoreboard)对测试结果做用户所设置的自动比对工作。
[0074]
进一步的,在确认高层次综合工具所综合出代码的完成周期总数的过程中,在负责module声明的函数generatecodefordecl中添加一个reg类型变量fin_latch,通过时序逻辑让这个fin_latch实现对module端口中专用于指示计算是否结束的fin信号的锁存。随后通过添加一段断言来根据fin_latch的状态在仿真器完成工程运行完毕所需周期数的计算工作。
[0075]
在具体实施过程中,所采用的fpga芯片包括紫光同创的pgt180h板卡、xilinx的zedboard板卡、altera的de1

soc板卡等。
[0076]
本实施例利用fpga开发板对高层次综合工具转换的低层次语言代码正确性进行验证,进而实现高层次综合仿真验证。进一步的,通过搭配uart串口程序,完成dut工程在三款国内外主流fpga上的可交互或直接实现,从而验证高层次综合工具的实用性。
[0077]
实施例2
[0078]
本实施例提出一种基于fpga芯片3的高层次综合仿真验证系统,如图2所示,为本实施例的基于fpga芯片3的高层次综合仿真验证系统的原理图。
[0079]
本实施例提出的基于fpga芯片3的高层次综合仿真验证系统中,包括:
[0080]
获取模块1,用于获取通过高层次语言表达的函数或算法;
[0081]
高层次综合工具2,用于将所述函数或算法转换为低层次语言代码;
[0082]
fpga芯片3,用于配置经过待验证的高层次综合工具2转换的低层次语言代码;所述fpga芯片3还用于接收预设激励并输出响应;
[0083]
验证模块4,用于将fpga芯片3输出的响应与根据所述函数或算法的类型预设的预期结果进行对比验证,输出验证结果。
[0084]
其中,获取模块1中所获取的通过高层次语言表达的函数或算法包括浮点运算函数、chstone的sha加密算法、aes加密算法、motion压缩算法、jpeg压缩算法、blowfish加密算法、gsm编码算法、三角运算函数、mips处理器函数中的一种。
[0085]
本实施例中,在fpga芯片3中配置经过待验证的高层次综合工具2转换的低层次语言代码的步骤包括:将低层次语言代码烧录在fpga芯片3上;设置uart串口,通过所述uart串口实现dut与fpga的交互通讯;通过串口调试助手将激励输入dut中,dut响应并执行运算,向fpga返回响应结果。
[0086]
其中,uart串口需要实现如下一系列功能:
[0087]
1)例化待测文件,以参数化方式例化的uart输入与输出串口对象;
[0088]
2)实现串口的初始化功能,设置时钟频率,波特率以及每秒总时钟周期数量等参数。本设计里实现的输入与输出串口代码的默认时钟频率设为50m,波特率设为115200;
[0089]
3)设置三段式主状态机,根据需求分为闲置状态,验证预设激励状态,等待用户输入自定义激励状态;
[0090]
4)根据下层输入与输出串口的输出控制线在主状态机中完成状态跳转条件设置;
[0091]
5)为输入输出信号设置串转并与并转串功能;
[0092]
6)实现将十六进制数据转换为asic字符的转换功能,并实现实时将用户输入的自定义激励转译为asic字符的功能,通过自定义计数器实现通过串口输出转换后的asic字符;
[0093]
7)设置子状态机负责对testbench预设激励进行检验并输出,根据目标testbench情况设置子状态机状态个数与对应寄存器的初始值,该部分功能可通过perl脚本进行快速编写;
[0094]
8)通过自定义的计数器实现对输入的连续32位16进制数据进行切分,并分别通过输入串口传入内部寄存器,然后通过控制线传入例化的待测对象实现计算。
[0095]
本实施例中,所采用的fpga芯片3包括紫光同创的pgt180h板卡、xilinx的zedboard板卡、altera的de1

soc板卡等。
[0096]
本实施例中的验证模块4还用于计算chstone各工程在fpga实现的最高频率情况,用于衡量高层次综合工具2的实现效果,评估高层次综合工具2的性能。
[0097]
进一步的,本实施例中的验证模块4还搭建有uvm平台,用于验证低层次语言代码的正确性。如图3所示,为本实施例的uvm平台拓扑结构图。
[0098]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献