1. offset约束的写法
offset 约束定义了外部时钟pad和与之相关的输入、输出pad之间的相对关系。这是一个基础的时序约束。offset定义的是外部之间的关系,不能用在内部信号上。
offset约束写起来还是比较简单的,如
offset = {in|out} offset_time [units] {before|after} clk_name [timegrp group_name];
offset_time: 捕获时钟沿和数据起始时间之差,默认单位为ns,可以定义为ns、ps等
before|after:和本意类似
clk_name: 输入clock pad net 的层次化全称
offset_time 写多少取决于数据之间所需要的相对关系,另外,弄懂xst是如何分析时序关系也是十分重要的。
2. offset in 分析
下面的式子是ug612中指出的时序要求需要满足的关系,看着可能不是太明白,但是结合例子分析就容易理解了。下面的式子给出的要求是toffset_in_before - (tdata + tsetup - tclock) > 0 ,实际上就对应着slack 大于0 。 具体表述如下(分别为建立时间和保持时间要求)
tdata + tsetup - tclock <= toffset_in_before
where
tsetup = intrinsic flip flop setup time
tclock = total clock path delay to the flip flop
tdata = total data path delay from the flip flop
toffset_in_before = overall setup requirement
tclock - tdata + thold 0 ;分析报告中的requirement 实际上就是toffset_in_before,data path包括了tdata 和 tsetup,tclock实际上就是clock arrival 和clock path delay。这个式子是没有考虑到clock uncertainty 的。
在结束这一节之前,还要提及一个很奇怪的,不知道为何要存在的概念。之前没有特别说明,对于offset in约束来说,写法大抵是
offset = in 3ns before clock;
采用before是很自然的,因为我们一直在分析建立时间,建立时间就是恰恰是采样沿之前。offset in还可以这样写,即(不明白为什么要有这个样子的写法)
offset = in 2 ns after clock_pad
此时对应的需要满足的条件是
tdata + tsetup - tclock <= tperiod - toffset_in_after
where
tsetup = intrinsic flip flop setup time
tclock = total clock path delay to the flip flop
tdata = total data path delay from the flip flop
tperiod = single cycle period requirement
toffset_in_after = overall setup requirement
4. offset out 分析
offset out 约束是fpga到下游的器件的时钟、数据之间的相对关系,具体可以用下图来表示。具体约束要求,下游器件接收到的数据会在时钟沿之后多久之内到达。那么,根据这一幅图可以得出clock to out = clock_delay + clock_to_out + data_delay + clock_arrival。这是因为fpga内部的触发器的时钟延迟了clock path,同时由于触发器的触发时间,fpga触发器输出就延时了clock_delay+clock_to_out时间,同时数据还有延迟。另,图中给出的是一种情况,这种情况下clock_arrival = 0,最后的结果还需要加上clock_arrival.
根据这一相对关系,可以得出fpga时序需要满足的关系
tq + tdata2out + tclock <= toffset_out_after
where
tq = intrinsic flip flop clock to out
tclock = total clock path delay to the flip flop
tdata2out = total data path delay from the flip flop
toffset_out_after = overall clock to out requirement
具体的分析和offset in的类似,这里不再重复,同样给出几个例子。
例子分析
simple example
slack: -0.865ns (requirement - (clock arrival + clock path + data path + uncertainty))
source: outd_7 (ff)
destination: outd (pad)
source clock: clock3_std_bufg rising at 0.000ns
requirement: 3.000ns
data path delay: 3.405ns (levels of logic = 1)
clock path delay: 0.280ns (levels of logic = 3)
clock uncertainty: 0.180ns
ABB工业机器人应用常见故障九问九答
欧司朗宣布将把影院灯转移到柏林生产
基于DSP的OFDM系统设计
盘点2018年中国大陆AI芯片“四小龙”
关于皮特级超低噪声超小型TMR磁传感器的介绍和应用
OFFSET约束的写法(OFFSET IN和OFFSET OUT)
在后4G时代,联发科技究竟有何动作?
美国国家半导体推出LMP900xx传感器AFE集成电路(IC)
以消费者为中心的央行数字货币还需要多长的时间
便携式储能设备与户用储能是同一物种?
中国通信标准化协会总结2018年CCSA标准化工作,研究部署了2019年重点任务
ASML如何能干掉两个行业巨头,进而成为垄断EUV领域的光刻巨人
时恒电子功率型NTC热敏电阻的详细介绍
中学男生发明的智能垃圾桶你中意吗
VAIO脱离索尼后还算高端笔记本品牌吗?
NFC支付和二维码支付你一般会选择哪一个
nubiaZ9外观评测 既是一件艺术品又是一部性能机
华米AMAZFIT手表评测 性价比非常之高
资深工程师对于无线充电的几点认知
BJ-EPM240学习板之分频计数实验