一种用于逻辑仿真系统的信号波形存储方法技术方案

技术编号:34331029 阅读:22 留言:0更新日期:2022-07-31 02:04
本发明专利技术公开了一种用于逻辑仿真系统的信号波形存储方法,包括使用编译器前端对源代码进行编译,得到对应的抽象语法树;基于抽象语法树,遍历树上的所有节点,基于该节点的语义生成对应的控制流和数据流节点,从而得到抽象语法树对应的控制流图和数据流图,进而对逻辑仿真中的所有信号做关联分析,得出信号间的关联转换函数;在逻辑仿真的过程中,依次记录所有信号的波形;逻辑仿真完成后,基于记录的所有信号的波形以及关联转换函数,做关联转换函数的正确性分析得到分析结果,根据分析结果标记信号并保存对应的关联转换函数;接收用户发起的信号波形存储的请求,根据请求存储对应的信号波形。能够大幅降低需要存储的波形文件的大小。大小。大小。

A method of signal waveform storage for logic simulation system

【技术实现步骤摘要】
一种用于逻辑仿真系统的信号波形存储方法


[0001]本专利技术属于通信领域,特别是涉及一种用于逻辑仿真系统的信号波形存储方法。

技术介绍

[0002]信号波形存储的目的就是在逻辑仿真后把结果保存下来,方便用于做详细分析,研究以及再现这次仿真。普通的信号波形存储方法就是把仿真逻辑系统中生成的所有信号波形导出并保存下来,中间并不涉及对于信号波形的处理和存储的优化。相对较优的信号波形存储方法允许用户在仿真前对信号导出进行设定,包括需要记录的信号等。
[0003]对于大型的逻辑仿真项目来说,需要观察的信号波形非常多,仿真时间和密度相对都比较大,这就会导致波形文件非常大,打开非常慢,也会影响后续分析和研究的效率。因此,亟需提供一种优化后的波形存储方法,以大幅降低需要存储的波形文件的大小。

技术实现思路

[0004]针对以上技术问题,本专利技术提供一种用于逻辑仿真系统的信号波形存储方法。
[0005]本专利技术解决其技术问题采用的技术方案是:
[0006]一种用于逻辑仿真系统的信号波形存储方法,方法包括以下步骤:
[0007]步骤S100:使用编译器前端对要进行逻辑仿真的硬件描述语言的源代码进行编译,得到对应的抽象语法树;
[0008]步骤S200:基于抽象语法树,遍历树上的所有节点,基于该节点的语义生成对应的控制流和数据流节点,从而得到抽象语法树对应的控制流图和数据流图;
[0009]步骤S300:基于控制流图和数据流图,对逻辑仿真中的所有信号做关联分析,得出信号间的关联转换函数;
[0010]步骤S400:在逻辑仿真的过程中,依次记录所有信号的波形,用以做关联转换函数正确性的确认;
[0011]步骤S500:逻辑仿真完成后,基于记录的所有信号的波形以及关联转换函数,做关联转换函数的正确性分析得到分析结果,根据分析结果标记信号并保存对应的关联转换函数;
[0012]步骤S600:接收用户发起的信号波形存储的请求,根据请求存储对应的信号波形。
[0013]优选地,步骤S200中的节点包括条件语句、控制语句和赋值语句,对应生成流图中的控制条件、分支和数据流。
[0014]优选地,步骤S300包括:
[0015]步骤S310:从控制流图中提取得到仿真所有基本块执行的可能顺序;
[0016]步骤S320:从数据流图中提取得到仿真信号数据所有的可能流向;
[0017]步骤S330:根据仿真所有基本块执行的可能顺序以及仿真信号数据所有的可能流向得到信号间的关联转换函数。
[0018]优选地,步骤S500中根据分析结果标记信号并保存对应的关联转换函数,包括:
[0019]当分析结果为记录的信号波形和通过关联转换函数计算得出的波形一致,则标记该信号为不需要单独记录的信号并保存其关联转换函数;当分析结果为记录的信号波形和通过关联转换函数计算得出的波形不一致,则标记该信号为需要单独记录的信号。
[0020]优选地,步骤S300中还包括:当存在无法通过关联转化函数和其他信号计算得出的信号,或者关联转换函数复杂度大于预设的阈值时,将对应信号视为需要单独记录的信号。
[0021]优选地,步骤S600包括:
[0022]当用户发起的信号波形存储的请求为对所有信号的波形都要进行存储,则波形文件中仅仅记录所有标记为需要单独记录的信号的波形数值以及所有不需要单独记录的信号的关联转换函数;
[0023]当用户发起的信号波形存储的请求为对单独几个信号的波形进行存储,则基于所有关联转换函数的输入的信号个数和直接记录的信号个数间做对比,以满足用户请求的前提下记录的信号个数更少的方式对单独几个信号的波形进行存储。
[0024]上述一种用于逻辑仿真系统的信号波形存储方法,基于数据流图和控制流图分析的信号波形存储方法能够大幅降低需要存储的波形文件的大小。基于信号间的关联关系,理论上能够提供10

50%的空间优化。
附图说明
[0025]图1为本专利技术一种用于逻辑仿真系统的信号波形存储方法流程图。
具体实施方式
[0026]为了使本
的人员更好地理解本专利技术的技术方案,下面结合附图对本专利技术作进一步的详细说明。
[0027]在一个实施例中,一种用于逻辑仿真系统的信号波形存储方法,方法包括以下步骤:
[0028]步骤S100:使用编译器前端对要进行逻辑仿真的硬件描述语言的源代码进行编译,得到对应的抽象语法树。
[0029]具体地,通过编译器前端工具进行词法和语法分析,词法分析包括:对源代码进行扫描,根据构词规则,采用正则表达式来识别源代码中的有用部分作为词法单元,产生由词法单元构成的序列;语法分析包括:将经过词法分析的源代码按照语法规则转化成语句单元,构建抽象语法树。
[0030]步骤S200:基于抽象语法树,遍历树上的所有节点,基于该节点的语义生成对应的控制流和数据流节点,从而得到抽象语法树对应的控制流图和数据流图。
[0031]进一步地,步骤S200中的节点包括条件语句、控制语句和赋值语句,对应生成流图中的控制条件、分支和数据流。
[0032]步骤S300:基于控制流图和数据流图,对逻辑仿真中的所有信号做关联分析,得出信号间的关联转换函数。
[0033]具体地,比如Verilog语言中的assign语句和语句中的运算符,非常明显的揭示了两个信号之间的关联关系。比如,有这样一条语句,assign b=!a,可以明显的看出b是a的
逻辑取反。那么,相比于记录a,b两个信号的所有信息,记录信号a以及b=!a这个关联函数,就能节省将近一半的空间。当然,实际情况会比这复杂的多,信号之间的关系可能包括简单逻辑赋值,条件控制赋值和带敏感列表的条件控制赋值等。
[0034]进一步地,步骤S300包括:
[0035]步骤S310:从控制流图中提取得到仿真所有基本块执行的可能顺序;
[0036]步骤S320:从数据流图中提取得到仿真信号数据所有的可能流向;
[0037]步骤S330:根据仿真所有基本块执行的可能顺序以及仿真信号数据所有的可能流向得到信号间的关联转换函数。
[0038]进一步地,步骤S300中还包括:当存在无法通过关联转化函数和其他信号计算得出的信号,或者关联转换函数复杂度大于预设的阈值时,将对应信号视为需要单独记录的信号。
[0039]具体地,并非所有的信号都能通过关联转换函数和其他信号计算得出,也存在关联转换函数复杂度过高的情况,这些情况下将该信号视为需要单独记录的信号。基于所有的关联转换函数,可以得知每个信号的波形是否需要单独记录。进一步地,关联转换函数复杂度是指控制条件过多、计算复杂度过高或者来源数据个数过多等,可以根据实际情况设置预设的阈值来进行判断。
[0040]步骤S400:在逻辑仿真的过程中,依次记录所有信号的波形,用以做关联转换函数正确性的确认。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于逻辑仿真系统的信号波形存储方法,其特征在于,所述方法包括以下步骤:步骤S100:使用编译器前端对要进行逻辑仿真的硬件描述语言的源代码进行编译,得到对应的抽象语法树;步骤S200:基于所述抽象语法树,遍历树上的所有节点,基于该节点的语义生成对应的控制流和数据流节点,从而得到所述抽象语法树对应的控制流图和数据流图;步骤S300:基于所述控制流图和所述数据流图,对逻辑仿真中的所有信号做关联分析,得出信号间的关联转换函数;步骤S400:在逻辑仿真的过程中,依次记录所有信号的波形,用以做关联转换函数正确性的确认;步骤S500:逻辑仿真完成后,基于记录的所有信号的波形以及所述关联转换函数,做关联转换函数的正确性分析得到分析结果,根据所述分析结果标记信号并保存对应的关联转换函数;步骤S600:接收用户发起的信号波形存储的请求,根据所述请求存储对应的信号波形。2.根据权利要求1所述的方法,其特征在于,步骤S200中的节点包括条件语句、控制语句和赋值语句,对应生成流图中的控制条件、分支和数据流。3.根据权利要求2所述的方法,其特征在于,步骤S300包括:步骤S310:从所述控制流图中提取得到仿真所有基本块执行的可能顺序;步骤S320:从所述数据流图中提取得到仿真信号数据所有的...

【专利技术属性】
技术研发人员:李立鲁俊
申请(专利权)人:湖南泛联新安信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1