好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

约束设置笔记.docx

5页
  • 卖家[上传人]:pu****.1
  • 文档编号:499126991
  • 上传时间:2023-01-09
  • 文档格式:DOCX
  • 文档大小:17.07KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Tco探秘(原创)getmoon@希望大家喜欢,如果有什么不正确之处,请指出,必改1. 何为Tco在FPGA中,Tco有两种:(1) 触发器Tco(2) 管脚输出Tco触发器Tco由FPGA的器件速度等级,工艺决定一般在几百ps左右管脚输出Tco是指从输出触 发器信号从管脚输出的延迟本文指讨论管脚Tco2. Tco的作用在FPGA和外部芯片由同步通信时,Tco是保证系统能够工作与设定频率的重要因素假设当前A芯 片输出信号到B芯片为了能够使A芯片的数据达到B芯片,并且满足B芯片的setup/hold时间要求必 须保证,A芯片的Tco + B芯片的Tsu < T3. Tco的组成Tco的延迟有三部分组成:■ 输出触发器的触发器Tco■ 输出触发器输出管脚到IOE的走线延迟■ IOE内部延迟在这3个延迟中,触发器内部Tco非常小,只有几百个ps,相对于其他两个延迟,可以忽略不计4. Tco的优化为了优化Tco , quartus提供了一个优化选项,就是“ Fast Output Register "意思是使用IOE中的 输出寄存器直接用于逻辑寄存器这样可以减少输出寄存器到pad的走线距离,达到优化Tc 0的目的。

      另外,quartus的Tco的计算方法和前面有所不同,quartus的Tco的计算如下所示:■ 输入时钟管脚和输出触发器时钟之间的skew■ 触发器内部Tco■ 触发器-> IOE -> pad延迟可以看出,3小节提到的计算方法是以输出触发器的时钟为参考的延迟而quartus计算的方法是以 时钟输入管脚为参考Quartus的分析如下所示:Info: Slack time is 15 ps for clock "Clk[0]" between source register "out[3]~reg0" and destination pin "out[3]”Info: + tco requirement for source register and destination pin is 5.000 nsInfo: - tco from clock to output pin is 4.985 nsInfo: + Longest clock path from clock "Clk[0]" to source register is 2.401 nsInfo: 1: + IC(0.000 ns) + CELL(1.469 ns) = 1.469 ns; Loc. = PIN_29; Fanout = 4; CLK Node = 'Clk[0]'Info: 2: + IC(0.723 ns) + CELL(0.209 ns) = 2.401 ns; Loc. = IOC_X0_Y1_N0; Fanout = 1; REG Node = 'out[3]~reg0'Info: Total cell delay = 1.678 ns ( 69.89 % )Info: Total interconnect delay = 0.723 ns ( 30.11 % )Info: + Micro clock to output delay of source is 0.664 nsInfo: + Longest register to pin delay is 1.920 nsInfo: 1: + IC(0.000 ns) + CELL(0.000 ns) = 0.000 ns; Loc. = IOC_X0_Y1_N0; Fanout = 1; REGNode = 'out[3]~reg0'Info: 2: + IC(0.000 ns) + CELL(1.920 ns) = 1.920 ns; Loc. = PIN_59; Fanout = 0; PIN Node = 'out[3]'Info: Total cell delay = 1.920 ns ( 100.00 % )5. Tco使用分析为了分析Tco写了如下一个例子来进行分析。

      module cnt1(Clk,Reset_,in , out);input [0:0] Clk;input [0:0] Reset_;input [3:0] in;output [3:0] out;reg [3:0] out;always @(posedge Clk)beginif (!Reset_)out<=0;elseout<=in;endendmodule该例子非常简单,仅仅是将输入数据打一拍输出Stepl:选用器件EP1C6Q240C8 . Fmax = 80M,没有使用任何约束和优化选项我们获得的结果Tco是:Slack Required tcoActual tco From To From ClockN/ANone 6.838 nsout[0]~reg0out[0]Clk[0]N/ANone 6.735 nsout[3]~reg0out[3]Clk[0]N/ANone 6.734 nsout[2]~reg0out[2]Clk[0]N/ANone 6.396 nsout[1]~reg0out[1]Clk[0]Step2:选用器件EP1C6Q240C6 . Fmax = 80M.没有使用任何约束和优化选项。

      我们获得的结果Tco是:Slack Required tcoActual tco From To From ClockN/ANone 5.254 nsout[0]~reg0out[0]Clk[0]N/ANone 5.177 nsout[3]~reg0out[3]Clk[0]N/ANone 5.175 nsout[2]~reg0out[2]Clk[0]N/ANone 4.916 nsout[1]~reg0out[1]Clk[0]小结:通过对比stepl和step2可以看出,选用的器件不同,Tco有着较大的差别Step3:选用器件EP1C6Q240C6 . Fmax = 80M. Tco约束5ns .没有优化选项我们获得的结果Tco是:SlackRequired tco Actual tco From To From ClockN/A5ns4.985 nsout[0]~reg0out[0]Clk[0]N/A5ns4.985 nsout[3]~reg0out[3]Clk[0]N/A5ns4.985 nsout[2]~reg0out[2]Clk[0]N/A5ns4.985 nsout[1]~reg0out[1]Clk[0]Tco小了,但导致tsu大了,而且th由-2.686 ns变为一3.902,三者关系是什么呢?Step4:选用器件 EP1C6Q240C6 . Fmax = 80M. Tco 约束 5ns,使能 “ Fast Output Register".我们获得的结果Tco是:Slack Required tcoActual tco From To From ClockN/ANone 4.985 nsout[0]~reg0out[0]Clk[0]N/ANone 4.985 nsout[3]~reg0out[3]Clk[0]N/ANone 4.985 nsout[2]~reg0out[2]Clk[0]N/ANone 4.985 nsout[1]~reg0out[1]Clk[0]Step4:选用器件 EP1C6Q240C6 . Fmax = 80M,没有约束,使能 “ Fast Output Register .我们获得的结果Tco是:SlackRequired tcoActual tco From To From ClockN/A5ns4.985 nsout[0]~reg0out[0]Clk[0]N/A5ns4.985 nsout[3]~reg0out[3]Clk[0]N/A5ns4.985 nsout[2]~reg0out[2]Clk[0]N/A5ns4.985 nsout[1]~reg0out[1]Clk[0]小结:从step3,4,5和step1,2看出,加上约束或者使能“ Fast Output Register” .使得Tco得到了很大的改 善。

      6.结论本文通过分析Tco的作用,组成,并且通过实际例子对比,获得使用约束,或者“ Fast Output Register” 能较好的改善Tco的方法.getmoon@提高同步设计速率的方法:1, 优化设计2, 选用更高速器件3, 约束设置4, 编译时增加优化选项,如Fast Output RegisterQuartus约束设置方法:1, clk,tsu,th,tpd, tco 等可以在 Assignment -> settings->timing analysis settings ->classic timinganalysis settings另外,多时钟设计时,时钟之间的关系也在这里设置Individual Clocks2, 其它针对管脚的或路径的都在Assignment ->Assignment Editor注意,在FPGA中,Tco有两种:1,触发器Tco2,管脚输出Tco其它,tsu,th,tco应该类似,所以,我们设置的应该都是针对管脚而非触发器的tsu,th,tco 脚本怎么编写呢,在哪里运行呢?IOE: an I/O element (also known as an I/O cell) fmax : The Maximum Frequency (fmax)2.管脚上的Tsu/Tco它是保证系统Famx重要的Timing元素.比如:两个芯片之间工作在100MH乙因为100M的周期为10ns,(现忽略PCB走线的延迟),如果某信号对FPGA来说是输入, 那么前级芯片的Tco加上FPGA的Tsu就不能够超过10ns.如果某信号对于FPGA来说是输出,那么 FPGA的Tco加上后级芯片的Tsu也不能够超过10ns.只有这样,才能够保证片间通信正常。

      因此对 FPGA的管脚进行适当的Tco/Tsu的时序约束,是至关重要的Timing设计技巧.管脚上的Tsu/Tco分为以下三个部分.1) IOE走线的延迟.这个延迟在管脚的Tsu/Tco延迟中占有相当的比例,Altera的器件为了降低Tsu/Tco在IOE上的延迟,专门在IOE中设置了两种类型的触发器,即:Fast Input Register(FPGA的管 脚为输入时,优化Tsu),Fast Output Register(FPGA的管脚为输出时,用于优化Tco)2) 内部逻辑走线的延迟在Altera的FPGA中,由若干个基本资源LE构成一个LAB,比如:Stratix Gx是10个LE组成一个LAB. LAB横向和纵向排列形成阵列.在FPGA中,以LAB为基本单元,根据走线 长度的不同,分为C4 (表示横跨4个LAB的走线资源),。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.