實戰篇-梳理時鐘樹

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 前言
  • 一、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.pswp.cn/pingmian/76112.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76112.shtml
英文地址,請注明出處:http://en.pswp.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 深度聚焦工程場景&#…