引言:Vivado?Design Suite提供了幾種可能影響I/O和時(shí)鐘規(guī)劃的器件規(guī)劃功能。例如,FPGA配置方案、約束、配置電壓方式都會(huì)影響I/O和時(shí)鐘規(guī)劃?;蛘?,定義與封裝兼容的其他器件,以便在最終設(shè)計(jì)需要時(shí)更改FPGA器件時(shí),可以實(shí)現(xiàn)無(wú)縫銜接。建議在時(shí)鐘和I/O規(guī)劃前定義這些特殊的屬性。
1.1 定義兼容性器件
您可以為設(shè)計(jì)選擇兼容的FPGA,以便在必要時(shí)將設(shè)計(jì)重新定位到其他Xilinx?器件。Vivado工具在與當(dāng)前目標(biāo)部件相同的封裝中選擇兼容的Xilinx設(shè)備,以盡可能多地保留I/O分配。這可確保I/O引腳分配在選定的備用器件中可用。定義替代兼容零件,請(qǐng)執(zhí)行以下操作:
1)建立工程,執(zhí)行RTL分析或者綜合或者實(shí)現(xiàn)步驟;
2)上述步驟執(zhí)行完后,點(diǎn)擊任意下圖1中任意一個(gè)流程;
圖1
3)選擇Tools > I/O Planning > Set Part Compatibility。
圖2、選擇兼容性器件
在“設(shè)置器件兼容性”對(duì)話框中,選擇備用器件,然后單擊“確定”。
Vivado IDE識(shí)別所有選定備用器件共用的管腳,并為并非所有設(shè)備共用的管腳指定禁止約束。選擇其他替代器件時(shí),可用于放置的管腳數(shù)量可能會(huì)減少。此外,Vivado IDE自動(dòng)禁止將信號(hào)分配給所選備用設(shè)備中的任何未綁定管腳。此時(shí)會(huì)出現(xiàn)一個(gè)對(duì)話框,顯示禁止的封裝PIN數(shù)。您可以在封裝、封裝Pin、和器件窗口中查看。禁止使用的管腳由斜線圓圈圖標(biāo)表示。
另外,在器件選型手冊(cè)中也會(huì)給出器件封裝兼容器件選型,只進(jìn)行器件封裝兼容性選型。
圖3、器件選型兼容性描述
1.2 設(shè)置器件配置模式
由于Xilinx器件配置數(shù)據(jù)存儲(chǔ)在CMOS鎖存器中,因此器件每次通電時(shí)都必須重新配置。比特流通過特殊模式配置管腳加載到器件中,這些管腳用作多種不同配置模式的接口。通過在專用輸入引腳上設(shè)置適當(dāng)?shù)碾妷核絹?lái)選擇特定的配置模式。
每個(gè)配置模式都有一組相應(yīng)的接口引腳,這些引腳跨越器件上的一個(gè)或多個(gè)I/O Bank。Bank0包含專用配置引腳,并且始終是每個(gè)配置接口的一部分。UltraScale?和UltraScale+?中的Bank65和7系列器件中的Bank14和15包含用于各種配置模式的多功能管腳。
設(shè)置配置模式和查看配置信息可以執(zhí)行以下操作步驟:1)建立工程,執(zhí)行RTL分析或者綜合或者實(shí)現(xiàn)步驟。
圖4、配置選擇
2)選擇對(duì)應(yīng)的配置模式。
啟用配置模式復(fù)選框以設(shè)置該配置模式。設(shè)置配置模式時(shí):
-相關(guān)的I/O引腳顯示在Package pins窗口的Config列中。
-保存設(shè)計(jì)時(shí)將創(chuàng)建以下約束:
set_property BITSTREAM.CONFIG.PERSIST NO [current_design]
set_property CONFIG_MODE <configuration_mode> [current_design]
- 單擊配置模式打開一個(gè)對(duì)話框,您可以在其中查看信息,包括描述、配置圖和指向更多信息的鏈接。單擊“打印”以打印配置圖。
圖5、Master SPI×4配置模式
啟用禁止將配置管腳用作用戶I/O,并在配置后保持,以確保管腳在配置后用作配置管腳,而不是用作通用I/O。選擇此選項(xiàng)時(shí),保存設(shè)計(jì)時(shí)將創(chuàng)建以下約束:
set_property BITSTREAM.CONFIG.PERSIST YES [current_design]
圖6、禁止將配置管腳用作用戶I/O
注意:JTAG配置模式為始終選擇配置模式。除JTAG配置模式外,您還可以選擇一種配置模式。
3)配置模式選擇完成后,執(zhí)行File > Save Constraints,將當(dāng)前配置保存到.xdc約束文件中。
1.3 設(shè)置器件約束
在器件約束窗口(圖2-3)中,您可以設(shè)置約束,包括DCI_CASCADE和INTERNAL_VREF。Xilinx器件具有可配置的SelectIO?接口,支持許多標(biāo)準(zhǔn)接口的接口驅(qū)動(dòng)程序和接收器。具有包括驅(qū)動(dòng)強(qiáng)度和轉(zhuǎn)換率的可編程控制、使能數(shù)字控制阻抗(DCI)的片上終端,以及內(nèi)部生成參考電壓(INTERNAL_VREF)的能力。
圖7、器件約束窗口
根據(jù)I/O標(biāo)準(zhǔn),Xilinx DCI可以控制驅(qū)動(dòng)器的輸出阻抗,也可以為驅(qū)動(dòng)器、接收器或兩者添加并行終端,目的是精確匹配傳輸線的特性阻抗。DCI主動(dòng)調(diào)整I/O Bank內(nèi)的阻抗,以校準(zhǔn)VRN和VRP引腳上的外部精密參考電阻器。這可以補(bǔ)償由于工藝變化、溫度或電源電壓變化引起的I/O阻抗變化。DCI在每個(gè)I/O Bank中使用兩個(gè)多用途參考引腳來(lái)控制驅(qū)動(dòng)器的阻抗或組中所有I/O的并行端接值。
帶有差分輸入緩沖的單端I/O標(biāo)準(zhǔn)需要參考電壓VREF。當(dāng)I/O Bank內(nèi)需要VREF時(shí)(例如DDR3 I/O接口),請(qǐng)使用該Bank的以下引腳作為VREF電源輸入:
對(duì)于基于UltraScale體系結(jié)構(gòu)的器件,請(qǐng)使用專用的VREF引腳;
對(duì)于7系列器件,使用兩個(gè)多功能VREF引腳。
或者,可以使用INTERNAL_VREF約束生成內(nèi)部VREF。使用內(nèi)部參考電壓可以消除在PCB上提供特定VREF供電軌的需要,并且可以在給定I/O組中釋放多用途VREF引腳,用于其他I/O端口分配。每個(gè)I/O Bank都有一個(gè)VREF平面,每個(gè)Bank都可以將可選的INTERNAL_VREF設(shè)置為整個(gè)Bank電壓標(biāo)準(zhǔn)。注意 :當(dāng)是使用INTERNAL_VREF內(nèi)部參考電壓時(shí),與外部參考VREF相比,器件的性能可能會(huì)有所不同,例如DDR內(nèi)存接口。
1)產(chǎn)生DCI_CASCADE約束
選中需要設(shè)置DCI_CASCADE約束的Bank,右鍵選擇Add DCI_CASCADE,彈出對(duì)話框中選擇主Bank。
????????????????????????????????????圖8、設(shè)置DCI_CASCADE約束
.xdc約束文件設(shè)置DCI_CASCADE約束:
set_property DCI_CASCADE {34 35} [get_iobanks 33]
注意:當(dāng)使用這個(gè)Tcl命令時(shí),get_iobanks指定主Bank。在本例中,34和35是從Bank,33是主Bank。2)修改或移除DCI_CASCADE約束
要修改DCI級(jí)聯(lián),在設(shè)備約束窗口中執(zhí)行以下任一操作。
圖9、移除DCI_CASCADE約束
3)產(chǎn)生INTERNAL_VREF約束
Xilinx器件可以通過啟用INTERNAL_VREF約束,選擇性地使用內(nèi)部生成的參考電壓。內(nèi)部生成消除了在PCB上提供特定VREF供電導(dǎo)軌的需要,并將給定I/O Bank中的多用途VREF引腳釋放出來(lái),用作普通I/O引腳。
圖10、產(chǎn)生INTERNAL_VREF約束
要?jiǎng)?chuàng)建INTERNAL_VREF約束,請(qǐng)將I/O Bank拖放到設(shè)備約束窗口中所需的電壓文件夾(例如,0.75V或0.9V)。.xdc約束文件設(shè)置INTERNAL_VREF約束:
set_property INTERNAL_VREF 0.7 [get_iobanks 65]
set_property INTERNAL_VREF 0.84 [get_iobanks 69]
延伸閱讀:Xilinx 7系列SelectIO結(jié)構(gòu)之DCI(動(dòng)態(tài)可控阻抗)技術(shù)(一)
1.4 設(shè)置配置Bank管腳電壓選擇管腳
配置Bank電壓選擇管腳(CFGBVS)在VCCO_0和GND之間參考。CFGBVS引腳必須設(shè)置為高或低,以確定Bank0中引腳的I/O電壓支持。在Vivado工具中,可以使用Tcl命令將CFGBVS連接信息設(shè)置為VCCO或GND。您可以將配置電壓或VCCO_0電壓設(shè)置為1.5、1.8、2.5或3.3?;谶@些設(shè)置,7系列設(shè)備的DRC在Bank0、14和15上運(yùn)行。對(duì)于UltraScale設(shè)備,DRC在Bank0和65上運(yùn)行。
set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]默認(rèn)情況下,CFGBVS屬性為空。Vivado工具檢查CFGBVS屬性是否設(shè)置為VCCO或GND。如果CFGBVS屬性有值,Vivado工具會(huì)檢查CONFIG_MODE屬性。DRC是根據(jù)Bank IO標(biāo)準(zhǔn)和CFGBVS配置電壓設(shè)置發(fā)布的。
當(dāng)您導(dǎo)出到CSV文件時(shí),Vivado工具會(huì)根據(jù)CONFIG_MODE屬性的設(shè)置為相關(guān)Bank(7系列器件:Bank0、14和15;基于UltraScale體系結(jié)構(gòu)的器件:存Bank0和65)提供VCCO綁定信息。例如,如果使用JTAG/Boundary Scan,CFGBVS為GND,配置_電壓為3.3,則工具會(huì)發(fā)出嚴(yán)重警告:DRC CFGBVS-4。這表明CONFIG_VOLTAGE設(shè)置為3.3,必須改為設(shè)置為VCCO,其值為1.8。對(duì)于UltraScale+器件,無(wú)法手動(dòng)設(shè)置CFGBVS或CONFIG_VOLTAGE。默認(rèn)情況下,CFGBVS設(shè)置為GND,CONFIG_VOLTAGE設(shè)置為1.8V。