一种DSP内嵌DARAM的电路设计与ADvance MS仿真验证
2014-03-16辛晓宁
辛晓宁,沙 江
(沈阳工业大学 信息科学与工程学院,辽宁 沈阳 110870)
在复杂的系统级微处理器设计中,存储器负责系统程序和数据的储存,是整个系统的重要组成部分,在CPU执行指令的过程中,要经常被访问存储器,所以存储器的读写速度会影响指令执行的速度[1]。RAM是系统芯片中常用的存储器,用来存放数据,普通的RAM在一个时钟周期内只能进行一次读或写操作,即CPU在一个时钟周期内只能访问存储器一次,称为单存取随机存储器(Single-Access On-Chip RAM),而双存取随机存储器(Dual-Access On-Chip RAM)可以在一个时钟周期内进行数据的读和写两次操作。利用DARAM一个周期内“双存取”的特点,可以大幅提高CPU执行指令的速度,进而提高整个系统的性能[2]。
1 DARAM整体电路
DARAM整体电路如图1所示,该DARAM的大小为256字x 16位,用来存储数据,输入信号为两相不交叠时钟SCLOCK1和 SCLOCK2,数据写总线DWE,数据读地址总线DRA和数据写地址总线DWA,读使能R_en和写使能W_en(高电平有效),输出信号为数据读总线DRD[3]。
DARAM的存储阵列根据地址的高低分为大小相等的两块,接口电路主要包括地址译码、地址选择、字线译码、位线选择和控制电路几个部分。其中,控制电路中的读写使能信号与内部时钟共同作用产生的脉冲信号,会使地址选择电路在一个时钟周期内的高低电平部分,分别输出读地址和写地址,这样就可以使位线选择电路在一个周期内进行读写两次操作,这是接口电路中的重要部分,也是随机存储器可以进行“双存取”的关键。
2 DARAM电路设计
2.1 地址译码
该DARAM的物理地址为0300H-03FFH,所以读写地址的高8位必须为“0000_0011”,地址译码电路的功能就是判断高8位地址是否匹配,如果地址匹配W_en和R_en才会输入到控制电路。
2.2 控制电路
控制电路实现的功能有:产生内部时钟,读写脉冲信号和预充电控制信号OE。
图1 DARAM整体结构图Fig.1 The DARAM structure block
图2 内部时钟产生电路Fig.2 Internal clock generating circuit
图2中SCLOCK1和SCLOCK2高电平不交叠,当SCLOCK1为高时输出0,SCLOCK2为高时输出1,都为低时输出保持不变,这样两相时钟就转换成一相内部时钟CLK,如图3。
图3 内部时钟CLK的波形Fig.3 Waveform of the internal clock CLK
图4产生的读写脉冲信号Rs与Ws会控制地址选择模块。W_en经过一个高电平触发的触发器,是为了寄存半个周期的时间,使输出的读脉冲Rs和写脉冲Ws交替产生,形成单周期双脉冲,是可以实现“双存取”的关键。
图4 读写脉冲产生电路Fig.4 Pulse generating circuit of read and write
图5电路中,当进行读操作时,R_en为高,在时钟上跳的瞬间,由于逻辑门的延迟,输出信号会出现一小段低电平,之后再升高,这样就产生了一个很窄的脉冲Rss,见图6。类似的,由SCLOCK2和W_en也会产生写信号窄脉冲Wss。
图5 读信号窄脉冲Rss产生电路Fig.5 Narrow pulse generating circuit of read
图6 Rss波形Fig.6 Waveform of Rss
Rss与Wss并不是最后控制读写放大器的控制脉冲,因为读出与写入数据的时间很关键,也就是说脉冲的宽度要很精确,读脉冲如果过宽的话不仅会增大灵敏放大器的能量消耗,也会减慢数据读出的速度,时间要恰好使位线上的电压可以满足灵敏放大器的灵敏度,而写脉冲如果太窄,数据会无法写入,所以要设计的恰到好处[4-5]。
图7 预充电控制信号产生电路Fig.7 Control signal generating circuit of precharge
图7所示电路可以产生读写控制脉冲和预充电控制信号。RSE是读脉冲,WSE是写脉冲,OE是预充电控制信号,由读写地址的第7位A7选择要控制的存储块。负载电容的大小就决定了读写脉冲的宽度,所以需经过精确设计。最终输出的波形如图8。
图8 RSE、WSE和OE波形Fig.8 Waveform of RSE,WSE and OE
2.3 地址选择
由控制电路产生的Rs和Ws会控制DRA和DWA低8位的传输,使两条地址总线有选择性的输出,产生一条8位的读写地址总线,其中地址[1:0]经过译码会控制四条位线,进行位线选择,地址[6:2]会进行字线译码,地址[7]经过控制电路产生存储阵列的块选择信号。
2.4 位线选择与存储阵列
位线选择电路包括读写放大器和多路选择器。图9为一个位线选择单元,根据最低两位数据地址来选择4组位线,由读写控制脉冲RSE和WSE决定对位线进行读或写操作。这就意味着在一个周期内,并不是对任意两个读写地址都可以进行操作,也就是说,进行“双存取”的两个地址必须相近,这也是可以实现“双存取”的关键。
图9 位线选择单元电路Fig.9 Bit line selection cell
图10 存储阵列局部Fig.10 Part ofmemory array
存储阵列的结构如图10。存储单元为常用的6管SRAM单元,进行读写操作时,OE由低变高,预充电管关闭,通过读写放大器对位线的充电与放电来实现数据读写。
3 仿真验证
为了使仿真结果准确,输入波形应该与实际情况一致,先用ModelSim对整体DSP芯片进行仿真,然后观察DARAM的输入端,按照所得的输入信号再单独对DARAM进行仿真,由于电路中既有数字电路也有模拟电路,所以采用数模混合仿真的方法,用ADvance MS对该电路进行仿真[6]。仿真波形如图11。
图11 ADvance MS仿真波形Fig.11 Simulation waveform by Advance MS
在4个时钟周期内,对DARAM进行三次写操作和三次读操作,数据在SCLOCK2上升沿时写入,在SCLOCK1上升沿时读出,在第二个周期与第三个周期内,W_en和R_en同时使能,也就是要在一个周期内进行两次操作,进行“双存取”。从两块存储阵列中读出的数据分别为DRD0和DRD1,可以看出,DRD0依次读出的三组数据 0123H、4567H和89ABH即为前一周期写入的数据,说明此电路可以正确的读写数据,也可以在一个周期内完成一次读操作和一次写操作。
4 结束语
本文以一款国外公司的DSP为例,介绍了其内嵌的一块DARAM的整体电路,给出了关键部分的具体电路,并结合仿真波形,详细介绍了电路的工作原理,最后采用数模混合仿真的方法,用ADvance MS对整体的电路进行仿真,结果证明此电路可以实现一个周期内的“双存取”功能,可以为DSP乃至SOC中存储器接口电路的设计提供一种参考。
[1]马汝亮.高性能处理器存取关键技术的设计与优化[D].上海:上海交通大学,2013.
[2]陆祯琦.一种DSP片上存储机制及其系统的设计与实现[D].上海:上海交通大学,2009.
[3]TI,TMS320LF/LC240XA DSP Controllers System and Peripherals Reference Guide [EB/OL].(2006-05).http://www.ti.com.cn/cn/lit/ug/spru357c/spru357c.pdf
[4]郑曰,李斌,黄裕泉.一种快速、低压的电流灵敏放大器的设计[J].微电子学与计算机,2006(6):130-133 ZHENG Yue,LI Bin,HUANG Yu-quan.A high-speed and low-voltage currentmode sense amplifier[J].Microelectronics,2006(6):130-133.
[5]李丹.基于DSP芯片存储器技术研究与设计[D].长沙:国防科学技术大学,2008.
[6]辛晓宁,李宁家.数模混合仿真工具Advance MS使用方法介绍[J].才智,2012(32):69-70.XIN Xiao-ning,LINing-jia.An introduction of analog-digital mixed-signal simulator ADvance MS[J].Itelligence,2012(32):69-70.