admin 管理员组

文章数量: 1086866

将一个32bit的数据,颠倒过来,bit0与bit31交换,bit1与bit30交换,C语言实现与verilog实现。

C语言实现

void  sw(uint val)

{

    int i,valx=0;

    for(i=0;i<32;i++)

    {

        valx+=val<<(31-i);

     }

    return valx;

}

verilog 实现方案一:

module sw(

a,

b);

input wire [31:0]a;

output wire [31:0]b;

assign b={a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31]};

endmodule

verilog 实现方案二:

module sw(

a,

b);

input wire [31:0]a;

output wire [0:31]b;

assign b=a;

endmodule

verilog 实现方案三:

。。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。。

 

 

 

本文标签: 将一个32bit的数据,颠倒过来,bit0与bit31交换,bit1与bit30交换,C语言实现与verilog实现