一个位于位的交换问题

2019-07-16 00:40发布

module rom0(clk,a,q);
input clk;
input[3:0] q;
output reg [3:0]a;
always @(posedge clk)
begin
case (q)
q[0]:a[0]=q[0];
q[1]:a[1]=q[2];
q[2]:a[2]=q[1];
q[3]:a[3]=q[3];
endcase
end
endmodule
这是我自己写的一个程序。错误和逻辑肯定很多错误。
我想得到的一个结果就是,输入端的第1位数据在输出端的第1位输出,输入端的第2位数据在输出端的第3位输出,第3位的数据在输出端第2个输出,第4位的数据在第4位输出。差不多就是这个意思。请问我应该怎么改。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。