当前位置: 首页 > news >正文

icg真的只能用latch不能用Flip-flop吗

soc设计中常用latch来做时钟门控,它的rtl描述如下:

input EN;
input clk;
input TE;
output E_clk;always @(*) beginif (clk==1'd0)E_latch = EN | TE;
endassign E_clk = E_latch & clk;

实际soc实现会把上面代码中latch和与操作换成专用CLKLANQ的libcell,TE为testMode下信号,funcMode下为0.

对应的时序图如下:

always @(negedge clk) beginE_latch <= EN | TE;
endassign E_clk = E_latch & clk;

 那么得到的时序图和上图完全一致。

那这两种做法到底有什么区别呢?

从功能上看不出有什么区别,那就要从实现上分析,两种cell哪个更快(transition,Propagation Delay),哪个更容易收timing?

显然latch结构简单,同样工艺下latch可以做的比Flip-Flop更快。更快就意味这更好的时钟属性。

从timing分析,用latch对setup更友好,因为用latch锁存EN | TE可以做setup的整周期check,而用flip-flop只能做clk的半周期check;而用flip-flop的hold是比较宽松的,有半个时钟周期留给hold。

对于高频时钟来讲setup更难meet,这也是现在高速时钟ICG都用Latch的原因。早期低速时钟且对clk质量要求不高的的ICG也是可以用flip-flop。

下面解释一下为什么latch明明用的clk低电平触发,为什么可以做整周期的setup检查?

原因就在于latch是电平触发,在整个clk低电平都可以capture,只需要在clk高电平到来之前EN|TE满足setup,就可以稳定采样并锁存,所以可以使用整周期setup check

相关文章:

  • 洛谷自己创建的一个小比赛【c++】
  • PCB设计教程【大师篇】stm32开发板PCB整体布局
  • Android13 新增 Stable AIDL接口
  • 传染病传播模拟:基于社会接触网络的疫情预测模型
  • django restframework 在serializer里 通过context设置session
  • 在ros中动态调整雷达,线激光雷达等设备的静态坐标关系
  • 【Python教程】CentOS系统下Miniconda3安装与Python项目后台运行全攻略
  • Spring XML 常用命名空间配置
  • C语言预处理命令详解
  • LeetCode - 904. 水果成篮
  • 《 第三章-招式初成》 C++修炼生涯笔记(基础篇)程序流程结构
  • HE023784R23B530 PP D113 B01-25-111000: AC 800PEC 静态励磁系统UNITROL 6000 X-power
  • 让高端装备“先跑起来”:虚拟仿真验证平台重塑研制流程
  • QT log4qt 无法生成日志到中文的路径中的解决方案
  • 鸿蒙app 开发中 如何 看 app 页面的ui结构
  • 信息学奥赛一本通 1543:【例 3】与众不同
  • mapbox进阶,切片网格生成实现
  • 洛谷 数楼梯 高精度
  • LangChain--(2)
  • 【Python系列】Python 中 yield 关键字
  • 怎么做一个简易网站/在线生成个人网站
  • b站新人视频怎么推广/2020 惠州seo服务
  • 手机网站制作费/香港seo公司
  • 访问自己做的网站/百度投诉中心24人工
  • wordpress网站导航模板/网站设计制作一条龙
  • 企业为什么要做建站/想做游戏推广怎么找游戏公司