APP下载

FPGA中嵌入式块SRAM的设计

2017-08-07刘义凯

微处理机 2017年3期
关键词:存储单元位线译码

刘义凯

(中国电子科技有限公司第四十七研究所,沈阳110032)

FPGA中嵌入式块SRAM的设计

刘义凯

(中国电子科技有限公司第四十七研究所,沈阳110032)

对于逻辑芯片的嵌入存储器来说,嵌入式SRAM是最常用的一种编译器,其典型的应用包括片上缓冲器、高速缓冲存储器、寄存器堆等。对于小于2Mb存储器的应用,嵌入式SRAM可以有更好的成本效率,因此通常优先被考虑。FPGA由于具有使用便捷,适用范围广等特点,从而得到广泛应用。FPGA内部的嵌入式专用SRAM模块,拓展了FPGA的应用范围,提高了灵活性。对基于SRAM的FPGA中使用的嵌入式块SRAM电路进行了设计和分析,设计的BRAM具备通用的双端口SRAM功能,且具有FPGA特有的可配置性,具备多种工作模式。对块RAM的组成电路进行了设计和分析,包括模式控制电路,译码电路,位线预充电路和灵敏放大器电路。

集成电路;现场可编程门阵列;嵌入式;随机存储器;灵敏放大器;可配置性

1 引言

通常的SRAM型FPGA主要由配置存储器、布线资源、可编程I/O、可编程逻辑单元CLB、块存储器BRAM和数字时钟管理模块组成[1]。其内部的RAM资源由分布式RAM和块SRAM(Block SRAM)组成。分布式RAM位于CLB中,每个CLB包含了16×1bit的SRAM结构。BRAM资源由多个单片容量为4K的可配置SRAM阵列及其专用布线资源构成。BRAM的加入既增加了RAM的容量,又构成了大型LUT,更完善了CLB的功能。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。在实际应用中,FPGA芯片内块RAM的数量也是选择芯片的一个重要因素。

2 BRAM的整体结构

现代数字系统对存储器容量的存储速率要求越来越高,读取访问时间就是一个重要参数,它是从地址信号的出现到存储在该地址上的数据在输出端出现的时间延迟[2]。提高BRAM读取速度的一个有效办法是减小位线和字线上的总负载电容,这可以通过减少连接在同一字线和位线上的存储单元数目来实现,即采用存储阵列分块技术。本设计采用多个BRAM的方法,每个BRAM都有自己的译码电路、敏感放大器和数据通道,各个BRAM独立工作,每个BRAM的读取时间得到了大大提高[3]。其总体结构如图1所示,包括存储单元阵列,译码电路,控制电路和输入输出电路。外围是逻辑互连资源,提供块RAM与其他功能模块之间的布线。

图1 BRAM整体结构

3 BRAM的内部电路

3.1 SRAM单元结构

通常的SRAM存储单元是6管单元,其具有低的静态直流功耗,同时也消除了电阻型负载存储单元的阈值损失,也有很好的抗干扰性。双端口存储单元是单端口单元的变形,在单端口6管单元的基础上,在B端增加两个存取管,控制端连接B端的字线[4-5]。根据BRAM的容量要求,由64×64的阵列构成大小为4k bit的存储空间。

图2 双端口8管单元结构

3.2 配置模式控制电路

配置逻辑中三位控制信号WIDTH_SEL<0:2>连到BRAM中,同时对地址宽度、数据宽度进行控制。

由于 BRAM 可以实现 1、2、4、8、16 位的任意位宽,所以地址总线宽度、数据总线宽度都必须满足其中任意一种模式下的要求。于是设计时使地址总线宽度为各种模式下的最大值,即1位时的地址宽度<11:0>,其他模式下可使不用的地址位使能无效,进而获得所需的地址位。数据总线宽度也设置为各种情况下的最大值,即16位时的数据宽度<15:0>,其他情况下选择有用的数据位进行存储。

表1可见WIDTH_SEL<0:2>对地址使能的控制,主要在于对地址<11:8>的控制,其他位地址<7:0>则一直有效。

表1 不同数据位宽的地址使能

数据总线的宽度由WIDTH_SEL<0:2>另外译码产生一组数据控制信号,分别为S_1、S_2、S_4、S_8、S_16,控制数据如何分配到位线上。这当中64根位线实行了分片,每片4根:

S_1有效:DI<0>可分配到16片中的任何一片上。

S_2 有效:DI<0:1> 可分配到 <0:1>、<2:3>…<14:15>任何相邻两片上,每片1位数据。

S_4 有效:DI<0:3> 可分配到 <0:3>、<4:7>、<8:11>、<12:15>任何相邻四片上,每片1位数据。

S_8有效:DI<0:7>可分配到<0:7>或<8:15>8片上,每片1位数据。

S_16有效:DI<0:15>刚好分配到16片上,每片1位数据。

至于上述究竟存储到哪些片上以及具体存储到片内哪根位线上则由列译码控制。

3.3 译码电路

行译码采用了常用的3-8译码器,3-8译码器内由与门组成。第一级用两个3-8译码器,输入端接入行地址ADDR<5:0>,第二级用64个与门把第一级译码进一步译出来,可实现64行中选出1行。如图3所示。

列译码相对较复杂,首先将列地址分为两组,一组用于片选译码,一组用于片内译码。片选地址由ADDR<11:8>组成,片内译码由ADDR<7:6>组成。片选地址译码由地址和地址使能组成,而地址使能则是由WIDTH_SEL<0:2>配置决定的。图4是片选译码的示意图。

图3 64选1行译码

图4 片选译码

译码所得的A<11:8>_DEC<0:15>即可实现片选存储。当配置为1位时,4位地址均有效,译出的16位中只有1位有效,只能选择16片中的1片。当配置为2位时,ADDR<11>使能无效,译出16位中有连续2位有效,能选择16片中连续2片。当配置为4位时,译出16位中有连续4位有效,能选择16片中连续4片。配置为8位就能选择16片中的上8片或下8片。配置为16位,4个地址均无效,译出的16位全有效,16片全选。经过了片选的一级译码,列译码还需经过图5所示的第二级的片内译码。

图5 片内译码

A<11:8>_DEC与A7译码均为低有效,A6译码均为高有效。之所以能够用或门译码,是因为没被译码的一对BL和BLN位线上的数据是不会被写入存储单元的,如A7<0>为 1,A<11:8>_DEC为 1,BL<0>与BLN<0>均为1,即使字线打开了,它们也是不会被写入存储阵列的。而被译码选中的一对位线,BL与BLN互补,它们上的数据即可被写入存储单元[6]。

3.4 位线充电电路

对位线的充电共有两对充电管和一对上拉管,如图6所示。宽长比在设计上也是有讲究的。上拉管一直开启,为倒比管。栅极接平衡管的M1和M2时序要求较高,因为它们的宽长比较大,为主要充电管。在BRAM总使能信号ENA和时钟CLK有效时工作,进行预充电。在CLK下降沿,M1和M2短暂关闭可执行读操作。M1、M2和平衡管都在Pre1_BL信号控制下工作。

Pre1_BL需在数据线与位线之间的开关管打开时关闭,不影响数据的读操作。Pre1_BL信号受到数据线与位线的开关管控制信号A的约束,图6的结构即可避免Pre1_BL与A的时序冲突,在A有效时,Pre1_BL无效,且当A关闭时,Pre1_BL延迟开启。

而M3和M4管则由Pre2_BL信号控制,Pre2_BL由BRAM全局信号ENA、CLK和WE一起控制。由于BRAM在进行写操作时,也可镜像地输出写入的数据,即也做了读操作。为了更好地在写入时也读出,且满足频率要求,有必要增加这一充电管。

图6 位线充电电路

图7 Pre1_BL信号产生电路

4 灵敏放大器

由于位线的寄生负载大,SRAM存储单元的读出信号小,速度低,为了能有效的读出数据,同时降低由于位线充放电造成的过大延迟及功耗,设计时使存储单元的两条位线上的电压变化幅度远远低于电源电压,因此需要在位线和输出驱动之间添加灵敏放大器,将两条位线上的信号快速的放大的相应的电平[7]。灵敏放大器根据工作模式可以分为电压式和电流式。电压式灵敏放大器又主要有差分型、交叉耦合型、锁存器型等几类[8]。根据设计需要,在此采用了锁存器型灵敏放大器类似的结构,如图8所示。放大器的主体由 P0,P1,N0,N1 组成,当 EN=1,EN_ADD=1时,电路处于工作状态,BL和BLN端的信号经过地址选通后输入,信号被迅速放大,当反相器转换到稳定态时可使静态功耗为零。当EN=0,EN_ADD=0时,电路不工作,位线被预充管拉至高阻态,静态功耗也为零。这里的EN_ADD也是地址信号,实际上是对地址信号进行了一次选择。

图8 灵敏放大器

5 结束语

如今系统越来越高级,数字电路也高度集成,存储器也越来越多地应用于嵌入式芯片中。FPGA的应用和功能也越来越强大,这都对FPGA内嵌的存储资源提出了更高的要求。设计一种应用于FPGA的嵌入式存储器结构,符合一般双端口SRAM的功能,且具有FPGA特有可配置性,使FPGA应用中的灵活性得到了提高。

[1] 邹德财,吴海涛,李云.Xilinx的FPGA芯片架构剖析.航空计算技术,2007,37(2):81-83.Zou DeCai,Wu HaiTao,Li Yun.Analysis of XILINX FPGA Chip Structure.Aeronautical Computing Technique,2007,37(2):81-83.

[2] Ashok K.sharma.Advanced semiconductor Memories Architectures,Design,and Application [M].Beijing:Publishing House of Electronics industry,2005:50-68.

[3] 王睿.FPGA中的BRAM设计研究[D].成都:电子科技大学,2009.Wang Rui.Research on BRAM design in FPGA[D].CHENGDU:University of Electronic Science and Technology of China,2009.

[4] 石乔林.高速低功耗双端口CMOS SRAM的设计 [D].无锡:江南大学,2006.Shi QiaoLin.Design of High-speed and Low-Power dual port CMOS SRAM[D].Wuxi:Jiangnan University,2006.

[5] Jinn-Shyan Wang.Lower-Power Embedded SRAM with the Current-Mode Write Technique[J].IEEE Solid-State Circuits,2000:85-130.

[6] BS.Amrutur,MA Horowitz.Fast Low-Power Decoders for RAMs[J].IEEE Journal of Solid-State Circuits,2001,36(10)1496-1520.

[7] T seki,E Itoh.A 6-ns 1-Mb CMOS SRAM with Latched Sense Amplifier[J].IEEE Solid-State Circuits,1993,28(4):479-480.

[8] Chun-LungHsu,Mean-Ho.High-speed sense amplifier for SRAM applications[J].The 2004 IEEE Asia-Pacific Conference on Circuits and Systems.2004:577-590.

《微处理机》2018年度征订通知

《微处理机》期刊由中国电子科技集团公司第四十七研究所主办,是经国家科委批准的国家级工程技术刊物,并被《中国科技论文统计与分析》和《中国电子科技文献数据库》以及Internet网上的重要源数据检索刊物之一。自办,国内外公开发行。

主要刊载国内外最新的各种微处理器、微控制器、微机外围电路、专用电路的发展动态、设计、测试、开发与应用和微机系统与微机软件的开发以及微机在各领域中的应用等方面的科技论文。

本刊系双月刊,大16开本96页。全年定价:90.00元。

用户可直接向天津半导体杂志社订购(代号:8385),有漏订的用户可直接在我处订阅。

通讯地址:沈阳市皇姑区陵园街20号《微处理机》编辑部 邮编:110032

开 户:中国电子科技集团公司第四十七研究所

账 号:2100 1423 6010 5000 5715

开户银行:建行三台子支行

Design of Embedded Block SRAM for FPGA

Liu Yikai
(The 47th Research Institute of China Electronic Technology Group Corporation,Shenyang 110032,China)

Embedded SRAM is the most common type of memory for a logic chip.For the application of less than 2Mb,the embedded SRAM can be considered firstly thanks to its better cost efficiency.FPGA has been widely used because of its convenience.The block SRAM embedded in FPGA greatly expands the scope and flexibility of the application.This paper designs an embedded block SRAM circuit used in SRAM-base FPGA.The Block SRAM can be used as normal dual port SRAM,and also can be configured according to a variety of operating modes.The block SRAM,composed of model control circuit,coding circuit,precharge circuit and balance circuit and sensitive amplifier circuit,is analyzed and optimized as well.

Integrated circuits;FPGA;Embedded;SRAM;Sensitive amplifier;Configurable

10.3969/j.issn.1002-2279.2017.03.005

TN43

A

1002-2279-(2017)03-0022-04

刘义凯(1984-),男,四川省宜宾市人,工程师,主研方向:数字集成电路设计。

2016-07-19

猜你喜欢

存储单元位线译码
一种28 nm工艺下抗单粒子翻转SRAM的12T存储单元设计
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
一种新型密集堆垛式仓储系统设计
巧构中位线解题
构造三角形中位线,巧证几何题
浮点类型有效位数计算与应用分析
巧用三角形中位线定理解题
数据在计算机内存中的存储形式及实验验证
从霍尔的编码译码理论看弹幕的译码