新聞中心

AHB總線問(wèn)答

作者: 時(shí)間:2016-12-15 來(lái)源:網(wǎng)絡(luò) 收藏

總體:不同的突發(fā)傳輸用在什么地方?

應(yīng)用于:AHB

通常,主設(shè)備在高速緩存行填充的時(shí)候使用回環(huán)突發(fā)傳輸,主設(shè)備先是想獲取他想要的數(shù)據(jù),然后完成突發(fā)傳輸把剩余的數(shù)據(jù)取出藥用于高速緩存行填充。增量突發(fā)傳輸主要用在像DMA控制器一類的主設(shè)備,需要填充一個(gè)可能不是地址邊界對(duì)齊的存儲(chǔ)器的緩沖區(qū)。

總體:對(duì)于從設(shè)備而言,應(yīng)該為HREADY 和HRESP 信號(hào)什么樣的默認(rèn)狀態(tài)?

應(yīng)用于:AHB

建議HREADY 的默認(rèn)狀態(tài)為高,并且HRESP 為OKAY 狀態(tài)。這樣的組合能夠保證從設(shè)備即使是在低功耗模式下也能對(duì)IDLE 傳輸給出正確的響應(yīng)。

總體:虛擬總線主設(shè)備和默認(rèn)總線主設(shè)備之間有什么區(qū)別?

應(yīng)用于:AHB

默認(rèn)總線主設(shè)備是指系統(tǒng)中沒(méi)有主設(shè)備在申請(qǐng)總線的時(shí)候,總線被分配給的那個(gè)主設(shè)備。通常情況下,最有可能申請(qǐng)總線的主設(shè)備就是默認(rèn)總線主設(shè)備。

虛擬主設(shè)備是指只進(jìn)行IDLE 傳輸?shù)闹髟O(shè)備。系統(tǒng)需要虛擬主設(shè)備是以便仲裁器能夠保證能夠?qū)⒖偩€分配給一個(gè)不進(jìn)行任何實(shí)際傳輸?shù)闹髟O(shè)備。仲裁器在以下兩種情況下需要這樣做:在一個(gè)鎖定傳輸中得到一個(gè)SPLIT 響應(yīng);在所有其他主設(shè)備都已經(jīng)得到SPLIT 響應(yīng)的情況下,又得到一個(gè)SPLIT 響應(yīng)。

總體:HPROT 信號(hào)默認(rèn)應(yīng)該是什么值?

應(yīng)用于:AHB

許多主設(shè)備不能產(chǎn)生準(zhǔn)確的保護(hù)信息,那么對(duì)于這些主設(shè)備,HPROT 信號(hào)默認(rèn)應(yīng)該表示為:Non-cacheable, Non-bufferable, Privileged, Data Accesses,也就是HPROT[3:0] = 4b0011。

總體:AHB 信號(hào)在復(fù)位時(shí)是什么狀態(tài)?

應(yīng)用于:AHB

AHB 規(guī)范中指出在復(fù)位時(shí),總線信號(hào)應(yīng)該是一個(gè)確定的有效的值。簡(jiǎn)單的理解就是信號(hào)應(yīng)該是邏輯‘0’或‘1’,而不是高阻態(tài)Hi-Z。實(shí)際應(yīng)該是什么樣的有效的值要取決于設(shè)計(jì)者。HTRANS 信號(hào)是唯一一個(gè)在復(fù)位時(shí)確定的信號(hào),它將強(qiáng)制為IDLE。

同時(shí),HREADY 信號(hào)在復(fù)位時(shí)保持高電平也很重要。如果所有的系統(tǒng)從設(shè)備在復(fù)位時(shí)驅(qū)動(dòng)HREADY 信號(hào)為高,這將保證這是情況正常。但是,如果存在從設(shè)備在復(fù)位的時(shí)候不是驅(qū)動(dòng)HREADY 為高的,應(yīng)該保證復(fù)位時(shí)選中的那個(gè)從設(shè)備需要驅(qū)動(dòng)HREADY 為高。

總體:主設(shè)備應(yīng)該在什么時(shí)候重建被提前結(jié)束的突發(fā)傳輸?有哪些限制它如何重建突發(fā)傳輸?

應(yīng)用于:AHB

唯一的限制就是主設(shè)備應(yīng)該使用有效的突發(fā)傳輸組合來(lái)重建剩下的突發(fā)傳輸。例如:如果一個(gè)主設(shè)備要進(jìn)行一次8 拍的突發(fā)傳輸,但是在傳輸3 拍之后就失去了總線控制權(quán),那么剩下的5 拍傳輸可以使用1 拍SINGLE 突發(fā)傳輸加一次4 拍的INCR4 傳輸,或者也可以使用5 拍的未定義長(zhǎng)度INCR 突發(fā)傳輸。

為了簡(jiǎn)單,建議主設(shè)備使用INCR 突發(fā)傳輸去完成剩下的傳輸。

總體:為什么一次突發(fā)傳輸不允許跨域1 kbyte 邊界?

應(yīng)用于:AHB

如果AHB 從設(shè)備在突發(fā)傳輸開(kāi)始的時(shí)候采樣到HSELx 信號(hào),它就會(huì)知道它將在整個(gè)突發(fā)傳輸過(guò)程中都被選擇。同樣的,對(duì)于在突發(fā)傳輸開(kāi)始的時(shí)候沒(méi)有被選擇的從設(shè)備也知道它在下一次突發(fā)傳輸之前都不會(huì)被選擇到。

1 kbyte 是AHB 從設(shè)備在存儲(chǔ)器空間分配中可以占據(jù)的最小空間。因此,如果一個(gè)突發(fā)傳輸跨越了1 kbyte 邊界,那么訪問(wèn)可能是開(kāi)始的時(shí)候訪問(wèn)一個(gè)從設(shè)備而后的傳輸又轉(zhuǎn)向另一個(gè)從設(shè)備,而根據(jù)上述原因,這是不允許發(fā)生的。

選擇1 kbyte 邊界是因?yàn)樗鼘?duì)于一個(gè)合理的突發(fā)傳輸已經(jīng)足夠大,但是對(duì)于那些可以對(duì)其到1 kbyte 空間而無(wú)需使用太多的可用內(nèi)存空間的外設(shè)來(lái)說(shuō)又太小。

如何將一個(gè)AHB 主設(shè)備連到一個(gè)AHB-lite系統(tǒng)上?

應(yīng)用于:AHB

AHB-lite系統(tǒng)沒(méi)有任何仲裁邏輯,所以全功能AHB 主設(shè)備將會(huì)永久的獲得總線。全功能AHB 主設(shè)備HBUSREQ 輸出信號(hào)保留不接,HGRANT 輸入信號(hào)直接接到邏輯‘1’(1b1)。

由于AHB-lite不支持SPLIT 和RETRY 響應(yīng),AHB-liteHRESP 信號(hào)只有1 位,所以全功能AHB 主設(shè)備HRESP[1:0] 輸入信號(hào)應(yīng)該將HRESP[1] 接到邏輯‘0’(1b0)。

全功能AHB 主設(shè)備是在鎖定傳輸?shù)牡刂穫鬏斚辔恢膀?qū)動(dòng)HLOCK 信號(hào)的,并且通常是經(jīng)由仲裁模塊重現(xiàn)返回到全功能主設(shè)備以產(chǎn)生HMASTLOCK 信號(hào),這將是和地址傳輸相位對(duì)其的。

下面的Verilog 代碼可以用來(lái)產(chǎn)生 AHB LOCK ->AHB-lite的HMASTLOCK 信號(hào)返回時(shí)序功能。

always @( negedge HRESETn or posedge HCLK ) begin
if ( !HRESETn )
HMASTLOCK <= 1b0;
else begin
if ( HREADY )
HMASTLOCK <= HLOCK;
end
end
下面的例子顯示了可以在總線上產(chǎn)生的HTRANS 傳輸順序:
一個(gè)普通的4 拍突發(fā)傳輸跟一個(gè)IDLE 傳輸。
N - S - S - S - I
一個(gè)帶有BUSY 傳輸?shù)钠胀? 拍突發(fā)傳輸。
N - S - B - S - B - S - I
一個(gè)4拍突發(fā)傳輸跟著另一個(gè)突發(fā)傳輸。
N - S - S - S - N - S - S - S - I
一個(gè)單次傳輸跟一個(gè)4 拍的突發(fā)傳輸。
N - N - S - S - S - I
一個(gè)單次傳輸跟一個(gè)IDLE 傳輸。
N - I
一個(gè)帶有BUSY 傳輸?shù)奈炊x長(zhǎng)度突發(fā)傳輸。
N - B - S - B - S - B - I
一個(gè)帶有BUSY 傳輸?shù)奈炊x長(zhǎng)度突發(fā)傳輸緊跟著另一個(gè)突發(fā)傳輸。
N - B - S - B - S - B - N - S

如何將一個(gè)AHB 從設(shè)備連到一個(gè)AHB-lite系統(tǒng)上?

應(yīng)用于:AHB

只要從設(shè)備不產(chǎn)生SPLIT 或者RETRY 響應(yīng),那么AHB 從設(shè)備和AHB-lite是兼容的,可以之間連接。

如果AHB 從設(shè)備需要產(chǎn)生RETRY 響應(yīng),那么需要一個(gè)Ahb2Ahb 橋接器(在ARM AMBA Design Kit(ADK)中有幾個(gè)例子)連接AHB 從設(shè)備和AHB-lite系統(tǒng)。這個(gè)Ahb2Ahb 能夠本地支持RETRY 響應(yīng),并保持AHB-lite系統(tǒng)端的HREADY 為低(1b0)。

如果AHB 從設(shè)備需要支持SPLIT 響應(yīng),那么不僅需要上面支持RETRY 響應(yīng)用到的Ahb2Ahb 橋接器,還需要一個(gè)本地虛擬主設(shè)備和一個(gè)仲裁器。SPLIT 響應(yīng)需要仲裁器將總線分配給兩一個(gè)主設(shè)備,所以需要一個(gè)虛擬主設(shè)備放在本地全功能AHB 總線上去驅(qū)動(dòng)IDLE 傳輸,只到從設(shè)備可以去完成SPLIT 傳輸。

AHB 和AHB-lite有什么區(qū)別?

應(yīng)用于:AHB
AHB-lite是全功能的AMBA 2 AHB 規(guī)范的一個(gè)簡(jiǎn)化版本,只支持一個(gè)主設(shè)備。
這樣的簡(jiǎn)化移除了仲裁邏輯所需要的信號(hào),HBUSREQ 信號(hào)和HGRANT 信號(hào),并且HRESP 信號(hào)只需要1 位,SPLIT 和RETRY 從設(shè)備響應(yīng)只用在對(duì)多主設(shè)備的支持上。
移除任何仲裁邏輯同時(shí)意味著AHB 主設(shè)備HLOCK 輸出信號(hào)需要會(huì)發(fā)給與地址傳輸相位對(duì)其的HMASTLOCK 信號(hào)(通常由AHB 仲裁器完成的功能)。

AMBA 系統(tǒng)鎮(zhèn)中復(fù)位信號(hào)應(yīng)該維持多少個(gè)周期?

應(yīng)用于:AHB,APB

建議系統(tǒng)上的主設(shè)備組件和從設(shè)備組件應(yīng)該在復(fù)位請(qǐng)求大于1 或者2 個(gè)周期時(shí)清除狀態(tài)。同時(shí)建議系統(tǒng)設(shè)計(jì)者應(yīng)該維持復(fù)位信號(hào)至少16 個(gè)周期,除非知道有主設(shè)備組件或者從設(shè)備組件需要更長(zhǎng)周期的復(fù)位請(qǐng)求。

AHB 怎樣處理鎖定傳輸中的SPLIT 響應(yīng)?

應(yīng)用于:AHB

如果一個(gè)傳輸中受到SPLIT 響應(yīng),那么仲裁器就會(huì)奪回被SPLIT 的主設(shè)備的總線使用權(quán)并該主設(shè)備將不會(huì)再參與仲裁,直到從設(shè)備表示傳輸可以完成。如果一次訪問(wèn)是鎖定的,那么該次訪問(wèn)就不能被其它主設(shè)備的訪問(wèn)所打斷。

AHB 系統(tǒng)在處理這兩種需求同時(shí)發(fā)生的情況只有一條途徑,那就是將總線分配給“虛擬主設(shè)備”。虛擬主設(shè)備只進(jìn)行IDLE 傳輸,這在鎖定傳輸中式允許的,如果將總線分配給其它任何主設(shè)備都將違背鎖定傳輸協(xié)議,如果仲裁器忽略SPLIT 相同將違背SPLIT 協(xié)議,所以虛擬主設(shè)備是唯一的選擇。

虛擬主設(shè)備同時(shí)用在所有主設(shè)備都收到SPLIT 響應(yīng)的情況下(虛擬主設(shè)備不能接受SPLIT 響應(yīng))。
建議支持split 的從設(shè)備的設(shè)計(jì)者能確保從設(shè)備監(jiān)聽(tīng)HMASTLOCK 輸入信號(hào),以便在鎖定傳輸中不返回SPLIT 響應(yīng),應(yīng)為那樣也是無(wú)濟(jì)于事的。

SPLIT/RETRY:SPLIT 和RETRY 響應(yīng)可以在突發(fā)傳輸中的任何時(shí)候給出嗎?

應(yīng)用于:AHB

是的,從設(shè)備可以在突發(fā)傳輸中的任何一次傳輸給出SPLIT,RETRY,ERROR 響應(yīng)。從設(shè)備被沒(méi)有限制只能在第一次傳輸給出這些響應(yīng)。

SPLIT/RETRY:從設(shè)備可以在給出SPLIT 響應(yīng)的同一個(gè)周期拉高HSPLITx 信號(hào)嗎?

應(yīng)用于:AHB

不可以。規(guī)范中要求HSPLITx 信號(hào)只能在給出SPLIT 響應(yīng)之后被拉高。

SPLIT/RETRY:從設(shè)備可以同時(shí)使用SPLIT 和RETRY 響應(yīng)嗎?

應(yīng)用于:AHB

通常,從設(shè)備并不同時(shí)使用SPLIT 和RETRY 響應(yīng)。對(duì)于那些可能同時(shí)被多個(gè)不同的主設(shè)備訪問(wèn)的從設(shè)備都應(yīng)該使用SPLIT 響應(yīng)。RETRY 響應(yīng)主要用在只被一個(gè)主設(shè)備訪問(wèn)的外設(shè)中。

SPLIT/RETRY:所有的主設(shè)備都應(yīng)該支持SPLIT 和RETRY 嗎?

應(yīng)用于:AHB

是的。所有主設(shè)備都必須支持SPLIT 和RETRY 響應(yīng),以確保它們能夠和任何的從設(shè)備兼容。主設(shè)備處理SPLIT 和RETRY 響應(yīng)的方式都是一樣的。

注意:如果系統(tǒng)是基于AHB-lite的,SPLIT 和RETRY 響應(yīng)都是不支持的。AHB-lite是單主設(shè)備方案,所以SPLIT 和RETRY 響應(yīng)都是沒(méi)有意義的。

SPLIT/RETRY:所有的從設(shè)備都應(yīng)該支持SPLIT 和RETRY 嗎?

應(yīng)用于:AHB

不是的。從設(shè)備只需要支持它需要使用的響應(yīng)類型。例如:一個(gè)簡(jiǎn)單的片上存儲(chǔ)器模塊可以在僅僅一個(gè)等待狀態(tài)后就能夠響應(yīng)所有的傳輸,那么它就不需要SPLIT 和RETRY 響應(yīng)。

SPLIT/RETRY:在SPLIT 響應(yīng)或RETRY 響應(yīng)之后的IDLE 傳輸中,應(yīng)該在總線上給出什么地址?

應(yīng)用于:AHB

其實(shí)在這個(gè)傳輸周期中,總線上是什么地址信號(hào)并沒(méi)有什么影響。被選擇的不應(yīng)該有任何行為,并且必須給出零等待的OKAY 響應(yīng)。

在許多情況下,主設(shè)備保持地址信號(hào)不變將會(huì)更簡(jiǎn)單,地址信號(hào)保持主設(shè)備想要進(jìn)行的下一次傳輸?shù)牡刂凡蛔?,并只在下一次傳輸返回那個(gè)因?yàn)镾PLIT 或是RETRY 響應(yīng)而必須重新進(jìn)行的傳輸?shù)牡刂飞稀?p>在一些設(shè)計(jì)上,主設(shè)備可能是在IDLE 傳輸周期中返回到那個(gè)需要重傳的地址上,這個(gè)當(dāng)然也是完全可以接受的。

SPLIT/RETRY:SPLIT 和RETRY 響應(yīng)有什么不同?

應(yīng)用于:AHB

SPLIT 和RETRY 響應(yīng)都被從設(shè)備在需要很多周期才能完成傳輸時(shí)使用的。這些響應(yīng)允許數(shù)據(jù)傳輸表現(xiàn)出完成,以避免總線停頓,但是這也同時(shí)表示傳輸應(yīng)該在下一次獲得總線的時(shí)候重新嘗試上一次傳輸。

它們兩者的不同在于:SPLIT 響應(yīng)告訴仲裁器可以將總線使用優(yōu)先級(jí)交給所有其他主設(shè)備直到SPLIT 傳輸可以結(jié)束(實(shí)際上是忽略該主設(shè)備以后所有的傳輸請(qǐng)求直到發(fā)出SPLIT 的那個(gè)從設(shè)備表示它可以完成SPLIT 傳輸),而RETRY 響應(yīng)僅僅告訴仲裁器將總線使用權(quán)交給最高優(yōu)先級(jí)的主設(shè)備。

SPLIT 響應(yīng)比RETRY 響應(yīng)實(shí)現(xiàn)起來(lái)更復(fù)雜,但是它的優(yōu)勢(shì)在于允許最有效的使用總線帶寬。

主設(shè)備在SPLIT 和RETRY 響應(yīng)上相同的行為,主設(shè)備應(yīng)該放棄下一次傳輸并重新嘗試當(dāng)前訪問(wèn)失敗的訪問(wèn)。

SPLIT/RETRY:當(dāng)AHB 主設(shè)備在在突發(fā)傳輸中間接收到從設(shè)備的RETRY 響應(yīng)時(shí),應(yīng)該在HTRANS 上使用什么信號(hào)?

應(yīng)用于:AHB

傳輸無(wú)論在何時(shí)重新發(fā)起的時(shí)候,它必須設(shè)置HTRANS 為NONSEQ,并且需要根據(jù)需求調(diào)整HBURST 信息(通常值表示INCR)。

SPLIT/RETRY:主設(shè)備可能會(huì)在SPLIT 響應(yīng)之后永遠(yuǎn)失去總線嗎?

應(yīng)用于:AHB

是的。所以從設(shè)備必須不能在給出SPLIT 響應(yīng)的同一個(gè)周期拉該HSPLIT 的相應(yīng)位,這樣的話主設(shè)備會(huì)永遠(yuǎn)失去總線。

總體:AHB 轉(zhuǎn)APB 橋如何處理不是32-bit 的訪問(wèn)?

應(yīng)用于:AHB、APB

橋接器只應(yīng)該簡(jiǎn)單的傳輸完整的32-bit 的數(shù)據(jù)。需要注意如果向APB 從設(shè)備進(jìn)行少于32-bit 的數(shù)據(jù)傳輸,確保設(shè)備在APB 總線上正確的位置很重要。

總體:為什么在APB 上沒(méi)有等待信號(hào)?

應(yīng)用于:APB

APB 在設(shè)計(jì)上是盡可能的有簡(jiǎn)單的接口。擁有這樣簡(jiǎn)單的設(shè)計(jì)使得在連接一個(gè)新的APB 設(shè)備的時(shí)候更加簡(jiǎn)單,并且在分析計(jì)算系統(tǒng)性能的時(shí)候更簡(jiǎn)單。

雖然很多APB 設(shè)備是低速設(shè)備,像是UART,它們通常通過(guò)控制寄存器訪問(wèn)的。通常設(shè)備驅(qū)動(dòng)程序首先會(huì)訪問(wèn)狀態(tài)寄存器確定它是否空閑,然后才會(huì)去去訪問(wèn)數(shù)據(jù)寄存器。這樣的兩個(gè)操作都可以不需要附加的等待狀態(tài),因此外設(shè)可以作為一個(gè)APB 設(shè)備而被訪問(wèn)。
如果確是需要等待狀態(tài)的外設(shè),可以設(shè)計(jì)成AHB 從設(shè)備,在很少數(shù)情況下,如果設(shè)計(jì)需要包括很多這樣的外設(shè),那么可以使用第二級(jí)AHB 總線以減輕主系統(tǒng)總線的負(fù)荷。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: AHB總線問(wèn)

評(píng)論


技術(shù)專區(qū)

關(guān)閉