FPGA设计秘笈

FPGA设计秘笈

ID:47062460

大小:315.00 KB

页数:11页

时间:2019-07-12

FPGA设计秘笈_第1页
FPGA设计秘笈_第2页
FPGA设计秘笈_第3页
FPGA设计秘笈_第4页
FPGA设计秘笈_第5页
资源描述:

《FPGA设计秘笈》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第十章存储器一、前言如果我们考虑使用同步动态随机存取存储器(SDRAM),那么针对这种存储器我们需考虑的主要方面有:1.这种类型的动态随机存取存储器(DRAM)依赖于存储数据关口的电容三极管;2.DRAM比静态随机存取存储器(SRAM)更加兼容;3.DRAM不能被合成,因此需要一个单独的DRAM芯片;4.SDRAM要求有一个同步时钟,这个时钟需与其余的硬件系统相一致,并且是由微处理器进行运作5.DRAM数据必须被刷新,因为DRAM是储存电荷且在一定时间后会衰变;6.DRAM较SRAM更慢些。SRAM可以看作是类似于只读存储器(ROM)芯片,它还有其他不同的特征:1.存储单元格是以标准锁存

2、器为基准;2.SRAM是快捷的存储方式。3.SRAM兼容性不如DRAM(或SDRAM);4.SRAM可以合成一个现场可编程门阵列(FPGA),因此它是小型、快速寄存器或内存块的最佳选择。SRAM从本质上来说是不同步的,但是可以修改为同步运转(如SDRAM的同步相当于DRAM),这通常被称为同步RAM。这时候,Flash存储器非常有用,尽管它的运作不同于其他存储器那样久远,仅仅是因为它易于使用且在FPGA开发板上经常用得到。Flash存储器本质上是电可擦只读存储器(EEPROM)的一种形式,可以用作是一种永久的RAM。只所以说是永久性的,是因为在Flash存储器中,存储装置即使在断电时仍能

3、保存数据,因此它经常用作一种ROM,因为它可以用于存储FPGA程序,也可以用作RAM(动态)存储当前数据,因此普遍用于FPGA系统。二、用硬件描述语言(VHDL)对存储器进行建模当用VHDL对存储器进行建模时应非常小心,因为某些存储器不能合成,如果使用模块,即使是离片时,也必须能体现出正确的实际装置物理特征。这尤其适用于访问次数和时序扰乱情况。当时序扰乱时,所获得的数据最好的情况也许是可疑的,最坏的情况是完全无效的。设计师可以发现自己处于一个令人反感的处境,即仿真模块运行良好,而实际硬件完全不起作用。在此章节中,我们所使用的VHDL是在任何模型中都不会出现任何物理性延时,如果这些模块用于

4、现实系统时,则会增加延时。三、只读存储器ROM本质上是一套在存储寄存器中预先定义的数值。这种存储器有2种定义,第一种是存储区数量,第二种是位元数量。比如,假如存储器各自有16个存储区和8个位元,那么这个存储器就可以定义为16×8ROM。基本的ROM有一个信息输入,可以存取地址的定义,还有一个信息输出,是一个存放数据的逻辑载体。设想在VHDL中的一个简单的ROM行为模块实体为:ENTITYROM16x8ISPORT(address:ININTEGERRANGE0TO15;dout:OUTstd_logic_vector(7DOWNTO0));ENDENTITYROM16x8;由此可以看到,

5、地址已被定义为一个整数,但是数值范围局限于ROM范围中。ROM的架构定义为一个可以直接获取的固定数组元素。因此,一个带有一套样板数据元素的ROM范例可以定义如下:ARCHITECTUREexampleOFrom16x8ISTYPEromdataISARRAY(0TO15)OFstd_logic_vector(7DOWNTO0);CONSTANTromvals:romdata:=(“00000000”,“01010011”,“01110010”,“01101100”,“01110101”,“11010111”,“11011111”,“00111110”,“11101100”,“100001

6、10”,“11111001”,“00111001”,“01010101”,“11110111”,“10111111”,“11101101”);BEGINdata<=romvals(address);ENDARCHITECTUREexample;如果我们采取这个范例,我们首先需要声明这个ROM是在一个VHDL测试台上的,然后制定地址使用一个整数信号。以下为一个testbench范例:libraryieee;useieee.std_logic_1164.all;entitytestromisendentitytestrom;architecturetestoftestromissignala

7、ddress:integer:=0;signaldata:std_logic_vector(7downto0);beginrom16x8:entitywork.rom16x8(example)portmap(address,data);endarchitecturetest;需注意的是IEEE库中,std_logic_vector型号要求是std_logic_1164,数值取决于所选择的地址。四、随机存取存储器一个DRAM组件有一个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。