




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7.4基于IPCore的BlockRAM设计
7.4基于IPCore的BlockRAM设计本节介绍基于IPCore的BlockRAM设计,由于BlockRAM属于特殊结构,使用Xilinx公司提供的IPCore是比较方便的,而且灵活、高效、不容易出错〔IPCore的使用请见节〕。双端口块RAM〔Dual-PortBlockRAM〕双端口RAM的特性Virtex、Virtex-E、Virtex-II、Virtex-IIPro、Spartan、Spartan-II、Spartan-IIE和Spartan-3系列的FPGA都嵌入了BlockRAM。支持所有3种Virtex-II写模式:Read-After-Write、Read-Before-Write和No-Read-On-Write〔只适用于Virtex-II和Spartan-3〕支持RAM和ROM功能。支持1到256BIT的数据端口宽度。根据选择的不同结构,支持1到2M字的存储深度。支持ROM功能,两个端口可以同时对一个地址的数据进行读操作。支持RAM功能,两个端口可以同时对不同的地址进行写操作,或者对同一地址进行读操作。两个端口是完全独立的。支持A、B端口的不对称配置。支持CORE设计或者使用SelectRAM+、SelectRAM-II库原语以求面积优化。支持不同极性的控制信号引脚:时钟〔clock〕、使能〔enable〕,写使能〔writeenable〕和输出初使化〔outputinitialization〕引脚。结合Xilinx的Smart-IP技术使设计更灵活,最优化实现。2.双端口RAM的功能描述Dual-PortBlockRAM是由一块或多块叫做Select-RAM+™的4Kb存储块组成的。Virtex-II和Spartan-3系列的Dual-PortBlockRAM是由一块或多块16Kb存储块〔SelectRAM-II™〕组成的,能构成更宽或者更深的存储器设计。Select-RAM+™和SelectRAM-II™都是真正的双端口RAM,为Spartan-II和Virtex系列家族的芯片提供快速、离散的而且足够大的块RAM。因为Spartan-II和Virtex都使用4Kb的Select-RAM+™存储块,所以任何涉及到Virtex能实现的RAM,都可以在Spartan-II、Virtex-E、Virtex-II、Virtex-IIPro、Spartan-IIE系列中实现。 每个存储器含有两个完全独立的端口A和B,两个端口享有同时访问存储器中同一地址的能力,存储器的深度和宽度由使用者自己定义。两个端口在功能上是完全一样,都可以对存储器进行读写操作。两个端口可以同时对存储器的同一地址进行读操作,如果对同一地址进行操作,一个端口读,一个端口写,那么写操作成功,而读出的数据是无效的。
根据使用者的定义,可以配置端口A和端口B的数据宽度和地址宽度。当两个端口被禁用时〔ENA和ENB无效〕,存储器中的数据和输出端口将保持不变。当两个端口可用时〔ENA和ENB有效〕,对存储器的所有操作将在输入时钟的边沿触发。进行写操作时〔WEA或WEB有效〕,相应数据端口的数据将写入地址端口所指定的存储地址中。在这个操作中,Spartan-II/Virtex和Virtex-II系列的块RAM的输出端口的动作并不相同。 Virtex-II和Spartan-3系列的块RAM的输出端口的具体实现要根据“写模式”的设置而定。Virtex-II和Spartan-3系列的块RAM支持3种“写模式”,每种模式决定了输出端口在写操作发生后将如何作出反响。Spartan-II和Virtex系列的块RAM只支持一种“写模式”:Read-After-Write。这种写模式使写入的数据在写操作后呈现在输出端口。 在读操作时,地址输入端口指定的地址上的数据在输出端口输出。当同步初始化〔SynchronousInitialization(SINITA或SINITB)〕有效时,有锁存器的输出端口将被同步初始化,Spartan-II和Virtex系列将被初始化为0,Virtex-II系列将被初始化为使用者事先定义的数据。同步初始化操作并不影响存储器中的数据,也不会与写操作发生冲突。 使能,写使能和同步初始化可以被定义为高电平有效或者低电平有效。3.双端口RAM的引脚双端口RAM的Core引脚如下图。图7.4.1双端口RAM的引脚双端口RAM的Core引脚的具体含义列表于表。端口名称端口方向功能描述DIN[A|B]<n:0>可选输入数据输入:数据从此端口写入存储器。ADDR[A|B]<m:0>输入地址输入:写或者读操作的地址由此端口输入。WE[A|B]可选输入写使能控制信号:控制数据写入存储器。EN[A|B]可选输入使能控制信号:写或者读操作的有效控制。SINIT[A|B]可选输入同步初始化控制信号:使输出端口初始化为预先设定的状态。CLK[A|B]输入时钟信号:所有存储器操作是在输入时钟的同步下进行的。ND[A|B]可选输入握手信号:表示A或者B端口上有新的而且有效的地址数据。(高电平有效)。DOUT[A|B]<n:0>可选输出数据输出端口:存储器的同步数据输出端口。RFD[A|B]可选输出握手信号:表示存储器已经准备好接受新数据。(高电平有效)RDY[A|B]可选输出握手信号:表示输出端口上的数据有效。(高电平有效)。7.4.2使用IPCore生成双端口RAM
Xilinx提供了Dual-PortBlockRAM的IPCore。具体如何调用IPCore、生成IPCore见节。这里介绍具体的一些IPCore参数,设计者可以根据设计的需要设置这些参数。 Dual-PortBlockRAM的参数设置窗口分别如图、图、图、图所示。Dual-PortBlockRAM的参数设置一共有4个窗口,可以单击按钮进入下一个窗口。图7.4.2Dual-PortBlockRAM的参数设置窗口图7.4.3PortABlockRAM的参数设置窗口图7.4.4PortBBlockRAM的参数设置窗口图7.4.5Dual-PortBlockRAM的参数设置窗口元件名称〔ComponentName〕:为了生成IPCore,必须为生成的文件取一个名称。端口A存储器大小〔MemorySize〕:数据端口A宽度〔WidthA〕:可以选择数据端口A的宽度,宽度可以从1到256。地址端口A深度〔DepthA〕:可以选择存储器的字节数。根据所选择的不同结构,字节数可以从2BIT到2M。可以选择的地址深度要根据所选择的数据端口A的宽度而定。Spartan-II和Virtex系列的块RAM的最大字节数为256K,Virtex-II和Spartan-3系列的块RAM的最大字节数为1M。必须注意生成的CORE的大小不能超过目标器件库原语的大小端口B存储器大小〔MemorySize〕:数据端口B宽度〔WidthB〕:可以选择数据端口B的宽度,可以选择的数据端口B的宽度取决于定义的数据端口A的宽度。对于Spartan-II和Virtex系列的块RAM,能够选择的宽度可以是1,2,4,8或16倍A端口的宽度。对于Virtex-II系列的块RAM,能够选择的宽度可以是1,2,4,8,16或32倍A端口的宽度。地址端口B深度〔DepthB〕:定义了WidthA、DepthA和WidthB后,DepthB的值将为定值。根据端口A和B定义的存储器的大小必须相等可以计算出DepthB。端口A可选项〔PortAOptions〕:配置〔Configuration〕选项:可以选择的有ReadAndWrite〔读和写〕,WriteOnly〔只写〕和ReadOnly〔只读〕。写模式(Writemode)选择:可以为Virtex-II系列的块RAM选择写模式。Spartan-II和Virtex系列的块RAM只支持ReadAfterWrite模式。ReadAfterWrite模式〔支持的有Virtex-II、Spartan-II、Spartan-3、Virtex〕,可能有下面几种情况:没有输入输出存放器时:数据在WEA信号有效后的第一个时钟沿传送到端口DOUTA。仅有输入存放器时:数据在WEA信号有效后的第二个时钟沿传送到端口DOUTA。仅有输出存放器时:数据在WEA信号有效后的第二个时钟沿传送到端口DOUTA。有输入和输出存放器时:数据在WEA信号有效后的第三个时钟沿传送到端口DOUTA。ReadAfterWrite模式的时序如下图。图7.4.6ReadAfterWrite模式时序ReadBeforeWrite模式〔支持的有Virtex-II、Spartan-3〕,可能有下面几种情况:没有输入输出存放器时:在WEA信号有效后的第一个时钟沿,存储器中当前地址上的数据被传送到端口DOUTA。仅有输入存放器时:在WEA信号有效后的第二个时钟沿,存储器中当前地址上的数据被传送到端口DOUTA。仅有输出存放器时:在WEA信号有效后的第二个时钟沿,存储器中当前地址上的数据被传送到端口DOUTA。有输入和输出存放器时:在WEA信号有效后的第三个时钟沿,存储器中当前地址上的数据被传送到端口DOUTA。图7.4.7ReadBeforeWrite模式时序No-Read-On-Write模式〔支持的有Virtex-II、Spartan-3〕:当WEA有效时,不会进行读操作。DOUTA端口将保持上一次读操作的数据。No-Read-On-Write模式时序如下图。图7.4.8No-Read-On-Write模式时序端口B可选项〔PortBOptions〕:端口B可选项与端口A可选项相同。端口A设计选项〔PortADesignOptions〕:1可选引脚端〔OptionalPins〕:a.使能引脚端。b.握手信号引脚端。包括ND、RFD、RDY信号,它们的含义如表所示。需要注意的是,ND信号必须在RFD有效时才能有效。RFD信号在EN信号有效时一直是有效的。可选输入存放器〔RegisterOptions〕:可以为端口DIN、ADDR和WE添加输入存放器。可选输出存放器〔OutputRegisterOptions〕:a.AdditionalOutputPipeStages:选择‘1’可以为输出端口再增加一级存放器,选择‘0’不加存放器。b.初始化〔SINIT〕引脚:SINIT引脚的含义见表。引脚极性〔PinPolarity〕:使用者可以为存在的引脚极性配置。对于时钟信号,可以配置成上升沿或下降沿触发。对于EN、WE和SINIT引脚端,可以配置成高电平或低电平有效。端口B可选项〔PortBOptions〕:端口B可选项与端口A可选项相同。库原语选择〔PrimitiveSelection〕:有两项可供选择。面积优化〔OptimizeForArea〕。选择库原语〔SelectPrimitive〕。Virtex、Virtex-E和Spartan-II的库原语有4kx1,2kx2,1kx4,512x8和256x16。Virtex-II的库原语有16kx1,8kx2,4kx4,2kx9,1kx18,和512x36.初始化〔InitialContents〕:可以设置配置后存储器中的初始值。全局初始化值〔GlobalInitValue〕:全局初始化值定义了配置后存储器中初始值。缺省〔默认〕为‘0’。注意输入的值必须是16进制,并且其大小不能超过A端口能输入的最大值。加载初始化文件〔LoadInitFile〕:存储器中的初始值可以保存在一个以COE为后缀的文件中,加载这个文件可以使存储器在配置后,各个单元的初始值为文件中所列出的值。7.4.3使用MemoryEditor生成COE文件前面提到,可以为双端口RAM提供一个初始化数据文件,加载这个文件可以使RAM在配置后,各个单元的初始值为文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三班会演讲稿
- 4 公民的基本权利和义务(教学设计)2023-2024学年统编版道德与法治六年级上册
- logo购买合同范本
- 100以内的加法和减法(二)-不退位减(教学设计)-2024-2025学年二年级上册数学人教版
- 食品运送合同范本
- 12急行跳远教学设计8-八年级体育与健康
- Module 3 Unit1 Point to the door(教学设计)2024-2025学年外研版(三起)英语三年级上册
- 研学活动合同范本
- 2024-2025学年九年级上学期牛津译林版英语Unit 5 Reading 教学设计
- 2023初一暑假前教育家长会演讲稿
- 新版人教版七年级下册数学全册教案教学设计含教学反思
- 《网络攻击与防御》课件第四章 基于系统的攻击与防御
- 供电一把手讲安全课
- 工程施工派工单
- 编纸条 市赛获奖 完整版课件
- 玩具公司职位说明书汇编
- 平面设计创意与制作课件
- 化学专业英语元素周期表
- 新湘版小学科学四年级下册教案(全册)
- Q∕SY 06349-2019 油气输送管道线路工程施工技术规范
- 实验心理学课件(周爱保博士版)
评论
0/150
提交评论