新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AHB總線問答

        AHB總線問答

        作者: 時間:2016-12-15 來源:網絡 收藏
        仲裁:主設備可以在一個突發傳輸中解除HLOCK信號嗎?

        應用于:AHB

        本文引用地址:http://www.104case.com/article/201612/330392.htm

        AHB規范中要求所有在地址傳輸相位內的控制(除了HADDR和HTRANS)在突發傳輸周期中保持穩定。

        盡管HLOCK信號不是一個地址傳輸相位內的信號,但是它卻直接控制HMASTLOCK信號,而該信號是在地址傳輸相位的。

        所以HLOCK信號必須在整個突發傳輸周期中維持為高,并且只能在最后一個地址傳輸相位之后改變,HMASTLOCK信號隨之改變。

        仲裁:主設備可以在被分配到總線而有不需要使用總線的時候進行一個不是IDLE的傳輸嗎?

        應用于:AHB

        是的。主設備可以在被分配到總線而有不需要使用總線的時候進行一個不是IDLE的傳輸。但是請注意,在這種情況下任然建議主設備繼續維持請求信號,以便仲裁器不會在傳輸過程中將總線使用權分配給另一個優先級更低的主設備。

        仲裁:如果一個主設備當前被默認分配到了總線使用權,那么它在開始一個非IDLE傳輸之前需要維持HBUSREQ多少個周期?

        應用于:AHB

        不需要。主設備可以立即開始一次非IDLE傳輸。

        仲裁:HLOCK信號和HMASTLOCK信號之間有什么關系?

        應用于:AHB

        在每個傳輸周期中的地址傳輸相位開始的時候,仲裁器都會對將要驅動地址信號線的主設備的HLOCK信號采樣,如果HLOCK信號在此時有效那么仲裁器就會拉高HMASTLOCK并維持整個傳輸周期中的地址傳輸相位階段。

        仲裁:HGRANT信號可以在什么什么改變?

        應用于:AHB

        HGRANT信號可以在任意周期改變,并有可能是一下幾種情況:

        • HGRANT信號有效,然后在當前傳輸周期完成之前移除。這是有可能的并且是允許的,因為HGRANT信號只在HREADY信號為高的時候被主設備采樣。
        • 主設備可以不需要申請而得到總線使用權。
        • 以上兩點意味著主設備可能在申請總線的同時獲得總線使用權。這發生在在主設備在同一個周期申請總線并同時被仲裁器分配總線使用權。

        仲裁:為什么HADDR信號有時候是仲裁器的輸入信號?

        應用于:AHB

        地址總線,HADDR,本是不需要作為仲裁器的輸入信號的,但是在有些設計中卻可以用于幫助仲裁器決定改變總線使用權的恰當時機。例如,仲裁器可以設計成當突發傳輸到達4字邊界的時候改變總線使用權。

        仲裁器可以設計成總是允許突發傳輸完成嗎?

        應用于:AHB

        應用于:AMBA AHB

        從設備給出SPLIT,RETRY 或ERROR 響應總會引起突發傳輸提前結束,而這是不受仲裁器控制的,因此(仲裁器)必須予以支持。

        未定義長度的INCR 突發傳輸的結束點并不能預測到,所以還沒有有效的方法設計仲裁器以保證在將總線授予另一個主設備時突發傳輸已經結束。

        定長的INCRx 和WRAPx突發傳輸能夠計數它們傳輸的節拍,所以仲裁器可以允許他們傳輸結束。但是由于AHB仲裁的同步時序,所以沒有辦法避免在突發傳輸第一次傳輸發起之后就立即結束突發傳輸的可能性。

        仲裁器只有通過對HBURST 信號的采樣才知道一個定長的突發傳輸正在進行。但是HBURST 信號第一次可以被采樣到的店是在突發傳輸第一節拍的第一個時鐘周期之后,而在那時,仲裁器很可能已經決定將總線授予另一個主設備并相應要改變HGRANT 信號。在這種情況下,只有一條從HBURST 到HGRANT 的組合路徑能夠幫助及時檢測到突發傳輸以避免提前結束,但是組合路徑在AHB 總線中是不允許的。

        主設備應該在一個鎖定傳輸中什么時候拉高是釋放HLOCK 信號?

        應用于:AHB

        在一個鎖定傳輸中,HLOCK 信號必須至少在地址傳輸相位之前一個周期拉高。這樣才能保證仲裁器在地址傳輸相位開始的時候,采樣到的HLOCK 信號為高。

        主設備應該在鎖定傳輸中最后一次傳輸的地址傳輸相位發起之后釋放HLOCK 信號。

        主設備應該在什么時候釋放HBUSREQ 信號?

        應用于:AHB

        對于一個未定義長度的突發傳輸(INCR),主設備必須保持HBUSREQ 信號為高一直到突發傳輸中的最后一次傳輸的地址傳輸相位發起之后。這將意味著如果倒數第二次傳輸是一個零等待狀態,那么主設備可能會在未定義長度突發傳輸之后還被授予總線都多一次額外的傳輸。

        對于定長突發傳輸,主設備可以在第一次獲得總線發起傳輸之后就釋放HBUSREQ 信號。只所以可以這樣做是因為仲裁器能夠對突發傳輸中的傳輸節拍計數并保持主設備一直被授予總線知道突發傳輸的結束。

        但是,仲裁器并沒有強制要求必須允許突發傳輸的結束。所以,如果仲裁器在突發傳輸結束之前就改變了HGRANT 信號,那么主設備必須再次拉高HBUSREQ 信號。

        仲裁器在一次鎖定傳輸之后什么時候會將總線授予另一個主設備?

        應用于:AHB

        仲裁器總會授予主設備在鎖定傳輸周期之后一個額外的傳輸,所以主設備能夠保證在鎖定傳輸周期之后HMASTLOCK 信號為低的時候執行一次傳輸。而這恰巧又是在鎖定傳輸的最后一次傳輸的數據相位上。

        此時,仲裁器可以將改變HGRANT 信號授予另一個主設備,但是如果在最后一次鎖定傳輸的數據相位上收到一個RETRY 響應,那么仲裁器將會繼續驅動HGRANT 信號以確保那個執行鎖定傳輸的主設備繼續獲得總線;如果在最后一次鎖定傳輸的數據相位上收到一個SPLIT 響應,那么仲裁器將會將總線授予一個虛擬的主設備。

        總體:對于一個允許斷電或者時鐘停止的從設備,需要什么樣的系統支持?

        應用于:AHB

        如果系統視圖訪問一個斷電的或者時鐘停止的從設備,你必須確保這次訪問能夠喚醒電源供電或恢復時鐘,或者配置AHB 譯碼器所有這種類型的訪問重定向到一個虛擬從設備,這樣以避免系統訪問一個無效的從設備時永遠等停在那里。

        這種方式的重定向需要確保隨機IDLE地址的訪問將會有HREADY 為高,HRESP=OKAY 的默認響應,但是對于真正的訪問(NONSEQ 或者SEQ)將會有ERROR 響應。

        總體:什么時候可以發生突發傳輸提前結束?

        應用于:AHB

        突發傳輸提前結束或是因為仲裁器在突發傳輸過程中改變HGRANT 信號,或是因為從設備在任一傳輸節拍中給出非OKAY 響應。注意雖然主設備不能決定一個定長的突發傳輸直到主設備被仲裁器或者從設備提示要這樣做。

        所有的AHB 主設備,從設備和仲裁器都必須設計成支持突發傳輸提前結束。

        總體:HTRANS 信號可以在HREADY 為低時改變嗎?

        應用于:AHB

        一般來說,AHB 主設備不應該在HREADY 信號為低的時候改變控制信號,但是在以下情況,允許改變HTRANS 信號:

        • HTRANS = IDLE

        AHB 主設備在執行一個內部操作并且沒有發起一次總線傳輸。但是在AHB 等待狀態下(HREADY 為低),主設備可能會決定需要一次總線傳輸然后在下一個周期將HTRANS 改為NONSEQ。

        • HTRANS = BUSY

        HTRANS 在此時正是給予主設備一定時間以完成其內部操作,而這可能是與HREADY 信號無關的(例如,AHB 中的等待狀態)。因此HTRANS 信號可以在下一個周期改變為任意合法的值,如,在突發傳輸需要繼續時改為SEQ,在突發傳輸結束時改為IDLE,在需要發起一個單獨的傳輸時改為NONSEQ。

        • HRESP = SPLIT/RETRY

        正如AHB 規范中所述,主設備必須在雙周期響應SPLIT和RETRY的第二個周期保持HTRANS為IDLE,所以HTRANS 會在第二個周期中從第一個周期中的值改變為IDLE。

        • HRESP = ERROR

        主設備允許在回應ERROR 響應時改變HTRANS 信號,就像回應SPLIT/RETRY響應一樣,并且取消當前突發傳輸中的后續傳輸(即使HTRANS當前表示的是定長突發傳輸)。在這種情況下,HTRANS 信號在第響應的二個周期改變為IDLE。或者主設備也可以允許繼續當前傳輸。

        總體:BUSY 傳輸可以發生在突發傳輸之后嗎?

        應用于:AHB

        BUSY 傳輸只能發生在不定長突發傳輸(INCR)的結束。

        BUSY 傳輸不能發生在定長突發傳輸(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 傳輸。這會避免在仿真的時候,總線監視器發出的警告。

        總體:在AHB 系統中可以支持多少個主設備?

        應用于:AHB

        AHB 規范中提供了最多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 系統上的所有主設備并且同時作為HREADY 輸入信號反饋輸入到所有的從設備。

        總體:默認從設備真的需要嗎?

        應用于:AHB

        如果整個4G byte空間都被定義使用到了,那么默認從設備是不需要的。但是,如果在整個存儲地址空間分配上存在未定義的區域,那么確保在訪問不存在的地址空間時AHB 系統不會發生死鎖是很重要的。默認主設備的功能是非常簡單的,并且同時在譯碼器中就實現了。

        總體:虛擬主設備真的需要嗎?

        應用于:AHB

        任何存在支持SPLIT 響應的從設備的AHB 系統都是需要有虛擬主設備的。應為如果所有其它主設備都接收到了SPLIT 響應,那么系統會將總線使用權分配給虛擬主設備。
        虛擬主設備中不需要什么邏輯,它的實現只需要簡單的將其輸入信號連接到地址/控制多路器的虛擬主機位置。虛擬主機需要驅動HTRANS 為IDLE,HLOCK 為低,所有其它主設備輸出信號驅動為合法狀態。

        總體:主設備在擴展的傳輸中可以改變HADDR 嗎?

        應用于:AHB

        如果主設備表示它想進行NOSEQ,SEQ 或者BUSY 傳輸,那么它就不允許在擴展的傳輸中(當HREADY 為低時)改變地址總線上的值,除非它接收到了ERROR,RETRY 或者SPLIT 響應。如果主設備表示它想進行一個IDLE 傳輸,那么它可以改變地址信號。

        總體:有規定需要HPROT,HSIZE 和HWRITE 信號在突發傳輸中需要保持恒定嗎?

        應用于:AHB

        是的,控制信號必須在整個突發傳輸中都要保持恒定。

        總體:規范里面建議只有16個等待狀態,如果需要16個以上的等待周期該怎么做?

        應用于:AHB

        對于一些從設備而言,16個以上的等待周期是可以接受的。例如,一個串行的ROM,它只在系統商店初始化的時候會被訪問時會插入大量的等待狀態,但是在系統完成上電初始化之后,它并不影響系統性能和延時的計算。

        對于另一些從設備,存在多項選擇。SPLIT 或者RETRY 響應可以用于表示從設備暫時還不能執行數據傳輸請求,或者從設備被訪問時,給出一個中斷響應,或者在查詢一個狀態寄存器之后能訪問。這兩種情況都表示從設備不能夠在可接受的等待周期中給出應答。


        上一頁 1 2 下一頁

        關鍵詞: AHB總線問

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 大英县| 铜鼓县| 浙江省| 杂多县| 稷山县| 阳春市| 长岭县| 聂荣县| 牡丹江市| 五指山市| 甘孜| 休宁县| 长寿区| 秀山| 黄陵县| 柯坪县| 中阳县| 北辰区| 福清市| 故城县| 东乌珠穆沁旗| 平邑县| 盐亭县| 闽侯县| 碌曲县| 扎囊县| 舞阳县| 卓资县| 陇西县| 白朗县| 新民市| 拉萨市| 奉节县| 卓资县| 达州市| 五原县| 新绛县| 赤壁市| 凤冈县| 滦平县| 建平县|