ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:114.50KB ,
资源ID:3221055      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3221055.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Xilinx内嵌快存储器的使用.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

Xilinx内嵌快存储器的使用.doc

1、Xilinx 公司提供了大量的存储器资源,包括了内嵌的块存储器、分布式存储器以及 16 位的移位寄存器。利用这些资源可以生成深度、位宽可配置的 RAM、 ROM、FIFO 以及移位寄存器等存储逻辑。其中,块存储器是硬件存储器,不占用任何逻辑资源,其余两类都是 Xilinx 专有的存储结构,由 FPGA 芯片的查找表和触发器资源构建的,每个查找表可构成 16 1 位的分布式存储器或移位寄存器。一般来讲,块存储器是宝贵的资源,通常用于大数据量的应用场合,而其余两类用于小数据量环境。1块存储器的组成和功能介绍在 Xilinx FPGA 中,块 RAM 是按照列来排列的,这样保证了每个 CLB 单元周

2、围都有比较接近的块 RAM 用于存储和交换数据。与块 RAM 接近的是硬核乘加单元,这样不仅有利于提高乘法的运算速度,还能形成微处理器的雏形,在数字信号处理领域非常实用。例如,在 Spartan 3E 系列芯片中,块 RAM 分布于整个芯片的边缘,其外部一般有两列 CLB,如图 4-120 所示,可直接对输入数据进行大规模缓存以及数据同步操作,便于实现各种逻辑操作。图 4-120 Spartan3E 系统芯片中块 RAM 的分布图块 RAM 几乎是 FPGA 器件中除了逻辑资源之外用得最多的功能块,Xilinx 的主流 FPGA 芯片内部都集成了数量不等的块 RAM 硬核资源,速度可以达到数百

3、兆赫兹,不会占用额外的 CLB 资源,而且可以在 ISE 环境的 IP 核生成器中灵活地对 RAM 进行配置,构成单端口 RAM、简单双口 RAM、真正双口RAM、ROM(在 RAM 中存入初值)和 FIFO 等应用模式,如图 4-121 所示。同时,还可以将多个块 RAM通过同步端口连接起来构成容量更大的块 RAM。图 4-121 块 RAM 组合操作示意图1)单端口 RAM 模式单端口 RAM 的模型如图 4-122 所示,只有一个时钟源 CLK,WE 为写使能信号, EN 为单口 RAM 使能信号,SSR 为清零信号,ADDR 为地址信号,DI 和 DO 分别为写入和读出数据信号。图 4

4、-122 Xilinx 单端块 RAM 的示意模型单端口 RAM 模式支持非同时的读写操作。同时每个块 RAM 可以被分为两部分,分别实现两个独立的单端口 RAM。需要注意的是,当要实现两个独立的单端口 RAM 模块时,首先要保证每个模块所占用的存储空间小于块 RAM 存储空间的 1/2。在单端口 RAM 配置中,输出只在 read-during-write 模式有效,即只有在写操作有效时,写入到 RAM 的数据才能被读出。当输出寄存器被旁路时,新数据在其被写入时的时钟上升沿有效。2)简单的双端口 RAM简单双端口 RAM 模型如图 4-123 所示,图中上边的端口只写,下边的端口只读,因此这

5、种 RAM 也被称为伪双端口 RAM(Pseudo Dual Port RAM)。这种简单双端口 RAM 模式也支持同时的读写操作。图 4-123 Xilinx 简单双端口块 RAM 的示意模型块 RAM 支持不同的端口宽度设置,允许读端口宽度与写端口宽度不同。这一特性有着广泛地应用,例如:不同总线宽度的并串转换器等。在简单双端口 RAM 模式中,块 RAM 具有一个写使能信号 wren 和一个读使能信号 rden,当 rden 为高电平时,读操作有效。当读使能信号无效时,当前数据被保存在输出端口。当读操作和写操作同时对同一个地址单元时,简单双口 RAM 的输出或者是不确定值,或者是存储在此地

6、址单元的原来的数据。3)真正双端口 RAM 模式真正双端口 RAM 模型如图 4-124 所示,图中上边的端口 A 和下边的端口 B 都支持读写操作,WEA、WEB信号为高时进行写操作,低为读操作。同时它支持两个端口读写操作的任何组合:两个同时读操作、两个端口同时写操作或者在两个不同的时钟下一个端口执行写操作,另一个端口执行读操作。图 4-124 Xilinx 真正双端口块 RAM 的示意模型真正双端口 RAM 模式在很多应用中可以增加存储带宽。例如,在包含嵌入式处理器 MiroBlaze 和 DMA 控制器系统中,采用真正双端口 RAM 模式会很方便;相反,如果在这样的一个系统中,采用简单双

7、端口RAM 模式,当处理器和 DMA 控制器同时访问 RAM 时,就会出现问题。真正双端口 RAM 模式支持处理器和 DMA 控制器同时访问,这个特性避免了采用仲裁的麻烦,同时极大地提高了系统的带宽。一般来讲,在单个块 RAM 实现的真正双端口 RAM 模式中,能达到的最宽数据位为 36 比特*512,但可以采用级联多个块 RAM 的方式实现更宽数据位的双端口 RAM。当两个端口同时向同一个地址单元写入数据时,写冲突将会发生,这样存入该地址单元的信息将是未知的。要实现有效地向同一个地址单元写入数据,A 端口和 B 端口时钟上升沿的到来之间必须满足一个最小写周期时间间隔。因为在写时钟的下降沿,数

8、据被写入块 RAM 中,所以 A 端口时钟的上升沿要比 B 端口时钟的上升沿晚到来 1/2 个最小写时钟周期,如果不满足这个时间要求,则存入此地址单元的数据无效。4)ROM 模式块 RAM 还可以配置成 ROM,可以使用存储器初始化文件(.coe)对 ROM 进行初始化,在上电后使其内部的内容保持不变,即实现了 ROM 功能。5)FIFO 模式FIFO 即先入先出,其模型如图 4-125 所示。在 FIFO 具体实现时,数据存储的部分是采用简单双端口模式操作的,一个端口只写数据而另一个端口只读数据,另外在 RAM(块 RAM 和分布式 RAM)周围加一些控制电路来输出指示信息。FIFO 最重要

9、的特征是具备“满(FULL)”和“空(EMPTY)”的指示信号,当 FULL信号有效时(一般为高电平),就不能再往 FIFO 中写入数据,否则会造成数据丢失;当 EMPTY 信号有效时(一般为高电平),就不能再从 FIFO 中读取数据,此时输出端口处于高阻态。图 4-125 Xilinx FIFO 模块的示意模型2块 RAM IP Core 的使用块 RAM 已在本书第 3 章有过介绍,这里就不再赘述。3ROM 存储器 IP Core 的使用对于 ROM 模块,主要是生成相应的.coe 文件。下面以一个实例介绍如何借助 MATLAB 生成 ROM 的.coe文件。例 4-8 生成定点正余弦波形

10、数值,形成 .coe 文件并加载到块 ROM 中。整体过程主要分为下面的 3 步。首先,利用 MATLAB 计算出正余弦波形的浮点值,并量化 16 比特的定点波形数值:x= linspace(0,6.28,1024); /在区间0,6.28 之间等间隔地取 1024 个点y1=cos(x); /计算相应的正余弦值y2=sin(x);/由于正余弦波形的值在0,1 之间,需要量化成 16 比特,先将数值放大y1=y1*32678;y2=y2*32768;/再将放大的浮点值量化,并写到存放在 C 盘的文本中fid = fopen(c:/cos_coe.txt, wt);fprintf(fid, %1

11、6.0fn, y1); /在写文件的时候量化成 16 比特fclose(fid)fid = fopen(c:/sin_coe.txt, wt);fprintf(fid, %16.0fn, y2);fclose(fid)其次,生成 coe 文件。在 C 盘根目录下,将 cos_coe.txt 和 sin_coe.txt 的后缀改成.coe,打开文件,把每一行之间的空格用文本的替换功能换成逗号“,”,并在最后一行添加一个分号“;”。最后在文件的最开始添加下面两行:memory_initialization_radix=10;memory_initialization_vector =然后保存文件退

12、出。最后,将 coe 文件加载到 BLOCKROM 所生成的 ROM 中。新建一个 BLOCKRAM 的 IP core,其位置为“Memories & Storage Elements RAMs & ROMS Block Memory Generator v2.4”,在第一页选择 single port rom,在第二页选择位宽为 16、深度为 1024,在第三页下载 coe 文件,如图 4-126 所示,然后双击“Finish”,完成 IP core 的生成。如果 coe 文件生成的不对,图中用椭圆标志之处是红色的,coe 文件错误的类型主要有数据基数不对和数据的长度不对这两类。图 4-126 块 ROM 加载 coe 文件的用户配置界面

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。