题解 | #使用函数实现数据大小端转换#
使用函数实现数据大小端转换
https://www.nowcoder.com/practice/74c0c19ad0c444959c436a049647a93c
`timescale 1ns/1ns module function_mod( input [3:0]a, input [3:0]b, output [3:0]c, output [3:0]d ); /*大端:高字节存放在低地址,低字节存放在高地址,一般叫 网络字节顺序。 小端:高字节存放在高地址,低字节存放在低地址(记忆方法,高高低低),一般叫 主机字节顺序。 例如,十六进制数 12345678,转换后为 78563412 对于 1 个字节的数据不需要考虑大小端,超过 1 个字节的数据才需要考虑 */ genvar i; generate for(i = 0 ; i <= 3 ; i = i + 1) begin:convert assign c[i] = a[3-i]; assign d[i] = b[3-i]; end endgenerate endmodule
大小端转换刚开始还不理解 其实本质上就上给输入数据调换数据 高位数据放到低地址上去 地位数据放到高地址上去 其实这就是一个for循环搞定的事情