FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
第第第第1章章章章 FPGA 中中中中 IO 口口口口时序分析时序分析时序分析时序分析
FPGA
FPGA
IO
IO
FPGA
FPGA
PCB
FPGA
IO
FPGA
2012.3.1
1.1 概述概述概述概述
1.2 FPGA 整体概念
整体概念
整体概念整体概念
http://www.cnblogs.com/linjie-swust/
作者:
屋檐下的龙卷风
博客地址:
日期:
在高速系统中
时序约束不止包括内部时钟约束,还应包括完整的
时序约束和
时序例外约束才能实现
板级的时序收敛。因此,
时序约束中
口时序约束也是
和外部器件通信正确。
一个重点。只有约束正确才能在高速情况下保证
需要作为
口时序约束分析是针对于电路板整个系统进行时序分析,所以
由于
的建立时间、保持时间以及传输延时。传统的建立时间、保
一个整体分析,其中包括
持时间以及传输延时都是针对寄存器形式的分析。但是针对整个系统
的建立时间保持
时间可以简化。
图
整体时序图
如图
内部寄存器的性能参数:
所示,为分解的
口到
内部寄存器输入端的延时;
(
)
为从
的
口到
为从
(
)
内部寄存器时钟端的延时;
的
为
(
)
内部寄存器的建立时间和保持时间;
为
(
)
内部寄存器传输时间;
为从
寄存器输出到
)
(
口输出的延时;
对于整个
系统分析,可以重新定义这些参数:
建立时间可以定义为:
建立时间:
(
;
)
(
)
;
保持时间:
(
)
数据传输时间:
;
模型变为如图
时序分析了。
成为一个系统后即可进行
由上分析当
所示。
FTco = Tclk + Tco + Tout
FTsu = Tdin + Tsu – Tclk
FTh = Th + Tclk
1
2
3
4
5
1.1 FPGA
Tus/Th
FPGA
IO
IO
Tco
FPGA
1
2
3
Tdin
Tclk
FPGA
FPGA
Tout
FPGA
FPGA
FPGA
FPGA
FPGA
FPGA
FPGA
IO
FPGA
1.2
1.1
FPGA
FPGA
FPGA
IO
1
FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
1.2 FPGA
IO
1.3
FPGA
FPGA
FPGA
输入最大最小延时
输入最大最小延时
1.3 输入最大最小延时
输入最大最小延时
系统参数
所示。对
外部器件发送数据到
小延时约束是为了让
路径延迟,使其能够保证系统时钟可靠的采到从外部芯片到
图
系统模型如图
的
口进行输入最大最
设计工具能够尽可能的优化从输入端口到第一级寄存器之间的
的信号。
FPGA
1.3 FPGA
1.4
Tco
FPGA
FPGA
FPGA
数据输入模型
图
输入端口的延时时间。其中包括时钟源到
输入延时即为从外部器件发出数据到
延时和到外部器件延时之差、经过外部器件的数据发送
板上的走线
延时。如图
接口时序。
所示,为外部器件和
,再加上
PCB
2
FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
1.4
FPGA
Tco
(max)
1.1
su
(min)
1.
=
+
T
+
T
−
T
su
T
+
T
co
(max)
+
T
+
T
clk
2
1
≤
T
clk
co
(max)
=
T(
)
≥
0
PCB
pcb
(max)
+
FT
FTsu
pcb
(max)
+
FT
1clk
(max)
Tpcb
1clk
(max)
)
−
T(
2clk
(min)
2clk
(min)
Tclk1
Altera
FPGA
FPGA
+
Tco
S
slack
etup
setup slack
lanuch edge
Delay
Board
Board
clock
+
skew
input delay max
input
delay
max
图
外部器件和
接口时序
最大输入延时
)为当从数据发送时钟沿(
最大输入延时(
)经过最大外部
),最大的器件数据输出延时(
),再加上最大的
器件时钟偏斜(
走线延时(
),
)的情况下还能保证时序满足的延时。这样才能保证
时钟偏移(
减去最小的
必须为正,如图
的建立时间,准确采集到本次数据值,即为
的所示,计算公
式如下式所示:
(公式
)
推出如下公式:
)
(公式
由
官方数据手册得知:
)
(公式
结合本系统参数公式为
)
(公式
最小输入延时
)经过最小外部器
最小输入延时(
)为当从数据发送时钟沿(
件时钟偏斜(
走线延时(
),
),最小器件数据输出延时(
),再加上最小
此时的时间总延时值一定要大于
的最大时钟延时和建立时间之和,这样才能不破坏
上一次数据的保持时间,即为
的所示,计算公式如下
必须为正,如图
式所示:
(公式5)
推出公式:
delay
max
input
input delay min
lanuch edge
oldH
slack
hold slack
FPGA
FPGA
1clk
(max)
Tclk1
pcb
(max)
2clk
(min)
T)
+
(
FTh
clk2(max)
Tpcb
1clk
(min)
co
(max)
−
T(
PCB
pcb
(min)
)
≥
0
=
T(
(
max)
3
4
co
(min)
=
T
)
−
+
T
+
T
+
T
−
T
Tco
2.
3
1.1
FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
T
1clk
(min)
co
(min)
pcb
(min)
clk2(max)
+
T
+
T
−
T
≥
FTh
6
7
1
8
4
(min)
(min)
(max)
8
(min)
(min)
−
(min)
(min)
PCB
skew
−
Tclk1
Tco
+
)
Tco
+
input
input
delay
max
Altera
delay
max
Tpcb
=
(Tclk2
−
clock
Board
Board
Delay
=
(公式
)
由
官方数据手册得知:
(公式
)
结合本系统参数公式为
(公式
)
由公式
和公式
得知,进行输入最大最小延时的计算,我们需要估算
个值:
) 外部器件输出数据通过
(
端口的最大值和最小值
,
板到达
延时经验值为
,
;
) 外部器件接收到时钟信号后输出数据延时的最大值和最小值
(
;
) 时钟源到达外部器件的最大、最小时钟偏斜
(
;
的最大、最小时钟偏斜
(
) 时钟源到达
;
所示:
,如图
即合成
和
提供的时候,
当外部器件时钟为
1mm = 39.37mil
600mil/ns
Tshew
FPGA
FPGA
FPGA
Tclk1
Tclk1
Tclk2
Tclk2
Tpcb
2
3
4
Tco
1.5
4
PCB
1.5 FPGA
IO
1.6
FPGA
FPGA
FPGA
输出最大最小延时
输出最大最小延时
1.4 输出最大最小延时
输出最大最小延时
图
输出时钟模型
输出数据给外部器件模型如图
口进行输出最大最小延
的
所示。对
设计工具能够尽可能的优化从第一级寄存器到输出端口之间的路径
时约束是为了让
的输出数据。
延迟,使其能够保证让外部器件能准确的采集到
FPGA
4
FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
1.6 FPGA
PCB
FPGA
FPGA
FPGA
输出延时即为从
延时和到外部器件延时之差、
如所示,为
图
输出延时模型
输出数据后到达外部器件的延时时间。其中包括时钟源到
板上的走线延时以及外部器件的数据建立和保持时间。
和外部器件接口时序图。
1.7 FPGA
1.
IO
9
(min)
(max)
PCB
+
Tsu
skew
Altera
FPGA
FPGA
delay
max
Output
clock
Board
Board
Delay
=
output delay max
输出延时
图
最大输出延时
官方数据手册得知:
由
(公式
)
数据发出后经过最大的
由公式得知,最大输出延时(
)为当从
和器件时钟偏斜,再加上外部器件的建立时间。约束最大输出延
延时、最小的
时,是为了约束
口输出,从而使外部器件的数据建立时间,即为
必须为正,
计算公式如下式所示:
(公式
)
Setup
slack
setup slack
0)T
≥
2clk
(min)
)
−
T(
1clk
(max)
+
FT
pcb
(max)
=
T(
clk
+
T
+
T
co
+
su
10
−
5
FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
IO
1
+
(max)
≥
0
+
T
=
−
T
su
IO
s
FT
co
(max)
+
T
1clk
(min)
+
T
clk2(max)
FT
co
(max)
+
PCB
co
(min)
pcb
(min)
−
(min)
=
T
11
13
12
≤
T
clk
+
FT
≤
T
clk
−
T(
h
−
T(
FTco
1.4.2
skew
pcb
(max)
T)
+
−
Th
1clk
(max)
clk
2
(min)
Altera
Hold
slack
FPGA
FPGA
FPGA
Output
Output
delay
max
hlod slack
delay
min
Delay
Board
clock
Board
output delay min
推导出如下公式:
(公式
)
再次推导,得到如下公式:
)
(公式
由此可见,约束输出最大延时,即为通知编译器
多少,根据
最大值为
的
这个值做出正确的综合结果。
输出最小延时
输出最小延时
输出最小延时
输出最小延时
由
官方数据手册得知:
(公式
)
由公式得知,最小输出延时(
数据发出后经过最小的
)为当从
延时、最大的
和器件时钟偏斜,再减去外部器件的建立时间。约束最小输出延
口输出
有个最小延时值,防止输出过快,破坏了外
时,是为了约束
口输出,从而使
为负值,不能正确的锁存到数据,最小
部器件上一个时钟的数据保持时间,导致
输出延时的推导计算公式如下式所示:
)
(
(公式14)
推导出如下公式:
(公式15)
再次推导,得出如下公式:
(公式17)
的
最小值为多少,根据
由公式得知,约束输出最大延时,即为通知编译器
这个值做出正确的综合结果。
个值:
由公式
和公式
得知,进行输出最大最小延时的计算,我们需要估算
板到达外部器件输入端口的最大值和最小值
输出数据通过
(
)
,
延时经验值为
,
;;
;
(
) 时钟源到达外部器件的最大、最小时钟偏斜
;
的最大、最小时钟偏斜
(
) 时钟源到达
(
) 外部器件的建立时间
和保持时间
;
所示:
,如图
即合成
当外部器件时钟为
提供的时候,
和
1mm = 39.37mil
FT (min)
co
600mil/ns
delay
min
Output
−
T)
h
Tshew
FPGA
FPGA
FPGA
FPGA
Tclk2
Tclk1
Tclk1
Tclk2
clk2(max)
1clk
(min)
2
3
4
Tpcb
FTco
pcb
(min)
≥
0
)
≥
0
PCB
Th
FT
co
(min)
+
T
PCB
+
1.8
4
−
T(
−
T
10
14
Tsu
6
FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
1.8 FPGA
FPGA
TFT
1.1
hcount_r
dat_act
IO
24Mhz
SDRAM
8ns
IO
IO
1.
IO
2.
SDRAM
120M
FPGA
41.666ns
vcount_r
10
640*480
TFT
1.5 使用范围
使用范围
使用范围使用范围
图
提供时钟模型
口时序约束主要使用在以下情况:
通过作者使用总结情况,
数据交换频率较高
由于
时序约束一般计算值都是在几纳秒,当
和外部数据交换频率较低,如
操作
液晶进行刷屏,数据传输频率仅仅
的
,一个数据时钟都有
,完全不用约束都能满足时序要求。但是当操作
运行到
时候,由于
数据,因此这种情况
一个数据变换周期才
,因此
口的少量延时都会影响到
口时序约束,并且分析正确,才能消除数据传输不稳定过
下需要对输入输出进行完整的
的情况。
代码已经比较优化
当数据交换频率较高,但是时序约束还是不满足时序要求的时候,我们都需要对代码进
所示,首先
行分析,好的时序都是设计出来的,不是约束出来的。如程序清单
的三色输出的端口就会有很大的延时,因
和
都为
位计数器,这样的代码
的胶合逻辑太多,输出路径太长导致。这种情况下应该不是首先做时序约束,应
为
该修改代码,尽量做到寄存器直接输出。只有当代码比较优化的情况,再做时序约束这样才
能得到较好的结果。
示例程序
程序清单
本文档主要是对
口时序约束进行相应的分析,并未做实际的使用分析,在
的
口时序约束进行详细的使用介绍。最后附上
后续文档中将会结合软件,以及实际案例对
一个
时序约束分析例子,如图
所示。
官方的
&& ((vcount_r >= vdat_begin) && (vcount_r < vdat_end));
((hcount_r >= hdat_begin) && (hcount_r < hdat_end))
(dat_act) ? {rgb16_dat[4:0], 3'b111} : 8'h00;
=
(dat_act) ? {rgb16_dat[15:11], 3'b111} : 8'h00;
assign tft_g =
(dat_act) ? {rgb16_dat[10:5], 3'b111} : 8'h00;
assign dat_act =
assign tft_b =
1.6 总结总结总结总结
Altera
IO
FPGA
IO
1.9
IO
7
1.1
assign tft_r
FPGA 中中中中 IO 口时序分析
口时序分析
口时序分析
口时序分析
1.9 Altera
官方例程
图
8