位置:51电子网 » 技术资料 » EDA/PLD

基于FPGA的MPEG-2复用器中FIFO的一种设计方案

发布时间:2008/5/28 0:00:00 访问次数:567

近几年基于mpec-2的dvb普通数字电视在美国、南美、亚洲、大洋洲和非洲通过卫星进行广播。基于mpeg-2/dvb的多路节目复用器是数字电视传输系统的关键设备之一,因此,它的研发显得尤为重要。目前,复用器的设计方案主要基于dsp(数字信号处理器)的实现技术,这种设计方法在理论上也能实现对传送流的复用,考虑到实现复用器诸多高速、复杂的逻辑功能,同时,fpga(现场可编程门阵列)理论上可以无限次地重新配置,这样在一定程度上为系统的升级或局部功能的改进留下了余地。所以,从今后专用芯片的设计和开发的角度来讲,基于fpga的设计无疑是最佳的选择。本文提出了一套基于fpga的复用器输入部分的设计方案。

1 复用器组成

整个传送流的复用器分为复用预处理、输入和复用3部分。预处理部分是对多路传送流的psi(节目特殊信息)提取并修改,重新生成新的psi表的过程;输入部分是给各路经预处理的不同速率的传送流提供缓存,并将半满信号发送给后续的复用模块;复用部分是将n路传送流复合成一路传送流的过程,控制对各路传送流进行选择性发送,适时插入空包和其他业务信息。复用器的数据缓存包括输入fifo和输出fifo,它为n路传送流提供缓存,便于复用器随时提取某一路传送包进行处理。因此,复用器fifo是否具有高速性和可靠性将直接影响复用器的性能。

2 fifo设计方案

2.1 异步fifo结构

首先,由于输入通道和输出通道的时钟频率不同,所以用来实现输入接口的fifo必须支持异步读写功能,其结构如图1所示。

其次,考虑到输入通道和输出通道的时钟频率相差很大,为了避免数据溢出,fifo的大小设计也需要考虑。fifo的大小一方面与输入传送流的码率和路数有关;另一方面,fpga的处理能力也是影响缓冲器的一个因素。本设计中充分考虑了满足产生半满信号和节省系统资源的要求,fifo的参考长度设计为一帧传送流长度的2倍,即为376 b。n路传送流以不相关的码流速度写入fifo中,由于时钟之间周期和相位完全独立,因而数据的丢失概率不为o,如何设计一个高可靠性、高速的异步fifo电路便成为一个难点。

由图1可以看出,fifo的存储介质为一块双端口ram,可以同时进行读写操作。在写时钟域部分,由写地址产生逻辑产生写控制信号和写地址;读时钟部分由读地址产生逻辑产生读控制信号和读地址。在空/满/半满标志产生部分,当fifo里的数据超过188个字节时,产生一个半满信号,并将该信号送给复用控制模块,由复用控制模块产生一个读使能,控制fifo读出数据。也就是说写过程是连续的,而对于一个fifo来说读过程是间断的。

2.2 异步时钟同步电路

设计的过程中,首先要同步异步信号,使触发器不产生亚稳态。采取的方法是以读时钟为基准时钟控制读写数据,由读时钟触发,将写时钟变为写使能来控制fifo写入数据。如图2所示的触发器电路可以同步异步时钟。

由图2可以看出clk-r和clk-w分别是读时钟和写时钟,两者异步且频率相差很大。通过两级d触发器对这两个时钟进行同步,把写时钟clk-w转变为一个由读时钟clk-r上升沿触发的写使能w-en,由w-en控制写入数据。

2.3 信号控制电路

同步了读、写时钟后,下一个问题就是如何正确设计空/满/半满信号的控制电路。这些标志的产生是fifo的核心部分,如何正确设计此部分的逻辑,直接影响到fifo的性能。mpeg-2/dvb的传送流复用的特殊性,决定着空/满/半满标志产生的原则。fifo的标志产生逻辑如图3所示。

系统定义了写指针wp和读指针rp,在fifo写入或者读出数据时开始记数。通过比较wp与rp来产生标志信号。具体实现方法是:定义一个计数器(count)对存人fifo的数据字节数计数,产生半满信号hf-flag,当fifo写入一个数据时,计数器加"1",当从fifo中读取一个数据时,计数器减"1",当计数器值大于187时,该fifo输出一个半满信号。另外,附加了一个并行的区间判断逻辑来控制同步字节的写入。当同步字节syn到来时,写指针wp开始计数,fifo开始写入数据,这时需要同步判断计数器的值,而这个值应为0或187,从而给wp赋初值,这保证了ftfo中写入的前4个字节即为传送包的包头。与此同时,半满计数器也在计数,当其值大于187时,半满信

近几年基于mpec-2的dvb普通数字电视在美国、南美、亚洲、大洋洲和非洲通过卫星进行广播。基于mpeg-2/dvb的多路节目复用器是数字电视传输系统的关键设备之一,因此,它的研发显得尤为重要。目前,复用器的设计方案主要基于dsp(数字信号处理器)的实现技术,这种设计方法在理论上也能实现对传送流的复用,考虑到实现复用器诸多高速、复杂的逻辑功能,同时,fpga(现场可编程门阵列)理论上可以无限次地重新配置,这样在一定程度上为系统的升级或局部功能的改进留下了余地。所以,从今后专用芯片的设计和开发的角度来讲,基于fpga的设计无疑是最佳的选择。本文提出了一套基于fpga的复用器输入部分的设计方案。

1 复用器组成

整个传送流的复用器分为复用预处理、输入和复用3部分。预处理部分是对多路传送流的psi(节目特殊信息)提取并修改,重新生成新的psi表的过程;输入部分是给各路经预处理的不同速率的传送流提供缓存,并将半满信号发送给后续的复用模块;复用部分是将n路传送流复合成一路传送流的过程,控制对各路传送流进行选择性发送,适时插入空包和其他业务信息。复用器的数据缓存包括输入fifo和输出fifo,它为n路传送流提供缓存,便于复用器随时提取某一路传送包进行处理。因此,复用器fifo是否具有高速性和可靠性将直接影响复用器的性能。

2 fifo设计方案

2.1 异步fifo结构

首先,由于输入通道和输出通道的时钟频率不同,所以用来实现输入接口的fifo必须支持异步读写功能,其结构如图1所示。

其次,考虑到输入通道和输出通道的时钟频率相差很大,为了避免数据溢出,fifo的大小设计也需要考虑。fifo的大小一方面与输入传送流的码率和路数有关;另一方面,fpga的处理能力也是影响缓冲器的一个因素。本设计中充分考虑了满足产生半满信号和节省系统资源的要求,fifo的参考长度设计为一帧传送流长度的2倍,即为376 b。n路传送流以不相关的码流速度写入fifo中,由于时钟之间周期和相位完全独立,因而数据的丢失概率不为o,如何设计一个高可靠性、高速的异步fifo电路便成为一个难点。

由图1可以看出,fifo的存储介质为一块双端口ram,可以同时进行读写操作。在写时钟域部分,由写地址产生逻辑产生写控制信号和写地址;读时钟部分由读地址产生逻辑产生读控制信号和读地址。在空/满/半满标志产生部分,当fifo里的数据超过188个字节时,产生一个半满信号,并将该信号送给复用控制模块,由复用控制模块产生一个读使能,控制fifo读出数据。也就是说写过程是连续的,而对于一个fifo来说读过程是间断的。

2.2 异步时钟同步电路

设计的过程中,首先要同步异步信号,使触发器不产生亚稳态。采取的方法是以读时钟为基准时钟控制读写数据,由读时钟触发,将写时钟变为写使能来控制fifo写入数据。如图2所示的触发器电路可以同步异步时钟。

由图2可以看出clk-r和clk-w分别是读时钟和写时钟,两者异步且频率相差很大。通过两级d触发器对这两个时钟进行同步,把写时钟clk-w转变为一个由读时钟clk-r上升沿触发的写使能w-en,由w-en控制写入数据。

2.3 信号控制电路

同步了读、写时钟后,下一个问题就是如何正确设计空/满/半满信号的控制电路。这些标志的产生是fifo的核心部分,如何正确设计此部分的逻辑,直接影响到fifo的性能。mpeg-2/dvb的传送流复用的特殊性,决定着空/满/半满标志产生的原则。fifo的标志产生逻辑如图3所示。

系统定义了写指针wp和读指针rp,在fifo写入或者读出数据时开始记数。通过比较wp与rp来产生标志信号。具体实现方法是:定义一个计数器(count)对存人fifo的数据字节数计数,产生半满信号hf-flag,当fifo写入一个数据时,计数器加"1",当从fifo中读取一个数据时,计数器减"1",当计数器值大于187时,该fifo输出一个半满信号。另外,附加了一个并行的区间判断逻辑来控制同步字节的写入。当同步字节syn到来时,写指针wp开始计数,fifo开始写入数据,这时需要同步判断计数器的值,而这个值应为0或187,从而给wp赋初值,这保证了ftfo中写入的前4个字节即为传送包的包头。与此同时,半满计数器也在计数,当其值大于187时,半满信

相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!