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

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

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

IC設(shè)計(jì):常見的ram訪問沖突

FPGA自習(xí)室 ? 來源:IC的世界 ? 2023-11-13 10:44 ? 次閱讀

ram沖突是幾乎每顆芯片都需要關(guān)注的問題,部分場(chǎng)景下,ram訪問沖突不容易驗(yàn)證到,容易造成芯片bug。ram訪問沖突的類型通常有訪問接口沖突和訪問地址沖突。

術(shù)語解釋:1r1w ram表示ram存在一個(gè)寫口和一個(gè)讀口,一共2個(gè)端口。1rw ram表示ram只有一個(gè)端口,此端口能寫能讀,同一個(gè)周期不能同時(shí)讀寫。1r1rw ram表示存在2個(gè)端口,其中一個(gè)端口只支持讀操作,另外一個(gè)端口支持寫操作和讀操作(不能同時(shí)讀寫)。下文中的Logic訪問指的由硬件邏輯發(fā)起的訪問。csr表示可配置模塊, 其對(duì)應(yīng)的soft_access通常是由軟件發(fā)起的對(duì)ram的訪問,可能是讀操作,也可能是寫操作。

1、訪問接口沖突

107d0496-8026-11ee-939d-92fbcf53809c.png

接口沖突,即多個(gè)訪問請(qǐng)求同時(shí)訪問一個(gè)ram的端口,例下圖所示,logic 訪問和soft訪問同時(shí)競(jìng)爭(zhēng)同一個(gè)端口。Case1所示為1rw ram(只有一個(gè)端口,能讀能寫),邏輯讀和邏輯寫同時(shí)競(jìng)爭(zhēng)一個(gè)端口。Case2所示ram(可以是多個(gè)端口的ram),邏輯訪問(讀or寫)和軟件(寫or讀)訪問同時(shí)競(jìng)爭(zhēng)一個(gè)端口。

危害:接口沖突類型中,如果某一個(gè)訪問存在高優(yōu)先級(jí),那么低優(yōu)先級(jí)訪問可能一直無法響應(yīng)。輕則導(dǎo)致訪問失敗,重則模塊掛死。

解決方案:高優(yōu)先級(jí)訪問接口需要控制連續(xù)訪問次數(shù),必須在一定時(shí)間內(nèi)插入空拍。

2、訪問地址沖突

109a18a6-8026-11ee-939d-92fbcf53809c.png

我們以1r1w的ram和1R1RW的ram為例進(jìn)行講解。如圖所示:訪問地址沖突,指的是讀操作和寫操作同時(shí)訪問且地址相同。注意:此處的同時(shí)并不一定是同一個(gè)周期,同時(shí)指的是從ram讀接口收到讀操作直到返回讀數(shù)據(jù)的若干個(gè)周期內(nèi)(一般是1~3周期)。例如T0 clk,ram收到對(duì)addr(0x10)的讀操作,T1 clk,讀數(shù)據(jù)還未返回,此時(shí)ram收到對(duì)addr(0x10)的寫操作,這種也算讀寫地址沖突。

危害:發(fā)送讀寫地址沖突時(shí),讀返回的數(shù)據(jù)可能不符合期望,讀返回的可能是不確定值,可能是新值(寫操作寫入的值),也可能是舊值(不同廠家不同類型的ram響應(yīng)因?yàn)椴灰粯?,部分廠家支持ram定制返回新值或者舊值,部分廠家ram返回的就是不確定值。讀到不確定值明顯會(huì)影響模塊功能。

解決方案:在ram訪問接口添加保護(hù)模塊。

如果讀返回需要新值,則在發(fā)送地址沖突時(shí),將寫操作的寫數(shù)據(jù)轉(zhuǎn)移給讀返回。

如果讀返回需要舊值,(比較少見)

定制讀返回舊值的ram

添加沖突保護(hù)模塊,發(fā)生地址沖突時(shí),對(duì)寫操作進(jìn)行反壓,此方案需要應(yīng)用場(chǎng)景允許

審核編輯:湯梓紅

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

    關(guān)注

    452

    文章

    49938

    瀏覽量

    419602
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8355

    瀏覽量

    150514
  • IC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    37

    文章

    1288

    瀏覽量

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

    關(guān)注

    8

    文章

    1350

    瀏覽量

    114370

原文標(biāo)題:IC設(shè)計(jì):常見的ram訪問沖突【必學(xué)】

文章出處:【微信號(hào):FPGA_Study,微信公眾號(hào):FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    fsmc如何避免NE之間的訪問沖突?

    最近看了一些fsmc的資料,這樣的話如何避免NE之間的訪問沖突,請(qǐng)指點(diǎn)
    發(fā)表于 05-06 08:43

    ARM訪問外部RAM

    51單片機(jī)通過P0和P2口以及ALE、WR、RD的組合可以對(duì)外部RAM進(jìn)行讀寫,那如果對(duì)相同的RAM使用ARM應(yīng)該如何才能訪問外部呢?
    發(fā)表于 12-29 23:42

    關(guān)于6678 多核訪問EDMA 沖突問題

    您好, 想實(shí)現(xiàn)6678 多核訪問EDMA,如何做到避免多核沖突。目前做法:8核使用不同的region,8核DMA事件用不同的channel。請(qǐng)問還需做哪些工作保證8核用EDMA傳輸數(shù)據(jù)時(shí)都能正確傳送,目前8核分別單核運(yùn)行都沒問題,8核group 運(yùn)行只有一個(gè)核完成傳送。謝
    發(fā)表于 08-06 09:18

    請(qǐng)問怎樣直接指定一個(gè)ram并用位帶方式來訪問?

    請(qǐng)問怎樣直接指定一個(gè)ram,并用位帶方式來訪問它?用寄存器的位帶我懂。但是用內(nèi)部RAM(0x20000000-0x200FFFFF)怎做位帶?直接寫 BIT_ADDR(0x20000000,1) 這樣應(yīng)該會(huì)出問題吧?系統(tǒng)怎知我用
    發(fā)表于 08-28 22:52

    如何用Mutex解決多線程調(diào)用printf()函數(shù)對(duì)串口訪問沖突

    互斥量(Mutex)有什么作用?如何用Mutex解決多線程調(diào)用printf()函數(shù)對(duì)串口訪問沖突
    發(fā)表于 07-22 08:07

    Labview運(yùn)行myrio沖突拒絕訪問是何原因?qū)е碌?/a>

    Labview運(yùn)行myrio沖突拒絕訪問是何原因?qū)е碌??怎樣去解決Labview運(yùn)行myrio沖突拒絕訪問的問題呢?
    發(fā)表于 02-23 06:52

    S12Z訪問沖突錯(cuò)誤怎么解決?

    我使用 devkit s12zvc,當(dāng)我在 RTI 中斷中執(zhí)行任何匯編指令時(shí)遇到訪問沖突錯(cuò)誤。任何第一條匯編指令都會(huì)導(dǎo)致訪問沖突錯(cuò)誤。報(bào)錯(cuò)后的MMCEC寄存器:MMCEC = 1441
    發(fā)表于 03-22 08:37

    RAM,RAM工作原理是什么?

    RAM,RAM工作原理是什么? RAM (Random Access Memory隨機(jī)存貯器)是指通過指令可以隨機(jī)地、個(gè)別地對(duì)每個(gè)存儲(chǔ)單元進(jìn)行訪問
    發(fā)表于 03-24 16:03 ?1w次閱讀

    什么是載波偵聽多路訪問/沖突避免(CSMA/CA)協(xié)議

    什么是載波偵聽多路訪問/沖突避免(CSMA/CA)協(xié)議 發(fā)展背景(出因): 在總線和環(huán)形拓?fù)渲?,網(wǎng)絡(luò)上的設(shè)備必須共享傳輸線路,為解決同一
    發(fā)表于 04-09 11:31 ?1.3w次閱讀

    解讀片上RAM和外部RAM訪問速度的差異問題

    有些技術(shù),比如總線,看起來它和一般程序員關(guān)系不大。但它卻串聯(lián)起很多問題:為什么片上RAM和外部RAM訪問速度有差異;為什么CPU訪問外部RAM
    發(fā)表于 10-31 14:17 ?6337次閱讀

    關(guān)于ROM和RAM有哪些常見問題

    關(guān)于ROM和RAM常見問題分析。
    的頭像 發(fā)表于 11-19 15:51 ?2749次閱讀

    stm32h743外部RAM非字節(jié)對(duì)齊訪問,引起的hard fault

    stm32h743外部RAM非字節(jié)對(duì)齊訪問,引起的hard fault
    發(fā)表于 12-09 09:21 ?5次下載
    stm32h743外部<b class='flag-5'>RAM</b>非字節(jié)對(duì)齊<b class='flag-5'>訪問</b>,引起的hard fault

    TANDY WP 2 RAM IC卡開源分享

    電子發(fā)燒友網(wǎng)站提供《TANDY WP 2 RAM IC卡開源分享.zip》資料免費(fèi)下載
    發(fā)表于 07-15 14:31 ?0次下載
    TANDY WP 2 <b class='flag-5'>RAM</b> <b class='flag-5'>IC</b>卡開源分享

    如何解決C語言中的“訪問權(quán)限沖突”異常?C語言引發(fā)異常原因分析

    如何解決C語言中的“訪問權(quán)限沖突”異常?C語言引發(fā)異常原因分析? 在C語言中,訪問權(quán)限沖突異常通常是由于嘗試訪問未授權(quán)的變量、函數(shù)或其他數(shù)據(jù)
    的頭像 發(fā)表于 01-12 16:03 ?4084次閱讀

    IC設(shè)計(jì):ram的折疊設(shè)計(jì)操作步驟

    IC設(shè)計(jì)中,我們有時(shí)會(huì)使用深度很大,位寬很小的ram。例如深度為1024,位寬為4bit的ram
    的頭像 發(fā)表于 03-04 15:08 ?2052次閱讀
    <b class='flag-5'>IC</b>設(shè)計(jì):<b class='flag-5'>ram</b>的折疊設(shè)計(jì)操作步驟