部分可重配置(PR)都成生成哪些.bit文件

  • 2020 年 3 月 12 日
  • 筆記

為便於說明,這裡我們假定設計如

FullConfiguration Bitstreams

對於上圖所示設計,不難判斷會有兩種configuration組合:

static+count_up+shift_left

static+count_down+shift_right

其餘兩種組合

static+count_down+shift_left

static+count_up+shift_right

可由前兩種組合變換而來,只需要將其中的count RP對應的bit文件替換為count_down的bit文件或shift RP對應的bit文件替換為shift_right的bit文件即可。在設計評估階段,通常會選擇每個RP下時序較難收斂的RM與static組合,構成top,按照傳統流程(非PR),檢查設計中的關鍵路徑,觀察設計能否時序收斂。非PR流程和PR流程都會生成針對整個設計的bit文件,兩者的格式、結構均一致。對於上述設計,會生成兩個Full Configuration Bitstreams:

config1_count_up_shift_left.bit

config2_count_down_shift_up.bit

PartialBitstreams

對於每個RM,PR流程都會生成相應的bit文件,稱之為Partial Bitstreams。通常,Partial Bitstreams的大小與RP對應的區域(每個RP的Pblock)成正比。例如,RP區域為整個FPGA資源的20%,那麼相應的Partial Bitstreams的大小大約為Full Configuration Bitstreams的20%。針對上述設計,會生成以下Partial Bistreams:

不難看出,其命名也很有規律:full bitstream名+RP對應的Pblock名。

BlankingBitstreams

不同於full configuration bitstreams和partial bitstreams,Blanking bitstreams並不會由工具自動生成。生成Blanking bitstreams時,需要將RM設置為greybox。這裡greybox並不是空設計,而是將RM的輸入輸出管腳連接到LUT。對於Vivado 2016.1之前的版本,如果目標晶片為7系列或Zynq,Blanking Bitstreams是建議生成的,其功能類似於後續要介紹的Clearing Bitstreams。從Vivado 2016.1版本開始,該Bitstreams不再需要。

ClearingBitstreams

不同於上述Bitstreams,Clearing Bitstreams只針對UltraScale系列晶片(不包括UltraScale Plus)。UltraScale系列晶片的結構決定了在載入新的RM對應的bit文件時需要先做清除工作,可以簡單地理解為刪除當前RP區域的邏輯(實際上並不是如此,而是關掉了該區域的時鐘)。需要明確一點的是Clearing Bitstreams並不是Partial Bitstreams,其大小通常小於Partial Bitstreams的10%。同時,在切換Partial Bitstreams時一定要用到Clearing Bitstreams。例如count RP下的兩個RM,count_up和count_down。當前的Partial Bitstreams為count_up,如果需要切換到count_down,就需要先載入count_up_clear.bit,再載入count_down.bit。

綜上所述,PR流程可能會產生四類.bit文件:

Full Configuration Bitstreams

Partial Bitstreams

Blanking Bitstreams

Clearing Bitstreams(只針對UltraScale系列晶片)

針對上圖所示設計,如果目標晶片為UltraScale系列晶片,其生成的bit文件如下圖所示。

Tags: