一种并行生成波形方法与流程

    专利查询2022-07-07  123



    1.本发明涉及集成电路技术领域,特别涉及一种并行生成波形方法。


    背景技术:

    2.emulation(仿真)是芯片设计不可或缺的重要步骤,仿真后一般需要记录下波形文件,我们可以用这个文件来再现仿真,也就能够显示波形,用于做详细分析和研究。
    3.现有的波形解码技术可以:
    4.1)对单个波形编码文件进行解码生成vcd文件(value change dump波形文件)用来再现仿真,显示波形;
    5.2)对多个波形编码文件进行串行解码生成vcd文件用来显示波形。
    6.现有解码方案存在的问题:当需要进行解码的文件过大时,现有的解码技术需要较长时间,效率较低,进而影响整个研发周期。因此,发明一种并行生成波形方法来解决上述问题很有必要。


    技术实现要素:

    7.本发明的目的在于提供一种并行生成波形方法,以解决上述背景技术中提出的问题。
    8.为实现上述目的,本发明提供如下技术方案:一种并行生成波形方法,包括以下步骤:
    9.步骤一:读取log文件和dat文件;
    10.步骤二:在log文件中解析模块层次以及信号信息,将解析获得的层次及信号信息写入head文件;
    11.步骤三:将每个dat文件第一个完整周期之前的数据分别储存到数据结构中;
    12.步骤四:根据需要创建相应数量的线程,每个线程解码一个dat文件;
    13.步骤五:每个线程中,当解码到该文件最后一个周期时,判断是否为最后一个dat文件,若该文件不是最后一个文件且最后一个周期数据不完整时,去数据结构中读取该周期后续的数据并补齐该周期,进行解码;
    14.步骤六:将解码后生成的周期数据分别写入新的文件中;
    15.步骤七:根据需要将head文件和各个周期数据文件拼接,合并成一个完整的vcd文件。
    16.优选的,所述步骤一中读取log文件之前,先创建head文件,然后将vcd文件的固定头写入head文件。
    17.优选的,所述vcd文件的固定头为时间、版本信息等。
    18.优选的,所述步骤一中读取的dat文件为大的dat文件在任意位置随机拆分的多个不完整的dat文件。
    19.优选的,所述步骤四中在解码时,同时对dat文件从第一个完整周期开始进行解
    码。
    20.优选的,所述步骤四中文件数量大于开启的线程数时,若有线程解码完毕则开启新的线程解码后面的文件,结束几个线程开启几个线程,总线程数始终为最开始时开启的线程数,直到所有文件解码完成。
    21.优选的,所述上述方法支持windows、linux等多种平台,具有良好的兼容性。
    22.本发明的技术效果和优点:
    23.1、本发明通过开启多个线程,每个线程解码一个dat文件且会对该文件的最后一个不完整周期补齐,多个线程同时解码,使得本装置能够将任意条件分割的多个波形编码文件同时生成vcd文件,提高了解码的效率。
    24.2、本发明通过将较大的文件拆分成多个小文件进行同时解码,在很大程度上提高了波形编码文件的解码速度,进而缩短整个研发周期。
    25.3、本发明的方法支持windows、linux等多种平台,具有良好的兼容性,实现较为方便、可扩展性强、可移植性强。
    附图说明
    26.图1为本发明流程示意图。
    具体实施方式
    27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
    28.本发明提供了如图1所示的一种并行生成波形方法,包括以下步骤:
    29.步骤一:创建head文件,然后将vcd文件的固定头写入head文件,vcd文件的固定头为时间、版本信息等,接着读取log文件和dat文件,dat文件为大的dat文件在任意位置随机拆分的多个不完整的dat文件;
    30.步骤二:在log文件中解析模块层次以及信号信息,将解析获得的层次及信号信息写入head文件;
    31.步骤三:将每个dat文件第一个文成周期之前的数据分别储存到数据结构中;
    32.步骤四:根据需要创建相应数量的线程,每个线程解码一个dat文件,在解码时,同时对dat文件从第一个完整周期开始进行解码,文件数量大于开启的线程数时,若有线程解码完毕则开启新的线程解码后面的文件,结束几个线程开启几个线程,总线程数始终为最开始时开启的线程数,直到所有文件解码完成;
    33.步骤五:每个线程中,当解码到该文件最后一个周期时,判断是否为最后一个dat文件,若该文件不是最后一个文件且最后一个周期数据不完整时,去数据结构中读取该周期后续的数据并补齐该周期,进行解码;
    34.步骤六:将解码后生成的周期数据分别写入新的文件中;
    35.步骤七:根据需要将head文件和各个周期数据文件拼接,合并成一个完整的vcd文件。
    36.上述方法支持windows、linux等多种平台,具有良好的兼容性。
    37.本发明通过开启多个线程,每个线程解码一个dat文件且会对该文件的最后一个不完整周期补齐,多个线程同时解码,使得本装置能够将任意条件分割的多个波形编码文件同时生成vcd文件,提高了解码的效率,将较大的文件拆分成多个小文件进行同时解码,在很大程度上提高了波形编码文件的解码速度,进而缩短整个研发周期。
    38.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


    技术特征:
    1.一种并行生成波形方法,其特征在于,包括以下步骤:步骤一:读取log文件(信号列表文件)和dat文件(波形编码文件);步骤二:在log文件中解析模块层次以及信号信息,将解析获得的层次及信号信息写入head文件;步骤三:将每个dat文件第一个完整周期之前的数据分别储存到数据结构中;步骤四:根据需要创建相应数量的线程,每个线程解码一个dat文件;步骤五:每个线程中,当解码到该文件最后一个周期时,判断是否为最后一个dat文件,若该文件不是最后一个文件且最后一个周期数据不完整时,去数据结构中读取该周期后续的数据并补齐该周期,进行解码;步骤六:将解码后生成的周期数据分别写入新的文件中;步骤七:根据需要将head文件和各个周期数据文件拼接,合并成一个完整的vcd文件。2.根据权利要求1所述的一种并行生成波形方法,其特征在于:所述步骤一中读取log文件之前,先创建head文件,然后将vcd文件的固定头写入head文件。3.根据权利要求2所述的一种并行生成波形方法,其特征在于:所述vcd文件的固定头为时间、版本信息等。4.根据权利要求3所述的一种并行生成波形方法,其特征在于:所述步骤一中读取的dat文件为大的dat文件在任意位置随机拆分的多个不完整的dat文件。5.根据权利要求4所述的一种并行生成波形方法,其特征在于:所述步骤四中在解码时,同时对dat文件从第一个完整周期开始进行解码。6.根据权利要求5所述的一种并行生成波形方法,其特征在于:所述步骤四中文件数量大于开启的线程数时,若有线程解码完毕则开启新的线程解码后面的文件,结束几个线程开启几个线程,总线程数始终为最开始时开启的线程数,直到所有文件解码完成。7.根据权利要求6所述的一种并行生成波形方法,其特征在于:所述上述方法支持windows、linux等多种平台,具有良好的兼容性。

    技术总结
    本发明公开了一种并行生成波形方法,涉及到集成电路技术领域,包括七个步骤,通过开启多个线程,每个线程解码一个dat文件且会对该文件的最后一个不完整周期补齐,多个线程同时解码,使得本装置能够将按照任意条件分割的多个波形编码文件同时生成vcd文件,提高了解码的效率。本发明将较大的文件拆分成多个小文件进行同时解码,在很大程度上提高了波形编码文件的解码速度,进而缩短整个研发周期。进而缩短整个研发周期。进而缩短整个研发周期。


    技术研发人员:代鑫
    受保护的技术使用者:无锡亚科鸿禹电子有限公司
    技术研发日:2021.12.31
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-1791.html

    最新回复(0)