嵌入式视频系统中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时钟相位,补偿各种不同的布线延时,可以解决高速数字电视系统的SDRAM时序问题。
在实际应用中,由于不同整机厂会采用不同厂家的SDRAM,PCB布线也会因为机器结构原因发生较大变化,时钟工作频率和选用器材的不一致性等,都会引起公式(1)、(2)中的参数发生变化。这些因素的组合,往往使布线延时问题变得复杂。
AVIA9700 SDRAM
时序诊断软件及测试结果
为了方便开发人员快速解决问题,本文利用AVIA9700内置SDRAM控制器提供的时钟延时补偿机制,设计了一个诊断工具。
基于AVIA9700数字电视接收机,由于PCB、元器件、系统频率都已经定型,影响布线延时的电气特性已经固化。通过改变SDRAM_CLK_IN和 SDRAM_CLK_OUT组合,设计人员可以测试不同组合下的SDRAM访问错误率,根据错误率统计数据制成统计图,如图3所示。图中纵坐标为 SDRAM_CLK_IN,由于寄存器是8位,因此选取坐标取值范围在0~255之间(28);横坐标为SDRAM_CLK_OUT,取值范围也在 0~255之间。对该范围内的某一点所对应的寄存器设置,诊断软件都要自动重复10000次读写操作。设计人员可以利用最后生成的图形,快速准确地选定 SDRAM_CLK_IN和SDRAM_CLK _OUT的值,并将其固化在最终生产版本的软件中。
图3 SDRAM时序测试统计图
这里,补偿参数的选择原则是,组合值需要在测试图中无错区域的中心,且距离边界大于25。
结语
通过实验发现,在高速数字系统设计中,通过SDRAM控制器来补偿布线延时可以很好地解决SDRAM时序问题。■
参考文献
1. Howard Honson, Martin Graham. 高速数字设计[ M ] . 电子工业出版社。 2004
2. AVIA9700 datasheet C-NOVA, Inc. 2004
3. AVIA9700 programming guide C-Nova, Inc. 2004
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论