芯片EDA仿真中检查时钟的方法及装置与流程

文档序号:30611587发布日期:2022-07-01 23:48阅读:363来源:国知局
芯片eda仿真中检查时钟的方法及装置
技术领域
1.本发明涉及芯片开发技术领域,尤其涉及一种芯片eda仿真中检查时钟的方法及装置。


背景技术:

2.随着设计芯片(ic)规模的增加,芯片(ic)的验证(verification)工作显得越来越重要。验证工作贯穿整个芯片设计流程,从行为级hdl设计,一直到芯片流片之前都需要进行大量的eda(eletronic design automation,电子设计自动化)仿真验证。通过对芯片进行eda仿真来验证芯片设计的正确性,从而排除错误。
3.eda仿真通常包括功能仿真和时序仿真两个级别的仿真测试。作为典型方式的举例,比如根据客户提出的芯片需求设计芯片体系架构并划分模块功能后,使用硬件描述语言(比如verilog等)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过hdl语言描述出来形成rtl(resistor transistor logic,寄存器传输级)代码,然后对前述rtl代码施加激励获得其运行的结果以判断该rtl代码是否能正确运行,上述对rtl代码进行仿真验证以检验所设计代码的逻辑功能正确性的过程就称为功能仿真,也称为前仿真(简称前仿)。随后,进行逻辑综合——加入了约束、单元延时等信息,对逻辑综合后的网表进行仿真就称为时序仿真(仿真包含了延时信息),也称为后仿真(简称后仿)。
4.芯片eda仿真的前仿真与后仿真所使用的仿真器和测试激励相同,但仿真所需文件不完全相同,仿真结果波形图也不同,时钟生成方式也不同。在实际的芯片eda仿真验证中发现,有一些仿真问题是由时钟问题引入的:主要原因就是因为在前仿真和后仿真中时钟的生成方式不一样,使得在后仿真时容易出现时钟频率信息和前仿真的时钟频率信息不一致的问题,从而导致前仿真中能够正常运行的测试案例(case)在后仿真时出现报错。显然,提高eda仿真中时钟频率准确性可以减少很多不必要的迭代,有助于提升仿真效率。
5.然而,目前对芯片仿真的时钟频率进行检查和校准通常是由人工进行:当后仿真出现报错时,后仿真验证人员往往需要人工将仿真的时钟频率信息与设定的参考时钟信号(clk信号,clk为clock 的缩写)进行比对,以检查时钟频率是否出现问题。上述人工校准时钟频率的方法的自动化程度较低,需要花费验证人员较多的时间,检查效率低,在一定程度上影响了整个开发周期。


技术实现要素:

6.本发明的目的在于:克服现有技术的不足,提供了一种芯片eda仿真中检查时钟的方法及装置。本发明能够根据eda前仿真和eda后仿真的仿真结果波形文件确定各个时钟信号clk的时钟频率,并与参考时钟信号文件中的时钟频率进行比对以检查时钟的正确性,从而保证eda仿真中时钟的准确性,提升eda仿真效率。
7.为实现上述目标,本发明提供了如下技术方案:一种芯片eda仿真中检查时钟的方法,包括如下步骤:
获取eda前仿真和eda后仿真生成的仿真结果波形文件;根据仿真结果波形文件中的波形分别确定前仿真时钟信号clk的时钟频率和后仿真时钟信号clk的时钟频率,生成前仿真clk时钟频率文件和后仿真clk时钟频率文件;将前仿真clk时钟频率文件、后仿真clk时钟频率文件与参考时钟信号文件三者的时钟频率进行比对,并根据比对的结果生成clk结果文件。
8.进一步,所述仿真结果波形文件为fsdb波形文件。
9.进一步,根据fsdb波形文件中的fsdb波形计算时钟信号clk的时钟频率的步骤如下,分析fsdb波形中的时钟信号clk的边沿信息,所述时钟信号clk为具有周期性的脉冲信号,所述边沿信息包括上升沿和下降沿出现的时间点信息;获取任意2个相邻的clk上升沿的时间点信息t1和t2;计算相邻的上升沿时间间隔

t=t2-t1后,确定前述时钟信号clk 的时钟频率f,所述时钟频率f的计算公式为f=100/

t。
10.进一步,所述eda前仿真是对寄存器传输级rtl代码进行仿真验证,所述寄存器传输级rtl代码中针对clk语句设置有clk注释信息,通过所述clk注释信息对clk语句涉及的时钟信号clk的时钟频率进行注释;此时,在进行eda前仿真之前还包括步骤:通过脚本抽取寄存器传输级rtl代码中的时钟信号clk和对应的clk注释信息,获取该时钟信号clk的名称和时钟频率值后,写入预设数据格式的参考时钟信号文件中。
11.进一步,所述参考时钟信号文件为采用excel表格式的clk表格,所述clk表格预设有2个字段信息,分别为时钟信号clk的名称clk name和时钟频率值clk freq value。
12.进一步,所述clk结果文件中显示有各个时钟信号clk的名称,对于每个时钟信号clk,显示该时钟信号clk在参考时钟信号文件、前仿真clk时钟频率文件和后仿真clk时钟频率文件中的时钟频率值。
13.进一步,进行前述比对时,在判断前仿真clk时钟频率文件、后仿真clk时钟频率文件和参考时钟信号文件三者的时钟频率信息不一致的情况下,在所述clk结果文件中标注出不一致的clk的时钟频率值,或者标注出不一致的clk的名称和时钟频率值。
14.进一步,采集用户通过波形工具打开前述仿真结果波形文件的操作,读取前述clk结果文件后,在波形工具中对应着输出的仿真结果波形标注出时钟频率不一致的时钟信号clk所在位置。
15.本发明还提供了一种芯片eda仿真中的时钟检查装置,包括如下结构:时钟频率计算模块,用于获取eda前仿真和eda后仿真生成的仿真结果波形文件后,根据仿真结果波形文件中的波形分别确定前仿真时钟信号clk的时钟频率和后仿真时钟信号clk的时钟频率,生成前仿真clk时钟频率文件和后仿真clk时钟频率文件;时钟信息检查模块,用于将前仿真clk时钟频率文件、后仿真clk时钟频率文件与参考时钟信号文件三者的时钟频率进行比对,并根据比对的结果生成clk结果文件。
16.进一步,所述仿真结果波形文件为fsdb波形文件,所述时钟频率计算模块被配置为:获取fsdb波形文件中的fsdb波形,分析fsdb波形中的时钟信号clk的边沿信息,所述时钟信号clk为具有周期性的脉
冲信号,所述边沿信息包括上升沿和下降沿出现的时间点信息;获取任意2个相邻的clk上升沿的时间点信息t1和t2;计算相邻的上升沿时间间隔

t=t2-t1后,确定前述时钟信号clk 的时钟频率f,所述时钟频率f的计算公式为f=100/

t。
17.本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:本发明能够根据eda前仿真和eda后仿真的仿真结果波形文件确定各个时钟信号clk的时钟频率信息,并与参考时钟信号文件中的时钟频率进行比对以检查时钟的正确性,从而保证eda仿真中时钟的准确性,提升eda仿真效率。
附图说明
18.图1为本发明实施例提供的芯片仿真验证中的芯片eda仿真中检查时钟的方法的流程图。
19.图2为本发明实施例提供的生成clk结果文件的信息处理示意图。
20.图3为本发明实施例提供的clk表格的数据格式示例图。
21.图4为本发明实施例提供的clk结果文件的数据格式示例图。
具体实施方式
22.以下结合附图和具体实施例对本发明公开的芯片eda仿真中检查时钟的方法及装置作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
23.需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
24.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
实施例
25.参见图1所示,为本发明提供的一种芯片eda仿真中检查时钟的方法。所述方法包括如下步骤。
26.s100,获取eda前仿真和eda后仿真生成的仿真结果波形文件。
27.所述eda前仿真,是对rtl(resistor transistor logic,寄存器传输级)代码进行仿真验证以检验所述设计代码的正确性的过程,当前主要是通过对rtl代码施加激励(即模
拟外部输入信号),获得其运行的结果(是否符合期望值或预设值)来判断该rtl代码是否能正确运行。所述rtl代码,是使用硬件描述语言(比如verilog等)将设计的模块功能描述出来后形成的设计代码。在前端设计阶段,芯片设计公司根据客户提出的芯片需求,设计芯片体系架构并划分出前述模块功能。
28.所述eda后仿真,是对逻辑综合后的网表进行仿真的过程。
29.芯片eda前仿真与eda后仿真所使用的仿真器和测试激励相同,但得到的仿真结果波形文件不同。eda前仿真完成后就可以得到前仿真结果波形文件,eda后仿真完成后就可以得到后仿真结果波形文件。
30.生成的仿真结果波形文件一般为fsdb(fast signal data base)波形文件。
31.s200,根据仿真结果波形文件中的波形分别确定前仿真时钟信号clk的时钟频率和后仿真时钟信号clk的时钟频率,生成前仿真clk时钟频率文件和后仿真clk时钟频率文件。
32.所述时钟信号clk(clock的简称)是一种脉冲信号,是按一定电压幅度,一定时间间隔连续发出的。时钟边沿触发信号意味着所有的状态变化都发生在时钟边沿到来时刻。在边沿触发机制中,将时钟的上升沿或下降沿作为有效触发信号来控制逻辑单元状态量的改变。
33.以fsdb波形文件为例,根据fsdb波形文件中的fsdb波形计算时钟信号clk的时钟频率的步骤可以如下:分析fsdb波形中的时钟信号clk的边沿信息,所述时钟信号clk为具有周期性的脉冲信号,所述边沿信息包括上升沿和下降沿出现的时间点信息;获取任意2个相邻的clk上升沿的时间点信息t1和t2;计算相邻的上升沿时间间隔

t=t2-t1后,确定前述时钟信号clk 的时钟频率f,所述时钟频率f的计算公式为f=100/

t。
34.作为举例而非限制,比如2个相邻的clk上升沿的时间点分别为t1 = 3ps, t2 = 3127ps,ps表示皮秒、1s = 1012ps。则可以计算出相邻的上升沿时间间隔

t=t2-t1=3124ps,根据f=100/

t,就可以得出该时钟信号clk的时钟频率为100/3124ps = 320mhz。
35.根据前仿真结果波形文件中的波形可以计算出前仿真时钟信号clk的时钟频率信息,基于前仿真时钟信号clk的时钟频率信息可以生成前仿真clk时钟频率文件pre_sim_clk.report,参见图2所示。
36.根据后仿真结果波形文件中的波形可以计算出后仿真时钟信号clk的时钟频率信息,基于后仿真时钟信号clk的时钟频率信息可以生成后仿真clk时钟频率文件post_sim_clk.report,参见图2所示。
37.s300,将前仿真clk时钟频率文件、后仿真clk时钟频率文件与参考时钟信号文件三者的时钟频率进行比对,并根据比对的结果生成clk结果文件。
38.继续参见图2所示,根据比对结果生成了clk结果文件clk.report。
39.本实施例中,所述eda前仿真是对寄存器传输级rtl代码进行仿真验证,所述寄存器传输级rtl代码中针对clk语句设置有clk注释信息,通过所述clk注释信息对clk语句涉及的时钟信号clk的时钟频率进行注释。此时,在进行eda前仿真之前还包括步骤:通过脚本抽取寄存器传输级rtl代码中的时钟信号clk和对应的clk注释信息,获取该时钟信号clk的名称和时钟频率值后,写入预设数据格式的参考时钟信号文件中。
40.在所述rtl代码中,在要检测的clk语句之后添加clk注释信息。作为举例而非限
制,添加clk注释信息的方式可以如下:inputclk_axi//auto_check:400m其中,“//”表示注释符,“auto_check:400m”表示具体的注释内容,所述注释内容中包含该clk语句涉及的时钟信号clk的时钟频率值,比如注释内容中的“400m”。
41.通过脚本可以识别rtl代码中的clk语句“inputclk_axi”和该clk语句对应的clk注释信息“//auto_check:400m”,然后将识别的时钟信号clk的名称“clk_axi”和时钟频率值“400m”添加到预设数据格式的参考时钟信号文件中。所述参考时钟信号文件中记录有时钟信号clk的名称和对应的时钟频率值。
42.本实施例中,优选的,所述参考时钟信号文件为采用excel格式的clk表格,所述clk表格预设有2个字段信息,分别为时钟信号clk的名称clkname和时钟频率值clkfreqvalue。
43.clk表格的具体数据格式可以参见图3所示。所述clk表格中设置有2个字段,分别为时钟信号clk的名称“clkname”和对应的时钟频率值“clkfreqvalue”。作为举例而非限制,比如图3中记录的“clkname”包括cpu_clk、ddr_clk、axi_clk和pcie_clk,分别表示cpu、ddr、axi和pcie模块的clk配置信息,配置的时钟频率值(单位为hz)分别为800m、466m、200m、400m。
44.仿真运行的时候,会自动读取clk表格中的数据。
45.在前仿真运行结束时,会根据前仿真结果波形文件生成一个pre_sim_clk.report文件,pre_sim_clk.report文件中记录有前仿真涉及的时钟信号clk信息,包括clk名称和根据波形计算得到的时钟频率值。在后仿真运行结束时,会根据后仿真结果波形文件生成一个post_sim_clk.report,post_sim_clk.report文件中记录有后仿真涉及的时钟信号clk信息,包括clk名称和根据波形计算得到的时钟频率值。
46.将前仿真和后仿真的report文件合并(merge)后与参考时钟信号文件clk表格进行比对,就可以得到一个clk结果文件clk.report。只有当clk表格里面的时钟信息和eda前仿真的时钟信息以及eda后仿真的时钟信息三者一致时,才判定时钟没有错误;否则,判定仿真时钟出现错误,在clk结果文件clk.report中标注出错误的clk信息,从而向用户显示错误的clk信息。
47.所述clk结果文件clk.report中,可以显示有各个时钟信号clk的名称,对于每个时钟信号clk,显示该时钟信号clk在参考时钟信号文件、前仿真clk时钟频率文件和后仿真clk时钟频率文件中的时钟频率值。
48.作为典型方式的举例,参见图4所示,所述clk表格预设有4个字段信息,分别为时钟信号clk的名称信息“excelclkname”和3个时钟频率值“excelclkvalue”、“pre_simclkvalue”和“post_simclkvalue”,分别用于记录clk表格excelclk(参考时钟信号文件)、前仿真clk时钟频率文件和后仿真clk时钟频率文件中对应的时钟频率值。
49.所述clk结果文件clk.report中,可以标注出前仿真和后仿真中与clk表格中不一致的clk信息,如果一致就可以不标注。具体的,进行前述比对时,在判断前仿真clk时钟频率文件、后仿真clk时钟频率文件和参考时钟信号文件三者的时钟频率信息不一致的情况下,在所述clk结果文件中标注出不一致的clk的时钟频率值,或者在所述clk结果文件中标注出不一致的clk的名称和时钟频率值。
50.优选的,还可以在采集到用户通过波形工具打开前述仿真结果波形文件的操作时,读取前述clk结果文件后,在波形工具中对应着输出的仿真结果波形标注出时钟频率不一致的时钟信号clk所在位置。
51.在一个实施方式中,是在用户通过波形工具打开前述仿真结果波形文件时,直接读取前述clk结果文件,然后根据clk结果文件在输出的仿真结果波形中,标注出不一致的时钟信号clk所在位置。
52.在另一个实施方式中,在波形工具中预设有clk标注操作命令——比如“nwave-report clk.report”。此时,用户通过波形工具打开前述仿真结果波形文件时,可以通过输入命令“nwave-report clk.report”来触发独权前述clk结果文件,然后根据clk结果文件在输出的仿真结果波形中,标注出不一致的时钟信号clk所在位置,比如将不一致的clk波形用区别的红色在图形上面标注出来。
53.在另一个实施方式中,在波形工具中设置有clk结果文件导入选项——通常为一个触发控件,在接收到用户触发前述clk结果文件导入选项时,读取前述clk结果文件,然后根据clk结果文件在输出的仿真结果波形中,标注出不一致的时钟信号clk所在位置,比如将不一致的clk波形用区别的红色在图形上面标注出来。
54.本发明的另一实施例,还提供了一种芯片eda仿真中的时钟检查装置。
55.所述时钟检查装置包括时钟频率计算模块和时钟信息检查模块。
56.所述时钟频率计算模块,用于获取eda前仿真和eda后仿真生成的仿真结果波形文件后,根据仿真结果波形文件中的波形分别确定前仿真时钟信号clk的时钟频率和后仿真时钟信号clk的时钟频率,生成前仿真clk时钟频率文件和后仿真clk时钟频率文件。
57.所述时钟信息检查模块,用于将前仿真clk时钟频率文件、后仿真clk时钟频率文件与参考时钟信号文件三者的时钟频率进行比对,并根据比对的结果生成clk结果文件。
58.本实施例中,所述仿真结果波形文件优选为fsdb波形文件。
59.此时,所述时钟频率计算模块被配置为:获取fsdb波形文件中的fsdb波形,分析fsdb波形中的时钟信号clk的边沿信息,所述时钟信号clk为具有周期性的脉冲信号,所述边沿信息包括上升沿和下降沿出现的时间点信息;获取任意2个相邻的clk上升沿的时间点信息t1和t2;计算相邻的上升沿时间间隔

t=t2-t1后,确定前述时钟信号clk 的时钟频率f,所述时钟频率f的计算公式为f=100/

t。
60.本实施例中,所述eda前仿真是对寄存器传输级rtl代码进行仿真验证,所述寄存器传输级rtl代码中针对clk语句设置有clk注释信息,通过所述clk注释信息对clk语句涉及的时钟信号clk的时钟频率进行注释。
61.此时,在进行eda前仿真之前还包括步骤:通过脚本抽取寄存器传输级rtl代码中的时钟信号clk和对应的clk注释信息,获取该时钟信号clk的名称和时钟频率值后,写入预设数据格式的参考时钟信号文件中。
62.所述参考时钟信号文件优选为采用excel表格式的clk表格,所述clk表格预设有2个字段信息,分别为时钟信号clk的名称clk name和时钟频率值clk freq value。
63.所述clk结果文件中可以显示有各个时钟信号clk的名称,对于每个时钟信号clk,显示该时钟信号clk在参考时钟信号文件、前仿真clk时钟频率文件和后仿真clk时钟频率文件中的时钟频率值。
64.进行前述比对时,在判断前仿真clk时钟频率文件、后仿真clk时钟频率文件和参考时钟信号文件三者的时钟频率信息不一致的情况下,在所述clk结果文件中标注出不一致的clk的时钟频率值,或者标注出不一致的clk的名称和时钟频率值。
65.其它技术特征参考在前实施例,在此不再赘述。
66.在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1