首页> 中国专利> 芯片EDA仿真中更新芯片软硬件配置的系统及应用

芯片EDA仿真中更新芯片软硬件配置的系统及应用

摘要

本发明公开了一种芯片EDA仿真中更新芯片软硬件配置的系统及应用,涉及芯片开发技术领域。所述系统包括:GIT代码库,用于存储代码;验证人员客户端,用于将基于硬件编程语言设计的仿真代码上传至GIT代码库;软件人员客户端,用于将C代码上传至GIT代码库;自动转换装置,用于在判断GIT代码库有代码更新时,获取更新的代码并转换为具有配置通用格式的配置信息文件以存储对应的芯片寄存器配置参数信息;以及,在验证人员客户端或软件人员客户端发出代码下载请求时,将最新的配置信息文件转换成基于硬件语言设计的仿真代码或C代码后传输到对应客户端。本发明提供的系统节点少,提高了芯片软硬件配置的转换效率和转换可靠性。

著录项

  • 公开/公告号CN113312080A

    专利类型发明专利

  • 公开/公告日2021-08-27

    原文格式PDF

  • 申请/专利权人 眸芯科技(上海)有限公司;

    申请/专利号CN202110563320.8

  • 发明设计人 袁力;胡扬央;王奎;

    申请日2021-05-24

  • 分类号G06F8/71(20180101);G06F8/40(20180101);G06F8/65(20180101);

  • 代理机构31393 上海图灵知识产权代理事务所(普通合伙);

  • 代理人谢微

  • 地址 201210 上海市浦东新区祥科路298号1幢8层

  • 入库时间 2023-06-19 12:22:51

说明书

技术领域

本发明涉及芯片开发技术领域,尤其涉及一种芯片EDA仿真中更新芯片软硬件配置的系统及应用。

背景技术

随着设计芯片规模的增加,芯片的验证(Verification)工作显得越来越重要。验证工作贯穿整个芯片设计流程,从行为级HDL设计,一直到芯片流片之前都需要进行大量的EDA(Eletronic Design Automation,电子设计自动化)验证。其中,测试案例(case test)是为了验证测试项目的功能或者性能而编写一系列的代码,以芯片设计中常用的UVM(Universal Verification Methodology,通用验证方法学)验证为例,其测试案例(casetest)是基于system verilog语言,其通过用UVM sequence(UVM序列)的方式产生激励。

通过测试案例进行EDA仿真获取仿真结果后,后期还需要通过debug(侦错)工具来定位bug并进行改正,通常是由一个系统模型来运行软件,以此来检测芯片硬件设计中的bug。在芯片debug过程中,经常需要芯片验证工程师(或称验证人员)提供某种仿真测试场景下的配置信息以提供给软件设计工程师(或称软件人员)在芯片上调试,软件设计工程师调试芯片验证工程师提供的配置信息时,可能会根据需要对配置信息进行修改并在芯片上面运行,并记录芯片的运行结果(或称现场),再把修改后的配置信息和对应的芯片运行结果提供给芯片验证工程师,让芯片验证工程师复现软件设计工程师调试出的上述运行结果以供设计者进行分析。以UVM仿真为例,传统的流程图参见图1所示:芯片验证工程师完成一个基于system Verilog语言的仿真代码(对应UVM仿真测试案例)的仿真后,将该基于system Verilog语言的仿真代码通过GIT (分布式版本控制系统)版本管理工具上传到GIT代码库。软件设计工程师从前述GIT 代码库拿到芯片验证工程师的仿真代码之后,通过脚本转换成C代码(将UVM sequence的配置转换成基于C语言的程序,以便对应的 C代码软件能够运行上述测试案例)并在芯片上面进行调试,调试完成之后再将C代码上传到GIT 代码库。在需要迭代的时候,芯片验证工程师通过GIT代码库下载软件设计工程师上传的前述C代码再通过脚本将C 代码转换成基于system Verilog语言的仿真代码以进行UVM仿真。在上述流程中,配置信息需要从芯片验证工程师到软件设计工程师、再从软件设计工程师返回到芯片验证工程师,且需要进行语言转换,一方面配置信息的传递耗费了大量的时间迭代,另一方面由于节点太多无疑会导致出错概率增大。

发明内容

本发明的目的在于:克服现有技术的不足,提供了一种芯片EDA仿真中更新芯片软硬件配置的系统及应用。本发明对应GIT代码库设置有自动转换装置,所述自动转换装置能够基于预设的时间周期定期对GIT代码库中的仿真代码进行转换形成具有配置通用格式的配置信息文件,当芯片验证工程师或软件设计工程师执行代码下载(GIT pull)操作的时候,可以根据最新的配置信息文件生成相应语言的代码,当芯片验证工程师或者软件设计工程师执行代码上传(GIT push)操作的时候,上传的相应语言的代码会自动转换成具有配置通用格式的配置信息文件。本发明提供的系统节点少,提高了进行芯片测试时芯片软硬件配置的转换效率和转换可靠性。

为实现上述目标,本发明提供了如下技术方案:

一种芯片EDA仿真中更新芯片软硬件配置的系统,包括:

GIT代码库,用于存储代码;

与GIT代码库连接的验证人员客户端,用于获取验证人员的基于硬件编程语言设计的仿真代码并将前述仿真代码上传至GIT代码库,以及根据代码下载请求从GIT代码库获取基于硬件语言设计的仿真代码;

与GIT代码库连接的软件人员客户端,用于获取软件人员的C代码并将前述C代码上传至GIT代码库,以及根据代码下载请求从GIT代码库获取C代码;

与GIT代码库连接的自动转换装置,用于在判断GIT代码库有代码更新时,获取更新的代码信息,并将所述代码转换为具有配置通用格式的配置信息文件以存储对应的芯片寄存器配置参数信息;以及,在验证人员客户端或软件人员客户端发出代码下载请求时,将最新的配置信息文件转换成基于硬件语言设计的仿真代码或C代码后传输到对应客户端。

进一步,判断GIT代码库是否有代码更新的步骤为:

基于预设的时间周期T,定期访问前述GIT代码库以获取GIT代码库中的当前代码信息;

将当前代码信息与前一次访问时获取的代码信息进行比对,判断是否有新增代码信息,有新增代码信息时判定前述GIT代码库有代码更新。

进一步,所述时间周期T由用户或系统设置。

进一步,所述配置通用格式包括寄存器地址和寄存器值两项内容,用于配置芯片寄存器的寄存器地址和对应的寄存器值信息。

进一步,上述两项内容在配置信息文件以列表形式存储,第1列用于存储寄存器地址,第2列用于存储对应的寄存器值;

所述寄存器为32位寄存器,当寄存器地址的值除以4余1时,解析为当前寄存器地址的值-1 的地址轮询对应的寄存器值;当寄存器地址的值除以4余2时,解析为读取当前寄存器地址值-2的地址;当寄存器地址的值除以4余0时,解析为向当前寄存器地址写入对应的寄存器值;当寄存器地址的值包含wait 信息时,表示等待相应的时间。

进一步,所述仿真代码为基于system verilog语言的UVM仿真代码。

本发明还提供了一种芯片EDA仿真中更新芯片软硬件配置的装置,包括如下结构:

GIT代码库,其与验证人员客户端和软件人员客户端二者通信连接,能够根据验证人员或软件人员的代码上传请求将对应的基于硬件编程语言设计的仿真代码或C代码进行上传存储,以及根据代码下载请求将GIT代码库中的基于硬件语言设计的仿真代码或C代码下载到对应的验证人员客户端或软件人员客户端;

所述GIT代码库包括自动转换模块,所述自动转换模块用于在判断GIT代码库有代码更新时,获取更新的代码信息,并将所述代码转换为具有配置通用格式的配置信息文件以存储对应的芯片寄存器配置参数信息;以及,在验证人员客户端或软件人员客户端发出代码下载请求时,将最新的配置信息文件转换成基于硬件语言设计的仿真代码或C代码后传输到对应客户端。

进一步,所述自动转换模块包括代码检测单元,所述代码检测单元被配置为:基于预设的时间周期T,定期访问前述GIT代码库以获取GIT代码库中的当前代码信息;将当前代码信息与前一次访问时获取的代码信息进行比对,判断是否有新增代码信息,有新增代码信息时判定前述GIT代码库有代码更新。

进一步,所述配置通用格式包括寄存器地址和寄存器值两项内容,用于配置芯片寄存器的寄存器地址和对应的寄存器值信息;上述两项内容在配置信息文件以列表形式存储,第1列用于存储寄存器地址,第2列用于存储对应的寄存器值;

所述寄存器为32位寄存器,当寄存器地址的值除以4余1时,解析为当前寄存器地址的值-1 的地址轮询对应的寄存器值;当寄存器地址的值除以4余2时,解析为读取当前寄存器地址值-2的地址;当寄存器地址的值除以4余0时,解析为向当前寄存器地址写入对应的寄存器值;当寄存器地址的值包含wait 信息时,表示等待相应的时间。

本发明还提供了一种芯片EDA仿真中更新芯片软硬件配置的方法,包括如下步骤:

获取GIT代码库的代码信息,判断GIT代码库是否有代码更新;

判断GIT代码库有代码更新时,获取更新的代码信息,并将所述代码转换为具有配置通用格式的配置信息文件以存储对应的芯片寄存器配置参数信息;

获取验证人员客户端或软件人员客户端对应所述GIT代码库发出的代码下载请求时,将最新的配置信息文件转换成基于硬件语言设计的仿真代码或C代码后传输到对应客户端。

本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:本发明对应GIT代码库设置有自动转换装置,所述自动转换装置能够基于预设的时间周期定期对GIT代码库中的仿真代码进行转换形成具有配置通用格式的配置信息文件,当芯片验证工程师或软件设计工程师执行代码下载(GIT pull)操作的时候,可以根据最新的配置信息文件生成相应语言的代码,当芯片验证工程师或者软件设计工程师执行代码上传(GIT push)操作的时候,上传的相应语言的代码会自动转换成具有配置通用格式的配置信息文件。本发明提供的系统节点少,提高了进行芯片测试时芯片软硬件配置的转换效率和转换可靠性。

附图说明

图1为现有技术中的更新芯片软硬件配置的典型流程示例图。

图2为本发明实施例提供的芯片EDA仿真中更新芯片软硬件配置的系统的模块结构示意图。

图3为本发明实施例提供的配置信息文件的配置通用格式示例图。

图4为本发明实施例提供的芯片EDA仿真中更新芯片软硬件配置的方法流程图。

具体实施方式

以下结合附图和具体实施例对本发明公开的芯片EDA仿真中更新芯片软硬件配置的系统及应用作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

实施例

参见图2所示,为本发明提供的一种芯片EDA仿真中更新芯片软硬件配置的系统。

所述系统包括GIT(分布式版本控制系统)代码库,验证人员客户端,软件人员客户端和自动转换装置。

所述GIT代码库用于存储代码。

所述验证人员客户端与GIT代码库通信连接,用于获取验证人员的基于硬件编程语言设计的仿真代码并将前述仿真代码上传至GIT代码库,以及根据代码下载请求从GIT代码库获取基于硬件语言设计的仿真代码。

以常用的UVM仿真为例,此时,所述仿真代码为基于system verilog语言的UVM仿真代码。作为举例,比如芯片验证工程师调通了一版UVM仿真代码 (仿真code)后,执行GITpush 操作以将该UVM仿真代码上传至GIT代码库。芯片验证工程师调试了仿真代码的典型过程可以如下:首先,根据待测设计(DUT, Design Under Testbench)——比如待验证芯片,验证人员配置仿真环境,并将仿真案例(case)执行过程中需要的文件拷贝或链接到该仿真案例的仿真目录下。然后,就可以通过调用EDA仿真工具并配置合适的参数进行仿真操作,运行仿真案例,仿真案例运行完成时,结束仿真验证,获得仿真结果。随后,芯片验证工程师可以将该仿真案例对应的仿真代码上传到GIT代码库。

所述软件人员客户端与GIT代码库通信连接,用于获取软件人员的C代码并将前述C代码上传至GIT代码库,以及根据代码下载请求从GIT代码库获取C代码。

所述自动转换装置与GIT代码库连接,用于在判断GIT代码库有代码更新时,获取更新的代码信息,并将所述代码转换为具有配置通用格式的配置信息文件以存储对应的芯片寄存器配置参数信息;以及,在验证人员客户端或软件人员客户端发出代码下载请求时,将最新的配置信息文件转换成基于硬件语言设计的仿真代码或C代码后传输到对应客户端。

本实施例中,所述自动转换装置可以包括有代码检测模块,所述代码检测模块用于判断GIT代码库是否有代码更新。具体的,所述代码检测模块被配置为:基于预设的时间周期T,定期访问前述GIT代码库以获取GIT代码库中的当前代码信息;将当前代码信息与前一次访问时获取的代码信息进行比对,判断是否有新增代码信息,有新增代码信息时判定前述GIT代码库有代码更新。

本实施例中,所述时间周期T可以由用户设置,也可以由系统设置。优选的,所述时间周期T可以由用户设置,作为举例,比如用户设置的时间周期为15分钟,即每隔15分钟,代码检测模块将自动对GIT代码库进行代码检测以判断GIT代码库是否有代码更新。在判定有代码更新的情况下,获取新增的代码信息后,触发对新增代码的转换,将所述代码转换为具有配置通用格式的配置信息文件,所述配置信息文件用于存储对应的芯片寄存器配置参数信息。

本实施例中,所述配置通用格式可以包括寄存器地址和寄存器值两项内容,用于配置芯片寄存器的寄存器地址和对应的寄存器值信息。优选的,上述两项内容在配置信息文件以列表形式存储,第1列用于存储寄存器地址,第2列用于存储对应的寄存器值。

具体的,所述寄存器为32位寄存器,此时1个字(word)对应有4个字节(Byte),按字(word)操作,可知每次操作的地址为0X4的倍数。具体的,当寄存器地址的值除以4余1时,解析为当前寄存器地址的值-1 的地址轮询对应的寄存器值。当寄存器地址的值除以4余2时,解析为读取当前寄存器地址值-2的地址。当寄存器地址的值除以4余0时,解析为向当前寄存器地址写入对应的寄存器值。当寄存器地址的值包含wait 信息时,表示等待相应的时间。

下面结合图3示例的配置通用格式来详细描述本实施例。

图3示例了优选的配置信息文件的通用数据格式,列表包括2个字段,分别对应于寄存器地址(Register Address)和寄存器值(Value)两项内容,用于配置芯片寄存器的寄存器地址和对应的寄存器值信息。列表的第1行为字段名称,第2行及其后行为芯片寄存器配置信息的具体内容。

当Register Address的值除以4余1的时候,解析为当前Register Address 的值-1 的地址polling (即轮询)对应的寄存器值(Value)。对应于列表的第2行,即通过CPU处理器不停的读0X0这个寄存器地址,直到检测到读出的寄存器值(Value)为0X1时停止读取。

当Register Address的值除以4余2的时候,解析为读当前Register Address的值-2的地址。对应于列表中的第3行,即通过CPU处理器读0X0这个寄存器地址。

当Register Address 的值除以4余0的时候,解析为往当前Register Address 写入寄存器值(Value)对应的值。对应于列表中的第5行,即通过CPU处理器向0X4这个寄存器地址写入0xFFFFFFFF。

当Register Address的值包含wait信息时,表示等待相应的时间。对应于列表中的第4行,即等候5us(微秒)。对应于列表中的第6行,即等候10ms(毫秒)。

本发明提供的自动转换装置,被配置将仿真代码(仿真code)和C代码(C code)转换成上述配置通用格式。当芯片验证工程师和软件设计工程师执行GIT pull(下载)操作的时候,可以根据最新的配置通用格式生成相应的仿真代码(仿真code)和C代码(C code)。当芯片工程师和软件工程师执行GIT push (上传)操作的时候,系统将各自的仿真代码(仿真code)和C代码(C code)自动转换成配置通用格式。相比于图1中的现有技术,上述技术方案有效地减少了整个操作流程的信息处理节点,提高了进行芯片测试时芯片软硬件配置的转换效率和转换可靠性。

本发明的另一实施例,还提供了一种芯片EDA仿真中更新芯片软硬件配置的装置,所述装置包括具有自动转换模块的GIT代码库。

所述GIT代码库可以与验证人员客户端和软件人员客户端二者通信连接。

具体的,GIT代码库可以根据验证人员或软件人员的代码上传请求将对应的基于硬件编程语言设计的仿真代码或C代码进行上传存储;以及,根据代码下载请求将GIT代码库中的基于硬件语言设计的仿真代码或C代码下载到对应的验证人员客户端或软件人员客户端。

所述GIT代码库包括自动转换模块。

所述自动转换模块用于在判断GIT代码库有代码更新时,获取更新的代码信息,并将所述代码转换为具有配置通用格式的配置信息文件以存储对应的芯片寄存器配置参数信息;以及,在验证人员客户端或软件人员客户端发出代码下载请求时,将最新的配置信息文件转换成基于硬件语言设计的仿真代码或C代码后传输到对应客户端。

本实施例中,所述自动转换模块包括代码检测单元,所述代码检测单元被配置为:基于预设的时间周期T,定期访问前述GIT代码库以获取GIT代码库中的当前代码信息;将当前代码信息与前一次访问时获取的代码信息进行比对,判断是否有新增代码信息,有新增代码信息时判定前述GIT代码库有代码更新。

本实施例中,所述配置通用格式包括寄存器地址和寄存器值两项内容,用于配置芯片寄存器的寄存器地址和对应的寄存器值信息;上述两项内容在配置信息文件以列表形式存储,第1列用于存储寄存器地址,第2列用于存储对应的寄存器值。

所述寄存器为32位寄存器,此时,当寄存器地址的值除以4余1时,解析为当前寄存器地址的值-1 的地址轮询对应的寄存器值;当寄存器地址的值除以4余2时,解析为读取当前寄存器地址值-2的地址;当寄存器地址的值除以4余0时,解析为向当前寄存器地址写入对应的寄存器值;当寄存器地址的值包含wait 信息时,表示等待相应的时间。

其它技术特征参考在前实施例,在此不再赘述。

参见图4所示,为本发明的另一实施例,提供了一种芯片EDA仿真中更新芯片软硬件配置的方法,包括如下步骤:

S100,获取GIT代码库的代码信息,判断GIT代码库是否有代码更新。

S200,判断GIT代码库有代码更新时,获取更新的代码信息,并将所述代码转换为具有配置通用格式的配置信息文件以存储对应的芯片寄存器配置参数信息。

S300,获取验证人员客户端或软件人员客户端对应所述GIT代码库发出的代码下载请求时,将最新的配置信息文件转换成基于硬件语言设计的仿真代码或C代码后传输到对应客户端。

本实施例的步骤S100中,判断GIT代码库是否有代码更新的步骤可以如下:基于预设的时间周期T,定期访问前述GIT代码库以获取GIT代码库中的当前代码信息;将当前代码信息与前一次访问时获取的代码信息进行比对,判断是否有新增代码信息,有新增代码信息时判定前述GIT代码库有代码更新。所述时间周期T可以由用户或系统设置。

本实施例中,所述配置通用格式包括寄存器地址和寄存器值两项内容,用于配置芯片寄存器的寄存器地址和对应的寄存器值信息。

优选的,上述两项内容在配置信息文件以列表形式存储,第1列用于存储寄存器地址,第2列用于存储对应的寄存器值。所述寄存器为32位寄存器,此时,当寄存器地址的值除以4余1时,解析为当前寄存器地址的值-1 的地址轮询对应的寄存器值;当寄存器地址的值除以4余2时,解析为读取当前寄存器地址值-2的地址;当寄存器地址的值除以4余0时,解析为向当前寄存器地址写入对应的寄存器值;当寄存器地址的值包含wait 信息时,表示等待相应的时间。

其它技术特征参考在前实施例,在此不再赘述。

在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号