高級篇:第3章 LogicLock 設(shè)計方法發(fā)布時間:2010-07-02 15:45:45
LogicLock是Quartus II內(nèi)嵌的高級工具之一,通過FPGA物理位置的區(qū)域性約束完成提高設(shè)計性能、繼承以往設(shè)計成果、增量編譯和團隊化設(shè)計等功能。 本章主要內(nèi)容: . LogicLock設(shè)計方法簡介; . LogicLock區(qū)域; . LogicLock的約束注意事項; . 反標注布線信息; . LogicLock設(shè)計方法支持的Tcl Scripts; . QuartusII 基于模塊化的設(shè)計流程。 LogicLock設(shè)計方法簡介 LogicLock即邏輯鎖定,是Quartus II內(nèi)嵌的高級工具之一,其模塊化設(shè)計流程支持對復(fù)雜設(shè)計的某個模塊獨立地進行設(shè)計、實現(xiàn)與優(yōu)化,并將該模塊的實現(xiàn)結(jié)果約束在規(guī)劃好的FPGA區(qū)域內(nèi),這樣在進行設(shè)計整合時,能夠更好地集成每個模塊的實現(xiàn)結(jié)果。LogicLock設(shè)計工具支持傳統(tǒng)結(jié)構(gòu)化設(shè)計方法與大型設(shè)計推薦的團隊化設(shè)計方法,還能提高模塊復(fù)用效率,從而有效縮短設(shè)計周期。 LogicLock設(shè)計目標 . 提高設(shè)計性能。合理規(guī)劃邏輯鎖定區(qū)域,將物理關(guān)系密切的部分鎖定在相鄰的FPGA資源上,往往可以節(jié)約面積,確保時序關(guān)鍵路徑,提高區(qū)域時序性能。另外,合理地對時序關(guān)鍵路徑(critical path)進行邏輯鎖定,是編譯器自動時序優(yōu)化的有益補充 . 繼承設(shè)計實現(xiàn)結(jié)果。LogicLock可以對已經(jīng)成功滿足設(shè)計性能指標(面積與速度)的實現(xiàn)結(jié)果作為下次編譯的指導(dǎo)性文件,將成功的實現(xiàn)結(jié)果反標注到下次編譯與優(yōu)化中,從而繼承上次實現(xiàn)的成果,如反標注某個IP core。 . 支持增量式編譯。LogicLock支持增量式編譯,指導(dǎo)編譯工具增量實現(xiàn)整個設(shè)計,將未改變的區(qū)域反標注到下次編譯中,而僅僅對改變了部分進行新的優(yōu)化與編譯,從而節(jié)約編譯時間。 . 支持團隊化設(shè)計方法(team-based design flow)。每個工程師在FPGA內(nèi)部預(yù)先規(guī)劃好的區(qū)域內(nèi)完成設(shè)計的編譯、優(yōu)化和調(diào)試,然后將大家的編譯結(jié)果整合起來,這樣可以最充分地實現(xiàn)團隊協(xié)作與并行分工,提高設(shè)計效率,縮短設(shè)計周期。 LogicLock設(shè)計流程 大型、復(fù)雜或高性能要求的設(shè)計需要反復(fù)的設(shè)計編譯、時序分析、優(yōu)化才能達到時序收斂(timing closure)滿足設(shè)計的時序需求,負擔較大。而LogicLock設(shè)計流程的輸入模塊是已經(jīng)優(yōu)化并達到時序收斂的子模塊,通過LogicLock設(shè)計方法繼承以往編譯與實現(xiàn)的結(jié)果,在保證每個子模塊時序收斂的基礎(chǔ)上,達到頂層時序收斂,則整個設(shè)計時序收斂,故LogicLock設(shè)計流程能有效避免繁瑣的設(shè)計編譯、時序分析、優(yōu)化循環(huán)工作,提高設(shè)計效率。 LogicLock支持的器件族 . stratix & stratix II . stratix GX . cyclone & cyclone II . MAX II . excalibur . mercury(不支持浮動區(qū)域floating regions) . APEX & APEX II LogicLock 區(qū)域 區(qū)域region:指在FPGA物理平面圖Floorplan上規(guī)劃好的用于適配特定邏輯功能的矩形區(qū)域。大小和位置是區(qū)域的兩個基本特征,stratix、cyclone和MAX II器件族用x、y坐標表示區(qū)域的位置和大小,其他器件族用LAB/ESB或magelabs的標號表示區(qū)域大小和位置,用戶可以通過軟件或手動約束設(shè)置區(qū)域大小和位置。 LogicLock設(shè)計方法的核心是合理的規(guī)劃region。在altera支持的LogicLock的器件上創(chuàng)建合適的region,將設(shè)計使用到的資源規(guī)劃在矩形區(qū)域內(nèi),然后將經(jīng)過優(yōu)化的邏輯適配到事先規(guī)劃的region內(nèi),并將該區(qū)域反標注(back-annotate)到布局布線過程中,然后再將設(shè)計的其余部分集成起來,這樣就能繼承設(shè)計優(yōu)化的性能。 Region 的類型與常用屬性值 logiclock支持的區(qū)域類型 LogicLock區(qū)域的常用屬性值及其含義 在floorplan圖中可以看到區(qū)域的類型和位置標注(origin),stratix、cyclone和MAX II器件族的類型標注在區(qū)域的左下角。 region的創(chuàng)建方法 有4種: 1. 在LogicLock regions 窗口中創(chuàng)建區(qū)域; 2. 在時序收斂平面圖(timing closure floorplan)中單擊“create new region”按鈕,然后用鼠標在floorplan中規(guī)劃出一個矩形區(qū)域; 3. 在編譯結(jié)構(gòu)窗口(compilation hierarchy)中創(chuàng)建區(qū)域; 4. 使用Tcl 腳本創(chuàng)建區(qū)域。 LogicLock regions窗口 在Quartus II主菜單中選擇【assignment】/【LogicLock regions】/【LogicLock regions window】命令,打開邏輯鎖定區(qū)域窗口。該窗口由邏輯鎖定區(qū)域和區(qū)域?qū)傩詢刹糠纸M成,使用這個窗口可以完成創(chuàng)建區(qū)域并將節(jié)點node或?qū)嶓wentity適配到區(qū)域中的功能,在區(qū)域?qū)傩詸陲@示了設(shè)計中所有區(qū)域的所有屬性,用戶可以直接修改區(qū)域的大小、狀態(tài)、寬度、高度、是否為soft區(qū)域、是否保留區(qū)域reserved等屬性。打開LogicLock regions窗口的快捷鍵是ALT + L 基于LogicLock的模塊化設(shè)計流程如下: 1.合理規(guī)劃設(shè)計層次并劃分模塊; 2.使用Quartus II軟件自帶的綜合軟件或其他第三方綜合軟件,對設(shè)計的每個模塊進行綜合; 3.對每個子模塊建立Quartus II軟件工程,在每個獨立的工程中分別對每個子模塊進行設(shè)計優(yōu)化,以滿足每個子模塊的時序性能和面積目標,創(chuàng)建LogicLock區(qū)域; 4.當所有子模塊都滿足要求后,導(dǎo)出所有模塊和LogicLock區(qū)域的反標信息,作為后續(xù)設(shè)計的約束;5.建立頂層工程,根據(jù)設(shè)計要求選擇節(jié)點反標或布線反標,將每個子模塊的LogicLock區(qū)域反標信息導(dǎo)入頂層設(shè)計中; 6.編譯頂層設(shè)計,并觀察頂層設(shè)計是否滿足設(shè)計需要。 反標注布線信息 反標注(back-annotation)是LogicLock 設(shè)計流程中的重要環(huán)節(jié),通過反標注,用戶可以繼承以往經(jīng)過優(yōu)化的布局布線結(jié)果。LogicLock 的反標注分為兩個層次,第一種是節(jié)點反標注(node back-annotated ),第二種是布線反標注(routing back-annotated),前者反標注的對象是是LogicLock 區(qū)域需要繼承的邏輯節(jié)點的布局信息,而LogicLock 區(qū)域內(nèi)部的布線路徑仍然可以由Quartus II軟件根據(jù)一定策略自動進行優(yōu)化;后者標注的對象是需要繼承的邏輯的布線信息,LogicLock 區(qū)域內(nèi)部的布局布線信息都將被保留,兩者比較起來前者比較靈活,后者更忠于以往編譯成果。 反標注布線信息這一方法必須要慎重使用,因為該操作會禁用Quartus II軟件對反標注部分進行布線優(yōu)化,不當使用有可能會造成時序性能惡化。 |
|