网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

移位寄存器复位与不复位的区别在哪?

时间:2023-06-28 14:58

人气:

作者:admin

标签: 移位  寄存器    复位   

导读:下图是ISE14.7实现后的结果如下图所示,编译器直接把他综合进了一个SRL16里面,也就是专用的移位寄存器模块,只需要一个LUT就可以实现16bit以内的移位...

实现一个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] <= {buff[2:0],din}; end

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<=0; else buff[3:0] <= {buff[2:0],din};

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

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信