双口RAM概述及Vivado RAM IP核应用.docx
《双口RAM概述及Vivado RAM IP核应用.docx》由会员分享,可在线阅读,更多相关《双口RAM概述及Vivado RAM IP核应用.docx(14页珍藏版)》请在第一文库网上搜索。
1、双口RAM概述及ViVadoRAMIP核应用1. 双口RAM概述双RAM(dua1portRAM)在异构系统中应用广泛,通过双口RAM,不同硬性架构的皿可以实现数据的交互,从而实现通值。例如,一般情况下,ARM与DSP之间的通信,可以利用双口RAM实现,ARM通过EBI总线连接到双口RAM的A,DSP通过EMIF总线(也可以是UPP总线,取决于速度需求)连接到双RAM的B口,两者对同一块存储区域进行操作,即可实现两者的数据交互。但是,因为双口RAM的A口和B都可以对相同的内存地址进行操作,这就引出了一个问题一一假如通信双方在两个端旦对同一地址同时读写,就会引发冲突。要解决这个问题,办法有二。一
2、是通信双方在时序上保证不会同时读写同一地址,将ARM和DSP可写地址范围进行分区,无论任何一方写完数据后都通过IO发送中断通知对方,对方进行数据读取(乒乓RAM操作),这样是比较可靠的;另外一个办法就是在fpga里设置写busy信号,实现两端写同步:O在FPGA中,构建双口RAM可以通过两种方法,一种是利用distribu拄dRAM构建,另一种是利用B1OCkRAM构建,关于两者的具体区别,可以参考这两篇文章口口。简而言之,B1ockRAM是是使用FPGA中的整块双口RAM资源,而distributedRAM则是用FPGA中的逻辑资源拼凑形成的。一般的原则是,较大的存储应用,建议用bram;零
3、星的小ram,一般就用dram。在ViVado中,RAMIPMemories&StrorageE1ementsRAM&RoMS和RAM&ROM&BRAM文件夹下,如回丽示,下面简要介绍一下ViVado的而hRAMIP核。(图1.1)2. Vivado双口RAMIP核3. 1B1ockMemoryGenerator概述点击图1.1的B1ockMemoryGenerator项,利用BRAM来构建双口RAM。B1ockMemoryGenerator窗口如图2.1所示。图中,第1部分,在IPsymbo1选项卡,点击号可以展开端口具体信号,如图2.2所示。第2部分,ComponentNanIe可以设置I
4、P核的名字。第3部分,BaSiC选项卡,在MemoryTyPe下拉列表中,可以设置内存的类型,如图2.3所示。B1ockMemoryGnerator一共可以产生5种不同类型的内存空间,其中b1ockRAM有三种:单口RAM、简化双口RAM和真双口RAM。单口RAM只有一个端口(A端口),可以对A端口进行读写。简化双口RAM有两个端口(A和B端口),但是A端口只能进行写入操作,不能进行读出操作,而B端口则只能进行读出操作,不能进行写入操作。真双口RAM有两个端口(A和B端口),A和B端口都能进行读写操作口。(图2.1)(图2.2)(图2.3)2.2真双口RAM的设置2. 2.1Basic设置在B
5、asic选项卡的Memorytype选项中选择真双口RAM,IPSymbo1如图2.4所示。ECCOPIionS为默认设置,WriteEnabIe中也选择默认设置,不使能字节写,AIgorithmoPtionS选择默认设置。(图2.4)2 .2.2Port设置点击POrtAOPtionS选项卡,对A端口进行设置,设置WriteWidth为16(即RAM单元为16位),WriteWidth为1024(即内存深度为1024,该端口可读写的RAM单元有1024个),OPeratingMode(操作模式)一共有三种:WriteFirst,ReadFirst,NoChange0在WriteFirSt模式
6、中,在一个时钟周期里,莺入内存单元的数据被同步输出到输出数据总线上;在Reae1Fi嬴履式中,在一个时钟周期里,写入到内存单元的数据是当前输入数据总线上的数据,而输出到输出数据总线上的数据则是上一个时钟周期存储在内存单元中的数据。细节可参考PG058的49到50页4。Enab1ePortType设置为A1waysEnab1ed,一直使能端口A。其它设置使用默认设置。如图2.5所示。(图2.5)端口B设置为与A一致。在OtherOPtionS选项卡中,保留默认设置。1oadInitFiIe设置是否用Coe文件对内存区域初始化,这个在初始化RoM的时候会用到,这里不勾选,保持默认。最后,在SUmm
7、ar选项卡会显示消耗的资源。3 .双口RAM例程例程1,该例程是AItera官方例程口,采用盏播构建双口RAM,代码如下:moc1u1etrue_dpramsc1k(input7:0data_a,data_b,input5:0addr_a,addrb,inputwe_a,we_b,e1k,outputreg7:0q_a,q_b);/Dec1aretheRAMvariab1ereg7:0ram63:0;/PortAa1ways(posedgee1k)beginif(we_a)beginramaddra1=dataa;q_a二data_a;ende1sebeginq_a二ramaddr_a;end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 双口RAM概述及Vivado RAM IP核应用 双口 概述 Vivado IP 应用