Xilinx系FPGA学习笔记(六)RAM的IP核学习

系列文章目录


文章目录


块RAM生成

对于RAM来说,也有两种:

在 Memories & Storage Elements 下,一个是 Distributed Memory Generator,另一个是 BlockMemory Generator,这与ROM是类似的


这里的常规接口和AXI 接口,还是选择选择常规接口 Native。

关于可以生成的RAM有几种类型:单端口 RAM、简单双端口 RAM 和真双端口 RAM(在之前quartus的RAM生成里介绍过)

单端口 RAM:读写一个时钟,读写不能同时进行。

简单双端口 RAM:相较单端口 RAM,多出一个 PORTB,有两个时钟,可以同时读写,PORTA 只能写数据,PORTB 只能进行读数据。

真双端口 RAM:两个 PORT,分别有自己的时钟,地址,输入/输出数据端口,两个端口均可进行读写操作

ECC 全称是 Error Correction Capability,是在简单双端口 RAM 类型下的一种纠错功能,一般选择 NO ECC。

写数据字节使能,如果勾选,写使能信号会根据写数据的字节数生成对应的 bit 数据,1 个字节对应 1bit 写使能,这里字节的大小可以设置为 8 或 9,当这里的选择后,输入输出的数据的位宽就必须是 8 或 9 的整数倍。

算法类型,有三种选项可选,最小面积、低功耗、固定原语

设置读写的宽度和深度

操作模式设置,这里有三个可选项,这里的设置主要是针对在同时对同一地址进行读操作和写操作时,读出数据是写入的最新数据、该地址原来的数据、读数据不变化。

Write First 模式下的波形,如果仅读出数据而未发生数据的同时读写,则读出存储器以前存储的数据,如果发生数据的同时读写,读出数据为刚从数据总线送入的数据,而不考虑该地址以前存储的数据。

Read First 模式下的波形,同时对同一地址读写,读出数据为上次刚写入该地址以前的数据,忽略正在写数据这一事件对读出数据的影响。

No Change 模式下波形,读出的数据只有在进行读操作但未进行写操作时更新数据,在同时读写数据时,读出数据保持不变

端口使能信号类型设置,一个是一直使能,一个是通过一个 ENA 信号管脚控制,一般选择 Always Enable。

之后是一些输出寄存复位的设置

类似上节的ROM设置, Primitives Output Register 是1 处的寄存器,Core Output Register 是另一处寄存器。

REGCEB Pin 是寄存器使能管脚,如果勾选,会有一个寄存器使能控制管脚用于控制寄存器的使能,如果不勾选寄存器就一直使能状态,不勾选。要得到更好的性能,将这里的两个寄存器都勾选。

不创建置位/复位端口,需注意这里置位/复位,并不复位RAM 中的数据而是只复位寄存器上的值。

其他的设置默认,Latency 仍然等于 3,因为勾选了两个寄存器

相关推荐
handler0119 小时前
从源码到二进制:深度拆解 Linux 下 C 程序的编译与链接全流程
linux·c语言·开发语言·c++·笔记·学习
电子云与长程纠缠19 小时前
UE5 两种方式解决Decal Actor贴花拉伸问题
学习·ue5·游戏引擎
red_redemption19 小时前
自由学习记录(172)
学习·cache line 64b·重用距离
阿荻在肝了20 小时前
Agent学习六:LangGraph学习-持久化与记忆一
python·学习·agent
寒秋花开曾相惜1 天前
(学习笔记)4.1 Y86-64指令集体系结构(4.1.4 Y86-64异常&4.1.5 Y86-64程序)
开发语言·jvm·数据结构·笔记·学习
莹宝思密达1 天前
【AI学习】 playwright-cli + SKILL 替换 chrom-devTools-MCP
学习
cyr___1 天前
Unity教程(二十七)技能系统 黑洞技能(下)黑洞状态
学习·游戏·unity·游戏引擎
Theodore_10221 天前
深度学习(15):倾斜数据集 & 精确率-召回率权衡
人工智能·笔记·深度学习·机器学习·知识图谱
不会聊天真君6471 天前
JavaScript基础语法(Web前端开发笔记第三期)
前端·javascript·笔记
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.1 天前
Redis主从复制配置全攻略
数据库·redis·笔记