まず、契約が導入されました
。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; ワイヤー [ 3:0 ] S_AXIS_tkeep; // 4番目のバイトが有効である ワイヤ S_AXIS_tready; //はスレーブからレディ信号を受信 ワイヤー [ 0:0 ] gpio_rtl_tri_o; ワイヤー [ 0:0 ] peripheral_aresetn。 REG [ 1:0 ]の状態。// 状态机 割り当てる 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 エンド・ エンド