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
    +关注

    关注

    4329

    文章

    23188

    浏览量

    400558
  • adc
    adc
    +关注

    关注

    99

    文章

    6538

    浏览量

    546020
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    探索电路板pcb螺旋线的特点

    PCB(Printed Circuit Board)螺旋线是一种在 PCB 设计中常用的布线方式。它通过将导线以螺旋状的形式布置在 PCB
    的头像 发表于 08-06 17:28 521次阅读

    请教,SIM卡PCB线,这个CKL时钟线和数据线DATA要等长嘛,一条顶层一条底层如图这样可以嘛

    请教,SIM卡PCB线,这个CKL时钟线和数据线DATA要等长嘛,一长条顶层一条底层如图这样
    发表于 08-03 22:49

    DDR5内存条的时钟线

    DDR5标准JESD79-5文件中没有明确的控制阻抗建议,DDR4时代基本内存条时钟阻抗还是跟着芯片、主板的70-80欧姆。线宽相对而言比较细。不知道你开始使用DDR5没有,你有关注过DDR5内存条的时钟
    的头像 发表于 07-16 17:47 2279次阅读
    DDR5内存条<b class='flag-5'>上</b>的时钟<b class='flag-5'>走</b><b class='flag-5'>线</b>

    射频PCB线规则简析

    射频(RF)PCB线规则是确保无线通信设备性能的关键因素之一。在高频信号设计中,PCB线不仅承载着电流,还对信号的完整性和质量有着显著影
    的头像 发表于 05-16 18:18 3454次阅读

    pcb螺旋线的优劣势对比

    PCB螺旋线是一种在Pcb电路板设计的螺旋型导线结构。
    的头像 发表于 04-20 17:57 1295次阅读

    什么是PCB线宽度?影响线宽度的关键因素有哪些

    PCB 线的主要功能是将电流从一点传输到另一点。线的宽度直接影响其在不超过温度限制或导致过度压降的情况下处理电流的能力。
    发表于 04-17 11:44 2070次阅读
    什么是<b class='flag-5'>PCB</b><b class='flag-5'>走</b>线宽度?影响<b class='flag-5'>走</b>线宽度的关键因素有哪些

    pcb线厚度:打造更稳定、精准的PCB设计

    PCB线是将电路设计中的电气信号通过导线连接到PCB而形成的电路。这些导线被称为“
    的头像 发表于 04-15 17:43 1467次阅读

    如何对PCB进行差分对的线操作呢?

    PCB设计中,差分对的线操作是一项关键任务,它直接影响到信号的完整性和电路的性能。差分信号通常用于高速数字通信,因为它们能够有效地抵抗电磁干扰和提供准确的时序信号。
    的头像 发表于 04-10 16:34 2877次阅读

    差分走线的原理和作用 差分走线是射频线的一种吗

    差分走线是一种在高速PCB设计中常用的信号传输方式,它与射频线有一定的关联,但也有其独特的特点和应用场景。
    的头像 发表于 04-10 16:26 2565次阅读

    PCB线宽度定义与计算方法详解

    PCB 线是放置在非导电或隔离基材的细导电铜线,用于将信号和电源传输到整个电路。铜线具有特
    发表于 04-05 09:58 4154次阅读
    <b class='flag-5'>PCB</b><b class='flag-5'>走</b>线宽度定义与计算方法详解

    Altium Designer中线模式的切换方法

    AD软件提供了比较智能的线模式切换功能,可以根据个人习惯进行切换,能有效的提高了PCB设计效率。
    发表于 03-28 09:37 1389次阅读
    Altium Designer中<b class='flag-5'>走</b><b class='flag-5'>线</b>模式的切换方法

    pcb线宽度的设计指南

    pcb线宽度的设计指南
    的头像 发表于 02-23 17:30 1811次阅读