真双口RAM读写设计

article/2025/9/28 22:08:34

dual port ram ---DP RAM

  • 1.1 概念
  • 1.2 读写冲突处理
  • 1.3 三种端口比较
  • 1.4 真双口RAM读写代码
  • 1.5 仿真波形

1.1 概念

     真双端口RAM有两个独立的读写端口,每个端口都可以独立发起读或者写。

1.2 读写冲突处理

     1、读和写冲突:如果读和写同时有效,且读和写是同一个地址时,发生RAM读写冲突,此时会把最新的写数据直接赋给读数据,称为写穿通到读2、写和写冲突:表示两个端口写使能同时有效且写地址相同,此时需要关断一个写,把两个写端口都需要更新的值处理到一个写端口上面,任何的DP RAM 都不支持写和写冲突。

1.3 三种端口比较

在这里插入图片描述

1.4 真双口RAM读写代码

下面展示 功能代码

`timescale 1ns / 1ps
///// 读写模块 Verilog 功能代码如下:module dp_ram_ab_rw(
input  sys_clk,
input  sys_rst_n);wire ram_wren;
wire ram_rden;wire [7:0] ram_rd_dataa;
wire [7:0] ram_rd_datab;wire [7:0] ram_wr_data;wire [4:0] ram_rd_addr;
wire [4:0] ram_wr_addr;wire rden_a;
wire rden_b;
wire wen_a;
wire wen_b;
wire [7:0] data_a;
wire [7:0] data_b;
wire [4:0] addr_a;
wire [4:0] addr_b;reg  [7:0] rw_cnt;
reg   flag;    assign  ram_wren = ((rw_cnt >= 8'd0) && (rw_cnt <= 8'd31))? 1'b1:1'b0 ;
assign  ram_rden = ((rw_cnt >= 8'd1) && (rw_cnt <= 8'd31))? 1'b1:1'b0 ;assign  ram_wr_addr = rw_cnt[7:0] ;
assign  ram_rd_addr = rw_cnt[7:0] - 1'b1 ;assign  ram_wr_data =  rw_cnt[4:0] ;assign  rden_a = flag ? 1'b0 :ram_rden ;
assign   wen_a = flag ? ram_wren :1'b0 ;
assign  addr_a = flag ? ram_wr_addr : ram_rd_addr ;
assign  data_a = flag ? ram_wr_data : 1'b0 ;assign  rden_b = flag ? ram_rden : 1'b0;
assign   wen_b = flag ? 1'b0 : ram_wren;
assign  addr_b = flag ? ram_rd_addr : ram_wr_addr ;
assign  data_b = flag ? 1'b0 : ram_wr_data ;always @(posedge sys_clk or negedge sys_rst_n)if(!sys_rst_n)rw_cnt <= 8'd0 ;else if(rw_cnt == 8'd63)rw_cnt <= 8'd0 ;elserw_cnt <= rw_cnt + 1'b1 ;always @(posedge sys_clk or negedge sys_rst_n)if(!sys_rst_n)flag <= 1'b0 ;else if(rw_cnt == 8'd31)flag <= ~flag ;dp_ram_ab_ctl  dp_ram_ab_ctl_inst(
.clka(sys_clk),
.clkb(sys_clk),
.wena(wen_a),
.wenb(wen_b),
.ena (rden_a),
.enb (rden_b),
.din_a(data_a),
.din_b(data_b),
.addra(addr_a),
.addrb(addr_b),.dout_a(ram_rd_dataa),
.dout_b(ram_rd_datab));endmodule// 控制模块 Verilog 功能代码如下:module dp_ram_ab_ctl(
input  clka,
input  clkb,
input  wena,
input  wenb,
input  ena,
input  enb,
input  [7:0] din_a,
input  [7:0] din_b,
input  [4:0] addra,
input  [4:0] addrb,output reg [7:0] dout_a,
output reg [7:0] dout_b);reg  [7:0] mem [31:0] ;always @(posedge clka) beginif(wena)mem[addra] <= din_a;if(wenb)mem[addrb] <= din_b;endalways @(posedge clka) beginif(ena)  dout_a <= mem[addra] ;elsedout_a <= 8'hx;end    always @(posedge clka) begin if(enb)dout_b <= mem[addra] ;elsedout_b <= 8'hx;end   endmodule// 仿真模块 Verilog 功能代码如下:module tb_dp_ram_ab();reg clk ;reg rst ;initial  beginclk = 1'b0 ;rst = 1'b0 ;#300rst = 1'b1 ;endalways #10 clk = ~clk ;dp_ram_ab_rw  dp_ram_ab_rw_inst(
.sys_clk(clk),
.sys_rst_n(rst));endmodule

1.5 仿真波形

在这里插入图片描述


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

相关文章

计算机组成原理_双口RAM和多模块存储器

计算机组成原理总目录 双口RAM和多模块存储器 1. 双口RAM 双口RAM&#xff0c;即RAM存储器有两个可供CPU读写的端口 在这样的结构体下&#xff0c;CPU在读写RAM时会出现以下四种情况 两个端口对不同地址单元进行读写操作&#xff0c;则二者互不影响两个端口对同一地址单元进行…

双口ram读写

项目名称 双口ram读写 具体要求 将0-1023存入ram并读出,a端口写入数据&#xff0c;b端口读出数据&#xff0c;两个端口的时钟频率设置相同&#xff0c;仿真时以50m写入12.5m读取 单端口时读和写不能同时进行&#xff0c;双端口ram多了一个读地址&#xff0c;可以同时读写 …

单口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五层模型 网络设备所在分层 网络分层…