在使用Altium Designer繪制FPGA相關(guān)的電路原理圖的過程中,我們會遇到這樣的問題:FPGA和外圍設(shè)備以及相互之間需要進行信號線相連,由于在大型系統(tǒng)之中,使用到的FPGA和相關(guān)芯片具有大量的引腳(很多情況下多達千根以上),在引腳分配和信號線相連的過程之后中,需考慮很多其他的問題,比如引腳的輸入輸出、差分和電平標(biāo)準等特性,后期PCB布線時候的信號線是否交叉和長短,F(xiàn)PGA在連線過程中是否使用同一個Bank,Bank利用率與GC引腳的特性等。很多情況下設(shè)計步驟是先進行Verilog/VHDL邏輯設(shè)計,然而有的時候也需要先制作PCB板,再在此基礎(chǔ)上進行開發(fā)。因此整個過程會因為考慮的因素眾多以及管腳數(shù)量巨大而非常麻煩。
?
?
首先是FPGA的引腳分配問題。Xilinx公司的FPGA都有相關(guān)的Pinout and Package文檔,介紹某種型號FPGA引腳的功能、分類、排布以及封裝信息。但是工程師還是會遇到許多挑戰(zhàn),包括創(chuàng)建最初引腳分配、FPGA與原理圖相結(jié)合、以及確保FPGA的合理布線。Cadence OrCAD FPGA SystemPlanner正是為了解決這類問題的工具,下面一段介紹摘自
當(dāng)工程師在PCB板上設(shè)計大規(guī)模引腳FPGA時,他們將遇到一些挑戰(zhàn):包括創(chuàng)建最初引腳分配、FPGA與原理圖相結(jié)合、以及確保FPGA的合理布線。Cadence OrCAD FPGA SystemPlanner正是為了應(yīng)對如此的挑戰(zhàn),該模塊為FPGA和PCB的協(xié)同設(shè)計提供了一個完整的、并具有可擴展性的解決方案,它能使以創(chuàng)建最優(yōu)“器件-規(guī)則-準確”為目標(biāo)的引腳分配過程自動進行。使用自動引腳分配綜合技術(shù)來代替以前容易出錯的手動操作過程,就可通過這個獨特的布局解決方案減少在PCB板設(shè)計過程當(dāng)中出現(xiàn)的反復(fù)迭代次數(shù),同時縮短了創(chuàng)建最優(yōu)引腳分配所需要的時間。
在PCB板上進行大規(guī)模引腳的FPGA設(shè)計
在PCB板上集成結(jié)構(gòu)復(fù)雜的FPGA需要花費大量的時間,并且要延長設(shè)計周期,這些FPGA有很多不同種類的分配規(guī)則和需要用戶配置的引腳,通常這些FPGA的引腳是用戶通過手工操作一個挨著一個進行配置的,這些配置是在忽略PCB板上關(guān)鍵元件的擺放位置的情況下進行的,而這些關(guān)鍵元件恰恰是和FPGA相連接的。如果忽略以上操作給將來的PCB布線帶來的影響,基于FPGA的設(shè)計工程將被迫面臨兩個困難的選擇:非最優(yōu)的引腳分配,這可能增加所設(shè)計的PCB板的疊層數(shù);或者在設(shè)計周期的最后階段要進行一些不必要的設(shè)計迭代。即使經(jīng)過多次反復(fù),這種較容易出錯手動操作過程帶來的后果仍然是不必要的PCB重復(fù)設(shè)計。
如果使用手動操作對FPGA的引腳進行分配,這將增加對FPGA進行引腳分配的時間,用戶將不能在所提供的不同F(xiàn)PGA器件和其子系統(tǒng)當(dāng)中使用的器件設(shè)計之間進行權(quán)衡,因為進行權(quán)衡意味著用戶將同時處理兩個不同工程,而他們兩者之間并沒有設(shè)計相互借鑒之處。
Cadence OrCADFPGA System Planner為FPGA和PCB之間的協(xié)同設(shè)計提供了一種全面的、可擴展的解決方案,它能使用戶創(chuàng)建一個正確的、最優(yōu)的引腳分配。FPGA的引腳分配是根據(jù)用戶的指定、基于接口的連接(設(shè)計目標(biāo))、FPGA的引腳分配規(guī)則(FPGA規(guī)則)和FPGA在PCB板上的實際位置(相對位置)來進行自動綜合的。自動引腳分配綜合避免了用戶在手動操作過程當(dāng)中容易出現(xiàn)的錯誤,同時縮短了在PCB板上創(chuàng)建FPGA初始引腳分配的時間(關(guān)系到被擺放的FPGA的引腳分配綜合),這種獨特的、關(guān)系到擺放位置的引腳分配方法消除了在手動操作過程當(dāng)中容易出現(xiàn)的不必要的設(shè)計反復(fù)。
OrCAD FPGA System Planner集成在了OrCAD Capture和OrCAD PCB Editor當(dāng)中,它可以讀取Capture當(dāng)中的原理圖和元器件符號。另外,它可使用OrCAD PCB Editor當(dāng)中現(xiàn)有的封裝庫。如果FPGA在布線過程中的擺放位置發(fā)生了變化,可在OrCAD PCB Editor當(dāng)中直接調(diào)用FPGA System Planner進行的引腳優(yōu)化。
特點
OrCAD FPGASystem Planner技術(shù)
一個FPGA系統(tǒng)是整個PCB電路板設(shè)計下面的一個組成部分,其中包括其他和該FPGA相連接的一個或多個FPGA,以及其他的非FPGA元件。
傳統(tǒng)的引腳分配方法是典型的基于手動操作的引腳分配,或者常常要依靠一個電子表格來進行引腳分配。這些工具要求用戶在不考慮其他元器件的擺放位置,以及接口和信號線的可布線性的情況下進行引腳分配。首先,沒有在線規(guī)則檢查能確保為FPGA引腳指定的信號線分配到的引腳種類是正確的。這樣做帶來的后果是,用戶要在基于電子表格的工具和FPGA廠商提供的工具之間要進行很多的重復(fù)操作。
這樣做影響到了在當(dāng)前電路板層上不能完成對FPGA引腳進行布線的PCB布線設(shè)計者和接受這些PCB布線設(shè)計者紙面上或者口頭上引腳分配建議的FPGA設(shè)計者,在他們兩者之間常常增加很多不必要的重復(fù)操作。一旦FPGA設(shè)計者改變了最初的引腳分配,硬件設(shè)計者就得在所設(shè)計的原理圖當(dāng)中改變其引腳分配。這些不必要的重復(fù)操作將使設(shè)計周期延長幾周或者幾天的時間,同時給設(shè)計團隊成員增加了很多麻煩。由于是手動操作過程,未發(fā)現(xiàn)的錯誤很可能導(dǎo)致電路板必須重新制作,這是十分昂貴的。
雖然FPGA設(shè)計者、硬件設(shè)計者和PCB布線設(shè)計者可同時對引腳分配作自動更改,但是這樣做沒有解決導(dǎo)致這些重復(fù)操作的根本問題。引腳分配并非受以下的的三個因素所制約:FPGA資源可用性、FPGA供應(yīng)商的引腳分配規(guī)則、以及FPGA在PCB板上的布線可行性——在設(shè)計進程的最后要進行很多的重復(fù)操作,從而延長了在PCB板上集成如今復(fù)雜的、大規(guī)模引腳FPGA所要花費的時間。
指定設(shè)計意圖
OrCAD FPGA System Planner
使用FPGA器件庫來幫助用戶選擇所要使用到的元器件。它可使用OrCAD PCB Editor的封裝功能來查看FPGA的平面圖,它可以使用戶對FPGA系統(tǒng)元件進行快速布局。OrCAD FPGA System Planner能確定在FPGA子系統(tǒng)當(dāng)中各元件的可連接性,這是在高層次所定義的接口中進行的。用戶能創(chuàng)建諸如DDR2、DDR3、以及PCI總線的接口,這樣做便可確定FPGA和內(nèi)存DIMM模塊之間的可連接性,以及兩個FPGA之間的可連接性。OrCAD FPGA System Planner可以識別差分信號、電源信號、以及時鐘信號。
FPGA器件規(guī)則
OrCAD FPGA System Planner
提供一個精確的FPGA模型器件庫,元件庫里模型符合由FPGA器件供應(yīng)商指定的引腳分配規(guī)則和電氣規(guī)則。這些FPGA模型可在綜合引擎下面使用,這樣做確保其嚴格遵守由FPGA供應(yīng)商指定的電氣使用規(guī)則。這些規(guī)則約束諸如時鐘及時鐘區(qū)域的選擇、庫的分配、SSO預(yù)算、利用緩沖區(qū)驅(qū)動、I/O標(biāo)準電壓基準水平等等。在綜合過程中,OrCAD FPGA SystemPlanner自動檢查數(shù)百個這樣的規(guī)則,以確保FPGA的引腳得到準確和最佳的利用。
關(guān)系到擺放位置的引腳分配綜合
OrCAD FPGA System Planner
向用戶提供一種使用OrCAD PCB封裝來創(chuàng)建FPGA系統(tǒng)擺放位置的方法,用戶使用諸如DDRx、PCI Express、SATA、前端總線等等的接口在各元件之間以及各FPGA之間使用元件放置視角來確定其連接性,這些接口在設(shè)計當(dāng)中和FPGA以及其他元件相連接,這樣做縮短了用于確定FPGA系統(tǒng)設(shè)計方案的時間。
一旦確定了子系統(tǒng)當(dāng)中FPGA和其他元器件的連接,OrCAD FPGA System Planner根據(jù)用戶的設(shè)計意圖、現(xiàn)有的FPGA資源、FPGA周圍元器件的擺放位置、以及FPGA供應(yīng)商的引腳分配規(guī)則來對FPGA的引腳分配進行綜合。
OrCAD FPGA System Planner有一個內(nèi)置的DRC引擎,它能結(jié)合由FPGA供應(yīng)商提供的一些規(guī)則,比如引腳分配、參考電壓和終端設(shè)備等。這些符合規(guī)則的引擎能使FPGA得到正確的連接,從而防止了在PCB板制作過程當(dāng)中的重復(fù)制作。
引腳分配算法可使對某組引腳分配的接口信號線最優(yōu)化,這樣做減少了PCB板上的網(wǎng)絡(luò)交叉,改進了PCB板上網(wǎng)絡(luò)的布通率。
與Cadence創(chuàng)建的設(shè)計緊密相連
OrCAD FPGASystem Planner為FPGA子系統(tǒng)生成了OrCAD Capture原理圖文件。它使用的是OrCAD Capture元器件庫里現(xiàn)有的FPGA元器件符號。如果用戶愿意的話,F(xiàn)PGA System Planner產(chǎn)品還可以為FPGA創(chuàng)建單獨的符號,這需要基于每個元件庫的單個元器件符號的可連接性。
與FPGA供應(yīng)商提供工具集成
除了集成OrCAD PCB設(shè)計工具以外,OrCAD FPGA System Planner還和FPGA進行著緊密的通訊。它生成并讀取所支持FPGA供應(yīng)商的引腳分配約束文件。這些功能使得FPGA設(shè)計者能根據(jù)FPGA所需要的功能來評估引腳分配。FPGA設(shè)計者根據(jù)這些要求所做的更改可直接導(dǎo)入OrCAD FPGA SystemPlanner,使得整套引腳分配保持同步。
預(yù)布線過程中引腳分配的最優(yōu)化
考慮到FPGA在PCB板上的擺放位置和布線的最初的引腳分配,如果要減少FPGA設(shè)計者、PCB布線設(shè)計者和硬件設(shè)計者之間的設(shè)計迭代,在達到這個目標(biāo)之前有一段很長的路要走。PCB布線設(shè)計者一旦確定要在FPGA的接口和信號線上開始布線,它要進一步完善基于設(shè)計意圖、疊層約束、扇出選擇的FPGA引腳分配。OrCADFPGA System Planner為用戶提供了一種優(yōu)化FPGA引腳的方法,這種優(yōu)化在擺放FPGA之后,或者對FPGA的接口和信號線進行布線之后。
FPGA System Planner支持器件系列
Artix-7
Kintex-7
Spartan-3
Spartan-3A
Spartan-6 LX
Virtex-4
Virtex-4 FX
Virtex-4 LX
Virtex-4 SX
Virtex-5
Virtex-5 LX
Virtex-6 LXT
Virtex-7
Zynq
CandanceFPGA System Planner 使用介紹
具體使用可以參考該產(chǎn)品用戶指南《Allegro? FPGA System Planner User Guide》
?
?
該工具自帶Xilinx和Altera兩個公司的主流FPGA庫,基本不需要自己創(chuàng)建相關(guān)的元器件,另外包括一些常用的接口,處理器,SystemACE等庫。如果實際使用用使用到了其他的器件,可以自己創(chuàng)建相關(guān)的Part,使用相應(yīng)的菜單和向?qū)Ъ纯?,但是只提?種類型的封裝,平常使用已經(jīng)足夠。
?
自定義的器件不僅可以自定義管腳的數(shù)量,間距等信息,還能定義相關(guān)的IO方向,電平標(biāo)準以及分類管理。
?
連線的時候,可以右鍵編輯相應(yīng)的器件實例對象,選擇要連接的其他器件,并定義器件之間的連接規(guī)則(是否在同一Bank或哪幾個特定的Bank,時鐘域以及管腳連續(xù)分配),另外還提供一種叫做Deep and Wide的連接,可以相同器件的相同管腳連接到同一片F(xiàn)PGA的某些相同的管腳上,非常方便。
?
?
?
使用時只需要拖放相應(yīng)的器件到繪圖區(qū),自動生成元器件的實例對象,該對象可以進行旋轉(zhuǎn),平移等編輯操作,配置好相應(yīng)的連接關(guān)系,直接點擊Tools→Run design即可生成連接線。生成之后可以修改連接信號名稱,導(dǎo)出NetList等文件。
AltiumDesigner Scripting腳本系統(tǒng)
在完成連線之后,需要在Altium Designer中放置對應(yīng)引腳之間的網(wǎng)絡(luò)標(biāo)號NetLabel,由于Altium沒有提供相應(yīng)的自動化功能,這個工作在大規(guī)模引腳設(shè)計的時候如果手工操作也是十分繁重的工作量,也很容易出現(xiàn)錯誤。
幸好Altium Designer提供一套強大的腳本系統(tǒng)和完善的API,我們通過編寫JavaScript/Pascal/Delphi/VB等腳本,根據(jù)前面使用Candance FPGA SyatemPlanner導(dǎo)出的Netlist文件自動完成網(wǎng)絡(luò)標(biāo)號的添加,整個設(shè)計過程將會省去很多麻煩。
AltiumDesigner支持的腳本可以直接調(diào)用其提供的API,包括系統(tǒng)操作,Workspace和Project管理,Schemetic以及PCB編輯,也支持語言標(biāo)準庫的調(diào)用。代碼示例可以從+Examples+Reference#JScriptScripts找到,
不過Altium Designer自帶的腳本開發(fā)編輯器除了代碼智能提示之外沒有過多的亮點,使用的時候可能不會很順暢,讀者可以自行體驗。
?
評論