基于CPLD的高速存储设计
O 引言
信息存储是信息科学研究的重要内容之一。在信号处理、智能仪器及工业自动控制等领域都存在着信息存储的内容。随着技术的不断发展,对数据信息存储的速度要求越来越高,因此,数据高速存储在系统设计过程中,已成为一个十分重要的问题。本文简要介绍了一种基于可编程逻辑器件的高速存储系统的设计方案,并给出了其软件及硬件设计思路。
1 系统设计
目前常用的可编程逻辑器件主要有FPGA与CPLD。它们都是可编程ASIC器件,有很多共同特点,但二者在结构上有一定差异:FPGA在结构上主要分为可编程I/O单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。而CPLD则主要由可编程I/O单元、基本逻辑单元、布线池和其它辅助功能模块构成。二者结构的不同使其又具有各自的特点:FPGA更适合于完成时序逻辑,而CPLD则适合完成各种算法和组合逻辑。也就是说,FPGA更适合于触发器丰富的结构,而CPLD则适合于触发器有限而乘积项丰富的结构。FPGA的分段式布线结构决定了其延迟的不可预测性,而CPLD的连续式布线结构则决定了它的时序延迟是均匀的和可预测的。
与FPGA相比,CPLD比较适合复杂状态机、存储控制器等应用,可广泛应用于高速领域和实时测控等方面,具有高速、高可靠性的特点。基于以上情况,本系统采用CPLD作为系统主控制器。同时选用SRAM存储器IC61LV2568―8T芯片。该SRAM存储器的初始存取等待时间很短,可广泛应用于需要快速存取数据的场合。
2 IC61LV2568―8T的操作时序
IC6lLV2568―8T是一款高速低功耗静态RAM存储器。该芯片采用高性能CMOS技术制造,最小存取时间可达8ns,待机功耗为36mW,兼容TTL电平输入输出。该芯片工作时不需要时钟控制及刷新。其读写时序图如图1所示。
3 硬件电路
本系统采用Lattice公司的ispMACH LC4526V作主控制器。这是一款高速、低功耗且配置有JTAG口,可支持ISP编程的高密度PLD。此芯片属于ispMACH 4000V/B/C系列,其最高工作频率可达322 MHz,传输延时为3.0 ns。它的静态电流典型值为1.3 mA(对于4000C系列)。应用时,可用硬件描述语言设计程序,再借助EDA工具进行行为仿真、功能仿真和时序仿真,最后通过综合工具产生网表,再下载到目标器件,从而生成硬件电路。CPLD与存储器的硬件连接如图2所示。
因系统的有源晶振频率为200 MHz,因该频率已是高频,故在电路设计时,要考虑一定的阻抗匹配问题。晶振输出脚与CPLD时钟输入脚之间应接有电阻R,这个电阻便是为了信号阻抗匹配而串接的。而在程序设计时,可以将晶振输入的时钟信号分频。
对于两片RAM,可进行乒乓操作。其硬件结构如图3所示。事实上,对于两个数据存储器的乒乓操作,还需要系统软件来共同完成。
4 软件设计
对于高速RAM的读写控制,可采用状态机的方法实现。状态机有多种分类方法。根据输出是否与输入信号同步,状态机可以划分为同步和异步状态机。而根据输出是否与输入信号有关,则可分为Mealy型和Moore型状态机。对于Mealy型状态机,其时序逻辑输出不仅取决于状态,还取决于输入。通常输出是当前状态值、当前输出值和当前输入值的函数;而Moore型状态机时序逻辑电路输出只取决于当前状态,其输出只是当前状态值的函数。
在单片SRAM的读写设计中,可采用计数器控制SRAM读写信号的产生,并设置SRAM地址计数器,同时采用状态机来实现空闲、读状态、写状态等不同状态的相互转换。其程序仿真结果如图4所示。
图4中,_RST_N为复位信号,S_ADDR为SRAM地址,S_WR_N为写信号,低电平有效,S_DATA为SRAM数据。
有一些数据采集系统对速度有较高要求,而对于资源要求则相对宽松一些。此时可以考虑采用两片SRAM进行数据交替存储。对于两片SRAM,可以进行乒乓操作来对数据存储区进行轮流读写。这种方式在EDA设计中比较常见,是控制数据流的一种方法,是以面积换取速度的典型操作。其基本思路是通过存储器选择单元,在数据流控制的第一个周期,将数据写入第一块存储器;然后在第二个周期,将数据写入第二块存储器,同时通过存储器选择,将第一块存储器的数据流读出,送到相关处理单元,如cpu等;最后,在第三个周期,则再次切换数据读写,将前次的数据输入与输出模块交换。数据流读写交替次数可以根据实际情况设定。
两片SRAM的高速存储系统程序可使用自顶向下的方法设计。可将系统划分为若干个子模块,再将子模块向下划分为若干个基本单元。本系统的结构层次如图5所示。
对于低速cpu如单片机等,可以考虑采用DMA的方式进行存储;而对于中高速cpu,则
- 基于DDS的高分辨率信号发生器的实现(11-04)
- 基于CPLD和89S51的多功能信号测量仪(10-04)
- 基于MCU+CPLD的相位差和频率的测量方法研究及实现(01-16)
- 基于单片机和CPLD的数字频率计的设计(01-27)
- 脉冲信号源的CPLD实现方法(02-27)
- CPLD 在线缆快速测试技术中的应用(03-01)