Vivado使用技巧(11):設定FPGA配置模式
配置模式概述
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晶片,不需要設定這兩個屬性。
相關文章
- Vivado使用技巧(19):使用Vivado Simulator
- Vivado使用技巧(24):HDL/XDC中設定綜合屬性
- Vivado使用技巧(22):綜合策略與設定的選擇
- Vivado使用技巧(12):設定DCI與內部參考電壓
- Vivado使用技巧(13):CSV檔案定義IO Ports
- Vivado使用技巧(27):RAM編寫技巧
- Vivado使用技巧(26):HDL編寫技巧
- Vivado使用技巧(15):DRC設計規則檢查
- Vivado使用技巧(17):建立IBIS模型模型
- Vivado使用技巧(6):Messages視窗管理
- Vivado使用技巧(29):約束功能概述
- Vivado使用技巧(20):Waveform功能詳解ORM
- Vivado使用技巧(18):模擬功能概述
- Vivado使用技巧(33):時序異常
- Vivado使用技巧(25):Block Synthesis技術BloC
- Vivado使用技巧(9):COE檔案使用方法
- Vivado使用技巧(4):查詢功能詳解
- Vivado使用技巧(3):Force Up-to-Date功能
- Vivado使用技巧(8):Core Container打包IP核AI
- Vivado使用技巧(34):路徑分割現象
- Vivado使用技巧(28):支援的Verilog語法
- FPGA基礎設計(6)使用DAC的Interleaved模式FPGA模式
- Vivado使用技巧(5):屬性編輯器的使用
- Vivado使用技巧(30):使用時序約束嚮導
- Vivado使用技巧(16):SSN轉換噪聲分析
- Vivado使用技巧(14):IO規劃方法詳解
- Vivado使用技巧(31):時鐘的約束方法
- Vivado使用技巧(23):綜合執行與OOC
- Vivado使用技巧(21):模擬中的Debug特性
- HDL/FPGA學習筆記二十五:Vivado PLL IP核的使用FPGA筆記
- Vivado使用技巧(32):IO延遲的約束方法
- Vivado使用技巧(7):使用IP核自帶Testbench進行模擬
- Vivado使用技巧(10):編輯與改寫IP核原始檔
- 設計模式11設計模式
- AndroidStudio基本設定,以及一些使用小技巧Android
- 設計模式【11】-- 搞定組合模式設計模式
- 設定performance模式ORM模式
- 深色模式設定模式