数字后端零基础入门系列 | 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中四种基本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检查发生在同一时钟边沿,与时钟频率无关。

相关文章:
数字后端零基础入门系列 | Innovus零基础LAB学习Day6
今天没有具体的数字IC后端lab实验。今天的重点是熟悉掌握静态时序分析STA中的几类timing path以及setup和hold检查机制(包含setup和hold计算公式)。 芯片流片失败的那些故事 数字后端零基础入门系列 | Innovus零基础LAB学习Day5 等大家把今天内容学习…...
(Linux驱动学习 -13).SPI驱动实验
目录 一.SPI驱动相关结构体与函数 1.struct spi_master 结构体 2.申请 spi_master - spi_alloc_master 3.释放 spi_master - spi_master_put 4.向内核注册 spi_master - spi_register_master 5.注销掉 spi_master 6.struct spi_driver 结构体 7.向内核注册 spi_driver -…...
Angular 框架入门教程:从安装到路由、服务与状态管理详解
一、引言 在前端开发领域,Angular 是一个强大且流行的框架。它由 Google 维护,基于 TypeScript,采用模块化设计,提供了组件化开发、依赖注入、路由、表单处理等丰富功能,旨在帮助开发者构建高效、可维护的单页应用程序…...
【华为HCIP实战课程十八】OSPF的外部路由类型,网络工程师
一、外部路由类型: 上节讲的外部路由类型,无关乎COST大小,OSPF外部路由类型1优先于外部路由类型2 二、转发地址实验拓扑 我们再SW3/R5/R6三台设备运行RIP,SW3即运行RIP又运行OSPF SW3配置rip [SW3-rip-1]ver 2 [SW3-rip-1]network 10.0.0.0 AR5去掉ospf配置和AR6配置rip…...
oss 简单命令(已亲测)
1、 服务器本地文件复制到OSS指定目录 ./ossutil cp -r /opt/post/afc/afcServer/afcenter/logs/ oss://oss-name/ScBak/20230608/ -c /opt/post/ossconfig 2、在oss服务器上创建文件夹 ./ossutil mkdir oss://oss-name/ScBak/20230608/dam -c /opt/post/ossconfig 3、查…...
申请https证书
引入证书: 当服务器使用HTTPS之前都会申请一份证书,证书是为了证明服务端公钥的权威性,服务器向浏览器传输证书,浏览器再从证书里获取公钥,证书明文数据签名。 如何理解CA签发证书的过程 a.CA会有自己的公钥 和 私钥ÿ…...
trtexec 工具使用
本文介绍trtexec工具的使用,trtexec可以实现onnx模型导出trt模型、耗时分析和模型优化分析等功能,本节将对 trtexec的运用进行介绍。 1.trtexec trtexec是官方提供的命令行工具,主要用于一下三个方面 生成模型序列化文件:由ONNX文…...
10款具备强大数据报告功能的电脑监控工具,办公电脑怎么监控
数据报告功能是电脑监控软件的重要特性,它能够帮助管理者全面了解员工的工作行为、应用使用情况,并生成详细的生产力分析报告。以下是10款具备强大数据报告功能的监控工具推荐,帮助企业有效管理和提升工作效率。 1. 固信软件 固信软件不仅是…...
如何理解Linux中的进程名
目录 一:程序的概念二:进程的概念三:线程的概念四:Linux中的进程名 一:程序的概念 程序就是采用某种特定格式编写的文本文件,该文件可以给编译器或者解释器编译和解释。编写好的程序平时存放在硬盘中。 二…...
微信红包设计流程讲解与实战分析
#1024程序员节 | 征文# 前言 微信红包作为大家耳熟能详的一种互动方式,其背后的技术支持包含多个方面。从用户发出红包到红包被抢完,涉及到的流程包括发红包、红包存储、红包拆分以及抢红包等。本文将详细介绍这一系列流程,并通过代码案例来…...
AI智能体:AI智能体(Agent)是什么?为什么要学?99%的人不知道!
为什么要学? 我们先搞清楚为什么? 最近看到 AI 创新力五问,我们日常生活中有使用 AI 来融入到我们的学习工作流嘛? 值得我们日常反省。 未来企业人才招聘测试AI创新力的五问: 您是否处于每天习惯使用 AI 的状态&am…...
NVR小程序接入平台/设备EasyNVR多个NVR同时管理的高效解决方案
在当今的数字化安防时代,视频监控系统的需求日益复杂和多样化。为了满足不同场景下的监控需求,一种高效、灵活且兼容性强的安防视频监控平台——NVR批量管理软件/平台EasyNVR应运而生。本篇探讨这一融合所带来的创新与发展。 一、NVR监测软件/设备EasyNV…...
APS开源源码解读: 排程工具 optaplanner II
上篇 排产,原则上也就是分配时间,分配资源;保证资源日历约束,保证工艺路线约束。我们看一下如何实现optaplanner 优化的 定义一个move, 一个move可能改变了分配到的资源,也可能改变了一个资源上的顺序。改变即意味着优…...
科技是把双刃剑,巧用技术改变财务预测
数字化和全球化的双向驱动,引领我国各行各业在技术革新的浪潮中不断扬帆。这一趋势不仅带来了前所未有的突破与创新,推进企业迈向数据驱动决策的新未来,同时也伴随着一些潜在的问题和挑战。科技的普及就像是一场革命,在财务管理领…...
vscode默认添加python项目的源目录路径到执行环境(解决ModuleNotFoundError: No module named问题)
0. 问题描述 vscode中编写python脚本,导入工程目录下的其他模块,出现ModuleNotFoundError: No module named 错误 在test2的ccc.py文件中执行print(sys.path) 查看路径 返回结果发现并无’/home/xxx/first_demo’的路径,所以test2下面的文…...
【每日刷题】Day143
【每日刷题】Day143 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 200. 岛屿数量 - 力扣(LeetCode) 2. LCR 105. 岛屿的最大面积 - 力扣&…...
基于Springboot智能学习平台的设计与实现
基于Springboot智能学习平台的设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:idea 源码获取:https://download.csdn.net/downlo…...
黑马javaWeb笔记重点备份11:Web请求与响应
请求 SpringBoot内置Servlet 在Tomcat这类Web服务器中,是不识别我们自己定义的Controller的,但在tomcat中是可以识别 Servlet程序的。在SpringBoot进行web程序开发时,它内置了一个核心的Servlet程序 DispatcherServlet,称之为 核…...
H5对接海康硬盘录像机视频简单说明
开发过程中使用HTML5(通常是通过Web技术栈,如HTML、CSS、JavaScript)与海康威视(Hikvision)的硬盘录像机(DVR)进行视频对接,通常涉及以下步骤: 获取DVR的RTSP流地址:海康威视DVR支持RTSP协议,你可以通过DVR的管理界面获取每个摄像头的RTSP流地址。 使用视频播放器库…...
测试人必备的Linux常用命令大全...【全网最全面整理】
Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,…...
APK Installer技术解析与实践指南:Windows平台安卓应用部署的革命性方案
APK Installer技术解析与实践指南:Windows平台安卓应用部署的革命性方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows系统上运行安卓应用一直是…...
从零到一:使用DaVinci Developer进行AUTOSAR SWC设计与ECU集成
1. 认识AUTOSAR与DaVinci Developer工具 第一次接触汽车电子开发的朋友,可能会被AUTOSAR这个术语吓到。其实它就像汽车软件界的"普通话"——各家厂商用统一的标准交流,避免出现"鸡同鸭讲"的情况。而DaVinci Developer就是Vector公司…...
便民服务渠道智慧整合融通方案
便民服务渠道智慧整合融通方案 目录 第1章项目概述 7 1.1项目背景 7 1.2项目建设目标 7 1.2.1总体目标 8 1.2.2具体目标 8 1.3项目建设范围 9 1.3.1渠道整合范围 9 1.3.2业务覆盖范围 10 1.3.3系统建设范围 10 1.4项目建设意义 11 1.4.1对群众的意义 11 1.4.2对政府的意义 11 …...
CANopen协议核心机制与工业自动化应用实践
1. CANopen协议的核心机制解析 CANopen协议作为工业自动化领域的通信标准,其核心在于三个关键机制:对象字典、网络管理(NMT)以及过程数据对象(PDO)/服务数据对象(SDO)。理解这些机制…...
VirtualBox 6.1+ 搭配Win10:除了装系统,这些高效设置让你的虚拟机真正好用起来
VirtualBox 6.1 与Win10深度整合:解锁专业级虚拟化生产力的5个关键策略 当你已经成功在VirtualBox中安装好Windows 10虚拟机,这仅仅是虚拟化旅程的起点。真正的高手懂得如何将这个看似隔离的环境转变为无缝融入日常工作流的生产力引擎。本文将揭示那些鲜…...
5G FR1与FR2频段下,SSB的Kssb子载波偏移配置实战与避坑指南
5G FR1与FR2频段下SSB的Kssb子载波偏移配置实战与避坑指南 在5G网络部署中,同步信号块(SSB)的配置直接关系到终端设备能否成功接入网络。其中,Kssb子载波偏移参数在不同频段(FR1与FR2)下的取值范围和单位存…...
东芝成熟制程代工服务解析:More-than-Moore战略与欧洲市场机遇
1. 东芝的“伦敦呼唤”:一次面向欧洲的成熟制程代工服务解析最近在梳理半导体产业动态时,东芝在2012年的一项战略动作引起了我的注意。这并非关于其最前沿的3D NAND闪存,而是一项看似“复古”的业务拓展:面向欧洲客户开放其成熟制…...
Instill Core:一站式AI应用构建平台,从数据处理到模型部署全流程实战
1. 项目概述:一站式AI应用构建平台如果你正在为如何将一堆杂乱无章的文档、图片、音频视频数据,转化为可供AI模型直接“食用”的格式而头疼,或者厌倦了在模型部署、API编排和数据处理工具之间反复横跳,那么Instill Core的出现&…...
如何用本地OCR工具快速提取视频硬字幕:3步完成专业字幕制作
如何用本地OCR工具快速提取视频硬字幕:3步完成专业字幕制作 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字…...
开源智能抓取系统Elsa-OpenClaw:从感知到执行的完整技术栈解析
1. 项目概述:当开源大模型遇上“机械爪”最近在AI和机器人交叉领域,一个名为“Elsa-OpenClaw”的项目引起了我的注意。乍一看,这像是一个将大型语言模型(LLM)与机械臂末端执行器(俗称“机械爪”)…...
