0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

動(dòng)態(tài)時(shí)鐘的使用

OpenFPGA ? 來(lái)源:OpenFPGA ? 2023-07-05 09:05 ? 次閱讀

時(shí)鐘是每個(gè) FPGA 設(shè)計(jì)的核心。如果我們正確地設(shè)計(jì)時(shí)鐘架構(gòu)、沒(méi)有 CDC 問(wèn)題并正確進(jìn)行約束設(shè)計(jì),就可以減少與工具斗爭(zhēng)的時(shí)間。

但對(duì)于某些應(yīng)用,我們希望能夠更改某些IP中的時(shí)鐘頻率。其中一個(gè)例子是在圖像處理管道中,輸出分辨率可以動(dòng)態(tài)變化,從而需要改變像素時(shí)鐘。

眾所周知,我們可以在 Zynq SoC 和 Zynq MPSoC 中使用結(jié)構(gòu)時(shí)鐘并在運(yùn)行時(shí)更改結(jié)構(gòu)時(shí)鐘的頻率。但是,如果我們?cè)?Zynq 或 ZYNQ MPSoC 中使用 FPGA 或 PL,我們?nèi)匀豢梢允褂脛?dòng)態(tài)配置的時(shí)鐘向?qū)г谶\(yùn)行時(shí)更改頻率。

動(dòng)態(tài)配置時(shí)鐘允許我們使用 AXI 接口在運(yùn)行時(shí)更改時(shí)鐘頻率。

c0c858fc-1acb-11ee-962d-dac502259ad0.png

為了創(chuàng)建一個(gè)簡(jiǎn)單的示例,我們將實(shí)例化PS并將動(dòng)態(tài)配置時(shí)鐘IP連接到主 AXI 接口。我們將輸出時(shí)鐘連接到 IO 引腳,以便我們可以對(duì)其進(jìn)行觀察并查看頻率的變化。

c0df5052-1acb-11ee-962d-dac502259ad0.png

上面的時(shí)鐘是我們打算使用的最大頻率,這樣可以確保時(shí)序約束和時(shí)序性能正確。下圖是我們這次demo的最終設(shè)計(jì)。

c0fb9730-1acb-11ee-962d-dac502259ad0.png

接下來(lái)我們將在 Vitis 中開(kāi)發(fā)軟件,并且將在設(shè)計(jì)中的 IP 下看到相關(guān)驅(qū)動(dòng)及文檔。

開(kāi)發(fā)這個(gè)IP的驅(qū)動(dòng)和其他 AXI Lite 接口一樣,需要對(duì)IP寄存器空間進(jìn)行寫入和讀取。

要更改時(shí)鐘頻率輸出,我們有兩種選擇。如果只生成一個(gè)時(shí)鐘,我們可以使用名為 SetRate 的函數(shù)。該函數(shù)將通過(guò)AXI Lite總線傳遞到IP中,IP會(huì)給出我們所需的頻率輸出,并計(jì)算必要的分頻器、乘法器和相位參數(shù)實(shí)現(xiàn)所需的輸出頻率。

然而,如果我們有多個(gè)時(shí)鐘,那么我們需要分別計(jì)算這些寄存器的值并單獨(dú)更新時(shí)鐘寄存器(每個(gè)時(shí)鐘有兩個(gè)寄存器)。

這里有個(gè)注意點(diǎn)就是在進(jìn)行時(shí)鐘更改前最好等待IP鎖定到之前的頻率后再進(jìn)行新操作。

更改頻率的代碼還是比較簡(jiǎn)單的,如下:

#include
#include"platform.h"
#include"xil_printf.h"

#include"xclk_wiz.h"

XClk_WizClkWiz_Dynamic;
XClk_Wiz_Config*CfgPtr_Dynamic;

#defineXCLK_WIZARD_DEVICE_IDXPAR_CLK_WIZ_0_DEVICE_ID
#defineXCLK_US_WIZ_RECONFIG_OFFSET0x0000025C
#defineCLK_LOCK1

intmain()
{
init_platform();
intStatus;
print("HelloWorld

");

CfgPtr_Dynamic=XClk_Wiz_LookupConfig(XCLK_WIZARD_DEVICE_ID);
XClk_Wiz_CfgInitialize(&ClkWiz_Dynamic,CfgPtr_Dynamic,
CfgPtr_Dynamic->BaseAddr);

while(1){
XClk_Wiz_WriteReg(CfgPtr_Dynamic->BaseAddr,
XCLK_WIZ_REG25_OFFSET,0);
XClk_Wiz_SetRate(&ClkWiz_Dynamic,10);
XClk_Wiz_WriteReg(CfgPtr_Dynamic->BaseAddr,
XCLK_US_WIZ_RECONFIG_OFFSET,
(XCLK_WIZ_RECONFIG_LOAD|
XCLK_WIZ_RECONFIG_SADDR));
Status=XClk_Wiz_WaitForLock(&ClkWiz_Dynamic);
usleep(10000000);
XClk_Wiz_WriteReg(CfgPtr_Dynamic->BaseAddr,
XCLK_WIZ_REG25_OFFSET,0);
XClk_Wiz_SetRate(&ClkWiz_Dynamic,14);
XClk_Wiz_WriteReg(CfgPtr_Dynamic->BaseAddr,
XCLK_US_WIZ_RECONFIG_OFFSET,
(XCLK_WIZ_RECONFIG_LOAD|
XCLK_WIZ_RECONFIG_SADDR));
Status=XClk_Wiz_WaitForLock(&ClkWiz_Dynamic);
usleep(10000000);
}
cleanup_platform();
return0;
}

當(dāng)然,我們也可以使用類似的方法,通過(guò)將時(shí)鐘頻率降低來(lái)實(shí)現(xiàn)不同功耗模式下 FPGA 的功耗,從而實(shí)現(xiàn)降低功耗的功能。

c12269a0-1acb-11ee-962d-dac502259ad0.pngc13cb7c4-1acb-11ee-962d-dac502259ad0.png






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26421
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119204
  • CDC
    CDC
    +關(guān)注

    關(guān)注

    0

    文章

    56

    瀏覽量

    17718
  • AXI總線
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    14215
  • 動(dòng)態(tài)時(shí)鐘

    關(guān)注

    0

    文章

    5

    瀏覽量

    6944

原文標(biāo)題:【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    動(dòng)態(tài)時(shí)鐘配置下的SoC低功耗管理詳解

    SoC中CMOS電路功耗有:一是靜態(tài)功耗,主要是由靜電流、漏電流等因素造成的;二是動(dòng)態(tài)功耗,主要是由電路中信號(hào)變換時(shí)造成的瞬態(tài)開(kāi)路電流(crowbar current)和負(fù)載電流(load current)等因素造成的,它是SoC芯片中功耗的主要來(lái)源。
    發(fā)表于 02-12 17:31 ?3076次閱讀
    <b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>時(shí)鐘</b>配置下的SoC低功耗管理詳解

    12864帶字庫(kù)串口怎么顯示時(shí)鐘

    求助大神,我買了一塊12864串口的液晶,在網(wǎng)上找了好多例程都是并口的,串口的到底怎么寫動(dòng)態(tài)時(shí)鐘啊。。。下面我附上我程序結(jié)構(gòu),看下怎么在這里添加動(dòng)態(tài)時(shí)鐘。
    發(fā)表于 12-04 12:39

    LCD顯示動(dòng)態(tài)時(shí)鐘原理是什么?

    哪位大神可以告訴我圖片中的顯示原理
    發(fā)表于 01-13 23:06

    TMS320C2809 SPI 動(dòng)態(tài)時(shí)鐘速率是多少?

    。我可不可以通過(guò) SPIBRR 寄存器動(dòng)態(tài)地更改 SPI 時(shí)鐘速率,以使其在發(fā)送模式下為 25MHz,在接收模式下為 12.5MHz?(這符合從芯片的規(guī)范,因?yàn)樗罡呖梢怨ぷ髟?26MHz)。如果我能夠
    發(fā)表于 05-12 09:21

    請(qǐng)問(wèn)怎樣平滑無(wú)誤地實(shí)現(xiàn)時(shí)鐘切換?

    常用的冗余時(shí)鐘方案有哪些?動(dòng)態(tài)時(shí)鐘切換與基于DCXO的時(shí)鐘切換各有什么優(yōu)缺點(diǎn)?參考時(shí)鐘和晶振之間的動(dòng)態(tài)
    發(fā)表于 04-19 07:32

    動(dòng)態(tài)時(shí)鐘配置下的SoC低功耗管理 電子資料

    摘要:隨著芯片集成度的提高,對(duì)一些功能復(fù)雜的系統(tǒng)芯片功耗的管理,已經(jīng)引起大家越來(lái)越多的重視,如何控制好SoC的功耗將成為芯片能否成功的重要因素。本文提出一種通過(guò)動(dòng)態(tài)管理時(shí)鐘的策略,達(dá)到降低整個(gè)So...
    發(fā)表于 04-22 06:00

    動(dòng)態(tài)時(shí)鐘配置下的SoC低功耗管理

    摘要:隨著芯片集成度的提高,對(duì)一些功能復(fù)雜的系統(tǒng)芯片功耗的管理,已
    發(fā)表于 04-16 23:32 ?1143次閱讀
    <b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>時(shí)鐘</b>配置下的SoC低功耗管理

    低功耗MCU動(dòng)態(tài)時(shí)鐘分析

    文結(jié)合MSP430系列微處理器,詳細(xì)論述了通過(guò)控制改變MCU的時(shí)鐘頻率來(lái)降低功耗的設(shè)計(jì)方法。
    發(fā)表于 04-15 11:11 ?2171次閱讀
    低功耗MCU<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>時(shí)鐘</b>分析

    低功耗MCU動(dòng)態(tài)時(shí)鐘分析與應(yīng)用

    地影響著芯片的尺寸、成本和性能。本文結(jié)合MSP430系列微處理器,詳細(xì)論述了通過(guò)控制改變MCU的時(shí)鐘頻率來(lái)降低功耗的設(shè)計(jì)方法。 1 功耗產(chǎn)生的原因 在CMOS電路中,功耗損失主要包括靜態(tài)功耗損失和動(dòng)態(tài)功耗損失兩部分。其中靜態(tài)功耗
    發(fā)表于 12-01 17:39 ?433次閱讀
     低功耗MCU<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>時(shí)鐘</b>分析與應(yīng)用

    動(dòng)態(tài)時(shí)鐘停止重啟太快,可通過(guò)編程LPDDR2控制器解決

    在沒(méi)有內(nèi)存事務(wù)處理執(zhí)行以及如果接收到內(nèi)存請(qǐng)求重啟時(shí)鐘時(shí),用戶可通過(guò)編程 LPDDR2 控制器來(lái)停止 DRAM 時(shí)鐘。
    發(fā)表于 06-23 08:53 ?1420次閱讀

    Linux時(shí)間子系統(tǒng)之一:動(dòng)態(tài)時(shí)鐘框架(CONFIG_NO_HZ、tickless)

    動(dòng)態(tài)時(shí)鐘正確工作之前,系統(tǒng)需要切換至動(dòng)態(tài)時(shí)鐘模式,而要切換至動(dòng)態(tài)時(shí)鐘模式,需要一些前提條件,最
    發(fā)表于 05-12 09:09 ?1953次閱讀

    基于51單片機(jī)數(shù)碼管動(dòng)態(tài)時(shí)鐘電路圖原理圖

    SEG數(shù)碼管4個(gè)共陰極(小編用的共陽(yáng)極的)、10k排阻(小編沒(méi)有直接做了個(gè))、51單片機(jī)、按鈕、30p電容、12MHz晶振、10k電阻、10uf電容、插針、74ls245(小編用三極管代替了)。
    的頭像 發(fā)表于 09-17 09:36 ?1.5w次閱讀

    Flash淘汰導(dǎo)致Fliqlo崩潰的修復(fù)方法

    Fliqlo 是很多人都喜歡的一款屏保軟件,由于酷似 MacOS 里的動(dòng)態(tài)時(shí)鐘屏保,點(diǎn)擊率很高。不過(guò)很多網(wǎng)友發(fā)現(xiàn),這兩天 Fliqlo 貌似出問(wèn)題了,沒(méi)有了酷酷的翻頁(yè)時(shí)鐘,而是下面這個(gè)鬼樣子!顯然,這是 Flash Player
    的頭像 發(fā)表于 01-25 09:24 ?1.2w次閱讀

    藍(lán)橋杯51單片機(jī)之?dāng)?shù)碼管從點(diǎn)亮到動(dòng)態(tài)時(shí)鐘的實(shí)現(xiàn)【單片機(jī)開(kāi)發(fā)初學(xué)者必掌握】

    51單片機(jī)最基礎(chǔ)的是流水燈,入門看的就是數(shù)碼管,本篇文章便是對(duì)數(shù)碼管的各種操作。從點(diǎn)亮一位數(shù)碼管,到程序中斷的實(shí)現(xiàn),最后就是完成一個(gè)動(dòng)態(tài)時(shí)鐘。
    發(fā)表于 11-23 16:36 ?1次下載
    藍(lán)橋杯51單片機(jī)之?dāng)?shù)碼管從點(diǎn)亮到<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>時(shí)鐘</b>的實(shí)現(xiàn)【單片機(jī)開(kāi)發(fā)初學(xué)者必掌握】

    FPGA設(shè)計(jì)中動(dòng)態(tài)時(shí)鐘的使用方法

    時(shí)鐘是每個(gè) FPGA 設(shè)計(jì)的核心。如果我們正確地設(shè)計(jì)時(shí)鐘架構(gòu)、沒(méi)有 CDC 問(wèn)題并正確進(jìn)行約束設(shè)計(jì),就可以減少與工具斗爭(zhēng)的時(shí)間。
    發(fā)表于 07-12 11:17 ?1059次閱讀
    FPGA設(shè)計(jì)中<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>時(shí)鐘</b>的使用方法