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

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

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

Xilinx RAM地址沖突

FPGA開發(fā)之路 ? 來源:FPGA開發(fā)之路 ? 2023-01-15 16:15 ? 次閱讀

Address collision 指的是RAM的兩個(gè)port同時(shí)訪問相同的地址可能導(dǎo)致數(shù)據(jù)發(fā)生錯(cuò)誤的情況。在Xilinx中,不同的RAM,不同的RAM配置會導(dǎo)致address collision時(shí)不同的數(shù)據(jù)結(jié)果。

Distributed RAM

對于DRAM,寫數(shù)據(jù)是 synchronous write,需要一個(gè)時(shí)鐘周期, 讀數(shù)據(jù)是 asynchronous read,當(dāng)前時(shí)鐘周期就能讀出數(shù)據(jù)。因此當(dāng)在某一個(gè)cycle讀寫同時(shí)訪問同一地址時(shí),讀數(shù)據(jù)是 old data,即該地址原存放的數(shù)據(jù)而不是新要寫入的數(shù)據(jù)。

Block RAM

BRAM的讀寫都是 synchronous。BRAM的兩個(gè)Port分別為 PortA 和 PortB。

我們可以將 BRAM address collision 分為以下三類。

PortA 和 PortB 同時(shí)讀數(shù)據(jù)

兩個(gè)Port都會正確讀出該地址中的數(shù)據(jù)。

PortA 和 PortB 同時(shí)寫入數(shù)據(jù)

該地址最終被寫入的數(shù)據(jù)是 non-deterministic。因此設(shè)計(jì)中要避免兩個(gè)port同時(shí)寫數(shù)據(jù)的address collision。

PortA 寫數(shù)據(jù)同時(shí) PortB 讀數(shù)據(jù),或者是 PortA 讀數(shù)據(jù)同時(shí) PortB 寫數(shù)據(jù)

在這種情況下,數(shù)據(jù)總是會被正確寫入到RAM中,但是讀出的數(shù)據(jù)內(nèi)容則依賴于BRAM的配置。BRAM的write mode可以配置為三種模式,write first,read first 和 no change。

下圖為不同配置下的數(shù)據(jù)讀寫結(jié)果??梢钥吹疆?dāng) write port 配置為 READ_FIRST時(shí),不管 read port 如何配置,都會讀出 old data。而當(dāng) write port 配置為 WRITE_FIRST 或 NO_CHANGE時(shí),不管 read port 如何配置,讀數(shù)據(jù)都是 X,即 undeterministic。因此在可能發(fā)生address collision 的BRAM,一般將兩個(gè) port都配置為 READ_FIRST,以確保數(shù)據(jù)讀出的正確。

be7c4db8-94a4-11ed-bfe3-dac502259ad0.png

Ultra RAM

URAM的讀寫也都是 synchronous。URAM比較有意思的一點(diǎn)是,PortA 總是先于 PortB 執(zhí)行操作,因此在 address collision 我們會看到不同于BRAM的結(jié)果。

PortA寫,PortB讀。PortB 會讀出new data。(因?yàn)镻ortA先執(zhí)行,所以在PortB讀執(zhí)行時(shí),new data已經(jīng)寫入RAM中了)

PortA讀,PortB寫。PortA 會讀出old data。(同樣的,這也是因?yàn)镻ortA先執(zhí)行)

PortA寫,PortB寫。最終該地址寫入的值是PortB的值。(PortB因?yàn)楹髨?zhí)行會覆蓋PortA寫的值)

beafa7ee-94a4-11ed-bfe3-dac502259ad0.png

Reference

《UltraScale Architecture Configurable Logic Block》

《UltraScale Architecture Memory Resources》

審核編輯 :李倩

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

    關(guān)注

    8

    文章

    6837

    瀏覽量

    88754
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1365

    瀏覽量

    114476
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2158

    瀏覽量

    120874

原文標(biāo)題:Xilinx RAM Address Collision

文章出處:【微信號:FPGA開發(fā)之路,微信公眾號:FPGA開發(fā)之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    工業(yè)設(shè)備IP地址沖突如何通過NAT網(wǎng)關(guān)解決

    已經(jīng)陷入枯竭,IP地址重復(fù)便有可能導(dǎo)致數(shù)據(jù)送錯(cuò),通信網(wǎng)絡(luò)便會出現(xiàn)故障,無論是廣域網(wǎng)還是局域網(wǎng)都有可能面對到IP沖突的問題。 對此,物通博聯(lián)提供基于NAT網(wǎng)關(guān)的解決方案。網(wǎng)關(guān)可以通過WAN和LAN多個(gè)接口形成不同防火墻區(qū)域,從而對設(shè)備進(jìn)行網(wǎng)段隔離;通過NAT和IP映射實(shí)
    的頭像 發(fā)表于 08-07 15:21 ?255次閱讀
    工業(yè)設(shè)備IP<b class='flag-5'>地址</b><b class='flag-5'>沖突</b>如何通過NAT網(wǎng)關(guān)解決

    IP地址沖突解決方法圖示

    你是否在日常使用網(wǎng)絡(luò)時(shí),有這樣的經(jīng)歷:突然就失去網(wǎng)絡(luò)連接,時(shí)斷時(shí)續(xù),加載緩慢,文件傳輸突然中斷?網(wǎng)絡(luò)連接并沒有完全斷開,但網(wǎng)速變得異常緩慢看電視劇卡頓、下載文件簡直龜速?那么你可能是IP地址沖突
    的頭像 發(fā)表于 07-26 11:51 ?384次閱讀

    兩個(gè)路由器ip地址沖突怎么解決

    當(dāng)兩個(gè)路由器的IP地址發(fā)生沖突時(shí),會導(dǎo)致網(wǎng)絡(luò)連接不穩(wěn)定或無法連接。以下是解決兩個(gè)路由器IP地址沖突的步驟: 確定沖突的IP
    的頭像 發(fā)表于 07-09 11:35 ?4819次閱讀

    NAT網(wǎng)關(guān)實(shí)現(xiàn)工業(yè)設(shè)備網(wǎng)段隔離,解決IP沖突問題

    在制造業(yè)工廠中,存在大量已經(jīng)提前布設(shè)好的通信網(wǎng)絡(luò),通過實(shí)現(xiàn)設(shè)備聯(lián)網(wǎng)數(shù)據(jù)采集,可以實(shí)現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控與遠(yuǎn)程控制,從而為高效率生產(chǎn)帶來各種智能應(yīng)用。但在新設(shè)備聯(lián)網(wǎng)時(shí),往往會遇見IP地址沖突
    的頭像 發(fā)表于 06-20 14:11 ?491次閱讀
    NAT網(wǎng)關(guān)實(shí)現(xiàn)工業(yè)設(shè)備網(wǎng)段隔離,解決IP<b class='flag-5'>沖突</b>問題

    如何解決工廠中相同IP設(shè)備沖突故障問題

    隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,相應(yīng)的IP地址資源也越來越捉襟見肘,IP地址沖突現(xiàn)象與日俱增。特別是在工業(yè)場景中,很多相同設(shè)備會放在相似的網(wǎng)絡(luò)環(huán)境進(jìn)行測試后才出貨,當(dāng)設(shè)備部署到工廠現(xiàn)場中就十分容易出現(xiàn)IP
    的頭像 發(fā)表于 06-13 17:30 ?435次閱讀
    如何解決工廠中相同IP設(shè)備<b class='flag-5'>沖突</b>故障問題

    stm8l中斷控制串口收發(fā),提示串口地址和變量地址沖突了怎么解決?

    剛剛接觸單片機(jī),剛剛接觸stm8l,想實(shí)現(xiàn)串口有數(shù)據(jù)時(shí)通過CC1101將數(shù)據(jù)發(fā)送,當(dāng)串口沒有數(shù)據(jù)時(shí)則進(jìn)入接收狀態(tài)。但是編譯時(shí)出現(xiàn),中斷地址和代碼中的變量地址沖突的錯(cuò)誤無法解決。希望大神予以指點(diǎn)。
    發(fā)表于 04-19 06:30

    在遠(yuǎn)程訪問設(shè)備如果PLC的IP地址沖突如何解決

    要求從PLC中采集數(shù)據(jù)以達(dá)到遠(yuǎn)程監(jiān)控的目的,從而實(shí)現(xiàn)設(shè)備、人員、物料、能源等多種生產(chǎn)要素的互聯(lián)共通,從而及時(shí)覺察設(shè)備故障與產(chǎn)能缺陷,合理利用數(shù)據(jù)分析手段進(jìn)行決策。但如果現(xiàn)場IP的IP地址沖突,那么數(shù)據(jù)采集通信便無法實(shí)現(xiàn),后續(xù)
    的頭像 發(fā)表于 02-20 17:26 ?696次閱讀
    在遠(yuǎn)程訪問設(shè)備如果PLC的IP<b class='flag-5'>地址</b><b class='flag-5'>沖突</b>如何解決

    局域網(wǎng)IP地址沖突、環(huán)路的罪魁禍?zhǔn)资鞘裁矗?/a>

    局域網(wǎng)IP地址沖突、環(huán)路的罪魁禍?zhǔn)资鞘裁矗?局域網(wǎng)IP地址沖突和環(huán)路是網(wǎng)絡(luò)中常見的問題,它們會導(dǎo)致網(wǎng)絡(luò)故障和通信中斷,影響企業(yè)和個(gè)人的網(wǎng)絡(luò)使用體驗(yàn)。本文將詳細(xì)說明局域網(wǎng)IP
    的頭像 發(fā)表于 02-04 11:03 ?3819次閱讀

    什么是透明網(wǎng)橋?多臺網(wǎng)橋的IP地址沖突是否會影響視頻監(jiān)控傳輸?

    什么是透明網(wǎng)橋?多臺網(wǎng)橋的IP地址沖突是否會影響視頻監(jiān)控傳輸? 透明網(wǎng)橋是一種網(wǎng)絡(luò)設(shè)備,用于連接兩個(gè)以太網(wǎng)LAN,通過MAC地址過濾和轉(zhuǎn)發(fā)數(shù)據(jù)幀。它能夠?qū)W習(xí)和存儲網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的MAC地址
    的頭像 發(fā)表于 02-03 16:41 ?1654次閱讀

    求助,如何指定變量的RAM和ROM地址

    我使用 \" pragma 部分 far \" data 來指定 ram 地址,但我怎樣才能指定它加載的 ROM 地址?
    發(fā)表于 01-25 06:44

    softune如何把一個(gè)變量定義在指定RAM地址

    你好,請問如何把一個(gè)變量定義在指定RAM地址? 例如把 i 變量定義在 RAM地址 0x0200,謝謝!
    發(fā)表于 01-18 10:48

    個(gè)人和局域網(wǎng)IP地址沖突解決方案

    隨著網(wǎng)絡(luò)的廣泛應(yīng)用,使網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,相應(yīng)的IP地址分配也在不斷增多,IP地址沖突現(xiàn)象與日俱增,在一定程度上影響了網(wǎng)絡(luò)的正常運(yùn)行。維護(hù)網(wǎng)絡(luò)穩(wěn)定、高效運(yùn)行,解決IP地址
    的頭像 發(fā)表于 12-13 09:58 ?1181次閱讀
    個(gè)人和局域網(wǎng)IP<b class='flag-5'>地址</b><b class='flag-5'>沖突</b>解決方案

    發(fā)生IP沖突的原因是什么呢?如何解決IP沖突的問題呢?

    發(fā)生IP沖突的原因是什么呢?如何解決IP沖突的問題呢? IP地址沖突是指在一個(gè)局域網(wǎng)中兩個(gè)或多個(gè)設(shè)備被分配了相同的IP地址,這會導(dǎo)致網(wǎng)絡(luò)通信
    的頭像 發(fā)表于 12-07 09:32 ?4437次閱讀

    IC設(shè)計(jì)中關(guān)于ram的應(yīng)用

    統(tǒng)計(jì)有效數(shù)據(jù)包的個(gè)數(shù)。 假設(shè)數(shù)據(jù)中存在pkt_id,pkt_id為0~63,則ram的深度為64。pkt_id用于作為讀寫地址。RAM讀延時(shí)為3個(gè)時(shí)鐘周期。
    的頭像 發(fā)表于 11-17 17:36 ?593次閱讀
    IC設(shè)計(jì)中關(guān)于<b class='flag-5'>ram</b>的應(yīng)用

    Xilinx FPGA IP之Block Memory Generator功能概述

    Xilinx Block Memory Generator(BMG)是一個(gè)先進(jìn)的內(nèi)存構(gòu)造器,它使用Xilinx fpga中的嵌入式塊RAM資源生成面積和 性能優(yōu)化的內(nèi)存。
    的頭像 發(fā)表于 11-14 17:49 ?2477次閱讀
    <b class='flag-5'>Xilinx</b> FPGA IP之Block Memory Generator功能概述