数字IC设计学习笔记_静态时序分析STA_配置STA环境2

2023-11-06

数字IC设计学习笔记

配置STA环境2

1. 约束 Input path 和 Output path
2. 时序路径组Timing path groups
3. 外部属性建模

1. 约束 Input path 和 Output path

  • 约束 Input path
    对于input path的约束,主要针对于input port 2 reg 时序路径。
    在这里插入图片描述SDC脚本:
    set Tclk2q 0.9
    set Tc1 0.6
    set_input_delay -clock CLKA -max[expr Tclk2q + Rc1][get_ports INP1]

    在这里插入图片描述SDC脚本:
    create_clock -period 15 -waveform{5 12}[get_ports CLKP]
    set input_delay -clock CLKP -max 6.7[get_ports INPA]
    set_input_delay -clock CLKP -min 3.0 [get_ports INPA]

  • 约束 Output path
    约束 Output path,主要针对于reg2output 时序路径
    在这里插入图片描述SDC脚本:
    set Tc2 3.9
    set Tsetup 1.1
    set_output_delay -clock CLKQ -max [expr Tc2 + Tsetup] [get_ports OUTB]

    在这里插入图片描述
    SDC脚本:
    create_clock -period 20 -waveform{0 15}[get_ports CLKQ]
    set output_delay -clock CLKQ -max 7.4[get_ports OUTC]
    set_output_delay -clock CLKQ -min 0.2 [get_ports OUTC]

  • 约束Input path 和Output path
    SDC脚本:
    create_clock -period 50 -waveform{5 25}[get_ports CLKN]
    set_input_delay -clock CLKN -max 3.4[get_ports OUTA]
    set_input_delay -clock CLKN -min 0.05 [get_ports OUTA]
    set output_delay -clock CLKN -max 7.4[get_ports OUTC]
    set_output_delay -clock CLKN -min 0.2 [get_ports OUTC]

2. 时序路径组Timing path groups

  • 时序路径根据终点(endpoint)所在时钟域的不同,被分为不同的时序路径组(Timing path groups)。

3. 外部属性建模

对于input来讲,指定以下其中一个属性即可:

  1. set_drive:设置驱动能力

    用来在DUA的输入管脚指定一个驱动阻值(drive resistance)

    越小代表驱动强度越大,0代表驱动强度无线大;
    在这里插入图片描述
    脚本:

    1. 在输入的UCLK处指定一个100的驱动阻值 set_drive 100 UCLK

    2. 上升驱动于下降驱动是不同的:set_drive -rise 3[all_inputs] set_drive -fall 2[all_inputs]

    输入端口的驱动能力用来计算 transition time,以及从 input port 到 第一个cell的RC互连线的延迟。
    Delay_to_first_gate = (drive * load_on_net) + interconnect_delay

  2. set_drving_cell : 从库中调用某个于 INPB 具有差不多驱动能力的cell
    在这里插入图片描述
    脚本:

    1. INPB由 slow 库里 INV3 cell 驱动:set_driving_cell -lib_cell INV3 -library slow [get_ports INPB]

    2. 所有的输入由 tech13g 库里的 INV2 驱动 :set_driving_cell -lib_cell INV2 -library tech13g [all_inputs]

    3. 给所有的输入 testmode[3] 由tech90gwc库里的 BUFFD4 驱动:set_driving_cell -lib_cell BUFFD4 -library tech90gwc [get_ports {testmode[3]}]

  3. set_input_transition:直接指定输入的transition
    在这里插入图片描述
    脚本:

    1. 给 INPC 端口设置输入transition 时间 0.85 ns:set_input_transition 0.85 [get_ports INPC]

    2. 给所有输入端口设置输入transition 时间 0.6 ns:set_input_transition 0.6 [all_inputs]

    3. 给SD_DIN为开头的端口设置输入transition 时间 0.25 ns:set_input_transition 0.25 [get_ports SD_DIN]*

总结:计算第一个cell的delay时,一定要设置一个 drive 或者 driving cell 或者直接设置 transition time。若没有加,则默认为理想值。

对于output来讲,指定以下属性:
set_load:设置负载电容值(capacitive load),默认为0;
在这里插入图片描述
脚本:

  1. 在输出端口 OUTX 放置一个5 pf 的负载电容:set_load 5 [get_ports OUTX]
  2. 给所有的输出端设置一个 25 pf的电容:set_load 25 [all_outputs]
  3. 在指定的输出端口放置一个 7 fF 的管脚负载:set_load -pin_load 0.007 [get_ports {shift_write[31]}]

— 学习内容源于邸志雄老师的课件,Thanks^^

【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字IC设计学习笔记_静态时序分析STA_配置STA环境2 的相关文章

  • ECMAScript简介及特性介绍

    ECMAScript 简称ES 是JavaScript的规范 同时也是被广泛采用和实现的脚本语言标准 从最初的1996年推出第一版至今 ECMAScript已经经历了数十年的发展和改进 成为了互联网开发中的重要基石之一 本文将对ECMASc
  • 模拟器和合成器之间初始化状态机的差异

    我的问题是关于合成状态机中使用的第一个状态 我正在使用莱迪思 iCE40 FPGA 用于仿真的 EDA Playground 和用于综合的莱迪思 Diamond Programmer 在下面的示例中 我生成一系列信号 该示例仅显示引用状态机
  • 【连续和自适应资源需求估计】通过不断应用在线优化、选择和估计,SARDE能够有效地适应在线跟踪,并使用得到的集成技术减少模型误差(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据 文章
  • 接口测试之Fiddler弱网测试

    前言 目前市面上的APP功能越来越丰富 移动端测试也越显为重要 因为用户在网速慢的情况下 你的网站 软件 总能出现各种各样的问题 请不要忽略这一点 针对在不同的网络情况下 接下来 本篇要讲述的就是在通过fiddler对APP进行模拟弱网测试
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 每天10个前端小知识 <Day 5>

    前端面试基础知识题 1 typeof 与 instanceof 有什么区别 typeof与instanceof都是判断数据类型的方法 区别如下 typeof会返回一个变量的基本类型 instanceof返回的是一个布尔值 instanceo
  • Android SDK开发艺术探索(五)安全与校验

    一 前言 本篇是Android SDK开发艺术探索系列的第五篇文章 介绍了一些SDK开发中安全方面的知识 包括资源完整性 存储安全 权限校验 传输安全 代码混淆等知识 通过基础的安全配置为SDK保驾护航 探索SDK开发在安全方面的最佳实践
  • 低代码-详情页组件设计

    效果图 详情页数据结构定义 layout 按钮数据 buttonLayout headButton 页头按钮 footButton 页脚按钮 详情页表单配置 config 配置组件列表 detailLayout 默认行为 进表单初始化 只展
  • vue实现 marquee(走马灯)

    样式 代码 div class marquee prompt div class list prompt span class prompt item span div div data return listPrompt xxx xxxx
  • 30天精通Nodejs--第十九天:express-文件上传下载

    目录 前言 环境准备与依赖安装 文件上传功能实现 引入并配置express fileupload中间件 注意事项 文件下载功能实现 结语 前言 文件的上传和下载是许多应用程序必备的功能 Node js的Express框架同样可以通过集
  • 面试官:分库分表后如何生成全局ID?

    分库分表后就不能使用自增 ID 来作为表的主键了 因为数据库自增 ID 只适用于单机环境 但如果是分布式环境 是将数据库进行分库 分表或数据库分片等操作时 那么数据库自增 ID 就会生成重复 ID 从而导致业务查询上的问题 所以此时 可以使
  • 【go语言】结构体数据填充生成md错误码文件

    这里使用pongo2这个模版引擎库进行md文件渲染 GitHub flosch pongo2 Django syntax like template engine for Go package main import fmt github
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 2024最强Java面试八股文合集(持续更新)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 如何在 Python 脚本中使用 Google OAuth2

    在使用 Python 脚本将视频上传到 YouTube 频道时 若希望将视频上传到第二个频道 需要解决 OAuth2 授权的问题 解决方案 创建新的 Google Cloud 项目 from google oauth2 import ser
  • 您可以使用类 C 语言对 FPGA 进行编程吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在大学里 我用类似 C 的语言编写了 FPGA 不过 我也知道人们通常使用 Verilog 或 VHD
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • 赋值语句中的“others=>'0'”是什么意思?

    cmd register process rst n clk begin if rst n 0 then cmd r lt others gt 0 elsif clk event and clk 1 then cmd r lt end if

随机推荐

  • openFeign使用get请求自动变成post请求

    Feign的一次坑 记一次 项目错误 之前项目写的feign是get请求 然后发现 请求不了 然后发现日志 请求自动变成post 网上翻阅资料发现 说使用对象类型会把请求自动变成post 所以我改post请求就可以了 查阅资料 总结 fei
  • pointnet分割自己的点云数据_基于超点图的大规模点云分割

    本期介绍一篇基于大规模点云的语义分割相关论文 Large scale Point Cloud Semantic Segmentation with Superpoint Graphs 本文提出了针对大规模点云的语义分割的框架 有序的点云是可
  • IOS:修改NavigationController的后退按钮标题

    今天遇到一问题 折腾很久总算搞明白了 问题是 controllerA和controllerB 点击controllerA中的某个按钮 将controllerB push出来 controllerB上的返回按钮的title不是我想要的 想改掉
  • Leetcode[数组] 三数之和 -- 双指针法

    0 题目描述 leetcode原题链接 三数之和 1 排序 双指针解法 class Solution def threeSum self nums List int gt List List int n len nums if not nu
  • JVM系列之内存分配与回收策略

    前言 经过前面几篇文章 我们已经对JVM虚拟机有了个初步认识 也了解了各区域应用哪些收集器 以及每个收集器用哪些收集算法 但是在这一系列过程中 其实就是一个对象的由生到死的过程 那么在这过程中对象是怎么处理它的生命周期的呢 今天我们就来介绍
  • Web项目-Nginx项目部署

    一 Linux网络 1 网络服务 查看当前网络的状态 并启动和停止网络服务 查看ip ifconfig ip addr 修改网卡ip vim etc sysconfig network scripts ifcfg ens33 概要信息如下
  • NS-3的安装及配置

    本教程基于VM Ware 虚拟机上安装的Ubuntu20 04 一 安装 NS 3 本体 准备 安装开始之前建议大家更换一下软件源并更新一下库 这样接下来的安装会块很多 由于安装过程中需要用到一些工具 所以提前准备好 已经安装的直接下一步
  • springboot整合mysql和mongodb双数据源

    因为业务需求 需要在一个项目中同时使用myslq和mongodb数据库 在网上找了好久都没有 只有相同数据库的双数据源 当时就想如果按照相同数据库的双数据源配置分别配置myslq和mongodb 一 先看一下pom文件
  • The type or namespace name ‘****‘ could not be found (are you missing a using directive or an assemb

    引用的类库目标框架不能大于当前项目的目标框架 修改一致后即可正确编译 参考文章 https blog csdn net weixin 34254823 article details 90098028
  • Error : DEP6810 Windowsphone 真机调试错误

    Windows phone 真机调试时遇到如下错误 Error DEP6810 MdilXapCompile exe failed with error code 2001 See log file C Users Documents Vi
  • 小程序用户头像昵称,微信头像昵称填写onChooseAvatar(2022最佳实践uniapp和原生)

    官方调整公告 小程序用户头像昵称获取规则调整公告 解决方案1 如有必要场景需收集用户头像昵称 可在个人中心或设置等页面让用户完善个人资料 解决方案二 官方 微信头像昵称填写 使用方法 头像选择 需要将 button 组件 open type
  • Mac配置$JAVA_HOME

    很奇怪 在新的Mac上安装了JDK 但是并没有自动配置 JAVA HOME 导致有些需要依赖Java环境的软件启动失败 找不到JAVA HOME的路径 我们首先通过echo JAVA HOME命令看 是否配置了JAVA HOME 如果没有输
  • 序列化和反序列化二叉搜索树

    序列化和反序列化二叉搜索树 序列化是将数据结构或对象转换为一系列位的过程 以便它可以存储在文件或内存缓冲区中 或通过网络连接链路传输 以便稍后在同一个或另一个计算机环境中重建 设计一个算法来序列化和反序列化 二叉搜索树 对序列化 反序列化算
  • 解决pycharm安装好后打不开的问题

    你最近应该把带有Visual C 字样的东西卸载了吧 把 Visual C 安装回来就OK了 安装网址 https support microsoft com zh cn help 2977003 the latest supported
  • 树莓派4B下opencv3.4.0的安装测试与所有错误处理

    1 opencv3 4 0的下载 可以在树莓派的终端界面通过wegt命令下载 但下载速度可能很慢 终端输入下列代码进行下载 cd home pi Downloads wget https github com Itseez opencv a
  • Erlang数据类型的表示和实现(5)——binary

    binary 是 Erlang 中一个具有特色的数据结构 用于处理大块的 原始的 字节块 如果没有 binary 这种数据类型 在 Erlang 中处理字节流的话可能还需要像列表或元组这样的数据结构 根据之前对这些数据结构 Eterm 的描
  • VI/VIM 键盘图 及常规快捷操作

    一 VI VIM 键盘图 二 模式转换 2 1 一般模式 2 2 编辑模式 2 3 命令模式
  • EasyExcel导出图片到Excel

    EasyExcel导出图片到Excel 需要自己重新写转换器 但是1000张以下导出是没问题的 10000以上会卡顿 有意向的小伙伴可以一起讨论下 如何处理大数量的图片导出到excel import com alibaba excel co
  • GCC详解-总览

    1 GCC是什么 早期 GCC 的全拼为 GNU C Compiler 即 GUN 计划诞生的 C 语言编译器 显然最初 GCC 的定位确实只用于编译 C 语言 但经过这些年不断的迭代 GCC 的功能得到了很大的扩展 它不仅可以用来编译 C
  • 数字IC设计学习笔记_静态时序分析STA_配置STA环境2

    数字IC设计学习笔记 配置STA环境2 1 约束 Input path 和 Output path 2 时序路径组Timing path groups 3 外部属性建模 1 约束 Input path 和 Output path 约束 In