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

数字后端零基础入门系列 | Innovus零基础LAB学习Day6

今天没有具体的数字IC后端lab实验。今天的重点是熟悉掌握静态时序分析STA中的几类timing path以及setup和hold检查机制(包含setup和hold计算公式)。

芯片流片失败的那些故事

数字后端零基础入门系列 | Innovus零基础LAB学习Day5

等大家把今天内容学习完,建议做下下面这道数字后端经典时序计算题,每年秋招必考题目。

对于如下电路图:

1.求出该电路所能达到的最大频率? (10分)

2时钟频率为50M,该电路是否有时序违规?如果有,写出计算过程,并给出修改意见.(10分)

图中Timing参数解释:

Thold Hold time最小时间

TSu Setup time最小时间

TCq Clock-> Q delay

输入IN的Input Delay恒为0.5ns.

STA时序分析题

静态时序分析STA中四种基本Timing Path: 静态时序分析时,工具会把设计拆成四种基本path来做时序分析。无论设计有多复杂,也只有这四种情况。它包含in2reg,reg2reg,reg2out,in2out(feedthrough)。

四种基本时序路径

PATH1: 输入端口input-----------> 寄存器的数据输入端 (in2reg path)

PATH2: 寄存器CLK------------> 寄存器的数据输入端 (reg2reg path, 内部路径)

PATH3: 寄存器CLK-------------> 输出端口output (reg2out path)

PATH4: 输入端口input-------------> 输出端口output (feedthrough path,直通路径)

在这里插入图片描述

所以,知道了这四种基本timing path后,我们就知道每种路径对应的起点和终点,即timing report中的start point 和endpoint。

EndPoint: 时序path上的终点。

从上面的介绍我们就可以知道有效的endpoint必须是以下几种情况:

1)寄存器/macro的数据输入端

2)输出端口port

StartPoint: 时序path上的起点。

与之对应,startpoint必须是以下几种情况:

1)寄存器/macro的时钟输入引脚(或输出端)

2)输入端口port

Clock Path: 时钟路径,它是指时钟树上的clock tree。

Data Path: 数据路径,它包括数据路径上的组合逻辑。

Clock path和Data path对应的路径已经标注在下图。
在这里插入图片描述

从时钟定义端口到寄存器(macro和IP)时钟端的路径,我们称之为时钟路径,即Clock path。

除了clock path外,其他都属于数据路径,即data path。比如上面两个寄存器之间的逻辑路径就是data path。

Launch Flop &Capture Flop:Launch Flop就是指发送数据的寄存器,而Capture Flop是指接收(采样捕捉)数据的寄存器。值得注意的是这是相对某一条path来说的。对于input到reg的时序路径,这颗reg是capture flop,但对从这颗reg到下一个reg的路径来说,这个reg就是launch flop(Flop就是寄存器的意思)。

Launch clock path & Capture clock path:有了上面这些铺垫后,launch clock path和capture clock path就很清晰了。对于下图所示的这条timing path来说,UFF0就是launch Flop,UFF1是capture Flop。

所以,launch clock path就是从CLKM port到UFF0/CK 的路径。capture clock path就是从CLKM port到UFF1/CK的路径(这里是举同步的例子,寄存器的时钟源头都是CLKM)。

那么,自然而然所谓的common clock path就是launch clock path和capture clock path共同的部分,即下图所示的前面两颗clock inverter(buffer)。

在这里插入图片描述

Setup Time: 静态时序分析中最基本的就是setup和hold时序分析,其检查的是触发器时钟端CK与数据输入端D之间的时序关系。Setup time是指在时钟有效沿(下图为上升沿)之前,数据输入端信号必须保持稳定的最短时间。setup time值工具是根据查找时序库lib来获取的,它和两个input transition值有关。

在这里插入图片描述

Hold time: 它是指在时钟有效沿(下图为上升沿)之后,数据输入端信号必须保持稳定的最短时间。hold time时序检查确保新数据不会在触发器稳定输出初始数据之前过早到达D端而覆盖其初始数据。
在这里插入图片描述

Setup & Hold详细分析

以下图电路为例来分析建立时间及保持时间。发送数据的触发器称为Launch flip-flop,接收/捕获数据的触发器称为Capture flip-flop。两触发器时钟端信号为同一时钟。

如下图所示,launch_path为:

CLKM→BUF(launch)→UFF0/CK→UFF0/Q→Comb_logic→UFF1/D;

capture path为: CLKM→BUF(capture)→UFF1/CK;
在这里插入图片描述

(1)Setup Time

两触发器间的数据传输通常需要在一个时钟周期内完成。

数据到达UFF1/D所需时间Arrival time为:

Ta = T_launch + T_ck2q + T_dp

满足setup要求时所允许的最长时间Required time为:

Tr = T_capture + T_clk - T_setup

因此setup time要求可表示为:Tr - Ta = T_margin >= 0。

根据setup time要求还可表示为:

T_launch + T_ck2q + T_dp + T_margin + T_setup = T_capture + T_clk

其中:

T_launch:CLKM到UFF0时钟端CK的延时

T_ck2q:UFF0的CK->Q的传输时间

T_dp:组合逻辑延时

T_margin:设计裕量

T_setup:UFF1的setup时间要求

T_capture:CLKM到UFF1时钟端CK的延时

T_clk: 时钟周期

由此可见,setup检查发生在不同时钟边沿,与时钟频率有关。

(2)Hold Time

数据到达UFF1/D所需时间Arrival time为:

Ta = T_launch + T_ck2q + T_dp

满足hold要求时所允许的最短时间Required time为:

Tr = T_capture + T_hold

因此hold time要求可表示为:Ta - Tr = T_margin >= 0。

hold time还可表示为:

T_launch + T_ck2q + T_dp = T_capture + T_hold + T_margin

其中:

T_launch:CLKM到UFF0时钟端CK的延时

T_ck2q:UFF0的CK->Q的传输时间

T_dp:组合逻辑延时

T_hold:UFF1的hold时间要求

T_margin:设计裕量

T_capture:CLKM到UFF1时钟端的延时

T_clk: 时钟周期

由此可见,hold检查发生在同一时钟边沿,与时钟频率无关。

setup和hold时序波形图

http://www.lryc.cn/news/467677.html

相关文章:

  • (Linux驱动学习 -13).SPI驱动实验
  • Angular 框架入门教程:从安装到路由、服务与状态管理详解
  • 【华为HCIP实战课程十八】OSPF的外部路由类型,网络工程师
  • oss 简单命令(已亲测)
  • 申请https证书
  • trtexec 工具使用
  • 10款具备强大数据报告功能的电脑监控工具,办公电脑怎么监控
  • 如何理解Linux中的进程名
  • 微信红包设计流程讲解与实战分析
  • AI智能体:AI智能体(Agent)是什么?为什么要学?99%的人不知道!
  • NVR小程序接入平台/设备EasyNVR多个NVR同时管理的高效解决方案
  • APS开源源码解读: 排程工具 optaplanner II
  • 科技是把双刃剑,巧用技术改变财务预测
  • vscode默认添加python项目的源目录路径到执行环境(解决ModuleNotFoundError: No module named问题)
  • 【每日刷题】Day143
  • 基于Springboot智能学习平台的设计与实现
  • 黑马javaWeb笔记重点备份11:Web请求与响应
  • H5对接海康硬盘录像机视频简单说明
  • 测试人必备的Linux常用命令大全...【全网最全面整理】
  • 苹果AI落后两年?——深度解析苹果在AI领域的挑战与前景
  • 三菱PLC伺服-停止位置不正确故障排查
  • Mybatis 批量操作存在则更新或者忽略,不存在则插入
  • 「C/C++」C++ STL容器库 之 std::deque 双端队列容器
  • 一招教你解决Facebook广告账号问题
  • MySQL启动报错:InnoDB: Unable to lock ./ibdata1 error
  • Linux终端之旅: 打包和压缩
  • PDA手持机提升管理效率和准确性
  • C++ [项目] 愤怒的小鸟
  • 群控系统服务端开发模式-市场分析
  • 智能听诊器革新宠物健康监测