blob: 647e2d62024f6a56be99f6b3d945b2893a30f76f [file] [log] [blame]
// File name: wb_CAN.sv
// Created: 5/14/2021
// Author: Zachary Ellis
// Version: 1.1 Added functionality
// Description: internal timer for CAN TX
module tx_timer (
input nRST,
input tx_strobe,
input dataphase,
input bitstuff,
input [3:0] pkt_size,
output byte_complete,
output [3:0] byte_num,
output end_data
);
flex_counter #(
.NUM_CNT_BITS(4)
)
BYTETIMER(
.clk(tx_strobe),
.n_rst(nRST),
.clear(!dataphase),
.count_enable(~bitstuff),
.rollover_val(4'd8),
.count_out(),
.rollover_flag(byte_complete)
);
flex_counter #(
.NUM_CNT_BITS(4)
)
PAYLOADTIMER(
.clk(byte_complete),
.n_rst(dataphase),
.clear(1'b0),
.count_enable(1'b1),
.rollover_val(pkt_size),
.count_out(byte_num),
.rollover_flag(end_data)
);
endmodule