來(lái)源:老劉記事兒
最近有客戶反映國(guó)產(chǎn)FPGA京微齊力P2器件內(nèi)部合封的pSRAM控制器讀寫(xiě)效率很高,能達(dá)80%以上,而且合封了4片8bit位寬pSRAM芯片,按250MHz主頻DDR雙沿讀寫(xiě)算下來(lái)80%效率能跑出12.8Gbps的極限帶寬,即使考慮工程布局布線的限制影響因素,按210MHz主頻也應(yīng)能跑出10.5Gbps讀寫(xiě)帶寬。
如果真是這樣,這意味著FPGA + SDRAM架構(gòu)方案的市場(chǎng)應(yīng)用生態(tài)位面臨著挑戰(zhàn),因?yàn)榧词共捎?00MHz主頻的單顆DDR SDRAM也需要32bit位寬才能在理論上達(dá)到100%效率時(shí)(不可能實(shí)現(xiàn))的12.8Gbps極限帶寬,而SDRAM控制器設(shè)計(jì)復(fù)雜度導(dǎo)致的邏輯資源消耗、SDRAM芯片較高的功耗特性、外掛SDRAM芯片的成本考量等因素會(huì)使FPGA + SDRAM架構(gòu)方案劣于京微齊力的FPGA內(nèi)部合封4片pSRAM方案。
那么真實(shí)情況如何呢?客戶的傳言是確切的么?
帶著疑問(wèn),我要來(lái)了京微齊力P2器件的pSRAM讀寫(xiě)例程,進(jìn)行核實(shí)分析。
根據(jù)說(shuō)明,該例程系統(tǒng)框圖如下:
其中,soc_system_v1模塊是指P2器件中自帶的ARM Cortex-M3硬核,在例程中起到對(duì)pSRAM的寄存器初始化和Clock Training作用。Clock Training是上電啟動(dòng)階段指對(duì)psram_clk、psram_clk_90和psram_clk_rd這三個(gè)時(shí)鐘的相位關(guān)系進(jìn)行初始化校準(zhǔn)。這三個(gè)時(shí)鐘的功能可參閱原廠手冊(cè)說(shuō)明(見(jiàn)下圖),在此我們不作更多推敲討論。
不過(guò)顯然可以看出,將pSRAM初始化和Clock Training機(jī)制放進(jìn)FPGA自帶的ARM硬核中,對(duì)于節(jié)省FPGA邏輯資源占用肯定是很有好處的,而且在ARM硬核中實(shí)現(xiàn)對(duì)pSRAM寄存器狀態(tài)和Training結(jié)果的打印監(jiān)測(cè)也是十分方便的。原廠例程中就利用了這一點(diǎn),下圖為例程中ARM硬核控制pSRAM執(zhí)行初始化和Clock Training階段串口打印的部分信息,顯示了Clock Training的時(shí)鐘窗口掃描結(jié)果。
例程提供的pSRAM控制器可允許對(duì)4片pSRAM予以分別不同的寄存器初始化配置,使其分別獨(dú)立工作在不同的工作狀態(tài)下。這為客戶提供了靈活操控的可能性,在必要的應(yīng)用場(chǎng)合可以靈活搭配形成乒乓操作,譬如4片pSRAM可以配置成同時(shí)1寫(xiě)3讀或3寫(xiě)1讀,也可以4片統(tǒng)一同步操作讀寫(xiě)。
例程配套有仿真工程,可以直接從仿真波形中得到pSRAM讀寫(xiě)效率信息。
仿真例程先是對(duì)4片pSRAM分別作了初始化配置動(dòng)作,而后循環(huán)進(jìn)行Burst 1~128次*2Byte的交替讀寫(xiě)循環(huán)測(cè)試。
每次Burst寫(xiě)入pSRAM的數(shù)據(jù)會(huì)同步存入雙端口RAM中,再將RAM中的數(shù)據(jù)取出與從pSRAM中相應(yīng)地址讀出的數(shù)據(jù)作一致性比對(duì),如果讀寫(xiě)比對(duì)無(wú)誤則psram_cmp_flag信號(hào)保持為0,否則一旦發(fā)生錯(cuò)誤就會(huì)拉高相應(yīng)pSRAM的psram_cmp_flag信號(hào)。
對(duì)交替讀寫(xiě)循環(huán)測(cè)試的波形放大可以看到,pSRAM的讀寫(xiě)過(guò)程各有快慢兩種響應(yīng)速度,姑且稱之為 “快寫(xiě)”、“慢寫(xiě)”、“快讀”、“慢讀”。
pSRAM寫(xiě)操作相關(guān)的FPGA端用戶接口信號(hào)時(shí)序抓取波形示例如下:
pSRAM讀操作相關(guān)的FPGA端用戶接口信號(hào)時(shí)序抓取波形示例如下:
各路信號(hào)的含義和時(shí)序關(guān)系說(shuō)明詳情可參見(jiàn)官方應(yīng)用手冊(cè),此處不作贅述。
我們只關(guān)心讀寫(xiě)效率的評(píng)估,那么把握重點(diǎn):
psram_wr_reqin和psram_rd_reqin分別是寫(xiě)請(qǐng)求和讀請(qǐng)求信號(hào);
wr_req_ack和rd_req_ack分別是寫(xiě)響應(yīng)和讀響應(yīng)信號(hào),其中wr_req_ack的高電平比psram_wdata寫(xiě)有效數(shù)據(jù)前移了一拍,而rd_req_ack的高電平與psram_rdata讀有效數(shù)據(jù)是時(shí)序?qū)R的;
讀寫(xiě)B(tài)urst長(zhǎng)度分別由rd_burst_len和wr_burst_len決定,實(shí)際Burst拍數(shù)分別為rd_burst_len+1 和wr_burst_len+1。
對(duì)照仿真波形可以確認(rèn),例程中的pSRAM讀寫(xiě)循環(huán)是無(wú)縫切換的,沒(méi)有冗余間隔,因此psram_wr_reqin和psram_rd_reqin的高電平寬度分別就是寫(xiě)等待和讀等待時(shí)長(zhǎng),即除有效讀/寫(xiě)操作之外被“浪費(fèi)”的時(shí)間。寫(xiě)等待和讀等待時(shí)長(zhǎng)所占用的時(shí)鐘周期數(shù)分別稱為寫(xiě)等待拍數(shù)和讀等待拍數(shù)。
“快寫(xiě)”、“慢寫(xiě)”、“快讀”、“慢讀”分別的等待拍數(shù)見(jiàn)下表:
讀寫(xiě)狀態(tài) | 快寫(xiě) | 慢寫(xiě) | 快讀 | 慢讀 |
等待拍數(shù) | 11 | 18 | 19 | 26 |
“快寫(xiě)”狀態(tài)下,從發(fā)起寫(xiě)請(qǐng)求到第一個(gè)有效數(shù)據(jù)開(kāi)始寫(xiě)入,寫(xiě)等待占用了11個(gè)時(shí)鐘周期。因此,當(dāng)Burst為256字節(jié)(128拍)時(shí)寫(xiě)效率最高,為:
128/(11+128) =92%
對(duì)應(yīng)P2器件工作在210MHz主頻下的“快寫(xiě)”帶寬為:
92%×210MHz×2×4片 ×8 bits =12.08 Gbps
“慢寫(xiě)”狀態(tài)下,從發(fā)起寫(xiě)請(qǐng)求到第一個(gè)有效數(shù)據(jù)開(kāi)始寫(xiě)入,寫(xiě)等待占用了18個(gè)時(shí)鐘周期。因此,當(dāng)Burst為2字節(jié)(1拍)時(shí)寫(xiě)效率最低,為:
1/(18+1) = 5.26%
當(dāng)Burst為256字節(jié)(128拍)時(shí),“慢寫(xiě)”效率為:
128/(18+128) = 87.6%
對(duì)應(yīng)P2器件工作在210MHz主頻下的“慢寫(xiě)”帶寬為:
87.6%×210MHz×2×4片 ×8 bits
=11.5 Gbps
“快讀”狀態(tài)下,從發(fā)起讀請(qǐng)求到第一個(gè)有效數(shù)據(jù)開(kāi)始讀入,讀等待占用了19個(gè)時(shí)鐘周期。因此,當(dāng)Burst為256字節(jié)(128拍)時(shí)讀效率最高,為:
128/(19+128) =87%
對(duì)應(yīng)P2器件工作在210MHz主頻下的“快讀”帶寬為:
87%×210MHz×2×4片 ×8 bits
=11.42 Gbps
“慢讀”狀態(tài)下,從發(fā)起讀請(qǐng)求到第一個(gè)有效數(shù)據(jù)開(kāi)始讀入,讀等待占用了26個(gè)時(shí)鐘周期。因此,當(dāng)Burst為2字節(jié)(1拍)時(shí)讀效率最低,為:
1/(26+1) = 3.7%
當(dāng)Burst為256字節(jié)(128拍)時(shí),“慢讀”效率為:
128/(26+128) = 83.1%
對(duì)應(yīng)P2器件工作在210MHz主頻下的“慢讀”帶寬為:
83.1%×210MHz×2×4片 ×8 bits
=10.9 Gbps
這樣情況就明了了。也就是說(shuō):
京微齊力P2器件的pSRAM寫(xiě)操作在Burst長(zhǎng)度為256字節(jié)(128拍)的條件下效率最高,為87.6%至92%之間。
保守估計(jì),按210MHz的大型項(xiàng)目(邏輯資源占用80%以上)真實(shí)可用主頻估算,在Burst長(zhǎng)度為256字節(jié)(128拍)的條件下,其寫(xiě)帶寬可達(dá)11.5 Gbps至12.08 Gbps之間。
京微齊力P2器件的pSRAM讀操作在Burst長(zhǎng)度為256字節(jié)(128拍)的條件下效率最高,為83.1%至87%之間。
保守估計(jì),按210MHz的大型項(xiàng)目(邏輯資源占用80%以上)真實(shí)可用主頻估算,在Burst長(zhǎng)度為256字節(jié)(128拍)的條件下,其讀帶寬可達(dá)10.9 Gbps至11.42 Gbps之間。
當(dāng)然,需要特別注意的是,由于存在內(nèi)部自刷新過(guò)程,和SDRAM一樣,pSRAM在Burst長(zhǎng)度較低時(shí),讀寫(xiě)效率不高。但Burst突發(fā)讀寫(xiě)長(zhǎng)度越長(zhǎng),其讀寫(xiě)效率越高,速度優(yōu)勢(shì)越明顯。
總體而言,京微齊力FPGA的pSRAM讀寫(xiě)效率,超出預(yù)期!
附P2器件(合封4片pSRAM)在不同Burst長(zhǎng)度下的讀寫(xiě)效率列表以供查閱(注意1拍對(duì)應(yīng)2字節(jié)):
附在P2器件(合封4片pSRAM)在pSRAM主頻210MHz條件下核算的不同Burst長(zhǎng)度下的讀寫(xiě)速率列表以供查閱(注意1拍對(duì)應(yīng)2字節(jié)):
不過(guò)這里可以再引出一個(gè)問(wèn)題:
快寫(xiě)/慢寫(xiě)(快讀/慢讀)的比例是多少,有何規(guī)律?
此處暫且不表,筆者搬磚之余時(shí)間有限,且聽(tīng)下回分解。
-
FPGA
+關(guān)注
關(guān)注
1643文章
21954瀏覽量
613990 -
SDRAM
+關(guān)注
關(guān)注
7文章
441瀏覽量
56014 -
京微齊力
+關(guān)注
關(guān)注
0文章
29瀏覽量
5883
原文標(biāo)題:老劉記事兒京微齊力FPGA系列之P2器件內(nèi)部合封pSRAM性能探究(一)
文章出處:【微信號(hào):HME-FPGA,微信公眾號(hào):HME京微齊力】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
京微齊力:國(guó)產(chǎn)FPGA老樹(shù)開(kāi)新花,務(wù)實(shí)做好消費(fèi)市場(chǎng)再?zèng)_高端
國(guó)產(chǎn)FPGA簡(jiǎn)介
京微齊力HME-P1P60 FPGA榮獲年度最佳處理器/FPGA獎(jiǎng)項(xiàng)
京微齊力再次榮獲“IC獨(dú)角獸”稱號(hào)
京微齊力推出大力神H系列新一代產(chǎn)品H3C08芯片
基于京微齊力HME-M7和國(guó)產(chǎn)舜銘存儲(chǔ)鐵電存儲(chǔ)器PB85RS2MC的PLC解決方案

基于FPGA的PLC解決方案

HME FPGA入門(mén)指導(dǎo):HME-P(飛馬)系列開(kāi)發(fā)板實(shí)驗(yàn)教程——LED流水燈

京微齊力采用Imagination AI加速器打造新型智能芯片
京微齊力異構(gòu)FPGA產(chǎn)品幫助行業(yè)客戶實(shí)現(xiàn)應(yīng)用創(chuàng)新和性能突破
國(guó)芯思辰|京微齊力FPGA HME-HR02PN3Q32在會(huì)議音箱系統(tǒng)中的應(yīng)用

京微齊力助力國(guó)內(nèi)半導(dǎo)體產(chǎn)業(yè)高質(zhì)量發(fā)展貢獻(xiàn)核心力量
京微齊力亮相2024慕尼黑上海電子展

評(píng)論