91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

FPGA應(yīng)用中部分重配置的操作過程

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2021-07-05 15:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Partial Reconfiguration(部分重配置)在現(xiàn)在的FPGA應(yīng)用中越來越常見,我們這次的教程以Project模式為例來說明部分重配置的操作過程。

這里我們使用的Vivado版本是2017.2,使用的例程是Vivado自帶的wavegen工程,并在工程中增加一個(gè)計(jì)數(shù)器模塊,如下圖所示

3bfd9fd4-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

這個(gè)模塊的代碼也很簡單,就是加1計(jì)數(shù)

modulecount_add( inputclk, inputrst, outputreg[7:0]res ); always@(posedgeclk)begin if(rst) res<=?8'b0; ????else? ????????res?<=?res?+?1'b1; ?end??????? endmodule

我們要把這個(gè)模塊當(dāng)做Reconfiguration Module,把它替換成另外一個(gè)module: count_sub,就是每個(gè)周期減1計(jì)數(shù)。

modulecount_sub( inputclk, inputrst, outputreg[7:0]res ); always@(posedgeclk)begin if(rst) res<=?8'b0; ????else? ????????res?<=?res?-?1'b1; ?end??????? endmodule

下面開始進(jìn)行Partial Reconfiguration的配置

首先打開工程,并將其中一個(gè)Reconfiguration Module添加到工程中即可,這里我們選擇將count_add添加到工程中,選擇Tools->Enable Partial Reconfiguration

3c11bd52-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

出現(xiàn)下面的對(duì)話框,點(diǎn)擊Convert。該對(duì)話框是指如果使能了Partial Reconfiguration模式,是不能返回到普通模式的。

3c23ca1a-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

此時(shí)在Flow Navigator的PROJECT MANAGER下面就會(huì)出現(xiàn)Partial Reconfiguration Wizard的選項(xiàng)
3c5207ae-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

右鍵要reconfiguration的模塊,即inst_count,并選擇Create Partition Definition

3c61cb08-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

此時(shí),彈出對(duì)話框提示我們輸入創(chuàng)建的Partition的名字,我們起名為count_demo,點(diǎn)擊OK

3c957958-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

這時(shí)我們可以看到該模塊的圖標(biāo)發(fā)生了變化,變成了黃色的棱形,如下圖所示

3ca58c12-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

在這一步我們需要提醒一下,通常我們需要進(jìn)行PR的模塊都是比較復(fù)雜的模塊,里面很可能會(huì)包含IP Core,那樣的話我們就不能直接這樣操作,比如我們要對(duì)該工程中的clk_gen_i0模塊進(jìn)行PR,可以看到,這個(gè)模塊中包含了clk_core_i0這個(gè)IP

3cb66730-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述
當(dāng)我們?cè)赾lk_gen_i0這個(gè)模塊上右鍵選擇Create Partition Definition時(shí),會(huì)提示下面的對(duì)話框:
module with out-of-context child module cannot be made into partition definition

3cc3a526-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

這個(gè)意思是包含有ooc子模塊的模塊,是不能做成partiton的,Vivado中所有的IP Core都是ooc的模塊,因此我們需要把clk_gen_i0這個(gè)模塊導(dǎo)出成dcp后再使用,具體可以參考我的另一篇文章

Vivado中模塊封裝成edif和dcp

簡單來講,就是先將這個(gè)模塊設(shè)為top,綜合后導(dǎo)出dcp,使用的tcl腳本是

write_checkpoint-noxdef

有幾個(gè)需要RM(Reconfiguration Module)的模塊,就要綜合幾次,導(dǎo)出幾個(gè)dcp文件

我看網(wǎng)上也有的教程是直接對(duì)整個(gè)工程進(jìn)行綜合,然后單獨(dú)導(dǎo)出RM模塊的dcp,使用下面的tcl

write_checkpoint-cell

這兩種導(dǎo)出dcp的方式是有區(qū)別的,把整個(gè)工程進(jìn)行綜合,每個(gè)子模塊的接口很有可能會(huì)有所改變,可能是名字改了,也可能是增加或減少了一些接口。如果我們的幾個(gè)RM只是接口相同,功能不同的話,這樣帶有不同RM模塊的工程綜合的結(jié)果可能不一樣。因此推薦將RM模塊設(shè)為top,綜合后導(dǎo)出dcp。

另一點(diǎn)需要注意的是,如果使用了dcp文件,我們也添加一個(gè)wrapper.v到工程中,因此dcp文件是不能直接進(jìn)行Create Partition Definition操作的。

選擇左側(cè)導(dǎo)航欄的Partial Reconfiguration Wizard,開始添加RM

3cd02850-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

這里,點(diǎn)擊+號(hào)按鈕,出現(xiàn)下面對(duì)話框,首先點(diǎn)擊Add Files,選擇count_sub.v;然后輸入Reconfiguration Module Name,由于我們只有一個(gè)模塊,因此top的name可以不填;如下圖,Next

3ce11444-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

在這一步如果我們使用dcp文件和wrapper文件的話,需要把它們都添加進(jìn)來

編輯配置,點(diǎn)擊automatically create configurations,如果在這個(gè)界面沒看到這個(gè)auto…按鈕,就先返回到上一步,再next到這個(gè)界面,總會(huì)出現(xiàn)的;點(diǎn)擊后出現(xiàn)下面的界面:

3d07aa0a-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

我們修改配置的名字如下,next

3d360e9a-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

配置runs,也是先點(diǎn)擊automatically create configuration run

3d434934-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

3d5e3fc8-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

這個(gè)圖意思是工程中有兩個(gè)implention runs,第一個(gè)叫impl_1,這個(gè)里面跑的是包含有count_add模塊的程序;第一個(gè)叫child_0_impl_1,這個(gè)里面跑的是包含count_sub模塊的程序。Next到Finish。

開始綜合,完成后點(diǎn)擊Open Synthesized Design,并在Vivado右上角,切換到Floorplanning視圖

3d8c535e-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

郵件inst_count并點(diǎn)擊Draw Pblock

3d9a3d0c-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

選擇一個(gè)區(qū)域作為Pblock

3dab9b92-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

繪制Pblock是有講究的,其中最簡單的兩個(gè)規(guī)則就是:

Pblock區(qū)域中包含的資源能可以覆蓋我們模塊需要的資源

不能與其他的Pblock沖突

當(dāng)然,還有很多其他的規(guī)則,這里就不一一介紹了,如果Pblock沒畫好,很可能導(dǎo)致后面的DRC和Implementation不過。

關(guān)于該更多Pblock的說明,可以參考UG909手冊(cè)UG909

選中框之后,改一下框的屬性,將RESET_AFTER_RECONFIG的勾選中,意思是重新配置后,會(huì)復(fù)位這個(gè)Pblock里面的內(nèi)容;再將SNAPPING_MODE改為Routing(或者設(shè)為On),意思是如果我們的邊界選的不太好,Vivado會(huì)自動(dòng)處理,選off的話,就是完全按照我們指定的邊界。

3ddaecbc-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

點(diǎn)擊Tools->Report->Report DRC

3e270e80-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

只選擇PR即可

3e3aa72e-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

如果提示No Violations Found,則說明上面的操作過程沒有問題。

Run Implementation,可以看到有兩個(gè)runs需要進(jìn)行

補(bǔ)充小知識(shí):Vivado中jobs和threads的區(qū)別?選擇多個(gè)jobs能加快實(shí)現(xiàn)速度么?

3e4b2586-dbac-11eb-9e57-12bb97331649.png

在這里插入圖片描述

Generate Bitstream,OK

在這一步進(jìn)行前,Vivado會(huì)自動(dòng)執(zhí)行pr_verify,并生成_pr_verify.log文件。

對(duì)于7系列的FPGA,會(huì)在impl_1文件夾下生成兩個(gè)bit文件:
wave_gen.bit和inst_count_count_add_partial.bit,第一個(gè)bit文件是整個(gè)工程且包含count_add模塊的bit文件,第二個(gè)bit文件是當(dāng)我們需要進(jìn)行Partial Reconfiguration的時(shí)候需要下載的bit文件;在child_0_impl_1文件夾下會(huì)生成一個(gè)bit文件inst_count_count_sub_partial.bit,是當(dāng)我們需要進(jìn)行Partial Reconfiguration的時(shí)候需要下載的bit文件。

對(duì)于UltraScale系列的FPGA,會(huì)在生成*_partial.bit的同時(shí)多出來一個(gè)*_partial_clear.bit,意思是在進(jìn)行Partial Reconfiguration的時(shí)候,先下載*_partial_clear.bit把那一部分的內(nèi)容先清空,再下載*_partial.bit進(jìn)行配置。

使用Project模式的好處就是比較簡單,敲的指令也比較少,如果是Non-Project模式,在這中間還需要很多操作,雖然麻煩,但對(duì)我們理解它的工作模塊很有幫助,有興趣的同學(xué)可以再用Non-Project模式下操作一遍。

文章出處:【微信公眾號(hào):OpenFPGA】

責(zé)任編輯:gt

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

    關(guān)注

    1660

    文章

    22406

    瀏覽量

    636108
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2315

    瀏覽量

    98164

原文標(biāo)題:Xilinx FPGA Partial Reconfiguration 部分重配置 詳細(xì)教程

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Atmel AT17LV系列FPGA配置EEPROM的全面解析

    Atmel AT17LV系列FPGA配置EEPROM的全面解析 在FPGA設(shè)計(jì)領(lǐng)域,配置存儲(chǔ)器的選擇至關(guān)重要。Atmel的AT17LV系列FPGA
    的頭像 發(fā)表于 02-27 16:15 ?134次閱讀

    Labview接口(interface)的工作過程

    文字描述部分: 目的:產(chǎn)生隨機(jī)數(shù),當(dāng)隨機(jī)數(shù)達(dá)到某個(gè)閾值時(shí)觸發(fā)一個(gè)狀態(tài)事件。 創(chuàng)建過程: 1、用labview 模板創(chuàng)建root Actor ,這個(gè)根操作者,用來管理所有其他的Actor 2、創(chuàng)建一個(gè)
    發(fā)表于 02-03 11:07

    線束接頭氣密性檢漏設(shè)備的操作流程-岳信儀器

    操作過程需遵循標(biāo)準(zhǔn)步驟,以保障檢測(cè)的準(zhǔn)確性和安全性。以下是該設(shè)備的詳細(xì)操作流程。操作前,先進(jìn)行線束接頭氣密性檢漏設(shè)備準(zhǔn)備。將檢漏設(shè)備放置在穩(wěn)固、通風(fēng)良好的工作臺(tái)上,連
    的頭像 發(fā)表于 12-24 16:58 ?242次閱讀
    線束接頭氣密性檢漏設(shè)備的<b class='flag-5'>操作</b>流程-岳信儀器

    FPGA的圖像采集過程

    模塊設(shè)計(jì)時(shí)寫操作用了一個(gè)片內(nèi)FIFO作為寫緩存,并設(shè)計(jì)了向FIFO寫數(shù)據(jù)模塊將配置數(shù)據(jù)寫入FIFO中,之后模塊產(chǎn)生SPI時(shí)序完成一次寫操作。讀操作時(shí)用了一個(gè)片內(nèi)RAM作為寄存器數(shù)據(jù)讀緩
    發(fā)表于 10-29 06:23

    對(duì)浮點(diǎn)指令擴(kuò)展中部分問題的解決與分享

    ,這些問題總體上歸結(jié)于對(duì)蜂鳥的代碼沒有整體性的把握,對(duì)內(nèi)容的掌握程度還不夠。在后續(xù)的工作中應(yīng)注意理清功能的整體架構(gòu)而對(duì)所有的相關(guān)部分進(jìn)行修改。
    發(fā)表于 10-24 08:14

    硅片超聲波清洗機(jī)操作過程中常見問題及解決辦法

    在半導(dǎo)體制造領(lǐng)域,硅片超聲波清洗機(jī)是關(guān)鍵的設(shè)備之一。其主要功能是通過超聲波震動(dòng),將硅片表面的微小顆粒和污染物有效清除,確保其表面潔凈,實(shí)現(xiàn)高質(zhì)量的半導(dǎo)體生產(chǎn)。然而,在實(shí)際操作過程中,硅片超聲波清洗機(jī)
    的頭像 發(fā)表于 10-21 16:50 ?1684次閱讀
    硅片超聲波清洗機(jī)<b class='flag-5'>操作過程</b>中常見問題及解決辦法

    有哪些方法可以避免在電能質(zhì)量在線監(jiān)測(cè)裝置硬件故障檢測(cè)過程中對(duì)設(shè)備造成二次損壞?

    避免在電能質(zhì)量在線監(jiān)測(cè)裝置硬件故障檢測(cè)中造成二次損壞,需圍繞 “ 操作規(guī)范、工具適配、環(huán)境控制、風(fēng)險(xiǎn)預(yù)判 ” 四大核心,從檢測(cè)前準(zhǔn)備、操作過程、維修驗(yàn)證全流程管控,針對(duì)性規(guī)避 “靜電損傷、機(jī)械損壞
    的頭像 發(fā)表于 09-24 15:19 ?668次閱讀

    操作誤區(qū)警示:發(fā)動(dòng)機(jī)氣密性檢測(cè)儀新手易犯錯(cuò)誤-岳信儀器

    發(fā)動(dòng)機(jī)氣密性檢測(cè)儀在保障發(fā)動(dòng)機(jī)性能和質(zhì)量方面起著至關(guān)重要的作用。然而,對(duì)于新手來說,在操作過程中容易陷入一些誤區(qū),影響檢測(cè)結(jié)果的準(zhǔn)確性。以下是新手常見的操作誤區(qū)。新手常常忽視設(shè)備的預(yù)熱環(huán)節(jié)。發(fā)動(dòng)機(jī)
    的頭像 發(fā)表于 09-13 14:54 ?582次閱讀
    <b class='flag-5'>操作</b>誤區(qū)警示:發(fā)動(dòng)機(jī)氣密性檢測(cè)儀新手易犯錯(cuò)誤-岳信儀器

    開疆智能Ethernet轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接測(cè)聯(lián)無紙記錄儀配置案例

    本案例是通過Ethernet轉(zhuǎn)ModbusTCP網(wǎng)關(guān)將記錄儀數(shù)據(jù)傳送到歐姆龍PLC,具體操作過程如下。 歐姆龍PLC配置 首先打開主站組態(tài)軟件“Sysmac Studio”并新建項(xiàng)目。 設(shè)置PLC
    的頭像 發(fā)表于 08-15 18:04 ?790次閱讀
    開疆智能Ethernet轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接測(cè)聯(lián)無紙記錄儀<b class='flag-5'>配置</b>案例

    開疆智能CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接測(cè)聯(lián)無紙記錄儀配置案例

    本案例是通過CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān)將記錄儀數(shù)據(jù)傳送到三菱PLC,具體操作過程如下。
    的頭像 發(fā)表于 06-28 14:04 ?1015次閱讀
    開疆智能CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接測(cè)聯(lián)無紙記錄儀<b class='flag-5'>配置</b>案例

    各位大神,請(qǐng)教機(jī)械式光開關(guān)的制作過程

    各位大神,請(qǐng)教機(jī)械式光開關(guān)的制作過程,想了解一下準(zhǔn)直器將輸入端固定,通過驅(qū)動(dòng)馬達(dá)將不同輸出端準(zhǔn)直器與輸入端耦合。如何才能對(duì)準(zhǔn)。
    發(fā)表于 04-21 13:14

    網(wǎng)關(guān)基本配置操作步驟-ModbusRTU

    電子發(fā)燒友網(wǎng)站提供《網(wǎng)關(guān)基本配置操作步驟-ModbusRTU.pdf》資料免費(fèi)下載
    發(fā)表于 03-27 17:59 ?1次下載

    自動(dòng)稱重配料設(shè)備PLC數(shù)據(jù)采集遠(yuǎn)程監(jiān)控系統(tǒng)方案

    傳統(tǒng)的稱重配料方式,往往依賴大量人工操作。工人需要依次對(duì)各種原料進(jìn)行稱重、配料,這一過程耗時(shí)費(fèi)力。同時(shí)數(shù)據(jù)記錄也十分繁瑣,難以查找和整理。此外,稱重設(shè)備出現(xiàn)故障往往不能及時(shí)發(fā)現(xiàn),導(dǎo)致配料錯(cuò)誤進(jìn)行導(dǎo)致
    的頭像 發(fā)表于 03-21 14:31 ?998次閱讀

    如何使用ZPS-CANFD觀察CAN數(shù)據(jù)鏈路層的工作過程

    也可以完成對(duì)CAN總線數(shù)據(jù)鏈路層工作過程的觀察。什么是數(shù)據(jù)鏈路層在CAN總線應(yīng)用中,物理層一致性測(cè)試成為各CAN總線廠家必測(cè)的校驗(yàn)任務(wù),以此來保證總線或節(jié)點(diǎn)產(chǎn)品有
    的頭像 發(fā)表于 03-18 11:38 ?1005次閱讀
    如何使用ZPS-CANFD觀察CAN數(shù)據(jù)鏈路層的工<b class='flag-5'>作過程</b>

    為什么無法在RedHat中構(gòu)建OpenVINO? 2022.2?

    嘗試使用 RedHat* (UBI 9) 構(gòu)建OpenVINO? 2022.2 在 CMAKE 操作過程中遇到錯(cuò)誤
    發(fā)表于 03-05 08:25