掌桥专利:专业的专利平台
掌桥专利
首页

一种芯片寄存器提取及测试方法

文献发布时间:2023-06-19 13:45:04


一种芯片寄存器提取及测试方法

技术领域

本发明涉及芯片测试技术领域,尤其涉及一种芯片寄存器提取及测试方法。

背景技术

在芯片设计中,寄存器承担着软硬件交互的重要作用,主要体现在:

(1)芯片复位后,保存触发器的默认值,软件读取后可获取硬件的初始状态;

(2)解除复位后,保存软件下发的配置,用于改变硬件的工作模式;

(3)提供debug信息,如统计,fifo状态,fsm状态,err监控等;

(4)提供中断详细信息,便于cpu执行不同的中断处理程序;

(5)提供软复位接口,将芯片从异常中跳出来;

(6)保存软件配置表项,将软件定义的功能以硬件规则实现,降低cpu的负担,提高处理性能;

由上述分析可见,确保寄存器能被正确访问是很重要的。在芯片的设计比较复杂时,往往会有大量的配置寄存器和debu g寄存器,为了确保寄存器能够正常工作,需要验证工程师根据寄存器的定义对其进行读写测试,考虑到项目复杂度,对寄存器进行测试是一项重要而又繁琐的任务。传统做法如下:

1)根据寄存器文档手动提取寄存器信息,如地址、位宽等信息;

2)根据验证平台编写测试用例,测试复位值并设计测试方法;

3)对寄存器未知地址或ram涉及到拼接的部分进行特定测试;

4)对统计或监控寄存器通过构造激励进行测试;

这些做法的好处是比较精确的对特定寄存器进行测试,但整体效率不高,也会很容易遗漏任务的交叉部分。在寄存器的规格有调整时,需要花时间去仔细校对修改信息。另外,需要每个验证人员都抽出一部分精力来测试寄存器的读写并跟踪后续改动,效率极差。

发明内容

本发明提供了一种芯片寄存器提取及测试方法,提高了芯片寄存器验证的效率。

为了实现本发明的目的,一种芯片寄存器提取及测试方法,包括如下步骤:

1)使用perl编写脚本,调用ActivePerl提供的OLE接口,根据寄存器表格的文件名、sheet名,row/columu数量,使用正则表达式依次去匹配对应的关键字,从而提取一个寄存器的关键信息;

2)根据提取的寄存器的关键信息生成仿真平台可以直接运行的测试用例;

3)测试用例包括:

(1)检查寄存器的复位值;

(2)测试寄存器的bit复位功能;

(3)测试寄存器的bit置位功能;

(4)测试寄存器是否存在bit粘连;

(5)对寄存器的未知地址进行读写,模拟CPU异常访问;

(6)对寄存器ram的复位、置位和读写随机值进行测试;

(7)对寄存器多次读写访问,检查复位值。

作为本发明的优化方案,寄存器的关键信息包括名字、地址、位宽、起始位、复位值和访问属性。

作为本发明的优化方案,测试用例还包括对寄存器ram的地址边界进行测试。

作为本发明的优化方案,在生成仿真平台的测试用例中,附加提取的寄存器关键信息中的名字字段。

本发明具有积极的效果:1)本发明通过脚本提取寄存器内容,避免人工手动提取造成的错误和低效,在寄存器数量较多时比较有优势;

2)本发明通过脚本直接生成测试用例,减少验证工程师的工作量,可以用较少的人力去测试大量的寄存器读写;

3)本发明可以对寄存器功能进行全面测试,可以检查上电后复位值,写入全0、全1或随机值后,测试相应的bit能否正常工作;

4)本发明可以在寄存器规格有调整时,可以较快的生成测试用例并进行回归测试;

5)通过本发明可以对寄存器测试进行集中管理,用较少的人力来跟进寄存器的测试。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明提取寄存器表格流程图。

具体实施方式

下面结合附图对本发明的实现做进一步详细的描述:

本发明公开了一种芯片寄存器提取及测试方法,包括如下步骤:

1)使用perl编写脚本,调用ActivePerl提供的OLE接口,根据寄存器表格的文件名、sheet名,row/columu数量,使用正则表达式依次去匹配对应的关键字,从而提取一个寄存器的关键信息,包括名字、地址、位宽、起始位、复位值和访问属性等;

2)根据提取的寄存器的关键信息生成仿真平台可以直接运行的测试用例,即用perl语言描述sv语言的测试用例。

3)测试用例包括:

(1)检查寄存器的复位值;即读取寄存器的实际复位值与测试用例描述的复位值进行比较。

(2)测试寄存器的bit复位功能,通过对寄存器写全0后读出验证。

(3)测试寄存器的bit置位功能,通过对寄存器写全1后读出验证;

(4)测试寄存器是否存在bit粘连,通过对寄存器写随机值后读出验证;

(5)对寄存器的未知地址进行读写,模拟CPU异常访问;

(6)对寄存器ram的复位、置位和读写随机值进行测试,通过对寄存器ram的地址边界,表项内容进行写入全0、全1、随机值后的读取测试;

(7)对寄存器多次读写访问,会触发复位,检查复位值。

如果ram涉及到深度和宽度拼接,测试用例中还需要对地址边界进行测试,防止拼接错误。

如图1所示,为提取寄存器表格流程图:

1)perl脚本通过option选项获取寄存器表格(excel sheet)的文件名,检查文件是否被打开,如果没有打开,则调用打开函数并得到指向文件的指针;

2)提取excel sheet名字,一般sheet名字为模块或系统名,在生成寄存器时可以考虑附加该信息;

3)使用perl内建的正则引擎匹配寄存器的名字、地址、起始位、复位值、读写属性等关键信息,拿到一个寄存器的信息后,可进入测试项生成部分;

4)循环步进直至将整个寄存器表格遍历完成。

以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,并不能因此而理解为对本发明专利范围的限制。应当指出的是,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

技术分类

06120113792921