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 ? 來源:OpenFPGA ? 2023-07-05 09:05 ? 次閱讀

時(shí)鐘是每個(gè) FPGA 設(shè)計(jì)的核心。如果我們正確地設(shè)計(jì)時(shí)鐘架構(gòu)、沒有 CDC 問題并正確進(jìn)行約束設(shè)計(jì),就可以減少與工具斗爭的時(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è)簡單的示例,我們將實(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

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

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

要更改時(shí)鐘頻率輸出,我們有兩種選擇。如果只生成一個(gè)時(shí)鐘,我們可以使用名為 SetRate 的函數(shù)。該函數(shù)將通過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)行新操作。

更改頻率的代碼還是比較簡單的,如下:

#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)然,我們也可以使用類似的方法,通過將時(shí)鐘頻率降低來實(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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

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

    關(guān)注

    31

    文章

    5425

    瀏覽量

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

    關(guān)注

    0

    文章

    57

    瀏覽量

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

    關(guān)注

    0

    文章

    66

    瀏覽量

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

    關(guān)注

    0

    文章

    5

    瀏覽量

    7002

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

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

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    12864帶字庫串口怎么顯示時(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í)鐘速率是多少?

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

    請(qǐng)問怎樣平滑無誤地實(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)引起大家越來越多的重視,如何控制好SoC的功耗將成為芯片能否成功的重要因素。本文提出一種通過動(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 ?1312次閱讀
    <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ì)論述了通過控制改變MCU的時(shí)鐘頻率來降低功耗的設(shè)計(jì)方法。
    發(fā)表于 04-15 11:11 ?2388次閱讀
    低功耗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ì)論述了通過控制改變MCU的時(shí)鐘頻率來降低功耗的設(shè)計(jì)方法。 1 功耗產(chǎn)生的原因 在CMOS電路中,功耗損失主要包括靜態(tài)功耗損失和動(dòng)態(tài)功耗損失兩部分。其中靜態(tài)功耗
    發(fā)表于 12-01 17:39 ?624次閱讀
     低功耗MCU<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>時(shí)鐘</b>分析與應(yīng)用

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

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

    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 ?2186次閱讀

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

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

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

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

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

    RISC-V核低功耗MCU動(dòng)態(tài)時(shí)鐘門控技術(shù)解析

    ? ? ? RISC-V核低功耗MCU通過動(dòng)態(tài)時(shí)鐘門控技術(shù),實(shí)現(xiàn)了從模塊級(jí)到系統(tǒng)級(jí)的精細(xì)化功耗管理,顯著延長了智能終端設(shè)備的續(xù)航能力,并滿足工 業(yè)、汽車等場(chǎng)景的實(shí)時(shí)性要求?。 一、?技術(shù)原理與實(shí)現(xiàn)
    的頭像 發(fā)表于 04-24 15:11 ?221次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品