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

一种门级仿真网表文件正确性的验证方法及装置与流程

2021-10-24 12:09:00 来源:中国专利 TAG:可编程 正确性 仿真 器件 装置

1.本发明属于可编程逻辑器件领域的软件测试领域,尤其涉及一种门级仿真网表文件正确性的验证方法及装置。


背景技术:

2.现场可编程门阵列fpga仿真可以分为前仿真和后仿真。前仿真是寄存器传输级(rtl)仿真,此级仿真可以用来检查代码中的语法错误以及验证电路的功能是否符合设计要求。后仿真是综合后的仿真,也就是功能仿真,功能仿真一般验证综合后是否可以得到设计者所需要的正确功能。在功能仿真的基础上,再加上器件延时,连线延时等时序参数,并在此基础上进行仿真,就非常接近真实器件运行情况了。后仿真需要fpga eda软件生成综合后网表文件,作为仿真输入,若生成的综合后网表文件本身就不正确,那就失去了仿真的意义了,所以后仿真的前提就是生成的综合后网表文件是正确的。因此需要提供一种方法来验证后网表文件的正确性。


技术实现要素:

3.本发明要解决的技术问题是怎样验证后仿真网表文件的正确性,提高功能仿真的效率,提供了一种门级仿真网表文件正确性的验证方法及装置。
4.为解决该问题,本发明所采用的技术方案是:一种门级仿真网表文件正确性的验证方法,包括以下步骤:步骤1:创建cell类和netlist类;步骤2:获取verilog网表文件;步骤3:基于所述verilog网表文件做装箱、布局、布线处理生成仿真网表文件;步骤4:创建一个netlist对象实例a,解析verilog网表,装箱和布局生成的结果文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例a中与该类型相对应的的属性列表中;步骤5:创建一个netlist的实例b,解析仿真网表文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例b中与该类型相对应的属性列表中;步骤6:比对实例a和实例b中各单元属性列表的信息,当比对信息一致时,说明从verilog网表到后仿真网表的转换过程中,后仿真网表文件是正确的。
5.进一步地,所述属性列表包括:输入输出管脚信息列表、逻辑资源信息列表、存储资源信息列表以及数字信号处理资源信息列表。
6.进一步地,在步骤6中比对实例a和实例b中各单元的属性列表信息时,首先在a,b两个实例相同资源列表中cell单元的实例名name相同时,比对cell实例的place属性是否相同,端口信号信息是否相同。
7.进一步地,在比对端口信号信息是否相同时,需要比对从各自实例的信号信息中提取到的原端口信号判断各输入端口的连接信号是否一致,配置参数是否一致。
8.进一步地,在比对端口信号信息是否相同时,在进行存储资源信息比对之前,对实例a的存储资源信息列表中各存储单元信息做进一步处理,将存储资源信息列表中具有相同存储逻辑名的存储器合并,并合并存储器的输入数据位端口信号以及输出数据位端口信号,同时修改跟数据位信号相关的存储器属性配置值。
9.进一步地,在对存储资源列表信息比对时,将根据实例a中存储资源信息列表中存储单元合并后的存储器与实例b的存储资源信息列表中的存储器信息进行比对。
10.进一步地,在比对端口信号信息是否相同时,在进行数字信号处理资源信息比对之前,对实例a的数字处理资源信息列表中各计算单元信息做进一步处理,将各计算单元的数据位宽调整为与当前数据位宽最接近且大于当前位宽的标准数据位宽位数,位宽不足的高位补零。
11.进一步地,在对数字信号处理资源信息比对时,根据实例a的数字处理资源信息列表中的处理后的计算单元与实例b的数字信号处理资源信息列表中对应的计算单元信息进行比对。
12.一种门级仿真网表文件正确性的验证装置,包括以下模块:类创建模块:用于创建cell单元类和netlist类;获取模块:用于获取verilog网表文件;实例a创建模块:用于创建一个netlist对象实例a,解析verilog网表,装箱和布局生成的结果文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例a中与该类型相对应的的属性列表中;实例b创建模块:用于创建一个netlist的实例b,解析仿真网表文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例b中与该类型相对应的属性列表中;比对验证模块:用于比对实例a和实例b中各单元属性列表的信息,遍历每个列表,对相同列表中cell实例name属性相同的单元进行比较,当比对信息一致时,说明从verilog网表到后仿真网表的转换过程中,后仿真网表文件是正确的。
13.与现有技术相比,本发明所取得的有益效果是:本发明一种门级仿真网表文件正确性的验证方法及装置,从verilog网表文件、装箱、布局的结果文件可以获取verilog电路实现需要使用的资源信息,以及实现电路中信号的连接信息,与eda软件在做装箱,布局,布线后生成一个仿真网表文件,将根据verilog网表文件生成的资源块和信号连接信息与仿真网表文件生成的逻辑块和信号连接信息进行比对,比对结果一致,则说明仿真网表文件正确,比对结果不一致,则说明fpga eda软件的处理方式有误,仿真网表文件错误。本发明在verilog网表文件经过综合映射,装箱,布局,布线,配码生成比特流烧写到fpga芯片之前,通过验证后仿真网表文件的正确性,提前发现问题,缩短测试时间,提高测试效率,降低测试成本。
附图说明
14.图1为本发明系统流程图;图2资源类型为输入输出管脚以及逻辑资源时信息比对流程图;图3为资源类型为存储资源类型时信息比对流程图;图4为资源类型为数字信号处理dsp类型时信息比对流程图。
具体实施方式
15.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.图1示出了本发明一种门级仿真网表文件正确性的验证方法的一种具体实施例,包括以下步骤:步骤1:创建cell类和netlist类;cell类包含的属性有:name,pack信息,place信息,端口信号字典,配置参数字典netlist类包含的属性有:netlist文件名,逻辑资源列表,存储器资源列表,数字信号处理资源列表,输入输出管脚资源列表,信号信息字典netlist类包含的方法有:添加列表元素的add方法,解析netlist文件的方法,更新信号字典的方法,解析装箱布局结果的方法。
17.步骤2:获取verilog网表文件;步骤3:基于所述verilog网表文件做装箱、布局、布线处理生成仿真网表文件;步骤4:创建一个netlist对象实例a,解析verilog网表,装箱和布局生成的结果文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例a中与该类型相对应的的属性列表中;如该cell实例是逻辑单元,则通过netlist的add方法,将cell实例添加到实例a的逻辑单元列表中,若为存储单元,则将cell实例添加到实例a的存储单元列表中,当解析到信号信息时,将信号信息存放到实例a的信号信息字典中。verilog电路在fpga eda软件中,经过综合后会生成一个基于fpga基本单元的网表文件,称为verilog网表文件,基于verilog网表文件,eda软件再做装箱,布局,布线处理,从verilog网表文件、装箱,布局的结果文件可以获取verilog电路实现需要使用的资源信息,以及实现电路中信号的连接信息,本实施例通过python或者其他编程语言,从这三个文件中将相关信息提取出来,并定义实例a,用于存放所有资源列表信息。
18.步骤5:创建一个netlist的实例b,解析仿真网表文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例b中与该类型相对应的属性列表中;如该cell实例是逻辑单元,则通过netlist的add方法,将cell实例添加到实例b的逻辑单元列表中,若为存储单元,则将cell实例添加到实例b的存储单元列表中,当解析到信号信息时,将信号信息存放到实例b的信号字典中;eda软件在做装箱,布局,布线后会生成一个仿真网表文件,仿真网表文件相对verilog网表文件描述的信息更详细,且经过装箱布局出来生成的存储资源信息同verilog网表文件会有所区别,verilog网表中是fpga基本逻辑单元,仿真网表中是fpga逻
辑块单元,但是资源量及信号间的传递关系不会改变,所以用python语言解析仿真网表文件,同样会得到一个netlist类的实例b。
19.本发明从verilog网表文件、装箱、布局的结果文件创建的实例a,与verilog网表文件做装箱、布局、布线后生成的仿真网表文件中创建的实例b,虽然生成的存储资源信息有所不同,但是资源量与信号间的传递关系不会改变,基于此,本发明设计了比对流程,只要比对结果前后一致,就说明后仿真网表文件正确,否则,仿真网表文件错误。从而使得以前需要将verilog/vhdl编写的代码,需要通过fpga专用的eda软件,经过综合映射,装箱,布局,布线,配码生成一串二进制比特流,再烧写到fpga芯片中,烧写成功后,如果eda软件处理正确,fpga芯片即可按照预设的功能运作,按照一般流程,只有烧写到fpga芯片后,才能确认eda软件的处理是否正确。而本发明正是因为发现了网表文件前后的关联性,通过验证后仿真网表文件,可以尽早验证fpga软件在前端处理过程中是否有误,提前发现问题,且本发明可用于批量性测试中,验证fpga eda软件对各种类型实现电路的处理结果,缩短测试时间,提高测试效率,降低测试成本。
20.步骤6:比对实例a和实例b的各单元属性列表的信息,当比对信息一致时,说明从verilog网表到后仿真网表的转换过程中,后仿真网表文件是正确的。当比对信息不一致时,将不一致的数据输出到比对结果文件中,查看比对的结果文件,找到fpga eda软件在从verilog网表到仿真网表文件的处理方式有误的地方。
21.本实施例中,实例a或实例b对应的属性列表包括:输入输出管脚信息列表、逻辑资源信息列表、存储资源信息列表以及数字信号处理资源信息列表。在具体比对时,则是比对与各资源类型相对应的模块单元进行比对,如图1所示,与输入输出管脚信息资源类型相对应的是管脚单元,与逻辑资源类型相对应的是逻辑单元,与存储资源信息类型相对应的是存储单元,与数字信号处理资源信息类型相对应的是计算单元。
22.本实施例中,如图2所示,在比对输入输出管脚信息与逻辑资源信息时,在实例a,b中输入输出管脚列表和逻辑资源列表中cell实例具有相同name的情况下,比对输出端口,在输出端口信号一致时,比对输入端口,并将输出端口信号不一致的信息记录到结果文件中,在输入端口的比对过程中,从实例a的信号字典信息中提取出原输入端口信号,比对输入端口的连接信号是否一致,与实例b的信号信息字典中的端口信号进行比对,如比对输入端口信号来自于输入管脚时输入端口信号是否一致、比对输入端口信号来自于逻辑单元输出时,输入端口信号是否一致,比对输入端口信号来自于存储单元输出时,以及输入端口信号来自于dsp单元输出时,输入端口信号是否一致,在所有输入端口比对完毕后,再比对cell实例的配置属性字典是否一致,在比对过程中,将不一致的信息都记录到结果文件中,便于查找在哪个地方出错。
23.本实施例中,由于从verilog网表到后仿真网表,会根据fpga存储器的存储容量对存储器资源进行合并装箱,在进行存储资源信息比对之前,将实例a的存储资源列表中存储单元信息做进一步处理,将存储资源列表中具有相同存储逻辑名的存储器合并,并合并存储器的输入数据位端口信号以及输出数据位端口信号,同时修改跟数据位信号相对应的存储器属性配置值。因此,如图3所示,在对存储资源类型信息比对时,在对输出端口和输入端口比对时,将实例a的存储资源列表中的存储单元合并后的存储器与实例a的存储资源列表中的存储器信息进行比对。
24.本实施例中,如图4所示,在进行数字信号处理资源类型信息比对之前,对实例a的数字信号处理资源列表中各计算单元信息做进一步处理,将各计算单元的数据位宽调整为与当前数据位宽最接近且大于当前位宽的标准数据位宽位数,位宽不足的高位补零。如实际dsp资源的数据位宽有9位,18位,36位几种,但是在verilog网表中的dsp资源的数据位宽不在这几种内时就需要做调整,如果是不足9位的,就当作9位处理,此时就需要在高位通过补零的方式,让其数据位编程9位,其他情况根据位宽做类似处理。因此在对数字信号处理资源类型信息比对时,将根据实例a的数字信号处理资源列表中的计算单元处理后的计算单元与实例b的数字信号处理资源列表中的计算单元信息进行比对。与图2相比,在对计算单元进行输出端口的比对之前,以及在比对输入端口的信号时,都先进行了合并处理或补位处理之后才进行信息的比对。只有这些信息都一致,才能说明从verilog网表到后仿真网表的转换过程中,对逻辑资源的处理是正确的。
25.本发明还提供了一种门级仿真网表文件正确性的验证装置,包括以下模块:类创建模块:用于创建cell单元类和netlist类;获取模块:用于获取verilog网表文件;实例a创建模块:用于创建一个netlist对象实例a,解析verilog网表,装箱和布局生成的结果文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例a中与该类型相对应的属性列表中;实例b创建模块:用于创建一个netlist的实例b,解析仿真网表文件,根据解析到的信息,创建cell单元对象实例,并将信息存放到cell单元的实例属性中,再根据cell单元实例的类型将cell单元实例添加到实例b中与该类型相对应的属性列表中;比对验证模块:用于比对实例a和实例b的所有属性列表,遍历每个列表,对相同列表中cell实例name属性相同的单元进行比较,当比对信息一致时,说明从verilog网表到后仿真网表的转换过程中,后仿真网表文件是正确的。
26.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜