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
33
34
35
36
|
//
// Copyright 2016 Ettus Research
// Copyright 2018 Ettus Research, a National Instruments Company
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//
// Modifies CVITA packet header fields
module cvita_hdr_modify (
input [127:0] header_in,
output [127:0] header_out,
input use_pkt_type, input [1:0] pkt_type,
input use_has_time, input has_time,
input use_eob, input eob,
input use_seqnum, input [11:0] seqnum,
input use_length, input [15:0] length,
input use_payload_length, input [15:0] payload_length,
input use_src_sid, input [15:0] src_sid,
input use_dst_sid, input [15:0] dst_sid,
input use_vita_time, input [63:0] vita_time
);
wire [15:0] length_adj = payload_length + (header_out[125] /* Has time */ ? 16'd16 : 16'd8);
assign header_out = {
(use_pkt_type == 1'b1) ? pkt_type : header_in[127:126],
(use_has_time == 1'b1) ? has_time : header_in[125],
(use_eob == 1'b1) ? eob : header_in[124],
(use_seqnum == 1'b1) ? seqnum : header_in[123:112],
(use_length == 1'b1) ? length :
(use_payload_length == 1'b1) ? length_adj : header_in[111:96],
(use_src_sid == 1'b1) ? src_sid : header_in[95:80],
(use_dst_sid == 1'b1) ? dst_sid : header_in[79:64],
(use_vita_time == 1'b1) ? vita_time : header_in[63:0]};
endmodule
|