zynq-sandbox

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 87ef6109809d9325d53d4f39cf8615f9cc537c11
parent 4d881b967400969a06531d2c372f1bd1f9b9dc81
Author: Brian Swetland <swetland@frotz.net>
Date:   Sun, 27 Jul 2014 20:47:07 -0700

eth-rmii-rx: start of packet strobe

useful for timestamping

Diffstat:
Mhdl/eth_rmii_rx.sv | 9++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/hdl/eth_rmii_rx.sv b/hdl/eth_rmii_rx.sv @@ -40,7 +40,10 @@ module eth_rmii_rx( // transmit outputs which can drive // an eth_rmii_tx to create a repeater output reg [1:0]out_tx = 0, - output reg out_txen = 0 + output reg out_txen = 0, + + // start of packet strobe (for timestamping, etc) + output reg sop = 0 ); typedef enum { @@ -61,12 +64,14 @@ wire [7:0]rxshift = { rx, data[7:2] }; reg [1:0]delay_tx = 0; reg delay_txen = 0; reg next_txen; +reg next_sop; always_comb begin next_state = state; next_data = data; next_valid = 0; next_eop = 0; + next_sop = 0; next_txen = delay_txen; case (state) @@ -75,6 +80,7 @@ always_comb begin // only move to preamble on crs_dv AND a preamble di-bit next_state = PRE1; next_txen = 1; + next_sop = 1; end PRE1: if (rx == 2'b01) begin next_state = PRE2; @@ -146,6 +152,7 @@ always_ff @(posedge clk50) begin valid <= next_valid; data <= next_data; eop <= next_eop; + sop <= next_sop; delay_txen <= next_txen; delay_tx <= rx; out_txen <= next_txen ? delay_txen : 0;