A 32-bit vector can be viewed as containing 4 bytes (bits [31:24], [23:16], etc.). Build a circuit that will reverse the byte ordering of the 4-byte word.
AaaaaaaaBbbbbbbbCcccccccDddddddd => DdddddddCcccccccBbbbbbbbAaaaaaaa
This operation is often used when the endianness of a piece of data needs to be swapped, for example between little-endian x86 systems and the big-endian formats used in many Internet protocols.
1 module top_module(
2 input [31:0] in,
3 output [31:0] out );//
4 assign out[31:24]=in[7:0];
5 assign out[23:16]=in[15:8];
6 assign out[15:8]=in[23:16];
7 assign out[7:0]=in[31:24];
8 // assign out[31:24] = ...;
9 endmodule