
桶形移位寄存器即循环移位寄存器,在快速傅里叶变换(FFT)中的地址产生器(AddressGeneratorBlock)模块中有应用,所以稍微说明下:
例如设计一个8位桶形移位器:8位桶形移位器是有8个数据输入位,8个数据输出位和3个控制输入位的组合逻辑电路,其输出字等于输入字的循环移位,循环移位的次数由控制输入位指定。桶形移位寄存器比如,如果输入字等于ABCDEFGH(每个字母表示一位),且输入控制位为101(5),则输出字为FGHABCDE。
module barrel_shifter(data,num,out);
input [7:0] data;
input [2:0] num;
output [7:0] out;

reg [7:0] out
always @(data or num) begin
case(num)
3'b000:out=data;
3'b001:out={data[6:0],data[7]};
3'b010:out={data[5:0],data[7:6]};

3'b011:out={data[4:0],data[7:5]};
3'b100:out={data[3:0],data[7:4]};
3'b101:out={data[2:0],data[7:3]};
3'b110:out={data[1:0],data[7:2]};
3'b111:out={data[0],data[7:1]};
endcase
end
endmodule
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-22710-1.html
才是最明智者
最后宋茜的镜头好美