diff options
| author | Ben Hilburn <ben.hilburn@ettus.com> | 2014-02-14 12:05:07 -0800 |
|---|---|---|
| committer | Ben Hilburn <ben.hilburn@ettus.com> | 2014-02-14 12:05:07 -0800 |
| commit | ff1546f8137f7f92bb250f685561b0c34cc0e053 (patch) | |
| tree | 7fa6fd05c8828df256a1b20e2935bd3ba9899e2c /fpga/usrp3/lib/io_port2/data_swapper_64.v | |
| parent | 4f691d88123784c2b405816925f1a1aef69d18c1 (diff) | |
| download | uhd-ff1546f8137f7f92bb250f685561b0c34cc0e053.tar.gz uhd-ff1546f8137f7f92bb250f685561b0c34cc0e053.tar.bz2 uhd-ff1546f8137f7f92bb250f685561b0c34cc0e053.zip | |
Pushing the bulk of UHD-3.7.0 code.
Diffstat (limited to 'fpga/usrp3/lib/io_port2/data_swapper_64.v')
| -rw-r--r-- | fpga/usrp3/lib/io_port2/data_swapper_64.v | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/fpga/usrp3/lib/io_port2/data_swapper_64.v b/fpga/usrp3/lib/io_port2/data_swapper_64.v new file mode 100644 index 000000000..89ae6a7c2 --- /dev/null +++ b/fpga/usrp3/lib/io_port2/data_swapper_64.v @@ -0,0 +1,22 @@ +// +// Copyright 2013 Ettus Research LLC +// + +module data_swapper_64 ( + input [2:0] swap_lanes, + + input [63:0] i_tdata, + output [63:0] o_tdata +); + localparam SWAP_32B = 3'b100; + localparam SWAP_16B = 3'b010; + localparam SWAP_8B = 3'b001; + + wire [63:0] data_p1, data_p2; + + assign data_p1 = (|(swap_lanes & SWAP_32B)) ? { i_tdata[31:0], i_tdata[63:32] } : i_tdata; + assign data_p2 = (|(swap_lanes & SWAP_16B)) ? { data_p1[47:32], data_p1[63:48], data_p1[15:0], data_p1[31:16] } : data_p1; + assign o_tdata = (|(swap_lanes & SWAP_8B)) ? { data_p2[55:48], data_p2[63:56], data_p2[39:32], data_p2[47:40], + data_p2[23:16], data_p2[31:24], data_p2[7:0], data_p2[15:8] } : data_p2; + +endmodule // data_swapper_64 |
