当前位置: 首页 > news >正文

VIVADO技巧_BUFGMUX时序优化


1.版本说明

日期作者版本说明
2025xxxx风释雪初始版本

2.概述

基于VIVADO时序约束,BUFGMUX多路时钟选择原语的设计


3.原语介绍

7系列FPGA/UltraSCale/UltraSCale+

   BUFGMUX_CTRL BUFGMUX_CTRL_inst (.O(O),   // 1-bit output: Clock output.I0(I0), // 1-bit input: Clock input (S=0).I1(I1), // 1-bit input: Clock input (S=1).S(S)    // 1-bit input: Clock select);BUFGMUX #(.CLK_SEL_TYPE("SYNC")  // ASYNC, SYNC) BUFGMUX_inst (.O(O),   // 1-bit output: Clock output.I0(I0), // 1-bit input: Clock input (S=0).I1(I1), // 1-bit input: Clock input (S=1).S(S)    // 1-bit input: Clock select);

4.使用场景

  • 简单举例
时钟使用两个固定频率晶振产生,经过IO口进入FPGA内部,通过BUFGMUX选择作为全局时钟驱动逻辑;

在这里插入图片描述

  • 复杂举例
时钟使用两个固定频率晶振产生,经过IO口进入FPGA内部,通过BUFGMUX选择MMCM源,
MMCM产生三路时钟, 74.25(74.1758)、148.5(148.3516)、297(296.703),
经过2个BUFGMUX实现3选1的功能,然后作为全局时钟驱动逻辑;

在这里插入图片描述


5.时序问题

当使用BUFGMUX的时候,VIVADO会分析两个输入时钟之间的关系,会导致大量的时序错误,
但是实际情况,两个输入时钟,并不会同时工作,不需要分析两个时钟之间的

6.时序设计

  • create_generated_clock + set_clock_groups
create_generated_clock -name CLKI0 \-divide_by 1 \-source [get_pins INST_BUFGMUX/I0] \-master_clock [get_clocks -of_objects [get_pins INST_BUFGMUX/I0]] \[get_pins INST_BUFGMUX/O] -addcreate_generated_clock -name CLKI1 \-divide_by 1 \-source [get_pins INST_BUFGMUX/I1] \-master_clock [get_clocks -of_objects [get_pins INST_BUFGMUX/I1]] \[get_pins INST_BUFGMUX/O] -addset_clock_groups -logically_exclusive \-group [get_clocks -include_generated_clocks {CLKI0}] \-group [get_clocks -include_generated_clocks {CLKI1}]
  • set_case_analysis
时序分析时,选择频率最高的一路时钟,进行分析,其余路不分析
set_case_analysis 1 [get_pins INST_BUFGMUX/S]

7.实战

  • 代码
genlock_clkwiz inst_genlock_clkwiz
(.clk_in1                                    ( VID_SYNCCLK_148M5_148M3516),.clk_out1                                   ( VID_SYNCCLK_297M_296M7032 ),.clk_out2                                   ( VID_SYNCCLK_74M25_74M1758 )
);BUFGMUX #(.CLK_SEL_TYPE("ASYNC")) BUFGMUX_GENLOCK_0
(.O                                          ( VID_SYNCCLK_148M5_148M3516),.I0                                         ( LMH1983_CLK3_148M3516     ),.I1                                         ( LMH1983_CLK2_148M5        ),.S                                          ( select_freq_en[0]         )
);BUFGMUX #(.CLK_SEL_TYPE("ASYNC")) BUFGMUX_GENLOCK_1
(.O                                          ( VID_SYNCCLK_OUT1          ),.I0                                         ( VID_SYNCCLK_74M25_74M1758 ),.I1                                         ( VID_SYNCCLK_148M5_148M3516),.S                                          ( select_freq_en[1]         )
);BUFGMUX #(.CLK_SEL_TYPE("ASYNC")) BUFGMUX_GENLOCK_2
(.O                                          ( SDI_SYNCCLK               ),.I0                                         ( VID_SYNCCLK_OUT1          ),.I1                                         ( VID_SYNCCLK_297M_296M7032 ),.S                                          ( select_freq_en[2]         )
);
  • 约束
set_case_analysis 1 [get_pins inst_core/inst_genlock/BUFGMUX_GENLOCK_0/S]
set_case_analysis 1 [get_pins inst_core/inst_genlock/BUFGMUX_GENLOCK_1/S]
set_case_analysis 1 [get_pins inst_core/inst_genlock/BUFGMUX_GENLOCK_2/S]
  • 约束前

在这里插入图片描述

  • 约束后
    时序正常!!!
http://www.lryc.cn/news/590657.html

相关文章:

  • 助力品牌从系统碎片化走向IT一体化建设,实现全渠道业务协同!——商派“数智化IT轻咨询”
  • tools的作用:预览
  • 硬件产品的技术资料管控是确保研发可追溯、生产可复制、质量可控制的核心环节。
  • MybatisPlus-11.IService的批量新增
  • 《十万线段绘乾坤:Canvas离屏渲染深度剖析》
  • 零基础学Vue3组件化开发
  • java操作Excel两种方式EasyExcel 和POI
  • Vue加密文章密码 VuePress
  • 使用defineExpose暴露子组件的属性和方法、页面生命周期onLoad和onReady的使用
  • 微服务架构升级:从Dubbo到SpringCloud的技术演进
  • CSS动画与变换全解析:从原理到性能优化的深度指南
  • Web前端性能优化原理与方法
  • PHP8.5.0 Alpha 1 正式发布!
  • Fiddler 中文版 API 调试与性能优化实践 官方中文网全程支持
  • 算法精讲--正则表达式(二):分组、引用与高级匹配技术
  • Hadoop(二)
  • java-面向对象之继承特性
  • 【时时三省】(C语言基础)通过指针引用多维数组2
  • 亚马逊云科技快速上手之EC2 WindowsServer如何设置初始密码和重置
  • 网络劫持对用户隐私安全有何影响?
  • 电力名词通俗解析5:计量系统
  • 矿业自动化破壁者:EtherCAT转PROFIBUS DP网关的井下实战
  • 0 - MIT 6.S081 2020 操作系统 实验环境配置
  • 计算机网络——数据链路层(25王道最新版)
  • python中pymysql中的错误 raise AttributeError(name)AttributeError: commit解决办法
  • [MySQL基础1]数据定义语言DDL与数据操作语言DML
  • 系统性学习C语言-第十八讲-C语言内存函数
  • 微服务的编程测评系统2
  • EP02:【NLP 第二弹】自然语言处理数据
  • 需求分析方法论