AHB總線問答
應用于:AHB
本文引用地址:http://m.ptau.cn/article/201612/330392.htmAHB規(guī)范中要求所有在地址傳輸相位內的控制(除了HADDR和HTRANS)在突發(fā)傳輸周期中保持穩(wěn)定。
盡管HLOCK信號不是一個地址傳輸相位內的信號,但是它卻直接控制HMASTLOCK信號,而該信號是在地址傳輸相位的。
所以HLOCK信號必須在整個突發(fā)傳輸周期中維持為高,并且只能在最后一個地址傳輸相位之后改變,HMASTLOCK信號隨之改變。
仲裁:主設備可以在被分配到總線而有不需要使用總線的時候進行一個不是IDLE的傳輸嗎?
應用于:AHB
是的。主設備可以在被分配到總線而有不需要使用總線的時候進行一個不是IDLE的傳輸。但是請注意,在這種情況下任然建議主設備繼續(xù)維持請求信號,以便仲裁器不會在傳輸過程中將總線使用權分配給另一個優(yōu)先級更低的主設備。
仲裁:如果一個主設備當前被默認分配到了總線使用權,那么它在開始一個非IDLE傳輸之前需要維持HBUSREQ多少個周期?
應用于:AHB
不需要。主設備可以立即開始一次非IDLE傳輸。
仲裁:HLOCK信號和HMASTLOCK信號之間有什么關系?
應用于:AHB
在每個傳輸周期中的地址傳輸相位開始的時候,仲裁器都會對將要驅動地址信號線的主設備的HLOCK信號采樣,如果HLOCK信號在此時有效那么仲裁器就會拉高HMASTLOCK并維持整個傳輸周期中的地址傳輸相位階段。
仲裁:HGRANT信號可以在什么什么改變?
應用于:AHB
HGRANT信號可以在任意周期改變,并有可能是一下幾種情況:
- HGRANT信號有效,然后在當前傳輸周期完成之前移除。這是有可能的并且是允許的,因為HGRANT信號只在HREADY信號為高的時候被主設備采樣。
- 主設備可以不需要申請而得到總線使用權。
- 以上兩點意味著主設備可能在申請總線的同時獲得總線使用權。這發(fā)生在在主設備在同一個周期申請總線并同時被仲裁器分配總線使用權。
仲裁:為什么HADDR信號有時候是仲裁器的輸入信號?
應用于:AHB
地址總線,HADDR,本是不需要作為仲裁器的輸入信號的,但是在有些設計中卻可以用于幫助仲裁器決定改變總線使用權的恰當時機。例如,仲裁器可以設計成當突發(fā)傳輸到達4字邊界的時候改變總線使用權。
仲裁器可以設計成總是允許突發(fā)傳輸完成嗎?
應用于:AHB
應用于:AMBA AHB
從設備給出SPLIT,RETRY 或ERROR 響應總會引起突發(fā)傳輸提前結束,而這是不受仲裁器控制的,因此(仲裁器)必須予以支持。
未定義長度的INCR 突發(fā)傳輸的結束點并不能預測到,所以還沒有有效的方法設計仲裁器以保證在將總線授予另一個主設備時突發(fā)傳輸已經結束。
定長的INCRx 和WRAPx突發(fā)傳輸能夠計數它們傳輸的節(jié)拍,所以仲裁器可以允許他們傳輸結束。但是由于AHB仲裁的同步時序,所以沒有辦法避免在突發(fā)傳輸第一次傳輸發(fā)起之后就立即結束突發(fā)傳輸的可能性。
仲裁器只有通過對HBURST 信號的采樣才知道一個定長的突發(fā)傳輸正在進行。但是HBURST 信號第一次可以被采樣到的店是在突發(fā)傳輸第一節(jié)拍的第一個時鐘周期之后,而在那時,仲裁器很可能已經決定將總線授予另一個主設備并相應要改變HGRANT 信號。在這種情況下,只有一條從HBURST 到HGRANT 的組合路徑能夠幫助及時檢測到突發(fā)傳輸以避免提前結束,但是組合路徑在AHB 總線中是不允許的。
主設備應該在一個鎖定傳輸中什么時候拉高是釋放HLOCK 信號?
應用于:AHB
在一個鎖定傳輸中,HLOCK 信號必須至少在地址傳輸相位之前一個周期拉高。這樣才能保證仲裁器在地址傳輸相位開始的時候,采樣到的HLOCK 信號為高。
主設備應該在鎖定傳輸中最后一次傳輸的地址傳輸相位發(fā)起之后釋放HLOCK 信號。
主設備應該在什么時候釋放HBUSREQ 信號?
應用于:AHB
對于一個未定義長度的突發(fā)傳輸(INCR),主設備必須保持HBUSREQ 信號為高一直到突發(fā)傳輸中的最后一次傳輸的地址傳輸相位發(fā)起之后。這將意味著如果倒數第二次傳輸是一個零等待狀態(tài),那么主設備可能會在未定義長度突發(fā)傳輸之后還被授予總線都多一次額外的傳輸。
對于定長突發(fā)傳輸,主設備可以在第一次獲得總線發(fā)起傳輸之后就釋放HBUSREQ 信號。只所以可以這樣做是因為仲裁器能夠對突發(fā)傳輸中的傳輸節(jié)拍計數并保持主設備一直被授予總線知道突發(fā)傳輸的結束。
但是,仲裁器并沒有強制要求必須允許突發(fā)傳輸的結束。所以,如果仲裁器在突發(fā)傳輸結束之前就改變了HGRANT 信號,那么主設備必須再次拉高HBUSREQ 信號。
仲裁器在一次鎖定傳輸之后什么時候會將總線授予另一個主設備?
應用于:AHB
仲裁器總會授予主設備在鎖定傳輸周期之后一個額外的傳輸,所以主設備能夠保證在鎖定傳輸周期之后HMASTLOCK 信號為低的時候執(zhí)行一次傳輸。而這恰巧又是在鎖定傳輸的最后一次傳輸的數據相位上。
此時,仲裁器可以將改變HGRANT 信號授予另一個主設備,但是如果在最后一次鎖定傳輸的數據相位上收到一個RETRY 響應,那么仲裁器將會繼續(xù)驅動HGRANT 信號以確保那個執(zhí)行鎖定傳輸的主設備繼續(xù)獲得總線;如果在最后一次鎖定傳輸的數據相位上收到一個SPLIT 響應,那么仲裁器將會將總線授予一個虛擬的主設備。
總體:對于一個允許斷電或者時鐘停止的從設備,需要什么樣的系統(tǒng)支持?
應用于:AHB
如果系統(tǒng)視圖訪問一個斷電的或者時鐘停止的從設備,你必須確保這次訪問能夠喚醒電源供電或恢復時鐘,或者配置AHB 譯碼器所有這種類型的訪問重定向到一個虛擬從設備,這樣以避免系統(tǒng)訪問一個無效的從設備時永遠等停在那里。
這種方式的重定向需要確保隨機IDLE
總體:什么時候可以發(fā)生突發(fā)傳輸提前結束?
應用于:AHB
突發(fā)傳輸提前結束或是因為仲裁器在突發(fā)傳輸過程中改變HGRANT 信號,或是因為從設備在任一傳輸節(jié)拍中給出非OKAY 響應。注意雖然主設備不能決定一個定長的突發(fā)傳輸直到主設備被仲裁器或者從設備提示要這樣做。
所有的AHB 主設備,從設備和仲裁器都必須設計成支持突發(fā)傳輸提前結束。
總體:HTRANS 信號可以在HREADY 為低時改變嗎?
應用于:AHB
一般來說,AHB 主設備不應該在HREADY 信號為低的時候改變控制信號,但是在以下情況,允許改變HTRANS 信號:
- HTRANS = IDLE
AHB 主設備在執(zhí)行一個內部操作并且沒有發(fā)起一次總線傳輸。但是在AHB 等待狀態(tài)下(HREADY 為低),主設備可能會決定需要一次總線傳輸然后在下一個周期將HTRANS 改為NONSEQ。
- HTRANS = BUSY
HTRANS 在此時正是給予主設備一定時間以完成其內部操作,而這可能是與HREADY 信號無關的(例如,AHB 中的等待狀態(tài))。因此HTRANS 信號可以在下一個周期改變?yōu)槿我夂戏ǖ闹?,如,在突發(fā)傳輸需要繼續(xù)時改為SEQ,在突發(fā)傳輸結束時改為IDLE,在需要發(fā)起一個單獨的傳輸時改為NONSEQ。
- HRESP = SPLIT/RETRY
正如AHB 規(guī)范中所述,主設備必須在雙周期響應SPLIT和RETRY的第二個周期保持HTRANS為IDLE,所以HTRANS 會在第二個周期中從第一個周期中的值改變?yōu)镮DLE。
- HRESP = ERROR
主設備允許在回應ERROR 響應時改變HTRANS 信號,就像回應SPLIT/RETRY響應一樣,并且取消當前突發(fā)傳輸中的后續(xù)傳輸(即使HTRANS當前表示的是定長突發(fā)傳輸)。在這種情況下,HTRANS 信號在第響應的二個周期改變?yōu)镮DLE?;蛘咧髟O備也可以允許繼續(xù)當前傳輸。
總體:BUSY 傳輸可以發(fā)生在突發(fā)傳輸之后嗎?
應用于:AHB
BUSY 傳輸只能發(fā)生在不定長突發(fā)傳輸(INCR)的結束。
BUSY 傳輸不能發(fā)生在定長突發(fā)傳輸(SINGLE,INCR4,WAP4,INCR8,WAP8,INCR16,WAP16)的結束。
總體:主設備可以在傳輸等待中改變地址和控制信號嗎?
應用于:AHB
可以的。如果地址和控制信號表示的是一個IDLE 傳輸,那么主設備可以在HREADY 為低的時候將傳輸改為一個真正的傳輸(NONSEQ)。
但是如果主設備當前正表示一個真正的傳輸(NONSEQ或者SEQ),那么主設備不能在傳輸等待中取消這次傳輸,除非主設備接收到SPLIT。RETRY或者ERROR 響應。
總體:AHB 主設備可以直接連到AHB 從設備嗎?
應用于:AHB
任何不支持SPLIT 響應的從設備都可以直接連到AHB 主設備上。如果從設備確實有使用SPLIT 響應,那么一個簡化版的中采取還是需要的。
如果一個AHB 主設備直接連到AHB 從設備,那么必須確保從設備在復位的時候維持HREADY 信號為高,并且從設備選擇信號HSEL 永遠維持為高。
總體:所有的從設備都必須支持BUSY 傳輸類型嗎?
應用于:AHB
是的。所有從設備都必須支持BUSY 傳輸類型以確保它能夠與任何主設備兼容。
總體:地址必須對齊嗎?即使是IDLE 傳輸?
應用于:AHB
是的。地址應高根據傳輸寬度(HSIZE)對齊,即使是IDLE 傳輸。這會避免在仿真的時候,總線監(jiān)視器發(fā)出的警告。
總體:在AHB 系統(tǒng)中可以支持多少個主設備?
應用于:AHB
AHB 規(guī)范中提供了最多16 個主設備,然而,這還包括一個虛擬主設備,即真正的總線主設備最多之后15 個。習慣上總線主機號0 被分配給虛擬總線主機。
總體:AHB到APB的橋接器如何處理不是32-bits 的訪問?
應用于:AHB,APB
橋接器應該簡單的將整個32-bit 的數據都傳輸過去。但是請注意,當進行小于32-bit的數據傳輸時,確保外設正處在APB 數據總線上的正確比特位上。
總體:HREADY 信號是從設備的輸入信號還是輸出信號?
應用于:AHB
AHB 從設備必須將HREADY 信號既作為輸入信號又作為輸出信號。
從設備需要輸出HREADY 信號以便能夠擴展傳輸中的數據傳輸相位。
從設備同時需要將HREADY 信號作為一個輸入信號,以便能夠判斷上一次選擇的從設備在什么時候完成它的最后一次傳輸,以及當前從設備的數據傳輸相位即將開始。
每一個AHB 從設備都應該有一個HREADY 輸出信號(習慣上命名為HREADYOUT)連接到從設備—主設備多路器上多路器的輸出信號就是全局HREADY 信號,它將連接到AHB 系統(tǒng)上的所有主設備并且同時作為HREADY 輸入信號反饋輸入到所有的從設備。
總體:默認從設備真的需要嗎?
應用于:AHB
如果整個4G byte空間都被定義使用到了,那么默認從設備是不需要的。但是,如果在整個存儲地址空間分配上存在未定義的區(qū)域,那么確保在訪問不存在的地址空間時AHB 系統(tǒng)不會發(fā)生死鎖是很重要的。默認主設備的功能是非常簡單的,并且同時在譯碼器中就實現(xiàn)了。
總體:虛擬主設備真的需要嗎?
應用于:AHB
任何存在支持SPLIT 響應的從設備的AHB 系統(tǒng)都是需要有虛擬主設備的。應為如果所有其它主設備都接收到了SPLIT 響應,那么系統(tǒng)會將總線使用權分配給虛擬主設備。
虛擬主設備中不需要什么邏輯,它的實現(xiàn)只需要簡單的將其輸入信號連接到地址/控制多路器的虛擬主機位置。虛擬主機需要驅動HTRANS 為IDLE,HLOCK 為低,所有其它主設備輸出信號驅動為合法狀態(tài)。
總體:主設備在擴展的傳輸中可以改變HADDR 嗎?
應用于:AHB
如果主設備表示它想進行NOSEQ,SEQ 或者BUSY 傳輸,那么它就不允許在擴展的傳輸中(當HREADY 為低時)改變地址總線上的值,除非它接收到了ERROR,RETRY 或者SPLIT 響應。如果主設備表示它想進行一個IDLE 傳輸,那么它可以改變地址信號。
總體:有規(guī)定需要HPROT,HSIZE 和HWRITE 信號在突發(fā)傳輸中需要保持恒定嗎?
應用于:AHB
是的,控制信號必須在整個突發(fā)傳輸中都要保持恒定。
總體:規(guī)范里面建議只有16個等待狀態(tài),如果需要16個以上的等待周期該怎么做?
應用于:AHB
對于一些從設備而言,16個以上的等待周期是可以接受的。例如,一個串行的ROM,它只在系統(tǒng)商店初始化的時候會被訪問時會插入大量的等待狀態(tài),但是在系統(tǒng)完成上電初始化之后,它并不影響系統(tǒng)性能和延時的計算。
對于另一些從設備,存在多項選擇。SPLIT 或者RETRY 響應可以用于表示從設備暫時還不能執(zhí)行數據傳輸請求,或者從設備被訪問時,給出一個中斷響應,或者在查詢一個狀態(tài)寄存器之后能訪問。這兩種情況都表示從設備不能夠在可接受的等待周期中給出應答。
評論