Vivado使用技巧(11):設定FPGA配置模式

FPGADesigner發表於2018-08-18

配置模式概述

Vivado設計過程中生成的bit流檔案需要通過特定的配置引腳匯入到FPGA中。專用配置引腳上的不同電壓級別決定了不同的配置模式。可選的配置模式有:

  • Master SPI x1/x2/x4
  • Master Serial
  • Slave Serial
  • Master BPI-Up x8/x16
  • Slave SelectMap x8/x16/x32
  • JTAG/Boundary Scan
  • Master SelectMap x8/16

不管是哪種配置模式,配置資料都是儲存在FPGA中的CMOS鎖存器中,每次掉電後資料都會丟失,上電之後重新配置。但是選擇一個片外儲存器如SPI Flash儲存配置資料,並設定相應的配置模式,上電後可以自動配置FPGA。

UG470和UG570分別對7系列和UltraScale系列的配置方法做了詳細介紹。本文只介紹在Vivado中的設定方法。每種配置模式都有一些相關的介面管腳,這些管腳可能分佈在不同的I/O bank中。Bank0中有一些專用管腳用於所有的配置模式;UltraScale的Bank65、7系列的Bank14和Bank15包含了各種配置模式的專用管腳。


設定配置模式

點選Tools->Edit Device Properties(需要開啟某一階段的設計才有此選項):
這裡寫圖片描述
在Configuration Modes標籤中選擇配置模式,可以選擇多個,並且JTAG作為最基本的配置模式總會被選中。點選配置模式會開啟一個新視窗:
這裡寫圖片描述
該視窗中可以檢視配置模式的具體資訊、相關管腳、原理框圖,點選Print可列印輸出原理框圖,用於硬體設計參考。設定配置模式會建立一條約束:

set_property CONFIG_MODE <configuration_mode> [current_design]

如果在配置介面中選中“Prohibit usage of the configuration pins as user I/O and persist after configuration“,即使在配置完成後,配置管腳也不會用作通用I/O,同時建立如下約束:

set_property BITSTREAM.CONFIG.PERSIST YES [current_design]

上述建立的約束需要點選儲存,如果設計已經有了XDC約束檔案,約束命令會新增到檔案末尾。


設定配置bank電壓

Xilinx FPGA有一個CFGBVS(Configuration Bank Voltage Select)管腳,該管腳在硬體上可以選擇連線到Vcc或GND,Vcc電壓可能是1.5、1.8、2.5或3.3,該電壓即為配置電壓。在Vivado中需要設定兩個對應的屬性CFGBVS(設定為Vcc或GND)和CONFIG_VOLTAGE(設定為對應配置電壓)。
這兩個屬性預設為空,如果不設定,在執行DRC檢查時會報告如下警告:
這裡寫圖片描述
這是因為DRC檢查需要根據這兩個值和Bank的IOSTANDARD來判斷是否 有設計規則錯誤。因此最好根據實際情況在Tools-> Edit Device Properties的Configuration標籤中設定這兩個值:
這裡寫圖片描述
該設定對應著兩條約束命令,需要儲存到約束檔案中:

set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]

這兩個屬性的設定一定要與硬體設計相符,且設定正確。比如,當使用JTAG配置模式時,CFGBVS設定為GND,CONFIG_VOLTAGE卻設定為3.3,會導致DRC檢查報告一個嚴重警報,提示應該將CONFIG_VOLTAGE必須設定為1.8V。另外需要知道,對於UltraScale+系列的FPGA晶片,不需要設定這兩個屬性。

相關文章