国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

什么是握手協議?握手機制的原理

倩倩 ? 來源:CSDN ? 作者:CSDN ? 2022-08-12 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

。

什么是握手協議

說起握手,首先查了一下百度百科。握手是一種禮儀,起源于中世紀的歐洲,順序為長幼有序,女士優先。(PS:所以握手的時候,男士記得要紳士一點哦)。

在芯片中,握手是最古老的跨時鐘域之間傳輸數據的方式。握手機制通過將脈沖信號展寬,待輸出一側檢測到信號并將其解析為脈沖信號后,再向輸入一側發送應答信號,表明接收到信號并且傳輸完成。

96f7bf62-19f6-11ed-ba43-dac502259ad0.png

為什么要握手

在人類的進化史中,握手作為一種善意的表達方式,可以增進人與人之間的和諧。言歸正傳,那么數字電路中為什么也需要握手機制呢?這是因為在數字電路中,跨時鐘域處理是個較為常見的問題。關于跨時鐘域,我們公眾號之前有介紹過,想復習一下的同學可以查看一下之前寫的文章。

在從快時鐘向慢時鐘傳遞時,由于輸入信號變化較快,輸出一側可能跟不上輸入的變化,從而導致“漏采“現象。由于兩個時鐘之間的頻率不同,來自快時鐘域的脈沖信號,還沒來得及被慢時鐘的采到,便轉瞬即逝,從而導致信號被漏采。此時,握手機制便可以大顯神通。

握手機制的原理

97777d60-19f6-11ed-ba43-dac502259ad0.png

(1)發送端在t_clk時鐘域下將需要發送的數據準備好后,將t_rdy信號置為有效,該信號必須在tclk下降沿輸出。接收端在rclk時鐘域下同步r_rdy信號,同步后的信號命名為t_rdy_rclk。

(2)接收端在t_rdy_rclk有效期間,對t_data進行采樣,得到t_data_rclk。

(3)接收端將r_ack信號置為1,信號必須在rclk下降沿輸出。發送端將r_ack同步為r_ack_tclk。

至此,已經完成“半握手”,發送端在輸出下一數據前,不會等到r_ack_tclk被置為0。半握手機制工作速度快,但是使用不當有可能會導致操作錯誤。然而,如果要從高頻時鐘向低頻時鐘傳輸數據,則需要采用全握手機制。

(4)當r_ack_tclk為高電平時,發送端將t_rdy置為0。

(5)當t_rdy_rclk為低電平時,接收端將r_ack置為0。

(6)當r_ack_tclk為低電平時,發送端將t_rdy重新置為1發送端可以發送新的數據。

至此,全握手完成。顯然,全握手過程耗時較長,數據傳輸較慢。但是全握手機制穩定可靠,可以在兩個任意頻率的時鐘域中安全地進行數據傳輸。需要注意一點的是,數據應該在發送時鐘域內穩定至少兩個時鐘上升沿,請求信號req的寬度應該超過兩個時鐘周期,否則從高速時鐘向低速時鐘傳遞可能無法捕捉到該信號,也就是信號“失聯”了。

握手機制的代碼實現

發送端狀態機:

97c37e22-19f6-11ed-ba43-dac502259ad0.jpg


module transmit(tclk,reset_tclk,t_rdy,data_avail,transmit_data,t_data,r_ack);input tclk;input reset_tclk;input data_avail;input [31:0]transmit_data;input r_ack;output t_rdy;output t_data;
localparam IDLE_T = 2'd0,    ASSERT_T_RDY = 2'd1,    DEASSERT_T_RDY = 2'd2;
reg [1:0] t_hndshk_state,t_hndshk_state_nxt;reg t_rdy,t_rdy_nxt;reg [31:0] t_data,t_data_nxt;reg r_ack_tclk;
always@(*)begin
 t_hndshk_state_nxt = t_hndshk_state; t_rdy_nxt = 1'b0; t_data_nxt = t_data;
 case(t_hndshk_state)  IDLE_T:begin   if(data_avail) begin    t_rdy_nxt = 1'b1;    t_hndshk_state_nxt = ASSERT_T_RDY;    t_data_nxt = transmit_data;   end  end
  ASSERT_T_RDY:begin   if(r_ack_tclk)begin    t_rdy_nxt = 1'b0;    t_hndshk_state_nxt = DEASSERT_T_RDY;    t_data_nxt = 'd0;   end   else begin    t_rdy_nxt = 1'b1;    t_data_nxt = transmit_data;   end  end
  DEASSERT_T_RDY:begin   if(!r_ack_tclk)begin    if(data_avail)begin     t_rdy_nxt = 1'b1;     t_hndshk_state_nxt = ASSERT_T_RDY;     t_data_nxt = transmit_data;    end    else begin     t_hndshk_state_nxt = IDLE_T;    end   end  end
 endcaseendalways@(posedge tclk or negedge reset_tclk)begin if(!reset_tclk)begin  t_rdy <= 1'b0;  t_hndshk_state <= IDLE_T;  t_data <= 32'h00000000;  r_ack_tclk <= 1'b0; end
 else begin  t_rdy <= t_rdy_nxt;  t_hndshk_state <= t_hndshk_state_nxt;  t_data <= t_data_nxt;  r_ack_tclk <= r_ack; end
endendmodule

接收端狀態機:

97e481b2-19f6-11ed-ba43-dac502259ad0.jpg


module receiver(rclk,reset_rclk,t_rdy,t_data,r_ack);input rclk,reset_rclk;input t_rdy;input[31:0] t_data;output r_ack;
reg r_hndshk_state,r_hndshk_state_nxt;reg t_rdy_rclk;reg[31:0] t_data_rclk,t_data_rclk_nxt;reg r_ack,r_ack_nxt;
localparam IDLE_R = 1'b0,    ASSERT_ACK = 1'b1;
always@(*)begin r_hndshk_state_nxt = r_hndshk_state; r_ack_nxt = 1'b0; t_data_rclk_nxt = t_data_rclk; case(r_hndshk_state)  IDLE_R:begin   if(t_rdy_rclk)begin    r_hndshk_state_nxt = ASSERT_ACK;    t_data_rclk_nxt = t_data;    r_ack_nxt = 1'b1;   end  end
  ASSERT_ACK:begin   if(!t_rdy_rclk)begin    r_hndshk_state_nxt = IDLE_R;    r_ack_nxt = 1'b0;   end   else begin    r_ack_nxt = 1'b1;   end  end
 endcaseend
always@(posedge rclk or negedge reset_rclk)begin if(!reset_rclk)begin  r_hndshk_state <= IDLE_R;  t_data_rclk <= 1'b0;  t_rdy_rclk <= 1'b0;  r_ack <= 1'b0; end
 else begin  r_hndshk_state <= r_hndshk_state_nxt;  t_data_rclk <= t_data_rclk_nxt;  t_rdy_rclk <= t_rdy;  r_ack <= r_ack_nxt; endend
endmodule

握手機制的缺點

一個字:慢。

好了,希望本文對大家有所幫助。

審核編輯 :李倩

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

    關注

    193

    文章

    1651

    瀏覽量

    83364
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    74009
  • 脈沖信號
    +關注

    關注

    6

    文章

    408

    瀏覽量

    38526

原文標題:談談數字芯片中的握手協議

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TCP/IP(Socket)協議深度剖析

    TCP/IP協議作為互聯網通信的基礎架構,其核心機制Socket編程承載著全球數據交換的使命。本文將深入剖析這一協議的七層架構、三次握手與四次揮手的精妙設計、流量控制與擁塞控制的動態平
    的頭像 發表于 03-03 17:06 ?516次閱讀

    異種總線破壁記:疆鴻智能EtherCAT轉DeviceNet的“握手”之道

    異種總線破壁記:疆鴻智能EtherCAT轉DeviceNet的“握手”之道 在食品飲料廠工作過的同行都清楚,灌裝線對控制系統的實時性要求有多苛刻——灌裝頭起停、閥門開閉、封口同步,稍有延遲就是次品
    的頭像 發表于 02-26 14:50 ?173次閱讀
    異種總線破壁記:疆鴻智能EtherCAT轉DeviceNet的“<b class='flag-5'>握手</b>”之道

    TCP三次握手與四次揮手的詳細過程

    TCP 三次握手和四次揮手,大概是網絡領域被問爛了的面試題。但真正能把狀態變遷、序列號變化、抓包細節講清楚的人并不多。很多人背了八股文,一到生產環境看 Wireshark 抓包就懵了
    的頭像 發表于 02-25 10:38 ?231次閱讀

    低成本改造實錄:如何讓MODBUS TCP與PROFIBUS在鋁廠握手言和

    低成本改造實錄:如何讓MODBUS TCP與PROFIBUS在鋁廠握手言和 去年夏天,我負責的一個鋁電解車間數字化改造項目,遇到了個典型的老難題。中控室嶄新的監控平臺說著流利的“MODBUS TCP
    的頭像 發表于 12-22 14:25 ?185次閱讀
    低成本改造實錄:如何讓MODBUS TCP與PROFIBUS在鋁廠<b class='flag-5'>握手</b>言和

    TCP的三次握手

    (1)第一次握手:Client將標志位SYN置為1,隨機產生一個值seq=J,并將該數據包發送給Server,Client進入SYN_SENT狀態,等待Server確認。 (2)第二次握手
    發表于 12-02 07:16

    無線充項目求助:PD 協議芯片握手后反復重啟斷電,求解決方案!

    Type-C 接口與 iPad、聯想 Pad、三星 Pad 握手充電。 已做嘗試及現象: 先后采用勁芯微、易充、美芯晟 20W 以上無線充方案,搭配智融 SW3522 PD 協議芯片給 Pad 供電
    發表于 11-13 14:48

    NICE接口介紹

    的問題,和E203內核的一般指令一樣。 3、采用握手機制,E203內核發出的request信號持續拉高,直到協處理器ready信號拉高,握手成功,信息傳遞給協處理器。 4、協處理器處理完畢,通過response
    發表于 11-05 09:52

    握手信號的詳解

    在dtcm和itcm等模塊中經常用到以valid,read結尾的信號量,他們就是握手信號。 握手信號是一種用于協調和同步不同系統之間操作的信號。當兩個或多個系統要進行數據傳輸或交互時,需要確保
    發表于 10-24 08:04

    Vivado浮點數IP核的握手信號

    和給出握手信號。在RISC v架構中每個模塊(包括FPU)的握手信號都有一個i_valid、i_ready,FPU內部需要三個輸入數據的握手信號、一個輸出結果的握手信號。 根據AXI
    發表于 10-24 07:01

    Sink PD快充協議芯片XSP25支持PD+QC+FCP+SCP+AFC協議

    基于改變快充協議,使電源輸出電壓和電流滿足需求者的要求。 PD誘騙協議工作原理 與供電端進行PD協議握手通信:取電芯片需要與供電端進行PD協議
    的頭像 發表于 10-17 15:21 ?656次閱讀
    Sink PD快充<b class='flag-5'>協議</b>芯片XSP25支持PD+QC+FCP+SCP+AFC<b class='flag-5'>協議</b>

    求一份CS32G020實現ALT Mode功能的demo

    我們想用CS32G020實現作為sink端傳輸HDMI視頻的協議握手,電壓協商已經可以實現,主要是想實現ALT Mode握手,誰有相關的demo程序麻煩發我一份,799305423@qq.com,感謝,感謝
    發表于 08-22 11:49

    關于AXI Lite無法正常握手的問題

    關于AXI Lite的問題 為什么我寫的AXI Lite在使用AXI Lite Slave IP的時候可以正常握手,但是在使用AXI Lite接口的BRAM的時候就沒有辦法正常握手了,我找不到問題在
    發表于 07-16 18:50

    當PLC遇上伺服電機:CCLink IE與DeviceNet的跨協議握手」指南

    在汽車制造的自動化產線中,不同通信協議的設備協同作業是常見挑戰。例如,當采用CCLink IE總線的PLC系統需要控制基于DeviceNet網關協議的伺服電機時,協議差異可能導致數據交互不暢,影響產
    發表于 06-10 14:43

    芯片設計之握手協議

    本文主要介紹握手的基本概念,讀者可通過該篇文章對握手有個基本概念。
    的頭像 發表于 05-14 09:16 ?1236次閱讀
    芯片設計之<b class='flag-5'>握手</b><b class='flag-5'>協議</b>

    TCP三次握手和四次揮手,這樣解釋太通俗易懂了!

    TCP連接的建立和釋放分別通過“三次握手”和“四次揮手”來完成。三次握手過程TCP三次握手是建立可靠網絡連接的關鍵過程,它用于確保通信雙方能夠正常發送和接收數據,并提供可靠的數據傳輸機制
    的頭像 發表于 04-24 19:33 ?1574次閱讀
    TCP三次<b class='flag-5'>握手</b>和四次揮手,這樣解釋太通俗易懂了!