中為需要做設(shè)計(jì)重用或者希望保留上次實(shí)現(xiàn)結(jié)果的模塊設(shè)定Partition屬性。Partition設(shè)定的對象可以是設(shè)計(jì)中任意層次的任意模塊,這些設(shè)計(jì)可以是HDL代碼、EDIF網(wǎng)表,甚至是原理圖格式。為設(shè)計(jì)模塊設(shè)定了Partition屬性以后,如果用戶對設(shè)計(jì)做了部分修改,然后再次運(yùn)行這個ISE工程,那么ISE會對比發(fā)生的改動。如果定義了Partition的模塊沒有改動,則ISE會根據(jù)保留級別的設(shè)置從數(shù)據(jù)庫中把Partition模塊上次的綜合網(wǎng)表、布局結(jié)果或者布線結(jié)果復(fù)制過來使用,其他有改動的Partition模塊和沒有定義Partition屬性的模塊會被ISE重新綜合和布局布線。這樣Partition模塊的網(wǎng)表結(jié)構(gòu)和時序結(jié)果就會與上次實(shí)現(xiàn)結(jié)果完全相同,從而達(dá)到設(shè)計(jì)重用的目的,如圖1所示。這種“復(fù)制”和“粘貼”Partition模塊的過程可以大幅度地縮短布局布線運(yùn)行時間`也可以完整地保留上次的實(shí)現(xiàn)結(jié)果`尤其是時序結(jié)果,用戶不必再擔(dān)心Partition模塊出現(xiàn)功能和時序上的差異。
圖1 Partition通過“復(fù)制”和“粘貼”實(shí)現(xiàn)設(shè)計(jì)重用
以下通過設(shè)計(jì)范例介紹如何在ISE中運(yùn)用Partition技術(shù)。
(1)生成一個新的Partition
創(chuàng)建ISE工程之后,設(shè)計(jì)者首先要從( Source)窗格中找到需要重用的模塊。然后為其生成一個Partition,具體操作如圖2所示。在【Source】窗格中展開設(shè)計(jì)層次,右擊相應(yīng)的模塊后。在彈出快捷菜單中單擊(New Partition)命令,為該模塊生成了一個Partition。
圖2 生成一個新的Partition
(2)設(shè)智Partion屬性
生成一個Partion后,該模塊的圖標(biāo)會改變,頂層模塊的圖標(biāo)也會為的,這表示設(shè)計(jì)中有些模塊設(shè)定了Partion識些礻嘗塊伯待實(shí)現(xiàn).存Partion性設(shè)皆屮還可以設(shè)定保留和重用的級捌,如圖3所示,右擊Panition模塊 ,【Propedies】命令.在對話框中的【Category】列表框中選擇【Partion】選14,然后在下邊的拉列表中選擇沒計(jì)保留和重用(ProseVC)的級別。選擇【Routing】選項(xiàng)表示綜合的網(wǎng)表,布局和布線信慮、公被保留,這足默認(rèn)的保留級別;選擇【Placement】選項(xiàng)表示保留綜合的網(wǎng)表和布局信息;選擇【Synthesis】選項(xiàng)表示只保留綜合的網(wǎng)表:選擇【Inhedt】選1項(xiàng)表示沿用上層父模塊的保留級別。如果上層父模塊木定義Partion,則保留默認(rèn),此時會看到名稱“Inherit(Routing)”。選擇后單擊【OK】按鈕。
圖3 設(shè)置Partion的保留級別
(3)運(yùn)行ISE工具得到實(shí)現(xiàn)結(jié)果
如圖4所示,實(shí)現(xiàn)過程結(jié)束之后,Paffition模塊的圖標(biāo)會改變,頊層模塊的圖標(biāo)也會變表示設(shè)計(jì)中的Partion模塊已經(jīng)完成實(shí)現(xiàn)。
圖4 Partition模塊已經(jīng)完成現(xiàn)實(shí)流程
在(Design Summary)窗格中可以看到關(guān)于Partition的報告信息,如圖5所示。
圖5 Partition Summary報告
(4)設(shè)計(jì)更新之后重新運(yùn)行ISE
如果Partition模塊未曾改動,那么ISE就會保留Partition上次實(shí)現(xiàn)的結(jié)果。設(shè)計(jì)者可以在Synthesis、MAP和PAR報告中看到關(guān)于Partition模塊的資源及狀態(tài)等信`患。在(Design Summary)窗格中也有關(guān)于Partition的報告信息,如圖6所示。在這個例子中我們?yōu)閡_phy_init_0兩個模塊定義了兩個Partition。第1次實(shí)現(xiàn)以后,u_phy_init_0模塊和其他模塊有過代碼改動,但Partition模塊u_phy_init_0沒有改動。從圖6可以看到ISE保留了u_phy_init_0上一次的實(shí)現(xiàn)結(jié)果。
圖6 設(shè)計(jì)更新并重新實(shí)現(xiàn)后的Partition Summary報告
(5)Partition的其他操作
如果設(shè)計(jì)者想刪除先前定義的Partition,可以在(Source )窗格中右擊相應(yīng)的Partition模塊,然后選擇(Delete Partition)命令。
如果設(shè)計(jì)者想暫時取消對某個Partition的保留狀態(tài),即這次實(shí)現(xiàn)不想保留以前的實(shí)現(xiàn)結(jié)果,而是重新綜合或?qū)崿F(xiàn),那么在右擊出現(xiàn)的快捷菜單中選擇對話框中( Partition Force)選項(xiàng)后,選擇取消保留哪個階段,如圖7所示。(Force Synthesis Out-of-date)選項(xiàng)表示不再保留上次的綜合結(jié)果,ISE需要重新綜合這個模塊;( Force“Implement Design”O(jiān)ut-of-date)選項(xiàng)表示不再保留上次的布局布線結(jié)果,ISE可以重新為這個模塊布局布線。
圖7 暫時取消Partiton的保留狀態(tài)
(6)注意事項(xiàng)
ISE工具選項(xiàng)或命令行的變動導(dǎo)致所有Partition模塊需要重新實(shí)現(xiàn),如map-timineeffort levels,以及任何命令行變化。
Partition支持層次嵌套,Partition可以應(yīng)用于任意層次的任意模塊。
Partition自動檢測設(shè)計(jì)文件的變化,這些文件既包括HDL代碼,也包括約束文件,如 UCF中的物理位置約束及針對Partition模塊的區(qū)域約束等。
Partition不要求有區(qū)域約束。
MPPR、logic_Opt及global_opt功能與Partition不兼容。
來源:ks990次