基于quartus的高级时序分析
基于quartus的高级时序分析
一、派生时钟和异步存储器
派生时钟就是和独立时钟存在频率或者相位关系的时钟,异步存储器就是具有存储读写异步功能的存储器。在时序分析中,这两个部分的静态时序分析是需要设置个别约束的。派生时钟会产生时钟偏斜或者不同频率时序问题,异步存储器则类似latch,存在建立时间和保持时间的要求。
二、多时钟域约束
分别对独立时钟和衍生时钟做时序约束,保证其能够进行STA分析
三、多周期约束
(1)多周期约束定义
一般的时钟约束都是基于一个时钟周期的,以一个周期的边沿为数据变化条件。对于某些特殊的路径,可以以多个周期为触发条件,以便达到提高建立时间和调节保持时间的目的。具体到RTL层次上就是用一个技术信号控制时钟边沿是否读取数据。
(2)多周期约束方法
多周期约束需要设置的参数有两个:multicycle和multicycle hold;第一个是多少个时钟周期触发一次,直接对应建立时间,第二个是多少个周期保持不变。具体的方法还是在实际设计中操作。
(3)时钟使能
对于时钟使能信号,可以通过多周期约束模拟信号的触发间隔,可以提高静态时序的精确性。
(4)多周期约束的条件
多周期约束应当保证数据延时在保持时间和建立时间之间,这样才能满足时序约束。
(5)具体问题处理
1️⃣同频偏置信号
2️⃣高频信号到低频信号(存在倍频关系)
3️⃣低频信号到高频信号(存在倍频关系)

四、伪路径的剪除
1️⃣cut off foodback from I/O pins
去除双向IO的伪路径(从输入寄存器到输出寄存器)
2️⃣cut clear and preset paths
切除异步复位和置位端路径
3️⃣cut off read during write signals paths
不分析ESB(嵌入式系统块)路径
4️⃣cut paths between unrelated clocks
非相关时钟会被减除,需要和系统时钟建立关系约束
5️⃣cut timing path
手动去除路径分析
五、保持时间的修正
(1)使用多周期约束(2)减小偏斜skew(3)增加数据延时
时序约束的目标就是在预设时钟周期下,完成所有路径的建立时间和保持时间的成立等式。
六、异步时钟域中的分析
在静态时序分析时需要减除异步时钟域,使用伪路径实现两个时钟域的各自静态时序分析。一般的跨时钟域的通行采用握手信号的形式,具体的内容可以参考另外一篇笔记FPGA中的时钟域问题。
七、quartus中的最小化时序分析
quartsu中的时序分析报告默认在最差的情况下的时序分析,高温、低工艺、低压的状态下。也可以通过设置完成最小化时序分析(也就是最佳状况下的分析),注意会刷新原来的一般时序报告。约束方法就是在timing setting中设置好最小化的tsu、th和tpd,然后在tcl中输入 quartus_tan --min <project name>就可以实现最小化时序分析。
八、quartus中的TCL工具
quartus中支持TCL脚本语言,可以实现所有时序约束的操作。
九、TimeQuest简介
TimeQuest是quartus中的时序分析工具,能够分析不断发展的器件,相较于原先的tan,可以更好地完成静态时序分析。
基于quartus的高级时序分析的更多相关文章
- NetCore基于EasyNetQ的高级API使用RabbitMq
一.消息队列 消息队列作为分布式系统中的重要组件,常用的有MSMQ,RabbitMq,Kafa,ActiveMQ,RocketMQ.至于各种消息队列的优缺点比较,在这里就不做扩展了,网上资源很多. 更 ...
- 基于NEO4J的高级检索功能
基于NEO4J的高级检索 一.需求 二.创建索引 1.索引自动更新配置 2.执行带有索引自动更新配置的过程 三.查询索引 1.LUCENE查询语法 2.实现高级检索的核心:LUCENE QUERY语句 ...
- 基于JS的高级脚本语言 Sara
Sara-基于JS的高级脚本语言 欢迎使用Sara,Sara是一款基于JavaScript的全新的高级脚本语言! Sara不像我们工作室上一款编程语言作品-Ginit一样,他属于更高级的语言 Sara ...
- ExtJS4 自己定义基于配置的高级查询1
今天在编码过程中遇到一个问题,临时还没解决,先记录下来 上面是我做的高级查询面板..字段名和值都是读取配置文件,依据用户选择不同的字段名,自己主动载入不同的值列表,关系是与或 问题来了,我在字段名那个 ...
- Gartner:用自适应安全架构来应对高级定向攻击
发表于2015-06-24 摘要:当前的防护功能难以应对高级的定向攻击,由于企业系统所受到的是持续攻击,并持续缺乏防御力,面向“应急响应”的特别方式已不再是正确的思维模式,Garnter提出了用自 ...
- .NET Core微服务之基于EasyNetQ使用RabbitMQ消息队列
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.消息队列与RabbitMQ 1.1 消息队列 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...
- (2)socket的基础使用(基于TCP协议)
socket()模块函数用法 基于TCP协议的套接字程序 netstart -an | findstr 8080 #查看所有TCP和UDP协议的状态,用findstr进行过滤监听8080端口 服务端套 ...
- 中标麒麟高级服务器操作系统V6
平台: linux 类型: 虚拟机镜像 软件包: java-1.6.0 mysql-5.1.5 python-2.6 qt3-3.3.8b basic software linux neokylin ...
- 基于FPGA的DDS任意波形发生器设计
一.简介 DDS技术最初是作为频率合成技术提出的,由于其易于控制,相位连续,输出频率稳定度高,分辨率高, 频率转换速度快等优点,现在被广泛应用于任意波形发生器(AWG).基于DDS技术的任 ...
- 《unix环境高级编程》学习笔记【原创】
本文基于unix环境高级编程的学习的笔记,写的比较简如有不对,欢迎指点. 简单的描述下面函数的功能改变ctr+c信号原本的作用终止程序,在按下中断键的时候输出一句话. while循环主要读取用户的输入 ...
随机推荐
- 解锁Mysql中的JSON数据类型,怎一个爽字了得
引言 在实际业务开发中,随着业务的变化,数据的复杂性和多样性不断增加.传统的关系型数据库模型在这种情况下会显得受限,因为它们需要预先定义严格的数据模式,并且通常只能存储具有相同结构的数据.而面对非结构 ...
- 开源神器:自动生成随机 mock 数据测试对象
测试的痛点 大家好,我是老马. 每一位开发者大部分工作都是写代码.测试代码.修BUG. 我们有很多测试代码,总是花费大量的实践去构建一个对象. 于是就在想,能不能自动填充一个对象呢? 于是去 gith ...
- Ubuntu/Centos下OpenJ9 POI输出Excel的Bug
项目更换 JDK为 OpenJ9 后, 使用 POI 导出 Excel 遇到的问题 OpenJ9 版本信息 /opt/jdk/jdk-11.0.17+8/bin/java -version openj ...
- win32 - 使用CreateRemoteThread调用dll上的函数(建立管道)
Dll: // dllmain.cpp : Defines the entry point for the DLL application. #include "pch.h" #i ...
- 学习go语言编程之并发编程
并发基础 并发包含如下几种主流的实现模型: 多进程 多线程 基于回到的非阻塞/异步IO 协程 协程 与传统的系统级线程和进程相比,协程最大的优势在于"轻量级",可以轻松创建上百万个 ...
- Redis搭建Sentinel实验环境
环境准备 在物理机上启动3台虚拟机,IP地址分别为:192.168.56.4,192.168.56.5,192.168.56.6. 1.确保3台虚拟机的网络是相互联通的. 2.确保已经在3台虚拟机上安 ...
- click模块解析命令行参数
click模块解析命令行参数 安装 pip install click 操作步骤 1)使用@click.command()装饰一个函数,使之成为命令行接口 2)使用@click.option()等装饰 ...
- Ubuntu如何卸载mysql
首先在终端中查看MySQL的依赖项:dpkg --list|grep mysql 卸载: sudo apt-get remove mysql-common 卸载:sudo apt-get autore ...
- 01、NATS基础介绍
01.NATS基础介绍 项目中使用到了 NATS,但是之前并没有接触过,所以特意去学习了下,网上找了些资料,相对来说,都不是很全的介绍,所以特意记录下笔记,方便自己掌握,也希望可以帮助到其他小伙伴. ...
- 【Azure 事件中心】如何查看Event Hub的生产者或者是消费者端的IP地址呢?
问题描述 哪些客户端 IP 正在向/从Azure Event Hub发送/接收事件?如何来查看Event Hub的生产者端,消费者端的IP地址呢? 问题解答 如果需要查看Event Hub 服务端的日 ...