第二步,在测试环境中Host driver模块模拟系统驱动的工作,主要负责和DVB—H传输系统的接口交互,包括对系统的中断响应,寄存器读写,接收IP数据包(即从Buffer中读出数据),同时通过将接收的IP数据包报告给计分板,验证数据的一致性。DVB—H系统的接口采用PCI仅用于测试需要,实际可以采用各种移动设备流行的接口,包括SDIO,USB2.O等。
第三步,模拟实际环境中的场景,扩展测例,增加覆盖率,主要包括两个方面:
第一,在数字电视中,发送端将各种节目信息表(SI/PSI表)和视音频数据流复用后发送,因此测试激励不仅要产生DVB—H协议要求的封装视音频数据的IP包,还需要插入各种服务信息包,包括NIT(Network Informa—tion Table),INT(IP/MAC Notification Table),PAT(Pro—gram Association Table),PMT(Program Map Table),EIT(Event Information Table),SDT(Service Description Ta—ble),信息表的结构可参照DVB的相关协议。第二,在移动环境中通过DVB—H物理层解调后,误码率依然存在,同时还会有丢包的情况发生,测试环境必须模拟该种场景,在数据包中随机插入错误数据,同时产生丢包的情况。
第四步,测试环境中注意合理的插入断言,不仅可以跟踪仿真进度,同时利于快速定位错误位置,缩短验证周期。此外为了测试环境利于维护和重用,对所有的参数和寄存器地址变量,用名称关联的方式引用。
第五步,用监视器来收集和分析仿真对DVB—H链路层模块的覆盖情况。根据各种功能点的覆盖率要求,设定一些触发事件,触发事件发生时通过采集相关数据,可以了解验证的进度,以便及时根据覆盖率报告修改随机测试矢量的约束条件,以覆盖这些验证中存在的空洞,直到覆盖率达到要求。此外也可以通过设置断点,了解功能模块的工作进度,同时能更好地定位错误位置,即时地完善系统功能。
4 验证结果及分析
DVB—H数据链路层功能验证的参数选择如表1所示。
测试环境根据上述参数条件,共产生了3个时间片,共计180个IP数据包。在第一个时间片内控制产生6个字节错误随机分布在每个时间片内.的60个IP包中,随机产生2个TS包丢弃情况,根据记分板测试报告,接收到全部的60个IP数据包并且所有错误通过MPE—FEC模块被纠正。通过修改约束条件,增加误码率,在第二个时间片内使每个MPE—FEC帧中13个IP数据包存在错误比特,由于误码率超过了MPE—FEC模块的纠错容限,结果分析,RS纠错失败,该时间片内的所有IP包被丢弃。第三个时间片主要增加了服务信息表PAT,PMT,测试系统对TS流解析的能力。对时间参数Delta—T选择为当前时间分片到下一个时间分片开始的间隔设定100 ms,根据系统时间,每个Section需要根据相对时间偏移,选取不同的Delta—T值插入头信息中,如果DN为当前时间片的第N个Section的Delta—T值,DN—l为前一个Section的Delta—T值:DN=DN-1一M,其中M为时间偏移量,且第一个Section的D1=10。验证同时对主要模块的状态机,中断响应,Buffer读写,寄存器读写作了测试覆盖率分析,功能验证的覆盖率报告如图6所示,其中MPE—FEC模块的状态机(mpe_fec_state),中断响应(datagram_statrt_int,datagram_finish_int,power_off_int,power_on_int,buffer_int),Buffer读写(buffer_rd,buffer_wr),寄存器读写(cfg_reg_rd,cfg_reg_wr)功能覆盖率均为100%,TS流解析模块状态机(tsp_state)覆盖率达到83%。由以上结果分析发现,对于测试激励,由于产生过程没有覆盖所有的服务信息表,主要集中选取PAT、PMT,因此TS流解析对于其他服务信息表的解析功能没有完全测试,可以通过修改测例,增加各种在DVB—H协议中包括的服务信息表的激励生成,进一步完善对TS解析功能的测试。在测试过程中,笔者发现TS流解析模块不仅需要提取包含在MPE Section头信息中的各种关键内容,并输出控制信号给MPE—FEC纠错模块和时间分片模块,同时还负责将正确接收的IP数据包通过buffer写入数据存储器。如果任何解析错误都将影响其他模块的正确工作。在测试中实际TS解析模块经过一定修改完善,最终对于错误TS包和丢包的情况,和其他边缘情况达到了功能要求。此外,通过后续对DVB—H数据链路层的FPCA硬件测试结果证明了基于E语言的功能验证结果的可靠性和优越性。
5 结 语
该研究通过DVB—H数据链路层的基于E语言的验证环境的构建。利用E语言完成测试环境的编写,并采用Specman作为功能验证平台。针对DVB—H数据链路层的协议分析,通过产生符合协议的测试激励及模拟实际场景的情况,充分验证了系统的功能,同时通过计分板报告和覆盖率测试报告,完善了系统的边缘测试情况。总之,采用E语言的功能验汪不仅能提高验证效率,同时调试方便,而且重用性和可扩展性强。