基于vivado2020.1和zcu102開發(fā)板(rev1.1)開發(fā)項(xiàng)目,工程涉及DDR4(MIG)和PL端多個(gè)讀寫接口交互的問題,通過AXI interconnect進(jìn)行互聯(lián)和仲裁(采用默認(rèn)配置)。一個(gè)完整控制周期內(nèi)(約100ms),各端口讀寫情況如下(AWSIZE均為4)。
AXI1:只寫入,AWLEN=119,每次寫請(qǐng)求共計(jì)4320次突發(fā)寫,完整控制周期內(nèi)1次讀請(qǐng)求
AXI2:讀寫,ARLEN=35,AWLEN=3,每次讀請(qǐng)求共計(jì)56-232次突發(fā)讀,寫請(qǐng)求共計(jì)192-384次突發(fā)寫,完整控制周期內(nèi)讀寫請(qǐng)求各176次
AXI3:讀寫,ARLEN=5-6,AWLEN=3,每次讀請(qǐng)求共計(jì)56-232次突發(fā)讀,寫請(qǐng)求共計(jì)192-384次突發(fā)寫,完整控制周期內(nèi)讀寫請(qǐng)求各60次
AXI4:讀寫,ARLEN=7,AWLEN=127,每次讀請(qǐng)求共計(jì)320-1152次突發(fā)讀,寫請(qǐng)求共計(jì)62-128次突發(fā)寫,完整控制周期內(nèi)1次寫請(qǐng)求,48次讀請(qǐng)求
AXI5:只讀,ARLEN=127,每次讀請(qǐng)求共計(jì)3240次突發(fā)讀,該模塊是HDMI顯示模塊(1920*1080*3)的輸入,頻率為60Hz,它的讀操作是獨(dú)立于控制周期的
AXI3與AXI4的讀會(huì)同時(shí)請(qǐng)求相同內(nèi)存區(qū)域的數(shù)據(jù),AXI4的寫與AXI5的讀會(huì)訪問相同內(nèi)存區(qū)域的數(shù)據(jù)。
AXI2-AXI4是計(jì)算模塊的輸入輸出接口,設(shè)計(jì)之初默認(rèn)DDR讀寫速度遠(yuǎn)高于計(jì)算速度,DDR讀寫會(huì)先于計(jì)算完成。因此在設(shè)計(jì)計(jì)算模塊控制邏輯的時(shí)候,沒有考慮ddr讀寫相關(guān)的握手信號(hào)。但在實(shí)際驗(yàn)證過程中,各通道會(huì)隨機(jī)出現(xiàn)阻塞,因此會(huì)導(dǎo)致DDR讀寫地址乃至控制邏輯的錯(cuò)亂。
經(jīng)過估算DDR帶寬是遠(yuǎn)高于讀寫數(shù)據(jù)帶寬的,為了解決這一問題,包括但不限于改變突發(fā)長(zhǎng)度、調(diào)整AXI interconnect仲裁優(yōu)先級(jí)等操作中的哪些會(huì)起到作用?
以及,一般涉及DDR讀寫仲裁的控制邏輯需要注意哪些方面?
注:控制邏輯產(chǎn)生的問題是,以AXI2為例,它的176次讀寫是分為176個(gè)子階段完成的,階段1首先讀取第1批讀數(shù)據(jù)后,開始對(duì)第1批數(shù)據(jù)進(jìn)行計(jì)算,同時(shí)開始讀取第2批數(shù)據(jù)。之前默認(rèn)讀一定快于計(jì)算,所以以計(jì)算完成作為狀態(tài)轉(zhuǎn)移的標(biāo)志,在計(jì)算完成后發(fā)出第1批數(shù)據(jù)的寫請(qǐng)求后,進(jìn)入第2階段的邏輯。在該階段計(jì)算第2批數(shù)據(jù)的同時(shí),讀入第3批數(shù)據(jù),并完成第1批數(shù)據(jù)的寫入。同樣默認(rèn)讀寫一定快于計(jì)算,在計(jì)算完成后,發(fā)出第2批數(shù)據(jù)的寫請(qǐng)求,并進(jìn)入第3階段。阻塞會(huì)導(dǎo)致讀數(shù)據(jù)晚于計(jì)算完成,在此情況下,所有的控制邏輯都會(huì)發(fā)生錯(cuò)亂,DDR的讀寫地址將不受預(yù)期的控制。
通常如果你多個(gè)端口同時(shí)訪問DDR,就會(huì)發(fā)生阻塞,你可以通過設(shè)置priority的方式(如下圖),設(shè)置優(yōu)先的通道。
并且建議你的optimization strategic設(shè)置成 Maximum Performance,提高interconnect本身的時(shí)鐘頻率。
關(guān)于 DDR(MIG),如果你都是地址隨機(jī)讀寫的話,并且長(zhǎng)度一致的話,DDR效率可以變得很低,這是你的系統(tǒng)設(shè)計(jì)需要注意的。
有關(guān)DDR的效率問題,可以到IP應(yīng)用的板塊進(jìn)一步咨詢。
原文標(biāo)題:本周一問 | 多AXI通道讀寫DDR的阻塞問題?
文章出處:【微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
DDR
+關(guān)注
關(guān)注
11文章
697瀏覽量
64937 -
阻塞
+關(guān)注
關(guān)注
0文章
24瀏覽量
8069 -
AXI
+關(guān)注
關(guān)注
1文章
127瀏覽量
16514
原文標(biāo)題:本周一問 | 多AXI通道讀寫DDR的阻塞問題?
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論