一种用于fpga仿真的装置及方法

文档序号:7691566阅读:153来源:国知局
专利名称:一种用于fpga仿真的装置及方法
技术领域
本发明涉及数据通信领域,尤其涉及FPGA仿真技术,具体而言涉及一种 用于FPGA仿真的装置及方法。
背景技术
随着数据通信技术的发展,特别是高带宽高速度的数据通信技术的出现, 在数据通信芯片设计上,大规模,高速度,高复杂度的数据通信芯片设计层出 不穷,尤其是基于FPGA实现的大规模逻辑设计,完成的逻辑功能既多又复杂。 通常为了保证FPGA逻辑设计投入实际应用的可靠性,在投入使用前需要对设 计好的FPGA逻辑进行仿真验证,为了提高仿真的效率,目前还出现了一些专 门用来对FPGA逻辑进行验证仿真的装置。现有的验证仿真装置一般包括,待测FPGA逻辑模块和仿真器,所述仿真 器包括,激励报文生成模块,报文比较模块,BFM模块以及参数配置模块等, 所述激励报文生成模块根据参数配置模块配置的参数生成激励报文,通过BFM 模块送入待测FPGA逻辑模块,所述待测FPGA逻辑模块根据输入的激励报文, 生成对应的响应报文,通过BFM模块送入报文比较模块,报文比较模块将从激 励报文生成模块中读取的激励报文与所述响应报文进行比较,得出所述两种报 文的异同。由于FPGA实现的逻辑功能越来越复杂,而且目前常用的大规模FPGA设 计中都带有外接RAM接口 ,外接RAM接口的存储规模至少在几十Mbit以上, 这样在对带有RAM接口的FPGA进行仿真验证时,必须先对RAM接口进行仿 真初始化,即,预置参数并对RAM进行内容读写,由于在对RAM进行初始化时,必须严,各遵循读写时序要求,这才羊大大增加了仿真-验i正的时间,且随着FPGA 实现的功能越来越复杂,则其外接的RAM接口芯片的数量也越来越多,使得仿 真验证花费的时间大大增加,非常不利于提高FPGA逻辑仿真验证的效率。例如,对待测FPGA逻辑模块的一个ZBT(零总线周转)的32位的SSRAM (同步静态随机存储器)接口进行初始化,该RAM接口是一种读写效率比较高 的RAM,其存储规模为32M比特,其工作时间为100MHZ即周期为10ns,不 算任何开销,将其内容全写为0需要1048576个周期,花费时间为 1048576*10=10485760ns,由于目前仿真装置的仿真时间和待测FPGA逻辑模块 的运行时间基本上保持lmin: 25000ns的比例,从上述分析可以获知仅对RAM 接口进行初始化的时间是10485760/25000=419.4304 (分钟),约为七小时,而且 还要对RAM进行参数配置也需要较长时间,这样使得仿真验证耗时极大。综上所述,目前迫切需要一种新的FPGA仿真装置可以高效快速的进行 FPGA的仿真验证。本发明专利申请中涉及到的专业术语及一些重要缩写FPGA: Field Programmable Gate Array现场可编程门阵列, 一种可编程的芯片。DUT: Design under testing待验证设计(指的是待验证FPGA逻辑模块)。 Testbench:用于验证FPGA的仿真器。 RAM:随机存储器。BFM: Bus Function Model总线功能模型,它是用来模拟各种接口以及总线 行为的 一个模型,Testbench通过它和待验证FPGA逻辑模块来进行沟通。发明内容本发明的目的是提出 一种用于FPGA仿真的方法及装置,主要用以解决目 前针对FPGA逻辑仿真验证时间长,效率低的问题。 为了解决上述问题,本发明具体是这样实现的6一种用于FPGA仿真的装置包括,配置模块、随机存储器RAM、激励报文 产生模块、报文比较模块、存储模块和总线接口模块,RAM填充器;所述配置模块,将根据随机设计要求确定的报文参数进行配置和保存;所述激励报文产生模块,输入连接配置模块,用于生成激励报文,并将激 励报文送至存储模块;所述总线接口模块,连接待测FPGA逻辑模块,提供测试FPGA逻辑模块 所需的接口和总线;所述报文比较模块,输入连接存储模块,用于比较激励报文及其经由待测 FPGA逻辑模块输出的响应报文,并将比较结果返回存储模块保存;所述RAM填充器,输入连接配置模块,用于对随机存储器RAM进行内容 填充。所述的用于FPGA仿真的装置,还包括 脉冲产生模块和仿真采样模块,所述脉沖产生模块,输入连接配置模块,用于产生控制仿真采样模块的脉 沖信号;所述仿真采样模块,输入连接脉沖产生模块和待测FPGA逻辑模块,将采 集到的待测FPGA逻辑模块在仿真过程中的采样文件送入存储模块。所述的用于FPGA仿真的装置中,所述总线接口模块,通过接口从存储模 块中读取激励报文,并通过总线送入待测FPGA逻辑模块,并通过总线读取待 测FPGA模块中输出响应报文后通过接口送入存储模块。所述的用于FPGA仿真的装置中,所述随机存储器RAM至少包括,静态存 储器SRAM、动态随机存储器DRAM、同步动态存储器SDRAM、双数据率同 步动态存储器DDRSDRAM、延时减小动态随机访问存储器RLDRAM,四倍速 静态存储器QDR SRAM或同步静态随机存储器SSRAM。本发明还提出一种用于FPG A仿真的方法,包括如下处理步骤步骤l,配置参数,并保存到文件中步骤2,获得配置参数,对随机存储器RAM进行内容填充,产生并保存激 励报文;步骤3,触发待测FPGA逻辑模块对收到的激励报文反馈响应报文,并保存 响应纟良文;步骤4,比较读取的激励报文和响应报文,将比较结果保存。所述的用于FPGA仿真的方法,所述步骤2中,还包括步骤启动脉冲产 生模块和仿真采样模块;所述步骤3中,还包括步骤脉冲产生模块向仿真采样模块发送脉冲信号, 通过仿真采样模块对待测FPGA逻辑模块内的节点和状态寄存器在仿真过程中 产生的波形文件进行采样,将采样得到的波形文件写入采样文件。所述的用于FPGA仿真的方法,所述步骤l中,所述RAM填充器的配置参 数包括,是否启动本^t块、填充起始地址、填充结束地址和填充内容;所述对随机存储器RAM进行内容填充,具体包括步骤21,从起始地址起,填充随机存储器RAM;步骤22,判断是否已经填充到结束地址,若是,则转入步骤23,否则,回 到继续填充随机存储器RAM;步骤23,返回填充完毕信号给总线功能模块。所述的用于FPGA仿真的方法,所述步骤1中,所述脉冲产生模块的配置 参数包括,是否启动本模块、采样脉沖信号的频率和计数器最大值;所述步骤3中,所述脉沖产生模块向仿真采样模块发送脉沖信号,具体还 包括步骤A,所述脉沖产生模块向仿真采样模块发送产生的脉沖信号,每发送 一次采样脉沖信号,计数器加l;步骤B,判断计数器是否达到预置最大值,若是,则流程结束,否则,返回 步骤A。所述的用于FPGA仿真的方法,所述步骤l中,所述仿真采样模块的配置参数包括,是否启动本模块、保存模块层次、采样文件长度、采样周期;所述步骤3中,所述对待测FPGA逻辑模块内的节点和状态寄存器在仿真 过程中产生的波形文件进行采样,具体包括 步骤a,根据随机设计,建立采样文件;步骤b,判断是否收到脉沖产生模块发送的采样脉沖信号,若是,转入c, 否则,等待;步骤c,对正在进行仿真的待测FPGA模块内的节点和状态寄存器产生的波 形文件进行采样,写入采样文件,并将采样文件保存到存储模块中;步骤d,判断采样文件的长度是否达到预置的文件长度,若是,则流程结束, 否则,转入步-骤e;步骤e,判断采样时间是否达到预置的采样周期,若是,则流程结束,否贝'J, 转入返回步骤c。所述的用于FPGA仿真的方法,所述步骤1中,所述激励产生模块的配置 参数包括,报文长度,报文数量,间隔,报文类型以及报文内容;所述步骤4中,比较读取的激励报文和响应报文是指,将读取的激励报文 和响应报文转换成相同格式,判断报文中报文数量,报文长度,报文内容是否 相符。与现有技术相比较,由于本发明引入了 RAM填充器,将目前耗时极大的待 测FPGA逻辑模块对其众多RAM接口进行功能验证的处理时间大大减少,极大 的提高了 FPGA逻辑仿真验证的效率。此外,本发明还引入了脉沖产生模块和 仿真采样模块,在保证对FPGA逻辑模块进行快速仿真的基础上,还可以随时 复现仿真过程中待测FPGA模块产生的响应文件,保证对待测FPGA逻辑模块 进行长时间仿真时,能够正常的进行数据采集,使得对待验证FPGA逻辑模块 进行错误诊断成为一项简单、高效的工作。


图1是本发明的用于FPGA仿真的装置的结构图;图2是本发明的用于FPGA仿真的方法的处理流程图;图3是本发明的RAM填充器的处理流程图;图4是本发明的脉冲产生模块的处理流程图;图5是本发明的仿真采样模块的处理流程图。
具体实施方式
本发明的基本技术思想是,在对待测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逻辑模块仿真时先对随机存储器 RAM23进行内容填充,完成初始化,节约了仿真时间。随机存储器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的配置参数包括,是否启动本模块、采样脉冲信号的 频率和计数器最大值。5202, 读取文件,根据获得的配置参数同时进行如下处理 生成激励报文,并以文件形式进行保存;通过RAM填充器对随机存储器RAM进行内容填充; 配置脉冲产生模块以及仿真采样模块,并建立采样文件。5203, 将激励报文送入待测FPGA逻辑模块。具体而言,通过BFM模块将读取的激励报文转换成相应的总线或接口要求 的时序信号送入待测FPGA逻辑模块。5204, 待测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参数"是否启动"进行配置确定的。5302, 获取配置模块21中保存的配置参数,所述参数包括,填充RAM的 起始地址,填充RAM 23的结束地址和填充内容。5303, 对RAM23进行内容填充, 一次填充一个地址。 所述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,根据随机设计,建立采样文件。5503, 判断是否收到脉沖产生模块29发送的采样脉沖信号,若是,转入 S504,否则,等待。此处设置的是一循环,用以接收脉冲产生模块29发送的采样脉冲信号。5504, 对正在进行仿真的待测FPGA模块内的节点和状态寄存器产生的波 形文件进行采样,写入采样文件,并将采样文件保存到存储模块25中。S505,判断采样文件的长度是否达到预置的文件长度,采样时间是否达到 设置的采样周期,若是,则流程结束,否则,返回S503。所述S504中在对节点和状态寄存器产生的波形文件进行采样前,先判断被 采样的节点或状态寄存器是否在已设定的采样模块或采样层次上,若是,则转 入S503,否则,流程结束。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进 一步详细说明,所应注意的是,以上所述仅为本发明的具体实施例而已,本领 域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求记载的技术方案 及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种用于FPGA仿真的装置,其特征在于,包括,配置模块、随机存储器RAM、激励报文产生模块、报文比较模块、存储模块和总线接口模块,RAM填充器;所述配置模块,将根据随机设计要求确定的报文参数进行配置和保存;所述激励报文产生模块,输入连接配置模块,用于生成激励报文,并将激励报文送至存储模块;所述总线接口模块,连接待测FPGA逻辑模块,提供测试FPGA逻辑模块所需的接口和总线;所述报文比较模块,输入连接存储模块,用于比较激励报文及其经由待测FPGA逻辑模块输出的响应报文,并将比较结果返回存储模块保存;所述RAM填充器,输入连接配置模块,用于对随机存储器RAM进行内容填充。
2、 如权利要求1所述的用于FPGA仿真的装置,其特征在于,还包括 脉沖产生模块和仿真采样模块,所述脉沖产生模块,输入连接配置模块,用于产生控制仿真采样模块的脉 沖信号;所述仿真采样模块,输入连接脉冲产生模块和待测FPGA逻辑模块,将采 集到的待测FPGA逻辑模块在仿真过程中的采样文件送入存储模块。
3、 如权利要求1或2所述的用于FPGA仿真的装置,其特征在于 所述总线接口模块,通过接口从存储模块中读取激励报文,并通过总线送入待测FPGA逻辑模块,并通过总线读取待测FPGA模块中输出响应报文后通 过接口送入存储模块。
4、 如权利要求1或2所述的用于FPGA仿真的装置,其特征在于 所述随机存储器RAM至少包括,静态存储器SRAM、动态随机存储器DRAM、同步动态存储器SDRAM、双数据率同步动态存储器DDR SDRAM、 延时减小动态随机访问存储器RLDRAM,四倍速静态存储器QDR SRAM或同 步静态随片几存储器SSRAM。
5、 一种用于FPGA仿真的方法,其特征在于,包括如下处理步骤 步骤l,配置参数,并保存到文件中;步骤2,获得配置参数,对随机存储器RAM进行内容填充,产生并保存激 励报文;步骤3,触发待测FPGA逻辑模块对收到的激励报文反馈响应报文,并保存 响应报文;步骤4,比较读取的激励报文和响应报文,将比较结果保存。
6、 如权利要求5所述的用于FPGA仿真的方法,其特征在于, 所述步骤2中,还包括步骤启动脉沖产生模块和仿真采样模块; 所述步骤3中,还包括步骤脉冲产生模块向仿真釆样模块发送脉冲信号,通过仿真采样模块对待测FPGA逻辑模块内的节点和状态寄存器在仿真过程中 产生的波形文件进行采样,将采样得到的波形文件写入采样文件。
7、 如权利要求6所述的用于FPGA仿真的方法,其特征在于 所述步骤l中,所述RAM填充器的配置参数包括,是否启动本模块、填充起始地址、填充结束地址和填充内容;所述对随机存储器RAM进行内容填充,具体包括 步骤21,从起始地址起,填充随机存储器RAM;步骤22,判断是否已经填充到结束地址,若是,则转入步骤23,否则,回 到继续填充随机存储器RAM;步骤23,返回填充完毕信号给总线功能模块。
8、 如权利要求6所述的用于FPGA仿真的方法,其特征在于 所述步骤1中,所述脉冲产生模块的配置参数包括,是否启动本模块、采样脉沖信号的频率和计数器最大值;所述步骤3中,所述脉沖产生^t块向仿真采样^t块发送脉沖信号,具体还包括步骤A,所述脉冲产生模块向仿真采样模块发送产生的脉沖信号,每发送 一次采样脉沖信号,计数器加l;步骤B,判断计数器是否达到预置最大值,若是,则流程结束,否则,返回 步骤A。
9、 如权利要求6所述的用于FPGA仿真的方法,其特征在于 所述步骤1中,所述仿真采样模块的配置参数包括,是否启动本模块、保存模块层次、采样文件长度、采样周期;所述步骤3中,所述对待测FPGA逻辑模块内的节点和状态寄存器在仿真 过程中产生的波形文件进行采样,具体包括步骤a,根据随机设计,建立采样文件;步骤b,判断是否收到脉沖产生模块发送的采样脉沖信号,若是,转入c, 否则,等待;步骤c,对正在进行仿真的待测FPGA模块内的节点和状态寄存器产生的波 形文件进行采样,写入采样文件,并将采样文件保存到存储模块中;步骤d,判断采样文件的长度是否达到预置的文件长度,若是,则流程结東, 否则,转入步骤e;步骤e,判断采样时间是否达到预置的采样周期,若是,则流程结束,否贝'J, 转入返回步骤c。
10、 如权利要求5或6所述的用于FPGA仿真的方法,其特征在于, 所述步骤1中,所述激励产生模块的配置参数包括,报文长度,报文数量,间隔,报文类型以及报文内容;所述步骤4中,比较读取的激励报文和响应报文是指,将读取的激励报文 和响应报文转换成相同格式,判断报文中报文数量,报文长度,报文内容是否 相符。
全文摘要
本发明公开了一种用于FPGA仿真的装置及方法,所述装置包括,配置模块,将根据随机设计要求确定的报文参数进行配置和保存;激励报文产生模块,输入连接配置模块,用于生成激励报文,并将激励报文送至存储模块;总线接口模块,连接待测FPGA逻辑模块,提供测试FPGA逻辑模块所需的接口和总线;报文比较模块,输入连接存储模块,用于比较激励报文及其经由待测FPGA逻辑模块输出的响应报文,并将比较结果返回存储模块保存;RAM填充器,输入连接配置模块,用于对随机存储器RAM进行内容填充。本发明将待测FPGA逻辑模块对其众多RAM接口进行功能验证的处理时间大大减少,极大的提高了FPGA逻辑仿真验证的效率。
文档编号H04L12/56GK101262380SQ20081009362
公开日2008年9月10日 申请日期2008年4月17日 优先权日2008年4月17日
发明者刘一远 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1