基于FPGA的嵌入式块SRAM的设计

发布者:清新家园最新更新时间:2011-03-31 来源: elecfans关键字:FPGA  SRAM 手机看文章 扫描二维码
随时随地手机看文章
    1 引言

  对于逻辑芯片的嵌入存储器来说,嵌入式SRAM 是最常用的一种,其典型的应用包括片上缓冲器、高速缓冲存储器、寄存器堆等。除非用到某些特殊的结构,标准的六管单元(6T)SRAM 对于逻辑工艺有着很好的兼容性。对于小于2Mb 存储器的应用,嵌入式SRAM 可能有更好的成本效率并通常首先考虑。

  Xilinx 公司SRAM型FPGA 主要由配置存储器、布线资源、可编程I/O、可编程逻辑单元CLB、块存储器BRAM 和数字时钟管理模块组成。它包含了分布式RAM,位于CLB中。每个CLB包含了16 × 1bit的SRAM结构。BRAM的加入既增加了RAM的容量,也可构成大型LUT,更完善了CLB 的功能。

  2 BRAM块划分

  现代数字系统对存储器容量的存储速率要求越来越高,读访问时间就是一个重要参数,它是从地址信号的出现到存储在该地址上的数据在输出端出现的时间延迟。提高BRAM 读取速度的一个有效办法是减小位线和字线上的总负载电容,这可以通过减少连接在同一字线和位线上的存储单元数目来实现,即采用存储阵列分块技术。本电路采用设计多个BRAM的方法,每个BRAM都有自己的译码电路、敏感放大器和数据通道,各个BRAM 独立工作,每个BRAM 的读取时间得到了大大提高。

  3 BRAM块设计

  3.1 BRAM与布线资源接口

  FPGA 中每个BRAM块都嵌在内部连线结构中,与BRAM 直接相连的有RAMLINE、VLONG 和GLOBAL。左边32根RAMLINE提供BRAM的地址输入,也可以提供控制信号(CLK、WE、ENA、RST)的输入。左边两组16 根RAMLINE 一起布线提供BRAM双端口的数据输入,右边两组RAMLINE提供BRAM双端口数据输出通道。4 根GLOBLE全局时钟线优化用作时钟输入,提供较短的延迟和最小的失真。VLONG也被专门用作BRAM中WE、ENA、RST的控制输入。RAMLINE 为BRAM专有布线,如从水平方向的SINGLE、UNIHEX、BIHEX通过可编程开关矩阵PSM 把信号输送到RAMLINE 上,进而送到BRAM 用作地址、数据。而BRAM 的输出也通过RAMLINE最终送到HLONG上。

  

 

  图1 BRAM周围布线

  相邻BRAM 的RAMLINE 也可通过三态门连到下一级的RAMLINE,于是整列中的BRAM 可共享RAMLINE 上的数据。每个BRAM与FPGA其他电路的相连主要通过水平方向的4 组主要互连线完成。

  3.2 BRAM内部设计

  BRAM为真正的双端口RAM,两个端口完全独立,每个端口可以配置为读写端口,并可以把BRAM配置成特定的数据宽度。

  3.2.1 可配置数据位宽实现方法

  配置逻辑中三位控制信号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 控制数据如何分配到位线上。这当中* 根位线实行了分片,每片4 根:

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

  S_2有效:DI《0∶1》可分配到《0∶1》、《2∶3》、《4∶5》?任何相邻两片上,每片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.2.2 译码控制

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

  

 

  图2 64 选1 行译码

[page]

 

    列译码相对较复杂,首先将列地址分为两组,一组用于片选译,一组用于片内译码。片选地址由ADDR《11∶8》组成,片内译码由ADDR《7∶6》组成。

  片选地址译码由地址和地址使能组成,而地址使能则是由WIDTH_SEL《0∶2》配置决定的。

  

 

  图3 片选译码

  译码所得的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 片全选。经过了片选的一级译码,列译码还需经过第二级的片内译码。

  

 

  图4 片内译码

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

  3.2.3 位线充电电路

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

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

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

  

 

  图5 Pre1_BL 信号产生电路

  

 

  图6 位线充电电路

  4 BRAM应用

  作为随机存取存储器,BRAM 除了实现一般的存储器功能外,还可实现不同数据宽度的存储,且可用作ROM,以实现组合逻辑函数。当初始化了BRAM后,一组地址输入就对应了一组数据的输出,根据数据和地址的对应关系,就能实现一定的函数功能,BRAM 之所以能实现函数逻辑,原因是它拥有足够的存储单元,可以把逻辑函数所有可能的结果预先存入到存储单元中。如实现4 × 4 二进制乘法器:

  

 

  即由地址来查找数据,如同LUT。在FPGA 中,还可用BRAM来实现FIFO中的存储体模块,CLB实现控制逻辑,设计紧凑,小巧灵活。

  

 

  图7 4 位乘法器

  5 结论

  如今系统越来越高级,数字电路也高度集成,存储器也越来越多地应用于嵌入式芯片中。本文设计了一种应用于FPGA 的嵌入式存储器结构,符合一般的双端SRAM 功能,且具有FPGA 功能块的可配置选择,灵活性很高。

关键字:FPGA  SRAM 引用地址:基于FPGA的嵌入式块SRAM的设计

上一篇:SoC FPGA上的策略考虑
下一篇:采样率变换器的多相表示结构FPGA实现

推荐阅读最新更新时间:2024-05-02 21:19

FPGA&MSP430实现等精度频率计
前段时间依次实现了FPGA的等精度频率计和FPGA与430的通信测试。 FPGA频率计:Verilog设计练习 基于FPGA的等精度频率计_Krism0912的博客-CSDN博客_用verilog设计等精度频率计 FPGA与430通信测试: FPGA与MSP430G2553通信 UART串口操作_Krism0912的博客-CSDN博客 由于FPGA中对数据运算过于麻烦,所以此次将上述两个成果进行了整合,将FPGA的数据通过串口传至MSP430后再进行运算。 在整合过程中碰到的一个百思不得其解的问题:串口测试中发现传输过去的Nx的值总是理论值的2倍。花了几个小时才最终弄清楚原因,下面稍做记录。 错误出现在FP
[单片机]
<font color='red'>FPGA</font>&MSP430实现等精度频率计
嵌入式脉象采集仪电路设计
脉诊作为中医最重要的一种诊断方式,具有模糊性、不确定性的特点,是近年来中医现代化研究中的热点。随着电子、计算机技术的快速进步,将嵌入式技术、 FPGA技术、IP核技术结合在一起,融合电子技术、信号处理方法等学科知识,在中医基本理论的指导下,设计脉象诊断设备,构建一个灵活高效,可扩展性强,可靠性高,功耗低,可便携的脉象采集仪具有重要的现实意义和良好的市场前景。 1 仪器总体设计 嵌入式脉象采集仪的前期设计目标是脉搏信号的采集、存储、显示、简单处理、通信等,后期要对所采集到的信号处理,得到脉象特征,对病人做出诊断。在 FPGA的选型时,不但要考虑当前功能是否够用,价格适中,而且要考虑产品的升级换代,所以设计的系统选择Alt-e
[测试测量]
嵌入式脉象采集仪电路设计
FPGA嵌入式系统开发过程中的XBD文件设计
  随着可编程逻辑器件的不断进步和发展,FPGA在嵌入式系统中发挥着越来越重要的作用,已经开始被广泛应用于通信、航天、医疗、工控等领域。Xilinx公司作为全球最大的可编程逻辑器件生产厂商,为嵌入式系统设计人员提供了比较全面的解决方案。Xilinx的嵌入式系统开发环境EDK,提供了一种通用的完全集成的硬件和软件开发环境,使设计人员可以利用单个开发环境快速配置针对PowerPC硬处理器或Microblaze软处理器内核的平台。在EDK开发环境下,利用用户向导可以准确快速地创建一个新的嵌入式系统,而在这一过程中,XBD文件决定了系统的硬件平台描述文件MHS以及约束文件UCF的正确与否,在构建系统过程中起着至关重要的作用。   1
[嵌入式]
<font color='red'>FPGA</font>嵌入式系统开发过程中的XBD文件设计
验证FPGA设计:模拟,仿真,还是碰运气?
现在的许多FPGA用户工作中都要用到模拟。但是,什么时候才能不用模拟,直接将设计放到芯片里?    要点   * 大型FPGA设计中需要采取类似于 ASIC设计的流程。   * 在验证流程中,有必要将模拟和基于FPGA的仿真混合使用。   * 对于模拟和仿真的混合尚无公认的指导性方法。   * 通过简短的调查,提出了一种可为大家接受的验证先进FPGA设计的建议方法。   曾几何时,要验证 FPGA 的逻辑设计,可以先编译、写入,然后按下评估板上的复位按钮。但是,随着FPGA规模的增大,这种被Xilinx公司软件产品营销总监Hitesh Patel 称为“blow and go”(逃生法)的验证方式已不能满足要求。要做出
[嵌入式]
基于FPGA的DDS调频信号的研究与实现
1 引言   直接数字频率合成器(DDS)技术,具有频率切换速度快,很容易提高频率分辨率、对硬件要求低、可编程全数字化便于单片集成、有利于降低成本、提高可靠性并便于生产等优点。目前各大芯片制造厂商都相继推出采用先进CMOS工艺生产的高性能和多功能的DDS芯片,专用DDS芯片采用了特定工艺,内部数字信号抖动很小,输出信号的质量高。然而在某些场合,由于专用的DDS芯片的控制方式是固定的,故在工作方式、频率控制等方面与系统的要求差距很大,这时如果用高性能的FPGA器件设计符合自己需要的DDS电路就是一个很好的解决方法,它的可重配置性结构能方便的实现各种复杂的调制功能,具有很好的实用性和灵活性。 2DDS调频信号发生器框图设计
[嵌入式]
解析基于FPGA的智能控制器设计及测试方法
  1 引 言   随着市场需求的增长,超大规模集成电路的集成度和工艺水平不断提高,在一个芯片上完成系统级的设计已成为可能。FPGA固有的并行运算处理能力,使得它能够提供各种数字化所需要的大量复杂运算,适合于设计一些对处理速度和实时性要求较高的智能控制器。近几年,基于VHDL描述,FPGA实现的控制器设计研究比较活跃,如Torralba等人完成了4输入、12个隶属度、64条规则的模糊逻辑控制器的FPGA实现 ,Cirstea等人基于FPGA设计模糊控制器,成功的用于变速器的控制 。另外,由于FPGA设计的灵活性和通用性,使得基于FPGA的控制器开发效率高,成本低,上市时间短。   由于FPGA在智能控制器方面的大量使用,设计后的测试
[嵌入式]
基于FPGA的生物芯片扫描仪的位置检测
引言 --- 生物芯片是20世纪末随 人类基因组计划 的研究和发展而产生的一项高新技术,是人们高效地大规模获取生物信息的有效手段。目前大部分生物芯片采用荧光染料标记待测样品分子。生物芯片扫描仪用激光激发荧光染料,通过对激发点的成像,检测一个点;结合生物芯片X-Y二维精密扫描台上移动,实现对整片的扫描。 X-Y二维扫描台的位置检测精度直接影响着扫描分辨率 生物芯片扫描仪性能的关键参数。基于传统的数字电路的生物芯片扫描仪中X-Y二维扫描台的位置检测电路存在计数误差和误清零问题,本文以基于FPGA设计的位置检测电路来解决。以FPGA芯片代替传统的数字电路,不仅可提高系统的集成度和可靠性,而且FPGA最高工作频率已超过200MHz,通
[测试测量]
基于<font color='red'>FPGA</font>的生物芯片扫描仪的位置检测
内容可导址存储器的FPGA设计与应用
    摘要: 内容可寻址存储器(CAM)是一种快速匹配存储器件,在通信、雷达等许多领域有着广泛的应用。在介绍CAM基本原理的基础上,提出了以两类新型FPGA实现CAM的设计方法。例举了一种基于CAM实现关联比较器及其在雷达截获系统信号处理领域的重要作用。     关键词: FPGA 内容可寻址存储器(CAM) APEX系列 VIRTEX系列 关联比较器 内容可寻址存储器(CAM)是一种新型的存储器,它的高速、并行、易扩展和实现的灵活性使它一出现就得到人们的重视。CAM基于内容寻址,通过硬件电路实现快速匹配。CAM的并行处理特性使得它在数据分选领域倍受青睐,被广泛应用于以太网网址搜寻、数据压缩、模式识别
[缓冲存储]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved