0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

xilinx core generator里面的block ram介绍

FPGA设计论坛 来源:CSDN技术社区 作者:Snail_Walker 2022-06-20 17:21 次阅读

CORE Generator里有很多的IP核,适合用于各方面的设计。一般来说,它包括了:基本模块,通信网络模块,数字信号处理模块,数字功能设计模块,存储器模块,微处理器控制器与外设,标准与协议设计模块,语音处理模块,标准总线模块,视频与图像处理模块等。

在Xilinx的IP核里有xilinx core generator 里面的memory interface generator 和block ram,使用这两个可以使用FPGA内部和外部的RAM。memory interface generator 是 ddr2/ddr3/qdr2 这些外部存储器的接口,block ram 是 fpga 芯片内部片上的存储器。接下来介绍一下block ram。

block ram有三种:单口RAm、简化双口RAM和真双口RAM。

单口:

46f9a1f8-f078-11ec-ba43-dac502259ad0.png

简化双口,A写入,B读出:

4719ae4e-f078-11ec-ba43-dac502259ad0.png

真双口,A和B都可以读写:

47323da6-f078-11ec-ba43-dac502259ad0.png

使用IP核,确定数据位宽和深度:(超出地址范围将返回无效数据,在对超出地址范围的数据进行操作的时候,不能够set或者reset)。这里我选择的是16位的位宽,128的深度。

474d7102-f078-11ec-ba43-dac502259ad0.png

设置操作模式:(写优先,读优先,不改变)

476ef4a8-f078-11ec-ba43-dac502259ad0.png

这里的写优先的意思就是你写入的数据,会出现在输出端口,不管你给的地址是什么。这种好处就是保证了你读出的数据是最新的。

478697d4-f078-11ec-ba43-dac502259ad0.png

读优先指的就是:不管你写入的数据,是先把你要读的数据读出。

47a3ac84-f078-11ec-ba43-dac502259ad0.png

不改变模式就是正常的模式,该读的时候读,改写的时候写:(一般没有特殊要求就是选这个)

47bea49e-f078-11ec-ba43-dac502259ad0.png

接着写coe文件,打开txt,输入:

MEMORY_INITIALIZATION_RADIX=10;

MEMORY_INITIALIZATION_VECTOR=

512,515,518,522,525,528,531,535,538,54,......12,23;

保存之后为coe格式。

这个如果很少就自己输入,如果比较大,比如一幅图片,那就使用matlab吧!

举个例子,你要生成ROM

% 生成 ROM 的 .coe文件

clc clear all close all x = linspace(0, pi/2 ,1024); % 在区间[0,2pi]之间等间隔地取1024个点 y_cos = cos(x); y_sin = sin(x); y_cos = y_cos * 2^16; y_sin = y_sin * 2^16; fid = fopen('D:/cos_coe.txt','wt'); fprintf(fid, ' .0f ' , y_cos); fclose(fid); fid = fopen('D:/sin_coe.txt','wt'); fprintf(fid, ' .0f ' , y_sin); fclose(fid);

比特写功能(byte_write):

当使用8bit一字节的时候没有优先级,而存储在宽度限定为8bit的倍数。当使用9bit一字节的时候,每一个字节都包含一个优先级位,存储限定为9bit的倍数。9bit的一般不用于NO_CHANGE模式。对于双口的RAM,只能是读优先或者写优先。

我们要设置为primitive原语的模式,还可以选择增加复位等功能,但是复位不能异步,只能同步实现。

最后生成了IP核之后,点击你的IP核的下方,然后可以看到你的instance,你就知道怎么用这个IP核了。另外对于IP核的使用,其实你看datasheet那就更好了。

47d44c40-f078-11ec-ba43-dac502259ad0.png

47ee42c6-f078-11ec-ba43-dac502259ad0.png

原文标题:FPGA开发之RAM IP的使用

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593128
  • Xilinx
    +关注

    关注

    70

    文章

    2119

    浏览量

    119368
  • generator
    +关注

    关注

    0

    文章

    56

    浏览量

    33006
  • Block
    +关注

    关注

    0

    文章

    26

    浏览量

    14559

原文标题:FPGA开发之RAM IP的使用

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA IP之Block Memory Generator功能概述

    Xilinx Block Memory Generator(BMG)是一个先进的内存构造器,它使用Xilinx fpga中的嵌入式块RAM
    的头像 发表于 11-14 17:49 924次阅读
    <b class='flag-5'>Xilinx</b> FPGA IP之<b class='flag-5'>Block</b> Memory <b class='flag-5'>Generator</b>功能概述

    Xilinx FPGA IP之Block Memory Generator AXI接口说明

    之前的文章对Block Memory Generator的原生接口做了说明和仿真,本文对AXI接口进行说明。
    的头像 发表于 11-14 18:25 796次阅读
    <b class='flag-5'>Xilinx</b> FPGA IP之<b class='flag-5'>Block</b> Memory <b class='flag-5'>Generator</b> AXI接口说明

    XILINX Core Generator的官方教学PPT

    XILINX Core Generator的官方教学PPT
    发表于 08-15 18:44

    Xilinx FPGA入门连载48:FPGA片内RAM实例之RAM配置

    `Xilinx FPGA入门连载48:FPGA片内RAM实例之RAM配置特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1jGjAhEm 1新建源文件打开
    发表于 01-22 13:39

    Spartan 3E XC3S250E中的100Kbit RAM模块使用问题

    ; RAMB16_S18),该语言模板支持1Kx16。我如何使这7个块表现得像一个RAM Block.are有任何基元用于自定义RAM块的长度和深度。我也尝试过使用Core发生器,但它
    发表于 02-27 09:16

    Xilinx Block RAM能否在一个时钟周期内始终如一地返回数据?

    我在Xilinx Spartan-3E(XC3S500E)上使用Verilog创建了一个使用多个双端口Block RAM的设计,所有这些都通过Verilog原语实例化,例如
    发表于 04-24 07:35

    请帮助我解决Block RAM问题?

    ,维克多Rdp_fifo3.v 3 KB以上来自于谷歌翻译以下为原文I am trying to use the block ram on Xilinx Spartan 3AN (XC3S400AN
    发表于 06-04 09:08

    创建Block RAM IP不起作用

    DCM_SP为spartan 3E创建50Mhz DCM时钟的IP,并且它可以工作。我不确定为什么当我尝试创建Block RAM IP时它不起作用。我真的很感激一些帮助。欢迎来到Xilinx
    发表于 06-05 13:39

    为什么为spartan6生成fifo ip_core时会出现警告?

    :/。Xilinx / prova_di_block_maker / ipcore_dir / tmp / _cg / provaIP / doc / fifo_generator
    发表于 11-11 16:28

    XILINX BMG介绍

      1、BRAM 简介  2、Block Memory Generator Feature  2.1 Type  2.1.0、Signals Descriptions  2.1.1
    发表于 02-25 06:16

    对于Xilinx FPGA的片上存储资源的统计介绍

    Xilinx FPGA有三种可以用来做片上存储(RAM,ROM等等)的资源,第一个就是Flip Flop;第二种就是SLICEM里面LUT;第三种就是Block RAMs资源。 在用V
    发表于 09-15 12:21 4878次阅读
    对于<b class='flag-5'>Xilinx</b> FPGA的片上存储资源的统计<b class='flag-5'>介绍</b>

    xilinx 7系列FPGA里面的Block RAM

    RAM。 今天咱们就聊一聊7系列FPGA里面的Block RAM。 在7系列FPGA里面,每个Bloc
    的头像 发表于 11-23 14:08 7457次阅读
    <b class='flag-5'>xilinx</b> 7系列FPGA<b class='flag-5'>里面的</b><b class='flag-5'>Block</b> <b class='flag-5'>RAM</b>

    关于Block RAM的寄存器输出

    关于Block RAM的寄存器输出,我们在《通过RTL改善时序的技巧之Block RAM的输出》中介绍过。如果我们在时序报告中关键路径上看到
    的头像 发表于 03-26 15:50 1609次阅读
    关于<b class='flag-5'>Block</b> <b class='flag-5'>RAM</b>的寄存器输出

    FPGA的RAM存储资源详细资料说明

    本文档的主要内容详细介绍的是FPGA的RAM存储资源详细资料说明包括了:1、 FPGA存储资源简介,2、 不同厂家的 Block RAM 布局,3、 块
    发表于 12-09 15:31 10次下载
    FPGA的<b class='flag-5'>RAM</b>存储资源详细资料说明

    XilinxRAM的单双口、简单双口和真双口有什么不同?

    RAM,支持简单双口 RAM 和双口 RAM,不能配置成真双口 RAM。 问题在于:Xilinx 给出的 DRAM(分布式
    的头像 发表于 05-03 09:47 7300次阅读
    <b class='flag-5'>Xilinx</b>中<b class='flag-5'>RAM</b>的单双口、简单双口和真双口有什么不同?