Vivado 随笔(1) 综合属性之 ram_style & rom_style?

目录

背景

正文

相关文献


背景

在很多情况下,我们会定义一个二维数组来作为RAM或者ROM来使用,例如我们在设计一个异步FIFO时,我们需要例化一个双端口RAM来作为FIFO的存储空间,当然我们可以通过例化一个IP核的方式去做(可以直接在IP核定制时候选择使用Block RAM或者Distributed RAM资源),但是如果我们不去设计这么一个IP核呢?

我们就可以直接定义一个二位数组来用做存储空间,同样可以实现同样的功能,但是我们是否想过这样一个问题,就是我们定义的这样一个二位数组,在Vivado综合工具进行综合时候,用什么来实现我们这样的一个RAM呢?稀里糊涂,把命运交给综合工具,随意(默认)推断?

正如标题所示,今天的这两个综合属性就可以帮你掌握自己的命令,明确地告诉综合工具,我要用什么资源去实现这样的一个二位数组。

注意:如果设计的是一个RAM,用ram_style;如果是ROM,则用rom_style。

正文

ram_style & rom_style这对综合属性旨在提示Vivado综合工具如何推断存储空间。

其值可以为:

block

提示综合工具使用Block RAM来实现;

distributed

提示综合工具使用LUT资源来实现;

用法,这里只给出Verilog中的用法:

在二维数组的定义前面加上如下声明即可,例如:

(*ram_style = "distributed"*) reg [data_size - 1 : 0] myram[2**addr_size - 1:0];

当然,例子中的data_size以及addr_size是parameter类型的常数。

**运算符表示指数运算;

相关文献

Vivado入门与提高

Verilog高级数字系统设计

【FPGA】ROM/EPROM的设计(使用case的方式初始化)

【FPGA】ROM/EPROM的设计(使用加载文件的方式初始化)

【FPGA】双端口RAM的设计(异步读写)

【FPGA】单端口RAM的设计(同步读、同步写)

 

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李锐博恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值