用于双端口sram应用的可编程控制块的制作方法

文档序号:6782889阅读:155来源:国知局
专利名称:用于双端口sram应用的可编程控制块的制作方法
技术领域
0001本发明涉及集成电路(IC),更具体地,涉及控制在嵌入到 IC中的存储器中使用的信号的时序。
背景技术
0002半导体制造工艺的进步已经使得在单个半导体衬底上制造 的IC上形成的晶体管的数量日益增长,它见证了此类IC可执行的功能 的种类和数量的同步地增长。 一类IC使得其用户可以对IC被要求执行 的功能进行编程。此类包括可编程IC,诸如可编程逻辑器件(PLD)、 现场可编程门阵列(FPGA)、微处理器、协处理器、微控制器、可编 程控制器或序列器(时序器)、图形控制器、存储器、DRAM (动态 随机存取存储器)、SRAM (静态随机存取存储器)、EPROM (电可 编程只读存储器)、串行EPROM、闪式存储器和很多其它的IC。
0003当FPGA首次由其制造商提供的时候,各种硬件块即一般所 知的逻辑阵列块,典型地没有彼此相连。用户必须首先对FPGA进行编 程来执行用户规定的功能。对FPGA的编程一般在软件的帮助下进行, 在软件中,首先规定各种逻辑块之间的互联。在被执行之后,软件使 得该被规定的互联产生,换句话说,它对FPGA编程以生成所需的逻辑 和互联。因此FPGA消除客户特定的IC所需要的设计密集的和耗费时间 的工作。
0004FPGA—般包含逻辑块阵列,逻辑块阵列是可编程的并且被 选择性地连接到互联线阵列以实现组合的和时序的逻辑功能。对可编 程逻辑块的编程和它们与被选择的线路(例如总线线路)的连接一般 地通过建立布置在FPGA中的大量可编程元件诸如配置单元或熔丝的
状态来实现。
0005除了各种其它的块,FPGA—般包含静态随机存取存储器 (SRAM)单元阵列。该SRAM阵列可以含有用于读和写操作的单端口,
或者双端口,其中一个端口专用于读,而另一个端口专用于写操作,
或者两个端口并行实现读/写功能。图1是与SRAM单元15相关联的单端 口读和写路径的一部分的示意图。P沟道晶体管20、 22和24在读和/或写
操作之前将真位线(bitline)和互补位线BL和^T预充电到电源电压
Vcc。在读操作期间,位线BL和百r通过晶体管32和34被耦连到感应 放大器30并且响应读取列选择信号RCS。被感应的数据被作为信号
DOUT和55irf提供。在写操作期间,使用信号DIN和55j提供的输入
数据通过晶体管26和28被转移到位线BL和^T并且响应写入列选择信 号WCS。
图2是图1中示出的读和写操作中使用的信号的时序图。作为 对读请求(未示出)之后时钟信号CLK上从低到高变换50的响应,信 号BLPC进行从高到低变换52,信号WL进行从低到高变换54,以及信 号RCS进行从高到低变换56。信号BLPC的变换52终止位线预充电操 作。信号WL的变换54导通晶体管42和44以使SRAM单元15的反相器对
44能被耦连到位线BL和^T,从而使这些位线能够产生电压差58。在
Tl时刻,位线BL和^T上的电压差,以及对应的虚拟(dummy)位线 (未示出)达到一数值,该数值导致感应放大器30通过信号SAE的变
换60被使能。其后,感应在位线BL和^T上的电压差的感应放大器30 产生输出信号DOUT。读操作完成之后,上述的各种信号被恢复到其先 前的数值。
作为对写入请求(未示出)之后时钟信号CLK上从低到高变 换80的响应,信号BLPC进行从高到低变换82从而终止位线预充电操
作。变换82还导致信号WSC进行从低到高变换84以耦连位线BL和^T
到数据输入线DIN和5lN,以使新数据能够被存储到单元15中。因此,
在变换84之后,位线BL和百r变换到使用变换88示出的其新的互补值, 反映输入数据DIN的新的低值86。其后,信号WL进行从低到高变换90 以使单元15的反相器对44能够被耦连到携带新数据的位线,如由信号 MC上的变换92所表示的,表示出存储器内容。如图2所示,写操作完
9
成之后,上述的各种信号被恢复到其先前的数值。
0008众所周知,在被嵌入到FPGA中的双端口SRAM中成功地完 成读和写操作要求维持在多个关键信号之间的准确时序裕量。例如, 为执行成功的读操作,位线预充电信号BLPC必须在字线(wordline) 选择信号WL被有效之前被断开,以允许在感应放大器被激活之前产生 位线电压差。类似地,为执行成功的写操作,位线预充电信号BLPC必 须在写入列选择信号WCS被有效之前被断开以提供新输入数据到位 线。在各种存储器操作期间的这种时序裕量必须为所有合格的工艺、 温度和电压变化而维持。
0009随着FPGA制造技术縮小到深亚微米,部分地由于局部随机 变化,用来说明在制造工艺中的实际变化的数学模型可能变得不太精 确。结果,时序裕量和性能度量可能退化。时序裕量的退化也可导致 功能失效。

发明内容
0010根据本发明的一个实施例,使用虚拟线路来产生用于控制嵌 入到可编程IC中的双端口静态随机存取存储器(SRAM)的所有关键信 号。为实现这一点,嵌入到可编程IC中的双端口静态随机存取存储器
(SRAM)包含沿着用来控制与读操作、写操作或先读后写操作相关联 的时序的多个信号的路径布置的大量可编程延迟元件。至少一个可编 程延迟元件控制触发读/写使能信号的一对时钟信号之间的时序裕量。 该读/写信号然后被用来触发所有的存储器存取操作。
0011
一对可编程延迟元件被用来控制与虚拟位线相关联的信号 的时序,其中一个可编程延迟元件控制这些信号的时序的粗略调整, 另一个则控制这些信号的时序的精细调整。第四可编程延迟元件控制 用来复位该读/写使能信号的信号的延迟。
0012在读操作期间,虚拟位线的电压电平被用作激活感应放大器 的指示器。在写操作期间,虚拟位线的电压电平被用作确定被寻址的 字线何时被激活以将携带新数据的位线连接到被寻址的存储器单元的 指示器。


0013图1是现有技术公知的与单端口SRAM单元相关联的读和写
路径的一部分的示意图。
0014图2是现有技术公知的在图1的SRAM单元的读和写操作期间 使用的信号的时序图。
0015图3是根据本发明的一个实施例的适于包含双端口SRAM的
示范性的高密度可编程逻辑器件的简化的部分框图。0016图4是可体现本发明的示范性数字系统的框图。0017图5是根据本发明的一个实施例的双端口SRAM单元阵列的
多个块的示意图。
0018图6是根据本发明的一个实施例的与双端口SRAM的读操作 相关联的各种信号的示范性时序图。
0019图7是根据本发明的一个实施例的与双端口SRAM的写操作 相关联的各种信号的示范性时序图。
0020图8是根据本发明的一个实施例的与双端口SRAM的先读后 写操作相关联的各种信号的示范性时序图。
0021图9是在本发明的双端口SRAM中使用的虚拟SRAM单元的
示意图。
具体实施例方式
0022根据本发明的一个实施例,嵌入到可编程IC中的双端口静态 随机存取存储器(SRAM)包含沿着用来执行读操作、写操作或先读后 写操作的多个信号的关键路径布置的大量可编程延迟元件。本发明将 在FPGA的背景下描述,但是它可应用到其它可编程IC。至少一个可编 程延迟元件控制触发读/写使能信号的一对时钟信号之间的时序裕量。 该读/写使能信号然后被用来触发所有的存储器存取操作。 一对可编程 延迟元件被用来控制与虚拟位线相关联的信号的时序,其中一个可编 程延迟元件控制这些信号的时序的粗略调整,另一个控制这些信号的 时序的精密调整。第四可编程延迟元件控制用来复位读/写使能信号的 信号的延迟。在读操作期间,虚拟位线的电压电平被用作激活感应放 大器的指示器。在写操作期间,虚拟位线的电压电平被用作确定被寻
址的字线被激活以完成写周期的时间的指示器。
0023图3是根据本发明的一个实施例,适于包含双端口 SRAM的示 范性的高密度可编程逻辑器件(PLD) 300的简化的部分框图。PLD300 包含可编程逻辑阵列块或LAB 302的二维阵列,这些块由长度和速度变 化的行和列互联的网络所互联。LAB 302包含多个(例如10个)逻辑元 件(或者LE) , LE是提供用户定义的逻辑功能的有效实现的小逻辑单 元。
0024PLD 300也包含分布式的存储器构造,其包含遍布整个阵列 提供的大小变化的RAM块。这些RAM块包含,例如,512比特块304, 4千比特块306和提供512千比特的RAM的M块308。 一个或多于一个 RAM块可以是双端口SRAM块。这些存储器块也可能包含移位寄存器 和先入先出FIFO缓冲器。PLD 300进一步包含数字信号处理(DSP)块 310,其可实现例如具有加或减特性的乘法器。
0025应理解本文描述的PLD 300仅用于示例目的,并且本发明可 以在很多不同类型的FPGA、 PLD和其它集成电路中实施。
0026虽然图3示出类型的PLD提供实施系统级解决方案所需要的 很多资源,但本发明也可为PLD是若干组件之一的系统提供好处。图4 示出本发明可能在其中被实施的示范性数字系统400的框图。系统400 可以是编程的数字计算机系统、数字信号处理系统、专用数字交换网 络或其它处理系统。此外,这种系统可能被设计用于各种应用,诸如 电信系统、汽车系统、控制系统、消费类电子品、个人计算机、因特 网通信和联网,以及其它。进一步地,系统400可被提供在单电路板上、 多个电路板上或者在多个壳体中。
0027系统400包含用一条或多于一条总线互联在一起的处理单元 402、存储器单元404和输入输出(I/O)单元406。根据该示范性实施例, 可编程逻辑器件(PLD) 408被嵌入到处理单元402中。PLD 408可提供 图2中的系统中的许多不同的功能。例如,PLD408可以是处理单元402 的逻辑构造块,支持其内部的和外部的操作。PLD408被编程以实现在 系统操作中完成其特定的任务所必需的逻辑功能。PLD408可通过连接 410被耦连到存储器404,以及通过连接412被耦连到输入/输出单元406。
0028处理单元402可将数据送到适当的系统组件以便处理或存
储、执行存储在存储器404中的程序或者通过输入/输出单元406接收和 发送数据,或者其它的类似功能。处理单元402可以是中央处理器
(CPU)、微处理器、浮点协处理器、图形协处理器、硬件控制器、 微控制器、被编程用作控制器的可编程逻辑器件、网络控制器等。此 外,在很多实施例中,常常不需要CPU。
0029例如,替代CPU, 一个或多于一个PLD 408可以控制系统的 逻辑操作。在实施例中,PLD408充当可重构的存储器,其可以根据需 要被重新编程以处理特定的计算任务。替代地,可编程逻辑器件408自 身可包含嵌入式微处理器。存储器单元404可以是随机存取存储器
(RAM)、只读存储器(ROM)、固定或可移动的磁盘介质、PC卡闪 式磁盘存储器、磁带或者任何其它的存储装置或者这些存储装置的任 何组合。
0030图5是根据本发明的一个实施例的双端口SRAM 500的多个 块的示意图。如下面进一步所述,所有的存储器存取操作,即读操作、 写操作和先读后写操作,由读/写使能信号RAMEN触发,当做出通过 信号RE一IN执行读操作、通过信号WE一IN执行写操作、或者既通过信 号RE—IN又通过信号WE—IN执行先读后写操作的请求时,读/写使能信 号RAMEN接下来被有效。对信号RAMEN的触发使用一对时钟信号 INCLK和CORECLK执行。在这两个时钟信号之间的相移对于SRAM 500的正确运转是关键的。如果在这两个时钟信号之间的相对相移比窗 口期(window)的上界高,SRAM 500的性能就可能被降低。另一方面, 如果在这两个时钟信号之间的相对相移比该窗口期的下界小,SRAM 500就可能不正常操作,并且可能发生读/写功能故障。根据本发明,为 保证在时钟INCLK和时钟CORECLK之间的相移(也被称为时序裕量) 保持在最佳窗口期内, 一可编程延迟元件链520被布置在SRAM 500中。 控制信号Ctrl l被用来改变延迟量,该延迟量在该信号CORECLK一DLY 的被延迟的副本被施加到信号产生块506的时钟输入端子之前被引入 到信号CORECLK中。
0031模仿存储器阵列的实际位线的虛拟位线被用来打开感应放 大器,这些感应放大器感应在真位线和互补位线间产生的电压差。根 据本发明,可编程延迟元件的两个链530和540被用来控制虚拟位线或
者和该虚拟位线关联的信号对虚拟字线选择信号的时序响应。可编程
延迟链530被用来精细调整延迟,而可编程延迟链540被用来粗略调整 延迟。附加的可编程延迟元件链550布置在可编程延迟链540和信号产 生器506之间,控制信号RESET的时序,该RESET信号复位由信号产生 器506产生的信号。SRAM 500的各个块的操作在下面进一步阐述。0032寄存器502和504分别接收写请求信号WE—IN和读请求信号 RE—IN,并且在信号INCLK的上升(或下降)沿存储这些信号。寄存 器502和504的输出信号分别被表示为WEIN和REIN。如果寄存器502和 504的输出信号中的一个或全部处在高电平并且响应信号 CORECLK—DLY,那么信号产生块506使控制信号RAMEN有效。换句 话说,如果响应时钟信号CORECLK而做出执行读操作、写操作或先读 后写操作中的任何一个的请求,那么信号RAMEN被有效。时钟信号 CORECLK—DLY和CORECLK之间的延迟可以通过对布置在延迟链 520中的延迟元件的数量进行编程来调整,以满足信号产生块506所要 求的建立时间和保持时间。
0033控制块508接收信号RAMEN、寄存器502和504的输出信号以 及反馈信号ENA2,并且作为响应,生成信号WLEN、 D—WLEN、 BLPC、 WCS和SAEN/RCS。信号WLEN和D—WLEN分别被用来选择常规的存 储器单元和虚拟存储器单元的字线。信号BLPC在任何存储器存取操作 之前预充电位线到预定的值Vcc。信号WCS被用来在写周期期间选择 列。信号SAEN/RCS被用来在读周期期间选择列并且使感应放大器能够 在这种周期中感应位线。
0034信号WLEN被施加到字线解码器510,作为响应,解码器510 通过信号ADD为阵列580中所需的存储器存取操作选择字线中的一个。 类似地,信号D—WLEN被施加到虚拟字线解码器512,作为响应,解码 器512选择模仿由字线解码器510所选择的字线的虚拟字线中的一个。 信号COL—ADD和WCS被施加到写入列选择块WCS 555以在存储器存 取操作期间选择位线对中的一个。
0035晶体管562被用于预充电虚拟位线,而晶体管564和566被用 于预充电布置在阵列580中的SRAM单元的常规位线。在任何存储器存 取操作之前,信号BLPC处在低电平以保持PMOS晶体管564和566导通,
从而允许位线被预充电到供电电压Vcc。类似地,当信号D一WLEN在低 电平时,PMOS晶体管562导通以使虚拟位线能够被预充电到Vcc供电电 压。感应放大器块560包含感应所选的位线电压差以提供地址数据的多 个感应放大器。SRAM块500的各种操作在下面参照附图6-8进一步描述。
0036图6是与SRAM 500的读操作相关联的各种信号的示范性时 序图。下面同时参考图5和图6。作为对信号RE—IN和CORECLK的上升 沿(变换)600和602的各自的响应,发出读请求命令。作为对信号 CORECLK的上升沿的响应,通过进行低到高变换604,信号RAMEN 被有效。变换604导致信号BPLC进行从低到高变换606从而终止位线预 充电操作。变换604也导致在信号D—WLEN和WLEN上分别发生变换 608和610,以使得解码器510和512能够解码地址。如同上述,信号 D一WLEN的变换608也终止虚拟位线预充电操作。信号BPLC、 D一WLEN 和WLEN形成第一组与读操作相关联的命令信号。
0037信号BLPC的变换606导致信号SAEQ进行从低到高变换614 以终止耦连到感应放大器的感应线(未示出)的预充电。信号D—WLEN 的变换608导致所选的虚拟位线响应存储在被选择的虚拟SRAM单元中 的数值,从而导致信号DMY—BL (未在图6中示出)和其被延迟的副本 DMY—BL—DLY在该示范性时序图中进行从低到高变换612 。信号 DMY一BL—DLY的变换612触发在信号SAE上的变换616,从而开启感应 放大器560以感应在所选的SRAM的真位线和互补位线(未在图6中示
出)之间产生的电压差,以使读操作能够被执行。作为对信号 DMY一BL—DLY的变换612的响应,信号DMY一BL一DLY的被延迟且被反 向的副本信号RAMEN一DONE进行变换618。信号SAEQ和SAE形成第
二组与读操作相关联的信号。
0038如上所述,根据本发明,信号RAMEN的变换604可能使用可 编程延迟链520在时间窗口T1内变化。类似地,根据本发明,信号 DMY—BL一DLY的变换612可能使用可编程延迟链530和540在时间窗口 T3内变化,以及信号RAMEN—DONE的变换618可能使用可编程延迟链 550在时间窗口T5内变化。类似地,变换634和648依照可编程延迟链520 禾口550中的编程的延迟分别在时间窗口T2和T6内变化。类似地,变换642
依照可编程延迟链530和540中的编程的延迟在时间窗口T4内变化。如 上所述和图6示出的,信号RAM—EN被用来产生第一组与读操作相关联 的命令信号BOLC、 WLEN和D一WLEN,该组信号然后被用来产生信号 DMY—BL一DLY。同样地,信号DMY一BL一DLY被用来产生信号SAE, 该信号SAE是第二组与读操作相关联的命令信号的一部分。因此,依 照本发明,经由可编程延迟链530和540,通过部分地改变与信号 DMY—BL—DLY相关联的延迟,在第一和第二组用来执行读操作的命令 信号之间的时序延迟被可控地调整以提高性能。0039信号RAMEN—DONE的变换618导致信号RAMEN进行从低 到高变换634,从而复位信号RAMEN。信号RAMEN的复位又导致信号 D—WLEN进行变换638,作为对其的响应,虚拟位线DMY—BL和其被延 迟的副本DMY一BL—DLY通过晶体管162被预充电,被示为从高到低变 换642。随着信号SAE的变换616之后的时间流逝,信号WLEN进行从高 到低变换640以终止字线解码,以及信号BLPC进行从高到低变换636以 使位线能在准备下一个存储器存取操作时被预充电。信号BLPC的变换 636导致信号SAEQ进行从高到低变换644以启动感应线在为下一个存 储器存取操作准备时的预充电。信号RAMEN的复位也导致信号SAE进 行从高到低变换646以禁止(禁能)感应操作。作为对信号 DMY一BL一DLY的从低到高变换642的响应,信号RAMEN一DONE进行 从低到高变换648。信号RAMEN一DONE被用于将由感应放大器读取的 数据传送到输出端口。因此,在通过SAE打开感应放大器和传送从感 应放大器取回的数据之间的时序是关键的。根据本发明,通过经由可 编程延迟链550控制信号RAMEN—DONE的时序,保证了在感应放大器
被关闭之前,从感应放大器取回的数据被传送出去。0040信号WEIN、 REIN和CORECLK^DLY被共同用来生成信号 RAMEN。例如,假设当即将开始读操作或写操作的时候,位线被充电 到整个Vcc电平的70X。在可编程延迟链520不存在的情况下,被请求 的读操作或写操作会用部分充电(70%)的位线进行,这是不合需要 的。然而,根据本发明,通过经由可编程延迟链520将信号 CORECLK一DLY延迟,信号RAMEN也被延迟以使位线能够被充电到需 要的值,该值代表例如整个Vcc电平的95X。通过经由可编程延迟链520
控制信号CORECLK一DLY的延迟,还实现其它的优势。0041图7是与SRAM 500的写操作相关联的各种信号的示范性的 时序图。下面同时参考图5和图7。作为对信号WE—IN和CORECLK的变 换700和702的响应,写请求命令被发出。作为对信号CORECLK的上升 沿的响应,信号REMEN通过进行从低到高变换704被有效。变换704导 致信号BPLC进行从高到低变换706以终止位线预充电操作。变换704也 导致信号D—WLEN进行从低到高变换708以使能解码器512的地址解码 以及终止虚拟位线预充电操作。变换704也导致信号WCS进行从低到高 变换716以连接位线到提供数据给要被完成的写操作的输入线(见图 1)。信号BPLC、 D—WLEN和WCS (写入列选择)构成与写操作相关 联的第一组命令信号。
0042作为对信号D—WLEN的从低到高变换708的响应而被解码的 虚拟地址导致信号DMY一BL—DLY进行从低到高变换712 ,该 DMY—BL_DLY信号是信号DMY—BL的延迟的副本。信号 DMY—BL—DLY的变换712触发在信号WLEN上的从低到高变换710以 及在信号RAMEN—DONE上的从高到低变换718。换句话说,在写周期 期间,虚拟位线触发信号WLEN,信号WLEN然后被用于解码正确的字 线。因此,在写周期期间,在虚拟位线上的变换被用来控制输入数据 的提供和被解码的字线的使能之间的时序裕量。因为与信号 DMY一BL—DLY相关联的延迟是可编程的,所以相对于被解码的字线地 址的选择,输入数据的建立时间和保持时间可被改变。如果可能,这 个时序裕量也可能可选地变窄以便加速写周期以提高性能。该时序裕 量也可能可选地被加宽以改正读/写功能故障,或者提高产量。信号 WLEN上的变换710之后,位于被选择的地址的单元储存被提供在输入 数据线上的数据以完成写周期。信号DMY—BL—DLY的从低到高变换 712导致信号RAMEN—DONE根据在可编程延迟链550中编程的延迟时 间进行从高到底变换718,以复位信号发生器506中的信号。信号WLEN 形成与写操作相关联的第一组命令信号。
0043信号RAMEN—DONE的从高到低变换718导致信号RAMEN 被复位,如变换734中所示。变换734导致信号D—WLEN、 WLEN分别 通过变换738、变换740降低,以禁止常规的和虚拟的字线的解码。变
换740又导致信号BPLC进行从高到低变换736以开始位线预充电过程。 响应变换734,信号DMY—BL^DLY进行从高到低变换742。变换734还 导致信号WCS进行从高到低变换746以终止在位线和运送输入数据的 信号线之间的连接。变换734还导致信号RAMEN一DONE进行从低到高 变换748。
0044如上所述,根据本发明,信号RAMEN的变换704可使用可编 程延迟链520在时间窗口T1内被改变。类似地,根据本发明,信号 DMY一BL—DLY的变换712可使用可编程延迟链530和540在时间窗口T3 内被改变,以及信号RAMEN一DONE的变换718可使用可编程延迟链 550在时间窗口T5内被改变。类似地,变换734和748可根据可编程延迟 链520和550中被编程的延迟,各自在时间窗口T2和T6内被改变。类似 地,变换742可根据可编程延迟链530和540中的被编程的延迟在时间窗 口T4内被改变。如在上面描述和图7中示出的,信号RAM一EN被用来生 成与写操作相关联的第一组命令信号BPLC、 WCS和D—WLEN,它们然 后被用来生成信号DMY—BL—DLY。同样地,信号DMY—BL一DLY被用 来生成信号WLEN,该信号WLEN构成与写操作相关联的第二组命令信 号。因此,根据本发明,经由可编程延迟链530和540,通过部分地改 变与信号DMY—BL一DLY相关联的延迟,在用于执行写操作的第一和第
二组命令信号之间的时序延迟被可控地调整以提高性能。0045图8是与SRAM 500的先读后写操作相关联的各种信号的示 范性的时序图。下面同时参考图8和图5。响应信号RE—IN、 WE—IN的 从低到高的变换和信号CORECLK的从低到高的变换802,先读后写请 求命令被发出,因而导致信号RAMEN通过进行从低到高变换804被有 效。变换804导致信号BLPC进行从低到高变换806以终止位线预充电操 作。变换804也导致信号D—WLEN和WLEN分别进行从低到高变换808 和810,以使能由解码器510和512进行的地址解码。信号D—WLEN的变 换808也终止虚拟位线预充电操作。
0046信号BLPC的变换806导致信号SAEQ进行从低到高变换814 以终止耦连到感应放大器的感应线(未示出)的预充电。信号D—WLEN 的变换808导致被选择的虚拟位线响应存储在被选择的SRAM单元中的 数值从而导致信号DMY一BL及其被延迟的副本DMY一BL一DLY进行从
低到高变换812。信号DMY—BL—DLY的变换812触发信号SAE上的变换 818,从而打开感应放大器560以感应在SRAM单元的被选择的真位线和 互补位线之间产生的电压差,从而完成读操作。响应信号 DMY一BL—DLY的变换812,信号DMY一BL一DLY的被延迟且被反向的副 本RAMEN一DONE进行从高到低变换820。变换818导致信号WCS进行 从低到高变换816以连接位线到提供用于完成写操作的数据的输入线 (见图l)。
0047信号DMY—BL—DLY的从低到高变换812导致信号
RAMEN一DONE根据可编程延迟链820中的被编程的延迟时间进行从 高到低变换820,以复位信号发生器506中的信号。信号RAMEN—DONE 从高到低的变换820导致信号RAMEN通过进行由从高到低变换834被 复位。变换834导致信号D—WLEN和WLEN分别通过变换834和840变 低,以禁止常规的和虚拟的字线的解码。变换840又导致信号BPLC进 行从高到低变换836以开始位线预充电过程。响应变换834,信号 DMY_BL—DLY进行从高到低变换842。变换834也导致信号WCS进行从 高到低变换846以终止在位线和运送输入数据的信号线之间的连接。变 换834也导致信号RAMEN—DONE进行从低到高变换850。信号BPLC、 D一WLEN和WLEN构成与先读后写操作相关联的第一组命令信号。信 号SAEQ和SAE构成与先读后写操作相关联的第二组命令信号。信号 WCS构成与先读后写操作相关联的第三组命令信号。如上所述和图7 所示,信号RAM—EN被用来生成与先读后写操作相关联的第一组命令 信号BPLC、 WLEN和D—WLEN,它们然后用来生成信号DM—BL—DLY。 同样地,信号DM一BL—DLY被用来生成构成与先读后写操作相关联的 第二组命令信号SAEQ和SAE。信号SAE又用来构成与先读后写操作相 关联的第三组命令信号。因此,根据本发明,经由可编程延迟链530和 540,通过部分地改变与信号DM—BL—DLY相关联的延迟,在用于执行 先读后写操作的第一、第二和第三组命令信号之间的时序延迟被可控 地调整以提高性能。
0048如上所述,根据本发明,信号RAMEN的变换804可使用可编 程延迟链520在时间窗口T1内被改变。类似地,根据本发明,信号 DMY—BL一DLY的变换812可使用可编程延迟链530和540在时间窗口T3
内被改变,以及信号RAMEN一DONE的变换820可使用可编程延迟链 550在时间窗口T5内被改变。类似地,变换834和850可根据在可编程延 迟链520和550中被编程的延迟分别在时间窗口T2和T6内被改变。类似 地,变换842可根据可编程延迟链530和540中被编程的延迟在时间窗口 T4内被改变。
0049上述的对各种信号的时序的调整既可以在FPGA制造期间使 用的掩模组被生成之前执行,也可以在含有FPGA的晶片被制造之后执 行。例如,假设包含从FPGA布局中提取的各种寄生电容、电阻器等计
算机模拟指示在上述信号之间的时序裕量不是最佳的。因此,因为本 发明的FPGA包含布置在各种信号路径之间的大量可编程延迟链,所以 通过对这些延迟链中的一个或多于一个进行编程,时序裕量可被改变 以实现,例如性能提升或功能改进。可编程延迟链也可被用于调整含 有FPGA的硅片上的信号的时序裕量。通过改变控制信号,诸如CTRL1 到CTRL4,在FPGA正在被编程来执行所需功能时,时序裕量被调整, 例如,用以最小化读/写功能故障,或者通过加速可编程控制路径来提 高存储器性能。
0050因此,根据本发明,产量可被提高并且读/写功能故障可被最 小化。而且,由时序裕量变化导致的故障可能在硅片上被修复。此外, 对存储器速度的调整(降低或升高)可在硅片上进行。因此,本发明 提高设计的可靠性和鲁棒性。而且,存储器可测试性的带宽可被增加 从而使得能够收集关于软件错误的更多信息。而且,根据本发明,通 过调整时序裕量,在能够进行计算机模拟的数学模型和从硅片上收集 的数据之间的相关性被提高。
0051图9是根据本发明一个实施例的在图5中示出的阵列580的虚 拟行510和虚拟列505中使用的虚拟SRAM单元900的示意图。虚拟 SRAM单元被示为包含反相器902、 904和NMOS晶体管904、卯8、 910 和912。耦连到反相器904的输入端子的节点N1被连接到接地电位。晶 体管906、 908和912的栅极端子也被连接到接地电位。因此,当信号 D一WLEN被提升到高电压时,虚拟位线接收出现在反相器910的输出端 子的高电压。
0052本发明的上述实施例是说明性的而不是限制性的。例如,本
发明不受布置在每个可编程延迟链中的延迟元件的种类或数量的限 制。例如,在一些实施例中,不同的可编程延迟链可控制与每个信号 相关联的延迟。因此,在这些实施例中,与每个信号相关联的延迟可
被单独地改变。本发明不受技术类型的限制、CMOS、双极(Bipolar)、 BICMOS或其它可被用来构成通用连接器。本发明不受通用连接器被布 置于其中的集成电路的类型的限制。例如,本发明可被部署于可编程
逻辑器件、SoC或任何其它的可能需要配置的集成电路中。本发明也不 受限于存储器阵列的类型,静态的、动态的或者其它存储器阵列均可 被用于本发明。其它的对本发明的增加、减少或修改是显而易见的而 且应落入附加的权利要求的范围之内。
权利要求
1.一种存储器器件,其包括适合相对于第一时钟信号延迟第二时钟信号的第一多个延迟元件,所述第二时钟信号起触发存储器存取操作的作用;适合改变延迟的第二多个延迟元件,与所述存储器器件的虚拟位线相关联的信号线根据所述延迟响应存储在相关联的虚拟存储器单元中的数据;以及适合于当所述信号线的电压达到第一数值时被激活以执行读操作的感应放大器。
2. 根据权利要求1所述的存储器器件,其中所述第二多个延迟元件被用来精细调整所述延迟,所述存储器器件进一步包括适合粗略调整第二延迟的第三多个延迟元件,与所述虚拟位线相关 联的第二信号线根据所述第二延迟响应存储在所述相关联的虚拟存储器 单元中的数据。
3. 根据权利要求2所述的存储器器件,其中所述第二多个延迟元件 在所述虚拟位线被存取之前引入精细延迟。
4. 根据权利要求3所述的存储器器件,其中所述第三多个延迟元件 在所述虚拟位线被存取之后引入粗略延迟。
5. 根据权利要求4所述的存储器器件,其进一步包括响应所述第二 信号线的字线,所述字线适于当所述字线被选择时耦连存储器单元到一 对相关联的真位线和互补位线。
6. 根据权利要求5所述的存储器器件,其进一步包括第一时序逻辑块,其适合于在其时钟输入端子接收所述第一时钟信 号,以及在其数据输入端子接收读请求信号;以及第二时序逻辑快,其适合于在其时钟输入端子接收所述第一时钟信 号,以及在其数据输入端子接收写请求信号。
7. 根据权利要求6所述的存储器器件,其进一步包括适合于在其第 一和第二输入端子接收所述第一和第二时序逻辑块的所述输出信号的信 号产生块;所述信号产生块进一步适合于在其时钟输入端子接收所述第 二时钟信号的延迟副本;所述信号产生块响应第一反馈信号而被复位, 所述信号发生块适合于生成存储器使能信号,该存储器使能信号起触发 存储器存取操作的作用。
8. 根据权利要求7所述的存储器器件,其进一步包括第四多个延迟 元件,其适合于延迟从所述第三多个延迟元件接收的信号以生成所述第一 反馈信号。
9. 根据权利要求8所述的存储器器件,其进一步包括控制块,所述 控制块适合于接收所述存储器使能信号、所述第一和第二时序逻辑块的 所述输出信号和所述第二信号线,以及响应而生成控制所述存储器存取 操作的多个信号。
10. 根据权利要求9所述的存储器器件,其中所述存储器器件是静 态随机存取存储器。
11. 根据权利要求10所述的存储器器件,其中所述静态随机存取 存储器是双端口静态随机存取存储器。
12. 根据权利要求11所述的存储器器件,其中所述双端口静态随机存取被布置在FPGA中。
13. 根据权利要求12所述的存储器器件,其中所述第一、第二、 第三和第四多个延迟元件在所述FPGA被配置以执行用户定义的功能的 周期内被编程。
14. 一种操作存储器的方法,该方法包括相对于第一时钟信号延迟第二时钟信号;所述第二时钟信号起触发 存储器存取操作的作用;改变延迟,与所述存储器器件的虚拟位线相关联的信号线根据所述 延迟响应存储在相关联的虚拟存储器单元中的数据;以及当所述虚拟信号线的电压达到第一数值时,在读周期期间激活感应 放大器。
15. 根据权利要求14所述的方法,其中使用精细调整改变所述延 迟,所述方法进一步包括改变第二延迟,与所述虚拟位线相关联的第二信号线根据所述第二 延迟响应存储在所述相关联的虚拟存储器单元中的数据,其中所述第二 延迟使用粗略调整被改变。
16. 根据权利要求15所述的方法,其中所述精细调整在虚拟位线 被存取之前进行。
17. 根据权利要求16所述的方法,其中所述粗略调整在所述虚拟 位线被存取之后进行。
18. 根据权利要求17所述的方法,其进一步包括-响应所述第二信号线对存储在所述相关联的虚拟存储器单元中的所 述数据的响应,选择字线;以及响应对所述字线的选择,耦连存储器单元到一对相关联的真位线和 互补位线。
19. 根据权利要求18所述的方法,其进一步包括提供所述第一时钟信号到第一时序逻辑块,所述第一时序逻辑块适 合于在其数据输入端子接收读请求信号;以及提供所述第一时钟信号到第二时序逻辑块,所述第二时序逻辑块适 合于在其数据输入端子接收写请求信号。
20. 根据权利要求19所述的方法,其进一步包括 接收所述第一和第二时序逻辑块的输出信号; 接收所述第二时钟信号的延迟的副本; 响应第一反馈信号,执行信号复位;以及生成存储器使能信号,该存储器使能信号起触发存储器存取操作的 作用。
21. 根据权利要求20所述的方法,其进一步包括 延迟所述第二信号线以生成所述第一反馈信号。
22. 根据权利要求20所述的方法,其进一步包括 接收所述存储器使能信号; 接收所述第一和第二时序逻辑块的输出信号; 接收所述第二信号;以及 进行响应而生成控制所述存储器存取操作的多个信号。
23. 根据权利要求22所述的方法,其中所述存储器是静态随机存 取存储器。
24. 根据权利要求23所述的方法,其中所述静态随机存取存储器 是双端口静态随机存取存储器。
25. 根据权利要求24所述的方法,其中所述双端口静态随机存取 存储器被布置在FPGA内。
26. 根据权利要求25所述的方法,其中在所述FPGA被配置以执 行用户定义的功能的周期期间,所述第二时钟的延迟调整和所述第二和 第一信号线的所述粗略调整和所述精细延迟调整分别被执行。
27. —种操作存储器的方法,所述方法包括改变第一延迟,与所述存储器器件的虚拟位线相关联的信号线根据 所述第一延迟响应存储在相关联的虚拟存储器单元中的数据;改变第二延迟,与所述虚拟位线相关联的第二信号线根据所述第二 延迟响应存储在所述相关联的虚拟存储器单元中的所述数据,其所述第 二延迟使用比所述第一延迟更粗略的调整被改变;响应所述第二信号线,复位与所述存储器相关联的读操作和写操作。
28. 根据权利要求27所述的方法,其进一步包括当所述虚拟信号线的所述电压达到第一数值时,在读周期期间激活 感应放大器。
29.根据权利要求28所述的方法,其进一步包括 根据控制信号延迟时钟信号;以及响应所延迟的时钟信号,生成存储器使能信号,该存储器使能信号 起到触发存储器存取操作的作用。
全文摘要
本发明涉及用于双端口SRAM应用的可编程控制块。一种双端口静态随机存取存储器(SRAM)包含沿着用来完成读操作、写操作或先读后写操作的多个信号的路径布置的大量可编程延迟元件。至少一个可编程延迟元件控制在触发读/写使能(启用)信号的一对时钟信号之间的时序裕量。第二可编程延迟元件粗略地调整与虚拟位线相关联的第一信号的延迟。第三可编程延迟元件精细地调整与虚拟位线相关联的第二信号的延迟。第四可编程延迟元件控制用于复位读/写使能信号的信号的延迟。在读操作期间,第二信号的电压电平被用作激活感应放大器的指示器。在写操作期间,第二信号的电压电平被用来控制写周期。
文档编号G11C7/22GK101364432SQ20081013137
公开日2009年2月11日 申请日期2008年8月11日 优先权日2007年8月9日
发明者C·C·张 申请人:阿尔特拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1