最早接觸到握手協(xié)議是在校期間學(xué)習PCIe的AXI總線(xiàn)時(shí),至今日雖然PCIe的結構已經(jīng)忘得一干二凈,但握手協(xié)議經(jīng)過(guò)不斷的使用還算掌握的不錯。
對于點(diǎn)開(kāi)這篇文章的人而言,握手協(xié)議是什么其實(shí)不需要贅述:
"Valid-Ready" 握手協(xié)議是一種常用于數字電路中的接口協(xié)議,用于控制數據的傳輸和處理。這種協(xié)議通常在兩個(gè)設備(如芯片、模塊或模塊間的通信)之間使用,以確保數據的有效傳輸和正確處理。
下面是 "Valid-Ready" 握手協(xié)議的特點(diǎn)和優(yōu)勢:
特點(diǎn) :
- 有效數據傳輸: "Valid-Ready" 握手協(xié)議通過(guò)有效信號(Valid)來(lái)指示數據是否有效,Ready信號來(lái)指示接收方是否已準備好接收數據。只有在Valid和Ready信號都為高電平時(shí),數據傳輸才會(huì )發(fā)生,從而確保數據在正確的時(shí)機傳輸。
- 流控制: Ready信號可以起到流量控制的作用。如果接收方?jīng)]有準備好接收數據,它可以將Ready信號置低,從而停止發(fā)送方的數據傳輸,以防止數據擁塞。
- 同步性: "Valid-Ready" 握手協(xié)議提供了同步機制,確保發(fā)送和接收之間的時(shí)序一致性。數據傳輸只會(huì )在雙方都準備好的情況下進(jìn)行,避免了數據的不同步問(wèn)題。
- 靈活性: 握手信號的有效和準備狀態(tài)可以根據具體的應用需求來(lái)控制。這使得協(xié)議可以適應不同的數據傳輸速率和處理速度。
- 錯誤檢測: 在有效信號中,還可以包含錯誤檢測位,以便接收方可以驗證傳輸的數據的正確性。
優(yōu)勢 :
- 簡(jiǎn)單可靠: "Valid-Ready" 握手協(xié)議相對簡(jiǎn)單,易于實(shí)現和調試。它的工作原理直觀(guān)清晰,使得設計者和開(kāi)發(fā)者能夠更容易地理解和管理數據傳輸流程。
- 節約資源: 與其他復雜的通信協(xié)議相比,"Valid-Ready" 握手協(xié)議在硬件資源和時(shí)鐘周期方面的需求較低。這使得它在資源受限的系統中具有優(yōu)勢。
- 適應性強: 由于其簡(jiǎn)單性,"Valid-Ready" 握手協(xié)議可以適應不同類(lèi)型的通信和數據處理需求。它可以用于內部芯片通信,模塊之間的通信,以及許多其他數字電路場(chǎng)景。
- 實(shí)時(shí)性好: 由于有效和準備信號的即時(shí)性,"Valid-Ready" 握手協(xié)議通常能夠滿(mǎn)足實(shí)時(shí)數據傳輸的需求,特別適用于需要低延遲的應用。
好的,冠冕堂皇的部分結束了。那么一句話(huà)來(lái)概括握手協(xié)議就是:通過(guò)valid控制信號發(fā)送,通過(guò)ready控制信號接收,通過(guò)若干info承載信息的一種接口總線(xiàn),其典型時(shí)序圖如下:
握手接口時(shí)序
對于發(fā)射模塊而言,valid/data為輸出,ready為輸入。對于接收模塊而言,valid/data為輸入,ready為輸出:
接口方向
對于握手協(xié)議的時(shí)序,有如下幾條較為通用的要求:
- 發(fā)送方在準備好發(fā)送數據之后,需要將valid信號置高,表示數據有效,在接收方的ready置高前(包括當拍)valid不可拉低;
- 接收方在準備好接收數據時(shí),需要將ready信號置高,表示已準備好接收數據;
- 在數據傳輸期間,valid 和ready信號需要保持同步,數據傳輸只能在valid和ready信號同時(shí)為高電平時(shí)進(jìn)行;
- 解復位后(工作期間)valid不可為不定態(tài),即仿真中valid不允許出現X態(tài)和Z態(tài),必須為高/低電平;
- 解復位后(工作期間)ready不可為不定態(tài),即仿真中valid不允許出現X態(tài)和Z態(tài),必須為高/低電平,注意ready的定態(tài)要求不如valid嚴格(或者說(shuō)在valid不為1時(shí),ready的不定態(tài)一般是允許的,有時(shí)也會(huì )要求ready全程不可為不定態(tài));
- info在valid為1時(shí)不可為不定態(tài),在valid為0時(shí)無(wú)約束;
- 在valid置起為1后,到valid和ready進(jìn)行握手前(包括當拍),info值不能跳變;
- valid的產(chǎn)生邏輯中不可包含或隱式包含ready信號;
- ready的產(chǎn)生邏輯中可以包含valid信號;
當然了,以上是相對通用的要求,是否需要遵守可以根據實(shí)際情況來(lái)判斷。比如果接收模塊需要5拍來(lái)處理一個(gè)info,那么數據傳輸就不必非要在valid和ready同時(shí)為高時(shí)進(jìn)行,可以在valid拉高后就開(kāi)始處理,處理完成時(shí)再拉高ready接收并丟棄info。
個(gè)人的建議是,1、2、4、7、8/9選一為必須遵守的規則,其余為盡量遵守但是可以調整的規則。
-
芯片設計
+關(guān)注
關(guān)注
15文章
943瀏覽量
54486 -
AXI總線(xiàn)
+關(guān)注
關(guān)注
0文章
66瀏覽量
14172 -
PCIe接口
+關(guān)注
關(guān)注
0文章
115瀏覽量
9560
發(fā)布評論請先 登錄
相關(guān)推薦
AXI總線(xiàn)協(xié)議的幾種時(shí)序介紹
握手型接口的同步FIFO實(shí)現
![<b class='flag-5'>握手</b>型接口的同步FIFO實(shí)現](https://file1.elecfans.com/web2/M00/B4/3B/wKgZomVta6yAVxE-AAC2z3CE9sc652.jpg)
bq25792握手協(xié)議
[ElfBoard] USB接口及握手協(xié)議介紹
基于ECC帶緩存的快速SSL握手協(xié)議
什么是握手信號? 什么是握手協(xié)議?
什么是詢(xún)問(wèn)握手身份驗證協(xié)議
tcp協(xié)議三次握手詳細過(guò)程
![tcp<b class='flag-5'>協(xié)議</b>三次<b class='flag-5'>握手</b>詳細過(guò)程](https://file1.elecfans.com//web2/M00/A7/0C/wKgZomUMQg6AfSLIAAAaTcH3Wtk653.png)
AXI總線(xiàn)協(xié)議的幾種時(shí)序介紹
![AXI總線(xiàn)<b class='flag-5'>協(xié)議</b>的幾種<b class='flag-5'>時(shí)序</b><b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/91/EA/pIYBAFzXcg-AROZyAACe8LILhNE061.jpg)
英業(yè)達上電時(shí)序的詳細資料說(shuō)明
![英業(yè)達上電<b class='flag-5'>時(shí)序</b>的詳細資料<b class='flag-5'>說(shuō)明</b>](https://file.elecfans.com/web1/M00/D2/A8/pIYBAF_J35CAN88CAAH5fbg8xnM884.png)
時(shí)序分析的優(yōu)化策略詳細說(shuō)明
![<b class='flag-5'>時(shí)序</b>分析的優(yōu)化策略詳細<b class='flag-5'>說(shuō)明</b>](https://file.elecfans.com/web1/M00/DA/C8/pIYBAGAAAAGAAQKdAAC147xg8iY812.png)
AXI4協(xié)議五個(gè)不同通道的握手機制
![AXI4<b class='flag-5'>協(xié)議</b>五個(gè)不同通道的<b class='flag-5'>握手</b>機制](https://file1.elecfans.com/web2/M00/82/8E/wKgZomRYbuiAPjN9AAAGor6zVuM312.png)
評論