AXI4-Streamのプロトコルの概要と分析

まず、契約が導入されました

。1、AXI4_Streamは高速データストリームに対して、無制限のデータバースト送信を可能にするアドレスエントリを削除します。バス及びクロックバスリセットに加えて、他のインタフェース信号は、文字Tで始まります

図2に示すように、信号インタフェースの説明:

(1)、ACLK --------- -----グローバル・クロック・ソースのクロック信号、マスタークロック信号の立ち上がりエッジで全ての信号サンプル。

(2)、ARESETN ------ ------アクティブローリセット。

(3)、Tvalidは-------ホストデータ有効信号を効果的マシンから送信されたホスト、高速データによって発行された、(差分AXI4、AXI4-Liteは、AXI4_Streamは、アドレスエントリを削除します)。マスターのためのソース。

(4)、Tdataと[31:0] - ホストによって送信されたデータ、オプションデータ幅、32/64/1278/256ビット。ソースビットマスター。

(5)、Tkeep [3:0]コンテンツ関連Tdataとを示す---修飾バイトがデータの有効バイトであり、ビットはTkeep香港Zijieバイトを認めていない、バイトは、無関係とみなさこれは、バイトストリームから除去することができます。マスターのためのソース。

(6)、Tlastを--------はすなわち、データパケット境界前回データからホストコンピュータに通知します。マスターのためのソース。

(7)、TIDは---------ホストによって発行された、アイデンティティ識別子、ときにデータストリームの送信機能は、複数の異なるデータストリームを識別する。マスターのためのソース。

(8)、TREADYは------レディ信号を受信するから放出されました。

第二に、通信メカニズム

  それだけで心に留めておくべき最も重要なこと  1 Tvalid&TREADY ==が でているため、有効な信号はデータ送信元によって生成され、データの送信時間を開始することができ、ブックオフユナイテッドメートル先のソース(によって生成されたReady信号、これらの言葉はあまりにも古典を総括データを読み込み、他のAXI4バス、ホストは)RREADY信号を生成します。

   AXI4ストリームは、アドレス線(データフロー識別がTIDと依存している)を除去するため、データの読み書きの通信を伴わない、単純な送信及び受信することを含む、伝送遅延が低減されます。

第三に、例示しました

 

  REG [ 31である0 ] S_AXIS_tdata; // 送信データ
  REG   S_AXIS_tlast;   // バースト転送の終了
  REG S_AXIS_tvalid;   // 有効な送信
  ワイヤ FCLK_CLK0; // クロック送信
  ワイヤーs_axis_aclkと、
   ワイヤs_axis_aresetn;
   ワイヤー [ 30 ] S_AXIS_tkeep; // 4番目のバイトが有効である
  ワイヤ S_AXIS_tready; //はスレーブからレディ信号を受信
  ワイヤー [ 00 ] gpio_rtl_tri_o;
   ワイヤー [ 00 ] peripheral_aresetn。
  REG [ 10 ]の状態。// 状态机
  
割り当てる S_AXIS_tkeep = 4 ' b1111と、  
割り当て s_axis_aclk =   FCLK_CLK0と、
割り当て s_axis_aresetn = peripheral_aresetnと、
  
常に(@ posedge FCLK_CLK0)
    始める
       場合(peripheral_aresetn!)を開始
           S_AXIS_tvalid <= 1 " B0; 
           S_AXIS_tdata <= 32 'のD0。
           S_AXIS_tlast <= 1 "B0; 
           州立<= 0 ;
        終了
        始める
          ケース(状態)
             0開始   // 入ってくるので、送信と受信レディ信号を許可するのを待つ
                IF(gpio_rtl_tri_o && S_AXIS_tready)開始
                   S_AXIS_tvalid <= 1。'はB1を; //は有効な位置PLを開催 
                   ステート<= 1。;
                 終了
                 始める
                   S_AXIS_tvalidを <= 1。B0; 
                   州立<= 0 ;
                 終了
              終了
            。1開始    // スレーブがデータ送信を開始する準備ができている場合、
                 IF(S_AXIS_tready)開始
                     S_AXIS_tdata <+ = S_AXIS_tdataを1 ' B1; 
                     IF(S_AXIS_tdata == 16 'はD510の後に設定されている)送信データの//終了を開始する最後の511信号 
                        S_AXIS_tlast <= 1。' B1; 
                        州立<= 2 ;
                      終了
                      始める
                        S_AXIS_tlastを <= 1。' B0; 
                        州立<= 1。;
                     エンド
                 エンド
                  始める
                    S_AXIS_tdata <= ; S_AXIS_tdata                    
                    州立 <= 1 ;
                  エンド
              エンド       
            2開始  // 転送の準備のための容器、機械から受信して待っ
                 IF(!S_AXIS_tready)開始
                    S_AXIS_tvalid <= 1 'はB1; 
                    S_AXIS_tlast <= 1を。' B1; 
                    S_AXIS_tdata <= S_AXIS_tdata; 
                    州立 <= 2 ;
                  エンド
                 他の 開始
                    S_AXIS_tvalid <= 1 " B0を。
                    S_AXIS_tlast <= 1 " B0; 
                    S_AXIS_tdata <= 32 'のD0。
                    状態<= 0 エンド・
              エンド
           デフォルト:状態<= 0 ;
           ENDCASE 
       エンド・              
   エンド  

 

おすすめ

転載: www.cnblogs.com/luxinshuo/p/11567484.html