1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
//
// Copyright 2016 Ettus Research
// Copyright 2018 Ettus Research, a National Instruments Company
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//
// Decoder header word into CVITA header fields
module cvita_hdr_decoder (
input [127:0] header,
output [1:0] pkt_type, output eob, output has_time,
output [11:0] seqnum, output [15:0] length, output [15:0] payload_length,
output [15:0] src_sid, output [15:0] dst_sid,
output [63:0] vita_time
);
wire [63:0] hdr[0:1];
assign hdr[0] = header[127:64];
assign hdr[1] = header[63:0];
assign pkt_type = hdr[0][63:62];
assign has_time = hdr[0][61];
assign eob = hdr[0][60];
assign seqnum = hdr[0][59:48];
assign length = hdr[0][47:32];
assign src_sid = hdr[0][31:16];
assign dst_sid = hdr[0][15:0];
assign vita_time = hdr[1];
assign payload_length = has_time ? length - 16'd16 : length - 16'd8;
endmodule
|