本發明涉及電子技術領域,尤其涉及可編程邏輯器件布局方法及裝置。
背景技術:
隨著電子技術的飛速發展,數字電路的設計腳步也逐漸加快。可編程邏輯器件(Programmable Logic Device,PLD)因其具有可編程特性,有效降低了電路設計成本,縮短了系統設計的周期,提高了設計開發的靈活性。在對可編程邏輯器件進行設計時,通常是由設計人員在EDA終端(例如運行有EDA程序的計算機)上使用硬件描述語言對應用設計進行邏輯描述與邏輯綜合,然后進行布局布線,最后成功生成位流下載到芯片上。
布局布線是可編程邏輯器件中舉足輕重的過程,因為布局布線的處理效果可能直接影響到可編程邏輯器件的性能:例如,在可編程邏輯器件中,有些特殊的邏輯單元,如APM(乘法單元)或DRM(存儲單元),只能被部署在預先被規劃出的、面積較小的合理部署區域中。一旦預先規劃出的合理部署區域被占用,或者是因為其他原因使得這些邏輯單元被部署到了合理部署區域以外的地方,則可能會導致可編程邏輯器件布局不合理,需要大肆調整的問題。
目前,現有技術中通常基于全局密度模型對需要部署到可編程邏輯器件上的所有邏輯單元進行部署。全局密度模型是根據可編程邏輯器件上實際部署完成的各邏輯單元以及各邏輯單元設置位置而抽象建立的一種軟件模型,其能夠體現可編程邏輯器件上各個區域當前邏輯單元部署的密集程度。現有技術中在需要部署一個邏輯單元時,會直接根據全局密度模型,并基于密度最小原則選擇可編程邏輯器件上當前密度最小的區域作為當前待部署邏輯單元的設置位置,以滿足可編程邏輯器件擁塞度小的要求。在這種情況下,APM與DRM的合理部署區域很有可能被其他邏輯單元占用從而導致APM或DRM只能設置到其他區域中;或者也有可能存在這種情況:在部署APM或DRM時,雖然APM或DRM的合理部署區域上還有足夠的空間,但是根據全局密度模型的指示,其他區域的密度更低,更適合設置APM或DRM,從而使得APM或DRM被設置到合理部署區域以外。也就是說,全局密度模型給出了錯誤的指示,從而導致可編程邏輯器件的布局不合理。
綜上,現在亟需提出一種新的可編程邏輯器件布局方案,用以解決現有技術中單純基于全局密度模型對可編程邏輯器件進行布局而導致合理部署區域較小的邏輯單元無法被合理部署的問題。
技術實現要素:
本發明提供的可編程邏輯器件布局方法及裝置,主要解決的技術問題是:解決現有技術中基于全局密度模型對可編程邏輯器件進行布局,導致合理部署區域小的邏輯單元無法被合理部署的問題。
為解決上述技術問題,本發明實施例提供一種可編程邏輯器件布局方法,包括:
從需要部署到可編程邏輯器件上的各邏輯單元中篩選出滿足預設條件的第一邏輯單元,所述預設條件包括自身合理部署區域小于預設面積閾值;
根據預先創建的部署指示對所述第一邏輯單元進行部署設置,所述部署指示基于所述第一邏輯單元的合理部署區域創建,用于指示將所述第一邏輯單元部署到其合理部署區域;
對除第一邏輯單元以外的需要部署到可編程邏輯器件上的其他邏輯單元進行部署。
進一步地,所述預設條件還包括:要求與自身相連的第二邏輯單元的時延小于預設時延閾值。
進一步地,對除第一邏輯單元以外的需要部署到可編程邏輯器件上的其他邏輯單元進行部署包括:
對第二邏輯單元進行部署,所述第二邏輯單元為與所述第一邏輯單元相連的邏輯單元;
在所述第二邏輯單元部署完成后部署第三邏輯單元,所述第三邏輯單元為除第一邏輯單元與第二邏輯單元以外需要部署到所述可編程邏輯器件上的邏輯單元。
進一步地,對第二邏輯單元進行部署包括:
以所述第一邏輯單元的第一部署位置為中心,根據各所述第二邏輯單元與所述第一邏輯單元之間的距離要求確定所述第二邏輯單元的第二部署位置;
根據確定出的所述第二部署位置設置所述第二邏輯單元。
進一步地,在所述第二邏輯單元部署完成后部署第三邏輯單元包括:
建立所述可編程邏輯器件上已部署邏輯單元的全局密度模型;
根據所述全局密度模型選擇密度小于預設密度閾值的區域設置所述第三邏輯單元。
進一步地,所述可編程邏輯器件包括現場可編程門陣列。
進一步地,所述第一邏輯單元包括乘法單元和/或存儲單元。
進一步地,根據預先創建的部署指示對所述第一邏輯單元進行部署設置之前還包括:
確定所述第一邏輯單元的合理部署區域;
為所述可編程邏輯器件上的各區域設置合理梯度,所述合理梯度用于表征對應區域部署所述第一邏輯單元合理性的高低,所述合理梯度值越小則表征越適合部署所述第一邏輯單元,距離所述合理部署區域越近,則合理梯度值越小;
將所述合理梯度作為所述部署指示;
根據預先創建的部署指示對所述第一邏輯單元進行部署設置包括:
根據所述可編程邏輯器件上的各區域的合理梯度,選擇合理梯度值變化最大的區域設置所述第一邏輯單元。
進一步地,根據預先創建的部署指示對所述第一邏輯單元進行部署設置之前還包括:
確定所述第一邏輯單元的合理部署區域,為所述合理部署區域設置合理標識,并將所述部署合理梯度作為所述部署指示;
根據預先創建的部署指示對所述第一邏輯單元進行部署設置包括:
選擇所述可編程邏輯器件上具有合理標識的區域部署所述第一邏輯單元。
本發明實施例還提供一種可編程邏輯器件布局裝置,包括:
篩選模塊,用于從需要部署到可編程邏輯器件上的各邏輯單元中篩選出第一邏輯單元,所述第一邏輯單元為合理部署區域小于預設面積閾值且對要求之相連的第二邏輯單元的時延小于預設時延閾值的邏輯單元;
第一部署模塊,用于根據預先創建的部署指示對所述第一邏輯單元進行部署設置,所述部署指示基于所述第一邏輯單元的合理部署區域創建,用于指示將所述第一邏輯單元部署到其合理部署區域;
其他部署模塊,用于對除第一邏輯單元以外的需要部署到可編程邏輯器件上的其他邏輯單元進行部署。
本發明的有益效果是:
本發明提供的可編程邏輯器件布局方法及裝置,通過從需要部署到可編程邏輯器件上的各邏輯單元中篩選出合理部署區域小于預設面積閾值的第一邏輯單元,并在對其他邏輯單元進行部署以前,先根據預先創建的部署指示對第一邏輯單元進行部署設置。基于部署指示的指示作用,保證盡量將第一邏輯單元設置到其自身的合理部署區域內。然后才對除第一邏輯單元以外的其他邏輯單元進行部署。在確保第一邏輯相對其他邏輯單元的有限合理部署區域不被其他邏輯單元占用的基礎上,保障第一邏輯單元被設置到自身的合理部署區域,提升對第一邏輯單元布局的合理性,進而提升可編程邏輯器件整體布局的正確性。降低了在布局完成后再對可編程邏輯器件上邏輯單元進行大范圍挪動修改的風險,提升了可編程邏輯器件布局的效率和性能。
附圖說明
圖1為本發明實施例一提供的可編程邏輯器件布局方法的一種流程圖;
圖2為本發明實施例一中創建基于合理梯度的部署指示的一種流程圖;
圖3為本發明各實施例中為可編程邏輯器件上各區域設置合理梯度值的一種示意圖;
圖4為本發明各實施例中為可編程邏輯器件上各區域設置合理梯度值的另一種示意圖;
圖5為本發明各實施例中為可編程邏輯器件上各區域設置合理梯度值的又一種示意圖;
圖6為本發明實施例二提供的可編程邏輯器件布局裝置的一種結構示意圖;
圖7為本發明實施例二提供的可編程邏輯器件布局裝置的另一種結構示意圖;
圖8為本發明實施例二提供的用于部署可編程邏輯器件布局裝置的一種終端的硬件結構示意圖。
具體實施方式
下面通過具體實施方式結合附圖對本發明實施例作進一步詳細說明。
實施例一:
為了提升可編程邏輯器件布局的合理性,保障那些在可編程邏輯器件上并不是全局都可部署的邏輯單元,即那些自身合理部署區域較小的邏輯單元能夠被合理部署,本實施例提供一種可編程邏輯器件布局方法,請參見圖1:
S102、可編程邏輯器件布局裝置從需要部署到可編程邏輯器件上的各邏輯單元中篩選出滿足預設條件的第一邏輯單元。
在本實施例中,第一邏輯單元是需要部署到可編程邏輯器件上的邏輯單元中滿足預設條件的邏輯單元,預設條件中包括自身的合理部署區域小于預設面積閾值。也就是說,作為第一邏輯單元的必要條件是一個邏輯單元自身的合理部署區域小于預設面積閾值。
可編程邏輯器件布局裝置根據預設面積閾值篩選出合理部署區域較小的邏輯單元作為第一邏輯單元,便于后續部署過程能夠根據各邏輯單元合理部署區域的大小來分時序部署。預設面積閾值可以由布局設計人員根據當前布局的需要自定義設置。當然可以理解的是,在對一個可編程邏輯器件進行布局規劃的時候,可能會給不同的邏輯單元規劃出大小不同的合理部署區域。針對不同的邏輯單元,應當要設置不同的預設面積閾值。因此,布局設計人員在自定義設置預設面積閾值時,應當考慮當前待部署邏輯單元本身的合理部署區域。
另外,在本實施例的一個示例當中,滿足作為第一邏輯單元的預設條件還可以包括要求與自身相連的第二邏輯單元的時延小于預設時延閾值。在該示例當中,第一邏輯單元是指那些自身合理部署區域較小,并且還要求與自身相連的第二邏輯單元的時延小于預設時延閾值。在選擇第一邏輯單元時之所以要考慮一個邏輯單元對與自身連接的其他邏輯單元時延的要求,這主要是由于APM或者DRM這些邏輯單元不僅合理部署區域比較小,而且這些邏輯單元因為涉及到數據計算處理與數據的讀取與寫入,因此,要求與自身連接的第二邏輯單元的時延與自身保持一致。這些邏輯單元一旦部署不合理,則在后續從初次部署位置上移動到合理部署區域時,會使得與自身相連的第二邏輯單元距離自身較遠。應當理解的是,距離將會影響到第二邏輯單元與第一邏輯單元之間輸入輸出時延的大小,一旦距離較遠,則很難保證這些第二邏輯單元的時延與第一邏輯單元一致。
毫無疑義的是,本實施例的邏輯單元包括卻不限于APM與DRM,其可以是APM與DRM中的至少一種,也可以是其他任何合理部署區域小于預設面積閾值,且要求與自身相連的第二邏輯單元的時延小于預設時延閾值的邏輯單元。
在本實施例中,預設時延閾值也是可以由布局設計人員根據當前實際的布局需求進行靈活設置的。
S104、可編程邏輯器件布局裝置根據預先創建的部署指示對第一邏輯單元進行部署設置。
可編程邏輯器件布局裝置在篩選出第一邏輯單元后,先對第一邏輯單元進行部署,由于預先為第一邏輯單元規劃的合理部署區域較小,并不能在可編程邏輯器件的整體區域上進行全面部署。現有技術中建立全局密度模型來進行邏輯單元部署的方案在本實施例中已經幾乎無效,因為第一邏輯單元是在其他合理部署區域面積較大、或者是可全局部署的那些邏輯單元之前部署的,甚至第一邏輯單元是最先在可編程邏輯器件上進行部署的,所以此時無法針對可編程邏輯器件建立起具有參考價值的全局密度模型。如果繼續按照現有技術的方案對第一邏輯單元進行部署,這就相當于隨手將一把種子撒到空地上,誰也無法保證這些種子都落到空地中的一個特定區域內。因此,為了保障將第一邏輯單元設置到其對應的合理部署區域中,在本實施例里,可編程邏輯器件布局裝置可以采用部署指示來對第一邏輯單元的設置進行輔助。
由于部署指示的作用是指示可編程邏輯器件布局裝置將第一邏輯單元部署到其合理部署區域內,因此部署指示是預先基于第一邏輯單元的合理部署區域創建的。在本實施例的一種示例當中,部署指示由可編程邏輯器件布局裝置創建,可編程邏輯器件布局裝置在根據部署指示對第一邏輯單元進行部署之前還會創建部署指示,下面提供兩種創建部署指示的示例:
第一種,基于合理梯度的部署指示,圖2示出了創建基于合理梯度的部署指示的一種流程圖:
S202、可編程邏輯器件布局裝置確定第一邏輯單元的合理部署區域。
由于第一邏輯單元的部署指示是基于其合理部署區域設置的,因此,可以理解的是,可編程邏輯器件布局裝置為第一邏輯單元創建部署指示時,應當了解第一邏輯單元合理部署區域的相關信息,確定合理部署區域的范圍。
S204、可編程邏輯器件布局裝置為可編程邏輯器件上的各區域設置合理梯度。
合理梯度用于表征對應區域部署第一邏輯單元合理性的高低,合理梯度值越小則表征越適合部署第一邏輯單元,距離合理部署區域越近的區域,則合理梯度值越小,距離合理部署區域越遠的區域,其合理梯度值則越大。例如,在圖3當中示出了一種可編程邏輯器件布局裝置為可編程邏輯器件上各區域設置合理梯度值的示意圖,在圖3當中,第一邏輯單元的合理部署區域31呈長條狀,合理部署區域31的長與第一可編程邏輯器件30的寬度相同。可編程邏輯器件布局裝置可以將合理部署區域31的合理梯度值設置為0,而距離合理部署區域較近的第一區域32的合理梯度值則被設置為1;距離合理部署區域稍遠一點的第二區域33的合理梯度值被設置為2;更遠的第三區域34的合理梯度值則變成了3。
在圖3當中,由于第一邏輯單元的合理部署區域31的長度恰好等于第一可編程邏輯器件30的寬度,因此,可編程邏輯器件布局裝置設置合理梯度值時,只需要考慮合理部署區域31的兩側。但如圖4所示,另一個可編程邏輯器件40上,第一邏輯單元的合理部署區域41的邊界與第二可編程邏輯器件40的邊界并沒有任何重疊的部分,這時候,可編程邏輯器件布局裝置應當要同時為合理部署區域41四周的區域設置,可編程邏輯器件布局裝置為第二可編程邏輯器件40上各區域設置的合理梯度如圖所示。
另外,在可編程邏輯器件上,第一邏輯單元的合理部署區域可能包括兩個及以上的區域,也就是說,第一邏輯單元的合理部署區域并不是一個完整的整體,如圖5給出的是為可編程邏輯器件上個區域設置合理梯度值的又一種示意圖。在圖5當中,第三可編程邏輯器件50上包括兩個第一合理部署區域51和第二合理部署區域51’,在為第三可編程邏輯器件50上的各個區域設置合理梯度值時,針對兩個合理部署區域之間的合理梯度值設置可以參照圖5所示,靠近第一合理部署區域51或靠近第二合理部署區域51’的區域,同樣具有較低的合理梯度值,距離兩個區域距離相等的區域的合理梯度值達到最大值。
S206、可編程邏輯器件布局裝置將部署合理梯度作為部署指示。
圖3-圖5給出了幾種設置合理梯度值的方式,可編程邏輯器件布局裝置可以將設置的合理梯度作為部署指示。在根據合理梯度對第一邏輯單元進行部署時,可編程邏輯器件布局裝置可以選擇合理梯度值變化最大的區域設置第一邏輯單元。針對圖5中的情況,在設置第一合理部署區域51與第二合理部署區域51’之間合理梯度值時,應當保證合理梯度值的變化小于第一合理部署區域51或第二合理部署區域51’的合理梯度值變化。
下面介紹另外一種創建部署指示的過程:和第一種方式一樣,可編程邏輯器件布局裝置也應當先確定第一邏輯單元的合理部署區域。在確定第一邏輯單元的合理部署區域之后,可編程邏輯器件布局裝置為合理部署區域設置合理標識,并將部署合理梯度作為所述部署指示。在后續過程當中,可編程邏輯器件布局裝置選擇可編程邏輯器件上具有合理標識的區域來部署第一邏輯單元。
S106、可編程邏輯器件布局裝置對除第一邏輯單元以外的需要部署到可編程邏輯器件上的其他邏輯單元進行部署。
當可編程邏輯器件布局裝置對第一邏輯單元的部署完成之后,其可以開始對需要部署到可編程邏輯器件上除第一邏輯單元以外的其他邏輯單元進行部署設置。針對其他邏輯單元的設置,本實施例提供這樣幾種設置示例:
第一種,可編程邏輯器件布局裝置對除第一邏輯單元以外的其他邏輯單元一視同仁,均根據創建的全局密度模型的指示進行設置。這種設置方式的過程比較簡單,而且算法成熟,較容易實現。
第二種,可編程邏輯器件布局裝置對除第一邏輯單元以外的其他邏輯單元一視同仁,但在對包括第二邏輯單元在內的其他單元進行部署設置時,是以第一邏輯單元的設置位置為中心,結合其他邏輯單元與第一邏輯單元之間距離的要求確定其他邏輯單元的位置,從而完成對除第一邏輯單元以外其他邏輯單元的設置部署。
第三種,可編程邏輯器件布局裝置對其他邏輯單元也進行分類部署。具體的,考慮到第一邏輯單元對要求與之相連的第二邏輯單元的時延要求較為嚴格,需要第二邏輯單元盡可能緊湊的設置在第一邏輯單元周圍,可編程邏輯器件布局裝置可以先設置第二邏輯單元,避免第一邏輯單元周圍的位置被除第一邏輯單元和第二邏輯單元以外的第三邏輯單元占用,從而導致第二邏輯單元不得不被設置在距離第一邏輯單元較遠的位置。
在第三種情況下,對第二邏輯單元進行設置的時候,可以以第一邏輯單元的第一部署位置為中心,根據各第二邏輯單元與第一邏輯單元之間的距離要求確定第二邏輯單元的第二部署位置,并根據確定出來的位置設置第二邏輯單元。對于第三邏輯單元的設置,可編程邏輯器件布局裝置可以在第二邏輯單元部署完成之后,針對可編程邏輯器件上已部署邏輯單元創建全局密度模型,全局密度模型可以體現出可編程邏輯器件上當前邏輯單元的分布情況。可編程邏輯器件布局裝置根據創建出的全局密度模型選擇密度小于預設密度閾值的區域設置第三邏輯單元,也即選擇比較當前邏輯單元分布比較稀疏的區域設置第三邏輯單元。可以理解的是,在設置第三邏輯單元的時候,全局密度模型應當隨著可編程邏輯器件上邏輯單元的增加而不斷更新,以便為可編程邏輯器件布局裝置提供有效的參考依據。
另外,在理想情況下,可編程邏輯器件布局裝置可以將第一邏輯單元部署到其合理部署區域中,但可以理解的是,實際部署過程中不可避免的會存在一些誤差,因此,第一邏輯單元也有可能因為誤差的關系設置到了其合理部署區域之外、第一邏輯單元合理部署區域附近的地方。對于這種情況,可以在初始部署后對第一邏輯單元進行一些輕微的調整,順帶調整的還包括與被調整的第一邏輯單元相連的第二邏輯單元。
最后,本實施例中提供的可編程邏輯器件布局方法可以針對各種類型的可編程邏輯器件,包括PROM(Programmable Read-Only Memory,可編程只讀存儲器)、EPROM(Erasable Programmable Read Only Memory,可擦除可編程存儲器)、PLA(Programmable logic arrays,可編程邏輯陣列)、PAL(Programmable Array Logic,可編陣列邏輯)和GAL(generic array logic,通用陣列邏輯)等類型。其中,在PAL和GAL的基礎上又發展出了應用更為廣泛的CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)以及FPGA(Field-Programmable Gate Array,現場可編程門陣列)等。
本實施例提供了一種可編程邏輯器件布局方法,由可編程邏輯器件布局裝置將需要部署到可編程邏輯器件上的第一邏輯單元篩選出來,然后先根據部署指示對第一邏輯單元進行部署后再對其他邏輯單元進行設置,保證其他邏輯單元不會占用第一邏輯單元本來就比較小的面積部署區域,在部署指示的輔助下,盡可能準確地將第一邏輯單元設置到其合理部署區域內。另外,在本實施例的一些實例中,還會根據其他邏輯單元與第一邏輯單元之間的距離要求來設置其他邏輯單元。當第一邏輯單元的設置位置合理的情況下,其他邏輯單元的部署位置也會是基本合理的,因此,本實施例中不僅提升了對第一邏輯單元布局的合理性,還提升可編程邏輯器件整體布局的正確性。降低了在布局完成后再對可編程邏輯器件上邏輯單元進行大范圍挪動修改的風險,提升了可編程邏輯器件布局的效率和性能。
實施例二:
本實施例提供一種可編程邏輯器件布局裝置,該裝置可以執行實施例一提供的可編程邏輯器件布局方法,下面結合圖6對可編程邏輯器件布局裝置60進行介紹:
可編程邏輯器件布局裝置60包括篩選模塊602、第一部署模塊604、其他部署模塊606。篩選模塊602用于從需要部署到可編程邏輯器件上的各邏輯單元中篩選出第一邏輯單元;第一部署模塊604用于根據預先創建的部署指示對第一邏輯單元進行部署設置;其他部署模塊606用于對除第一邏輯單元以外的需要部署到可編程邏輯器件上的其他邏輯單元進行部署。
在本實施例中,第一邏輯單元是需要部署到可編程邏輯器件上的邏輯單元中滿足預設條件的邏輯單元,預設條件中包括自身的合理部署區域小于預設面積閾值。也就是說,作為第一邏輯單元的必要條件是一個邏輯單元自身的合理部署區域小于預設面積閾值。
篩選模塊602根據預設面積閾值篩選出合理部署區域較小的邏輯單元作為第一邏輯單元,便于后續部署過程能夠根據各邏輯單元合理部署區域的大小來分時序部署。預設面積閾值可以由布局設計人員根據當前布局的需要自定義設置。當然可以理解的是,在對一個可編程邏輯器件進行布局規劃的時候,可能會給不同的邏輯單元規劃出大小不同的合理部署區域。針對不同的邏輯單元,應當要設置不同的預設面積閾值。因此,布局設計人員在自定義設置預設面積閾值時,應當考慮當前待部署邏輯單元本身的合理部署區域。
另外,在本實施例的一個示例當中,滿足作為第一邏輯單元的預設條件還可以包括要求與自身相連的第二邏輯單元的時延小于預設時延閾值。在該示例當中,篩選模塊602篩選出的第一邏輯單元是指那些自身合理部署區域較小,并且還要求與自身相連的第二邏輯單元的時延小于預設時延閾值。篩選模塊602在選擇第一邏輯單元時之所以要考慮一個邏輯單元對與自身連接的其他邏輯單元時延的要求,這主要是由于APM或者DRM這些邏輯單元不僅合理部署區域比較小,而且這些邏輯單元因為涉及到數據計算處理與數據的讀取與寫入,因此,要求與自身連接的第二邏輯單元的時延與自身保持一致。這些邏輯單元一旦部署不合理,則在后續從初次部署位置上移動到合理部署區域時,會使得與自身相連的第二邏輯單元距離自身較遠。應當理解的是,距離將會影響到第二邏輯單元與第一邏輯單元之間輸入輸出時延的大小,一旦距離較遠,則很難保證這些第二邏輯單元的時延與第一邏輯單元一致。
毫無疑義的是,本實施例的邏輯單元包括卻不限于APM與DRM,其可以是APM與DRM中的至少一種,也可以是其他任何合理部署區域小于預設面積閾值,且要求與自身相連的第二邏輯單元的時延小于預設時延閾值的邏輯單元。
在本實施例中,預設時延閾值也是可以由布局設計人員根據當前實際的布局需求進行靈活設置的。
篩選模塊602在篩選出第一邏輯單元后,第一部署模塊604先對第一邏輯單元進行部署,由于預先為第一邏輯單元規劃的合理部署區域較小,并不能在可編程邏輯器件的整體區域上進行全面部署。現有技術中建立全局密度模型來進行邏輯單元部署的方案在本實施例中已經幾乎無效,因為第一邏輯單元是在其他合理部署區域面積較大、或者是可全局部署的那些邏輯單元之前部署的,甚至第一邏輯單元是最先在可編程邏輯器件上進行部署的,所以此時無法針對可編程邏輯器件建立起具有參考價值的全局密度模型。如果繼續按照現有技術的方案對第一邏輯單元進行部署,這就相當于隨手將一把種子撒到空地上,誰也無法保證這些種子都落到空地中的一個特定區域內。因此,為了保障將第一邏輯單元設置到其對應的合理部署區域中,在本實施例里,第一部署模塊604可以采用部署指示來對第一邏輯單元的設置進行輔助。
由于部署指示的作用是指示第一部署模塊604將第一邏輯單元部署到其合理部署區域內,因此部署指示是可編程邏輯器件布局裝置60預先基于第一邏輯單元的合理部署區域創建的。在本實施例的一種示例當中,如圖7所示,可編程邏輯器件布局裝置60還包括指示創建模塊608,部署指示由指示創建模塊608在第一部署模塊604對第一邏輯單元進行部署之前創建部署指示,下面提供兩種指示創建模塊608創建部署指示的示例:
第一種,基于合理梯度的部署指示。由于第一邏輯單元的部署指示是基于其合理部署區域設置的,因此,可以理解的是,指示創建模塊608為第一邏輯單元創建部署指示時,應當了解第一邏輯單元合理部署區域的相關信息,確定合理部署區域的范圍。然后,指示創建模塊608為可編程邏輯器件上的各區域設置合理梯度。
合理梯度用于表征對應區域部署第一邏輯單元合理性的高低,合理梯度值越小則表征越適合部署第一邏輯單元,距離合理部署區域越近的區域,則合理梯度值越小,距離合理部署區域越遠的區域,其合理梯度值則越大。例如,在圖3當中示出了指示創建模塊608為可編程邏輯器件上各區域設置合理梯度值的一種示意圖,在圖3當中,第一邏輯單元的合理部署區域31呈長條狀,合理部署區域31的長與第一可編程邏輯器件30的寬度相同。指示創建模塊608可以將合理部署區域31的合理梯度值設置為0,而距離合理部署區域較近的第一區域32的合理梯度值則被設置為1;距離合理部署區域稍遠一點的第二區域33的合理梯度值被設置為2;更遠的第三區域34的合理梯度值則變成了3。
在圖3當中,由于第一邏輯單元的合理部署區域31的長度恰好等于第一可編程邏輯器件30的寬度,因此,指示創建模塊608設置合理梯度值時,只需要考慮合理部署區域31的兩側。但如圖4所示,另一個可編程邏輯器件40上,第一邏輯單元的合理部署區域41的邊界與第二可編程邏輯器件40的邊界并沒有任何重疊的部分,這時候,指示創建模塊608應當要同時為合理部署區域41四周的區域設置,指示創建模塊608為第二可編程邏輯器件40上各區域設置的合理梯度如圖所示。
另外,在可編程邏輯器件上,第一邏輯單元的合理部署區域可能包括兩個及以上的區域,也就是說,第一邏輯單元的合理部署區域并不是一個完整的整體,如圖5給出的是為可編程邏輯器件上個區域設置合理梯度值的又一種示意圖。在圖5當中,第三可編程邏輯器件50上包括兩個第一合理部署區域51和第二合理部署區域51’,指示創建模塊608在為第三可編程邏輯器件50上的各個區域設置合理梯度值時,針對兩個合理部署區域之間的合理梯度值設置可以參照圖5所示,靠近第一合理部署區域51或靠近第二合理部署區域51’的區域,同樣具有較低的合理梯度值,距離兩個區域距離相等的區域的合理梯度值達到最大值。
最后,指示創建模塊608將部署合理梯度作為部署指示。在根據合理梯度對第一邏輯單元進行部署時,第一部署模塊604可以選擇合理梯度值變化最大的區域設置第一邏輯單元。針對圖5中的情況,指示創建模塊608在設置第一合理部署區域51與第二合理部署區域51’之間合理梯度值時,應當保證合理梯度值的變化小于第一合理部署區域51或第二合理部署區域51’的合理梯度值變化。
下面介紹另外一種創建部署指示的過程:和第一種方式一樣,指示創建模塊608也應當先確定第一邏輯單元的合理部署區域。在確定第一邏輯單元的合理部署區域之后,指示創建模塊608為合理部署區域設置合理標識,并將部署合理梯度作為所述部署指示。在后續過程當中,第一部署模塊604選擇可編程邏輯器件上具有合理標識的區域來部署第一邏輯單元。
當第一部署模塊604對第一邏輯單元的部署完成之后,其他部署模塊606可以開始對需要部署到可編程邏輯器件上除第一邏輯單元以外的其他邏輯單元進行部署設置。針對其他邏輯單元的設置,本實施例提供這樣幾種設置示例:
第一種,其他部署模塊606對除第一邏輯單元以外的其他邏輯單元一視同仁,均根據創建的全局密度模型的指示進行設置。這種設置方式的過程比較簡單,而且算法成熟,較容易實現。
第二種,其他部署模塊606對除第一邏輯單元以外的其他邏輯單元一視同仁,但在對包括第二邏輯單元在內的其他單元進行部署設置時,是以第一邏輯單元的設置位置為中心,結合其他邏輯單元與第一邏輯單元之間距離的要求確定其他邏輯單元的位置,從而完成對除第一邏輯單元以外其他邏輯單元的設置部署。
第三種,其他部署模塊606對其他邏輯單元也進行分類部署。具體的,考慮到第一邏輯單元對要求與之相連的第二邏輯單元的時延要求較為嚴格,需要第二邏輯單元盡可能緊湊的設置在第一邏輯單元周圍,其他部署模塊606可以先設置第二邏輯單元,避免第一邏輯單元周圍的位置被除第一邏輯單元和第二邏輯單元以外的第三邏輯單元占用,從而導致第二邏輯單元不得不被設置在距離第一邏輯單元較遠的位置。
在第三種情況下,對第二邏輯單元進行設置的時候,其他部署模塊606可以以第一邏輯單元的第一部署位置為中心,根據各第二邏輯單元與第一邏輯單元之間的距離要求確定第二邏輯單元的第二部署位置,并根據確定出來的位置設置第二邏輯單元。對于第三邏輯單元的設置,其他部署模塊606可以在第二邏輯單元部署完成之后,針對可編程邏輯器件上已部署邏輯單元創建全局密度模型,全局密度模型可以體現出可編程邏輯器件上當前邏輯單元的分布情況。其他部署模塊606根據創建出的全局密度模型選擇密度小于預設密度閾值的區域設置第三邏輯單元,也即選擇比較當前邏輯單元分布比較稀疏的區域設置第三邏輯單元。可以理解的是,在設置第三邏輯單元的時候,全局密度模型應當隨著可編程邏輯器件上邏輯單元的增加而不斷更新,以便為其他部署模塊606提供有效的參考依據。
另外,在理想情況下,第一部署模塊604可以將第一邏輯單元部署到其合理部署區域中,但可以理解的是,實際部署過程中不可避免的會存在一些誤差,因此,第一邏輯單元也有可能因為誤差的關系設置到了其合理部署區域之外、第一邏輯單元合理部署區域附近的地方。對于這種情況,可編程邏輯器件布局裝置60可以在初始部署后對第一邏輯單元進行一些輕微的調整,順帶調整的還包括與被調整的第一邏輯單元相連的第二邏輯單元。
最后,本實施例中提供的可編程邏輯器件布局裝置60可用于對各種類型的可編程邏輯器件進行部署設置,包括PROM、EPROM、PLA、PAL和GAL等類型。其中,在PAL和GAL的基礎上又發展出了應用更為廣泛的CPLD以及FPGA等。
可編程邏輯器件布局裝置可以部署在終端上,例如處理能力較為強大的臺式電腦與筆記本電腦等。下面結合圖8提供的終端對實現可編程邏輯器件布局裝置的硬件結構進行介紹:
終端8包括處理器81、存儲單元82以及交互單元83等,其中可編程邏輯器件布局裝置的篩選模塊、第一部署模塊、其他部署模塊均可以由處理器81來實現;指示創建模塊的功能可以通過交互單元83與處理器81共同實現,因為指示創建模塊在創建部署指示時,可以在布局設計人員的指示下進行,布局設計人員通過交互單元83向終端8發出指令,終端8的處理器81基于用戶的指令為第一邏輯單元設置部署指示。存儲單元82中則可以存儲供處理器81運行以實現可編程邏輯器件布線方法的一系列指令。
本實施例提供了一種可編程邏輯器件布局裝置,由可編程邏輯器件布局裝置將需要部署到可編程邏輯器件上的第一邏輯單元篩選出來,然后先根據部署指示對第一邏輯單元進行部署后再對其他邏輯單元進行設置,保證其他邏輯單元不會占用第一邏輯單元本來就比較小的面積部署區域,在部署指示的輔助下,盡可能準確地將第一邏輯單元設置到其合理部署區域內。另外,在本實施例的一些實例中,還會根據其他邏輯單元與第一邏輯單元之間的距離要求來設置其他邏輯單元。當第一邏輯單元的設置位置合理的情況下,其他邏輯單元的部署位置也會是基本合理的,因此,本實施例中不僅提升了對第一邏輯單元布局的合理性,還提升可編程邏輯器件整體布局的正確性。降低了在布局完成后再對可編程邏輯器件上邏輯單元進行大范圍挪動修改的風險,提升了可編程邏輯器件布局的效率和性能。
顯然,本領域的技術人員應該明白,上述本發明實施例的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在計算機存儲介質(ROM/RAM、磁碟、光盤)中由計算裝置來執行,并且在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。所以,本發明不限制于任何特定的硬件和軟件結合。
以上內容是結合具體的實施方式對本發明實施例所作的進一步詳細說明,不能認定本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發明的保護范圍。