实战篇-梳理时钟树

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

这是B站傅里叶的猫视频的笔记


一、建立工程

以Vivado的wave_gen为例子。为了引入异步时钟域,我们在此程序上由增加了另一个时钟--clkin2,该时钟产生脉冲信号pulsesamp_gen中在pulse为高时才产生信号。

二、梳理时钟树

我们首先要做的就是梳理时钟树,就是工程中用到了哪些时钟,各个时钟之间的关系又是什么样的,如果自己都没有把时钟关系理清楚,不要指望综合工具会把所有问题暴露出来。

  在我们这个工程中,有两个主时钟,四个衍生时钟,如下图所示。

主时钟是FPGA设计中最顶层的时钟源,通常由以下两种方式提供:

  • 外部时钟源:通过FPGA的专用时钟引脚(如全局时钟输入引脚)输入,例如晶振、时钟发生器芯片等。

  • FPGA内部固定时钟:少数FPGA内置的固定频率时钟(如某些器件的片上振荡器)。

关键特性
  • 无需依赖其他时钟:主时钟是设计的根时钟,其周期和边沿由物理硬件直接决定。

  • 全局性:通常通过全局时钟网络(Global Clock Buffer,如BUFG)分配到整个芯片,以降低抖动和偏斜(Skew)。

  • 约束语法示例(XDC格式):

    create_clock -name sys_clk -period 10 [get_ports CLK_IN]

    这里CLK_IN是外部时钟输入引脚,周期为10ns。

衍生时钟

是通过主时钟或其他衍生时钟经过FPGA内部逻辑(如分频、倍频、相位调整)生成的时钟信号。常见的生成方式包括:

  • 分频/倍频:通过PLL(锁相环)、MMCM(混合模式时钟管理器)或寄存器分频(如计数器)产生。

    • 例如:主时钟100MHz → 通过PLL生成50MHz时钟。

  • 门控时钟:通过逻辑门(如与门)使能/禁用时钟(需谨慎使用,易导致时序问题)。

  • 相位偏移:通过时钟管理单元调整相位(如90°相移时钟)。

关键特性
  • 依赖主时钟:衍生时钟的时序必须相对于其父时钟(主时钟或其他衍生时钟)进行约束。

  • 需显式定义:工具无法自动识别衍生时钟,必须手动约束。

  • 约束语法示例

    create_generated_clock -name clk_div2 -source [get_pins PLL/CLKOUT] -divide_by 2 [get_pins DIV_REG/Q]

    这里从PLL的输出时钟(CLKOUT)分频2倍,生成clk_div2

实际应用注意事项

  • 避免衍生时钟的衍生时钟:过度嵌套会增加时序复杂性,建议扁平化时钟结构。

  • 谨慎使用组合逻辑生成时钟:可能导致毛刺,推荐使用专用时钟管理单元(PLL/MMCM)。

  • 验证时钟关系:通过report_clocks命令检查时钟树是否按预期约束。

确定了主时钟和衍生时钟后,再看各个时钟是否有交互,即clka产生的数据是否在clkb的时钟域中被使用。

  这个工程比较简单,只有两组时钟之间有交互,即:

  • clk_rxclk_tx

  • clk_sampclk2

其中,clk_rxclk_tx都是从同一个MMCM输出的,两个频率虽然不同,但他们却是同步的时钟,因此他们都是从同一个时钟分频得到(可以在Clock Wizard的Port Renaming中看到VCO Freq的大小),因此它们之间需要用set_false_path来约束;而clk_sampclk2是两个异步时钟,需要用asynchronous来约束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图灵逆向——题六-倚天剑

从第六题开始就要有个先看看请求头的习惯了[doge]。 别问博主为什么要你养成这个习惯,问就是博主被坑过。。。 headers里面有一个加密参数S,然后你就去逆向这个S对吧。 然后一看响应: 好家伙返回的还是个密文,所以要两次逆向咯。…

ubuntu自动更新--unattended-upgrades

ubuntu自动更新--unattended-upgrades 1 介绍2 发展历程3 配置与使用4 disable Auto update服务命令 参考 1 介绍 Unattended-Upgrades 是一个用于自动更新 Debian 及其衍生系统(如 Ubuntu)的工具。它的主要功能是自动检查、下载并安装系统更新&#xf…

从 Excel 到你的表格应用:条件格式功能的嵌入实践指南

一、引言 在日常工作中,面对海量数据时,如何快速识别关键信息、发现数据趋势或异常值,是每个数据分析师面临的挑战。Excel的条件格式功能通过自动化的视觉标记,帮助用户轻松应对这一难题。 本文将详细介绍条件格式的应用场景&am…

【HarmonyOS Next之旅】DevEco Studio使用指南(十一)

目录 1 -> 代码实时检查 2 -> 代码快速修复 3 -> C快速修复使用演示 3.1 -> 填充switch语句 3.2 -> 使用auto替换类型 3.3 -> 用?:三元操作符替换if-else 3.4 -> 从使用处生成构造函数 3.5 -> 将变量拆分为声明和赋值 1…

win10离线环境下配置wsl2和vscode远程开发环境

win10离线环境下配置wsl2和vscode远程开发环境 环境文件准备wsl文件准备vscode文件准备 内网环境部署wsl环境部署vscode环境部署 迁移后Ubuntu中的程序无法启动 环境 内网机:win10、wsl1 文件准备 wsl文件准备 在外网机上的wsl安装Ubuntu24.04,直接在…

Elasticsearch | ES索引模板、索引和索引别名的创建与管理

关注:CodingTechWork 引言 在使用 Elasticsearch (ES) 和 Kibana 构建数据存储和分析系统时,索引模板、索引和索引别名的管理是关键步骤。本文将详细介绍如何通过 RESTful API 和 Kibana Dev Tools 创建索引模板、索引以及索引别名,并提供具…

提高MCU的效率方法

要提高MCU(微控制器单元)的编程效率,需要从硬件特性、代码优化、算法选择、资源管理等多方面入手。以下是一些关键策略: 1. 硬件相关优化 时钟与频率: 根据需求选择合适的时钟源(内部/外部振荡器),避免过高的时钟频率导致功耗浪费。关闭未使用的外设时钟(如定时器、UA…

Visual Studio未能加载相应的Package包弹窗报错

环境介绍: visulal studio 2019 问题描述: 起因:安装vs扩展插件后,重新打开Visual Studio,报了一些列如下的弹窗错误,即使选择不继续显示该错误,再次打开后任然报错; 解决思路&am…

Android中Jetpack设计理念、核心组件 和 实际价值

一、Jetpack 的定义与定位(基础必答) Jetpack 是 Google 推出的 Android 开发组件集合,旨在: 加速开发:提供标准化、开箱即用的组件 消除样板代码:解决传统开发中的重复劳动问题 兼容性保障:…

计算机网络 实验二 VLAN 的配置与应用

一、实验目的 1. 熟悉 VLAN 和 PORT VLAN 的原理; 2. 熟悉华为网络模拟器的使用; 3. 掌握网络拓扑图的绘制; 4. 掌握单交换机内 VLAN 的配置。 二、实验设备 PC、华为模拟器 ENSP。 三、实验步骤 知识准备:VLAN 和 PORT V…

聊透多线程编程-线程基础-3.C# Thread 如何从非UI线程直接更新UI元素

目录 1. 使用 Control.Invoke 或 Control.BeginInvoke(Windows Forms) 2. 使用 Dispatcher.Invoke 或 Dispatcher.BeginInvoke(WPF) 3. 使用 SynchronizationContext 桌面应用程序(如 Windows Forms 或 WPF&#xf…

TCP 和 UDP 可以使用同一个端口吗?

TCP 和 UDP 可以使用同一个端口吗? 前言 在深入探讨 TCP 和 UDP 是否可以使用同一个端口之前,我们首先需要理解网络通信的基本原理。网络通信是一个复杂的过程,涉及到多个层次的协议和机制。在 OSI 模型中,传输层是负责端到端数…

RVOS-2.基于NS16550a ,为os添加终端交互功能。

2.1 实验目的 为os添加uart功能,通过串口实现开发板与PC交互。 2.1 硬件信息 QEMU虚拟SoC含有 虚拟NS16550A设备 。 不同的地址线组合(A2、A1、A0)对应的读写模式和寄存器如下所示: 2.2 NS16550a 的初始化 线路控制寄存器&#…

java导入excel更新设备经纬度度数或者度分秒

文章目录 一、背景介绍二、页面效果三、代码0.pom.xml1.ImportDevice.vue2.ImportDeviceError.vue3.system.js4.DeviceManageControl5.DeviceManageUserControl6.Repeater7.FileUtils8.ResponseModel9.EnumLongitudeLatitude10.词条 四、注意点本人其他相关文章链接 一、背景介…

【力扣hot100题】(080)爬楼梯

让我们掌声恭迎动态规划的始祖—— 最基础的动态规划,原始方法是维护一个数组,每次记录到该阶梯的方案数量,每次的数量是到上一个阶梯的方案数量加上到上上一阶梯的方案数量,因为只有两种走法。 进阶可以优化空间复杂度&#xf…

CVE-2025-24813 漏洞全解析|Apache Tomcat 关键路径绕过与RCE

CVE-2025-24813 漏洞全解析|Apache Tomcat 关键路径绕过与RCE 作者:Factor .Poc作者:iSee857 CVE-2025-24813 漏洞全解析|Apache Tomcat 关键路径绕过与RCE一、漏洞概述二、影响版本三、漏洞原理🎯 利用流程(两步)&am…

初识Linux:常见指令与权限的理解,以及相关衍生知识

目录 前言 关于linux的简介 代码开源 网络功能强大 系统工具链完整 一、Linux下的基本指令 1.ls指令 2.pwd指令 3.cd指令 4.whoami指令 5.touch指令 6.mkdir指令 7.rm指令 8.man指令 9.cp指令 10.mv指令 11.nano指令 12.cat指令 13.tac指令 14.more指令 15.less指令 16.head指令…

JVM虚拟机篇(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解

JVM垃圾回收器全面解析与G1深度探秘及四种引用详解 JVM虚拟机(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解一、JVM有哪些垃圾回收器1. Serial回收器2. ParNew回收器3. Parallel Scavenge回收器4. Serial Old回收器5. Parallel Old回…

革新电销流程,数企云外呼开启便捷 “直通车”

在当今竞争激烈的商业环境中,电销作为一种重要的营销手段,依旧在企业的客户拓展与业务增长中扮演着关键角色。然而,传统电销流程常常面临诸多困扰,像是封卡封号风险、接通率不理想、客户开发与管理艰难以及销售考核复杂等问题&…

适合工程建筑行业的OA系统有什么推荐?

工程行业具有项目周期长、协作链条复杂等特性,传统管理模式下的 “人治”“纸质化” 弊端日益凸显。OA 系统作为数字化管理的核心载体,通过流程标准化、数据可视化,精准解决工程行业项目管理核心痛点。 泛微 e-office 深度聚焦工程场景&#…