ram自己写?用IP?
前言
ram这种东西,可以用ip方便,也可以自己写代码描述它。
以下讨论单口ram;8bit*256
流程
1.IP:
使用IP当然是最方便的事情啦,但可移植性差而且可定制性较差。
仿真波形:
2.Verilog描述:
描述就得自己写自己调试代码了,不过写好就是一劳永逸啦。。。
开始写了第一版代码:
1 //************************************************ 2 // Filename : ram.v 3 // Author : Kingstacker 4 // Company : School 5 // Email : kingstacker_work@163.com 6 // Device : Altera cyclone4 ep4ce6f17c8 7 // Description : 8bit*256 ram 8 //************************************************ 9 module ram #( parameter DATA_WIDTH = 8,DEPTH = 256,ADDR_WIDTH = 8)( 10 //input; 11 input wire clk, 12 input wire wren, //write high enable; 13 input wire [ADDR_WIDTH-1:0] address, 14 input wire [DATA_WIDTH-1:0] data, 15 //output; 16 output reg [DATA_WIDTH-1:0] q 17 ); 18 reg [DATA_WIDTH-1:0] memory[0:DEPTH-1]; 19 //read; 20 always @(posedge clk ) begin 21 q <= memory[address]; 22 end //always 23 //write; 24 always @(posedge clk ) begin 25 if(wren) begin 26 memory[address] <= data; 27 end 28 end //always 29 endmodule
综合RTL:
仿真波形:读写同时的时候会有冲突导致xx。
第二版代码:地址寄存一拍。
1 //************************************************ 2 // Filename : ram.v 3 // Author : Kingstacker 4 // Company : School 5 // Email : kingstacker_work@163.com 6 // Device : Altera cyclone4 ep4ce6f17c8 7 // Description : 8bit*256 ram 8 //************************************************ 9 module ram #( parameter DATA_WIDTH = 8,DEPTH = 256,ADDR_WIDTH = 8)( 10 //input; 11 input wire clk, 12 input wire wren, //write high enable; 13 input wire [ADDR_WIDTH-1:0] address, 14 input wire [DATA_WIDTH-1:0] data, 15 //output; 16 output wire [DATA_WIDTH-1:0] q 17 ); 18 reg [DATA_WIDTH-1:0] memory[0:DEPTH-1]; 19 reg [ADDR_WIDTH-1:0] address_reg; 20 //read; 21 always @(posedge clk ) begin 22 address_reg <= address; 23 end //always 24 assign q = memory[address_reg]; 25 //write; 26 always @(posedge clk ) begin 27 if(wren) begin 28 memory[address] <= data; 29 end 30 end //always 31 32 endmodule
综合rtl:
仿真波形:
以上。
转载于:https://www.cnblogs.com/kingstacker/p/7545069.html
ram自己写?用IP?相关推荐
- FPGA逻辑设计回顾(13)RAM以及ROM的IP核定制以及关键参数
文章目录 前言 RAM IP的定制 Xilinx的IP定制位置 Block RAM的定制过程 第一页 第二页 第三页 第四页 第五页 Block RAM的延迟讨论 ROM IP核的定制 总结 前言 本 ...
- 用python写一个ip查询工具库
首先附上一张高清有码的图,效果如图所示. 最近喜欢上了Python,总想用python搞点事情. 写此工具的目的 最近一段时间遇见过不少钓鱼网站,于是乎就在想,这些网站的服务器都在哪里? 为何如此猖獗 ...
- verilog基础篇RAM IP核的使用
在该页面中,我们去掉了q output port(去掉输出寄存器),并且添加了一个rden读使能信号,所谓rden读使能信号就是,当该信号为高电平时,我们才可以读取RAM IP核中的数据. 其余的页面 ...
- 【正点原子FPGA连载】第十九章IP核之双端口RAM实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...
- IP核的使用之RAM(Vivado)
IP核的使用之RAM(Vivado) 文章目录 IP核的使用之RAM(Vivado) 一.引言 二.RAM IP核及相关内容扫盲 1.RAM简介 2.RAM IP核分类(Xilinx) 三.分布式RO ...
- 【verilog】 Vivado-Simple Dual-Port RAM IP的使用(Xilinx FPGA,双口RAM,IP使用)
简单双口RAM的IP核 配置IP 例化顶层 测试 波形 简单双口RAM的IP核 分A端口和B端口 A为输入端口,负责数据的写入 B端口为输出端口,负责数据的读出 两端的时钟可以不同,还允许在写入A的同 ...
- ZYNQ之FPGA学习----RAM IP核使用实验
1 RAM IP核介绍 RAM 的英文全称是 Random Access Memory, 即随机存取存储器, 它可以随时把数据写入任一指定地址的存储单元,也可以随时从任一指定地址中读出数据,其读写速度 ...
- 【正点原子MP157连载】 第十四章 IP核之RAM实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- 【正点原子FPGA连载】第十四章 IP核之RAM实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
最新文章
- Access应用日志一
- 20170623_oracle基础知识_常见问题
- 数据库查询速度极慢【个人工作问题解决过程记录】
- python输入一个数组输出24进制式的时间_python获取时间,自定义的时间格式,时间戳,十六进制时间类型输出...
- 《组织行为学》_09 彩虹理论:人力资本越来越高怎么办?
- 通过webbrowser控件获取验证码
- 团队冲刺第六天个人博客
- 【简单数论】H - A^X mod P_HRBUST - 2049_31行代码AC
- golang 热插拨 插件_从零开始实现一个插件化框架(一)
- Win7系统打开摄像头提示“请检查装置连接状况”怎么办
- Understanding glibc malloc - ptmalloc
- Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源
- 高质量编程之编译警告级别
- 密码学基础之对称密钥的分发和存储
- Ansys-结构动力学分析-有预应力琴弦横向振动模态分析学习收获
- wpa_supplicant 框架
- 网站建设教程:企业怎么自己建网站?
- 51单片机无法烧录程序的N种解决办法
- 【雕爷学编程】Arduino动手做(79)---MQ135空气检测模块
- AI-常见机器学习算法介绍
热门文章
- 什么是数据库触发器?
- 使用图形界面Anaconda创建新环境的一个小问题
- python库声纹_针对亿级大规模声纹库检索,有哪些简洁、高效的算法?
- python实现二分法查找_python二分法查找
- 电脑显示屏亮度怎么调_金合光电丨深圳led显示屏厂家为您诠释行业专业术语
- python写文件追加 按行追加_你真的会用python进行文件操作吗
- 3个阶段 项目征名_3个月!签约亿元以上项目66个
- 计算器小程序java课程设计,java课程设计----计算器小程序报告.doc
- python3 threading.lock_Python3 threading
- 笔记本电脑怎样连接打印机_怎样使用打印机,打印机的基础知识