Address collision 指的是RAM的兩個port同時訪問相同的地址可能導致數(shù)據(jù)發(fā)生錯誤的情況。在Xilinx中,不同的RAM,不同的RAM配置會導致address collision時不同的數(shù)據(jù)結果。
Distributed RAM
對于DRAM,寫數(shù)據(jù)是 synchronous write,需要一個時鐘周期, 讀數(shù)據(jù)是 asynchronous read,當前時鐘周期就能讀出數(shù)據(jù)。因此當在某一個cycle讀寫同時訪問同一地址時,讀數(shù)據(jù)是 old data,即該地址原存放的數(shù)據(jù)而不是新要寫入的數(shù)據(jù)。
Block RAM
BRAM的讀寫都是 synchronous。BRAM的兩個Port分別為 PortA 和 PortB。
我們可以將 BRAM address collision 分為以下三類。
PortA 和 PortB 同時讀數(shù)據(jù)
兩個Port都會正確讀出該地址中的數(shù)據(jù)。
PortA 和 PortB 同時寫入數(shù)據(jù)
該地址最終被寫入的數(shù)據(jù)是 non-deterministic。因此設計中要避免兩個port同時寫數(shù)據(jù)的address collision。
PortA 寫數(shù)據(jù)同時 PortB 讀數(shù)據(jù),或者是 PortA 讀數(shù)據(jù)同時 PortB 寫數(shù)據(jù)
在這種情況下,數(shù)據(jù)總是會被正確寫入到RAM中,但是讀出的數(shù)據(jù)內容則依賴于BRAM的配置。BRAM的write mode可以配置為三種模式,write first,read first 和 no change。
下圖為不同配置下的數(shù)據(jù)讀寫結果??梢钥吹疆?write port 配置為 READ_FIRST時,不管 read port 如何配置,都會讀出 old data。而當 write port 配置為 WRITE_FIRST 或 NO_CHANGE時,不管 read port 如何配置,讀數(shù)據(jù)都是 X,即 undeterministic。因此在可能發(fā)生address collision 的BRAM,一般將兩個 port都配置為 READ_FIRST,以確保數(shù)據(jù)讀出的正確。
Ultra RAM
URAM的讀寫也都是 synchronous。URAM比較有意思的一點是,PortA 總是先于 PortB 執(zhí)行操作,因此在 address collision 我們會看到不同于BRAM的結果。
PortA寫,PortB讀。PortB 會讀出new data。(因為PortA先執(zhí)行,所以在PortB讀執(zhí)行時,new data已經(jīng)寫入RAM中了)
PortA讀,PortB寫。PortA 會讀出old data。(同樣的,這也是因為PortA先執(zhí)行)
PortA寫,PortB寫。最終該地址寫入的值是PortB的值。(PortB因為后執(zhí)行會覆蓋PortA寫的值)
Reference
《UltraScale Architecture Configurable Logic Block》
《UltraScale Architecture Memory Resources》
審核編輯 :李倩
-
數(shù)據(jù)
+關注
關注
8文章
7157瀏覽量
89662 -
RAM
+關注
關注
8文章
1369瀏覽量
115049 -
Xilinx
+關注
關注
71文章
2171瀏覽量
122203
原文標題:Xilinx RAM Address Collision
文章出處:【微信號:FPGA開發(fā)之路,微信公眾號:FPGA開發(fā)之路】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
工廠局域網(wǎng)出現(xiàn)設備IP沖突如何解決
![工廠局域網(wǎng)出現(xiàn)設備IP<b class='flag-5'>沖突</b>如何解決](https://file1.elecfans.com//web3/M00/03/D8/wKgZPGds7HyAT4K3AAFVklMLFy0526.jpg)
什么原因會導致IP地址沖突?
ram芯片為什么要設置片選引腳
一般ram芯片上的引腳有哪些
PLC的IP沖突如何解決(NAt物聯(lián)網(wǎng)解決方案)
![PLC的IP<b class='flag-5'>沖突</b>如何解決(NAt物聯(lián)網(wǎng)解決方案)](https://file1.elecfans.com//web2/M00/05/7C/wKgZombabrKAKV6LAAFVklMLFy0897.jpg)
工業(yè)設備IP地址沖突如何通過NAT網(wǎng)關解決
![工業(yè)設備IP<b class='flag-5'>地址</b><b class='flag-5'>沖突</b>如何通過NAT網(wǎng)關解決](https://file1.elecfans.com//web2/M00/01/F3/wKgaomazIGqAfVDfAAFVklMLFy0860.jpg)
工廠局域網(wǎng)設備IP沖突的解決方案
![工廠局域網(wǎng)設備IP<b class='flag-5'>沖突</b>的解決方案](https://file1.elecfans.com//web2/M00/FF/63/wKgZomaomhuAW5cKAAFVklMLFy0295.jpg)
IP地址沖突解決方法圖示
兩個路由器ip地址沖突怎么解決
NAT網(wǎng)關實現(xiàn)工業(yè)設備網(wǎng)段隔離,解決IP沖突問題
![NAT網(wǎng)關實現(xiàn)工業(yè)設備網(wǎng)段隔離,解決IP<b class='flag-5'>沖突</b>問題](https://file1.elecfans.com//web2/M00/F1/CC/wKgaomZzyB2AUMtuAAFVklMLFy0967.jpg)
如何解決工廠中相同IP設備沖突故障問題
![如何解決工廠中相同IP設備<b class='flag-5'>沖突</b>故障問題](https://file1.elecfans.com//web2/M00/EE/3E/wKgaomZqvCaAEY8rAAFVklMLFy0700.jpg)
stm8l中斷控制串口收發(fā),提示串口地址和變量地址沖突了怎么解決?
產線設備聯(lián)網(wǎng)過程中的IP沖突(NAT轉換)問題如何解決
![產線設備聯(lián)網(wǎng)過程中的IP<b class='flag-5'>沖突</b>(NAT轉換)問題如何解決](https://file1.elecfans.com//web2/M00/C7/9B/wKgZomYVCkiAQGLRAAFVklMLFy0773.jpg)
你以為的RAM不是你以為的RAM~
![你以為的<b class='flag-5'>RAM</b>不是你以為的<b class='flag-5'>RAM</b>~](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
在遠程訪問設備如果PLC的IP地址沖突如何解決
![在遠程訪問設備如果PLC的IP<b class='flag-5'>地址</b><b class='flag-5'>沖突</b>如何解決](https://file1.elecfans.com//web2/M00/C1/45/wKgaomXUcD2AU5MbAAFVklMLFy0689.jpg)
評論