国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用

這篇具有很好參考價(jià)值的文章主要介紹了【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

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

【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用,fpga開發(fā)

但對(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í)鐘頻率。

【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用,fpga開發(fā)

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

【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用,fpga開發(fā)

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

【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用,fpga開發(fā)

接下來我們將在 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)行新操作。

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

#include?<stdio.h>
#include?"platform.h"
#include?"xil_printf.h"

#include?"xclk_wiz.h"

XClk_Wiz?ClkWiz_Dynamic;
XClk_Wiz_Config?*CfgPtr_Dynamic;

#define?XCLK_WIZARD_DEVICE_ID??XPAR_CLK_WIZ_0_DEVICE_ID
#define?XCLK_US_WIZ_RECONFIG_OFFSET?0x0000025C
#define?CLK_LOCK???1

int?main()
{
????init_platform();
????int?Status;
????print("Hello?World\n\r");

????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();
????return?0;
}

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

【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用,fpga開發(fā)【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用,fpga開發(fā)

參考文獻(xiàn)

?

https://blog.csdn.net/qq_31799983/article/details/109407898

?
?

https://www.adiuvoengineering.com/post/microzed-chronicles-dynamic-clocking

?
?

https://docs.xilinx.com/r/en-US/pg065-clk-wiz文章來源地址http://www.zghlxwxcb.cn/news/detail-529236.html

?

到了這里,關(guān)于【Vivado那些事兒】動(dòng)態(tài)時(shí)鐘的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【FPGA異步時(shí)鐘域約束方法】——Vivado時(shí)鐘組約束

    【FPGA異步時(shí)鐘域約束方法】——Vivado時(shí)鐘組約束 在 FPGA 設(shè)計(jì)過程中,由于存在多時(shí)鐘域的情況,需要采取一定的策略來處理時(shí)序約束問題。其中,異步時(shí)鐘域是一種常見的設(shè)計(jì)需求,為了保證設(shè)計(jì)時(shí)序的正確性和穩(wěn)定性,我們需要使用 Vivado 提供的時(shí)鐘組約束方法來對(duì)異步時(shí)

    2024年02月04日
    瀏覽(22)
  • 當(dāng)“代碼農(nóng)”遇上“碼農(nóng)”:揭秘主干開發(fā)的那些事兒

    當(dāng)“代碼農(nóng)”遇上“碼農(nóng)”:揭秘主干開發(fā)的那些事兒

    前段時(shí)期我負(fù)責(zé)部門內(nèi)部主干開發(fā)落地相關(guān)事宜,這個(gè)過程中,也真真切切的體會(huì)到了多人開發(fā)過程中,面對(duì)特性分支管理中,大家遇到的一些困擾,尤其面對(duì)敏捷迭代的開發(fā)方式,合并沖突,集成測(cè)試,代碼重用等方面,都與高效兩個(gè)字背離。當(dāng)然,我在推進(jìn)主干開發(fā)過程

    2024年02月08日
    瀏覽(18)
  • 國(guó)慶發(fā)生的那些事兒------編寫了炫酷的HTML動(dòng)態(tài)鼠標(biāo)特效,超級(jí)炫酷酷酷!

    國(guó)慶發(fā)生的那些事兒------編寫了炫酷的HTML動(dòng)態(tài)鼠標(biāo)特效,超級(jí)炫酷酷酷!

    國(guó)慶假期的歡樂,當(dāng)然少不了編碼愛好者!假期編寫了炫酷的HTML動(dòng)態(tài)鼠標(biāo)特效,超級(jí)炫酷酷酷!讓你的頁(yè)面變得更加炫酷,讓你的小伙伴們羨慕的大神編碼!快來看看大神是如何編寫的吧! HTML動(dòng)態(tài)鼠標(biāo)特效 效果圖 動(dòng)態(tài)鼠標(biāo)效果.html mouse.js 效果圖 炫酷的HTML動(dòng)態(tài)鼠標(biāo)特效,超

    2024年02月02日
    瀏覽(33)
  • FPGA時(shí)鐘資源與設(shè)計(jì)方法——Xilinx(Vivado)

    1.時(shí)鐘資源包括:時(shí)鐘布線、時(shí)鐘緩沖器(BUFGBUFRBUFIO)、時(shí)鐘管理器(MMCM/PLL)。 2.時(shí)鐘類型有三種:全局時(shí)鐘,可以驅(qū)動(dòng)整個(gè)內(nèi)核上的同步邏輯;局部時(shí)鐘,可以驅(qū)動(dòng)特定和相鄰區(qū)域的邏輯;IO時(shí)鐘,可以驅(qū)動(dòng)某個(gè)IO的特定邏輯。 3.混合模式時(shí)鐘管理器(MMCM)和數(shù)字時(shí)鐘管理

    2024年02月22日
    瀏覽(24)
  • vivado中的FPGA時(shí)鐘管理單元PLL學(xué)習(xí)記錄

    vivado中的FPGA時(shí)鐘管理單元PLL學(xué)習(xí)記錄

    FPGA中時(shí)鐘管理模塊(CMT)包括PLL和MMCM,用于將時(shí)鐘倍頻(比如輸入時(shí)鐘25M,我們要產(chǎn)生50M時(shí)鐘)、分頻(在不影響系統(tǒng)功能的前提下,較低的工作時(shí)鐘,能夠降低系統(tǒng)功耗)、改變相位偏移或占空比等。 當(dāng)需要上板時(shí),由于板上晶振時(shí)鐘固定,所以其他頻率的時(shí)鐘產(chǎn)生就要用到

    2024年01月16日
    瀏覽(23)
  • 基于vivado(語言Verilog)的FPGA學(xué)習(xí)(5)——跨時(shí)鐘處理

    基于vivado(語言Verilog)的FPGA學(xué)習(xí)(5)——跨時(shí)鐘處理

    慢時(shí)鐘到快時(shí)鐘一般都不需要處理,關(guān)鍵需要解決從快時(shí)鐘到慢時(shí)鐘的問題,因?yàn)榭赡軙?huì)漏信號(hào)或者失真,比如: 第一種辦法是開環(huán)解決方案,也就是人為設(shè)置目標(biāo)信號(hào)脈寬大于1.5倍的周期。但是容易和設(shè)計(jì)要求沖突 所以第二個(gè)大方法是閉環(huán)解決方案,也就是從改善同步方

    2024年02月03日
    瀏覽(22)
  • Xilinx FPGA開發(fā)環(huán)境vivado使用流程

    Xilinx FPGA開發(fā)環(huán)境vivado使用流程

    第一步:點(diǎn)擊Add Sources按鈕 第二步:選擇add or create design sources按鈕,即添加設(shè)計(jì)文件 第三步:選擇create file 文件新建完成后: 此時(shí)可以定義I/O端口,我們選擇自己在程序中編寫。 第四步:在編輯器中編寫verilog程序 XDC文件里主要是完成管腳的約束,時(shí)鐘的約束,以及組的約

    2024年02月03日
    瀏覽(34)
  • 開發(fā)那些事兒:H.264轉(zhuǎn)碼H.265出現(xiàn)崩潰并報(bào)錯(cuò)“missing picture”該如何解決?

    開發(fā)那些事兒:H.264轉(zhuǎn)碼H.265出現(xiàn)崩潰并報(bào)錯(cuò)“missing picture”該如何解決?

    由于瀏覽器對(duì)H.265視頻編碼格式的支持并不友好,所以我們?cè)贓asyCVR平臺(tái)中開發(fā)了H.265轉(zhuǎn)碼H.264的功能,該功能可以在不改變攝像機(jī)設(shè)置的情況下實(shí)現(xiàn)視頻流轉(zhuǎn)碼播放。我們?cè)诖饲暗奈恼轮泻痛蠹以敿?xì)介紹過這個(gè)功能,感興趣的用戶可以戳這篇文章:《EasyCVR平臺(tái)視頻轉(zhuǎn)碼介紹:

    2023年04月13日
    瀏覽(42)
  • FPGA開發(fā) -- Vivado使用VSCode編譯帶圖文(安裝 語法校驗(yàn) 自動(dòng)縮進(jìn) )

    FPGA開發(fā) -- Vivado使用VSCode編譯帶圖文(安裝 語法校驗(yàn) 自動(dòng)縮進(jìn) )

    目錄 一 前言 Vivado 版本 Vivado 2018.03 芯片 ZYNQ-XC7Z010 VSCode 安裝最新版本就行 二 Vivado 設(shè)置編譯方式 Tools ?Text Editor 設(shè)置 VSCode 地址 ?編輯三 VSCode 插件安裝 1.?Verilog HDL/SystemVerilog ?打開vscode,打開拓展界面 ?環(huán)境變量設(shè)置 2. SystemVerilog ?編輯?設(shè)置為默認(rèn)縮進(jìn)軟件(如圖所示)

    2024年04月10日
    瀏覽(26)
  • Vivado開發(fā)FPGA使用流程、教程 verilog(建立工程、編譯文件到最終燒錄的全流程)

    Vivado開發(fā)FPGA使用流程、教程 verilog(建立工程、編譯文件到最終燒錄的全流程)

    目錄 一、概述 二、工程創(chuàng)建 三、添加設(shè)計(jì)文件并編譯 四、線上仿真 五、布局布線 六、生成比特流文件 七、燒錄 一、概述 vivado開發(fā)FPGA流程分為創(chuàng)建工程、添加設(shè)計(jì)文件、編譯、線上仿真、布局布線(添加約束文件)、生成比特流文件、燒錄等步驟,下文將按照這些步驟講

    2024年02月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包