那曲檬骨新材料有限公司

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

    文章

    7145

    瀏覽量

    89582
  • 代碼
    +關注

    關注

    30

    文章

    4828

    瀏覽量

    69055
  • 讀寫操作
    +關注

    關注

    0

    文章

    5

    瀏覽量

    7136

原文標題: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 ?5616次閱讀
    半導體<b class='flag-5'>三</b>極管的<b class='flag-5'>三種</b>基本放大電路的<b class='flag-5'>三種</b>連接法電路圖

    三種投影機散熱技術是哪三種

    三種投影機散熱技術是哪三種 如今在日常的學習、工作、生活中,投影機的應用越來越頻繁。由于投影機屬于高
    發表于 02-06 10:33 ?585次閱讀

    三種不同的“防 Ping”技巧

    三種不同的“防 Ping”技巧 淺析三種不同的“防 Ping”方法   眾所周知,Ping命令是一個非常有用的網絡命令,大家常用它
    發表于 04-14 13:53 ?1138次閱讀

    最推薦的三種手機內存配置

    手機內存到底怎么選?這三種配置最推薦,選對了嗎?
    的頭像 發表于 08-28 17:17 ?1.1w次閱讀

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

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

    狀態機的三種騷操作,值得了解

    狀態機的三種騷操作,值得了解
    的頭像 發表于 09-21 18:06 ?515次閱讀
    狀態機的<b class='flag-5'>三種</b>騷操作,值得<b class='flag-5'>你</b>了解

    vim的三種工作模式有哪些

    Vim是一個功能強大的文本編輯器,它具有三種工作模式:普通模式、插入模式和命令行模式。以下是對這三種模式的介紹: 普通模式(Normal Mode) 普通模式是Vim的默認模式,當啟動Vim時,它會
    的頭像 發表于 08-30 14:52 ?890次閱讀
    网络百家乐官网破解器| 防伪百家乐筹码币套装| 彰化县| 天博百家乐官网娱乐城| 全讯网备用| 百家乐官网英皇娱乐场| 大发888官方网站登录| 综合百家乐官网博彩论坛| 莆田棋牌游戏| 富二代百家乐官网的玩法技巧和规则 | 爱博| 太阳城百家乐网址--| 百家乐官网如何破解| 上海百家乐的玩法技巧和规则| 百家乐官网游戏机路法| 大发888在线娱乐城加盟合作| V博百家乐官网的玩法技巧和规则 中骏百家乐官网的玩法技巧和规则 | 子长县| 百家乐哪里可以玩| 真人百家乐官网赌法| 大发888的比赛怎么报名| 墓地附近做生意风水| 百家乐官网买隔一数| 百家乐娱乐城体验金| 百家乐官网游戏解码器| 智尊国际娱乐| 百家乐庄和闲的赌法| 兖州市| 西游记百家乐娱乐城| 百家乐官网那个平好| 百家乐官网下注口诀| 百家乐娱乐下载| 如何打百家乐官网的玩法技巧和规则| 恒和国际| 利都百家乐国际赌场娱乐网规则 | bet365主页| 定做百家乐桌子| 广东百家乐官网桌布| k7娱乐| 全讯网址| 百家乐的视频百家乐|