新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于E语言的数字电视DVB-H系统数据链路层功能验证研究

基于E语言的数字电视DVB-H系统数据链路层功能验证研究

作者:时间:2009-03-27来源:网络收藏

每一个IP包将在MPE Section中发送,RS将紧跟在最后一个MPE Section后,通过MPE-FEC Section传送,所有的MPE和MPE-FEC Section都有12 B的头部信息,和负载部分(IP或RS数据),在最后有4 B的CRC32校验数据。其中在头信息中有4 B的时间参数域,包括12个比特的开始地址,该地址表明了每个IP包或RS数据开始数据在MPE―FEC表中的位置,18个比特的Delta―T时间参数,以及1个比特的标志位表示最后一个IP包所在的Section和最后整个帧的结束,通常是最后一个MPE-FEC Section。所有的Section将被拆分为184 B作为TS包的有效负载部分,特殊情况是当作为Section的第一个TS包,将加上一个点(point)字节,该字节指名Section的第一个字节在TS包中的位置,然后加上183 B作为TS包的有效负载部分,并加上TS包的4 B的头信息,通过复用后发送到信道中传输,如图4所示。

接收端将在所选的业务的时间片内,从复用的TS码流中得到所有的Section,通过计算Section的CRC32和接收数据的CRC32对比,如果一致,表明该IP包正确接收,反之,该IP数据包将整个被丢掉,并且按照头部信息中的开始地址域,将正确的IP包保存在MPE-FEC数据表中,没有正确接收的IP包,将不出现在表中,且相应位置将被标记为不可靠位,然后通过RS(255,191)解码,得到所有的正确的IP包。这种RS纠错方法称为擦除表RS纠错,最大纠错能力每行可达到两倍的错误字节数,即64 B。如果每行的不可靠字节数超过这个最大限制,RS纠错将失败,MPE-FEC的整个帧将被丢弃。


3 基于E环境的构建
目前的IC设计中,由于SoC(System on Chip)设计的日益复杂化以及芯片规模的日益扩大,成为最具挑战的环节,据估计从结构设计,子模块设计,子模块,系统级验证到FPGA测试,到最终的IC的投产,60%~70%的时间会花费在验证方面。选择高性能的验证工具将极大地缩短验证时间,从而降低设计的开发周期。当前的EDA行业最推崇的主要是System C和E两种验证。其中E是Vetisity公司开发的专用于其Specman验证工具上的一种面向对象的验证语言。用E语言来搭建系统测试环境有很多优点:自动生成基于约束条件的测试矢量,通过描述约束条件产生验证计划中期望的验证场景,能够根据DUV(Design Under Verifica-tion)当前的状态动态地产生测试场景,这样便有可能产生一些很难碰到的边缘案例;自动完成数据和时序的检查;自动进行覆盖率的分析找出漏洞;提供所有主流的Verilog和VHDL仿真器接口;此外扩展性强,可以在分开的测试文件中修改若干数据对象,这些测试文件在分层的基础验证环境中处于顶部,这种扩展特性允许不牺牲模块化或可读性的同时更好地迎合系统和测试说明的要求。此外在本文的第二部分的分析中,DVB―H数据层的主要基于一系列的协议层,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链路层系统。以上部分的工作实际上是模拟发送端的工作,产生符合协议要求的传输包。



评论


相关推荐

技术专区

关闭