• 沒有找到結果。

双端口 SRAM

在文檔中 目录 (頁 126-140)

特殊的 SRAM 的结构与使用方法

5.1 双端口 SRAM

双端口 SRAM 包括与时钟异步的类型和与时钟同步的类型两种。同步类型的产品并不是简单的在 异步产品的外部增加了锁存器,而是具有了类似同步突发式 SRAM 的、自动地址进位的功能。

在异步类型的产品中,在从左右两个端口向同一地址访问发生冲突时,利用/BUSY 信号让稍后到 达的访问等待,在同步类型的产品中没有这样的等待控制,因而两个端口可以异步进行访问。

●5.1.1 异步类型的双端口 SRAM

作为异步类型的双端口 SRAM,我们以 Cypress 公司的 CY7C019 为例,CY7C019 的内部框图如图所 示。

图 CY7C019 的内部框图

中央部分为双端口存储器阵列,并列着能同时设置两个地址的存储元器件。下面的框图是实现了 控制信号的部分,这些控制信号用于当两个端口的访问发生了冲突时而进行的仲裁以及连接多个所谓 中断及信号灯的附加功能而进行的扩展位宽度中。

双端口 SRAM 的两端何时进行访问是不可预测的,在一端正在更新存储器单元的内容而另一端希 望读出同一地址的情况下,后一个访问需要等待。为此,需要预备/BUSY 信号。

当连接多个双端口 SRAM 时,如果各个访问仲裁逻辑单独进行仲裁,那么在非常接近的时间内双 方的访问发生了冲突的情况下,有的器件将赋予 LEFT 端口访问的杈限,而向 RIGHT 端口返回/BUSY 信 号;相反,有的器件会赋予 RIGHT 端口访问的权限,而向 LEFT 端口返回/BUSY 信号。为此,利用主/

从(Mater/Slave)功能、以从属器件追随主器件的仲裁功能的判断结果而进行设计。  

   决定器件的主操作/从操作的是 M/S 信号。如果 M/S 为高电平,则为主器件;如果 M/S 为低 电平,则为从属器仵。主器件的/BUSY 信号为输出引脚,而从属器件的/BUSY 信号为输入引脚。

●5.1.2 CY7C019 的引脚配置

CY7C019 的引脚配置如图所示,它是 100 引脚的 TQFP 封装,是左右对称的。

图 CY7C019 的引脚配置

● 5.1.3 CY7C019 的信号线

R/W 可以在 CE 之后变为低电平,但是,因为只有到 R/W 成为低电平才可进行写操作,所以此时

●5.1.4 CY7C019 的基本操作功能

CY7C019 的基本操作可以分为读操作、写操作、BUSY 状态、中断功能、信号灯功能以及主/从操 作六种,下面我们对 CY7C019 的基本操作进行说明。

▲ 读操作

图表示了双端口 SRAM 读操作的波形。与异步 SRAM 相同,确定地址后,在/CE0 为低电平、CE1 为 高电平时器件被选择,通过 R/W 为高电平和/OE 为低电平,确定读操作状态,从而读出数据。而主机 方面只要提取该数据即可。

图 双端口 SRAM 的读周期

▲ 写操作

图表示了双端口 SRAM 写操作的波形,从图形可知,也是同异步 SRAM 相同的操作。在该示例中,

/OE 仍然无效,先确定 R/W 信号后,通过 CE 信号进行写入操作。图中/CE0、CE1 虽然同时发生变化,

但也可以其中一个信号保持有效,另一个信号有效或者无效都行,可以在无效的时序中进行写人操作。

图 双端口 SRAM 的写周期

首先让 CE 有效,然后通过 R/W 进行写入的方法当然也是可以的,在这种情况下,是在 R/W 的上 升沿进行写入操作的。

▲ /BUSY 状态

双端口 SRAM 虽然可以同时进行来自两个端口的存取操作,但不可以在同时对同一地址进行存取操 作(发生冲突)。在一个端口完成存取操作之前,另一个端口必须等待。我们利用/BUSY 信号完成这 种功能。

基本的操作准则是先到者优先,先进行了存取操作的一端优先进行操作,后到的端口的/BUSY 信 号有效。一定时间以内发生了来自两个端口的存取请求时,CY7C019 虽然只能有一个端口的/BUSY 信号 有效,但此时并不能保证哪一个端口的/BUSY 信号有效。

图 1 表示了由左右两个端口同时对双端口 SRAM 同一地址进行存取操作时的操作概况。在示例中,

假定由 LEFT 端口首先访问、在其访问过程中又发生来自 RIGHT 端口的访问,此时,RIGHT 端口的/BUSY 信号有效,开始等待 LEFT 端口完成操作。

图 1 对双端口 SRAM 同时进行存取操作

更加具体的波形显示如图 2 所示,与刚才的示例相同,是 LEFT 端口首先进行访问,在使 RIGHT 端 口等待之后,又发生了来自 LEFT 端口的访问,图 2 显示了这一过程的波形,由此可知 LEFT、RIGHT、

LEFT 端口交互进行访问的情况。

图 2 双端口 SRAM 的仲裁操作

▲ 中断功能

在利用双端口进行多个处理器间通信的情况下,为了传递开始处理请求以及结束的通知等信息,

经常相互间中断某操作。CY7CO19 就是为了这个目的而增加了中断功能。

说是中断功能,其实与已经描述过的写操作、读操作没有什么不同。

图是中断操作的示例。在该示例中,LEFT 端口中断了 RIGHT 端口的操作。如果由 LEFT 端口向 lFFFFh 地址写人数据(数据为任意),则 RIGHT 端的/INT 输出有效(为低电平)。如果连接于 RIGHT 端的 CPU 等接收到该指令,由 RIGHT 端口读取 iFFFFh 地址,那么,/INT 输出无效,此时 RIGHT 端读出由 LEFT 端口写入的数据。

图 CY7C019 中断功能的操作

●5.1.5 同步类型的双端口 SRAM

作为同步双端口 SRAM,我们以 CY7C09199 为例进行说明。CY7C09199 与 CY7C019 相同,都是 128K×9 位结构的双端口存储器,其框图如图所示,由图可知,各个信号引脚都是利用时钟进行采样操作的。

图 CY7C09199 的内部框图

其功能仍然是双端口存储器的功能,只是因为与时钟同步运行,所以不具备异步类型所拥有的仲 裁机制。而且信号灯功能也被删除,取而代之的是增加了从最初所赋予的地址开始能够进行一系列读

/写操作的计数器功能(Counter/Address Register Decode,计数器/地址寄存器译码器)。FT/

Pipe 引脚是同步管道突发式 SRAM 与同步突发式 SRAM 不同的地方,在进行数据读操作时,锁存一次数 据之后,通过该引脚选择在下一个时钟中输出(管道操作)还是直接输出(Flow Through,直流)。

与同步 SRAM 时的情况相同,管道类型的最高时钟可以把频率取得较高。

●5.1.6 CY7C09199 的引脚配置

CY7C09199 的引脚配置如图所示,与 CY7C019 相同,是 100 引脚的 TQFP 封装,是左右对称的。

图 CY7C09199 的引脚配置

●5.1.7 CY7C09199 的信号

CY7C09199 的信号也与 CY7C019 的信号相同,具有以左右两个端口为对象的 2 组信号。在此,只 要没有特殊的说明,就不区分 LEFT 和 RIGHT 端口进行记述。

CY7C09199 的各个信号时序是由时钟的上升沿规定的,下面只要没有特殊的说明,时钟沿都是表 示时钟上升沿的意思。

▲ A0~A16(地址总线)

▲ /CE0、CE1(Chip Enable0/1,芯片使能 0/1)

这是芯片使能信号。时钟沿来临后,当/CE0 为低电平(VIL 以下)且 CE1 为高电平(VIH 以上)

▲ /CNTEN(Counter Enable,计数器使能)

CY7C09199 的地址锁存器也具有计数器的功能,可以从最初所访问的地址开始按序访问连续的 区域。与同步突发式 SRAM 的突发传输相似,同步突发式 SRAM 只能对低位的 2 位进行计数,而 CY7C09199 能够对所有的地址进行计数,这是两者的不同之处。

当需要该功能时可以利用/CNTEN 信号,在上升沿上 CE(/CE0 和 CE1)有效的状态下,如果/CNTEN 有效,则处于这种功能模式,每当时钟沿来临,地址就自动进位,然后输出下一地址的数据。如果/CNTEN

无效,则地址将不再进位。

另外,当/ADS 有效时,/CNTEN 无效。

▲ /ADS(Address Strobe,地址选通)

该信号用于将所赋予 A0~A16 的地址作为要访问的地址存储。在时钟沿上如果 CE 有效、并且/ADS

●5.1.8 CY7C09199 的存取操作

CY7C09199 的操作,将根据除/OE 以外其他的各个信号在时钟沿上处于何种状态而确定。

表 1 表示读/写操作,表 2 表示地址锁存/进位机制的操作条件。

表 1 CY7C09199 的读/写操作模式

表 2 CY7C09199 的地址计数器控制

所谓读/写操作的输出禁止,表示虽然在内部进行读操作,但因为外部输出缓冲器关闭而不能 输出数据。

另外,地址计数器控制表中的 D(n)表示地址 A(n)的数据,表中表示的操作都是直流模式下的 操作。在管道模式的情况下,请将“上一个时钟沿上的 A0~A16”替换为“再上一个时钟沿上的 A0~

A16。

▲读/写搡作

图中表示了存取操作中的一个例子,该示例中的操作是管道模式(FT/Pipe 引脚为高电平)下的 操作,它按照读/写/读这样的顺序进行存取。

图 同步双端口 SRAM 的存取操作示例

直流模式下的读/写操作,因为数据的输出是被一个个时钟前置的,所以在赋予地址的下一个时 钟沿上确定数据。

首先,在最初的时钟上 CE 有效,器件处于被选择的状态。因为 R/W 为高电平,所以操作是读模 式,而又因为/ADS 有效,因而将 A0~A16 作为所访问的地址进行提取。在这个例子中,是在下一个时 钟中改变地址的,这只是希望表示管道模式操作才这样描述的。

因为是在赋予地址的下一个时钟沿开始输出数据,所以,外部电路在所赋予指定地址的 2 个时 钟周期后的时钟沿上提取数据。

在这次的示例中,在 2 个时钟之后的时序内将 R/W 设为低电平,则转换为写模式。如果在这个 时钟沿之前 CE 无效,则因为不能输出 Q(n)的数据,所以在外部电路中驱动 I/O0~I/O8,可以在 该时钟沿上写人数据。但是此示例中,由于 CE 一直有效,所以正在输出来自双端口 SRAM 的数据,因 而不能写入数据。只能在此等待一个时钟,在下一个时钟沿中写入数据。

写操作结束后,如果 R/W 再恢复为高电平,则变为读模式。从高电平的 R/W 被采样的时钟沿 开始,2 个时钟之后确定数据。

▲ 地址计数器模式

如前所述,CY7C09199 的地址锁存器也可以作为计数器进行操作。当器件处于读模式、/ADS 为高 电平时,如果/CNTEN 有效,则地址进位,将自动访问下一个地址。

图表示了上述过程,该图是 CY7C09199 为管道模式(FT/Pipe 为高电平)下的操作示例。

图 CY7CO9199 的连续区域的读操作

首先,在最初的时钟内/ADS 有效,赋予地址的初始值(n 地址)(在此,只要/CNTRST 有效,

则地址将自动为 0)。在这里所赋予的地址的数据将在 2 个时钟后输出。

然后,在下一个时钟内因/CNTEN 有效,使下一个地址(n+1 地址)成为访问对象,而后在其

然后,在下一个时钟内因/CNTEN 有效,使下一个地址(n+1 地址)成为访问对象,而后在其

在文檔中 目录 (頁 126-140)