0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PCB上走线的延迟约束

PCB线路板打样 ? 来源:科学计算technomania ? 作者:猫叔 ? 2020-11-14 10:34 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:猫叔

延迟约束

对于延迟约束,相信很多同学是不怎么用的,主要可能就是不熟悉这个约束,也有的是嫌麻烦,因为有时还要计算PCB上的走线延迟导致的时间差。而且不加延迟约束,Vivado也只是在Timing Report中提示warning,并不会导致时序错误,这也会让很多同学误以为这个约束可有可无。

但其实这种想法是不对的,比如在很多ADC的设计中,输出的时钟的边沿刚好是数据的中心位置,而如果我们不加延迟约束,则Vivado会默认时钟和数据是对齐的。

对于输入管脚,首先判断捕获时钟是主时钟还是衍生时钟,如果是主时钟,直接用set_input_delay即可,如果是衍生时钟,要先创建虚拟时钟,然后再设置delay。对于输出管脚,判断有没有输出随路时钟,若有,则直接使用set_output_delay,若没有,则需要创建虚拟时钟。

在本工程中,输入输出数据管脚的捕获时钟如下表所示:

根据上表,我们创建的延迟约束如下,其中的具体数字在实际工程中要根据上下游器件的时序关系(在各个器件手册中可以找到)和PCB走线延迟来决定。未避免有些约束有歧义,我们把前面的所有约束也加进来。

# 主时钟约束
create_clock -period 25.000 -name clk2 [get_ports clk_in2]

# 衍生时钟约束
create_generated_clock -name clk_samp -source [get_pins clk_gen_i0/clk_core_i0/clk_tx] -divide_by 32 [get_pins clk_gen_i0/BUFHCE_clk_samp_i0/O]
create_generated_clock -name spi_clk -source [get_pins dac_spi_i0/out_ddr_flop_spi_clk_i0/ODDR_inst/C] -divide_by 1 -invert [get_ports spi_clk_pin]
create_generated_clock -name clk_tx -source [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1] [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT1]
create_generated_clock -name clk_rx -source [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKIN1] [get_pins clk_gen_i0/clk_core_i0/inst/mmcm_adv_inst/CLKOUT0]

# 设置异步时钟
set_clock_groups -asynchronous -group [get_clocks clk_samp] -group [get_clocks clk2]

# 延迟约束
create_clock -period 6.000 -name virtual_clock
set_input_delay -clock [get_clocks -of_objects [get_ports clk_pin_p]] 0.000 [get_ports rxd_pin]
set_input_delay -clock [get_clocks -of_objects [get_ports clk_pin_p]] -min -0.500 [get_ports rxd_pin]
set_input_delay -clock virtual_clock -max 0.000 [get_ports lb_sel_pin]
set_input_delay -clock virtual_clock -min -0.500 [get_ports lb_sel_pin]
set_output_delay -clock virtual_clock -max 0.000 [get_ports {txd_pin {led_pins[*]}}]
set_output_delay -clock virtual_clock -min -0.500 [get_ports {txd_pin {led_pins[*]}}]
set_output_delay -clock spi_clk -max 1.000 [get_ports {spi_mosi_pin dac_cs_n_pin dac_clr_n_pin}]
set_output_delay -clock spi_clk -min -1.000 [get_ports {spi_mosi_pin dac_cs_n_pin dac_clr_n_pin}]

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • pcb
    pcb
    +关注

    关注

    4377

    文章

    23596

    浏览量

    413915
  • adc
    adc
    +关注

    关注

    100

    文章

    6791

    浏览量

    550678
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    技术资讯 I Allegro 设计中的线约束设计

    本文要点在进行时序等长布线操作的时候,在布线操作的时候不管你是蛇形线还是折线,约束管理器会自动帮你计算长度、标偏差,通过精确控制线长度
    的头像 发表于 09-05 15:19 ?88次阅读
    技术资讯 I Allegro 设计中的<b class='flag-5'>走</b><b class='flag-5'>线</b><b class='flag-5'>约束</b>设计

    别蒙我,PCB这几对高速线怎么看我都觉得一样!

    工程师说过孔这档子事了。那不说过孔说什么啊,就单纯的线,正常的话也不影响高速性能。Chris就喜欢杠,就打算在线上挑挑刺! 你以为Chris装不了?废话不说了,直接上案例。各位
    发表于 06-09 14:34

    allegro软件线命令下参数不显示如何解决

    PCB设计中,线命令是频繁使用的功能之一。执行走线命令后,通常会在Options面板中显示线宽、层、角度等设置选项,用于调整
    的头像 发表于 06-05 09:30 ?895次阅读
    allegro软件<b class='flag-5'>走</b><b class='flag-5'>线</b>命令下参数不显示如何解决

    PCB Layout 约束管理,助力优化设计

    本文重点PCBlayout约束管理在设计中的重要性Layout约束有助避免一些设计问题设计中可以使用的不同约束PCB设计规则和约束管理方面
    的头像 发表于 05-16 13:02 ?515次阅读
    <b class='flag-5'>PCB</b> Layout <b class='flag-5'>约束</b>管理,助力优化设计

    机柜配线架的线方式

    机柜配线架的线方式是网络布线工程中的关键环节,直接影响机房管理效率、设备散热性能和后期维护便利性。合理的线设计需要兼顾功能性、美观性和可扩展性,以下从规划原则、
    的头像 发表于 04-28 10:44 ?902次阅读
    机柜配线架的<b class='flag-5'>走</b><b class='flag-5'>线</b>方式

    一个很好的pcb过孔线等计算小软体

    一个很好的pcb过孔线等计算小软体*附件:Saturn_PCB_Toolkit_V8.31_Setup.zip
    发表于 03-27 16:19

    STM32H750XBH6TR SDRAM频率为100MHz时,FMC_SDCLK和FMC_SDNWE延迟不符合标准,延迟偏大的原因?

    吗?目前测量,PCB线延迟几乎可以忽略,另外如果使用烘枪将主芯片温度烘高,发现FMC_SDCLK和FMC_SDNWE延迟会变小,甚至可以达
    发表于 03-14 15:15

    PCB Layout中的三种线策略

    布线(Layout)是PCB设计工程师最基本的工作技能之一。线的好坏将直接影响到整个系统的性能,大多数高速的设计理论也要最终经过Layout得以实现并验证,由此可见,布线在高速PCB
    发表于 03-13 11:35

    PCB线,盲目拉线,拉了也是白拉!

    有些小伙伴在pcb布线时,板子到手就是干,由于前期分析工作做的不足或者没做,导致后期处理时举步维艰。 比如电源线、杂线拉完了,却漏掉一组重要的信号线,导致这组
    发表于 03-06 13:53

    揭秘PCB线宽度计算:原理、方法与实战技巧

    一站式PCBA智造厂家今天为大家讲讲PCB设计中的线宽度如何计算?PCB设计线宽度计算的原理和方法。在PCB设计过程中,
    的头像 发表于 03-06 09:25 ?911次阅读
    揭秘<b class='flag-5'>PCB</b><b class='flag-5'>走</b>线宽度计算:原理、方法与实战技巧

    揭秘PCB线设计黑洞:仿真视角下挑战,工程师与PCB设计师必看!

    的TDR阻抗对比也能明显发现这一点。 是不是突然觉得射频工程师真不容易,就这么一个小小的线拐角细节都能玩出花来。事实,射频的PCB设计由于它的特殊性,例如大多是表层
    发表于 02-17 14:41

    xilinx FPGA IOB约束使用以及注意事项

    采用了IOB约束,那么就可以保证从IO到达寄存器或者从寄存器到达IO之间的线延迟最短,同时由于IO的位置是固定的,即存在于IO附近,所以每一次编译都不会造成输入或者输出的时序发生改变
    的头像 发表于 01-16 11:02 ?1131次阅读
    xilinx FPGA IOB<b class='flag-5'>约束</b>使用以及注意事项

    PCB线与电磁兼容:如何巧妙平衡与协同

    PCB线,本质是在电路板通过蚀刻铜箔形成的导线,负责在众多电子元件之间精准无误地传导电流与信号。来与捷多邦小编一起了解
    的头像 发表于 12-25 11:15 ?604次阅读

    是否存在有关 PCB 线电感的经验法则?

    本文要点PCB线具有电感和电容,这两者共同决定了线的阻抗。有时,了解
    的头像 发表于 12-13 16:54 ?3286次阅读
    是否存在有关 <b class='flag-5'>PCB</b> <b class='flag-5'>走</b><b class='flag-5'>线</b>电感的经验法则?

    和 Dr Peter 一起学 KiCad 4.5:布线(添加线

    “ ?本章将介绍如何进行布线。 ? ” 4.5?4-布线(添加线) 在本章中,我将完成在本书第三部分第二章中学到的 PCB 工作流程的第四步。在这一步中,我将完成电路板的布线("Routing
    的头像 发表于 12-04 12:13 ?2280次阅读
    和 Dr Peter 一起学 KiCad 4.5:布线(添加<b class='flag-5'>走</b><b class='flag-5'>线</b>)