成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Xilinx FPGA Partial Reconfiguration 部分重配置 詳細(xì)教程

2024/02/10
4407
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

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

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

module count_add(

 input            clk,
 input            rst,
 output reg [7:0] res
 );

 always @ (posedge clk ) 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ù)。

module count_sub(
 input            clk,
 input            rst,
 output reg [7:0] res
 );

 always @ (posedge clk ) begin 
    if(rst)
        res <= 8'b0;
    else 
        res <= res - 1'b1;
 end       

endmodule

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

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

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

此時(shí)在Flow Navigator的PROJECT MANAGER下面就會(huì)出現(xiàn)Partial Reconfiguration Wizard的選項(xiàng)

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

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

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

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

當(dāng)我們?cè)?code>clk_gen_i0這個(gè)模塊上右鍵選擇Create Partition Definition時(shí),會(huì)提示下面的對(duì)話框:

module with out-of-context child module cannot be made into partition definition

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

Vivado中模塊封裝成edif和dcp

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

write_checkpoint -noxdef <path_to_file>

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

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

write_checkpoint -cell <path_to_cell> <path_to_file>

這兩種導(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操作的。

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

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

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

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

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

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

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

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

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

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

繪制Pblock是有講究的,其中最簡(jiǎn)單的兩個(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的話,就是完全按照我們指定的邊界。

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

只選擇PR即可

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

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

補(bǔ)充小知識(shí):

貓叔:Vivado中jobs和threads的區(qū)別?選擇多個(gè)jobs能加快實(shí)現(xiàn)速度么?

9. Generate Bitstream,OK

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

對(duì)于7系列的FPGA,會(huì)在impl_1文件夾下生成兩個(gè)bit文件:
wave_gen.bitinst_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模式的好處就是比較簡(jiǎn)單,敲的指令也比較少,如果是Non-Project模式,在這中間還需要很多操作,雖然麻煩,但對(duì)我們理解它的工作模塊很有幫助,有興趣的同學(xué)可以再用Non-Project模式下操作一遍。

加FPGA技術(shù)交流群的朋友,請(qǐng)加微信:xhclsys2

歡迎關(guān)注微信公眾號(hào):Quant_Times

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
A3P1000-PQG208I 1 Microsemi FPGA & SoC Field Programmable Gate Array, 1000000 Gates, CMOS, PQFP208, 0.50 MM PITCH, GREEN, PLASTIC, QFP-208
$79.9 查看
10M25SCE144I7G 1 Intel Corporation Field Programmable Gate Array, 25000-Cell, CMOS, PQFP144, 22 X 22 MM, 0.50 MM PITCH, ROHS COMPLIANT, PLASTIC, EQFP-144

ECAD模型

下載ECAD模型
$116.41 查看
A3P250-VQ100I 1 Microsemi Corporation Field Programmable Gate Array, 6144 CLBs, 250000 Gates, 350MHz, CMOS, PQFP100, 14 X 14 MM, 1 MM HEIGHT, 0.50 MM PITCH, VQFP-100

ECAD模型

下載ECAD模型
$29.79 查看
賽靈思

賽靈思

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場(chǎng)可編程邏輯門陣列,并由此成名。賽靈思還是第一個(gè)無廠半導(dǎo)體公司(Fabless)。28nm時(shí)代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領(lǐng)先提供商。且行業(yè)領(lǐng)先的器件與新一代設(shè)計(jì)環(huán)境以及 IP 完美地整合在一起,可滿足客戶對(duì)可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機(jī)構(gòu)

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場(chǎng)可編程邏輯門陣列,并由此成名。賽靈思還是第一個(gè)無廠半導(dǎo)體公司(Fabless)。28nm時(shí)代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領(lǐng)先提供商。且行業(yè)領(lǐng)先的器件與新一代設(shè)計(jì)環(huán)境以及 IP 完美地整合在一起,可滿足客戶對(duì)可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機(jī)構(gòu)收起

查看更多

相關(guān)推薦

保康县| 荆门市| 图们市| 镇巴县| 西盟| 汝阳县| 崇仁县| 华宁县| 韶山市| 辽中县| 密山市| 皮山县| 邵东县| 新昌县| 云林县| 渝北区| 通榆县| 台中市| 开封市| 芜湖市| 福建省| 石门县| 成武县| 原平市| 宜昌市| 贵定县| 涪陵区| 麻江县| 苍梧县| 桑植县| 富锦市| 罗源县| 都江堰市| 旅游| 富宁县| 建宁县| 江山市| 文昌市| 丰顺县| 湟中县| 宁国市|