logo资料库

FPGA中IO时序约束分析.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
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
分享到:
收藏