set delay.doc_第1页
set delay.doc_第2页
set delay.doc_第3页
set delay.doc_第4页
set delay.doc_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Set input delay1. input delay的由来分析电路连接: 图1 图2(1) Tclk1:时钟源osc产生的时钟到达ASSP时钟脚的延迟。由于这个延时的存在,到达assp的时钟与osc时钟源的相位关系如图2所示为: 图3 (2) Tco:时钟沿有效到数据输出有效的时间间隔,可得到到达assp时钟端口和assp的数据输出的相位关系: 图4(3) :pcb走线延迟(4) :osc时钟源到达fpga管脚的延时。经过上面四个延迟,到达fpga数据管教的数据和osc,FPGA.CLK的相位关系如图5:图5最终由图5可知,相对于FPGA.CLK,数据到达fpga的数据端的延迟时间为:Input Delay = Tclk1+ Tco+- (1)2. max_delay和min_delay首先说明一点,为了满足reg2的建立和保持时间,fpga的布局布线工具会调整图1中的和,也就是说为了满足reg2的时序要求,这两个时间是可以改变的。由于Tclk1,是由pcb走线决定,为固定值,只有Tco有max和min之分,当Tco取max值时得到max delay,当Tco取min值时,得到min delay。Max delay = Tclk1+ Tco(max)+- (2)Min delay = Tclk1+ Tco(min)+- (3)那么把max delay和min delay加到时序约束中有什么样的作用呢?max delay和min delay都是delay,描述的是数据到达fpga的数据脚延时了时钟沿到达fpga时钟脚多少时间。图6,如果在timequest中设置max delay越大,就告诉了布局布线器数据相对edge延时越大,布局布线器就认为延时大,为了满足setup time(综合器知道fpga自身的setup time),它调整数据和edge的相对相位变化幅度就越大(布局布线器就通过调整和),调整时钟延时就越大,保证了setup time,但减少了保持时间,所以设置delay时间不能太大。图6 min delay为了满足reg2数据的hold时间,让到达reg2的时钟延时时间有一个最小的延时。这样布局布线器就通过约束让比较小。Min delay不能太小,否则建立时间不能满足。max delay和min delay就是一对相互矛盾体。外部器件输入到FPGA的数据也必须满足建立保持时间要求,输入最大延时通俗的理解就是外部器件的数据到达FPGA端口的最晚时间,这个最晚时间可不能太晚,必须考虑FPGA内部锁存这个数据的建立时间Tsu。如果数据晚到时钟的锁存沿前的Tsu时间还没有到达,那么时钟就无法锁存这个数据了。那么就会出现时序违规了,所以,这个输入最大延时需要满足的第一个条件就是Tsu+输入最大延时时钟周期TCLK(如图8的第一个公式)。如图7:同理,这个数据要到达FPGA最快的时间称之为输入最小延时。这个最快时间也不能太快,试想想,如果在时钟的发射沿外部器件里的数据在非常短的时间内通过了外部器件的Tco和PCB走线,到达FPGA端口时,假设此时FPGA正处于上一个从外部器件传递来的数据的保持时间Th内,那么新到达的数据势必会破坏了前一个数据的保持时间,这也会造成时序违规。这么说来,这个输入最小延时也不能太小,也必须满足一定的条件,这个条件就是:Th输入最小延时(如图8的第二个公式)。 图8 总之把数据到达fpga的max delay和min delay加到时序约束中,fpga会约束和,尽量去满足reg2的建立和保持时间。3. timequestTimequest应用例子打开timequest/constraint/set input delay1. 例子1(1) timequest设置max delaymin delay生成的指令:set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address0set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address0set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address1set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address1set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address2set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address2set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address3set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address3set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address4set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address4set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address5set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address5set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address6set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address6set_input_delay -add_delay -max -clock get_clocks clk 3.000 get_ports i_address7set_input_delay -add_delay -min -clock get_clocks clk 1.000 get_ports i_address7Setuput波形图Hold波形图2. 例子2Set max delaySet min delay生成的语句:set_input_delay -add_delay -max -clock get_clocks clk 2.000 get_ports i_address0set_input_delay -add_delay -min -clock get_clocks clk 0.500 get_ports i_address0set_input_delay -add_delay -max -clock get_clocks clk 2.000 get_ports i_address1set_input_delay -add_delay -min -clock get_clocks clk 0.500 get_ports i_address1set_input_delay -add_delay -max -clock get_clocks clk 2.000 get_ports i_address2set_input_delay -add_delay -min -clock get_clocks clk 0.500 get_ports i_address2set_input_delay -add_delay -max -clock get_clocks clk 2.000 get_ports i_address3set_input_delay -add_delay -min -clock get_clocks clk 0.500 get_ports i_address3set_input_delay -add_delay -max -clock get_clocks clk 2.000 get_ports i_address4set_input_delay -add_delay -min -clock get_clocks clk 0.500 get_ports i_address4set_input_delay -add_delay -max -clock get_clocks clk 2.000 get_ports i_address5set_input_delay -add_delay -min -clock get_clocks clk 0.500 get_ports i_address5set_input_delay -add_delay -max -clock get_clocks clk 2.000 get_ports i_address6set_input_delay -add_delay -min -clock get_clocks clk 0.500 get_ports i_address6set_input_delay -add_delay -max -cloc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论