aboutsummaryrefslogtreecommitdiffstats
path: root/fpga/usrp3/lib/axi/axi_chdr_header_trigger.v
diff options
context:
space:
mode:
authormichael-west <michael.west@ettus.com>2014-03-25 15:59:03 -0700
committermichael-west <michael.west@ettus.com>2014-03-25 15:59:03 -0700
commit04292f9b109479b639add31f83fd240a6387f488 (patch)
tree4b8723a4ae63626029704f901ee0083bb23bc1e9 /fpga/usrp3/lib/axi/axi_chdr_header_trigger.v
parent09915aa57bc88099cbcbbe925946ae65bc0ad8f0 (diff)
parentff8a1252f3a51369abe0a165d963b781089ec66c (diff)
downloaduhd-04292f9b109479b639add31f83fd240a6387f488.tar.gz
uhd-04292f9b109479b639add31f83fd240a6387f488.tar.bz2
uhd-04292f9b109479b639add31f83fd240a6387f488.zip
Merge branch 'master' into mwest/b200_docs
Diffstat (limited to 'fpga/usrp3/lib/axi/axi_chdr_header_trigger.v')
-rw-r--r--fpga/usrp3/lib/axi/axi_chdr_header_trigger.v40
1 files changed, 40 insertions, 0 deletions
diff --git a/fpga/usrp3/lib/axi/axi_chdr_header_trigger.v b/fpga/usrp3/lib/axi/axi_chdr_header_trigger.v
new file mode 100644
index 000000000..e8dee3675
--- /dev/null
+++ b/fpga/usrp3/lib/axi/axi_chdr_header_trigger.v
@@ -0,0 +1,40 @@
+
+// Copyright 2014 Ettus Research LLC
+
+
+module axi_chdr_header_trigger
+ #(
+ parameter WIDTH=64,
+ parameter SID=0
+ )
+ (input clk, input reset, input clear,
+ input [WIDTH-1:0] i_tdata, input i_tlast, input i_tvalid, input i_tready,
+ output trigger
+ );
+
+
+ reg state;
+ localparam IDLE = 0;
+ localparam RUN = 1;
+
+
+ always @(posedge clk)
+ if(reset | clear)
+ state <= IDLE;
+ else
+ case (state)
+ IDLE :
+ if(i_tvalid && i_tready)
+ state <= RUN;
+
+ RUN :
+ if(i_tready && i_tvalid && i_tlast)
+ state <= IDLE;
+
+ default :
+ state <= IDLE;
+ endcase // case (state)
+
+ assign trigger = i_tvalid && i_tready && (state == IDLE) && (i_tdata[15:0] != SID);
+
+endmodule // axi_chdr_header_trigger