0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

同步时序电路原理图图解 同步时序路径约束要求

电子工程师 作者:工程师李察 2018-10-06 09:00 次阅读

基本的同步时序路径约束

先读文章:《时序逻辑电路的建立,保持时间裕量分析》

我们设计的同步时序电路示意图如下。

同步时序电路原理图图解 同步时序路径约束要求

从上面的示意图可知,一个同步时序电路的时序路径无非就是四种:

(1)从输入端口到内部寄存器(从D_IN经过组合逻辑1,到第一个寄存器数据端口D)。

(2)从内部寄存器到内部寄存器(从第一个寄存器的Q端,经过组合逻辑2,到第二个寄存器的D端)。

(3)从内部寄存器到输出端口( 从第二个寄存器的Q端,经过组合逻辑3,到输出端口 D_O端)。

(4)从输入端口到输出端口(从D_IN经过组合逻辑4到达输出端口D_O)。

先看路径(2),从内部寄存器到内部寄存器。如文章《时序逻辑电路的建立,保持时间裕量分析》中的详细描述,要满足如下建立保持时间要求。

建立时间裕量:

tsetup_slack=tcycle-(tcq+tlogic) -tsetup+tclk_delay-tjitter>0

保持时间裕量:

thold_slack=tcq+tlogic-thold-tclk_delay-tjitter>0

对于EDA来说,tsetup(寄存器建立时间要求),tcq(寄存器输出延时),thold(寄存器保持时间要求)它都是知道的。在忽略tjitter(时钟抖动)的情况下,我们需要告诉EDA我们的时钟周期,tcycle。如此EDA工具就会根据我们的给出的tcycle,去优化寄存器到寄存器之间的组合逻辑2的延时(tlogic)和tclk_delay,去满足建立保持时间裕量要求。EDA也会根据我们给出的tcycle,去计算建立保持时间裕量。

因此此时我们只需要对时钟进行约束,约束示例语句如下(在端口clk上创建的时钟,周期为10ns)。

create_clock -period 10 [get_ports clk]

对于路径(1),从输入端口到内部寄存器(从D_IN经过组合逻辑1,到达第一个寄存器的数据端口D),我们需要把上一级的电路示意图也画出来。大家就明白了。如下图所示,上一级的电路模型也可以等效为一个寄存器再通过一个组合逻辑电路。因此时序约束其实也就是变成了,从外部寄存器到内部寄存器之间的时序约束。

同步时序电路原理图图解 同步时序路径约束要求

从图中可以看到tin_delay(既数据到输入端口的延时)其实等于上一级电路寄存器的输出延时(tcq)加上一级组合逻辑的延时。

此时我们需要满足的建立保持时间要求如下(tlogic1为组合逻辑1的延时)。

建立时间裕量

tsetup_slack=tcycle-tin_delay-tlogic1-tsetup+tclk_delay-tjitter>0

保持时间裕量

thold_slack=tin_delay+tlogic1-thold-tclk_delay-tjitter>0

同样在忽略tjitter的情况下,我们只需要告诉EDA工具tcycle,tin_delay,如此EDA就会根据我们的条件去约束组合逻辑1的延时以及tclk_delay,从而使得电路满足建立保持时间要求。

设置tcycle的方式,上面已经说过。设置输入延时(tin_delay)的约束命令示例如下(-clock用于指定时钟域,2表示设置输入延时为2ns):

set_input_delay -clock clk 2 [get_ports D_IN]

对于输入端口的完整约束示例如下:

create_clock -name clk -period 10 [get_ports clk]

set_input_delay -clock clk 2 [get_ports D_IN]

当然对于输入延时的定义也可以用 -max -min去分别定义一个最大值和最小值。在分析建立时间裕量时,EDA工具会用最大值去分析;在分析保持时间裕量时,EDA工具会用最小值去分析。定义示例如下:

create_clock -name clk -period 10 [get_ports clk]

set_input_delay -clock clk -max 4 [get_ports D_IN]

set_input_delay -clock clk -min 1 [get_ports D_IN]

对于路径(3),从内部寄存器到输出端口(从第二个寄存器的Q端经过组合逻辑3到输出端口D_O),同样我们把它的下一级电路示意图也画出来。其下一级电路也是通过组合逻辑送到寄存器这种结构。问题也就可以等效为寄存器到寄存器之间的时序约束。

同步时序电路原理图图解 同步时序路径约束要求

同样在忽略时钟抖动的情况下,我们需要告诉EDA工具数据从输出端口到下一级电路寄存器的延时tout_delay和tcycle。此时EDA工具就会根据如下要求去优化组合逻辑3的延时tlogic3以及tclk_delay,以及计算静态时序裕量。

建立时间裕量

tsetup_slack=tcycle-tout_delay-tlogic3-tsetup+tclk_delay-tjitter>0

保持时间裕量

thold_slack=tout_delay+tlogic3-thold-tclk_delay-tjitter>0

约束输出延时(tout_delay)的示例如下(-clock 指定时钟域)。

create_clock -name clk -period 10 [get_ports clk]

set_output_delay -clock clk 6 [get_ports D_O]

同样,输出延时也可以用 -max -min指定一个最大值和一个最小值。

create_clock -name clk -period 10 [get_ports clk]

set_output_delay -clock clk -max 6 [get_ports D_O]

set_output_delay -clock clk -min 2 [get_ports D_O]

对于路径(4)(从输入端口经过组合逻辑4再到输出端口),这时候我们必须联合上下两级电路来考虑。我们要先明确从上一级电路获取数据的输入延时tin_delay,以及其送到下一级电路的tout_delay。如此EDA工具才知道如何去做组合逻辑4的时序优化与做静态时序计算。

同步时序电路原理图图解 同步时序路径约束要求

此时需要满足的时序要求如下:

建立时间裕量

tsetup_slack=tcycle-tin_delay-tout_delay-tlogic4-tsetup+tclk_delay-tjitter

保持时间裕量

thold_slack=tin_delay+tout_delay+tlogic4-thold-tclk_delay-tjitter

在忽略时钟抖动的情况下,我们需要约束输入延时,输出延时。示例约束语句如下。

create_clock -name clk -period 10 [get_ports clk]

set_input_delay -clock clk 4 [get_ports D_IN]

set_output_delay -clock clk 1 [get_ports D_O]

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时序逻辑电路

    关注

    2

    文章

    78

    浏览量

    16402
  • 同步时序
    +关注

    关注

    0

    文章

    12

    浏览量

    7852

原文标题:基本的同步时序路径约束

文章出处:【微信号:LF-FPGA,微信公众号:小鱼FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA案例解析:针对源同步时序约束

    约束流程 说到FPGA时序约束的流程,不同的公司可能有些不一样。反正条条大路通罗马,找到一种适合自己的就行了。从系统上来看,同步时序
    的头像 发表于 11-20 14:44 7009次阅读
    FPGA案例解析:针对源<b class='flag-5'>同步</b>的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>

    同步时序电路需要考虑的三个重要的时序参数

    对于绝大部分的电路来说输出不仅取决于当前的输入值,也取决于原先的输入值,也就是说电路具有记忆功能,这属于同步时序电路
    的头像 发表于 12-07 15:00 6457次阅读
    <b class='flag-5'>同步</b><b class='flag-5'>时序电路</b>需要考虑的三个重要的<b class='flag-5'>时序</b>参数

    同步电路设计中静态时序分析的时序约束时序路径

    同步电路设计中,时序是一个主要的考虑因素,它影响了电路的性能和功能。为了验证电路是否能在最坏情况下满足
    发表于 06-28 09:35 562次阅读
    <b class='flag-5'>同步</b><b class='flag-5'>电路</b>设计中静态<b class='flag-5'>时序</b>分析的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>和<b class='flag-5'>时序</b><b class='flag-5'>路径</b>

    FPGA时序约束时序路径时序模型

    时序路径作为时序约束时序分析的物理连接关系,可分为片间路径和片内
    发表于 08-14 17:50 512次阅读
    FPGA<b class='flag-5'>时序</b><b class='flag-5'>约束</b>之<b class='flag-5'>时序</b><b class='flag-5'>路径</b>和<b class='flag-5'>时序</b>模型

    设计一个同步时序电路

    设计一个同步时序电路:只有在连续三个或者三个以上时针作用期间两个输入信号相同时,其输出为1,其余情况下输出为0。
    发表于 03-22 10:44

    时序电路的分析与设计方法

    章的内容共分为两节,它们是:§6、1:同步时序电路的分析方法§6、2:同步时序电路的设计 6、1同步时序
    发表于 08-23 10:28

    同步时序逻辑电路

    同步时序逻辑电路:本章系统的讲授同步时序逻辑电路的工作原理、分析方法和设计方法。从
    发表于 09-01 09:06 0次下载

    基于粒子群算法的同步时序电路初始化

    摘要:针对同步时序电路的初始化问题,提出了一种新的实现方法。当时序电路中有未确定状态的触发器时,就不能顺利完成该电路的测试生成,因此初始化是时序电路
    发表于 05-13 09:36 6次下载

    同步时序电路

    同步时序电路 4.2.1 同步时序电路的结构和代数法描述
    发表于 01-12 13:31 4791次阅读
    <b class='flag-5'>同步</b><b class='flag-5'>时序电路</b>

    计数器及时序电路

    1、了解时序电路的经典设计方法(D触发器、JK触发器和一般逻辑门组成的时序逻辑电路)。 2、了解同步计数器,异步计数器的使用方法。 3、了解
    发表于 07-10 14:37 15次下载

    典型时序电路与门控时钟在时序电路中的应用设计

    在传统设计中,所有计算机运算(算法逻辑和存储进程) 都参考时钟同步执行,时钟增加了设计中的时序电路数量。在这个电池供电设备大行其道的移动时代,为了节省每一毫瓦(mW) 的功耗,厂商间展开了残酷的竞争
    发表于 10-25 15:41 25次下载
    典型<b class='flag-5'>时序电路</b>与门控时钟在<b class='flag-5'>时序电路</b>中的应用设计

    同步时序电路设计

    关键词:时序电路 , 同步 同步时序电路设计 1.建立原始状态图. 建立原始状态图的方法是: 确定输入、输出和系统的状态函数(用字母表示). 根据设计
    发表于 10-31 18:14 1151次阅读

    什么是同步时序电路和异步时序电路同步和异步电路的区别?

    同步和异步时序电路都是使用反馈来产生下一代输出的时序电路。根据这种反馈的类型,可以区分这两种电路时序电路的输出取决于当前和过去的输入。
    的头像 发表于 03-25 17:29 1.9w次阅读
    什么是<b class='flag-5'>同步</b><b class='flag-5'>时序电路</b>和异步<b class='flag-5'>时序电路</b>,<b class='flag-5'>同步</b>和异步<b class='flag-5'>电路</b>的区别?

    时序电路包括两种类型 时序电路必然存在状态循环对不对

    时序电路是由触发器等时序元件组成的数字电路,用于处理时序信号,实现时序逻辑功能。根据时序元件的类
    的头像 发表于 02-06 11:22 410次阅读

    时序电路的分类 时序电路的基本单元电路有哪些

    时序电路可以分为同步时序电路和异步时序电路。接下来,我们将详细讨论时序电路的分类以及其基本单元电路
    的头像 发表于 02-06 11:25 657次阅读