0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何理解AHB_slave中的hready和hready_out以及hready_in

芯片驗證日記 ? 來源:芯片驗證日記 ? 作者:芯片驗證日記 ? 2022-12-17 08:07 ? 次閱讀

1.前言

相信很多朋友對AMBA都比較熟悉了,對AHB總線也不陌生,在AHB總線中,hready這個信號是最難理解,最容易搞錯,也是系統(tǒng)調試的過程中出問題最多的地方之一,同時也是很多面試官最喜歡問的知識點之一。本文做一個梳理,幫助大家徹底理解這個知識點。

2.理解一下hready和hready_out的含義

我們先看一個簡單的場景,就是系統(tǒng)中只有一個AHB Slave的場景。

下圖是AHB2協(xié)議中的一張截圖,其中hready作為Slave發(fā)給Master的握手信號,它表明AHB總線上該筆傳輸?shù)耐瓿?。AHB Slave的HREADY信號是Slave“延長”AHB傳輸?shù)臄?shù)據(jù)階段的指示。如果Slave不能立即響應,通常會發(fā)生這種情況,因此該Slave將HREADY信號拉低,以通知Master延長數(shù)據(jù)階段,以便Slave有足夠的時間響應。這種場景比較簡單,根本不需要hready_in信號,我就不仔細分析了,相信大家都能看懂。

寫到這里,補充一下,AHB2協(xié)議里只有hready的叫法,并沒有hready_out這一說法的,到AHB3和AHB5協(xié)議里就有了hready_out的叫法。但協(xié)議原文中都沒有hready_in的稱呼,hready_in只是工程項目中比較形象、比較好溝通的一種稱呼。這種稱呼很流行,甚至很多ip廠商也這么給信號命名。大家對照理解,不要搞混了。下圖中的hready就是通常所說的hready_out。到這里,相信你已經理解了hready和hready_out的含義。

pYYBAGOdB0eAVgixAAHm9bLDO20828.png

3.為什么AHB_slave還會有hready_in信號

下面讓我們看一個復雜的場景,就是系統(tǒng)中有多個AHB Slave,那么當發(fā)生流水操作(pipeline)的時候應該怎么處理呢?關于這個問題,AHB5協(xié)議中給出了一個經典的方案,參見下方截圖。每個Slave的HREADYOUT都“與”在一起,以給出系統(tǒng)范圍的HREADY信號,該信號再作為輸入反饋給每個Slave。這意味著每個Slave將具有2個HREADY信號: HREADY_in(系統(tǒng)范圍的HREADY信號)和HREADY_out。因此,如果任何Slave將HREADYOUT設為低,則hready_in將變?yōu)榈碗娖?。因此每個Slave都等該hready_in變?yōu)楦唠娖?,然后才能做出響應。每個Slave的HREADYOUT用來擴展數(shù)據(jù)階段,并且每個Slave必須有hready_in,以便知道系統(tǒng)上是否有任何其他Slave正在請求數(shù)據(jù)階段擴展。如果任何Slave的hready_in為低電平,則該Slave必須等待其hready_in變?yōu)楦唠娖?,然后才能響應任何AHB請求。因此每個Slave都有兩個hready信號,一個hready_in信號,一個hready_out信號。建議每個Slave的HREADY信號默認值設為“1”。 感謝關注微信公眾號《芯片驗證日記

poYBAGOdB5-AcH_9AAIAaf-qHBw434.png

4.hready_in作用示例

即便是pipeline操作,如果AHB連續(xù)對同一個Slave進行突發(fā)讀寫,hready_in的作用也體現(xiàn)不出來,只有下邊的情況才能體現(xiàn)hready_in的作用:

①AHB流水操作;②AHB連續(xù)訪問,并且是跨多個Slave訪問;③Slave存在反壓。如下圖所示:

AHB master第二次訪問S0時,S0出現(xiàn)反壓,但此時訪問S1的addr phase已經出現(xiàn),且此時S1處于ready狀態(tài)(hready_out_s1=1),但由于此時訪問S0的data_phase未結束,S0通過hready_out_s0反壓hready_in_s1,因此即便S1處于ready狀態(tài)也必須hold住。因此在設計AHB slave時,必須hready_out和hready_in同時為高,當次訪問才能完成。感謝關注微信公眾號《芯片驗證日記

poYBAGOdB8CAMKLFAAGduq9Q9Y0753.png

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 信號
    +關注

    關注

    11

    文章

    2768

    瀏覽量

    76486
  • AHB
    AHB
    +關注

    關注

    0

    文章

    18

    瀏覽量

    9736
收藏 人收藏

    評論

    相關推薦

    AHB總線HREADY和HRESP信號如何處理?

    HREADY信號是slave發(fā)出的控制誰的?看有人寫的程序HREADY即當了輸入又當作輸出,看的暈乎乎的。HRESP信號,是和HREADY信號同步嗎?兩者怎么配合?希望大家用一個等待過
    發(fā)表于 01-04 13:58

    請教關于ADE7880快速讀取諧波寄存器

    寄存器的諧波計算更新時間同步。將CONFIG寄存器的位2 (CF2DIS)置1便可選擇該功能。如果將CF2DIS設為0(默認值),CF2電能頻率轉換器輸出則在CF2/HREADY引腳提供。此信號的默認
    發(fā)表于 07-24 08:10

    hpi不穩(wěn)定 請問是什么原因?

    我把dm6416掛在arm9sam9g45的 外部總線上,使用訪問外部地址的方式訪問hpi。hpi的狀態(tài)不穩(wěn)定,寫進dsp一個數(shù)據(jù),再讀回來,有的時候正確,有的時候讀數(shù)據(jù)的時候hpi的hready
    發(fā)表于 08-07 07:41

    USB2.0設備控制器IP核的AHB接口設計實現(xiàn)

    hready_out,等待讀數(shù)據(jù)。因為每個端點只有1個AHB地址,如果SLV一直對同一個端點進行傳輸,則可以使用預讀取數(shù)據(jù),保持流水,提高數(shù)據(jù)傳輸效率。遇到BUSY周期進入HS_RDBUSY狀態(tài),有專門寄存器存儲預讀數(shù)據(jù),等待后面讀操作中使用?! ?/div>
    發(fā)表于 05-13 07:00

    如何理解LabVIEWModBus Slave函數(shù)的用途?

    Master的函數(shù)比如說 讀寫線圈,讀輸入等,都是針對PLC的操作,感覺比較好理解。但是ModBus slave的用途是在什么場合???如果LabVIEW(電腦)做從機, 里面也有讀寫線圈vi,這個線圈對電腦
    發(fā)表于 03-10 22:14

    【FPGA開發(fā)者項目連載】基于高云FPGA的方波發(fā)生器

    ,inputwireAHB_HRESETn);//The AHB BUS is always readyassign AHB_HREADY = 1'b1; //ready signal, slave
    發(fā)表于 05-15 18:33

    【Sipeed TangNano9K開發(fā)板試用體驗】+ 可繪畫的LCD顯示屏

    2bram ahb2bram( .clk_i(clk50), .reset_i(~sys_rstn), .hrdata_o(hrdata), .hresp_o(hresp), .hready_o(hready
    發(fā)表于 03-26 16:25

    AHB總線的HLOCK信號和HMASTLOCK信號之間有什么關系

    可能是與HREADY 信號無關的(例如,AHB 的等待狀態(tài))。因此HTRANS 信號可以在下一個周期改變?yōu)槿我夂戏ǖ闹?,如,在突發(fā)傳輸需要繼續(xù)時改為SEQ,在突發(fā)傳輸結束時改為IDLE,在需要發(fā)起一個單獨
    發(fā)表于 06-08 16:20

    Arm AMBA協(xié)議集中address phase是必須等到hready有效才結束嗎

    Arm AMBA協(xié)議集中,ahb-lite協(xié)議里面,address phase是必須等到hready有效才結束嗎?還是不管hready是否有效,只需要一拍就行?
    發(fā)表于 09-14 11:43

    Arm AMBA協(xié)議集中ahb2.0和3.0必須要有dummy master和default slave嗎?

    Arm AMBA協(xié)議集中,ahb2.0和3.0必須要有dummy master和default slave嗎?
    發(fā)表于 09-27 11:58

    ARM966E-S技術參考手冊

    詳細描述 AHB 協(xié)議,見 AMBA 規(guī)格(Rev 2. 0) 。 5.4.1 AHB 結構基于不同的地址和數(shù)據(jù)周期。訪問的地址和控制值在預計數(shù)據(jù)讀或寫之前的周期內從HCLK 上升的邊緣播放。在這
    發(fā)表于 08-02 09:41

    安路FPGA SF1 RISC-V 串口通訊

    ( I_ahb_hresp ), .hready( I_ahb_hready) ); endmodule 在TOP模塊調用,SOC模塊和PLL模塊 module top(
    發(fā)表于 09-27 11:10

    AHB Slave Decoder和AHB Slave Interface接口的使用說明

    接口可以訪問帶有AHB Slave接口的IP模塊,但是Fuxi工具沒有提供以單個寄存器讀寫訪問方式的IP核。而在實際工程,MCU需要以寄存器的方式訪問FPGA資源,本文的在此種背景下,根據(jù)A
    發(fā)表于 11-11 08:00 ?15次下載
    <b class='flag-5'>AHB</b> <b class='flag-5'>Slave</b> Decoder和<b class='flag-5'>AHB</b> <b class='flag-5'>Slave</b> Interface接口的使用說明

    如何理解AHB和APB,以及一些有關嵌入式的基礎名詞術語縮寫

    一,有關嵌入式的部分基礎名詞縮寫:AHB        &
    發(fā)表于 11-26 19:06 ?47次下載
    如何<b class='flag-5'>理解</b><b class='flag-5'>AHB</b>和APB,<b class='flag-5'>以及</b>一些有關嵌入式的基礎名詞術語縮寫

    數(shù)字IC驗證:ARM總線協(xié)議AMBAAHB、APB的簡介、區(qū)別與聯(lián)系

    , ASB, APB);Qchannel文章目錄1 AMBA總線2 AHB2.1 一個典型的基于AHB的微控制器2.2 AHB總線互聯(lián)結構:中心選擇器連接master與slave2.3
    發(fā)表于 12-05 15:36 ?16次下載
    數(shù)字IC驗證:ARM總線協(xié)議AMBA<b class='flag-5'>中</b><b class='flag-5'>AHB</b>、APB的簡介、區(qū)別與聯(lián)系