4.3 图像帧存储体的时序
讨论帧存的时序,就要讨论存储芯片本身。前面已经提过,用来构成帧存的芯片种类主要有三大类:DRAM、SRAM和VRAM。就其芯片所要求时序的复杂程度而言,表面看起来,VRAM芯片的时序最复杂,DRAM略为简单一些,SRAM最为简单。当综合各方面的考虑时,如考虑外围的控制、存储体存取的方式等,则是DRAM芯片的时序最复杂,VRAM略为简单一些,SRAM最为简单。DRAM操作方式包括常规读、常规写、页面读、页面写和刷新。而VRAM操作方式除了包含DRAM的全部操作方式以外,由于VRAM芯片比DRAM芯片多了一种称为SAM的存储体,所以还增加了独特的读传输、写传输、串出和串入的操作方式。SRAM芯片只有读写操作方式,时序很简单。
因为VRAM芯片的操作方式包含了DRAM芯片的操作方式,所以我们重点讨论VRAM芯片的时序产生。
VRAM芯片是20世纪80年代开始用于图形图像帧存的一种存储芯片,图4.3.1给出了VRAM芯片的基本结构。
从图4.3.1中可以看出,VRAM芯片内部比DRAM多了一个串行存取存储体(Serial Access Memory,SAM),从外部来看增加了一个串口,因此VRAM也称为双端口存储体,它的操作比较复杂,从总体上来考虑,VRAM主要有三类操作:DRAM操作;DRAM和SAM之间的传输操作;SAM的串入/串出操作。DRAM的操作包括常规读、常规写(包括按位写)、读改写、页面读、页面写和刷新等操作;SAM的操作称为串行操作,包括串行写入(简称串入)和串行读出(简称串出)操作,从存储体外部把数据写入SAM称为串入操作,从SAM里顺序读出数据到存储体外部则称为串出操作;DRAM和SAM之间的操作称为传输操作,在一个传输操作周期中把DRAM的数据并行地传输到SAM里为读传输,在一个传输操作周期中把SAM的数据并行地传输到DRAM里为写传输。
图4.3.1 VRAM芯片的基本结构
在图像处理系统中,最常见的帧存结构为512×512×8bit,如使用DRAM类的HM53461芯片来构成这样的帧存,则需要8片存储体,不仅数量多、体积大、线路板布线麻烦,而且外围电路也多。常使用的1Mbit的VRAM芯片有日本东芝公司的TC524256、TC524258,日立公司的HM534251/2/3以及美国TI公司的TMS44C251等,这些芯片都是512×512×4bit的结构,只需两片就能构成容量为512×512×8bit的帧存,该芯片除了具有DRAM的全部功能以外,全都具有读传输、写传输、串出/串入功能,其外围电路十分简单。下面以TC524256为例讨论VRAM芯片的使用方法。
TC524256芯片RAM的容量为256K×4bit,SAM的容量为512×4bit,512行刷新周期时间为8ms,其刷新方式有/RAS单独刷新、/CAS超前/RAS刷新以及隐蔽刷新,支持常规读、常规写、读改写、按比特位写、读传输、写传输、串出和串入操作,其主要的性能如表4.3.1所示,信号说明如表4.3.2所示。TC524256管脚位置排列有两种形式:一种是常规的双列直插形式(DIP),这种形式的芯片体积较大;另一种则是立式的(ZIP),其芯片体积较小,应用更广泛。
下面对各个信号的名称作一些说明。
1.地址(A0~A8)
这是行列复用的地址线,在/RAS的下跳沿锁存行地址,在/CAS的下跳沿锁存列地址,行列地址共18位,寻址256K。
2.数据传输/输出使能(/DT//OE)
这是一个功能复用的信号线,在/RAS下跳沿时/DT//OE端为高,存储体完成常规的DRAM操作;而在/RAS下跳沿时/DT//OE端为低,存储体则进行DRAM和SAM之间的数据传输操作。
3.按位写/写使能(/WB//WE)
这是一个功能复用的信号线,在对DRAM端口操作中,在/RAS下跳沿时如果/WB//WE端为低,则按位写使能,至于哪个比特位被屏蔽,视/RAS下跳沿时数据线W1/I/O1~W4/I/O4的电平值,低电平为屏蔽,如某一位此时为零即表示该存储单元相对应的位不能写入数据,在这一次写操作完成后,该单元的相应比特位仍然是原来的值。
在传输周期,/WB//WE端决定DRAM和SAM之间数据传输的方向,在/RAS下跳沿时,当/WB//WE为高,表示是DRAM到SAM的数据传输(即读传输);当/WB//WE为低,则表示是SAM到DRAM的数据传输(即写传输)。
4.写屏蔽/数据入/出(W1/I/O1~W4/I/O4)
这是四位DRAM端口的数据线,它有3个作用:数据输入、数据输出以及数据位屏蔽。在按位写的操作中,在/RAS下跳沿时,这时四位数据线记作W1~W4,其作用是标明存储体相应比特位是否允许写入,“0”不允许写,“1”则允许写。在DRAM端口读写操作中,这时四位数据线记作I/O1~I/O4,是DRAM端口的输入输出数据。
5.串入/串出数据(SI/O1~SI/O4)
串入和串出数据共享这四位数据线,串入和串出模式由最近的传输周期类型来确定,当一个读传输周期被完成以后,SAM端口处于输出模式。当一个伪写周期被完成以后,SAM端口则从输出模式切换到输入模式,在后续的写传输周期里,SAM端口则保持输入模式。
6.串入/串出使能(/SE)
/SE输入信号用来作为串行存取操作的使能信号,低电平有效。在串出操作时,/SE作为输出控制;在串入操作时,/SE作为写使能控制。当/SE为高时,串入/串出的存取被禁止,但即使/SE为高,SC端有时钟跳变,串入/串出地址指针位置依然发生变化。
7.串入/串出时钟(SC)
SAM端口的全部操作由串入/串出时钟SC同步,在串出操作中,在SC的上升沿,数据从SAM端口里移出;在串入操作中,在SC的上升沿,数据则移入SAM端口。
串入/串出时钟SC也改变作为选择SAM地址的9bit的串行指针,指针地址按一种环形的方式来增加起始地址以后的顺序地址。这个起始地址是由传输周期给出的列地址确定的,当地址达到最大地址511后,下一个SC时钟将使指针为零。
8.电源(VCC)
电源VCC为5V。
9.地(VSS)
DRAM端口操作以及DRAM和SAM之间的传输操作、SAM端口操作的真值表如表4.3.1~表4.3.3所示,DRAM端口中按位写操作的真值表如表4.3.4所示。
表4.3.1 DRAM端口操作的真值表
注:“*”表示高或低。
表4.3.2 DRAM和SAM之间传输操作的真值表
表4.3.3 SAM端口操作的真值表
H★:在DRAM端口和SAM端口同时进行操作的时间,在/RAS时刻,/DT//OE必须保持高电平,以免形成一次错误的传输周期。
表4.3.4 DRAM端口中按位写操作的真值表
注:第2脚的实际位置应往上,处于1、3脚之间;第4脚的实际位置应往上,处于3、5脚之间;依此类推。
每一种存储芯片都有由生产厂家给出的时序规范,表4.3.5则给出生产厂家建议的时序规范。
表4.3.5 生产厂家建议的时序规范
下面分别给出TC524256芯片不同操作的相应时序波形。
1)读操作周期
读操作的功能是从DRAM里读出由读操作周期行列地址所确定的某一单元的数据,读操作周期的波形如图4.3.2所示。
图4.3.2 读操作时序规范
2)读-写/读改写操作周期
其波形如图4.3.3所示。这里有一个按位写的控制问题,所谓按位写,是指通过相应的控制来实现每一个存储单元中4个比特位中的每一个比特位写与不写的操作。如果要按位写,则在/RAS下降沿时,(/WE//WE)端必须为低电平,至于4个比特位中具体的比特位写与不写,又取决于/RAS下降沿时(W1/I/O1~W4/I/O4)各端的电平,“1”为写,“0”为屏蔽写。
图4.3.3 读-写/读改写操作时序规范
3)页面方式读操作周期
页面方式读操作是从DRAM端口高速读出数据的一种操作,其波形如图4.3.4所示。一个/RAS为一页,一页里要读出N个数据,就是要在一个/RAS周期里包含有N个/CAS周期,有N个/CAS下降沿。在选择页面方式时,要特别注意页面方式下/RAS脉冲宽度的最大值和读周期时间。
图4.3.4 页面方式读操作时序规范
4)页面方式读改写操作周期
页面方式读改写操作的时序规范如图4.3.5所示。页面读改写是从DRAM端口高速读改写的一种方式,使用时,和页面读一样,也要考虑/RAS脉冲宽度的最大值和页面写最小的周期时间。
图4.3.5 页面方式读改写操作规范
5)页面方式写操作周期
页面方式写操作的时序规范如图4.3.6所示。页面写是从DRAM端口高速写入的一种方式,使用时,和页面读一样,也要考虑/RAS脉冲宽度的最大值和页面写最小的周期时间。
图4.3.6 页面方式写操作规范
6)/RAS单独刷新操作周期
这是刷新的一种方式,其波形如图4.3.7所示。
图4.3.7 /RAS单独刷新的操作时序规范
7)/CAS超前/RAS刷新操作周期
这是刷新的一种方式,其波形如图4.3.8所示。
图4.3.8 /CAS超前/RAS刷新的操作时序规范
8)读传输操作周期
读传输操作的波形如图4.3.9所示。其功能是把DRAM里某确定列为起点的某确定行的一行数据高速地传输到SAM。由/RAS下降沿锁定行地址,由/CAS下降沿锁定列的地址作为SAM的起始地址。
图4.3.9 读传输操作的时序规范
9)串出操作
其波形如图4.3.10所示,该操作的作用是把SAM的存储单元的数据依次读出来。
图4.3.10 串出操作的时序规范
10)写传输操作周期
写传输操作的波形如图4.3.11所示。该操作是把SAM的数据并行地传输到DRAM某一确定行的存储单元。由/RAS下降沿锁定行地址,由/CAS下降沿锁定列的地址作为SAM的起始地址。
图4.3.11 写传输操作的时序规范
11)串入操作
串入操作波形如图4.3.12所示,该操作的作用是依次把数据串入SAM的存储单元。
图4.3.12 串入操作的时序规范
上面介绍了11种VRAM芯片的操作方式,其中包括了VRAM芯片中3个类别的操作:DRAM端口的操作、DRAM和SAM之间的传输操作以及高速串入/串出操作。应该指出的是,所给出的时序只是厂家建议的各种操作的时序规范,有时个别时序不满足,但仍能进行正常的存储体操作。在上述的一系列操作中,我们看到了一系列的操作时序,而形成这些时序的方法有很多,可以用单稳态来实现,可以用移位寄存器来实现,还可以用其他的方法实现。图4.3.13给出了一种用D触发器来形成帧存时序的电路。
图4.3.13 用D触发器形成帧存时序
从图4.3.13可以看出,/CAS比/RAS延迟CLK的一个周期的时间。不难看出,用D触发器来形成帧存的时序存在着一些缺点,首先是不灵活,难以形成VRAM芯片所要求的复杂时序,而且器件集成度不高。同样,用单稳态来形成时序除了存在上述一些缺点以外,还存在波形不稳、调试工作量大的缺点。在第3章曾介绍过行场时序形成电路,与之类似,我们可以结构成帧存的时序形成电路,根据这种时序电路的特点,将其称为主动式的数值编程时序发生器。下面将详细讨论它的原理及其构成。上面已经提到,就操作的端口而言,主要有3类帧存的操作,而就操作中数据的连续性来说,又可以分为连续操作和单次操作两类,属于连续操作的有页面操作方式和串入/串出方式,这些连续操作方式将另行讨论,对于单次操作,首先要统一确定操作的周期时间,令帧存的操作周期时间为TOC,且
式中,T0为主动式的数值编程时序发生器最小时钟周期时间,这个最小时钟的一个周期称为一个节拍。N为操作周期节拍数,显然N为正整数。由此可以形成一个帧存操作周期时间轴,如图4.3.14所示。
图4.3.14 帧存操作周期时间轴
在这个帧存操作周期时间轴里,单位长度为一个节拍,对应的时间是最小时钟的一个周期时间,最大数为N-1,即在这N个节拍内完成一次帧存的操作,其帧存时序则由这些节拍来定义。T0数值的选取主要依据系统选用的系统时钟,往往取整个系统的最高频率时钟。这里T0=50ns,即时钟频率为20MHz,在这种情况下N=8,参照式(4.3.1),帧存的一个操作周期时间TOC为400ns,这个时间完全能满足一般VRAM、DRAM芯片的存取周期时间的要求。在确定了帧存的操作周期时间以后,还需要把帧存的操作归类,归类后的类别一般有DRAM端口的读写、DRAM端口和SAM端口之间的传输以及刷新。这个归类是依据帧存用户的性质,当然是系统总体设计的结果。如系统设计为计算机访问帧存在DRAM端口进行,A/D、D/A放在SAM端口而采用传输方式,这个归类工作可以在4.2节介绍的用户优先级控制电路中完成。
因为在用户优先级控制电路中有足够的信息,这样就能够准确地给出当前要响应的用户操作类别。由此,我们就可以很方便地用主动式的数值编程时序发生器来形成帧存的各种时序了。图4.3.15给出了帧存时序数值波形图。
图4.3.15 帧存时序数值波形图
在图4.3.15中,查询脉冲周期为400ns,计算机读写放在DRAM端口,A/D采用写传输,D/A采用读传输,刷新采用了/RAS超前/CAS的刷新方式。FOC是计算机读时对帧存输出数据的锁存脉冲信号,这是为了适应计算机读而设计的。从图中可以看出,每一种时序都有很严格的时间关系,可以说,由此形成的帧存操作时序是十分稳定的,这样的时序关系,即使在批量生产的条件下,也能很好地克服器件离散性的影响。这种数值编程时序发生器,最小时钟的周期时间选取是很重要的,T0数值越小,所编程形成的波形选择的余地就越大,复杂的时序也就越易于实现。在1:1的图像处理系统中,最小时钟的频率常选为29.25MHz。
有了图4.3.15所示的帧存时序波形图以后,要进行时序归类整合工作。这里以/RAS、/CAS为例。
先对/RAS进行归类。在图4.3.15中,帧存的所有操作/RAS都是从3开始,到7结束。
再对/CAS进行归类。除刷新操作以外,其余的操作/CAS都是从4开始,到7结束。在刷新操作时,/CAS从2开始,到7结束。
经过归类整合以后,就可以设计时序发生器的逻辑电路了,如图4.3.16所示。
图4.3.16 帧存时序信号发生器逻辑电路
图4.3.16中,节拍发生器由同步计数器IC1构成,因为一个帧存操作周期定为8个节拍,所以计数器只需输出QA、QB、QC三位信号即可;IC2为可编程逻辑阵列芯片,输出帧存所需要的全部时序,其输入变量除了节拍信号以外,还有W即帧存工作的允许信号(W为“低”表示帧存工作;“高”表示帧存不工作)。图4.3.16表示帧存有3个用户,包括计算机读写、刷新和传输。传输分为读传输和写传输,显示为读传输,A/D为写传输。在这3个用户中,只要任一个有工作的请求,W则为“低”,TEF即传输允许信号(TEF为“低”表示帧存处在传输周期;为“高”表示帧存不处在传输周期),REF即刷新允许信号(REF为“低”表示帧存处在刷新周期;为“高”表示帧存不处在刷新周期)以及WEM即帧存读写的标记信号(WEM为“低”表示读写的操作为写操作;为“高”表示读写的操作为读操作,如果当前的操作不属于读写操作,则此信号无意义),输出信号则是图4.3.16所表示的帧存时序信号。图中,DEM为查询脉冲。为了使输出的时序波形好,PAL16R8采用D触发器锁定后输出的形式,PAL16R8时序片的逻辑方程如下:
!RECK.D = !REF&QC&QB&!QA; FOC.D = !W&REF&TEF&QA&QB&QC; !BIG.D = !WEM&!W&REF&TEF&QA&!QB&!QC#!WEM&W&REF&TEF&QB&!QC ; !OE.D = !W&REF&TEF&WEM&QA&!QB&QC # !W&REF&TEF&WEM&QB&QC # !TEF&WEM&QB&!QC # !TEF&WEM&!QB&QC # !TEF&WEM&QB&QC # !TEF&!WEM ; !WE.D = !W&REF&TEF&!WEM&QB&!QC # !W&REF&TEF&!WEM&!QB&QC # !W&REF&TEF&!WEM&!QA&QB&QC # !TEF&!WEM ; !CAS.D = !W&QA&!QB&QC # !W&!QA&QB&QC # !REF&QB&!QC ; !RAS.D = !W&QA&QB&!QC # !W&!QB&QC # !W&!QA&QB&QC ; !SC.D = CB&QA 。
这里要特别强调的是,帧存工作的允许信号W是非常重要的,如果在/RAS、/CAS没有加W信号这一条件,则/RAS、/CAS信号将是周期性的脉冲信号,这个系统将是不稳定的。
笔者曾在审查一篇论文时发现了一个错误的存储体读改写时序设计,其帧存时序波形图如图4.3.17所示。
图4.3.17 一个错误的存储体读改写时序设计
在图4.3.17中,地址的有效位置明显不对。在/RAS的下跳沿,需要提供有效行地址,但图中对应的是地址线的三态状态;在/CAS的下跳沿,需要提供有效列地址,但图中对应的也是地址线的三态状态。没有正确的地址,帧存则无法正常工作。