- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于E语言的数字电视DVB-H系统数据链路层功能验证研究
3.1 构建DVB—H验证环境
基于E语言的DVB—H验证环境如图5所示,dvbh_env是用E语言搭建的验证环境,dvbh_dut作为DVB—H系统数据链路层的系统模型被例化到验证环境中。由于DVB—H数据链路层要处理各种符合协议要求的TS包,同时负责对错包和丢包情况作纠错处理,并需要管理时间分片从而有效地将低功耗,因此对这些事务处理过程的验证离不开各种复杂测试激励的生成,然而传统的手工编写的激励很难覆盖到各种场景,采用E语言的验证平台通过在满足约束的条件下,随机自动生成测试矢量,达到了高效的验证需要。同时和传统的手工编写测试激励的相比,E语言中有各种函数可供利用,可以方便地实现各种算法,例如:各种协议包中都有CRC32校验字节,调用E语言CRC_32()函数就可以实现。此外,各种协议包都有固定的结构,通过E语言中的struct可以构建各种协议包,并在产生协议包的过程中可以对结构中的域值重新指定或者限定范围,也可以通过定义不符合协议要求的包及有错误值的包来达到验证系统鲁棒性的要求。扩展性强的优点可以节省编写各种测例的时间,E语言很类似于HDL语言编写的系统,在一个系统顶层模块中有各种例化的子模块组成,E语言的这些子模块为unit,可以通过extend uinit_name{}方式在不改变基本结构基础上的对子模块作扩展,也可以覆盖原有的内容重新定义。E语言验证环境也提供了数据一致性检查的机制,称为记分板方法。具体是通过将原始测试激励与从系统输出的数据作比较,提供报告验证系统的功能。在DVB—H链路层系统中,RS纠错模块对收到的IP包做纠错处理,因此记分板方法可以很好的验证数据纠错功能。
3.2 验证步骤及代码具体实现
验证环境搭建完成后,就可以将DVB—H接收系统的链路层例化到功能验证环境中进行验证。以下各步需要通过E语言来完成。
第一步,验证环境需要产生符合DVB—H标准的TS流,码流的基本结构如图4所示。在Host ref模块中产生IP数据包并记录到计分板,为数据检查提供参考数据。然后在MPE—FEC handle模块,产生RS编码数据,并封装成Section格式,随后在时间分片模块中在MPE Section的头信息的相应位中插入时间分片信息,由TS_gen模块打包成TS流的格式通过BB_driver将测试激励输入已例化到测试环境中的DVB—H链路层系统。以上部分的工作实际上是模拟数字电视发送端的工作,产生符合协议要求的传输包。
第二步,在测试环境中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语言的功能验汪不仅能提高验证效率,同时调试方便,而且重用性和可扩展性强。
上一篇:40
Gbit/s网络性能和SDT测量发布
下一篇:本质安全电源电路理论综述