发明内容
本发明的目的是提出一种用于FPGA仿真的方法及装置,主要用以解决目前针对FPGA逻辑仿真验证时间长,效率低的问题。
为了解决上述问题,本发明具体是这样实现的:
一种用于FPGA仿真的装置包括,配置模块、随机存储器RAM、激励报文产生模块、报文比较模块、存储模块和总线接口模块,RAM填充器;
所述配置模块,将根据随机设计要求确定的报文参数进行配置和保存;
所述激励报文产生模块,输入连接配置模块,用于生成激励报文,并将激励报文送至存储模块;
所述总线接口模块,连接待测FPGA逻辑模块,提供测试FPGA逻辑模块所需的接口和总线;
所述报文比较模块,输入连接存储模块,用于比较激励报文及其经由待测FPGA逻辑模块输出的响应报文,并将比较结果返回存储模块保存;
所述RAM填充器,输入连接配置模块,用于对随机存储器RAM进行内容填充。
所述的用于FPGA仿真的装置,还包括:
脉冲产生模块和仿真采样模块,
所述脉冲产生模块,输入连接配置模块,用于产生控制仿真采样模块的脉冲信号;
所述仿真采样模块,输入连接脉冲产生模块和待测FPGA逻辑模块,将采集到的待测FPGA逻辑模块在仿真过程中的采样文件送入存储模块。
所述的用于FPGA仿真的装置中,所述总线接口模块,通过接口从存储模块中读取激励报文,并通过总线送入待测FPGA逻辑模块,并通过总线读取待测FPGA模块中输出响应报文后通过接口送入存储模块。
所述的用于FPGA仿真的装置中,所述随机存储器RAM至少包括,静态存储器SRAM、动态随机存储器DRAM、同步动态存储器SDRAM、双数据率同步动态存储器DDR SDRAM、延时减小动态随机访问存储器RLDRAM,四倍速静态存储器QDR SRAM或同步静态随机存储器SSRAM。
本发明还提出一种用于FPGA仿真的方法,包括如下处理步骤:
步骤1,配置参数,并保存到文件中;
步骤2,获得配置参数,对随机存储器RAM进行内容填充,产生并保存激励报文;
步骤3,触发待测FPGA逻辑模块对收到的激励报文反馈响应报文,并保存响应报文;
步骤4,比较读取的激励报文和响应报文,将比较结果保存。
所述的用于FPGA仿真的方法,所述步骤2中,还包括步骤:启动脉冲产生模块和仿真采样模块;
所述步骤3中,还包括步骤:脉冲产生模块向仿真采样模块发送脉冲信号,通过仿真采样模块对待测FPGA逻辑模块内的节点和状态寄存器在仿真过程中产生的波形文件进行采样,将采样得到的波形文件写入采样文件。
所述的用于FPGA仿真的方法,所述步骤1中,所述RAM填充器的配置参数包括,是否启动本模块、填充起始地址、填充结束地址和填充内容;
所述对随机存储器RAM进行内容填充,具体包括:
步骤21,从起始地址起,填充随机存储器RAM;
步骤22,判断是否已经填充到结束地址,若是,则转入步骤23,否则,回到继续填充随机存储器RAM;
步骤23,返回填充完毕信号给总线功能模块。
所述的用于FPGA仿真的方法,所述步骤1中,所述脉冲产生模块的配置参数包括,是否启动本模块、采样脉冲信号的频率和计数器最大值;
所述步骤3中,所述脉冲产生模块向仿真采样模块发送脉冲信号,具体还包括:
步骤A,所述脉冲产生模块向仿真采样模块发送产生的脉冲信号,每发送一次采样脉冲信号,计数器加1;
步骤B,判断计数器是否达到预置最大值,若是,则流程结束,否则,返回步骤A。
所述的用于FPGA仿真的方法,所述步骤1中,所述仿真采样模块的配置参数包括,是否启动本模块、保存模块层次、采样文件长度、采样周期;
所述步骤3中,所述对待测FPGA逻辑模块内的节点和状态寄存器在仿真过程中产生的波形文件进行采样,具体包括:
步骤a,根据随机设计,建立采样文件;
步骤b,判断是否收到脉冲产生模块发送的采样脉冲信号,若是,转入c,否则,等待;
步骤c,对正在进行仿真的待测FPGA模块内的节点和状态寄存器产生的波形文件进行采样,写入采样文件,并将采样文件保存到存储模块中;
步骤d,判断采样文件的长度是否达到预置的文件长度,若是,则流程结束,否则,转入步骤e;
步骤e,判断采样时间是否达到预置的采样周期,若是,则流程结束,否则,转入返回步骤c。
所述的用于FPGA仿真的方法,所述步骤1中,所述激励产生模块的配置参数包括,报文长度,报文数量,间隔,报文类型以及报文内容;
所述步骤4中,比较读取的激励报文和响应报文是指,将读取的激励报文和响应报文转换成相同格式,判断报文中报文数量,报文长度,报文内容是否相符。
与现有技术相比较,由于本发明引入了RAM填充器,将目前耗时极大的待测FPGA逻辑模块对其众多RAM接口进行功能验证的处理时间大大减少,极大的提高了FPGA逻辑仿真验证的效率。此外,本发明还引入了脉冲产生模块和仿真采样模块,在保证对FPGA逻辑模块进行快速仿真的基础上,还可以随时复现仿真过程中待测FPGA模块产生的响应文件,保证对待测FPGA逻辑模块进行长时间仿真时,能够正常的进行数据采集,使得对待验证FPGA逻辑模块进行错误诊断成为一项简单、高效的工作。
具体实施方式
本发明的基本技术思想是,在对待测FPGA逻辑模块进行仿真验证时,引入RAM填充模块,用以根据随机设计要求,直接对随机存储器RAM进行内容填充,无需待测FPGA逻辑模块在仿真前按照时序要求进行预置数据的读取和写入,大大减少了对待测FPGA逻辑模块仿真验证的时间,极大的提高了待测FPGA逻辑模块仿真验证的效率。
下面结合附图和具体实施例对本发明作进一步的详细说明。
如图1所示是本发明所述装置的一具体实施例的结构图,如图所示包括:待测FPGA逻辑模块(FPGA的DUT)1和仿真器(TESTBENCH)2,所述待测FPGA逻辑模块,对接收的激励报文产生响应报文,所述仿真器2是用于待测FPGA逻辑模块仿真验证的模块设备,具体包括:
配置模块21,根据随机设计设置装置内其他模块的配置参数,并将配置好的参数保存为文本文件,已备后备之需。
所述配置参数包括,RAM填充器22、激励产生模块24、仿真采样模块28和脉冲产生模块29等模块内需要配置的参数。
RAM填充器22,输入连接配置模块21,读取存入配置模块的配置参数,对随机存储器RAM 23进行内容填充。
这样采用RAM填充器在对待测FPGA逻辑模块仿真时先对随机存储器RAM 23进行内容填充,完成初始化,节约了仿真时间。
随机存储器RAM 23,用于协助验证FPGA的RAM接口,与RAM填充器22和待测FPGA逻辑模块相连,接收RAM填充器的内容填充,不按照时序,直接写入内容,与待测FPGA逻辑模块相连实现RAM总线的时序操作,包括,SRAM(静态存储器),DRAM(动态随机存储器),SDRAM(同步动态存储器),DDR SDRAM(双数据率同步动态存储器),RLDRAM(延时减小动态随机访问存储器),QDR SRAM(四倍速静态存储器)或SSRAM(同步静态随机访问存储器)等。
激励报文产生模块24,连接配置模块21,读取配置模块21中的配置参数,生成激励报文,并将所述激励报文输入到存储模块25。
存储模块25,输入连接激励报文产生模块24、报文比较模块26、总线功能模块27和仿真采样模块28,用于存储激励报文产生模块24产生的激励报文,报文比较模块26输出的输入输出报文的比较结果文件,总线功能模块27输出的待测FPGA逻辑模块的响应报文,和仿真采样模块28输出的采样文件。
报文比较模块26,连接存储模块25,从存储模块25中读取激励报文和响应报文进行比较,得到输入输出报文的异同,并将比较结果返回存储模块25。
总线功能模块BFM 27,在仿真器2中起交通枢纽的作用,它来提供待测FPGA逻辑模块所需的接口和总线,它通过接口,按照FPGA要求的时序从存储模块25中读取激励报文,并通过总线送入待测FPGA逻辑模块1,并通过总线读取待测FPGA逻辑模块中输出的响应报文,通过接口送入存储模块25。
仿真采样模块28,输入连接待测FPGA逻辑模块、配置模块21和脉冲产生模块29,根据配置模块21中保存的配置参数,建立采样文件后,收到脉冲产生模块输出的脉冲信号后采集仿真过程中待测FPGA逻辑模块内各节点及状态寄存器产生的波形文件,并保存到存储模块25中。
脉冲产生模块29,输入连接配置模块21,根据配置模块中保存的配置参数,设置仿真采样模块28进行文件采样的时间间隔,具体是脉冲产生模块产生一定频率的脉冲信号,送入仿真采样模块28,控制仿真采样模块28在设定的时间内按照设定的频率对仿真过程中的待测FPGA逻辑模块内各个节点和状态寄存器进行采样。
如图2所示是本发明所述方法的一具体实施例的处理流程图,采用该方法,用于FPGA仿真的方法的处理流程图。
S201,预先配置参数,并保存至文件中。
所述参数包括,RAM填充器22、激励产生模块24、仿真采样模块28和脉冲产生模块29等需要配置的参数。
所述RAM填充器22的配置参数包括,是否启动本模块、填充起始地址、填充结束地址和填充内容。
所述激励产生模块24的配置参数包括,报文长度,报文数量,间隔,报文类型以及报文内容等。
所述仿真采样模块28的配置参数包括,是否启动本模块、采样模块、采样层次、采样文件大小、采样周期。
所述脉冲产生模块29的配置参数包括,是否启动本模块、采样脉冲信号的频率和计数器最大值。
S202,读取文件,根据获得的配置参数同时进行如下处理:
生成激励报文,并以文件形式进行保存;
通过RAM填充器对随机存储器RAM进行内容填充;
配置脉冲产生模块以及仿真采样模块,并建立采样文件。
S203,将激励报文送入待测FPGA逻辑模块。
具体而言,通过BFM模块将读取的激励报文转换成相应的总线或接口要求的时序信号送入待测FPGA逻辑模块。
S204,待测FPGA逻辑模块收到激励报文后,产生响应报文,并保存到存储模块25中;在待测FPGA逻辑模块产生响应报文的同时,仿真采样模块28根据脉冲产生模块29产生的脉冲信号开始对待测FPGA逻辑模块内的节点和状态寄存器在仿真过程中产生的波形文件进行采样,将采样得到的波形文件写入采样文件,并进行保存。所述待测FPGA逻辑模块对接收到的激励报文产生反馈对应的响应报文,直至产生的激励报文发送结束。
S205,从存储模块25中读取激励报文和响应报文进行比较,得到比较结果文件,并保存比较结果文件到存储模块25中。所述报文比较,判断报文中报文数量,报文长度,报文内容等是否相符,以此判断待测FPGA逻辑模块是否存在错误。当通过报文比较发现待测FPGA逻辑模块存在错误时,通过查询保存在存储模块25中的采样文件进行错误诊断。
所述激励报文是激励报文产生模块24产生,并由BFM模块27读取后输入到待测FPGA逻辑模块中。
所述响应报文,是待测FPGA逻辑模块根据BFM模块27发送来的激励报文产生的反馈响应文件。
所述比较结果文件,由报文比较模块26从存储模块25中读取所述激励报文和响应报文,并将读取的文件转换成相同格式,进行报文比较,并将比较结果保存,以备查询。
所述采样文件,是由仿真采样模块28采样待测FPGA逻辑模块在仿真过程中其内部各个节点、状态寄存器产生的波形文件。在待测FPGA逻辑模块对输入的激励报文产生响应报文前,在存储模块25中建立采样文件,随着对待测FPGA逻辑模块仿真的开始,逐步将采集到的波形文件写入采样文件中。
所述采样文件与所述响应报文的区别在于,所述采样文件保存的是待测FPGA逻辑模块中内部各个节点及状态寄存器在仿真过程中产生的波形文件,而所述响应报文则是待测FPGA逻辑模块输出端上的文件。
如图3所示,本发明所述RAM填充器对随机存储器RAM 23进行内容填充的处理流程图。
S301,查询配置模块21中保存的配置参数,判断是否设置启动RAM填充器22,若是,则转入S302,否则,继续查询配置模块21中的参数配置。
所述判断是否设置启动RAM填充器22,是根据配置模块21对RAM填充器22参数“是否启动”进行配置确定的。
S302,获取配置模块21中保存的配置参数,所述参数包括,填充RAM的起始地址,填充RAM 23的结束地址和填充内容。
S303,对RAM 23进行内容填充,一次填充一个地址。
所述RAM填充器22填充的内容,所述填充内容是随机设计,或者是固定内容(例如,初始化的全0或者全1)。
S304,判断是否已经填充到结束地址,若是,则进行S305,否则,回到S303继续填充。
S305,返回填充完毕信号给BFM模块27,结束填充。
所述BFM模块27收到填充完毕信号后,触发待测FPGA逻辑模块对接收到的激励报文反馈响应报文。
如图4所示是本发明的脉冲产生模块24的处理流程图。
S401,查询配置模块21中保存的配置参数,判断是否设置启动脉冲产生模块29,若是,则转入S402,否则,继续查询配置模块21中的参数配置。
S402,获取配置模块21中保存的配置参数,所述参数包括,采样脉冲信号的频率,计数器最大值。
S403,向仿真采样模块28发送采样脉冲信号,每发送一次采样脉冲信号,计数器加1。
S404,判断计数器是否达到预置最大值,若是,则流程结束,否则,返回S403。
如图5所示是本发明的仿真采样模块的处理流程图。
S501,查询配置模块21中保存的配置参数,判断是否需要启动仿真采样模块28,若是,则转入S502,否则,继续查询配置模块21中的参数配置。
所述配置参数包括,根据随机设计要求设置的采样文件的长度,采样周期等。
S502,根据随机设计,建立采样文件。
S503,判断是否收到脉冲产生模块29发送的采样脉冲信号,若是,转入S504,否则,等待。
此处设置的是一循环,用以接收脉冲产生模块29发送的采样脉冲信号。
S504,对正在进行仿真的待测FPGA模块内的节点和状态寄存器产生的波形文件进行采样,写入采样文件,并将采样文件保存到存储模块25中。
S505,判断采样文件的长度是否达到预置的文件长度,采样时间是否达到设置的采样周期,若是,则流程结束,否则,返回S503。
所述S504中在对节点和状态寄存器产生的波形文件进行采样前,先判断被采样的节点或状态寄存器是否在已设定的采样模块或采样层次上,若是,则转入S503,否则,流程结束。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应注意的是,以上所述仅为本发明的具体实施例而已,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求记载的技术方案及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。