完美testbench._第1页
完美testbench._第2页
完美testbench._第3页
完美testbench._第4页
完美testbench._第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2005 Altera Corporation 2006 Altera Corporation - Confidential逻辑验证方法逻辑验证方法Michael YaoVer 0.1 2005 Altera Corporation 2006 Altera Corporation - Confidential第一部分第一部分从一个简单例子开始从一个简单例子开始 2006 Altera Corporation - Confidential3CPU接口实例接口实例n首先我们看一个CPU接口的testbench实例,并且观察他是如何工作的。- 该CPU接口是一个可以正常工作的MPC8240 Loc

2、alBus接口- 包含3个内部寄存器,其中一个只读的版本寄存器,两个可读可写的寄存器n实例见exercise1Footnotes should be 12 pt, bold, and left justified with copyright line 2006 Altera Corporation - Confidential4Testbench的结构的结构nTestbench包含了3个文件 - Bfm_localbus.v- Harness.v- Bench.v 2006 Altera Corporation - Confidential5Testbench的结构的结构n从这里例子我们可以

3、看到哪怕是一个再简单的设计,其验证平台都应该至少包含3个层次 - BFM(Bus Function Model)总线功能模型,和DUT接口的最基本层次,主要功能是将上层提供的文本或者16进制数据转换成DUT能够识别的2进制流。- HARNESS 中间层次,产生时钟和复位并且在这一层封装了BFM和DUT,使整个验证平台更加清晰整洁。- BENCH 最高层次,在这一层构造各种测试用例并且调用BFM提供的各个task对DUT进行访问 2006 Altera Corporation - Confidential6BFM的注意事项的注意事项1n一个合理的BFM应该充分考虑到可读性、可扩展性和可重用性-

4、和所有的其它设计一样,可读性永远是优秀设计的必要条件- BFM不是一次性产品,在设计之初就应该考虑到以后在其他设计中的重用和功能扩展nBFM应该仅有信号的初始化部分使用initial语句进行赋值- initialbeginend 2006 Altera Corporation - Confidential7BFM的注意事项的注意事项2n将BFM所需要实现的功能归纳分类后通过task实现- 如bfm_localbus.v中的read和write两个task分别给上层提供了读操作和写操作- 可读性- 可扩展性,如果要需要增加新的功能只需要增加一个新的task即可实现。例如exercise1的CPU

5、接口还具备burst访问功能,则在bfm_localbus.v当中增加burst_read和burst_write两个tasknBFM中的关键参数应该使用parameter进行定义- 可重用性,例如当exercise中的BFM用在另一个具备不同的数据、地址位宽的CPU验证当中 2006 Altera Corporation - Confidential8HARNESS的注意事项的注意事项n例化DUT和BFMn产生时钟和复位信号- 如果有必要复位信号也可以使用一个task实现- 除此之外不应该有其它额外的功能 2006 Altera Corporation - Confidential9BENC

6、H的注意事项的注意事项n例化HARNESSn构造测试用例并且通过调用BFM中的各种task去执行各种测试用例 2006 Altera Corporation - Confidential10遗留问题遗留问题nExercise1虽然是一个完整的CPU接口验证平台,但是仍然有遗留问题。- 测试用例的构造,测试用例非常简单,不仅个数少并且测试数据为手工构造。- 测试结果的检查,测试结果是否正确为人工检查。n显然exercise1中的验证平台只能用于简单的模块验证而不能适用于较复杂的逻辑验证 2005 Altera Corporation 2006 Altera Corporation - Confi

7、dential第二部分第二部分验证平台的结构验证平台的结构 2006 Altera Corporation - Confidential12验证的基本结构和思路验证的基本结构和思路n验证平台的基本结构如下图,思路就是针对同一个输入沿着两个不同的路径RM和DUT,最后比较结果是否相同。 2006 Altera Corporation - Confidential13TESTCASE的注意事项的注意事项1nTestcase应该至少能够覆盖如下功能- 功能测试,逻辑的基本功能测试- 边界测试,边界条件不满足是非常容易出现的错误,比如以太网包长范围是64-1500字节,就应当专门构造些64和1500字

8、节的包。- 反压测试,反压以及解除反压后是否会影响逻辑的功能。- 异常测试,需要测试逻辑是否能够正确识别和处理这些非法输入并且是否会影响之后的正常输入数据处理。- 随机测试,构造随机数据供逻辑进行处理,又根据情况可以采用全随机或者带约束的随机。 2006 Altera Corporation - Confidential14TESTCASE的注意事项的注意事项2nTestcase应该还注意功能的独立性,即一个case应该只测一个功能。nTestcase是一个约束,就像qsf文件,有其它工具(通常是脚本)来产生其对应的输入数据 2006 Altera Corporation - Confiden

9、tial15TESTCASE的注意事项的注意事项3n最后我们应该注意到大多数情况下我们永远无法构造所有的testcase,我们只能确认逻辑在当前testcase下没有问题而无法确认一个逻辑设计100%没有问题。事实上我们停止测试工作只是因为投入太大而产出太小 2006 Altera Corporation - Confidential16RM的注意事项的注意事项1nRM的独立性- RM和RTL设计唯一相同的是基于同一个规格,如前所述,验证是沿着DUT和RM两条不同的路径检验结果,如果RM的设计者受RTL设计者影响,特别是某处规格直接采用了RTL设计者的思路那么出错的几率就会大增。- 如果人力资

10、源紧张可以让RTL设计人员交叉进行验证 2006 Altera Corporation - Confidential17RM的注意事项的注意事项2nRM的模块划分- 如过能够按照RTL的模块划分一样划分RM模块,分开可以做单元测试,组合起来可以做整个芯片的集成测试,将节省整个验证的工作量。- 越来越多的大型逻辑设计需要重用之前使用过的成熟模块,按RTL模块划分RM模块也方便RM的重用。 2006 Altera Corporation - Confidential18脚本在测试平台的作用脚本在测试平台的作用n如果说DUT、testcase和RM一颗颗珠子,那么脚本则是将这些珠子串起来的丝线。通过

11、脚本能够自动根据testcase产生测试数据,调用RM和DUT并且比较分析两者的结果。 2005 Altera Corporation 2006 Altera Corporation - Confidential第三部分第三部分一个验证平台的例子一个验证平台的例子 2006 Altera Corporation - Confidential20一个验证平台的例子一个验证平台的例子n本部分的内容以介绍了一个完整的复杂的加密逻辑的验证平台(其实还是很简单)nRM和脚本都是使用Perl- 关于Perl的解释器可以在上免费下载 2006 Altera Corporation - Confidentia

12、l21逻辑功能规格逻辑功能规格n对输入数据包进行加密和摘要处理- 先加密后摘要- 只作加密不做摘要- 不做加密只做摘要- 不做加密也不做摘要n加密算法为输入数据除第一字节外其余部分以字节为单位和秘钥进行异或。n秘钥长度为8bits,固定在逻辑内部。n摘要算法为将输入数据除第一字节外其余部分以字节为单位之间相互异或后生成8字节添加在数据包尾。 2006 Altera Corporation - Confidential22逻辑数据规格逻辑数据规格n输入数据为2-32字节的变长包n输入数据的第一字节为包头,其后为静荷- 第一字节Bit0为1表示做加密,为0表示不做加密- 第一字节Bit1位1表示做

13、摘要,为0表示不做摘要n数据如果做摘要则在输出数据包后添加摘要字节,输出数据其余同输入数据 2006 Altera Corporation - Confidential23逻辑接口规格逻辑接口规格n逻辑提供输入、输出接口n输入接口定义如下:信号名位宽 输入/输出说明RXCLK1INRXSOP1IN为1表示包头RXEOP1IN为1表示包尾RXDATA8IN数据RXEN1IN为1时SOP、EOP和DATA有效 2006 Altera Corporation - Confidential24逻辑接口规格逻辑接口规格n输出接口定义如下:信号名位宽 输入/输出说明TXCLK1OUTTXSOP1OUT为1

14、表示包头TXEOP1OUT为1表示包尾TXDATA8OUT数据TXEN1OUT为1时SOP、EOP和DATA有效 2006 Altera Corporation - Confidential25构造构造Testcasen编写一个通用的约束文件tc.set来构造各种各样的testcase,下面是一个tc.set的例子/ Num Length Encrypt Hash20 10 1 110 R 1 0n这个tc.set的意思是一共产生30个数据包,前20个长度为10字节,并且需要做加密和摘要;后10个长度为随机,只做加密不做摘要n通过这样一个约束文件我们就可以很方便的构造各种不同的testcase 2006 Altera Corporation - Confidential26执行测试用例执行测试用例n首先必须确认机器上已经安装有- Perl解释器,可以在上下载- Modelsim- 确认start.pl中的115至125行正确指向Modelsim的安装目录n在命令行串口,exercise2目录下键入 perl start.pl tc=tc001- 这里tc001为测试用例的编号,测试用例均存放在tc目录下,同样可以为tc002,或者all,表示顺序执行所有的测试用例 2006 Altera Corporation

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论