桶形移位寄存器(二)

时间:2022-04-28
本文章向大家介绍桶形移位寄存器(二),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

桶形移位寄存器即循环移位寄存器,在浮点加减运算、压缩/解压缩和图像处理算法中有应用,常用的是组合逻辑实现的桶形移位寄存器。

从面积的角度来说,这种设计方式的确可以节省资源,但是在高速时序电路中,这样的设计就很不合理了。

module bshift(
clk,
rst,
din,
rotate_cnt,
dout
 );
parameterWIDTH = 8;
parameterCNT_SIZE = 3;
inputclk,rst;
input [CNT_SIZE -1 : 0] rotate_cnt;
input [WIDTH - 1 : 0] din;
output [WIDTH - 1 : 0] dout;
reg [WIDTH - 1 : 0] dout;
wire [WIDTH - 1 : 0] barrel,temp;
wire [2*WIDTH - 1 : 0] bar_temp;
assign bar_temp = {din,din}<<rotate_cnt;
assign {barrel,temp} = {din,din}<<rotate_cnt;
always @(posedge clk or posedge rst)
begin
if(rst)
dout<='b0;
else
dout<=barrel;
end
endmodule