在高速数字视频系统应用中,使用大容量存储器实现数据缓存是一个必不可少的环节。SDRAM就是经常用到的一种存储器。
但是,在主芯片与SDRAM之间产生的时序抖动问题阻碍了产品的大规模生产。在数字电视接收机的生产实际应用中,不同厂家的PCB板布线、PCB材料和时钟频率的不同,及SDRAM型号和器件一致性不同等原因,都会带来解码主芯片与SDRAM间访问时序的抖动问题。
本文利用C-NOVA公司数字电视MPEG-2解码芯片AVIA9700内置的SDRAM控制器所提供的时序补偿机制,设计了一个方便使用的内存时序测试软件工具,利用这个工具,开发测试人员可在以AVIA9700为解码器的数字电视接收机设计和生产中进行快速诊断,并解决SDRAM的时序问题。
数字电视系统 SDRAM时序控制
图1 SDRAM与AVIA9700典型链接示意图
SDRAM控制线正确读写时序条件
AVIA9700解码芯片访问SDRAM的时序如图2所示。
图2 AVIA9700访问SDRAM时序示意图
要正确访问SDRAM,建立时间和保持时间很关键。建立时间在触发器采样之前,在这段时间,数据必须保持有效的时间,否则会产生setup violation;保持时间在解发器开始采样之后,数据必须保持有效的时间,否则会产生hold violation。因此CONTROL ENGINEERING China版权所有,要正确读写SDRAM的时序条件,需要满足以下两个公式:
SDRAM_Setup_time_min < T_cycle-control_signal_valid_max-control_signal_Delay_max+ clock_delay_min (1)
SDRAM_Hold_time_min < control_signal_valid_min + control_signal_delay_min- clock_delay_m_ax (2)
这里CONTROL ENGINEERING China版权所有,T_cycle 为SDRAM时钟周期CONTROL ENGINEERING China版权所有,Control signal valid为控制信号从时钟上升沿到输出有效时间控制工程网版权所有,delay为布线所引起的延时。
对于低频设计,线互连和板层的影响很小,可以不考虑。当频率超过50MHz或信号上升时间Tr小于6倍传输线延时时,互连关系必须以传输线理论纳入考虑之中,而在评定系统性能时也必须考虑PCB板材料的电参数。由于AVIA9700输出时钟信号MCLK工作在108MHz~148.5MHz之间,所以设计时必须考虑布线延时引起的SDRAM时序问题。
AVIA9700 SDRAM 时序控制机制
为了补偿布线延时,满足公式(1)和公式(2)的要求,AVIA9700的内置SDRAM控制器提供了两个延时补偿参数:SDRAM_CLK_IN和SDRAM_CLK_OUT。这两个参数都是8位的整数,可以提供不同的时钟延时组合,解决各种复杂数字电视接收机系统中的SDRAM时序问题。
通过嵌入式应用软件,开发人员可以调整SDRAM_CLK_IN的参数来控制读入数据的时钟延时。同样,对SDRAM_CLK_OUT的设置也可以改变输出时钟的延时。通过设置SDRAM_CLK_OUT (OutTapSel=X)改变输出的MCLK时钟相位CONTROL ENGINEERING China版权所有,补偿各种不同的布线延时,可以解决高速数字电视系统的SDRAM时序问题。
在实际应用中,由于不同整机厂会采用不同厂家的SDRAM