芯片后端开发基础知识(二)

2023-11-17

  • 静态时序分析(Static Timing Analysis):静态执行对于数字设计时序的分析,不依赖于施加在输入端口上的激励,验证设计是否可以安全地运行在给定的时钟频率下且没有时序违例
  • 时序仿真(Timing Simulation):施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激励再重复以上过程
  • 建立时间检查:保证数据可以在给定时钟周期内到达触发器
  • 保持时间检查:保证数据在被触发器采样后还能保持一定时间,不会漏采数据
  • STA的运行:
    • 在逻辑设计的逻辑综合后运行:确定最差或关键的时序路径
    • 在逻辑设计的逻辑优化后运行:查看是否有剩余的唏嘘违例路径需要优化,或确定关键路径
    • 在物理设计中:可以在每一部执行STA以确定最差路径
  • 不同阶段下,STA采用的模型:
    • 逻辑设计阶段:
      • 理想的互连线或基于线负载模型的互连线
      • 带有延迟和抖动估计值的理想时钟
    • 物理设计阶段(包括上面2种模型):
      • 具有近似估计值的全局布线的互连线、具有近似寄生参数提取值的实际布线的互连线、具有可以签核(Signoff)精度寄生参数提取值的实际布线的互连线
      • 实际的时钟树
      • 包括串扰的影响或者不包括串扰的影响
  • SDC(Synopsys Design Constraints):设计约束文件基于TCL(Tool Command Language)格式,由Synopsys公司开发定义,用于电路的逻辑综合,对电路的时序、功耗、面积等进行约束。

2 波形的压摆(Slew)

  • 波形(Waveform):定义时钟的高电平时间
  • 上升沿(Rising):时钟信号从0到1的转变时间
  • 下降沿(Falling):时钟信号从1到0的转变时间
  • 有效沿(Active):分为上升沿和下降沿
  • 转换时间(Transition Time):信号在两个特定电平之间转换所需要的时间
  • 压摆率(Slew Rate):电压转换速率
  • 下降压摆(Fall Slew):下降沿达到Vdd的slew_upper_threshold_pct_fall和slew_lower_threshold_pct_fall的时间之差
  • 上升压摆(Rise Slew):上升沿达到Vdd的slew_lower_threshold_pct_rise和slew_upper_threshold_pct_rise的时间之差
  • 压摆阈值点的选择对应的是波形的线性部分
  • 压摆降额系数(Slew Derate Factor):用slew_derate_from_library进行配置,压摆测量预置点为30%和70%且压摆降额系数为0.5,等效于测量阈值点为10%和90%,(70 - 30) / (90 - 10) = 0.5

3 信号偏斜(Skew)

  • 时钟延迟(Clock Latency):从时钟源到终点所花费的总时间,SDC中用set_clock_latency命令显式地指定时钟树的延迟
  • 时钟抖动(Jitter):信号时间与理想事件时间的偏差(Deviation)
  • 时钟偏斜(Clock Skew):到达不同时钟树终点的时间差,是最长时钟路径和最短时钟路径的延迟差,时钟偏斜在SDC中用set_clock_uncertainty命令显式指定时钟不确定度的值,该值包括时钟抖动、时钟偏斜估计值和额外悲观度

4 时序路径(Clock Path)

  • 路径延迟(Path Delay):逻辑通过逻辑路径传播的总延迟,包括逻辑路径中经过各个逻辑单元和网络走线的延迟
  • 最大时序:逻辑从时钟的根节点到达逻辑终点的最大延迟时间
  • 最小时序:逻辑从时钟的根节点到达逻辑终点的最小延迟时间
  • 最大时序路径:也称为晚路径(Late Path),延迟最大的路径
  • 最小时序路径:也称为早路径(Early Path),延迟最小的路径

5 时序弧(Timing Arc)

  • 时序敏感(Timing Sense):输出如何针对输入的不同跳变类型而变化
  • 时序弧(Timing Arc):每个输入引脚到每个输出引脚都存在一条时序弧
  • 正单边类型(Positive Unate):输入引脚上升沿跳变导致输出引脚电平上升(或不变),而输出引脚的下降沿跳变导致输出引脚电平下降(或不变),表示输出引脚电平跳变方向与输入引脚电平跳变方向相同
  • 负单边类型(Negative Unate):输入引脚上升沿跳变导致输出引脚电平下降(或不变),而输出引脚的下降沿跳变导致输出引脚电平上升(或不变),表示输出引脚电平跳变方向与输入引脚电平跳变方向相反
  • 非单边类型(Non-Unate):仅从一个输入引脚的跳变方向无法确定引脚电平将如何跳变,还取决于其他输入引脚的状态

6 时钟域(Clock Domain)

  • 时钟域:由同一时钟驱动的一组触发器
  • 时钟域独立:不存在从一个时钟域开始而在另一个时钟域结束的数据路径
  • 伪路径(False Path):将时钟同步器(Clock Synchronizer)逻辑明确放在两个时钟域之间,不是真实的时序路径,数据没有被约束要在一个时钟周期之内通过同步器逻辑传播,在SDC中用set_false_path命令指定时钟域之间的伪路径

7 工作环境(Operating Condition)

(1)静态时序分析3种标准的工作环境:

  • 最坏情况下的慢速WCS(Worst-Case Slow):工艺慢(Slow)、温度最高(如125°C)、电压最低(如1.2V x 90%)
  • 典型TYP(Typical):典型(Typical)工艺,温度是额定值(如25°C),电压是额定值(如1.2V)
  • 最佳情况下的快速BCF(Best-Case Fast):工艺快(Fast),温度最低(如-40°C),电压最高(如1.2V x 110%)

(2)功耗分析(Power Analysis)工作环境:

  • 最大漏电功耗ML(Maximal Leakage):工艺快,温度最高(如125°C),电压最高(如1.2V x 90%)
  • 典型漏电功耗TL(Typical Leakage):经典工艺,温度最高(如125°C),电压是额定值(如1.2V)

8 时序模型(Timing Model)

  • 时序模型:对设计中的单元实例(Instance)工作时的实际情况进行建模
  • 线性延迟模型(Linear Delay Model):D = D0 + D1 x S + D2 x C,D0、D1、D2为常数,D为逻辑单元的延迟,S为输入过渡时间,C为输出负载电容
    • 输入过渡时间(Input Transition Time):信号过渡时间越大,延迟越大
    • 输出负载电容(Output Load Capacitance):负载电容越大,延迟越大
  • 非线性延迟模型(NLDM,Non-Linear Delay Model):以二维形式表示,两个独立变量是输入过渡时间和输出负载电容,表中的数值表示延迟
    • 计算延迟:cell_rise、cell_fall
    • 计算逻辑单元输出引脚的过渡时间:rise_transition、fall_transition
  • 状态相关的时序模型(State-Dependent Model):取决于引脚状态的多个时序模型
    • 使用when来指定与状态有关的条件
    • 可以既使用状态相关的时序模型又使用非状态相关的时序模型来指定一些时序关系
  • 黑盒(Black Box)的接口时序模型:其可以具有以下时序弧:
    • 纯组合逻辑路径的输入到输出的时序弧
    • 从同步输入端口到相关时钟端口的建立时间和保持时间时序弧
    • 从异步输入端口到相关时钟端口的恢复时间和撤销时间时序弧
    • 从时钟端口到输出端口的输出传播延迟
  • CCS时序模型(Composite Current Source,复合电流源):使用随时间变化且依赖电压的电流源,为不同情况下的接收引脚电容和输出充电电流指定详细时序模型
    • 接收引脚电容(Receiver Pin Capacitance):在过渡波形的不同部分分别指定接收引脚电容,用receiver_capacitance_rise和receiver_capacitance_fall分别定义输入引脚上用于上升沿波形的接收电容及输入引脚上用于下降沿波形的接收电容
    • 输出充电电流(Output Charging Currents):根据输入过渡时间和输出负载电容的不同组合指定随时间变化的输出电流,用output_current_rise和output_current_fall来分别定义上升输出波形的输出电流及下降输出波形的输出电流
  • CCS噪声模型(CCSN,CCS Noise):对单元内不同的CCB进行表示
    • CCB(Channel Connected Block):沟道连接块,是单元的源极(Source)、漏极(Drain)的沟道(Channel)的连接块
    • du_current定义输出引脚上针对输入和输出引脚电压不同组合的直流电流
    • output_voltage_rise和output_voltage_fall定义CCB输出上升和下降的时序信息
    • propagated_noise_high和propagated_noise_low定义通过CCB的串扰噪声传播信息,包括输入噪声幅值和宽度

9 时序检查(Timing Check)

  • 同步时序检查(Synchronous):建立时间和保持时间检查
    • 建立时间(Setup Time):输入的数据必须在有效时钟沿之前保持稳定的最短时间
    • 保持时间(Hold Time):有效时钟沿之后输入的数据必须保持稳定的最短时间
    • timing_type决定该时序逻辑单元是上升沿触发还是下降沿触发,rise_constraint和fall_constraint决定时间约束
    • 负值保持时间表示触发器的数据引脚可以在时钟引脚之前改变,并且仍然满足保持时间的检查要求
    • 建立时间和保持时间的数值总和应为正值
  • 异步时序检查(Asynchronous):恢复时间和撤销时间检查
    • 异步恢复时间和撤销时间检查:验证异步引脚在下一个时钟有效边沿处是否已明确返回到了无效状态
      • 异步引脚无效状态(Inactive):有效时钟沿将开始锁存输入的数据
      • 异步引脚有效状态(Active):输出由异步引脚控制
    • 恢复时间(Recovery Time):异步输入被置为无效(De-asserted)后在下一个有效时钟沿之前需要保持稳定的最短时间
    • 撤销时间(Removal Time):一个有效时钟沿后,异步引脚必须保持有效状态的最短时间,即在有效时钟沿之后必须经过一段撤销时间才能将异步引脚置为无效状态
    • 脉冲宽度检查(Pulse Width Check):确保逻辑单元引脚上的脉冲宽度满足最低要求,timing_type为min_pulse_width
  • 对于触发器的同步输出,有着从时钟引脚(CK)到输出端口(Q或QN)传播延迟检查
    • 传播延迟(Propagation Delay):从时钟的有效沿到输出的上升沿或下降沿

10 功率(Power)

  • 有功功率(Active Power):与单元输入和输出引脚上的行为有关
    • 输出开关功率(Output Switching Power):与单元类型无关,取决于输出负载电容、开关频率和供电电源
    • 内部开关功率(Internal Switching Power):取决于单元类型,是当单元的输入或输出处于活动状态时单元内部的功耗
    • 触发器在每次时钟切换,都会消耗功率,通常是由触发器单元内部反相器的开关引起。即使触发器输出未切换,也会消耗由于时钟引脚切换引起的功率
  • 漏电功率(Leakage Power):与MOS器件的亚阈值电流和栅极氧化物隧穿电流有关
    • 高阈值电压单元漏电小,速度慢;低阈值电压单元漏电打,速度快
    • 温度越高,亚阈值电流越高

参考文献

[1]Bhasker, J.,Chadha, Rakesh著. 赵俊军译. Static Timing Analysis for Nanometer Designs: A Practical Approach. Springer US,2009.06;

[2]陈春章,艾霞,王国雄. 数字集成电路物理设计,[M]北京:科学出版社,2008.08;

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

芯片后端开发基础知识(二) 的相关文章

  • 【时序模型】MATLAB实现NAR非线性自回归模型时间序列预测

    目录 MATLAB实现NAR非线性自回归模型时间序列预测 MATLAB实现NAR非线性自回归模型时间序列预测 以下是MATLAB实现NAR非线性自回归模型时间序列预测的一个简单样例代码 使用该代码可以实现简单的NAR非线性自回归模型时间序列
  • 【课内学习】数字电路Flip-Flop

    本文仅供博主自己复习使用 xff0c 因此只记录了自己容易忘记的知识点 xff0c 并非成体系的整理 Latches and Flip Flops S R latch Why do we need this stupid drive equ
  • 组合逻辑电路——编码器

    组合逻辑电路 编码器 概念 编码的概念 在数字系统中 常需要将有特定意义的信息编成二进制代码 这一过程称为编码 编码器 实现编码的数字电路被称为编码器 二进制编码器 这里我们采用与非门来设计二进制编码器 二进制编码器输出端数量不定 可以根据
  • 数字电路-门电路

    摘要 本章系统地讲述了数字集成电路中的基本逻辑单元电路 门电路 由于门电路中的二极管和三极管经常工作在开关状态 所以首先介绍它们在开关状态下的工作特性 然后 重点讨论了目前广泛使用的CMOS门电路和TTL门电路 对于每一种门电路 除了讲解它
  • Timing Borrow的理解

    在集成电路设计中 静态时序分析 Static Timing Analysis STA 是一种常用的验证方法 用于确保芯片在运行时的时序约束得到满足 在STA分析过程中 Timing Borrow是一种时序收敛技术 即在某些情况下 可以借用下
  • 超详细!基于Proteus的简易测频计实现(数字电路课程设计)

    本文阐述基于Proteus 7 8的简易测频计电路的实现 附具体电路的工程文件下载 工程文件下载链接 设计要求 闸门时间1S 10S可选 读数保持时间10秒 可选 四位数字显示 范围000 1 9999 Hz 能够自动进行下一次测量 设计方
  • 逻辑表达式三种化简方法

    逻辑表达式三种化简方法 目录 公式化简法 卡诺图化简法 机器化简法 一 公式法化简 是利用逻辑代数的基本公式 对函数进行消项 消因子 常用方法有 并项法 利用公式AB AB A 将两个与项合并为一个 消去其中的一个变量 吸收法 利用公式A
  • 数字电路实验(02)小规模组合逻辑电路实验1:交通灯状态

    数字电路实验 02 小规模组合逻辑电路实验1 交通灯状态 2020 5 11 一 实验要求 1 1 实验目的 1 认识解决实际组合逻辑问题的一般方法和过程 2 熟悉基本逻辑门的使用 1 2 实验器材 1 2输入与门 2 3输入与门 3 4输
  • verilog中带符号数据的赋值问题(记录)

    记录今日新发现 关于带符号数据的赋值问题 在组合逻辑中 等号两端数据type类型要相同 即同为signed型或unsigned型 在时序电路中 等号两端数据type类型可以不同 signed或unsigned都可以 wire 1 0 a b
  • CH1-数字逻辑基础

    文章目录 一 数制和码制 1 1 数字量和模拟量 1 2 数制和码制 一 数制 二 数制转换 三 码制 二 逻辑代数中的基本运算 与门 或门 非门 与非门 或非门 与或非门 异或门 同或门 三 基本和常用公式 3 1 基本公式 3 2 常用
  • 电子技术基础(三)__第7章 时序逻辑电路_D触发器

    在触发器的分类中有 同步触发器 同步触发器有3种 其中就有一种是 D触发器 称为同步D触发器 另外 还有一种触发器是 维持阻塞型 D触发器 这里 D 指Delay 延时 一 概念 1 1 概念 我们再次看到时钟上 有o 与 无o的区别 这在
  • chisel使用自定义/标准库中的函数简化设计(更新)

    主体内容摘自 https blog csdn net qq 34291505 article details 87905379 函数是编程语言的常用语法 即使是Verilog这样的硬件描述语言 也会用函数来构建组合逻辑 对于Chisel这样
  • 静态时序分析的基本方法06

    其他芯片变化相关分析模式 随着制造工艺越来越先进 在时序分析规模不断增大的同时 对时序分析精度的要求也越来越高 因此常规的芯片变化相关分析模式已经无法满足当前更高级的时序分析要求 本节将介绍两种更高级的芯片变化相关分析模式 高级芯片变化相关
  • 脉冲触发器(JK触发器)

    1 一般脉冲触发器 电路结构 将边沿触发器的两个电平触发D触发器换成电平触发的SR触发器 工作原理 即 上升沿 CLK由0 1时 CLK 由1 0 FF1由 锁存 正常工作 FF2由正常工作 锁存 Q1由锁存时的不变 可随S R变化 Q保持
  • Critical Warning: Synopsys Design Constraints File file notfound: 'CMTT.sdc'. A Synopsys Design Cons

    在使用quartus ii进行FPGA开发时 遇到如下警告信息 Critical Warning Synopsys Design Constraints File file notfound CMTT sdc A Synopsys Desi
  • 握手信号valid/ready的打拍技巧

    一 前言 valid和ready信号 尤其是ready信号的时序一般很差 因为它通常是接收端通过组合逻辑输出的 当流水线的级数较多时 ready反压信号一级一级往前传递 时序将会变得更差 为了优化时序 通常需要对valid和ready信号进
  • 小学期-中期总结报告

    实训中期总结报告 一 人文 本次实训采取讲练结合的方式 四次讲座分别介绍了实训整体要求安排 开发环境与流程 实验板的硬件电路 单片机原理 随着进度循序渐进 在实践方面 参观贴片整体流程 自己动手焊接电路板 下载实例进行学习 各个案例按照I
  • 组合逻辑毛刺消除(竞争冒险)

    一 毛刺产生的原因 信号在 IC FPGA 器件中通过逻辑单元连线时 是存在延时的 延时的大小不仅和连线的长短和逻辑单元的数目有关 而且也和器件的制造工艺 工作环境等有关 因此 信号在器件中传输的时候 所需要的时间是不能精确估计的 当多路信
  • 芯片后端开发基础知识(二)

    目录 1 静态时序分析 Static Timing Analysis 2 波形的压摆 Slew 3 信号偏斜 Skew 4 时序路径 Clock Path 5 时序弧 Timing Arc 6 时钟域 Clock Domain 7 工作环境
  • 数字系统的信息表示

    数字系统的信息表示 1 什么是信息 2 数字系统是如何表示一个连续值的信息 3 使用数字信号的优势 4 将模拟信号表示成数字信号形式过程 5 为什么数字系统要采用二进制 6 噪声容限 1 什么是信息 信息是对物质世界与人类社会中存在的各种各

随机推荐

  • linux自增窗口状态——KwindowSystem篇

    前言 之前曾翻译过 X Desktop Group 今天分享一下如何自定义状态 此篇讲述如何通过kwindowsystem新增状态 以及设置状态的过程 窗口有不同的属性 状态 允许Action等等信息 以使窗口管理器来确定窗口的装饰 堆叠位
  • STM32之NVIC

    STM32 Cortex M3 中NVIC 嵌套向量中断控制 的理解 一 STM32 Cortex M3 中的优先级概念 STM32 Cortex M3 中有两个优先级的概念 抢占式优先级和响应优先级 也把响应优先级称作 亚优先级 或 副优
  • jinfo如何使用

    jinfo是一个用于查看和调整Java虚拟机 JVM 配置参数的命令行工具 它可以在运行时获取和修改JVM的配置信息 包括内存分配 垃圾回收 运行时编译和其他设置 要使用jinfo 需要在命令行中输入以下命令 jinfo options
  • C# 学生成绩管理系统

    学生成绩管理系统 前言 一 我是一个菜鸟 二 已经有快一年没有发文章 一直在忙着毕业和找工作的事 如今生活逐渐趋于稳定 那么 勤劳的博主又开始更新了 哈哈 本次更新的是非常经典的学生成绩管理系统 这作为一个计算机专业的你来说 可能在大一 大
  • 让chatgpt从一个查询接口写接口测试用例

    要求 一个查询接口 入参有currPage order pageSize sortBy 所有入参为非必须 请帮我写出这个接口所有接口用例 根据你提供的信息 下面是该查询接口所有可能的接口用例 当所有参数都不传递时 查询接口会返回所有符合条件
  • UE44如何使用Geometry(BSP)笔刷,快速创建游戏原型?

    游戏原型搭建 如何快速搭建场景 一 好处1 防止同时也放大了对应的网格 如果像unity里面一样 R放大缩小以后 网格也会对应拉伸 失真 导致了材质会被拉伸或者缩小 1 选择Geometry 在BrushSetting里面 将X Y Z对应
  • ubuntu 20.04 安装 pycharm 2022.1 .3 及其卸载

    下载 官网下载 https www jetbrains com pycharm 安装 下载好的文件显示如下 打开终端 进入你刚下载的文件所在的文件夹目录 例如我的放在Downloads这个文件夹 cd Downloads 查看文件夹里的文件
  • ROS navigation分析:navigation框架

    前言 ROS navigation stack是ROS提供的一个非常重要且常用的模块 它的主要作用是实现机器人的定位 导航和避障功能 在ROS wiki上 Maintainer把它的功能归纳为 It takes in information
  • 从零实现DevOps(五):Jenkins+SSH远程部署SpringBoot项目

    上篇文章 我从安装Jenkins插件开始 给大家讲解了如何从Jenkis本地环境中 以启动jar包脚本的方式部署SpringBoot项目 但是呢 以咱们日常的开发来说 所有服务都部署在一台服务器上根本就不是一个合理的方案 更不可能在所有服务
  • 基于FPGA的一维卷积神经网络CNN的实现(五)数据量化(附代码)

    数据量化 环境 Pytorch Pycham Matlab 订阅后有问题 或者需要该节的文件直接加微信 Crazzy M 说明 上一节已经通过Matlab中基础的乘加运算进行了CNN网络的前向计算过程 该节利用Matlab将导出的CNN网络
  • Object365数据/论文说明

    总览 1 目标检测数据 365类 约600k训练图片 超过一千万的bboxes 迄今为止最大的目标检测数据集 全注释的 2 服务于更好的未来研究 局部敏感类型的任务 如目标检测 语义分割 3 在COCO测试下 Objects365上预训练的
  • IDEA插件系列(33):RestfulTool插件——Restful服务开发辅助工具集

    1 插件介绍 RestfulTool插件 一套 Restful 服务开发辅助工具集 提供了一个 Services tree 的显示窗口 双击 URL 直接跳转到对应的方法定义 一个简单的 http 请求工具 支持 Spring 体系 Spr
  • npm install安装依赖总结

    node下载地址 https nodejs org en download releases 可以看到node版本 npm版本 node module版本 1 npm的全局安装路径 查看默认值 npm get prefix 默认是C Use
  • 五、网络编程之网络 IO 模型的本质.md

    IO 网络模型的本质 前置概念 1 用户空间和内核空间 学习 Linux 或者 IO 网络模型时 经常可以看到两个词 User space 用户空间 和 Kernel space 内核空间 简单说 Kernel space 是 Linux
  • 实例创建流程_ABAQUS复合材料建模及基本分析流程

    案例1 创建开孔矩形复合材料常规壳层合板 层合板一端固定 另一端施加拉伸载荷 对模型进行分析 查看每层单方向的应力 对比云图和加载时的铺层额方向 理解铺层方向与lamina材料的概念 0 1建立几何模型 利用Abaqus中composite
  • javaSE基础 数据库操作3之数据库恢复

    java基础 数据库操作3之数据库恢复 流程 上一篇写了数据的备份 本篇将写数据库的恢复操作 思想 备份文件中写入的是将数据库表转换为sql后的语句 所以备份就只需将备份文件中的sql语句执行即可 数据库恢复 public static v
  • uni-app转小程序遇到的问题 (组件使用插槽的问题)(跨端兼容、条件编译)(小程序自定义胶囊按钮封装)(uni-app挂载原型链)

    1 uni app转小程序组件使用插槽的问题 uni app封装的组件使用问题 1 插槽样式 H5页面编译是有效果的 在小程序中编译的位置错误 它会跳出本来的插槽位置到最后 解决方法 使用父传子传递值 就可以继承组件的样式 封装的组件 使用
  • python使用from keras.utils import to_categorical出错

    python使用from keras utils import to categorical出错 我使用的python编辑环境Sublime Text keras的版本2 6 0 结果语句from keras utils import to
  • 【WiFi】国产WiFi芯片

    目录 1 概述 2 WiFi芯片的市场格局 3 中国的WiFi芯片公司 3 1 华为海思 3 2 乐鑫科技 3 3 博通集成 3 4 紫光展锐 3 5 康希通信 3 6 南方硅谷 4 国产WiFi芯片竞争格局 4 1 内卷WiFi 4 4
  • 芯片后端开发基础知识(二)

    目录 1 静态时序分析 Static Timing Analysis 2 波形的压摆 Slew 3 信号偏斜 Skew 4 时序路径 Clock Path 5 时序弧 Timing Arc 6 时钟域 Clock Domain 7 工作环境