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

    关注

    4417

    文章

    23961

    浏览量

    426063
  • adc
    adc
    +关注

    关注

    100

    文章

    7946

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    07. 如何在Allegro中设置可以线但不能铺的铜区域?| 芯巧Allegro PCB 设计小诀窍

    背景介绍:我们在进行PCB设计时,经常需要绘制一些禁止铺铜但是允许线的区域,如果我们直接使用Route Keepout绘制的话,虽然可以实现在此区域内禁止铺铜的效果,但是
    发表于 04-09 17:23

    05. 如何在 Allegro 中沿着板子轮廓线?| 芯巧Allegro PCB 设计小诀窍

    背景介绍:在PCB设计过程中我们经常会遇到异形板框的设计要求,最常见的比如FPC设计、消费类控制板设计以及灯板设计等。在这些设计中通常会需要沿着板子轮廓进行走线,并且线要与板框保持一
    发表于 04-03 16:46

    03. 如何把 PCB线变成铜皮?| 芯巧Allegro PCB 设计小诀窍

    图形的描述是矢量的,而有很多软件对大块图形的描述是线性的,这就导致这类图形导入到Allegro PCB之后,图形是由一条条的线组成的,这时就需要把线构成的图形转换成Shape。另外,当我们PC
    发表于 04-03 16:40

    PCB线“粗、短、直”的根本原理

    在模电、高频电子、EMC设计及PCB Layout中,“粗、短、直”是PCB线的核心准则,其本质是通过优化
    的头像 发表于 03-30 11:20 241次阅读
    <b class='flag-5'>PCB</b><b class='flag-5'>走</b><b class='flag-5'>线</b>“粗、短、直”的根本原理

    MCU 的 3.3V 电源线线有没有问题?比如滤波电容的位置、线长度这些是不是规范?

    “各位大神好~我是 PCB 设计新手,第一次画板子,想请教下这个 MCU 的 3.3V 电源线线有没有问题?比如滤波电容的位置、线长度
    发表于 01-05 21:30

    机房布线,线、下走线,哪个好?

    在数据中心布线系统线方式时,很多朋友比较关心的是线好,还是下走线好?这个问题一直都有讨论,
    的头像 发表于 12-15 11:21 779次阅读
    机房布线,<b class='flag-5'>上</b><b class='flag-5'>走</b><b class='flag-5'>线</b>、下走<b class='flag-5'>线</b>,哪个好?

    PCB板双面布局的DDR表底线居然不一样

    越好,也就是下图所示的这几段线。 这个客户还是比较的爱学习,除了硬件本身的知识外,还花很多时间去了解PCB设计的知识,也看了很多主流芯片的PCB设计指导书,对DDR设计包括高速设计
    发表于 12-11 10:43

    揭秘PCB设计生死线线宽度、铜厚与温升如何决定电流承载力?

    一站式PCBA加工厂家今天为大家讲讲PCB线与过孔的电流承载能力有受什么影响?PCB线与过孔
    的头像 发表于 11-19 09:24 1755次阅读
    揭秘<b class='flag-5'>PCB设计生死线</b>:<b class='flag-5'>走</b>线宽度、铜厚与温升如何决定电流承载力?

    到底DDR线能不能参考电源层啊?

    高速先生成员--黄刚 一些通用的PCB设计经验以及高速信号理论,都告诉我们PCB的信号最好都以地平面为参考,尤其是高速线,建议上下参考平
    发表于 11-11 17:46

    【EMC技术案例】共模电感与电源模块之间PCB线导致RE超标案例

    【EMC技术案例】共模电感与电源模块之间PCB线导致RE超标案例
    的头像 发表于 09-28 15:05 840次阅读
    【EMC技术案例】共模电感与电源模块之间<b class='flag-5'>PCB</b><b class='flag-5'>走</b><b class='flag-5'>线</b>导致RE超标案例

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

    本文要点在进行时序等长布线操作的时候,在布线操作的时候不管你是蛇形线还是折线,约束管理器会自动帮你计算长度、标偏差,通过精确控制线长度
    的头像 发表于 09-05 15:19 1523次阅读
    技术资讯 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 2334次阅读
    allegro软件<b class='flag-5'>走</b><b class='flag-5'>线</b>命令下参数不显示如何解决

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

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

    机柜配线架的线方式

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