社区
硬件设计
帖子详情
Verilog中, if和else已经搭配了,还产生锁存器
guangshaqian
2018-06-08 11:16:08
这段代码画粉色线那句会产生锁存器,是因为加了一个定值。那有没有加一个定值,而又不产生锁存器的方法
...全文
1778
8
打赏
收藏
Verilog中, if和else已经搭配了,还产生锁存器
这段代码画粉色线那句会产生锁存器,是因为加了一个定值。那有没有加一个定值,而又不产生锁存器的方法
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
m0_37134265
2018-12-13
打赏
举报
回复
这个警告可以忽略
neoitachi
2018-08-20
打赏
举报
回复
本来,你这就是个锁存器,因为一直保持一个值,所以这个警告可以忽略。
liu_y_yun
2018-07-14
打赏
举报
回复
reg [31:0] Fword;
always @ (posedge clk or negedge rst_n)
begin
if(~rst_n)
Fword <= 32'h0;
else
Fword <= Fword + 32'h100000;
end
锁存器一般是组合逻辑条件不完备会产生,
你这完全是时序逻辑了,貌似也不应该产生锁存器才对。
如果你确定产生了锁存器,可以试试楼上的办法(有个位宽的笔误, 修改如下)
wire [31:0]
reg [11:0] Fword_tmp;
always @ (posedge clk or negedge rst_n)
begin
if(~rst_n)
Fword_tmp <= 12'h0;
else
Fword_tmp <= Fword_tmp + 1'b1;
end
assign Fword = {Fword_tmp, 20'd0};
莫弦
2018-07-10
打赏
举报
回复
试着这么写呢?
reg [3:0] Fword_tmp;
always @ (posedge clk or negedge rst_n)
begin
if(~rst_n)
Fword_tmp <= 4'd0;
else
Fword_tmp <= Fword_tmp + 1'b1;
end
assign Fword = {Fword_tmp, 28'd0};
之所以产生锁存器是因为你加的参数32'h10000000并不能对Fword的后面的28个bit产生数值上的变化,这样就会产生锁存器;
我是Trustintruth
2018-07-08
打赏
举报
回复
你这个应该是一个计算单元连一级存储器啊,本来描述的就有存储为什么还要消除锁存器呢
guangshaqian
2018-06-08
打赏
举报
回复
引用 1 楼 zgl7903 的回复:
<= 修改为 = 试试
还是无法消除警告
zgl7903
2018-06-08
打赏
举报
回复
<= 修改为 = 试试
Verilog
中
latch
锁存器
的
产生
.docx
在很多地方都能看到,
verilog
中
if与case语句必须完整,即if要加上else,case后要加上default语句,以防止
锁存器
的发生,接下来就来说说其
中
原因。
深刻解析
锁存器
、触发器区别-以及
verilog
代码编写
中
如何避免
产生
锁存器
.pdf
解析
锁存器
和触发器的区别
关于
verilog
中
if与case语句不完整
产生
锁存器
的问题
在很多地方都能看到,
verilog
中
if与case语句必须完整,即if要加上else,case后要加上default语句,以防止
锁存器
的发生,接下来就来说说其
中
原因。
让
锁存器
不再让人头痛
让
锁存器
不再让人头痛
FPGA和
Verilog
设计
中
的latch
锁存器
的问题讲解 fpga开发.pdf
FPGA和
Verilog
设计
中
的latch
锁存器
的问题讲解 fpga开发.pdf
硬件设计
6,163
社区成员
11,290
社区内容
发帖
与我相关
我的任务
硬件设计
硬件/嵌入开发 硬件设计
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 硬件设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章