FPGA知识汇集-FPGA系统时序理论

news2024/9/27 19:24:47

 时序约束条件

下面来具体讨论一下系统时序需要满足的一些基本条件。我们仍然以下图的结构为例,并可以据此画出相应的时序分析示意图。

在上面的时序图中,存在两个时序环,我们称实线的环为建立时间环,而虚线的环我们称之为保持时间环。可以看到,这两个环都不是闭合的,缺口的大小就代表了时序裕量的多少,因此设计者总希望尽可能增大这个缺口。同时还要注意到,每个环上的箭头方向不是一致的,而是朝着正反两个方向,因为整个系统时序是以时钟上升沿为基准的,所以我们时序环的起点为系统时钟clk in的上升沿,而所有箭头最终指向接收端的控制时钟CLKC的边沿。

先来分析建立时间环:

缺口的左边的半个时序环代表了从第一个系统时钟上升沿开始,直到数据传输至接收端的总的延时,我们计为数据延时,以Tdata_tot表示:

        Tdata_tot=Tco_clkb+Tflt_clkb +Tco_data +Tflt_data

上式中:Tco_clkb是系统时钟信号CLKB在时钟驱动器的内部延迟;Tflt_ clkb 是CLKB从时钟驱动器输出后到达发送端(CPU)触发器的飞行时间;Tco_data是数据在发送端的内部延迟;Tflt_data是数据从发送端输出到接收端的飞行时间。

从CLKC时钟边沿的右边半个时序环代表了系统时钟到达接收端的总的沿时,我们计为时钟延时,以Tclk_tot表示:

Tclk_tot =Tcycle +Tco_clka +Tflt_clka – Tjitter

其中,Tcycle是时钟信号周期;Tco_clka 是系统时钟信号CLKA(第二个上升沿)在时钟驱动器的内部延迟;Tflt_clka是时钟信号从时钟驱动器输出到达接收端触发器的飞行时间;Tjitter是时钟的抖动误差。

    因此我们可以根据建立时间裕量的定义,得到:

    Tsetup_margin = Tclk_tot – Tdata tot – Tsetup

    将前面的相应等式带入可得:

    Tsetup_magrin = Tcycle + Tco_clka + Tflt_clka – Tjitter – Tco_clkb – Tflt_clkb – Tco_data – Tflt_data – Tsetup

    我们定义时钟驱动器(PLL)的两个时钟输出之间的偏移为Tclock_Skew ,两根CLOCK走线之间的时钟偏移为TPCB_Skew ,即:

    Tclock_Skew = Tco_clkb - Tco_clka;

    TPCB_Skew = Tflt_clkb - Tflt_clka

    这样就可以得到建立时间裕量的标准计算公式:

    Tsetup_magrin =Tcycle – TPCB_skew –Tclock_skew –Tjitter – Tco_ data -Tflt_data-Tsetup  (1.6.1)

    再来看保持时间环:

    对照上图,我们可以同样的进行分析:

        Tdata_delay = Tco_clkb + Tflt_clkb + Tco_data + Tflt_data

       Tclock delay = Tco_clka + Tflt_clka

    于是可以得出保持时间裕量的计算公式:

    Thold margin = Tdata_delay – Tclock_dalay – Thold_time

    即: Thold margin = Tco_data + Tflt_data + Tclock_skew + Tpcb_skew – Thold   (1.6.2)

    可以看到,式1.6.2中不包含时钟抖动Jitter的参数。这是因为Jitter是指时钟周期间(Cycle to Cycle)的误差,而保持时间的计算和时钟周期无关。

    对于任何时钟控制系统,如果要能保证正常工作,就必须使建立时间余量和保持时间裕量都至少大于零,即Tsetup marin >0;Thold margin >0,将公式1.6.1和1.6.2分别带入就可以得到普通时钟系统的时序约束条件不等式:

    TPCB_skew +Tclock_skew +Tjitter + Tco_data + Tflt_data+Tsetup< Tcycle    (1.6.3)

    Tco_data + Tflt_data + Tclock_skew + Tpcb_skew > Thold     (1.6.4)

需要注意的是:

1. 数据在发送端的内部延时Tco_data可以从芯片的datasheet查到,这个值是一个范围,在式1.6.3中取最大值,在式1.6.4中取最小值。

2.数据在传输线上的飞行时间Tflt_data在实际计算中应该取最大/最小飞行时间参数,在式1.6.3中取最大飞行时间,在式1.6.4中取最小飞行时间。

3. 时钟的偏移TPCB_skew和Tclock_skew也是一个变化的不确定参数,一般为+/-N ps,同样,在建立时间约束条件1.6.3中取+Nps,而在保持时间约束条件1.6.4中取-Nps。

    从上面的分析可以看到,对于PCB设计工程师来说,保证足够稳定的系统时序最有效的途径就是尽量减小PCB skew和信号传输的飞行时间,而其它的参数都只和芯片本身的性能有关。实际中经常采取的措施就是严格控制时钟和数据的走线长度,调整合理的拓补结构,并尽可能减少信号完整性带来的影响。然而,即便我们已经考虑的很周全,普通时钟系统的本身的设计瓶颈始终是无法打破的,也就是建立时间的约束,我们在尽可能减少由PCB布线引起的信号延迟之外,器件本身的特性如Tco、Jitter、TSetup等等将成为最主要的制约因素,尽管我们可以通过提高工艺水平和电路设计技术来不断提高数字器件的性能,但得到的效果也仅仅是在一定范围之内提升了系统的主频,在频率超过300MHz的情况下,我们将不得不放弃使用这种普通时钟系统设计。

    那么应该怎么解决普通时钟系统的瓶颈呢?且听下回分解。

更多有趣的话题请看链接:

FPGA知识汇集-FPGA项目开发包含那些任务?

FPGA知识汇集--FPGA结构(1)

FPGA的应用

FPGA知识汇集-在命令行模式下使用Xilinx工具

FPGA知识汇集-ISE的这些有用的工具您知道吗?

FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?

FPGA知识汇集-值得收藏的FPGA代码命名规范?

FPGA 知识汇集--Linux下ISE的环境变量设置

FPGA知识汇集-值得收藏的Verilog代码风格1

FPGA知识汇集-值得收藏的Verilog代码风格2

FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结

FPGA知识汇集-Verilog和VHDL的混合使用

FPGA知识汇集-关于Xilinx 工具报告

FPGA知识汇集-例化与推译

硬件仿真加速器与原型验证平台

      FPGA知识汇集-ASIC向FPGA的移植

      FPGA知识汇集-时钟系统的移植

      FPGA知识汇集-FPGA的低功耗设计方法总结

      FPGA知识汇集-了解FPGA比特流结构

      FPGA知识汇集-串行 RapidIO: 高性能嵌入式互连技术

      FPGA知识汇集-FPGA时序基础理论

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

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

相关文章

Java死锁

一.死锁是什么&#xff1f; 死锁指两个或者两个以上的线程在执行过程中&#xff0c;去争夺同样一个共享资源&#xff0c;造成的相互等待的现象&#xff0c;如果没有外部干预&#xff0c;线程会一直阻塞&#xff0c;无法往下执行&#xff0c;这样一直处于相互等待资源的线程叫做…

极米Z6X Pro怎么样?极米Z6X Pro亮度如何?极米Z6X Pro值得入手吗?

投影仪不知怎么选&#xff1f;不妨看看极米Z6X Pro&#xff0c;半山黛青的全新配色下&#xff0c;是仅有5.3cm的轻薄机身&#xff0c;1.4kg的重量&#xff0c;一只手就可以轻松拿取。相比同价位的投影产品&#xff0c;极米Z6X Pro摆放方便又不占地&#xff0c;外观时尚精致&…

Go Map

Go Map map 是一种key-value的键值对存储结构&#xff0c;其中key不能重复&#xff0c;无序。底层是hmap结构&#xff0c;hmap中维护buckets(bmap结构)。结构定义 type hmap struct {count int // 元素个数B uint8 // buckets已扩容的次数&#xff0c;buckets长…

JVM-Java内存区域

1、运行时数据区域 运行时数据区域&#xff1a;程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。 非运行时数据区域&#xff1a;直接内存。 &#xff08;1&#xff09;程序计数器 字节码解释器通过改变程序计数器来依次读取指令&#xff0c;从而实现代码的流程控制。在多线…

谷歌2022年最受欢迎Chrome浏览器扩展程序:包含Tango,Compose AI等

根据截图排序从左到右依次介绍如下&#xff1a; RoPro&#xff1a;Roblox.com网站体验增加了许多有用且独特的功能&#xff1b; MyBib&#xff1a;自动创建 APA 样式、MLA 格式和哈佛引用样式引文&#xff1b; eJOY English&#xff1a;翻译自Netflix, Youtube, iFlix上的字…

Codeforces Round #841 (Div. 2) and Divide by Zero 2022(A-D)

Codeforces Round #841 (Div. 2) and Divide by Zero 2022&#xff08;A-D&#xff09; 题目链接限制AJoey Takes Moneystandard input/output1 s, 256 MBBKill Demodogsstandard input/output1 s, 256 MBCEven Subarraysstandard input/output2.5 s, 256 MBDValiant’s New M…

数字经济指标构建-各省、地级市匹配上市公司数据、城市数字化指数

一、中国城市数字经济指数2017-2022年&#xff08;数据代码报告&#xff09; 中国城市数字化指数全面覆盖城市数字化规划、建设、运营的各个方面&#xff0c;能够有效评估城市各个领域的数字化建设水平和运营效果。 全国城市数字经济发展热图 数据来源&#xff1a;中国城市数字…

语音转换之CycleGan-VC2:原理与实战

非平行语音转换CycleGAN 之前学习了传统统计学习里的经典的语音转换模型GMM。随着深度学习的发展&#xff0c;出现了更好的语音转换方法&#xff0c;今天学习较为经典的CycleGan。 平行语音转换一般流程 典型代表就是基于GMM的语音转换。平行数据就是说源语音和目标语音一一…

矢量图斑局部狭长判断和定位局部狭长部分(PostGIS、Java、C#实现)

矢量数据在数据采集过程中由于数据处理导致出现局部狭窄的面状部分&#xff0c;如下图 1. 定义和解决方法 狭长结构是指图斑几何形态上窄而长的部分,符号化后出现图形粘连压盖现象,导致难以在图面上清晰地表达出来。因此,依据地图表达比例尺因素需要对狭长结构进行融解处理。在…

helm部署frps和连接

文章目录一. helm部署frps1.1 下载1.2 部署1.2.1 不开启dashboard界面1.2.2 开启dashboard界面1.2.3 卸载1.3 查看1.4 IP Port 允许端口1.5 Web Ingress二. frpc客户端连接2.1 IP Port 连接2.2 Web 域名连接一. helm部署frps 1.1 下载 mkdir -p /root/i/helm && cd…

并查集专题1_图篇

1.并查集介绍 并查集支持查询和合并操作&#xff0c;只回答两个节点是不是在一个连通分量中&#xff0c;并不回答路径问题。 如果一个问题具有传递性&#xff0c;可以考虑用并查集。并查集最常见的一种设计思想是把在同一个连通分量中的节点组织成一个树形结构。 2.并查集的…

动作捕捉技术应用于地面移动机器人协同

《一千零一夜》故事集中收录的《阿拉丁神灯》深受读者们的喜爱&#xff0c;其中阿拉丁拥有一块神奇的魔毯&#xff0c;它具有运载功能&#xff0c;可以将物体轻松便捷的从一个地方转移到另一个地方。在现实生活中&#xff0c;可变形布作为一种轻量便携且具有良好适应性的载体&a…

redhat9中mysql常用命令(持续更新)

目录 1、查看当前用户 2、查看选择的数据库 3、创建数据库 4、创建数据表 5、插入数据 6、查看表所以字段的内容 7、查看数据库当前密码策略 8、查看密码插件 9、更改密码策略为LOW&#xff0c;改为LOW或0 10、 更改密码长度 11、设置大小写、数字和特殊字符均不要求 …

微服务系列专栏介绍

文章目录一 专栏介绍1.1 微服务行业背景不同行业IT系统更新频率IT系统存在的问题微服务架构在企业中应用情况1.2 什么是微服务1.3 微服务的特点1.4 微服务诞生背景1.5 微服务架构的优势二 专栏目标三 专栏涉及技术四 专栏架构1.微服务架构&#xff1a;2.Go语言3.go-micro架构4.…

入侵无线WiFi的主要方式及防护要点

从攻击形态上看&#xff0c;无线网络攻击主要可以分为三个大类&#xff1a;被动型攻击、主动型攻击以及针对网络组件的攻击&#xff1a; 被动攻击一般发生在攻击者处于无线网络范围内并可以监视无线通信内容时&#xff0c;最常见的被动攻击是数据包嗅探。由于被动攻击者只是监…

HTTPS 的通信加解密过程,证书为什么更安全?

经典面试题 HTTPS 的通信加解密过程&#xff0c;证书为什么更安全&#xff1f; 考察点 《计算机网络》相关知识 了解 HTTPS 协议加解密的过程 了解数字证书认证的过程 技术点 对称加密和非对称加密 HTTPS 协议的加解密过程 数字证书认证过程 对称加密和非对称加密 对称加…

Mysql 小Tips

Mysql 小Tips 目录Mysql 小Tips1.group_concat2.char_length3.locate4.replace5.now6.insert into ... select7.insert into ... ignore8.select ... for update9.on duplicate key update10.show create table11.create table ... select12.explain13.show processlist14.mysq…

企业电子招投标采购系统源码之首页设计

​ 功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外…

字符设备驱动(二)

1. IO模型 &#xff08;1&#xff09;阻塞式IO&#xff1a;不能操作就睡觉 &#xff08;2&#xff09;非阻塞式IO&#xff1a;不能操作就返回错误 &#xff08;3&#xff09;IO复用 &#xff08;4&#xff09;信号驱动式IO &#xff08;5&#xff09;异步IO 2.阻塞与…

c++算法基础必刷题目——按位贪心

文章目录按位贪心1、毒瘤xor2、兔子的区间密码3、起床困难综合症按位贪心 1、毒瘤xor NC18979 毒瘤xor 题目描述 小a有N个数a1, a2, …, aN&#xff0c;给出q个询问&#xff0c;每次询问给出区间[L, R]&#xff0c;现在请你找到一个数X&#xff0c;使得 1、0⩽X<231 2、∑…