SDRAM在任意波形发生器中的应用
发布时间:2008/5/27 0:00:00 访问次数:587
来源:电子技术应用 作者:储飞黄 杨景曙 黄 崧
摘要:随着任意波形发生器工作频率的不断提高,为了精确表达复杂信号,使用sram作为波形存储体已不能满足容量上的要求。介绍了一种基于sdram的设计方案,能有效解决这一问题。文中重点讨论了一种简化sdram控制器的设计方法。
关键词:任意波 同步动态存储器 可编程逻辑器件任意波形发生器在雷达、通信领域中发挥着重要作用,但目前任意波形发生器大多使用静态存储器。这使得在任意波形发生器工作频率不断提高的情况下,波形的存储深度很难做得很大,从而不能精确地表达复杂信号。本文介绍的基于动态存储器(sdram)的设计能有效解决这一问题,并详细讨论了一种简化sdram控制器的设计方法。
1 任意波形发生器的总体方案工作频率、分辨率和存储长度是任意波形发生器最关键的三个性能参数。高的工作频率意味着高的输出信号频率和带宽,高的分辨率通常意味着高的信噪比,而存储长度决定了信号的精确程度。下面介绍的方案是笔者实际开发的一款任意波形发生器/卡(如图1所示),它的工作频率为300mhz,分辨率为14位,存储长度为8m字,现已得到了广泛地应用。
该电路主要有两种工作状态:写数据状态和读数据状态。下面简单描述其工作过程。
写数据状态:cpu根据所要设计的波形计算波形数据,并转换成14位的无符号数;打开总线开关,屏蔽fifo操作,在sdram控制器的配合下,将波形数据通过接口电路交替写入sdram1和sdram2中,即sdram1中依次存放数据0,2,4,6...;sdram2中依次存放数据1,3,5,7...(如表1所示)。
表1 sdram中的数据存放格式
地址
sdram1
sdram2
0
d0
d1
1
d2
d3
2
d4
d5
…
…
…读数据状态:开启fifo通道,关闭总线开关以断开sdram与cpu之间的数据连接;在sdram控制器的控制下,将sdram1/2中的数据同时(并行)读出;经过fifo的缓冲得到连续的数据流,再经32位向16位的并串转换,将数据速率提升2倍后,供给dac进行数-模转换,即可得到所编辑的信号。
图1中用两片sdram并行工作,是因单片sdram不可能提供300msps的数据流。实际使用的器件是k4s641632c-tc60,工作时钟为166mhz。fifo缓存sdram的输出数据,将突发数据流转换成连续数据流,使得在sdram处于刷新状态时,仍能维持正常的数据输出。实际使用的器件是两片并行工作的idt72v263l6pf,写入时钟为166mhz,读出时钟为150mhz。并串转换的作用是提升数据的速率,在dac器件内部完成,笔者采用具有良好动态性能的ad9755ast。cpu及控制接口是一个基于pc的isa设备,可改进为pci设备;时钟电路用来产生166mhz和150mhz的同步时钟。下面重点研究sdram控制器的设计,它是本系统的主要特色之一。
2 sdram控制器的设计
2.1 sdram的主要特点
与静态存储器(sram)相比,sdram的容量大(通常是几倍至几十倍的关系);与ddr sdram或rdram相比,它的控制又相对简单,因而它依然是大容量存储器工程项目的良好选择。下面描述的几个重要基本概念反映了它的主要特点。
行列地址:sdram的地址是行列复用的,此举有效减少了芯片的引脚。
预充电:读写操作只对预充电过的行有效。也就是说,在数据读写操作跨行时,需要先进行至少一次的预充电操作。
自动刷新:众所周知,只要是动态ram,就存在刷新问题,sdram也不例外。通常每隔64ms需要将所有存储单元刷新一遍。
自刷新:当需要保留芯片内的数据,而暂时又不需要操作时,可以设置芯片进入自刷新状态。
工作模式寄存器:控制sdram工作方式的寄存器。
2.2 sdram的状态流程
sdram的完整状态机由17个状态构成,且状态转移是非随机的(如图2所示)。正是如此众多的状态及其复杂的转换关系,导致sdram的控制较为复杂。
需要特别说明的是,sdram的状态转移有自动转移与人工转移之分(图2中以粗细箭头加以区别)。自动转移在当前状态结束后立即进入下一个状态;而人工转移在当前状态结束后即
来源:电子技术应用 作者:储飞黄 杨景曙 黄 崧
摘要:随着任意波形发生器工作频率的不断提高,为了精确表达复杂信号,使用sram作为波形存储体已不能满足容量上的要求。介绍了一种基于sdram的设计方案,能有效解决这一问题。文中重点讨论了一种简化sdram控制器的设计方法。
关键词:任意波 同步动态存储器 可编程逻辑器件任意波形发生器在雷达、通信领域中发挥着重要作用,但目前任意波形发生器大多使用静态存储器。这使得在任意波形发生器工作频率不断提高的情况下,波形的存储深度很难做得很大,从而不能精确地表达复杂信号。本文介绍的基于动态存储器(sdram)的设计能有效解决这一问题,并详细讨论了一种简化sdram控制器的设计方法。
1 任意波形发生器的总体方案工作频率、分辨率和存储长度是任意波形发生器最关键的三个性能参数。高的工作频率意味着高的输出信号频率和带宽,高的分辨率通常意味着高的信噪比,而存储长度决定了信号的精确程度。下面介绍的方案是笔者实际开发的一款任意波形发生器/卡(如图1所示),它的工作频率为300mhz,分辨率为14位,存储长度为8m字,现已得到了广泛地应用。
该电路主要有两种工作状态:写数据状态和读数据状态。下面简单描述其工作过程。
写数据状态:cpu根据所要设计的波形计算波形数据,并转换成14位的无符号数;打开总线开关,屏蔽fifo操作,在sdram控制器的配合下,将波形数据通过接口电路交替写入sdram1和sdram2中,即sdram1中依次存放数据0,2,4,6...;sdram2中依次存放数据1,3,5,7...(如表1所示)。
表1 sdram中的数据存放格式
地址
sdram1
sdram2
0
d0
d1
1
d2
d3
2
d4
d5
…
…
…读数据状态:开启fifo通道,关闭总线开关以断开sdram与cpu之间的数据连接;在sdram控制器的控制下,将sdram1/2中的数据同时(并行)读出;经过fifo的缓冲得到连续的数据流,再经32位向16位的并串转换,将数据速率提升2倍后,供给dac进行数-模转换,即可得到所编辑的信号。
图1中用两片sdram并行工作,是因单片sdram不可能提供300msps的数据流。实际使用的器件是k4s641632c-tc60,工作时钟为166mhz。fifo缓存sdram的输出数据,将突发数据流转换成连续数据流,使得在sdram处于刷新状态时,仍能维持正常的数据输出。实际使用的器件是两片并行工作的idt72v263l6pf,写入时钟为166mhz,读出时钟为150mhz。并串转换的作用是提升数据的速率,在dac器件内部完成,笔者采用具有良好动态性能的ad9755ast。cpu及控制接口是一个基于pc的isa设备,可改进为pci设备;时钟电路用来产生166mhz和150mhz的同步时钟。下面重点研究sdram控制器的设计,它是本系统的主要特色之一。
2 sdram控制器的设计
2.1 sdram的主要特点
与静态存储器(sram)相比,sdram的容量大(通常是几倍至几十倍的关系);与ddr sdram或rdram相比,它的控制又相对简单,因而它依然是大容量存储器工程项目的良好选择。下面描述的几个重要基本概念反映了它的主要特点。
行列地址:sdram的地址是行列复用的,此举有效减少了芯片的引脚。
预充电:读写操作只对预充电过的行有效。也就是说,在数据读写操作跨行时,需要先进行至少一次的预充电操作。
自动刷新:众所周知,只要是动态ram,就存在刷新问题,sdram也不例外。通常每隔64ms需要将所有存储单元刷新一遍。
自刷新:当需要保留芯片内的数据,而暂时又不需要操作时,可以设置芯片进入自刷新状态。
工作模式寄存器:控制sdram工作方式的寄存器。
2.2 sdram的状态流程
sdram的完整状态机由17个状态构成,且状态转移是非随机的(如图2所示)。正是如此众多的状态及其复杂的转换关系,导致sdram的控制较为复杂。
需要特别说明的是,sdram的状态转移有自动转移与人工转移之分(图2中以粗细箭头加以区别)。自动转移在当前状态结束后立即进入下一个状态;而人工转移在当前状态结束后即