使用向量来反转一个32位的输入

要实现如下的功能:

AaaaaaaaBbbbbbbbCcccccccDddddddd => DdddddddCcccccccBbbbbbbbAaaaaaaa
错误代码:

module top_module(
input [31:0] in,
output [31:0] out );//

// assign out[31:24] = ...;
assign out[24:31]=in[7:0];
assign out[16:23]=in[15:8];
assign out[8:15]=in[23:16];
assign out[0:7]=in[31:24];
endmodule


正确代码:

module top_module(
input [31:0] in,
output [31:0] out );//

// assign out[31:24] = ...;
assign out[31:24]=in[7:0];
assign out[23:16]=in[15:8];
assign out[15:8]=in[23:16];
assign out[7:0]=in[31:24];
endmodule

 

有一个需要说明:就是我们在定义向量的时候如果按照这样的方式wire [7:0]node 的格式来做,那第一位其实是node[7],最高位是node[0].如果按照如下的方式来定义wire[0:7]node2,那么第一位是node2[0],最高位是node2[7].需要按照定义的方式来确定最高和最低位。

posted @ 2022-10-11 09:31  VarForrest  阅读(16)  评论(0编辑  收藏  举报