一种待测试硬件运算部件的测试方法及参考模型装置的制造方法

文档序号:8299234阅读:160来源:国知局
一种待测试硬件运算部件的测试方法及参考模型装置的制造方法
【技术领域】
[0001]本发明属于集成电路中的验证技术领域,确切地说,涉及运算部件参考模型的设
i+o
【背景技术】
[0002]随着芯片制造工艺的不断进步,芯片特征尺寸已进入超深亚微米时代。目前,代工厂能提供的最先进工艺的典型值在28nm左右。数字集成电路的规模越来越大,集成度越来越高,内部空间状态越来越多且越来越复杂,这样的现状带来的结果就是芯片功能和逻辑出错的概率大大增加。为保证芯片设计的正确性和IP的可重用性,验证就起到了关键性的作用。从国际商用机器公司,英特尔和超威半导体等国际先进的芯片公司公开的技术资料看,目前在芯片设计中,验证的工作量大约占总工作量的60%?70%,在某些以IP复用为主的ASIC设计中,这个数值甚至高达80%以上。通常,验证的手段包含形式验证和模拟仿真验证。形式验证利用数学定理和表示方法,对设计做推导并最终证明设计满足设计规范。模拟仿真验证是设计之初通常采用的手段,在设计之初容易发现问题,并且适用于黑盒验证。在模拟仿真验证方法中,重点是如何高效的发现不符合设计规范的行为,人工查错仅适用于非常小的数据量,效率不高,设计人员可能在最初完成待测试硬件运算部件代码时采用;自动化的验证平台是大数据量验证的保障。
[0003]运算部件主要对数据做逻辑和算术运算,常用的运算部件有:定点加减法器,定点乘法器,定点除法器,浮点加减法器,浮点乘法器等;有些项目可能还需要更加高效的运算部件,如定点乘累加,浮点乘累加器等。SystemVerilog有高级建模的能力,语法规则是Verilog的超集。相比于SystemC,SystemVerilog更容易描述某些硬件底层相关的逻辑,如按位的逻辑;而且与RTL通信十分方便,可以直接在一个SystemVerilog/Verilog模块中,直接将SystemVerilog参考模型和Verilog待测试硬件运算部件实例化,这一点对测试平台的搭建很有好处。
[0004]IEEE标准中,SystemVerilog可以通过多种方式,如DPI,PLI等与C/C++通信。SystemVerilog因为具备底层硬件描述的能力,并且可以方便对数据做一些高级转换(如$realt0bitS),可以实现参考模型的控制逻辑,特殊数据处理,流水级控制等功能,而C/C++可以实现参考模型中正常数据的运算,仅需编写相应的函数或是调用已有的软件即可。
[0005]验证平台如图1所示,基本原理是在输入激励下,对待测试硬件运算部件和参考模型的输出进行对比并做结果分析,整个流程可以是全自动化,或是有少量人工参与。101是测试向量的输入,可以是约束随机或者是手写,约束随机可以快速自动地产生激励,手写可以是随机的补充,专门针对一些未被测试的情况。102是参考模型,是设计人员按照设计规范需求编写的高层次模型,与103待测试硬件运算部件接口和功能一致。104通过对比参考模型的输出和待测试硬件运算部件的输出,在两者输出不一致的时候,以图形或文本等方式向设计人员报告发生错误的数据和操作码,待测试硬件运算部件内部空间状态等一切调试需要的信息。

【发明内容】

[0006](一)要解决的技术问题
[0007]有鉴于此,本发明的主要目的在于提供一种高效的运算部件参考模型的设计方法,缩短验证周期。
[0008]( 二 )技术方案
[0009]为此,本发明提供了一种待测试硬件运算部件测试的参考模型装置,其包括:
[0010]指令译码模块,其用于对输入指令进行译码;
[0011]特殊数据处理模块,其根据译码结果对特殊数据运算进行处理;
[0012]正常数据处理模块,其根据译码结果,通过调用计算模块对正常数据运算进行处理;
[0013]计算模块,其通过调用硬件平台资源执行相应地运算,并将运算结果返回给正常数据处理模块;
[0014]流水控制模块,其用于实现流水级控制;
[0015]输出模块,用于输出特殊数据处理模块、正常数据处理模块获得的结果。
[0016]本发明还提供了一种待测试硬件运算部件的测试方法,其包括:
[0017]步骤1、接收测试向量,所述测试向量包括进行预定运算的指令以及相应操作数;
[0018]步骤2、利用SystemVerilog对所述测试向量进行译码;
[0019]步骤3、根据译码结果确定是特殊数据处理还是正常数据处理;
[0020]步骤4、如果是特殊数据处理,则采用SystemVerilog对其进行处理;如果是正常数据处理,则利用C函数对其进行处理,并得到测试结果;
[0021]步骤5、将测试结果与所述待测试硬件运算部件的运算结果进行比较,得到测试结果O
[0022](三)有益效果
[0023]从上述技术方案可以看出,本发明具有以下有益效果:
[0024]本发明的最大特点是深入研宄运算部件的特点,在已有的软硬件平台上,高效的建立待测设计所需要的参考模型。在具体实现中,已经成功使用该方法建立了不同设计所需的运算部件参考模型,参考模型设计已根据实际需要结合第三方商用软硬件平台实现。之前,在某一案例中,一个运算部件的参考模型设计需要几周或者更长时间,采用本发明的方法实现,时间可以缩短至半天到一天,大大提高了效率,节省了不必要的重复劳动。
[0025]如图3所示,采用本发明的方法建立的单双精度复用浮点乘法参考模型代码量仅为待测试硬件运算部件设计的10%左右,相比待测试硬件运算部件的验证量大大减小,并且参考模型仅需实现指令译码,特殊数据处理,控制和流水,运算部分可以使用C语言结合已有的多方软硬件平台,参考模型的正确性和可靠性可以很好保证,对其验证相对简单。参考模型中一般数据的处理由于调用C函数,C函数由外部软硬件实现,仅需要对每条指令做少量一般数据和特殊数据测试,即可保证参考模型的正确性。
【附图说明】
[0026]图1是测试芯片时模拟仿真验证的流程示意图;
[0027]图2是本发明中参考模型装置的框架结构示意图;
[0028]图3是本发明中参考模型装置代码量与待测试硬件运算部件代码量比较示意图。
【具体实施方式】
[0029]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0030]在设计单双精度复用的浮点乘法器时,按照IEEE 754标准舍入方式规定,采用SystemVerilog语言直接编写浮点乘法运算,无法直接在高层描述中进行舍入模式控制,即假设A,B,C是三个双精度浮点数,在SystemVerilog中编写C = A*B语句时,无法控制舍入方式。如果用更加底层,比如按位描述的方式,则参考模型的复杂度大大增加,验证其正确性的工作量不亚于验证待测试硬件运算部件设计正确性的工作量。
[0031]如图2所示,本发明通过SystemVerilog和C语言相结合,充分利用已有软硬件条件,实现运算部件参考模型设计。本发明提供了一种用于待测试硬件运算部件测试的参考模型装置,其包括:
[0032]指令译码模块201,其用于对输入指令进行译码;具体地,所述指令译码模块201对输入指令进行译码,获取操作类型,操作类型包括定浮点操作,操作位宽,整数/小数类型,有无符号,舍入方式等内容。其中,定浮点操作可以是定浮点ALU运算,定浮点乘法运算,定浮点乘累加运算等类型;操作位宽可以是定点8位、16位、32位等位宽,或者单双精度或者扩展精度浮点位宽;整数/小数类型指明为整数操作还是小数操作;有无符号指明为有符号数还是无符号数运算;舍入方式指明定点结果为饱和处理或者截断处理,浮点结果舍入处理方式为就近舍
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1