0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种write mode,你真的理解吗?

电子工程师 来源:lp 2019-03-20 16:55 次阅读

无论是用XPM_MEMORY还是IP Core的方式调用各种类型的RAM(单端口、简单双端口或真双端口),都会遇到这样一个参数:Write Mode。该参数有三个可选值,分别为write_first、read_first和no_change。那么这三个值到底有什么区别呢?应用场景又如何?本质上,这个参数是用来解决读写冲突即同时对同一地址进行读写操作时,写入该地址的数据是什么,读出该地址的数据是什么。

write_first

首先看write_first(又称为Read after Write,即先写后读或写优先),如图1所示,相应的读写时序如图2所示。不难看出,当写使能WEA有效时(高有效),此时读依然有效,故该模式下从地址bb和cc读出的是新写入的数据1111和2222,也意味着写入地址bb和cc的数据分别为1111和2222。

图1

图2

read_first

再看read_first(又称为Read before Write,即先读后写或读优先),如图3所示,相应的读写时序如图4所示。此时,从时序图中可以看出读出的是该地址上的原有数据,同时会把新数据写入该地址。

图3

图4

no_change

最后我们看看no_change(No Read on Write,保持模式),如图5所示,相应的读写时序如图6所示。可以看出,一旦写操作有效,读操作即无效,此时输出端口保持写操作之前读出的数据不变。

图5

图6

三种模式让很多初学者觉得困惑。实际上,这并没有什么神秘感,我们可以通过RTL代码实现这三种功能,如图7~图9所示。可以看到write_first由if else语句完成,we有效时写入新数据,同时输出等于输入,无效时输出等于该地址原有数据。read_first由if语句完成,写法类似于移位寄存器,这就是为什么写有效时读出的是该地址上的原有数据。no_change由if else语句完成,dout在if分支上没有被赋值,故保持不变,这是实现no_change的关键点。

write_fisrt Verilog代码:

图7

read_fisrt Verilog代码:

图8

no_change Verilog代码:

图9

从代码风格的角度而言,实现这三种功能是非常容易的。这也进一步验证了RTL代码风格对设计的影响。因此,对于初学者而言,可以多花些时间研究代码风格,很可能会有事半功倍的效果。

思考一下:

对于一个单端口RAM,采用RTL代码描述,如何在同一个模块中实现如下功能:

(1)宽度可配置

(2)深度可配置

(3)写模式可配置

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6899

    浏览量

    88844
  • 代码
    +关注

    关注

    30

    文章

    4752

    浏览量

    68362
  • 读写操作
    +关注

    关注

    0

    文章

    5

    浏览量

    7115

原文标题:write_first/read_first/no_change什么区别

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    运放的三种应用

    运放在电路中主要存在三种应用,放大器,滤波器,振荡器。再这三种应用电路中,运放的两大特点虚短虚断仍然成立吗? 在阻尼振荡器中,工作过程是否按照我描述的这样,在反相输入端加一个近似锯齿波的电流源,正半
    发表于 01-26 16:18

    SRAM的基础模块存有三种情况

    介绍的是关于SRAM的基础模块存有三种情况:standby(空余),read(读)和write(写)。 第一情况:standby假如WL沒有选为上拉电阻,那么M5和M62个做为操纵用的晶体
    发表于 09-02 11:56

    关于In-Cell、On-Cell、OGS三种屏幕技术的知识点看完就懂了

    关于In-Cell、On-Cell、OGS三种屏幕技术的知识点看完就懂了
    发表于 06-03 06:22

    STM32的三种开发方式

    1 STM32的三种开发方式通常新手在入门STM32的时候,首先都要先选择一要用的开发方式,不同的开发方式会导致编程的架构是完全不一样的。一般大多数都会选用标准库和HAL库,而极少部分人会通
    发表于 08-05 06:56

    STM32的三种开发方式分享

    STM32的三种开发方式通常新手在入门STM32的时候,首先都要先选择一要用的开发方式,不同的开发方式会导致编程的架构是完全不一样的。一般大多数都会选用标准库和HAL库,而极少部分人会...
    发表于 12-01 07:59

    STM32的三种boot模式介绍

    浅识STM32的三种boot模式文章目录浅识STM32的三种boot模式任务摘要一、认识boot1.三种BOOT模式介绍2.开发BOOT模式选择3.STM32三种启动模式4.
    发表于 12-10 07:46

    是否真的理解点灯了

    是否真的理解点灯了?
    发表于 01-24 06:22

    真的理解SPI是怎么通信的吗

    基于DSP***的模拟SPI————真的理解SPI通信吗?​ 真的理解SPI是怎么通信的吗?
    发表于 02-17 06:37

    半导体极管的三种基本放大电路的三种连接法电路图

    半导体极管的三种基本放大电路的三种连接法电路图
    发表于 05-06 14:55 5576次阅读
    半导体<b class='flag-5'>三</b>极管的<b class='flag-5'>三种</b>基本放大电路的<b class='flag-5'>三种</b>连接法电路图

    三种投影机散热技术是哪三种

    三种投影机散热技术是哪三种 如今在日常的学习、工作、生活中,投影机的应用越来越频繁。由于投影机属于高
    发表于 02-06 10:33 562次阅读

    三种不同的“防 Ping”技巧

    三种不同的“防 Ping”技巧 浅析三种不同的“防 Ping”方法   众所周知,Ping命令是一个非常有用的网络命令,大家常用它
    发表于 04-14 13:53 1121次阅读

    最推荐的三种手机内存配置

    手机内存到底怎么选?这三种配置最推荐,选对了吗?
    的头像 发表于 08-28 17:17 1w次阅读

    交换机三种端口模式Access、Hybrid和Trunk的理解

    这篇文章主要介绍了交换机三种端口模式Access、Hybrid和Trunk的理解,需要的朋友可以参考下
    发表于 10-09 14:24 11次下载

    状态机的三种骚操作,值得了解

    状态机的三种骚操作,值得了解
    的头像 发表于 09-21 18:06 461次阅读
    状态机的<b class='flag-5'>三种</b>骚操作,值得<b class='flag-5'>你</b>了解

    vim的三种工作模式有哪些

    Vim是一个功能强大的文本编辑器,它具有三种工作模式:普通模式、插入模式和命令行模式。以下是对这三种模式的介绍: 普通模式(Normal Mode) 普通模式是Vim的默认模式,当启动Vim时,它会
    的头像 发表于 08-30 14:52 642次阅读