1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四
2、级,第五级,*,FPGA软件验证技术,1,验证的重要性,验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在,FPGA/IC,开发流程中,验证主要包括功能验证和时序验证两个部分。,2,一、FPGA的开发流程,设计输入,,HDL,代码,图形或原理图输入。,功能验证,也叫前仿真和功能仿真。,综合,将,HDL,代码等设计输入转换成最基本的与或非等逻辑的网表。,布局布线,将网表逻辑根据所选器件进行实际单元的连接与映射。,时序验证,主要进行电路的时序验证,包括静态时序分析和时序仿真(后仿真)。,生成烧写文件,进行板上验证。,3,二、验证方法,1,)设计检查,2,)功能仿真,3,)
3、门级仿真,4,)逻辑等效性分析,5,)静态时序分析,6,)时序仿真,4,1、设计检查,编码规则检查,代码审查,5,2、功能仿真,对,RTL,级代码进行功能仿真验证,验证设计逻辑功能是否正确的过程。功能仿真不考虑延时信息。,6,2、功能仿真,语句覆盖率和分支覆盖率达,100%,,对未覆盖的语句和分支进行未覆盖原因及影响域分析。,测试平台要求:依据测试需求规格说明和测试说明编写,testbench,文件,应包含被测试可编程逻辑器件的所有外围相关功能、性能、时序等要求的实现。,7,3、门级仿真,在逻辑综合完成后,针对综合后网表文件开展仿真测试。,与功能仿真内容要求相同,不同之处是将,RTL,代码换成
4、综合后的网表文件。,8,4、逻辑等效性分析,在工具的支持下,对可编程逻辑器件的,RTL,级代码、逻辑综合后的网表文件、布局布线后网表文件展开两两文件的逻辑等效性对比,人工对工具的比对结果信息进行二次分析,对不等价的比对点展开问题追踪和定位。,9,5、静态时序分析,分析逻辑综合或布局布线后得到的静态时序信息,根据信息找出不满足建立,/,保持时间路径以及不符合约束路径的过程。,静态时序分析是套用特定的时序模型,针对特定电路,分析与其是否违反设计者给定的时序限制。,10,6、时序仿真,在布局布线完成后开展的仿真。时序仿真考虑门级延时和走线延时。,由于时序仿真需要的测试周期较长,在实际测试中应有针对性
5、的展开时序仿真测试。,11,三、功能验证的常用方法,1,)设计检查,2,)仿真,12,1、设计检查,依据设计文档或设计准则,对代码和设计的一致性、代码执行标准情况、代码逻辑表达的正确性、代码结构的合理性以及代码的可读性进行审查。,设计检查的主要形式:编码规则检查和人工走读代码。,13,2、仿真,仿真的主要内容,根据测试需求设计测试用例。,搭建仿真环境。,提供测试激励。,在仿真环境中执行测试用例,记录并分析测试结果。,14,2、仿真,常用的仿真工具,ISE,QuartusII,Modelsim,Questasim,15,四、测试用例设计方法,功能分解法,等价类划分法,边界值分析法,错误推测法,因
6、果图法,16,1、功能分解法,功能分解法是根据规格说明中的描述,按照给定的测试输入,验证输出结果是否与功能描述相一致,一般用于验证基本功能是否实现。,例:,对,TS,流同步搜索模块进行测试。,17,2、等价类划分法,等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每个子集中选取少数具有代表性的数据作为测试用例。,例:,IP,地址分类:单播,组播和广播。,18,3、边界值分析法,边界值分析法,是对等价分析法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入输出域的边界上。,例:,利用,GMII,接口接收网络数据包,并将网络数据包经过,DDR2,缓存,,由
7、于网络数据包长度不固定(,64,字节到,1514,字节),为保证,DDR2,存储空间有效的利用。将一个网络数据包截成固定长度存储到,DDR,中。例如进行一次读写操作时仅进行,128,个字节。,边界值:,127,128,129,;,255,256,257,等,19,4、错误推测法,错误推测法是基于经验和直觉推测程序中所有可能存在的错误,从而有针对性的设计测试用例的方法。,例:,以太网数据包打包输出,打包中各个以太网帧头和帧尾各个字段,可能出现错误。例如头部校验和和帧尾,CRC,添加错误。,20,5、因果图法,因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序
8、输入条件的各种组合情况。,例:,解扰卡中解复用操作,设置进行单节目输出,,PID,过滤操作后,,组播输出的数据流需要包含所设置的,PID,,不包含未设置的,PID,。,MPTS,FPGA,SPTS,21,五、Testbench简介,Testbench,是验证,HDL,设计的主要方法,目前已成为验证高级语言设计的一种标准方法。,22,1、Testbench简介,Testbench,主要完成以下几个任务:,搭建仿真环境,实例化被测设计,通过向,DUT,施加测试向量来对,DUT,进行仿真。,向终端输出仿真结果或是向波形窗口输出仿真波形用来检查,将实际的结果与预期结果进行比对。,23,DUT,clock,CPU,checker,外设,2、Testbench简介,24,3、Testbench简介,25,谢谢!,Testbench详细设计方法敬请期待下次培训,26,