FPGA vivado IP核学习笔记——单端口RAM

这篇具有很好参考价值的文章主要介绍了FPGA vivado IP核学习笔记——单端口RAM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FPGA vivado IP核学习笔记——单端口RAM

1.新建IP

在IP Catalog中找到Block Memory Generator

vivado端口寄存,fpga开发,fpga,单片机

2.基本配置

①在Component Name位置可以修改IP名字

Interface Type选择接口类型,有Native(常规)和AXI4两种,AXI4常用于软核控制FPGA或ZYNQ中PS端控制FPGA时使用

Generate address interface with 31 bits,将地址深度固定在32bit

Memory Type: 有一下五个选项,本实验选择Single Port RAM

vivado端口寄存,fpga开发,fpga,单片机

单端口RAM不存在几个端口公用一个时钟的问题,忽略Common Clock

⑤ECC option

vivado端口寄存,fpga开发,fpga,单片机

在单端口RAM中ECC配置不可选。

ECC介绍

ECCError Correcting Code)是指错误纠正编码技术,它可以作为一种附加功能选项集成到RAM模块中。当启用ECC时,RAM会在每个数据字上附加额外的校验位,这些校验位能够在数据读写过程中实时计算并用于检测潜在的位错误。

写入使能

vivado端口寄存,fpga开发,fpga,单片机

其产品手册有张波形图如上,WEA为写使能端口,高电平有效。以第一个时钟周期为例,b011期间,写入信号DINA为FF EE DD,由于高电平使能写入,故在下一个周期RAM Content存储00 EE DD。

⑦Algorithm Options算法选择

vivado端口寄存,fpga开发,fpga,单片机

可以选择最小面积、低功耗、固定初始中选择IP生成的优先项,该项保持默认就行。

3.端口A配置

①写入宽度(Write Width): 写入宽度指的是每次向RAM中写入数据的位数,即一次写操作能传输的数据位数。比如,如果写入宽度为32位,那么每进行一次写操作,就可以一次性写入32位的数据。

②读出宽度(Read Width): 读出宽度则是指每次从RAM中读取数据的最大位数。同样以32位为例,如果读出宽度为32位,那么一次读操作就能获取32位的数据。读出宽度通常与写入宽度一致,但在一些高级配置中也可能有所不同。

③写入深度(Write Depth): 写入深度或者说存储深度,指的是RAM可以独立寻址的空间大小,即RAM中可以存储的不同数据单元的数量。例如,一个写入深度为1024的RAM,意味着它有1024个地址,可以存储1024个单位的数据(每个单位的数据宽度由写入宽度确定)。

④读出深度(Read Depth): 在多数RAM IP核中,读出深度与写入深度是一致的,表示RAM可以读取的不同地址的数量。在单端口或多端口RAM中,只要不涉及特殊读写策略,一般无需区分读出深度和写入深度,二者都是指RAM的总存储单元数量。

⑤操作模式

vivado端口寄存,fpga开发,fpga,单片机

以下是手册上对于三种模式的介绍,可自行查看

vivado端口寄存,fpga开发,fpga,单片机

vivado端口寄存,fpga开发,fpga,单片机

vivado端口寄存,fpga开发,fpga,单片机

⑥Enable Port Type

增加一个输入使能引脚(Use ENA Port),或者一直使能(Always Enable)

⑦Port A Optional Output Registers

vivado端口寄存,fpga开发,fpga,单片机

询问是否在输出端口A上添加一级寄存器,作为寄存器缓冲层。导致Dout输出信号向后推迟一个时钟周期。这样设计的优点有:

时序优化:通过增加寄存器,可以提供额外的时钟周期延迟,以适应系统设计中的特定时序要求,例如满足建立时间和保持时间约束,或者为接收逻辑提供更多的时间窗口来处理读取的数据。

数据稳定:寄存器可以起到稳定输出数据的作用,确保数据在时钟边沿变化之后已经完全稳定,这对于高速系统或需要高精度数据传输的情况尤为重要。

性能提升:在某些情况下,通过寄存器输出可以提高整体系统的吞吐率,因为读取操作可以在不影响输出数据质量的前提下更快地进行。

Port A Output Reset Options

vivado端口寄存,fpga开发,fpga,单片机

通过配置Port A Output Reset Options,设计者可以精确控制在复位条件下端口A输出的行为,包括何时复位以及复位后的初始输出状态。

RSTA Pin:(Reset for Port A)引脚是专门针对端口A输出数据的复位信号。当RSTA信号有效时,端口A的输出寄存器(如果存在的话)将会被复位,从而清除输出数据。这意味着即使RAM中有数据,当RSTA信号触发时,端口A也不会输出任何数据,直到下一个有效的读操作。

Output Reset Value 这个选项允许设计者配置在复位事件发生时,端口A的输出寄存器预先设定的复位值。当RSTA信号导致复位时,输出寄存器将被重置为预设的复位值,而非随机或未知状态。这对于系统初始化和复位恢复时确保输出数据的一致性和安全性至关重要。

4.其他选项

Load Init File

允许设计者在RAM实例化之初就加载预先设定的初始数据。当FPGA配置完成并开始运行时,该RAM内的数据就已经填充好了特定的值,而不是默认的随机值。

vivado端口寄存,fpga开发,fpga,单片机

Fill Remaining Memory Locations

加载了一个初始化文件来初始化RAM的一部分地址空间后,对剩余未初始化的内存位置进行填充的操作。

vivado端口寄存,fpga开发,fpga,单片机

Structural/UniSim Simulation Model Options

vivado端口寄存,fpga开发,fpga,单片机

是一个与模拟模型相关的选择项,常见于Cadence公司的设计工具中,尤其是用于设计验证环节。这类选项允许设计者在功能仿真阶段选择使用何种级别的模拟模型来模拟RAM(以及其他类似组件)的行为。

Behavioral Simulation Model Options

vivado端口寄存,fpga开发,fpga,单片机

行为级仿真模型选项:是指在进行设计验证时,对RAM或其他复杂逻辑单元选择不同抽象程度的仿真模型进行功能仿真的设置选项。文章来源地址https://www.toymoban.com/news/detail-861586.html

到了这里,关于FPGA vivado IP核学习笔记——单端口RAM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA 学习笔记:Vivado 2018.2 MicroBlaze 启动 SDK

    Vivado 2018.2,配置好 MicroBlaze Uartlite等Block Design后,生成了 bin、bin文件,此时烧写到FPGA板子上,发现没有任何动静,所以需要 SDK的支持 这里使用的Vivado 2018.2,最新的 Vivado版本,如 Vivado 2020.2,启动的SDK 是 :Vitis,启动方式稍微有点不同,后面补充 Vivado 2020.2版本的操作方法

    2024年02月12日
    浏览(38)
  • FPGA 学习笔记:Vivado simulation 仿真波形二进制显示

    最近在学习FPGA,发现除了烧写到FPGA上验证功能,最有效的方式就是软件仿真 软件仿真:simulation,就像是模拟器一样,写好测试用例,然后看是否可以输出想要的结果,用于验证FPGA逻辑的准确性 当前仿真成功后,还是需要真机实测验证 当前安装了好几个版本的Vivado ,当然

    2024年02月12日
    浏览(39)
  • FPGA 学习笔记:Vivado 生成的 Bitstream bit 文件 超大的解决方法

    最近学习FPGA,使用Vivado,照着开发板例程,写了个流水灯的Verilog程序,配置好引脚约束后,下载到开发板,发现下载的速度有点慢,我一查看 生成的 bit文件,发现竟然接近11MB。 开始以为是 Vivado 版本出了问题,我先后更换为 Vivado 2018.2 Vivado 2019.2 Vivado 2022.2,生成的 bit 文件

    2024年02月13日
    浏览(45)
  • FPGA入门学习笔记(十)Vivado设计状态机实现UART多字节数据发送

    使用串口发送5个字节数据到电脑 1、ADC采样的结果为12位,如何使用串口发送 2、16位数据,如何通过串口发送 3、多个字节的数据,如何通过串口发送 UART规定,发送的数据位只能有6、7、8位,若直接修改发送位数,接收模块将不适配。 两种情况: 1、没有开始发送(上一次的

    2024年02月12日
    浏览(33)
  • 【FPGA/数字IC】Multiport RAM,多读多写寄存器-——基于FPGA BRAM的多端口地址查找表与FPGA BRAM的资源分析

    目录 背景 手写Multiport Ram Multiport RAM 代码方案 资源评估 Multiport RAM 资源利用的优化 资源评估 防止读写冲突的组合逻辑设计(写优先) 仿真和时序 单口写数据 单端口读数据 多口读相同数据 多口同时读不同数据 背景         在多端口交换机的设计中,交换机的每个端口

    2024年04月26日
    浏览(30)
  • 学习笔记之FPGA的IP核及其应用

          目录 1. FPGA的IP核定义和分类 2. PLL锁相环  2.1 PLL的基础知识 2.2 PLL核的调用 3. ROM IP核 4. RAM IP核 5. FIFO IP核         FPGA的IP核是在可编程逻辑器件(FPGA)中可以实现特定功能的可重用模块,它们以形式化的方式描述了硬件的功能和接口。如图所示为 PLL 大体的一个结

    2024年03月22日
    浏览(31)
  • 【FPGA】 Vivado FIFO IP核使用教程

    目录 一、FIFO简介 二、FIFO的应用 三、Vivado FIFO创建 四、FIFO IP核实例化 五、对实例化顶层文件仿真        FIFO 的英文全称是 First In First Out ,即 先进先出 。 FPGA 使用的 FIFO 一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交

    2024年02月06日
    浏览(93)
  • FPGA学习笔记(五):DDS IP核的使用

     1. 打开VIVADO,点击IP Catalog    2.搜索DDS,选择DDS Compiler    3. 配置参数 (1) 设置主频频率 50MHz   (2) 选择sine,并且勾选Has Phase Out(相位输出)    (3) 勾选Output TREDAY  (4) 输入频率    (5) 同上述步骤,再加一个DDS IP核 4. 测试文件   5. 结果展示        

    2024年02月11日
    浏览(39)
  • FPGA学习笔记(二):clk IP核的使用

     1.打开VIVADO,点击IP Catalog   2. 搜索clk,选择Clocking Wizard   3. 配置参数 (1) 选择MMCM      (2) 设置主频50Mhz  (3) 设置输出的4个clk的参数,分别是50M,25M,100M,100M反相。Phase表示相位,0表示同相,180表示反相。      (3) 其他参数  4. 测试文件 其中clk_wiz的例化可参考模板。点击

    2024年02月12日
    浏览(38)
  • FPGA学习笔记(六): FIR IP核的使用

    1. 打开VIVADO,点击IP Catalog   2.搜索DDS,选择DDS Compiler,按照上节配置频率为3MHz和4MHz的DDS IP核。    这里注意不勾选Has Phase Out 这里注意不勾选Output TREADY     输出频率为3MHz 按照上述步骤,配置4MHz的DDS,同样不勾选Has Phase Out以及不勾选Output TREADY。 3. 点击IP Catalog,搜索mu

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包