本发明涉及可编程集成电路设计技术领域,尤其涉及一种FPGA配置控制模块验证方法及装置。
背景技术:
目前,FPGA(Field-Programmable Gate Array,现场可编程门阵列)技术发展迅速,其高度的灵活性,使其在通信、数据处理、网络、仪器、工业控制、军事和航空航天等领域得到越来越广泛的应用。同时,随着工艺节点的不断攀升,使得对于可编程电路的系统集成度、可编程资源以及器件规模提出了更高的要求。FPGA的逻辑是通过向内部存储单元加载编程数据来实现的,存储在存储单元中的值决定了逻辑单元的逻辑功能以及各模块之间或者模块与输入输出(IO)之间的联接方式,并最终决定了FPGA所能实现的功能。上电时,FPGA将数据配置到片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失。用户可以根据不同配置模式采用不同编程方式。
在FPGA设计中,编程功能由配置控制模块完成,该功能是FPGA工作的基础,因此对于配置控制模块的验证尤为关键。目前,验证者通常需要花费大量的时间来进行验证用例的编写,然后使用编写好的验证用例对配置控制模块进行验证,验证时间较长,验证效率不高。
技术实现要素:
本发明提供的FPGA配置控制模块验证方法及装置,能够缩短验证时间,提高验证效率。
第一方面,本发明提供一种FPGA配置控制模块验证方法,包括:
根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为仿真向量,其中,所述仿真向量包括输入值和期望输出值;
将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值;
将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。
第二方面,本发明提供一种FPGA配置控制模块验证装置,包括:
向量生成器,用于根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为仿真向量,其中,所述仿真向量包括输入值和期望输出值;
验证模块,用于将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值,将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。
本发明实施例提供的FPGA配置控制模块验证方法及装置,根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为包括输入值和期望输出值的仿真向量,将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值,将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。与现有技术相比,本发明能够采用统一的方法进行验证用例的描述,验证者不需要花费大量的时间进行验证用例的编写,而且,通过可读性强的仿真向量进行验证,从而能够缩短验证时间,提高验证效率。
附图说明
图1为本发明一实施例提供的FPGA配置控制模块验证方法的流程图;
图2为本发明另一实施例提供的FPGA配置控制模块验证方法的流程图;
图3为本发明实施例提供的FPGA配置控制模块验证装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种FPGA配置控制模块验证方法,如图1所示,所述方法包括:
S11、向量生成器根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为仿真向量,其中,所述仿真向量包括输入值和期望输出值。
S12、验证模块将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值,将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。
本发明实施例提供的FPGA配置控制模块验证方法,根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为包括输入值和期望输出值的仿真向量,将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值,将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。与现有技术相比,本发明能够采用统一的方法进行验证用例的描述,验证者不需要花费大量的时间进行验证用例的编写,而且,通过可读性强的仿真向量进行验证,从而能够缩短验证时间,提高验证效率。
本发明实施例提供另一种FPGA配置控制模块验证方法,如图2所示,所述方法包括:
S21、根据FPGA配置控制模块功能的特点以及验证方式的需求,对向量描述语言的语法进行定义。
其中,所述语法包括数据、函数、常量、变量、信号、总线的定义和调用以及对参数传递的支持等。在该步骤中,需从验证的角度出发为向量生成器的开发提供设计需求。
S22、采用高级语言构建向量生成器。
依据步骤S21提供的需求,使用高级语言完成向量生成器的开发与调试。
其中,所述向量生成器实际就是一种编译器,它由高级语言C语言实现,将一种语言翻译成另外一种语言,源语言是便于编写、阅读交流、维护的高级语言,目标语言是低级语言,在验证平台中可以直接解读并且运行的语言,即验证平台中使用的仿真向量文件。向量生成器根据所述预先定义的向量描述语言的语法,预先设置向量描述语言格式到仿真向量格式的转换规则,采用该转换规则对向量描述语言进行编译得到仿真向量。
其中,向量生成器支持步骤S21中列出的所有语法,能对用步骤S21定义的向量描述语言进行编写的文本进行编译,产生出仿真向量文件。
S23、制定详细验证计划以及确定验证用例列表,明确FPGA配置控制模块支持的所有接口的相关信号的时序功能。
验证过程必须以一个完整的计划作为基础,根据验证计划规划出所有验证用例。对于FPGA配置控制模块,主要完成以各种接口模式进行FPGA配置的功能,因此,需要明确所有FPGA配置控制模块支持接口的相关信号的时序功能。
S24、根据验证计划和验证用例列表,使用向量描述语言编写验证用例。
根据验证计划得到的验证用例列表,完成所有验证用例的编写,按照步骤S21定义的向量描述语言的语法完成每个验证用例中对验证流程的描述。
S25、向量生成器根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为仿真向量。
其中,所述仿真向量包括输入值和期望输出值,仿真向量文件的格式根据输入输出信号分别用不同的符号表示,0、1代表输入,L、H代表期望输出,X代表不关心状态,这样就可以表示双向端口的输入输出状态。将仿真与时钟联系,从而产生一个与时钟周期有关,并且同步于该时钟周期的输出文件。向量文件既包含激励信息也包含电路响应信息。
具体地,向量生成器首先对所述使用预先定义的向量描述语言编写的验证用例进行语法分析,将所述验证用例中的语法单元分离出来;然后对分离出的语法单元进行语义分析,确定各个语法单元的意义;最好根据预设的转换规则以及各个语法单元的意义将所述验证用例转换为预定格式的仿真向量。
S26、构建支持仿真向量的验证平台。
该仿真平台不是基于事件,而是基于时钟周期的,需要支持如下功能:向量的读取、激励的施加以及输出结果比对。
S27、在所述验证平台中对仿真向量进行验证。
在步骤S26中构建的验证平台中,对步骤S25中转换得到的仿真向量进行验证。
具体地,按照特定的时间每个周期、每个管脚地加入激励,将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值,将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。
本发明实施例提供的FPGA配置控制模块验证方法,针对FPGA配置控制模块可支持的多种接口模式,采用统一的方法进行验证用例的描述,通过可读性强的高级语言对验证过程进行描述,提高了验证用例的开发效率;向量生成器仅仅在仿真运行期间执行并将本文转换为仿真向量,冗长的仿真向量在仿真结束后就可以被删除,只需保留直观且简练的文本文件即可,大大节省了磁盘空间资源。同时在验证中使用到的仿真向量通过简单的转换便可以直接在自动测试设备上进行使用,所有验证用例可以在芯片测试阶段进行重用,提高了测试向量的通过率,大大缩短了产品开发测试周期。
本发明实施例还提供一种FPGA配置控制模块验证装置,如图3所示,所述装置包括:
向量生成器11,用于根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为仿真向量,其中,所述仿真向量包括输入值和期望输出值;
验证模块12,用于将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值,将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。
本发明实施例提供的FPGA配置控制模块验证装置,根据预设的转换规则,将使用预先定义的向量描述语言编写的验证用例转换为包括输入值和期望输出值的仿真向量,将所述仿真向量的输入值输入待验证的FPGA配置控制模块进行仿真,得到实际输出值,将所述仿真向量的期望输出值与所述实际输出值进行比较,若二者一致,则验证通过,否则验证失败。与现有技术相比,本发明能够采用统一的方法进行验证用例的描述,验证者不需要花费大量的时间进行验证用例的编写,而且,通过可读性强的仿真向量进行验证,从而能够缩短验证时间,提高验证效率。
进一步地,所述向量生成器11,用于对所述使用预先定义的向量描述语言编写的验证用例进行语法分析,将所述验证用例中的语法单元分离出来;对分离出的语法单元进行语义分析,确定各个语法单元的意义;根据预设的转换规则以及各个语法单元的意义将所述验证用例转换为预定格式的仿真向量。
进一步地,所述向量生成器11,还用于根据所述预先定义的向量描述语言的语法,预先设置向量描述语言格式到仿真向量格式的转换规则。
其中,所述预先定义的向量描述语言的语法根据所述FPGA配置控制模块功能的特点以及验证方式的需求确定。
其中,所述预先定义的向量描述语言的语法包括数据、函数、常量、变量、信号、总线的定义和调用以及对参数传递的支持。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。