0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三種write mode,你真的理解嗎?

電子工程師 ? 來(lái)源:lp ? 2019-03-20 16:55 ? 次閱讀

無(wú)論是用XPM_MEMORY還是IP Core的方式調(diào)用各種類型的RAM(單端口、簡(jiǎn)單雙端口或真雙端口),都會(huì)遇到這樣一個(gè)參數(shù):Write Mode。該參數(shù)有三個(gè)可選值,分別為write_first、read_first和no_change。那么這三個(gè)值到底有什么區(qū)別呢?應(yīng)用場(chǎng)景又如何?本質(zhì)上,這個(gè)參數(shù)是用來(lái)解決讀寫(xiě)沖突即同時(shí)對(duì)同一地址進(jìn)行讀寫(xiě)操作時(shí),寫(xiě)入該地址的數(shù)據(jù)是什么,讀出該地址的數(shù)據(jù)是什么。

write_first

首先看write_first(又稱為Read after Write,即先寫(xiě)后讀或?qū)憙?yōu)先),如圖1所示,相應(yīng)的讀寫(xiě)時(shí)序如圖2所示。不難看出,當(dāng)寫(xiě)使能WEA有效時(shí)(高有效),此時(shí)讀依然有效,故該模式下從地址bb和cc讀出的是新寫(xiě)入的數(shù)據(jù)1111和2222,也意味著寫(xiě)入地址bb和cc的數(shù)據(jù)分別為1111和2222。

圖1

圖2

read_first

再看read_first(又稱為Read before Write,即先讀后寫(xiě)或讀優(yōu)先),如圖3所示,相應(yīng)的讀寫(xiě)時(shí)序如圖4所示。此時(shí),從時(shí)序圖中可以看出讀出的是該地址上的原有數(shù)據(jù),同時(shí)會(huì)把新數(shù)據(jù)寫(xiě)入該地址。

圖3

圖4

no_change

最后我們看看no_change(No Read on Write,保持模式),如圖5所示,相應(yīng)的讀寫(xiě)時(shí)序如圖6所示。可以看出,一旦寫(xiě)操作有效,讀操作即無(wú)效,此時(shí)輸出端口保持寫(xiě)操作之前讀出的數(shù)據(jù)不變。

圖5

圖6

三種模式讓很多初學(xué)者覺(jué)得困惑。實(shí)際上,這并沒(méi)有什么神秘感,我們可以通過(guò)RTL代碼實(shí)現(xiàn)這三種功能,如圖7~圖9所示??梢钥吹絯rite_first由if else語(yǔ)句完成,we有效時(shí)寫(xiě)入新數(shù)據(jù),同時(shí)輸出等于輸入,無(wú)效時(shí)輸出等于該地址原有數(shù)據(jù)。read_first由if語(yǔ)句完成,寫(xiě)法類似于移位寄存器,這就是為什么寫(xiě)有效時(shí)讀出的是該地址上的原有數(shù)據(jù)。no_change由if else語(yǔ)句完成,dout在if分支上沒(méi)有被賦值,故保持不變,這是實(shí)現(xiàn)no_change的關(guān)鍵點(diǎn)。

write_fisrt Verilog代碼:

圖7

read_fisrt Verilog代碼:

圖8

no_change Verilog代碼:

圖9

從代碼風(fēng)格的角度而言,實(shí)現(xiàn)這三種功能是非常容易的。這也進(jìn)一步驗(yàn)證了RTL代碼風(fēng)格對(duì)設(shè)計(jì)的影響。因此,對(duì)于初學(xué)者而言,可以多花些時(shí)間研究代碼風(fēng)格,很可能會(huì)有事半功倍的效果。

思考一下:

對(duì)于一個(gè)單端口RAM,采用RTL代碼描述,如何在同一個(gè)模塊中實(shí)現(xiàn)如下功能:

(1)寬度可配置

(2)深度可配置

(3)寫(xiě)模式可配置

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6817

    瀏覽量

    88743
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4723

    瀏覽量

    68236
  • 讀寫(xiě)操作
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7111

原文標(biāo)題:write_first/read_first/no_change什么區(qū)別

文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    運(yùn)放的三種應(yīng)用

    運(yùn)放在電路中主要存在三種應(yīng)用,放大器,濾波器,振蕩器。再這三種應(yīng)用電路中,運(yùn)放的兩大特點(diǎn)虛短虛斷仍然成立嗎? 在阻尼振蕩器中,工作過(guò)程是否按照我描述的這樣,在反相輸入端加一個(gè)近似鋸齒波的電流源,正半
    發(fā)表于 01-26 16:18

    SRAM的基礎(chǔ)模塊存有三種情況

    介紹的是關(guān)于SRAM的基礎(chǔ)模塊存有三種情況:standby(空余),read(讀)和write(寫(xiě))。 第一情況:standby假如WL沒(méi)有選為上拉電阻,那么M5和M62個(gè)做為操縱用的晶體
    發(fā)表于 09-02 11:56

    關(guān)于In-Cell、On-Cell、OGS三種屏幕技術(shù)的知識(shí)點(diǎn)看完就懂了

    關(guān)于In-Cell、On-Cell、OGS三種屏幕技術(shù)的知識(shí)點(diǎn)看完就懂了
    發(fā)表于 06-03 06:22

    STM32的三種開(kāi)發(fā)方式

    1 STM32的三種開(kāi)發(fā)方式通常新手在入門(mén)STM32的時(shí)候,首先都要先選擇一要用的開(kāi)發(fā)方式,不同的開(kāi)發(fā)方式會(huì)導(dǎo)致編程的架構(gòu)是完全不一樣的。一般大多數(shù)都會(huì)選用標(biāo)準(zhǔn)庫(kù)和HAL庫(kù),而極少部分人會(huì)通
    發(fā)表于 08-05 06:56

    STM32的三種開(kāi)發(fā)方式分享

    STM32的三種開(kāi)發(fā)方式通常新手在入門(mén)STM32的時(shí)候,首先都要先選擇一要用的開(kāi)發(fā)方式,不同的開(kāi)發(fā)方式會(huì)導(dǎo)致編程的架構(gòu)是完全不一樣的。一般大多數(shù)都會(huì)選用標(biāo)準(zhǔn)庫(kù)和HAL庫(kù),而極少部分人會(huì)...
    發(fā)表于 12-01 07:59

    STM32的三種boot模式介紹

    淺識(shí)STM32的三種boot模式文章目錄淺識(shí)STM32的三種boot模式任務(wù)摘要一、認(rèn)識(shí)boot1.三種BOOT模式介紹2.開(kāi)發(fā)BOOT模式選擇3.STM32三種啟動(dòng)模式4.
    發(fā)表于 12-10 07:46

    是否真的理解點(diǎn)燈了

    是否真的理解點(diǎn)燈了?
    發(fā)表于 01-24 06:22

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

    基于DSP***的模擬SPI————真的理解SPI通信嗎?? 真的理解SPI是怎么通信的嗎?
    發(fā)表于 02-17 06:37

    半導(dǎo)體極管的三種基本放大電路的三種連接法電路圖

    半導(dǎo)體極管的三種基本放大電路的三種連接法電路圖
    發(fā)表于 05-06 14:55 ?5570次閱讀
    半導(dǎo)體<b class='flag-5'>三</b>極管的<b class='flag-5'>三種</b>基本放大電路的<b class='flag-5'>三種</b>連接法電路圖

    三種投影機(jī)散熱技術(shù)是哪三種

    三種投影機(jī)散熱技術(shù)是哪三種 如今在日常的學(xué)習(xí)、工作、生活中,投影機(jī)的應(yīng)用越來(lái)越頻繁。由于投影機(jī)屬于高
    發(fā)表于 02-06 10:33 ?560次閱讀

    三種不同的“防 Ping”技巧

    三種不同的“防 Ping”技巧 淺析三種不同的“防 Ping”方法   眾所周知,Ping命令是一個(gè)非常有用的網(wǎng)絡(luò)命令,大家常用它
    發(fā)表于 04-14 13:53 ?1119次閱讀

    最推薦的三種手機(jī)內(nèi)存配置

    手機(jī)內(nèi)存到底怎么選?這三種配置最推薦,選對(duì)了嗎?
    的頭像 發(fā)表于 08-28 17:17 ?1w次閱讀

    交換機(jī)三種端口模式Access、Hybrid和Trunk的理解

    這篇文章主要介紹了交換機(jī)三種端口模式Access、Hybrid和Trunk的理解,需要的朋友可以參考下
    發(fā)表于 10-09 14:24 ?11次下載

    狀態(tài)機(jī)的三種騷操作,值得了解

    狀態(tài)機(jī)的三種騷操作,值得了解
    的頭像 發(fā)表于 09-21 18:06 ?451次閱讀
    狀態(tài)機(jī)的<b class='flag-5'>三種</b>騷操作,值得<b class='flag-5'>你</b>了解

    vim的三種工作模式有哪些

    Vim是一個(gè)功能強(qiáng)大的文本編輯器,它具有三種工作模式:普通模式、插入模式和命令行模式。以下是對(duì)這三種模式的介紹: 普通模式(Normal Mode) 普通模式是Vim的默認(rèn)模式,當(dāng)啟動(dòng)Vim時(shí),它會(huì)
    的頭像 發(fā)表于 08-30 14:52 ?567次閱讀