双口ram读写

article/2025/9/28 22:44:22

项目名称

双口ram读写

具体要求

将0-1023存入ram并读出,a端口写入数据,b端口读出数据,两个端口的时钟频率设置相同,仿真时以50m写入12.5m读取

单端口时读和写不能同时进行,双端口ram多了一个读地址,可以同时读写

设计架构

                  

代码设计

verilog代码设计

ram ipcore创建,位宽10,深度1024

顶层模块设计

module dram_top(input					a_clk,input					b_clk,input					rst_n,output [9:0]		a_q,output [9:0]		b_q
);wire a_wren;
wire b_wren;
wire [9:0]a_addr;
wire [9:0]b_addr;
wire [9:0]a_data;
dram_ctrl dram_ctrl(.a_clk(a_clk),.b_clk(b_clk),.rst_n(rst_n),.a_wren(a_wren),//写请求.a_addr(a_addr),//写地址.a_data(a_data),//写数据.b_wren(b_wren),//写请求.b_addr(b_addr) //写地址
);my_ram  my_ram(.address_a(a_addr),.address_b(b_addr),.clock_a(a_clk),.clock_b(b_clk),.data_a(a_data),.data_b(),.wren_a(a_wren),.wren_b(b_wren),.q_a(a_q),.q_b(b_q)
);endmodule

ram读写控制

module dram_ctrl(input					a_clk,input					b_clk,input					rst_n,output	reg    	a_wren,//写请求output	reg[9:0]	a_addr,//写地址output	reg[9:0]	a_data,//写数据output 	reg		b_wren,//写请求output	reg[9:0] b_addr //写地址
);always@(posedge a_clk or negedge rst_n)if(!rst_n)begina_wren<=0;a_addr<=10'd0;a_data<=10'd0;endelse if(a_addr<10'd1023)begina_wren<=1;a_addr<=a_addr+1'b1;a_data<=a_data+1'b1;endelsebegina_wren<=0;a_addr<=a_addr;a_data<=a_data;end
//a端口写数据,b端口读数据,b端口写请求关闭,读出a端口的数据
always@(posedge b_clk or negedge rst_n)if(!rst_n)beginb_wren<=0;b_addr<=10'd0;endelsebeginb_addr<=b_addr+1;end
endmodule

仿真代码

`timescale 1ns/1ns
module dram_top_tb;reg					a_clk;reg					b_clk;reg					rst_n;wire    [9:0]		a_q;wire    [9:0]		b_q;dram_top dram_top(.a_clk(a_clk),.b_clk(b_clk),.rst_n(rst_n),.a_q(a_q),.b_q(b_q)
);initial a_clk=0;
always #10 a_clk=~a_clk;//以50mhz的时钟写入initial b_clk=0;
always #40 b_clk=~b_clk;//以12.5mhz的时钟读取数据initial beginrst_n=0;#200;rst_n=1;
endendmodule

仿真结果

 


http://chatgpt.dhexx.cn/article/TqmTWw7k.shtml

相关文章

单口RAM、双口RAM、FIFO

单口RAM、双口RAM、FIFO 单口与双口 单口与双口的区别在于&#xff0c;单口只有一组数据线与地址线&#xff0c;因此读写不能同时进行&#xff1b;而双口有两组数据线与地址线&#xff0c;读写可同时进行&#xff1b;FIFO读写可同时进行&#xff0c;可以看作是双口&#xff1…

双口RAM浅谈

双口RAM&#xff0c; 基本上是10年前的东西了&#xff0c;当前设计的项目应该很少会用到这类器件了&#xff0c;不光是双口RAM&#xff0c;其它随着MCU性能的不断增加&#xff0c;很多器件都会被替代到&#xff0c;不再需要了&#xff0c;比如CPLD&#xff0c;之前公司的板子上…

FPGA之RAM详解,真双口RAM的使用

真双口RAM IP练习 真双口RAM可以说是灵活性最大的RAM IP核&#xff0c;因为它赋予了用户最大的设计空间&#xff0c;两个可以独立读写地址空间的端口&#xff0c;充分释放了FPGA程序设计上的可能。 但是实际上真双口RAM在工程项目中还是和单双口RAM一样使用频率比较低的&#x…

双口ram

双口ram的功能实在很妙&#xff0c;能把二个除理器合二为一&#xff0c;强强联合&#xff0c;发挥更强的功能。如小时候看过的动画片&#xff0c;当打不过怪物时&#xff0c;动画的主角总会合体&#xff0c;增加战斗力&#xff0c;把怪物打败。又口ram提供了处理器“合体”的方…

数字IC笔面基础,项目常用IP——双口RAM(简介及Verilog实现)

双口RAM简介及Verilog实现 写在前面的话双口RAM简介伪双口RAM框图&#xff1a;&#xff08;Xilinx FPGA&#xff09;真双口RAM框图&#xff1a;&#xff08;Xilinx FPGA&#xff09;RAM读写时序图伪双口RAM读写实列 简单的双口RAM的Verilog实现总结 写在前面的话 RAM&#xff…

双口RAM及Vivado RAM IP核的使用

目录 1.双口RAM概述 2.Vivado 双口RAM IP核 2.1 Block Memory Generator概述 2.2 真双口RAM的设置 2.2.1 Basic设置 2.2.2 Port设置 3.双口RAM例程 4.仿真 4.后记 5.参考文献 1.双口RAM概述 双口RAM&#xff08;dual port RAM&#xff09;在异构系统中应用广泛&…

网络原理(一):初识网络

网络发展史 独立模式 独立模式&#xff1a;计算机之间相互独立&#xff1b; 在计算机最初的时候&#xff0c;每个计算机都是独立存在的。 我们拿游戏来举例&#xff0c;但是的计算机只能玩玩单机游戏&#xff0c;游戏通过了就没意思了。 随着时代的发展&#xff0c;来到了…

网络原理(小结)

网络原理 前言网络七层/五层模型OSI七层网络模型TCP/IP 五层网络模型封装和分用 TCP/IP五层网络模型各层代表协议的详解应用层常见状态码HTTP常见Header头ServletSession和CookieHTTP协议的特点HTTPSHTTP与HTTPS的区别 传输层网络传输的五元组端口号UDP协议TCP协议TCP如何保证数…

网络原理 | 网络初识之网络基础概念学习

目录 局域网与广域网 网络通信基础 IP地址 端口号 网络协议 五元组 局域网与广域网 根据网络互联的规模&#xff0c;可以将网络划分为局域网(LAN)和广域网(WAN). 网络互连即将多台计算机连接在一起&#xff0c;完成数据共享&#xff0c;数据共享的本质是网络数据传输&…

网络的基本原理

文章目录 一、计算机网络背景二、局域网和广域网1.局域网(LAN)2.广域网(WAN) 三、认识协议1.协议的概念2.协议分层3.网络OSI七层模型4.TCP/IP五层模型5.数据的封装和解包 四、局域网内主机交互与跨网段主机交互 一、计算机网络背景 我们用计算机完成一项工作时&#xff0c;不可…

网络:网络协议基本原理

引入 进程间通信&#xff0c;其实是通过内核的数据结构完成的&#xff0c;主要用于在一台linux上两个进程之间的通信。但是&#xff0c;一旦超出一台机器的范畴&#xff0c;我们就需要一种跨进程的通信机制。一台机器将自己想要表达的内容&#xff0c;按照某种约定好的格式发送…

网络原理(初识)

网络原理&#xff08;网络初识&#xff09; 1、局域网LAN&#xff08;Local Area Network&#xff09; &#xff08;1&#xff09;Local 即标识了局域网是本地&#xff0c;局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信&#xff0c;又称为内网&#xff1b;局…

网络原理(IP协议)

目录 IP协议IP地址IP 地址由网络和主机两部分标识组成IP 地址的分类广播地址IP多播子网掩码 路由IP 地址与路由控制 IP 分包与组包什么是IP分片为什么要进行IP分片IP分片是如何组装的路径 MTU 发现 IP协议 IP&#xff08;IPv4、IPv6&#xff09;相当于 OSI 参考模型中的第3层—…

网络原理——网络协议

目录 传输层协议TCP协议TCP协议格式段TCP原理连接管理可靠传输流量控制拥塞控制延迟应答和捎带应答错误检测TCP异常 UDP协议UDP协议格式段UDP协议特点无连接不可靠面向数据报大小受限 网络层协议IP协议 数据链路层协议​以太网MTUARP协议 传输层协议 ​ 传输层负责数据能够从发…

网络原理 2

文章目录 1. 网络层2. 数据链路层3. DNS 前言 : 上文已经 将 网络层 和 传输层 说完了&#xff0c; 下面我们来学习以下 网络层 和 数据链路层 里 相关的知识 &#xff0c; 关于 网络层 和 数据链路层 的知识 简单了解一下即可 . 1. 网络层 网络层 主要 做两件事 : 1.地址管…

计算机网络原理最详细解说

一、计算机网络概述 时代不同了&#xff0c;大家现在生活都好了&#xff0c;家家户户基本都有电脑&#xff0c;而且我们都习惯了使用电脑办公&#xff0c;打打游戏&#xff0c;聊聊天等等。 那我们一起来想一个场景&#xff1a;如果没有了网络&#xff0c;我们是不是就不能使…

[网络原理] 网络中的基本概念

人生,本就是苦乐参半,这样的生活才是丰富多彩. 文章目录 前言1. IP地址2. 端口号3. 协议4. 五元组5. 协议分层6. OSI七层模型7. TCP/IP协议8. 封装和分用9. 客户端与服务端10. 请求与响应 前言 本章开始,我们开启网络部分的知识大门. 1. IP地址 1.定义: IP地址主要用于表示网…

网络原理-网络发展史和通信基础

目录 1.网络发展史 面向终端的计算机网络 计算机网络阶段(局域网LAN) 组网方式 计算机网络互联阶段(广域网WAN) 2.通信基础 IP地址 端口号 网络协议 协议的作用 知名协议的默认端口 协议分层 分层的作用 OSI七层模型 TCP/IP五层模型 网络设备所在分层 网络分层…

【Linux】网络原理

本篇博客让我们一起来了解一下网络的基本原理 1.网络发展背景 关于网络发展的历史背景这种东西就不多bb了&#xff0c;网上很容易就能找到参考资料&#xff0c;我的专业性欠缺&#xff0c;文章参考意义也不大。这里只做简单说明。 网络发展经过了如下几个模式 独立模式&…

计算机网络 ——网络原理之初识

✨计算机网络 ——初识网络原理 作者介绍: &#x1f393;作者:偷偷敲代码的青花瓷&#x1f431;‍&#x1f680; &#x1f440;作者的Gitee:代码仓库 ✨✨我和大家一样都是热爱编程✨,很高兴能在此和大家分享知识,希望在分享知识的同时,能和大家一起共同进步,取得好成绩&#x…