[静态时序分析简明教程(八)]虚假路径

news2024/12/26 13:15:00

静态时序分析简明教程-虚假路径

    • 一、写在前面
      • 1.1 快速导航链接·
    • 二、虚假路径
      • 2.1 set_false_path
      • 2.2 -from -to -through
      • 2.3 上升/下降沿 约束
      • 2.4 建立/保持 约束
      • 2.5 虚假路径示例
    • 三、总结

一、写在前面

一个数字芯片工程师核心竞争力是什么?不同的工程师可能给出不同的答复,有些人可能提到硬件描述语言,有些人可能会提到对于特定算法和协议的理解,有些人或许会提到对于软硬件的结合划分,作者想说,这些说法,其实对也不对,硬件描述语言,翻来覆去无非是always和assign这几个语句的反复使用,而一些基础的协议算法深究起来其实也并不复杂,于作者而言,在常规的技能以外,有两项额外的技能颇为重要,其中之一便为sdc/STA的分析能力,它的重要之处在于作为桥梁建立了前端和后端的连接,虽然对于DE工程师而言,初版交付的sdc往往不甚准确,也没有办法通过这份sdc生成一份无误的timing report,但sdc的内容体现却是完完整整的将时序约束从行为级的描述映射到了gate level这样一个真实的电路层次上面。
写此专栏,一为学习记录,二为交流分享,以犒粉丝读者。

1.1 快速导航链接·

静态时序分析简明教程(一)绪论
静态时序分析简明教程(二)基础知识:建立保持时间,违例修复,时序分析路径
静态时序分析简明教程(三)备战秋招,如何看懂一个陌生的timing report
静态时序分析简明教程(四)时钟常约束
静态时序分析简明教程(五)生成时钟
静态时序分析简明教程(六)时钟组与其他时钟特性
静态时序分析简明教程(七)端口延迟
静态时序分析简明教程(八)虚假路径
静态时序分析简明教程(九)多周期路径
静态时序分析简明教程(十)组合电路路径
静态时序分析简明教程(十一)模式分析与约束管理
静态时序分析简明教程(十二)浅议tcl语言

二、虚假路径

进入到第八章第九章,我们讨论的内容转向了另一个方面,即针对于常规时序约束外的特殊路径,我们希望时序分析工具宽松的检查或者根本不检查,针对于这些非常规的时序约束,在第八章,我们将讨论虚假路径的概念,这种路径对应工具不检查,而在第九章,我们将讨论多周期路径,这种路径对应工具使用宽松的检查标准

2.1 set_false_path

虚假路径的sdc命令为set_false_path,而它对应的BNF如下:

set_false_path  [-setup] 
				[-hold] 
				[-rise] [-fall] 
				[-from from_list] 
				[-to to_list]
				[-through through_list]
				[-rise_from rise_from_list]
				[-rise_to rise_to_list]
				[-rise_through rise_through_list]
				[-fall_from fall_from_list]
				[-fall_to fall_to_list]
				[-fall_through fall_through_list]
				[-comment comment_string]				

2.2 -from -to -through

我们首先介绍以上三个指令,以下是一个网状的设计
在这里插入图片描述
假如我们使用set_false_path -from S1的话,意味着从S1开始的所有路径都会被设置成虚假路径,时序分析工具会加以排除
比如:S1->P1->X1->D1,或者是:S1->P1->X2->D2,这些路径合计有八条。

假如我们使用set_false_path -through P1的话,意味着所有通过P1的路径,都会被设置成虚假路径。
比如:S4->P1->X1->D1,或者是S3->P1->X2->D3等。

假如我们使用set_false_path -to D1的话,意味着所有通过D1的路径,都会被设置成虚假路径。
比如:S1->P1->X1->D1。

此外,我们还可以使用 {X1,X2} 的形式来表示通过X1,X2中任意一条的路径。

同时,-from -to只能是时序的起点和终点,但还有一种方式可以覆盖更多的电路元器件,比如:
set_false_path -from CLK1,这个语句表示所有CLK1触发的电路元件,和所有相对于CLK1约束的输入端口都会作为虚假路径被排除。

2.3 上升/下降沿 约束

2.2节中讨论的虚假路径设定不区分上升沿或下降沿,假如设计人员想要为特定的过渡过程(上升沿/下降沿)提供虚假路径的约束话,可以通过如下的形式完成

  • -rise_from :影响起始点的上升过程
  • -fall_from :影响起始点的下降过程
  • -rise_through :影响通过点的上升过程
  • -fall_through : 影响通过点的下降过程
  • -rise_to :影响终点的上升过程
  • -fall_to : 影响终点的下降过程
  • -rise : 仅影响上升过程
  • -fall :仅影响下降过程

2.4 建立/保持 约束

我们同样可以单独的约束虚假路径的建立时间或者保持时间 通过 -setup 或者 -hold 的形式加以约束。

2.5 虚假路径示例

虚假路径的设置,在真实的电路设计中并不少见,通常来说,不同频率的时钟之间,亦或是异步的复位端口,都会设置虚拟路径加以约束。此外,比如总线协议中,也常常出现虚假路径,比如下面的图片中,若协议规定从机与从机之间不能有直接的通信,虽然通过总线,存在路径连接从机12,但数据永远不会沿着这条路径进行传递,我们也需要设置虚假路径
在这里插入图片描述

三、总结

虚假路径作为时序分析的一种特殊情况,经常的出现在实际电路的设计中,然而,对于另一些时序分析的特殊情况而言,我们可能需要定时路径,并且使用多个时钟周期来传递信息,在第九节中,我们会讨论多周期路径的有关内容,使用相应的命令,提供超过单周期的更大范围。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/58951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构 | 堆的向上调整和向下调整算法【奇妙的堆排序】

堆一、堆的概念及结构二、向上调整算法⭐⭐1、算法思路分析【孙子的谋权篡位之旅👑】2、代码详情解说三、向下调整算法⭐⭐⭐⭐⭐1、算法图解分析【高处不胜寒🆒趁早做打算】2、代码考究精析四、堆的数据结构各接口算法实现结构体的定义及声明1、堆的初始…

Windows-》CMD命令

CMD命令【1】Windows-》CMD命令1.mstsc:打开远程桌面连接。2.services.msc:打开本地服务设置。3.notepad:打开记事本。4.control:打开控制面板。5.regedit:打开注册列表编辑器。6.compmgmt.msc---设备管理器。&#xf…

[附源码]计算机毕业设计springboot医疗器械公司公告管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

计算机图形学中的曲线问题——贝塞尔曲线的绘制

贝塞尔曲线的绘制 由于 CSDN 的博客修改字数的限制,我们不得不将这一部分放到一个新的博客中。原文详见: GGN_2015 计算机图形学中的曲线问题 贝塞尔曲线的几何作图法 在上面介绍儿时的回忆中,我们介绍了对于抛物线绘制的一种方法。如下图所…

Egg 1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.5 创建服务

Egg Egg 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录Egg1. 快速开始 Quick Start1.3 一步步 Step by Step1.3.5 创建服务Hacker News API1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.5 创建服务 在实际开发中,控制器…

[附源码]计算机毕业设计学生综合数据分析系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux根文件系统说明和常用命令

Linux根文件系统说明【1】Linux内核由哪几个子系统组成?【2】Linux下软连接和硬链接的区别?【3】sync【4】shutdown –h now【5】shutdown –h 20:25【6】shutdown –r now【7】shutdown –r 10【8】reboot【9】halt【10】Linux根文件系统说明【11】此主…

机器学习 分类、回归、聚类、特征工程区别

一、分类和回归的区别 简单理解分类和回归的区别在于输出变量的类型不同。 定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。 举个例子: 预测明天的气温是多少度,这是一个回归任务&…

AD入门学习—元件库(原理图库)的创建

目录 1.1 电阻类、电容类、电感类元件创建 1.2 LED灯、按键类元件创建 1.3 IC芯片类元件创建 学习目录 创建一个PCB工程,原理图库,原理图。 1.1 电阻类、电容类、电感类元件创建 左侧的菜单栏不见了:视图,panels,projects。 按…

JavaWeb(三)

前言:JavaWeb的三大组件Servlet,Filter,Listener。是Java EE Web服务规定的服务器动态组件,由开发者编写,由web容器创建,加载顺序为Listener->Filter->Servlet。 当来了一个application请求 呢么web三…

一文读懂Java中的String类之助力Java进阶之路

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 🥇博主昵称:Jovy. 🍟博客主页…

以太网 TCP协议(三次握手、四次挥手)

2.7.0 以太网 TCP协议(三次握手、四次挥手) 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的传输层通信协议。 面向连接:指使用TCP协议的程序在使用的时候,需要预先进…

PLC远程维护解决方案

一、方案背景:随着工业4.0大力推动智能制造,完善的售后维护和技术服务逐步被各设备厂商所重视,服务将成为企业新的利益增长点,传统的售后服务已经远远不能满足客户需求,甚至给公司带来一定的经营成本和维护成本的压力&…

volatile与Java内存模型

volatile与Java内存模型 被volatile修改的变量有2大特点 特点 可以保证 1.可见性 2.有序性 还是那张图,volatile只能保证可见性和有序性 那为什么volatile可以实现这些功能呢 volatile的内存语义 当写一个volatile变量时,JMM会把该线程对应的本地…

# 智慧社区管理系统-基础信息管理-05车位管理

一后端 1:entuty package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class Parking {private int id;private String numbers;//车位号private…

SQL 专项笔记

SQL语句分类 1.DDL 数据库定义语言 主要是用于来操作数据库 以及数据库表 关键字 alter drop create truncate DQL 数据库查询语言 主要是用于操作数据库表 主要用于查询数据库中的数据 关键字 selectDML 数据库操纵语言 主要是用于操作数据库中数据表 主要是对数据进行 增加…

Sequence和Item

一、概述 sequence指的是uvm_sequence类,而item指的是uvm_sequence_item类。对于激励生成和场景控制,是由sequence来编织的,而对于激励所需要的具体数据和控制要求,则是从item的成员数据得到的。 二、Sequence Item介绍 item是基…

【前端设计】SDC中生成时钟create_generated_clock语法解析

我们的目标是┏ (゜ω゜)=☞芯片前端全栈工程师~喵! 前言 好久没有写前端设计系列的博客了,这次因为要在系统里加入时钟分频器因此复习一下sdc中关于生成时钟的约束语法,以下内容来自《综合与时序分析的设计约束》和一些自己的理解。 生成时钟 在sdc约束中,由端口输入的…

JavaScript -- 07. 面向对象编程

文章目录面向对象编程1 面向对象编程介绍2 类3 属性4 方法5 构造函数6 封装7 多态8 继承9 对象的内存结构10 原型10.1 原型链10.2 原型的作用:11 修改原型12 instanceof和hasOwn12.1 instanceof12.2 in12.3 hasOwnProperty12.4 hasOwn13 旧类14 new运算符面向对象编…

用上了mac才知道的一些事,献给Mac新手

以前电脑用windows,工作后刚用上mac,发现很多使用逻辑挺让人感觉新奇,甚至摸不着头脑,下面一一列举,帮助想要入手Mac的新手! 1、鼠标滚轮的逻辑和Windows相反。 Mac上滚动鼠标控制页面上下滚动的逻辑和Windows刚好相…