xilinx fpga中块ram的使用——简单双端口ram的使用
在简单双端口ram中最简单有9个端口:分别是
clka 为输入端口的时钟
wea 读写控制端,高为写,低为读
addra 写地址
dina 待写入的数据
clkb 为输出端口的时钟的
addrb 读地址
doutb 读出的数据
在ip核中还可以加入ena/enb端口,这两个端口的作用是控制相应写入和读出端口的数据,为高是正常写入或读出,为低时写入为0,读出为0。
也可以加入复位端口rst,不过复位有两种优先级CE和SR,选择CE时,rst的优先级低于ENA的优先级;选择SR时,rst的优先级高于ENA的优先级。
还可以选择复位的方式,同步还是异步,一般选择同步。
端口介绍完后,就开始使用双端口ram,工作方式是:可以写入也可以预先用coe文件存入数据,写入数据后就可以读取数据了 ,这里的读取数据和rom的相同,写入地址是多少,就去读取相应地址的数据。
双端口ram和单端口的ram不同,单端口的ram读取数据方式是,写入数据的下一个时钟自动输出数据,仅可用于流水线式数据处理。
这里写了一个简单双端口的ram测试代码
`timescale 1ns / 1ps
`define clk_period
////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 11:39:21 06/04/2018
// Design Name: ram
// Module Name: E:/digital image processing/finial_code/ram_test/testbench/ram_tb.v
// Project Name: ram_test
// Target Device:
// Tool versions:
// Description:
//
// Verilog Test Fixture created by ISE for module: ram
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////// module ram_tb; // Inputs
reg clka;
reg ena;
reg [:] wea;
reg [:] addra;
reg [:] dina;
reg clkb;
reg enb;
reg [:] addrb;
reg clk; // Outputs
wire [:] doutb; // Instantiate the Unit Under Test (UUT)
ram uut (
.clka(clk),
.ena(ena),
.wea(wea),
.addra(addra),
.dina(dina),
.clkb(clk),
.enb(enb),
.addrb(addrb),
.doutb(doutb)
);
integer i;
initial clk = ;
always #(`clk_period/)clk = ~clk;
initial begin
// Initialize Inputs
ena = ;
enb = ;
wea = ;
dina = ;
addra = ;
addrb = ;
#(`clk_period* + );
for (i=;i<=;i=i+)begin
wea = ;
dina = - i;
addra = i;
#`clk_period;
end
wea = ;
#(`clk_period*);
/*for (i=0;i<=15;i=i+1)begin
addrb = i;
#`clk_period;
end */
addrb = ;
#`clk_period;
addrb = ;
#`clk_period;
addrb = ;
#`clk_period; // Wait 100 ns for global reset to finish
#; // Add stimulus here end endmodule
testbench
modelsim的仿真结果为:
xilinx fpga中块ram的使用——简单双端口ram的使用的更多相关文章
- (Xilinx)FPGA中LVDS差分高速传输的实现
https://wenku.baidu.com/view/24e8bad86f1aff00bed51ef8.html
- 你真的会Xilinx FPGA的复位吗?
Get Smart About Reset: Think Local, Not Global. 对于复位信号的处理,为了方便我们习惯上采用全局复位,博主在很长一段时间内都是将复位信号作为一个I/O口, ...
- 巧用FPGA中资源
随着FPGA的广泛应用,所含的资源也越来越丰富,从基本的逻辑单元.DSP资源和RAM块,甚至CPU硬核都能集成在一块芯片中.在做FPGA设计时,如果针对FPGA中资源进行HDL代码编写,对设计的资源利 ...
- Xilinx FPGA结构
FPGA是什么?FPGA是现场可编程逻辑阵列,由可编程逻辑资源(LUT和 REG),可编程连线,可编程I/O构成.Xilinx的FPGA的基本结构是一样的,但随着半导体工艺的发展,FPGA的逻辑容量越 ...
- Xilinx FPGA LVDS应用
最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用.Xilinx FPGA中,主要通过原语实现差分信号的收发:OBUFDS(差分输出BUF),IBUFDS(差分输入BUF). 注意在分 ...
- FPGA中RAM使用探索
FPGA中RAM的使用探索.以4bitX4为例,数据位宽为4为,深度为4. 第一种方式,直接调用4bitX4的RAM.编写控制逻辑对齐进行读写. quartus ii 下的编译,资源消耗情况. 85C ...
- 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH
目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM).双端口RAM(DPRAM,Double Ports RAM) ...
- Xilinx FPGA引脚txt文件导入excel中
需求 为了把xilinx FPGA的官方引脚文件txt转成excel文件(实际官网中有对应的csv文件就是excel文件了...) xilinx FPGA引脚地址:https://china.xili ...
- 关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量 emesjx | 2014-08-13 13:13:30 阅读:1793 发布文章 当一个系统中含有多片(2片以上)Xil ...
随机推荐
- 3、尚硅谷_SSM高级整合_创建Maven项目.avi
Maven中dependencyManagement作用说明 在Maven多模块的时候,管理依赖关系是非常重要的,各种依赖包冲突,查询问题起来非常复杂,于是就用到了<dependencyMana ...
- vue环境配置脚手架搭建,生命周期,钩子
Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...
- BERT的前世今生
Transformer Transformer来自论文: All Attention Is You Need 别人的总结资源: 谷歌官方AI博客: Transformer: A Novel Neura ...
- 状态机模式 与 ajax 的结合运用
太神奇了,昨晚做了个梦,梦中我悟出一个道理:凡是涉及到异步操作而且需要返回值的函数,一定要封装成 Promise 的形式,假如返回值取决于多个异步操作的结果,那么需要对每个异步操作进行状态的设计,而且 ...
- 入门大数据---Spark部署模式与作业提交
一.作业提交 1.1 spark-submit Spark 所有模式均使用 spark-submit 命令提交作业,其格式如下: ./bin/spark-submit \ --class <ma ...
- 怎么更改maven工程jdk版本(默为1.5,怎么更改jdk版本为1.8)
使用maven 创建工程更改默认jdk版本(1.5)方法 step1: 找到自己项目的pom.xml文件,添加下图黄色区域代码(文末附上的有代码:可以直接复制) step2: 保存一下更改后的的pom ...
- JS判断 函数是否定义/变量是否定义
函数是否定义: <script type="text/javascript"> try { if(typeof FunName === "function&q ...
- 为DLL文件添加强名称
程序在编译时出现类似 "错误 1 程序集生成失败 -- 引用的程序集“XXXXXXXXXX”没有强名称" 这样的错误,是因为它不是强名称的,则需要进行以下操作: 例如:com.so ...
- 电脑添加多个SSH key
创建新得ssh key ssh-keygen -t rsa -C "excem@excemple" -f ~/.ssh/id_rsa.gitlab 编辑config vim ~/. ...
- day05数据绑定
流程:普通编辑-添加编辑模式 <text>数据绑定</text> <view>{{message}}</view> <button bindtap ...