仿真验证方法(2)——静态验证

news2024/11/16 1:47:45

一、静态验证

1.1 概述

        在之前的文章中,我们介绍了动态仿真,但是动态仿真用于百万门以上电路时所需时间极长,而且其功能覆盖率取决于所设计的输入激励向量,很难达到100%,因此静态时序分析和等效性检查这样的静态验证是必须的。静态时序分析比动态仿真快得多,无需输入激励向量,可以穷尽 所有门级电路的时序验证,但无法发现逻辑功能错误,逻辑综合后、布局后和布线后都能做,但后者更为准确而重要。等效性验证用于比较RTL代码与RTL代码之间、RTL代码与网表之间、网表与网表之间的一致性,常用于判断设计递进或修改后(比如加入了扫描链)逻辑是否发生了变化。

1.2 静态时序分析(STA)

        Static Timing Analysis,通过计算电路所有路径上的延迟,判断时序是否满足要求。它的特点是与动态仿真相比,无需激励,可以穷尽所有路径,可识别时序故障类型多,运行速度快,占用内存少,但无法发现逻辑功能上的错误。一般应用于布局布线前(时延参数通过正标得到),布局布线后(时延参数通过反标得到),插入扫描链或时钟树前后等。

        STA可仿真四类时序路径(Timing Path),分别是:(1)引脚到寄存器(从芯片的输入端口到目的寄存器的数据输入端口)(2)寄存器到寄存器(从源寄存器的时钟端口到目的寄存器的数据输入端口)(3)寄存器到引脚(从源寄存器的时钟端口到芯片的输出端口) (4)引脚到引脚(从芯片的输入端口到芯片的输出端口)。

        关于时序路径的详细内容,可以阅读:

FPGA时序分析与约束(5)——时序路径icon-default.png?t=N7T8https://ztzhang.blog.csdn.net/article/details/132641522

1.2.1 最长路径和最短路径

        如果从输入到输出存在多条信号路径,则延迟最长的一条被称为最长路径(Max Path)或者关键路径(Critical Path)或者晚路径,延迟最短的一条被称为最短路径(Min Path)或者早路径。最长路径不一定是途径单元数最多或者互连线最长的路径。

1.2.2 端口检查

        对于静态时序分析来说,最重要的就是检查芯片上所有寄存器的端口,包括输入、输出、置位和复位、其对应检查的内容分别是建立时间、保持时间、恢复时间和移除时间。

  • 建立时间(Setup time):时钟信号变化之前寄存器输入数据保持不变的最短时间。建立时间违例多发生在最慢的PVT条件下,故分析时应使用最坏(WORST)条件下的时序库。因建立时间不够发生的违例,对策是让时钟更晚地到达寄存器(比如增加时钟周期),或者缩短数据路径的延迟
  • 保持时间(Hold time):时钟信号变化之后寄存器输入数据保持不变的最短时间。保持时间违例多发生在最快的PVT条件下,故分析时应使用最好(BEST)条件下的时序库。因保持时间不够而发生的违例,对策是增加数据路径的延迟,或者让时钟更早地到达寄存器(比如缩短时钟周期)
  • 恢复时间(Recovery time)时钟信号变化之前置位或复位信号保持有效的最短时间,应采用最坏情况分析
  • 移除时间(Removal time)时钟信号上升沿与置位或复位信号上升沿之间的时间,应采用最好情况分析
关于这方面的详细内容,可以阅读:
FPGA时序分析与约束(8)——时序引擎icon-default.png?t=N7T8https://ztzhang.blog.csdn.net/article/details/134095643
FPGA时序分析与约束(2)——时序电路时序icon-default.png?t=N7T8https://ztzhang.blog.csdn.net/article/details/132626131

1.2.3 时序违例的可能原因与对策

  • 设计约束不合理 某些设计约束或许根本不能实现,这只能通过更改或修正时序约束文件来解决
  • 线负载模型(WLM)不合理 逻辑综合时使用的WLM产生的网表在物理设计时不可能实现,这需要根据当前的结果去产生新的WLM(CWLM,customized WLM),再次进行逻辑综合(也称物理综合physical synthesis)
  • 布局布线不合理 对于大规模或者复杂的设计,由于初学者经验不足或者有经验者的疏忽而出现时序违例,需要重新对布局布线进行优化

        较小的优化可以不改变网表的逻辑,只是通过改变逻辑单元的尺寸、复制单元或者添加缓冲器来解决,这称为“原地优化(IPO,in-place optimization)”

        反复修改,直至消除全部违例,使时序全部满足要求,称之为时序收敛(Time Closure)。

1.3 形式验证

  • 作用:判断当前设计与参考设计在逻辑功能上是否相同,不能验证时序
  • 常用方法:等效性检查、模型验证和定量证明等,等效性检查最为常用
  • 常用EDA工具:Synopsys的Formality,Cadence的Encounter Conformal Equivalent Checker

1.4 等效性检查 

        常用于比较修改前后的RTL 代码之间, RTL 代码与逻辑综合生成的门级网表之间,加入扫描链前后或者ECO修正前后的门级网表之间,插入时钟树、扫描链、时序优化前后的设计之间在逻辑上的一致性或等效性。 等效性检查 比功能仿真方法的覆盖率高,所需时间短。

二、小结

        考虑到动态仿真用于百万门以上电路时所需时间极长,而且其功能覆盖率取决于所设计的输入激励向量,很难达到100%,因此静态时序分析和等效性检查这样的静态验证是必须的。本文着重介绍了静态时序分析、形式验证和等效性验证。

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

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

相关文章

【STM32】HAL库的STOP低功耗模式UART串口唤醒,解决首字节出错的问题(全网第一解决方案)

【STM32】HAL库的STOP低功耗模式UART串口唤醒,解决首字节出错的问题(全网第一解决方案) 前文: 【STM32】HAL库的STOP低功耗模式UART串口唤醒,第一个接收字节出错的问题(疑难杂症) 目前已解决 …

深度学习进行数据处理(划分测试集和训练集)

自己进行在深度学习时对数据的处理,希望可以帮助大家 文章目录 前言 一、观察数据格式 二、划分训练集和测试集 总结 前言 在进行图像分类时我们经常得到的数据集各种各样,接下来我教大家如划分测试集和训练集. 一、观察数据格式 我们一般获得的数据在一个文件夹里,文件夹…

使用 KubeSphere 与极狐GitLab 打造云原生持续交付系统

极狐GitLab 简介 极狐GitLab 是一个一体化的 DevOps 平台,可以简单理解为 GitLab 在国内的“发行版”。是由极狐(GitLab)公司推出的产品(极狐(GitLab)公司是以“中外合资3.0”模式成立的公司,在国内独立运营,为国内用户提供适合本…

VLAN 详解二(VLAN 基础配置)

VLAN 详解二(VLAN 基础配置) VLAN 配置其实是非常简单的,但是想要学得比较精还是需要花费一些功夫的,根据不同的 VLAN 划分方式用不同的配置方法,但其实配置方法基本上都大同小异。 下面就以在实际网络中最常用的基于…

fiddler筛选请求并修改参数

一、筛选请求 使用过滤,需勾选User Filter才会生效,运行当前的过滤规则,需点击Run Filterset now Hosts:主机过滤之局域网过滤 No Zone Filter:默认选项,不设置区域过滤器show only Intranet Hosts&…

HarmonyOS——ArkUI状态管理

一、状态管理 在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染&…

大模型在游戏行业的应用分析

文章目录 一、大模型作用1)节省美术成本2)模仿用户肖像,精准投放3)买量流程的自动化4)缩短视频素材制作周期5)例如新营销形式宣传(图生图)5)故事设计6)辅助代…

Linux操作系统----实用工具Git(配实操图)

绪论​ “针对问题 解决问题 针对问题!”,本章主要讲解的是Git是什么以及Git的如何搭建仓库和如何在Linux环境下通过指令的形式提交自己的代码到远程仓库。 话不多说安全带系好,发车啦(建议电脑观看)。 1.Git的来源以…

模拟开关灯

1.  实验任务 如图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。…

ChatGLM3在windows上部署

1 项目地址 https://github.com/THUDM/ChatGLM3 简介:ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。 2 本机配置 台式机: CPU: Intel(R) Core(TM) i7-10700F RAM: 32G GPU: NV…

pytorch学习笔记(七 )

池化类似压缩 最大池化-上采样 例如给一个3的话就会生成一个33的窗口(生成相同的高和宽),给一个tuple就会给出一个相同的池化核。stride默认值就是核的大小 dilation 在卷积dialation设置之后每一个会和另外的差一个,空洞卷积 …

大模型在广告ctr预估中的应用

背景 预训练大模型在ctr预估方面取得了不错的效果,但是应用大模型方面还主要停留在提取离线预训练,然后使用大模型的打分结果或者中间的embedding向量,这种级联的应用方式相对灵活方便。但是这种使用大模型提取特征的方式存在自身的问题&…

使用知行之桥EDI系统的HTTP签名身份验证

本文简要概述了如何在知行之桥EDI系统中使用 HTTP 签名身份验证,并将使用 CyberSource 作为该集成的示例。 API 概述 API 是”应用编程接口”的缩写。这听起来可能很复杂,但它的真正含义是一种允许两个不同实体相互通信的软件。自开发以来,…

x-cmd pkg | tsx - Node.js 的直接替代品

目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 tsx 代表 “TypeScript execute”,由 TypeScript 编写,内部使用由 Go 语言编写的 esbuild 核心二进制实现超快的 TypeScript 编译,旨在增强 Node.js 以无缝运行 TypeScript / ESM /…

利用Wireshark分析IP协议

实验.利用Wireshark分析IP协议 一.实验目的 1.掌握Wireshark软件简单的过滤语法 2.掌握IP数据报的组成格式 3.掌握IP分片的计算方法 4.学会利用Wireshark抓包分析IP协议 二.实验环境 1.Wireshark软件 2.Windows 计算机 三.实验预备知识 1.IP…

便捷好用的iOS文件管理App

便捷好用的iOS文件管理App 摘要 本文介绍了一款功能强大、免费的iOS文件管理App——克魔助手。通过使用克魔助手,用户可以轻松管理手机存储空间,清理垃圾文件,整理文件,并进行文件传输和截图操作。本文将详细介绍克魔助手的各项…

html+css实现子元素完全居中常见方案

详细过程 查看公众号文章 htmlcss实现子元素完全居中常见方案 获取更多内容,请关注微信公众号。搜索“码圈小橙子”,或扫描下方二维码获取关注

轻量化的yolov8部署到安卓Android手机端

一、pytorch环境配置和yolov8源码安装 首先在电脑上需要配置好pytorch环境,和yolov8源码的下载 然后针对yolov8做自己的轻量化改进 二、下载Android Studio和ncnn-android-yolov8 1. Android Studio官网链接: 下载 Android Studio 和应用工具 - And…

预训练中文GPT2(包括重新训练tokenizer)

训练数据 1.json后缀的文件 2.数据是json line格式,一行一条json 3. json结构如下 {"content": "①北京和上海户籍的游客可获得韩国多次签证;②“整容客”可以不经由韩国使领馆、直接在网上申请签证;③中泰免签的实施日期…

屏幕截图编辑工具Snagit中文

Snagit是一款优秀的屏幕、文本和视频捕获与转换程序。它能够捕获屏幕、窗口、客户区窗口、最后一个激活的窗口或用鼠标定义的区域,并支持BMP、PCX、TIF、GIF或JPEG格式的保存。Snagit还具有自动缩放、颜色减少、单色转换、抖动等功能,并能将捕获的图像转…