目录
RAM(Random Access Memory )简介
当我们做相关项目时,经常会遇到存储数据的问题,数据量过大时,我们可以将其存储在 FPGA 芯片的外设存储器上,比如sdram、 ddr sdram 等,然而访问这些外设存储器相对比较麻烦,因此当数据量较小时,我们可以直接使用 FPGA 芯片内部自带的 IP 生成的 RAM。 RAM (random access memory)是随机存储器的意思, ram 可以按照所需进行随机读/写,掉电后数据丢失。
配置RAM
打开IP Catalog,配置ROM用的也是这个IP核
配置IP核,有多种模式可选择:单口RAM,简单双口RAM,真双口RAM,单口ROM,双口ROM
单口RAM
“WRITE_FIRST” 模式,写操作时,输出端口会将当前写的数据输出。(ASIC中又称“write through”,或AWT,Async)
“READ_FIRST” 模式,写操作时,输出端口会将当前写地址的原数据输出。
“NO_CHANGE”模式,写操作时,输出端口会保持原值不变。只有在读操作的过程中输出端口才会变化
summary中检查无误点击OK生成IP核
程序设计
深度为16384,位宽为16bit的RAM,写数据为wr_addr,写完就读,读完就写,并使用testbench进行仿真
`timescale 1ns / 1ps
// 单口RAM
module ram_ctrl(
input clk,
input rst_n,
//input [15:0] wr_data, // 写入数据