一种DSP内嵌DARAM的电路设计与ADvance MS仿真验证
摘要:介绍了一种DSP芯片内嵌DARAM的电路结构,详细分析了接口电路中各个模块的功能,包括地址译码电路,字线译码电路,位线选择电路及控制电路四部分内容。着重介绍了控制电路的原理,及如何实现一个周期“双存取”的功能。利用数模混合仿真工具ADvance MS对整体电路进行仿真,结果证明DARAM可以在一个时钟周期内完成一次读和一次写操作,实现预期的功能,为DSP设计乃至SOC的设计工作提供了参考。
在复杂的系统级微处理器设计中,存储器负责系统程序和数据的储存,是整个系统的重要组成部分,在CPU执行指令的过程中,要经常被访问存储器,所以存储器的读写速度会影响指令执行的速度。RAM是系统芯片中常用的存储器,用来存放数据,普通的RAM在一个时钟周期内只能进行一次读或写操作,即CPU在一个时钟周期内只能访问存储器一次,称为单存取随机存储器(Single-Access On-Chip RAM),而双存取随机存储器(Dual-Access On-Chip RAM)可以在一个吋钟周期内进行数据的读和写两次操作。利用DARAM一个周期内“双存取”的特点,可以大幅提高CPU执行指令的速度,进而提高整个系统的性能。
1 DARAM整体电路
DARAM整体电路如图1所示,该DARAM的大小为256字x 16位,用来存储数据,输入信号为两相不交叠时钟SCLOCK1和SCLOCK2,数据写总线DWE,数据读地址总线DRA和数据写地址总线DWA,读使能R_en和写使能W_en(高电平有效),输出信号为数据读总线DRD。
DARAM的存储阵列根据地址的高低分为大小相等的两块,接口电路主要包括地址译码、地址选择、字线译码、位线选择和控制电路几个部分。其中,控制电路中的读写使能信号与内部时钟共同作用产生的脉冲信号,会使地址选择电路在一个时钟周期内的高低电平部分,分别输出读地址和写地址,这样就可以使位线选择电路在一个周期内进行读写两次操作,这是接口电路中的重要部分,也是随机存储器可以进行“双存取”的关键。
2 DARAM电路设计
2.1 地址译码
该DARAM的物理地址为0300H-03FFH,所以读写地址的高8位必须为“0000_0011”,地址译码电路的功能就是判断高8位地址是否匹配,如果地址匹配W_en和R_en才会输入到控制电路。
2.2 控制电路
控制电路实现的功能有:产生内部时钟,读写脉冲信号和预充电控制信号OE。
图2中SCLOCK1和SCLOCK2高电平不交叠,当SCLOCK1为高时输出0,SCLOCK2为高时输出1,都为低时输出保持不变,这样两相时钟就转换成一相内部时钟CLK,如图3。
图4产生的读写脉冲信号Rs与Ws会控制地址选择模块。W_en经过一个高电平触发的触发器,是为了寄存半个周期的时间,使输出的读脉冲Rs和写脉冲Ws交替产生,形成单周期双脉冲,是可以实现“双存取”的关键。
图5电路中,当进行读操作时,R_en为高,在时钟上跳的瞬间,由于逻辑门的延迟,输出信号会出现一小段低电平,之后再升高,这样就产生了一个很窄的脉冲Rss,见图6。类似的,由SCLOCK2和W_en也会产生写信号窄脉冲Wss。
Rss与Wss并不是最后控制读写放大器的控制脉冲,因为读出与写入数据的时间很关键,也就是说脉冲的宽度要很精确,读脉冲如果过宽的话不仅会增大灵敏放大器的能量消耗,也会减慢数据读出的速度,时间要恰好使位线上的电压可以满足灵敏放大器的灵敏度,而写脉冲如果太窄,数据会无法写入,所以要设计的恰到好处。
图7所示电路可以产生读写控制脉冲和预充电控制信号。RSE是读脉冲,WSE是写脉冲,OE是预充电控制信号,由读写地址的第7位A7选择要控制的存储块。负载电容的大小就决定了读写脉冲的宽度,所以需经过精确设计。最终输出的波形如图8。
2.3 地址选择
由控制电路产生的Rs和Ws会控制DRA和DWA低8位的传输,使两条地址总线有选择性的输出,产生一条8位的读写地址总线,其中地址[1:0]经过译码会控制四条位线,进行位线选择,地址[6:2]会进行字线译码,地址经过控制电路产生存储阵列的块选择信号。
2.4 位线选择与存储阵列
位线选择电路包括读写放大器和多路选择器。图9为一个位线选择单元,根据最低两位数据地址来选择4组位线,由读写控制脉冲RSE和WSE决定对位线进行读或写操作。这就意味着在一个周期内,并不是对任意两个读写地址都可以进行操作,也就是说,进行“双存取”的两个地址必须相近,这也是可以实现“双存取”的关键。
存储阵列的结构如图10。存储单元为常用的6管SRAM单元,进行读写操作时,OE由低变高,预充电管关闭,通过读写放大器对位线的充电
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)