blob: 289c674e876ac7a20b5a7ceffbba0e99921194b1 (
plain)
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
|