关于电路实现中的latch
时间:12-12
整理:3721RD
点击:
下面代码产生latch
if(state==1)
o = a&b;
else if(state==2)
o = a|b;
而下面则不产生latch:
(o-o就是o分出来的信号)
if(state==1)
o = a&b;
else if(state==2)
o = a|b;
else
o = o-o;
这样看来电路中的latch是怎么实现的呀,晶体管级
if(state==1)
o = a&b;
else if(state==2)
o = a|b;
而下面则不产生latch:
(o-o就是o分出来的信号)
if(state==1)
o = a&b;
else if(state==2)
o = a|b;
else
o = o-o;
这样看来电路中的latch是怎么实现的呀,晶体管级
latch生成的两个条件:
1.敏感列表中没有沿事件
2.分支不完整
latch产生条件就是赋值依赖与前值,又不是DFF
DFF是两个使能电平相反的latch串联,
从而实现边沿触发。
如果o_o = o的话,第二个怎么不是latch呢?看不懂......
是不是有可能综合成有loop的logic了,也就是类似RS触发器之类的电路,这些虽然没有用库里面的latch cell,但是本质上还是latch属性的吧,个人看法,一起讨论
loop就是loop啊
直接改网表改错了,也不会多个latch cell
是有latch功能的,功能上它就是latch,只是dc没有选择库里面的latch cell
第二种估计搞成comb logic loop了,看看DC给的报告当中的warning信息
你代码没贴全,
把敏感列表贴出来,就可以判断。
没有敏感列表,说啥都没用。
如果o-o是寄存器输出,就是去latch;如果是来自o组合逻辑,应该就是loop了
要锁存数据就用register,否则就是组合逻辑,assign就行
我比较赞同这个说话
你要实现的Latch 应该是电平触发的,不用沿触发 ,
数据在电平的反向位值应该 保存 ,好比 高电平采样,低电平值维持 ,
应该根据实际电路来RTL Coding
latch生成的两个条件:
1.敏感列表中没有沿事件
2.分支不完整
