FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH

目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM)、双端口RAM(DPRAM,Double Ports RAM)、伪双端口RAM(Pseudo DPRAM)、CAM(Content Addressable Memory)、FIFO等常用存储结构。FPGA中其实并没有专用的ROM硬件资源,实现ROM的思路是对RAM赋予初值,并保持该初值。所谓CAM,即内容地址存储器。CAM这种存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM是一个根据地址读、写数据的存储单元,而CAM和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。CAM的应用也比较广泛,比如在路由器中的地址交换表等。
ROM、RAM、DRAM、SRAM、FLASH.....的区别?
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。
举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。
一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。
SRAM,DRAM,SDRAM区别
SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。这一点与动态RAM(DRAM)不同,DRAM需要进行周期性的刷新操作。然后,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。“随机访问”是指存储器的内容可以以任何顺序访问,而不管前一次访问的是哪一个位置。
SRAM中的每一位均存储在四个晶体管当中,这四个晶体管组成了两个交叉耦合反向器。这个存储单元具有两个稳定状态,通常表示为0和1。另外还需要两个访问晶体管用于控制读或写操作过程中存储单元的访问。因此,一个存储位通常需要六个MOSFET。对称的电路结构使得SRAM的访问速度要快于DRAM。SRAM比DRAM访问速度快的另外一个原因是SRAM可以一次接收所有的地址位,而DRAM则使用行地址和列地址复用的结构。
SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。
从晶体管的类型分,SRAM可以分为双极性与CMOS两种。从功能上分,SRAM可以分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。
表3‑1 几种常见存储的表格总结
存储器
功能
寻址方式
掉电后
说明
随机存取存储器(RAM)
读、写
随机寻址
数据丢失
只读存储器(ROM)
随机寻址
数据不丢失
工作前写入数据
闪存(Flash Memory)
读、写
随机寻址
数据不丢失
先进先出存储器(FIFO)
读、写
顺序寻址
数据丢失
先进后出存储器(FILO)
读、写
顺序寻址
数据丢失
选择存储器需要考虑的设计参数有:包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。
关于LPDDR有:DDR=Double Data Rate双倍速率同步动态随机存储器。严格的说DDR应该叫DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
关于SRAM有:
话说SRAM(静态),DRAM(动态),SDRAM(同步(Synchronous)DRAM)
SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。这一点与动态RAM(DRAM)不同,DRAM需要进行周期性的刷新操作。然后,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。“随机访问”是指存储器的内容可以以任何顺序访问,而不管前一次访问的是哪一个位置。
SRAM中的每一位均存储在四个晶体管当中,这四个晶体管组成了两个交叉耦合反向器。这个存储单元具有两个稳定状态,通常表示为0和1。另外还需要两个访问晶体管用于控制读或写操作过程中存储单元的访问。因此,一个存储位通常需要六个MOSFET。对称的电路结构使得SRAM的访问速度要快于DRAM。SRAM比DRAM访问速度快的另外一个原因是SRAM可以一次接收所有的地址位,而DRAM则使用行地址和列地址复用的结构。
SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。
从晶体管的类型分,SRAM可以分为双极性与CMOS两种。从功能上分,SRAM可以分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关
关于两者的应用方面:
Static RAM(SRAM),指的是一种具有静止时存取功能,在不需要刷新电路的情况下依然可以保持内部存储数据的存储芯片。
一般来说有两个主要的规格:
1. 一种是放置于单片机CPU与主存储之间的高速缓存,有两种规格,一种是会固定在电路主板上的高速缓存,另一种是插入电路卡槽的COAST扩充用的高速缓存。
2. 第二种是内置于CMOS芯片146818的电路中,内部有128字节小容量的SRAM存储芯片,用于存储我们设置的配置数据,也有用于加速单片机CPU内部数据的传递,从80486CPU开始,基本上CPU内部会将SRAM设计进去作为高速缓存,SRAM存储芯片在读取数据上速度比较快,不需要刷新电路,目前在市场上,价格相对其他的DRAM还是高了点,主要用于高要求的行业中的应用,
基本特点
1.速度相对快,不需要刷新电路,可以提高整体工作效率。
2.SRAM集成度低,功耗高,相同的容量的情况下比DRAM等存储芯片体积大。
SRAM存储的应用
1.CPU与主存之间的高速缓存。
2.CPU内部的L1/L2或外部的L2高速缓存。
3.CPU外部扩充用的COAST高速缓存。
4.CMOS 146818芯片。
同步SRAM存储芯片在传统上的应用是搜索引擎,用于对算法的实现,长时间来这也是SRAM存储芯片在网络的主要作用。跟随着新的存储技术的出现,设计者为SRAM存储芯片找到新的应用领域。
现在对路由器跟交换机的要求已经不仅仅限制于FIB搜索,计数器需要对接收服务包的信息包数量进行跟踪,并从中获取统计数据从而解决账单编制问题,并通过统计来不间断监视网络,并完成对问题的检测及判定,并随着每个信息包处理量的递增,就必然采取包缓冲器来提高处理能力,除了上面提及到的以外,随着系统中存储器资源的增加,动态存储分配也是必需的,路由器或者交换机的这些附加功能正在重新定义这网络系统的设计。
具有更多新功能的网络系统
并随着IPv6和VRF的快速普及,对更宽、更深、更快和更高效系统的需求变得更为迫切。系统设计者必须能以最低的成本来满足网络系统的所有度量标准。这时,之前的同步SRAM已经难以满足需求了。所以这些功能需要借助DDR或QDR SRAM等速度更快、带宽更高的SRAM存储芯片来实现。
QDR 与 DDR SRAM
在由瑞萨、赛普拉斯IDT、NEC和三星公司组成的QDR协会的合作下开发出了QDR SRAM存储芯片,目的通过把SRAM存储芯片性能提升为原先的4倍用于满足那些不仅需要标准ZBT或NoBL SRAM的低延迟和满周期利用率,并还需要极大幅度提高工作频率的系统对带宽的要求。QDR SRAM存储芯片具有单独的读和写端口,设计里在每个数据引脚上以双倍数据速率各自独立地工作,因此能在一个时钟周期中传输4个数据字,因此4倍数据速率而得名。设计上采用分离的读/写端口从根本尚消除了SRAM与存储控制器之间对总线争用的冲突,这就是传统的公用I/O器件的问题所在。因此QDRII SRAM被称呼为回波时钟的源同步时钟,它们与数据输出由同一道生成。QDR SRAM采用了HSTL I/O标准,从而实现高速缓存操作。
QDR SRAM主要的应用在于面向那些需要在读和写操作之间进行转换,而DDR SRAM主主要的应用在于面向需要进行数据流式处理,此时,读和写操作之间的近期平衡为百分百的读操作或百分百的写操作。但在这种情况下,有一根QDR SRAM总线在百分之五十的时间里没被使用过。同时其它总线也是可能具有不平衡的近期读/写比例。这是督促人们对DDR公用I/O SRAM存储芯片开发的主要因素,在这种器件中,输入和输出数据端共同使用同一根总线。在从读操作向写操作转换的过程中,需要总线转向周期,并使得可用带宽减少。因此,对于某些系统来说,这必然产生了比QDR架构的平均总线利用率更优,控制信号几乎极少,而且又与QDR器件控制信号有些不同的地方。
SRAM、MRAM、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)各类存储器之间的区别和联系:
储存有“储存资源“ 还有“储存方式”之分。描述语言可用的储存资源有寄存器还有片上内存(ROM RAM),然而变量与数组也是最简单也是最基础的“储存方式”。基于这些 ... 事实上,描述语言可以描述各种各样的“储存方式”。两者有什么区别,具体可见后面章节介绍。
(0)

相关推荐

  • ram在单片机里有什么样的作用?

    单片机就是个小计算机,大计算机少不了的数据存储系统,单片机一样有,而且往往和CPU集成在一起,更加显得小巧灵活.直到90年代初,国内容易得到的单片机就是8031:不带存储器的芯片,要想工作,还必须外加 ...

  • 凔海笔记之FPGA(十一):SDRAM

    对于SDRAM,就以以下四个方面来写下自己的笔记吧 1.初探存储器 2.对SDRAM的认识 3.Verilog综合的SDRAM单字节读写时序 4.多字节读写和页读写 嗯,就这样 下图这个,学过数电的都 ...

  • 【博文精选】静态SRAM芯片工作原理

    下面谈谈当存储字节的过程是怎样的:下面的示意图显示的也仅仅是最简单状态下的情况,当内存条上仅剩一个RAM芯片的情况.对于X86处理器,它通过地址总线发出一个具有22位二进制数字的地址编码--其中11位 ...

  • FPGA中利用ICAP原语实现Multiboot功能

    希望亲爱的读者朋友 阅读10s 多多支持,感谢! FPGA的MultiBoot功能可以支持远程动态更新bitstream images,实现bitstream images的实时切换.在MultiBo ...

  • (Xilinx)FPGA中LVDS差分高速传输的实现

    低压差分传送技术是基于低压差分信号(Low Volt-agc Differential signaling)的传送技术,从一个电路板系统内的高速信号传送到不同电路系统之间的快速数据传送都可以应用低压差 ...

  • 英特尔新技术将64Gsps的ADC和DAC封装到FPGA中

    该技术将FPGA芯片与高速模拟芯片相结合,ADC和DAC以64Gsps的速度运行.由于模拟采样速率快,这项技术为雷达,测试,测量以及无线通信系统提供直接RF功能的革命性一步. 英特尔首款采用该技术的产 ...

  • FPGA中的实时数字辐射测量–验证技术联盟

    来源:https://cvt.engin.umich.edu/events/cvt-workshop-2017/#标签:Sara Pozzi,CVT,验证,技术,联盟收藏:株野作者:萨拉·A·波兹教授 ...

  • FPGA|FPGA中的ASIC门数已达5000万个,将加速和简化大型SoC开发

    观点来源:semiwiki的Daniel Nenni 美国Xilinx公司宣布推出基于UltraScale+ VU19P FPGA的新FPGA原型验证平台,并展示新FPGA将如何加速亿门FPGA原型验 ...

  • 【原创博文】在FPGA中使用for循环一定浪费资源吗?

    渐渐地,发现自己已经习惯于发现细节,喜欢打破常规,真的非常喜欢这种feel. 相信很多人在书上或者博文上都有提出"在FPGA中使用for语句是很占用资源的"的观点,特权同学也不例外 ...

  • 【图说新闻】FPGA中六种异步逻辑转化方法

    FPGA设计中不建议使用电路: 1.不建议使用组合逻辑时钟或门控时钟.组合逻辑和门控时钟很容易产生毛刺,用组合逻辑的输出作为时钟很容易使系统产生误动作. 2. 不建议使用行波时钟.行波记数器虽然原理简 ...

  • 【图说新闻】FPGA中10大重要时序分析参数

    补充 静态时序分析(STA)是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出 ...

  • 【精品博文】lvds技术及其在FPGA中的应用

    目前电路中数字视频使用Camera Link接口传输,之前的方案是FPGA输出并行数据信号+同步控制信号,再由串化芯片DS90CR287进行并转串处理,处理完通过Camera Link接口输出,采集卡 ...