基于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循环主要读取用户的输入 ...
随机推荐
- 【framework】surfaceflinger启动流程
1 前言 surfaceflinger 的作用是合成来自 WMS 的 Surface 数据,并发送到显示设备. SurfaceFlinger 服务不同于 AMS.WMS.IMP.PMS.DMS ...
- mysqlGTID主从同步出现1236错误问题
从主库xtrabackup备份,配置好gtid复制,从主库的从库复制.一直报错误 Last_IO_Error: Got fatal error 1236 from master when readin ...
- vmware之NAT模式配置
题外话之前的题外话,本文迁移自别的社区,三年前大学实习时写下本文,过了几年再回过头来看,虽然讲得浅显,作为入门笔记也勉强合格. ---------------------------------- ...
- Mac技巧之苹果电脑上将一个软件进程的 CPU 占用率限制在指定范围内:cputhrottle
苹果电脑 Mac OS X 系统上,我们可以用 cputhrottle 这个免费工具,配合活动监视器和终端,把一个软件进程的 CPU 占用率限制在指定值(比如 20%)以内,以防止应为它 " ...
- 【Android 逆向】【攻防世界】黑客精神
1. apk 安装到手机,提示输入注册码 2. jadx打开apk MainActivity.java @Override // android.app.Activity public void on ...
- RHEL8重置root用户密码步骤
要先确定是否为RHEL 8系统. [root@zhangsan ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Oo ...
- vscode配置远程开发环境
下载vscode 下载好了后,先安装两个插件,商店里面搜索"Chinese",中文语言包, "python"安装包,安装好后重启vscode. 本地的pytho ...
- 深入理解String
深入理解String String是Java中的一个类,是一个引用类型,用于表示字符串.它是不可变的(immutable),即一旦创建,其值就不能被修改.任何对String对象的修改操作都会创建一个新 ...
- 【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性
问题描述 App Service For Linux 中安装paping的操作步骤 解决步骤 1) 登录App Service的Kudu站点,点击Bash 2)使用命令下载paping压缩文件:#wg ...
- 分布式事务框架seata入门
一.简介 在近几年流行的微服务架构中,由于对服务和数据库进行了拆分,原来的一个单进程本地事务变成多个进程的本地事务,这时要保证数据的一致性,就需要用到分布式事务了.分布式事务的解决方案有很多,其中国内 ...