实现一个4bit的移位寄存器如下,不带复位
module shift_reg(
input clk,
input rst,
input din,
output dout
);
reg [ 3:0] buff;
assign dout = buff[3];
always@(posedge clk) begin buff[3:0]
endmodule
下图是ISE14.7实现后的结果如下图所示,编译器直接把他综合进了一个SRL16里面,也就是专用的移位寄存器模块,只需要一个LUT就可以实现16bit以内的移位
这是不带复位的资源,可以看到触发器只用了一个,LUT也只用了一个,并且是作为存储器用的,而且是作为存储器里面的移位寄存器使用。

下面是带有复位的移位寄存器代码
module shift_reg(
input clk,
input rst,
input din,
output dout
);
reg [ 3:0] buff;
assign dout = buff[3];
always@(posedge clk)
begin
if(rst==1) buff
end
endmodule
ISE14.7综合结果如下:
从上图可以看出,他是用了4个触发器级联构成,并且每个触发器的复位端都是接了rst端的。
下图是资源消耗,看的出来用了4个触发器和0个LUT:

综上:移位时间越长用没有复位的方式越节约资源。
那么,对于寄存器初始状态没有复位怎么设置他呢?
verilog2001的标准已经解决,ISE14.7和vivado也都支持
比如, reg [ 3:0] buff = 0;就是上电后寄存器buff为全0
而 reg [ 3:0] buff = 8'hff;就是上电后寄存器buff的值为全1
编辑:hfy
-
移位寄存器
+关注
关注
3文章
336浏览量
23171 -
复位电路
+关注
关注
13文章
331浏览量
45739
发布评论请先 登录
SN74LVC595A 8位移位寄存器技术文档总结
SN74HCT165 8位并行输入移位寄存器技术解析
SN74HCT595 8位移位寄存器技术解析与应用指南
TPIC6595 8位功率移位寄存器技术文档摘要
TPIC6B595 8位功率移位寄存器技术文档总结
TLC6C5912 12通道移位寄存器LED驱动器技术文档总结
SN74LV595B-EP低噪声8位移位寄存器技术解析与应用指南
Texas Instruments SN74LV8T594/SN74LV8T594-Q1移位寄存器特性/应用/框图
74HC594-Q100;74HCT594-Q100带输出寄存器的8位移位寄存器规格书
XILINX FPGA CLB单元之移位寄存器

4bit的移位寄存器复位与不复位的实现
评论