时序分析之Clock rise/fall edge边沿对选取解析

目录

一、前言

二、Clock edge的选取逻辑

2.1 设计工程

2.2 同频同相

2.3 同频不同相1

2.4 同频不同相2

2.5 倍频关系(Fclk1>Fclk2)

2.6 倍频关系(Fclk1)<>

2.7 倍频关系存在相移(Fclk1)<>

2.8 非倍频关系无相移(Fclk1)<>

2.9 非倍频关系有相移(Fclk1)<>

三、总结


一、前言

    在对时序报告进行详细查看时,将看到source clock path或destination clock path的第一段延时都是时钟的edge,并且同一段路径的setup和hold也是不一样的,如下图的红色框内容为setup的示例,关于它的值在时序分析中是如何确定的呢?下面将对此进行详细的解答。

 

二、Clock edge的选取逻辑

    首先,还是先看时序分析中setup、hold的定义。通常说setup、hold本质上是对同一个单元(时序单元,如触发器)上两个输入信号到达时间关系的检查,通常是检查数据信号/复位信号与时钟信号的到达先后关系。如果是数据信号与时钟信号,则是setup/hold分析,如果是复位信号与时钟信号,则是recovery/removal检查。

    在用户手册UG906中,setup是对两个时钟延时关系进行最悲观的边沿检查,对时钟的边沿检查默认是发起时钟和捕获时钟边沿间的最小的正delta。 hold检查是确保启动边沿发送数据后,不能够被前一个setup捕获沿捕获。在实际的路径分析中,除了时钟的时延,还需考虑数据传输的时延,就是在报告中看到的完整时序路径。

    上面解释了分析时如何选取发起时钟launch clock和捕获时钟capture clock的边沿,即setup为正的边沿差值,hold尽量为负的差值,下面将结合实际例子来说明,根据发起始终与捕获时钟的频率与相位关系进行分类。

2.1 设计工程

    工程很简单,就是最基础的时序路径,由两个触发器构成

module clk_edge(clk1,clk2,d,rst,out);
input clk1,clk2,d,rst;
output out;
reg ff1,out;

always@(posedge clk1,negedge rst)
    if(!rst)
        ff1<=0;
    else begin
        ff1<=d;
    end


always@(posedge clk2,negedge rst)
    if(!rst)
        out<=0;
    else begin
        out<=ff1;
    end
endmodule

2.2 同频同相

时钟约束,clk1,clk2都是周期为10ns,占空比50%,在0-5ns为高电平

create_clock -period 10.000 -name clk1 -waveform {0.000 5.000} -add [get_ports clk1]
create_clock -period 10.000 -name clk2 -waveform {0.000 5.000} -add [get_ports clk2]

因同频同相,每个周期内的相位关系都是确定的,在一个周期内分析即可,setup边沿的获取根据上述规则选取如下图,hold直接取0时刻的。

 

setup分析,requirement为10ns-0ns=10ns

 

hold分析,requirement为0ns-0ns=0ns

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA芯中的小蚂蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值