微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 关于电路实现中的latch

关于电路实现中的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是怎么实现的呀,晶体管级    

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.分支不完整

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top