DFX設(shè)計(jì)中有4類Bitstream文件,包括:
Partialbitstreams
Blanking bitstreams
Clearingbitstreams
Full configuration bitstreams
Fullconfiguration bitstreams對(duì)應(yīng)的是靜態(tài)區(qū)加動(dòng)態(tài)區(qū)的完整設(shè)計(jì),因此,該文件與傳統(tǒng)的非DFX工程生成的bitstream從文件格式到文件結(jié)構(gòu)均是一致的。同時(shí)使用方法也是一致的。另外,一些特征如對(duì)bitstream文件進(jìn)行加密和壓縮也是支持的。另一方面,這里的RP可以是黑盒子,即RP沒(méi)有任何功能,這樣可以最大程度縮減bitstream大小,如果再結(jié)合bitstream的壓縮特性,那么就可以進(jìn)一步提升FPGA初始配置時(shí)間。Fullconfiguration bitstreams的加載過(guò)程如下圖所示。加載完成且驗(yàn)證通過(guò),DONE信號(hào)就會(huì)抬高,F(xiàn)PGA就進(jìn)入用戶模式,圖中綠色標(biāo)記。
Partial bitstreams
當(dāng)Full configuration bitstreams加載完成之后,就可以根據(jù)需要加載Partialbitstreams已切換動(dòng)態(tài)區(qū)的功能,這正是DFX的本質(zhì)。Partialbitstream有著和Full configuration bitstreams相同的文件結(jié)構(gòu),不同之處在于Partial bitstream僅針對(duì)FPGA指定區(qū)域也就是動(dòng)態(tài)區(qū)。此外,針對(duì)DFX,Partial bitstreams還具有幀CRC檢測(cè)和自動(dòng)初始化(加載Partial bitstream后動(dòng)態(tài)區(qū)可以進(jìn)入已知狀態(tài))功能,同樣也支持加密和壓縮功能。Partial bitstream文件的大小和動(dòng)態(tài)區(qū)的大小是成正比的,例如:RP大小是整個(gè)FPGA大小的20%,那么基本上Partial bitstream的大小也是Full configuration bitstream大小的20%。Partial bitstream是獨(dú)立的,包含了地址、頭、尾等具體信息,需要采用從模式加載如JTAG,Slave Serial或者Slave SelectMap,ICAP,PCAP(針對(duì)Zynq7000 SoC)和MCAP(針對(duì)UltraScale和UltraScale+)。Partial bitstream可通過(guò)命令write_bitstream自動(dòng)生成,也就是在生成Fullconfiguration bitstream的時(shí)候會(huì)自動(dòng)生成Partial bitstream文件,而無(wú)需額外操作。Partial bitstream的文件名也是有特定的規(guī)律的,假如
Fullconfiguration bitstream文件為
top_first.bit,
RP對(duì)應(yīng)的Pblock名字為pblock_red,
那么Partial bitstream文件名就為
top_first_pblock_red_partial.bit。
當(dāng)FPGA進(jìn)入用戶模式時(shí)就可以加載Partial bitstream文件,如下圖所示。對(duì)于UltraScale,在加載Partialbitstream之前先要加載Clearing bitstream,這時(shí)DONE信號(hào)為低,加載完Clearing bitstream之后,DONE信號(hào)依然保持低電平,之后加載Partial bitstream,完成之后DONE信號(hào)才會(huì)抬高。
Blankingbitstream
Blankingbitstream是一種特定的partial bitstream,它是在初始Configuration(靜態(tài)區(qū)+完整動(dòng)態(tài)區(qū))的基礎(chǔ)上,將靜態(tài)區(qū)替換為黑盒子,同時(shí)將相應(yīng)I/O插入LUT,這被稱為會(huì)盒子(Greybox,注意和Blackbox是不同的)如下圖所示。盡管這時(shí)動(dòng)態(tài)區(qū)的邏輯功能已經(jīng)被移除,但需要注意如果靜態(tài)區(qū)要從動(dòng)態(tài)區(qū)穿過(guò)也就是靜態(tài)區(qū)使用了動(dòng)態(tài)區(qū)的一些布線資源,那么這些布線資源仍然會(huì)被保留。
在Vivado圖形界面方式下,可以很容易將動(dòng)態(tài)區(qū)配置為Greybox,如下圖所示。如果采用Tcl腳本則需要注意使用兩次update_design命令,前者將動(dòng)態(tài)區(qū)替換為Blackbox,后者對(duì)動(dòng)態(tài)區(qū)相應(yīng)I/O插入LUT。
當(dāng)對(duì)輸出端口插入LUT時(shí),默認(rèn)情況下LUT輸出為低電平,但可通過(guò)如下Tcl腳本修改其輸出值,這里用到了屬性HD.PARTPIN_TIEOFF。
Clearing bitstreams
Clearingbitstreams只是針對(duì)UltraScale芯片(不包括UltraScale+芯片),這是器件結(jié)構(gòu)本身需求所決定的。Clearing bitstreams本身并不是Partialbitstreams,它只包含了動(dòng)態(tài)區(qū)小于10%的Frame,因此其大小也就小于對(duì)應(yīng)動(dòng)態(tài)Partial bitstreams的10%。它需要和相應(yīng)的Partial bitstream一起使用。例如設(shè)計(jì)中有一個(gè)RP,該RP下有兩個(gè)RM,分別為RM1和RM2,那么就會(huì)生成兩個(gè)Clearing bitstream文件:
rm1_rp1_partial_clear.bit
rm2_rp1_partial_clear.bit
也會(huì)生成兩個(gè)Partial bitstream文件:
rm1_rp1_partial.bit
rm2_rp1_partial.bit
當(dāng)由RM1切換到RM2時(shí),先加載rm1_rp1_partial_clear.bit,緊隨其后加載rm2_rp1_partial.bit。反之,由RM2切換到RM1時(shí),需要先加載rm2_rp1_partial_clear.bit,再加載rm1_rp1_partial.bit。工具會(huì)自動(dòng)生成Clearingbitstream文件,它和Partial bitstream文件的名字不同之處是在結(jié)尾多了“_clear”。
Copyright@FPGA技術(shù)驛站 轉(zhuǎn)載事宜請(qǐng)私信|獲得授權(quán)后方可轉(zhuǎn)載
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1629文章
21744瀏覽量
603660 -
文件
+關(guān)注
關(guān)注
1文章
566瀏覽量
24757 -
bit
+關(guān)注
關(guān)注
0文章
48瀏覽量
32019 -
dfx設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
6瀏覽量
97
原文標(biāo)題:DFX設(shè)計(jì)中有哪些bit文件?
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論