專利名稱:實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及在集成電路上形成的可編程邏輯器件,更明確地說涉及一種實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路的結(jié)構(gòu)設(shè)計(jì)的方法。
背景技術(shù):
動(dòng)態(tài)可重構(gòu)邏輯(也稱為高速緩存邏輯)是一種用于重構(gòu)可編程邏輯電路,例如基于SRAM的現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)合可編程邏輯器件(CPLD)的數(shù)字設(shè)計(jì)技術(shù)。動(dòng)態(tài)可重構(gòu)邏輯器件利用了基于SRAM的FPGA的動(dòng)態(tài)和部分可重構(gòu)性,在重構(gòu)部分FPGA邏輯時(shí),同時(shí)使邏輯的剩余部分不會(huì)被中斷而繼續(xù)工作。
在圖6中說明了動(dòng)態(tài)可重構(gòu)邏輯的原理,它示出了在FPGA上實(shí)現(xiàn)一部分邏輯重構(gòu)。替代邏輯120存儲(chǔ)在片外存儲(chǔ)器124中。在重構(gòu)期間,僅對(duì)要替換的那部分邏輯(可重構(gòu)邏輯116)進(jìn)行重寫。所有其他的邏輯、靜態(tài)邏輯114和未用邏輯112不受影響,并且繼續(xù)正常的工作。由于僅重構(gòu)一部分FPGA,使得構(gòu)造位流大小最小化。因此,使得重構(gòu)FPGA所花費(fèi)的時(shí)間(稱為重構(gòu)執(zhí)行時(shí)間)以及片外存儲(chǔ)器的大小都最小化。這與傳統(tǒng)的FPGA設(shè)計(jì)形成了對(duì)照,傳統(tǒng)FPGA設(shè)計(jì)產(chǎn)生固定的邏輯電路實(shí)現(xiàn),其在運(yùn)行時(shí)不能改變。
因?yàn)镕PGA資源是在許多不同的邏輯電路實(shí)現(xiàn)之間進(jìn)行共享,因此,動(dòng)態(tài)可重構(gòu)邏輯為設(shè)計(jì)人員提供了許多重要的幫助。與固定邏輯設(shè)計(jì)相比可以使用更少的FPGA資源??衫眠@點(diǎn)將更多的邏輯封裝到給定FPGA中,或可能采用比其他方式更少或更小、更低廉的FPGA。因此,成本、板面積和功率消耗都可減少。另外,從全系統(tǒng)范圍角度來看,動(dòng)態(tài)可重構(gòu)邏輯提供了通常與微處理器和工作速度相關(guān)聯(lián)的運(yùn)行時(shí)間靈活水平和近似常規(guī)硬件的精細(xì)粒度并行性。這種優(yōu)點(diǎn)被用于可重構(gòu)計(jì)算應(yīng)用中,該應(yīng)用使用FPGA來實(shí)現(xiàn)專用、定制協(xié)處理器,它們的功能可以在運(yùn)行時(shí)間中改變。
商業(yè)上可用的計(jì)算機(jī)輔助設(shè)計(jì)(CAD)工具提供了一種用于傳統(tǒng)、固定邏輯FPGA設(shè)計(jì)的很好的解決方案。設(shè)計(jì)者可以確定邏輯,執(zhí)行功能性模擬,創(chuàng)建物理布局,執(zhí)行布設(shè)后模擬以及產(chǎn)生FPGA構(gòu)造位流。這種處理的結(jié)果是設(shè)計(jì)者可以對(duì)FPGA設(shè)計(jì)有高度信心,進(jìn)到原型階段。作為這種處理的一部分,自動(dòng)FPGA編譯(平面布置、布局和布線)方法提供了快速設(shè)計(jì)周轉(zhuǎn),并且設(shè)計(jì)者不需要考慮目標(biāo)FPGA結(jié)構(gòu)的細(xì)節(jié)或不需要具有FPGA手工布局和布線方法的專業(yè)知識(shí)。
對(duì)于動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)來說,現(xiàn)有的商業(yè)、結(jié)構(gòu)設(shè)計(jì)方法具有嚴(yán)重的局限性。為了使用這些方法,設(shè)計(jì)者必須獨(dú)立開發(fā)FPGA邏輯的每個(gè)不同范圍,如同固定邏輯設(shè)計(jì)。由大多數(shù)FPGA廠家提供的漸增設(shè)計(jì)變化能力可以通過允許設(shè)計(jì)者在不改變靜態(tài)邏輯的布局和布線的情況下,就能對(duì)結(jié)構(gòu)布局做出改變來為這種處理提供幫助。對(duì)于那些對(duì)邏輯部分做許多可能變化的設(shè)計(jì)來說,這種處理是非常消耗時(shí)間的,并且難以管理。而且,設(shè)計(jì)的平面布置、布局和布線的變化必須手工執(zhí)行以確保不同的范圍使用同一FPGA資源。這就需要設(shè)計(jì)者對(duì)目標(biāo)FPGA結(jié)構(gòu)十分熟悉,并且是結(jié)構(gòu)設(shè)計(jì)方法的專家使用者。
對(duì)于早期的新技術(shù)實(shí)踐人員,該結(jié)構(gòu)設(shè)計(jì)方法的局限性是可以容忍的。然而,對(duì)于大多數(shù)設(shè)計(jì)者(他們承受著要符合市場(chǎng)節(jié)拍的壓力,并且可能不具有FPGA結(jié)構(gòu)和方法的詳細(xì)知識(shí)),該結(jié)構(gòu)設(shè)計(jì)方法不會(huì)被接受。為了解決這個(gè)問題,就需要將設(shè)計(jì)方法學(xué)盡可能透明地結(jié)合到現(xiàn)有的FPGA設(shè)計(jì)流程中,解決動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)的性能驗(yàn)證,并且提供結(jié)構(gòu)設(shè)計(jì)的自動(dòng)處理。
嘗試解決該問題的已有技術(shù)包括授予Hung的美國(guó)專利號(hào)5,781,756,它揭示了一種動(dòng)態(tài)和部分可重構(gòu)FPGA,它允許在不需要對(duì)配置存儲(chǔ)單元完全重寫的情況下,在運(yùn)行時(shí)間進(jìn)行重構(gòu)?!?56專利還揭示了一種在不需要對(duì)配置單元完全重寫的情況下,對(duì)FPGA配置進(jìn)行動(dòng)態(tài)和部分重構(gòu)的方法。在FPGA中包括存儲(chǔ)器配置器件,用于控制FPGA數(shù)據(jù)寄存器和地址寄存器的加載。這種器件允許忽略未變化的配置存儲(chǔ)單元。因此,只有需要改變的配置單元才會(huì)進(jìn)行重寫。
名為“Automating Production of Run-Time Reconfigurable Designs”(由Nabeel Shirazi、Wayne Luk和Peter Y.K.Cheung提出)的會(huì)議報(bào)告揭示了兩種相繼電路配置匹配以確定它們公共部件,這樣,重構(gòu)時(shí)間就可最小化。匹配過程包含3個(gè)步驟1)將兩個(gè)相繼電路中的部件表示為二分圖中的節(jié)點(diǎn);2)對(duì)一種配置中的每個(gè)節(jié)點(diǎn)與另一配置中的節(jié)點(diǎn)進(jìn)行最佳匹配計(jì)算,所述計(jì)算考慮到了權(quán)重值;3)插入RC-Mux和RC_Dmux以產(chǎn)生具有明確的可重構(gòu)區(qū)域。然而,在整個(gè)設(shè)計(jì)過程中,該匹配是在結(jié)構(gòu)設(shè)計(jì)處理之前進(jìn)行。
本發(fā)明的一個(gè)目標(biāo)是為設(shè)計(jì)者提供一種實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路物理設(shè)計(jì)的方法,該方法提供了在傳統(tǒng)、固定邏輯設(shè)計(jì)中所享有的自動(dòng)化水平。
本發(fā)明的另一目標(biāo)是提供一種實(shí)現(xiàn)結(jié)構(gòu)設(shè)計(jì)的方法,這種方法確保了該設(shè)計(jì)實(shí)現(xiàn)的正確性,不會(huì)違背目標(biāo)器件中的任何電氣規(guī)則,并且將避免對(duì)FPGA資源的運(yùn)行時(shí)間爭(zhēng)用。
發(fā)明內(nèi)容
上述的目的是通過一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯應(yīng)用的手工和自動(dòng)結(jié)構(gòu)設(shè)計(jì)的方法來完成。該方法使用軟件來執(zhí)行,該軟件形成了一種結(jié)構(gòu)設(shè)計(jì)流程,從而采取了從示意或高級(jí)描述語言到FPGA構(gòu)造位流文件的設(shè)計(jì)規(guī)范。該方法涉及讀取設(shè)計(jì)網(wǎng)表,該網(wǎng)表包括一組靜態(tài)宏和一組可重構(gòu)宏范圍;對(duì)每條可重構(gòu)宏進(jìn)行編譯;布局和布線初始器件范圍,該范圍含有靜態(tài)宏組的初始宏范圍以及每個(gè)可重構(gòu)宏的范圍;通過隨意選擇每個(gè)可重構(gòu)宏的范圍來更新器件的范圍;布局和布線經(jīng)更新的器件范圍并重復(fù)更新和布局步驟,直到所有的可重構(gòu)宏的范圍已經(jīng)布局和布線。隨后,在編譯處理完成后,產(chǎn)生完整、部分和增加的位流。
本發(fā)明的方法讓設(shè)計(jì)者擺脫了FPGA具體考慮的束縛,從而允許他們集中精力在系統(tǒng)級(jí)的問題上。使用本發(fā)明并不需要?jiǎng)討B(tài)可重構(gòu)邏輯實(shí)現(xiàn)或FPGA結(jié)構(gòu)的專業(yè)水平的知識(shí),因?yàn)楸景l(fā)明使用了工業(yè)標(biāo)準(zhǔn)設(shè)計(jì)輸入格式。由于許多關(guān)鍵的設(shè)計(jì)步驟可以自動(dòng)化,通過消除對(duì)手工執(zhí)行平面布置、布局和布線的要求,就可以節(jié)省寶貴的時(shí)間。本發(fā)明的方法為設(shè)計(jì)者提供了從動(dòng)態(tài)可重構(gòu)邏輯原理到FPGA實(shí)現(xiàn)的直接路徑,因此,允許設(shè)計(jì)者滿足符合市場(chǎng)節(jié)拍的約束。
圖1是在本發(fā)明的方法中隨使用的動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)說明的框圖。
圖2是采用本發(fā)明方法中所使用的設(shè)計(jì)網(wǎng)表的圖1動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)說明的框圖。
圖3是在本發(fā)明的方法中所使用的動(dòng)態(tài)可重構(gòu)邏輯結(jié)構(gòu)設(shè)計(jì)處理的框圖。
圖4是在圖3結(jié)構(gòu)設(shè)計(jì)處理中所使用的動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)流程框圖。
圖5是在圖3結(jié)構(gòu)設(shè)計(jì)處理中所使用的可重構(gòu)硬宏編譯流程方法。
圖6是本領(lǐng)域中所知的已有動(dòng)態(tài)可重構(gòu)邏輯原理框圖。
具體實(shí)施例方式
參照?qǐng)D1,使用可重構(gòu)宏的動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)示出為包括靜態(tài)邏輯140和可重構(gòu)邏輯150。每個(gè)靜態(tài)140和可重構(gòu)150邏輯電路由電路宏網(wǎng)絡(luò)組成。每個(gè)宏是一個(gè)表示目標(biāo)FPGA結(jié)構(gòu)中基本邏輯資源的電路元件,例如邏輯門或存儲(chǔ)元件。或者,電路宏可以是分層結(jié)構(gòu)的,含有其他層次的宏或電路元件,或含有這兩者。宏A141、宏B142、宏C143以及宏D144構(gòu)成靜態(tài)宏網(wǎng)絡(luò),而宏E155和宏F156構(gòu)成可重構(gòu)宏網(wǎng)絡(luò)。FPGA輸入133示為提供給靜態(tài)邏輯網(wǎng)絡(luò)的宏A141。FPGA輸出134是從靜態(tài)邏輯的宏C144產(chǎn)生,而FPGA輸出135由可重構(gòu)邏輯的宏F156產(chǎn)生。這些宏在動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)中互連。
在動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)中,另外又定義了可重構(gòu)宏,與每個(gè)可重構(gòu)宏相關(guān)聯(lián)的是一個(gè)或多個(gè)宏范圍或配置。每個(gè)宏范圍定義為一個(gè)電路宏的網(wǎng)絡(luò)。宏范圍表示和定義了可重構(gòu)宏能夠?qū)崿F(xiàn)的不同電路配置。與一個(gè)可重構(gòu)宏關(guān)聯(lián)的宏范圍組共享同一FPGA資源。因此,在任何時(shí)刻在FPGA上只有一個(gè)宏范圍有效。那些不能重構(gòu)的宏稱為靜態(tài)宏,因?yàn)樗鼈冊(cè)谶\(yùn)行期間永久駐留在FPGA上。含有靜態(tài)宏和每個(gè)可重構(gòu)宏的特定范圍的一種設(shè)計(jì)實(shí)現(xiàn)就稱為器件范圍。每個(gè)器件范圍由設(shè)計(jì)中的靜態(tài)邏輯和每個(gè)可重構(gòu)宏特定宏范圍的選擇來定義。可重構(gòu)宏具有多個(gè)功能性范圍,而靜態(tài)宏具有單一功能性范圍。靜態(tài)宏含有固定邏輯網(wǎng)絡(luò),而可重構(gòu)宏卻沒有。取而代之的是每個(gè)可重構(gòu)宏由一組宏范圍定義。
動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)可以使用工業(yè)標(biāo)準(zhǔn)設(shè)計(jì)輸入格式,例如VHDL、Verilog或邏輯圖輸入來規(guī)定。該設(shè)計(jì)中的可重構(gòu)邏輯由一組每個(gè)可重構(gòu)宏的每個(gè)范圍的獨(dú)立網(wǎng)表進(jìn)行描述。初始器件范圍描述作為包括設(shè)計(jì)中所有靜態(tài)邏輯以及用于每個(gè)可重構(gòu)宏的初始范圍的網(wǎng)表。參照?qǐng)D2,初始范圍網(wǎng)表或設(shè)計(jì)網(wǎng)表160包括靜態(tài)宏140網(wǎng)絡(luò)和每個(gè)可重構(gòu)宏、宏E155和宏F156的初始范圍宏。每個(gè)可重構(gòu)宏都由一組宏網(wǎng)表165、166定義,每個(gè)網(wǎng)表定義了一個(gè)特定的宏范圍。
參照?qǐng)D3,示出了本發(fā)明的結(jié)構(gòu)設(shè)計(jì)處理。如上所述,是使用任意工業(yè)標(biāo)準(zhǔn)設(shè)計(jì)輸入格式來進(jìn)入設(shè)計(jì)輸入步驟12。設(shè)計(jì)入口規(guī)定了設(shè)計(jì)網(wǎng)表14和每個(gè)可重構(gòu)宏的宏網(wǎng)表16。設(shè)計(jì)網(wǎng)表14和宏網(wǎng)表16作為輸入提供給FPGA結(jié)構(gòu)設(shè)計(jì)工具18。結(jié)構(gòu)設(shè)計(jì)工具18用于對(duì)設(shè)計(jì)中的靜態(tài)和可重構(gòu)邏輯進(jìn)行編譯。在結(jié)構(gòu)設(shè)計(jì)工具框架中,關(guān)鍵的編譯步驟(包括平面布置、布局和布線)可以手工或自動(dòng)執(zhí)行。本發(fā)明的方法是在結(jié)構(gòu)設(shè)計(jì)工具的這種處理功能中實(shí)現(xiàn)的。編譯處理的自動(dòng)化意味著將設(shè)計(jì)者從FPGA結(jié)構(gòu)和工具的詳細(xì)知識(shí)要求中解放出來。自動(dòng)化還實(shí)現(xiàn)了快速設(shè)計(jì)周期,并確保不會(huì)違反目標(biāo)結(jié)構(gòu)的電子設(shè)計(jì)規(guī)則,并且還避免了FPGA資源的運(yùn)行時(shí)間爭(zhēng)用。結(jié)構(gòu)工具包括產(chǎn)生設(shè)計(jì)中的配置以及靜態(tài)和可重構(gòu)邏輯的重構(gòu)位流的能力。在圖3中,存在兩種不同的軟件工具流程。一種軟件工具流程是用于可重構(gòu)硬宏的創(chuàng)建指定的宏流程22,而一種軟件流程用于完整高速緩沖邏輯設(shè)計(jì)的創(chuàng)建指定的設(shè)計(jì)流程??芍貥?gòu)硬宏的原理與固定邏輯設(shè)計(jì)中靜態(tài)邏輯硬宏的相似點(diǎn)在于兩種硬宏都含有目標(biāo)FPGA結(jié)構(gòu)的布局和布線信息。然而,可重構(gòu)硬宏的不同之處在于其具有多個(gè)范圍,每個(gè)范圍是目標(biāo)結(jié)構(gòu)上可重構(gòu)宏范圍的特定實(shí)施。而可重構(gòu)宏具有不同的功能性范圍,可重構(gòu)硬宏具有不同的功能性和結(jié)構(gòu)性范圍。宏流程22和設(shè)計(jì)流程20可以獨(dú)立使用?;蛘撸趯⒆詣?dòng)執(zhí)行可重構(gòu)硬宏創(chuàng)建的情況下,通過將宏范圍網(wǎng)表以及設(shè)計(jì)網(wǎng)表作為動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)流程的部分,就能在設(shè)計(jì)流程中隱含地使用宏流程。使用用戶庫24來存儲(chǔ)經(jīng)編譯后的可重構(gòu)硬宏。
在圖3中所示的設(shè)計(jì)處理的最終結(jié)果是收集配置和重構(gòu)位流文件。產(chǎn)生了三種不同類型位流文件。設(shè)計(jì)位流30是目標(biāo)FPGA的完整配置位流。設(shè)計(jì)位流30包括設(shè)計(jì)中的靜態(tài)邏輯和每個(gè)可重構(gòu)宏的初始范圍。設(shè)計(jì)位流30用作FPGA在加電啟動(dòng)或系統(tǒng)復(fù)位的初始配置。第二種位流類型稱為部分位流32。高速緩存設(shè)計(jì)中的每個(gè)可重構(gòu)宏范圍產(chǎn)生一個(gè)部分位流32。部分位流僅含有有關(guān)特定宏范圍和該范圍與靜態(tài)邏輯的互連以及其他單獨(dú)可重構(gòu)宏范圍的配置數(shù)據(jù)。對(duì)部分位流32進(jìn)行組織,以便它們可以應(yīng)用到目標(biāo)FPGA,而可忽略處理其的宏范圍。所產(chǎn)生的第三種配置位流類型稱為增加重構(gòu)位流34。增加重構(gòu)位流34含有將特定范圍轉(zhuǎn)換到特定可重構(gòu)宏中另一范圍所需的配置數(shù)據(jù)。
圖3沒有示出通常作為FPGA設(shè)計(jì)處理一部分執(zhí)行的模擬步驟。對(duì)于固定邏輯設(shè)計(jì),在執(zhí)行結(jié)構(gòu)設(shè)計(jì)步驟18之前就執(zhí)行預(yù)布局模擬。只要設(shè)計(jì)已經(jīng)完成布局和布線,就執(zhí)行布設(shè)后模擬。在此所述的動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)流程中,可以將模擬用于獨(dú)立地驗(yàn)證FPGA每個(gè)器件的范圍。
用于完整動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)創(chuàng)建的軟件設(shè)計(jì)流程20在圖4中示出。設(shè)計(jì)流程處理20在讀取設(shè)計(jì)網(wǎng)表的步驟40開始。在設(shè)計(jì)網(wǎng)表14中對(duì)應(yīng)于可重構(gòu)硬宏的任意宏將進(jìn)行預(yù)先編譯,并通過宏流程處理存儲(chǔ)在用戶庫24中,這將隨后參照?qǐng)D5進(jìn)行描述。在設(shè)計(jì)網(wǎng)表14中對(duì)應(yīng)于可重構(gòu)硬宏范圍的宏指定作為范圍網(wǎng)表36,并且在此步驟期間將從用戶庫中讀取。另外,在用戶的指導(dǎo)下,設(shè)計(jì)網(wǎng)表14中的宏可以與可重構(gòu)宏相關(guān)聯(lián),所述可重構(gòu)宏還沒有含有任何布局或布線信息。這些還沒有含有任何布局或布線信息的可重構(gòu)宏稱為可重構(gòu)軟宏。
只要已經(jīng)讀取了設(shè)計(jì)網(wǎng)表14和所有的范圍網(wǎng)表36,在編譯處理中的下一步驟就是為用戶所指定的特定可重構(gòu)軟宏創(chuàng)建可重構(gòu)硬宏。參照?qǐng)D5,示出了創(chuàng)建可重構(gòu)硬宏的軟件工具流程。創(chuàng)建可重構(gòu)硬宏22的方法是在設(shè)計(jì)流程20之前使用,并且在讀取設(shè)計(jì)網(wǎng)表的步驟40之后還使用,以便將可重構(gòu)軟宏轉(zhuǎn)換成可重構(gòu)硬宏。宏流程處理22從在用戶指導(dǎo)下讀取宏范圍網(wǎng)表36組的步驟60開始,以便形成可重構(gòu)硬宏。只要已經(jīng)讀取所有的范圍網(wǎng)表36,預(yù)處理步驟62就對(duì)每個(gè)范圍網(wǎng)表進(jìn)行修改以確保每個(gè)范圍具有相同的輸入和輸出端口。通常,這意味著將輸入和輸出端口加入到范圍網(wǎng)表,以便當(dāng)包括在特定器件范圍中時(shí),每個(gè)范圍具有相同的輸入和輸出連接。編譯處理中的下一步驟64是查找需要最多FPGA資源來實(shí)現(xiàn)的宏范圍。當(dāng)布局和布線時(shí),該范圍的大小將限定為一個(gè)有界框,在其中將布局和布線所有其他的范圍。只要已經(jīng)選定最大的范圍,下一步驟66就在FPGA上對(duì)最大范圍進(jìn)行布局和布線。所有其他范圍的布局和布線是一種迭代過程,包括計(jì)算該范圍和初始范圍之間布局匹配的步驟,以及在FPGA上布局和布線該范圍的步驟。對(duì)于每個(gè)范圍,匹配算法首先設(shè)法將與初始范圍中I/O部件相同位置上的具有I/O端口的部件進(jìn)行放置。這樣做時(shí),不同范圍上的I/O端口大致在FPGA上的相同位置駐留。只要已經(jīng)放置好了I/O端口部件,下一步驟就尋找剩余部件和初始范圍之間的最佳結(jié)構(gòu)匹配。通過匹配功能和結(jié)構(gòu),就能使增加位流的重構(gòu)規(guī)模最小化,從而使得重構(gòu)執(zhí)行時(shí)間也最小化。判定是否布局和布線了所有范圍68,如果存在任何剩余范圍就選擇下一范圍72,查找初始范圍的最佳匹配74,以及布局和布線范圍66的處理持續(xù)進(jìn)行,直到所有的范圍都已經(jīng)布局和布線。只要所有的范圍已經(jīng)布局和布線,就已經(jīng)將可重構(gòu)硬宏進(jìn)行編譯,并存儲(chǔ)在用戶庫24中70,以便用于動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)。
回顧圖4,在將可重構(gòu)軟宏編譯成可重構(gòu)硬宏22的步驟之后,下一步驟是鎖定用于可重構(gòu)宏44的所有資源,并隨后布局和布線含有可重構(gòu)宏45初始范圍的初始器件范圍。對(duì)于可重構(gòu)硬宏,將所有范圍的布局和布線信息用于判定與初始范圍布局相關(guān)的哪些資源(例如,總線部分、總線計(jì)算機(jī)連接、核心單元或部分核心單元等)將被鎖定或保留,從而不讓靜態(tài)邏輯使用。這就確保了在靜態(tài)邏輯和可重構(gòu)邏輯之間不會(huì)存在對(duì)FPGA資源的爭(zhēng)用問題。資源的阻斷在第一次布局可重構(gòu)宏范圍時(shí)發(fā)生,并且要求已經(jīng)布局的該靜態(tài)邏輯從所保留的FPGA資源離開。因?yàn)閮H有由可重構(gòu)宏范圍使用的詳細(xì)資源才鎖定不被靜態(tài)邏輯使用,在靜態(tài)邏輯的布局和布線中就可以實(shí)現(xiàn)FPGA資源的選擇和使用。并不需要將整個(gè)可重構(gòu)硬宏有界框中的所有資源都鎖定。因此,可重構(gòu)硬宏就能具有不規(guī)則形狀,并且可以與靜態(tài)邏輯交替散置和布線。
只要完成初始器件范圍的布局和布線,在FPGA上所有可重構(gòu)宏的所有范圍的布局位置是隱含定義的(即每個(gè)可重構(gòu)宏的范圍將布局在與該宏初始范圍相同的位置上)。另外,靜態(tài)邏輯的布局和布線也是對(duì)所有器件范圍定義。然而,這時(shí)用戶可以手工干預(yù)和修改靜態(tài)和可重構(gòu)邏輯的布局和布線。對(duì)可重構(gòu)宏范圍所做的任何變化將引起該宏所有其他范圍的布局改變到相同位置。因?yàn)榭芍貥?gòu)宏上的I/O端口連接對(duì)于所有的范圍來說可能在或可能不在FPGA的相同位置上,每個(gè)范圍可能具有不同的物理布線,將其與靜態(tài)邏輯宏相連。因此,可重構(gòu)宏的每個(gè)范圍布局與連接到器件范圍中其他靜態(tài)宏的物理布線相關(guān)聯(lián)。對(duì)于在不同可重構(gòu)宏之間的連接,必須注意無論連接的是什么特定范圍,都要確保使用相同的物理布線。
通過更新器件范圍和編譯的迭代過程,持續(xù)進(jìn)行編譯處理。為了更新器件的范圍,為每個(gè)可重構(gòu)宏任意地選擇一個(gè)范圍。隨后,由新選定的范圍在相同的FPGA位置上來替代可重構(gòu)宏的先前范圍48。設(shè)計(jì)中的靜態(tài)邏輯仍然維持已有的布局和布線,然而,可重構(gòu)宏和其他宏之間的物理布線被拆除,并且和先前宏范圍一起存儲(chǔ)。因此,經(jīng)更新的器件范圍編譯僅涉及新范圍宏和器件范圍中其他宏之間的物理連接布線。完成動(dòng)態(tài)可重構(gòu)邏輯設(shè)計(jì)(包括初始器件范圍)編譯所需的迭代次數(shù)與具有最大范圍數(shù)的可重構(gòu)宏中的范圍數(shù)相等。處理一直持續(xù)到選擇、更新以及布局和布線了所有的范圍為止。最終,在完成編譯步驟之后,軟件就自動(dòng)或在用戶的指導(dǎo)下產(chǎn)生完整、部分和增加的位流。
權(quán)利要求
1.一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,所述方法包括讀取設(shè)計(jì)網(wǎng)表,所述網(wǎng)表包括一組靜態(tài)宏和一組可重構(gòu)宏范圍;讀取多個(gè)可重構(gòu)宏中的每個(gè)宏,每個(gè)所述可重構(gòu)宏對(duì)應(yīng)于所述設(shè)計(jì)網(wǎng)表中可重構(gòu)宏范圍組中的一個(gè);在所述邏輯電路的一個(gè)位置上布局和布線初始器件范圍,所述初始器件范圍含有用于靜態(tài)宏組和所述多個(gè)可重構(gòu)宏中每個(gè)宏的初始宏范圍;判定是否已經(jīng)對(duì)所有的可重構(gòu)宏范圍進(jìn)行布局和布線;如果還沒有布局和布線所有可重構(gòu)宏范圍,就選擇下一可重構(gòu)宏范圍;依據(jù)所選下一宏范圍更新所述器件范圍;在邏輯電路上布局和布線經(jīng)更新的器件范圍,重復(fù)所述判定、選擇、更新以及布局和布線步驟直到已經(jīng)布局和布線了所有的可重構(gòu)宏范圍;產(chǎn)生一組用于邏輯電路的位流。
2.如權(quán)利要求1所述的一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,所述方法還包括下述步驟在讀取所述設(shè)計(jì)網(wǎng)表之前,編譯多個(gè)可重構(gòu)宏中的每個(gè)宏;以及將所述可重構(gòu)宏存儲(chǔ)在用戶庫中。
3.如權(quán)利要求2所述的一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,所述編譯多個(gè)可重構(gòu)宏中每個(gè)宏的步驟包括讀取一組范圍網(wǎng)表,所述范圍網(wǎng)表組對(duì)應(yīng)于特定可重構(gòu)宏;修改所述范圍網(wǎng)表組中的每個(gè)范圍網(wǎng)表,以便第一組范圍中的每個(gè)范圍具有相同的輸入和輸出端口組;從所述第一組范圍中選擇最大的范圍;在所述邏輯電路上布局和布線所述最大范圍;從所述第一組范圍中選擇下一范圍;計(jì)算下一范圍和最大范圍之間的布局匹配;在所述邏輯電路上布局和布線所述下一范圍;以及對(duì)所述第一組范圍中所有的范圍重復(fù)執(zhí)行所述選擇以及布局和布線步驟。
4.如權(quán)利要求3所述的一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,所述多個(gè)可重構(gòu)宏包括可重構(gòu)硬宏和可重構(gòu)軟宏,可重構(gòu)硬宏是在讀取所述設(shè)計(jì)網(wǎng)表之前進(jìn)行編譯,而可重構(gòu)軟宏是在讀取所述設(shè)計(jì)網(wǎng)表之后進(jìn)行編譯。
5.如權(quán)利要求1所述的一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,產(chǎn)生的所述位流組包括第一位流,它含有一組靜態(tài)邏輯和一組初始范圍,每個(gè)所述初始范圍對(duì)應(yīng)于所述多個(gè)可重構(gòu)宏之一。
6.如權(quán)利要求1所述的一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,產(chǎn)生的所述位流組包括第二位流,它包括一組與特定宏范圍有關(guān)的配置數(shù)據(jù)。
7.如權(quán)利要求1所述的一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,產(chǎn)生的所述位流組包括第三位流,它包括一組用于將第一器件范圍轉(zhuǎn)化成第二器件范圍的配置數(shù)據(jù)。
8.一種用于實(shí)現(xiàn)可重構(gòu)宏結(jié)構(gòu)設(shè)計(jì)的方法,其特征在于,所述方法包括讀取一組范圍網(wǎng)表,所述范圍網(wǎng)表組對(duì)應(yīng)于多個(gè)可重構(gòu)宏中的一個(gè)特定可重構(gòu)宏;修改范圍網(wǎng)表組中的每個(gè)范圍網(wǎng)表,以便第一組范圍中的每個(gè)范圍具有相同的輸入和輸出端口組;從所述第一組范圍中選擇最大的范圍;在所述邏輯電路上布局和布線所述最大范圍;從所述第一組范圍中選擇下一范圍;計(jì)算下一范圍和最大范圍之間的布局匹配;在所述邏輯電路上布局和布線所述下一范圍;以及對(duì)所述第一組范圍中所有的范圍重復(fù)執(zhí)行所述選擇以及布局和布線步驟。
全文摘要
一種用于實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)邏輯電路結(jié)構(gòu)設(shè)計(jì)的方法。該方法使用軟件執(zhí)行,該軟件形成了一種結(jié)構(gòu)設(shè)計(jì)流程,從而采取了從示意或高級(jí)描述語言(HDL)到FPGA配置位流文件的設(shè)計(jì)規(guī)范。該方法涉及讀取輸入的設(shè)計(jì)網(wǎng)表(160),該網(wǎng)表(160)包括一組靜態(tài)宏(140)和一組可重構(gòu)宏范圍(150);對(duì)每條可重構(gòu)宏(150)進(jìn)行編譯;布局和布線初始器件范圍,該范圍含有靜態(tài)宏組的初始宏范圍以及每個(gè)可重構(gòu)宏的范圍;通過隨意選擇每個(gè)可重構(gòu)宏的范圍來更新器件的范圍;布局和布線經(jīng)更新的器件范圍并重復(fù)更新和布局步驟,直到所有的可重構(gòu)宏的范圍已經(jīng)布局和布線。隨后,在編譯處理完成后,產(chǎn)生完整、部分和增加的位流。
文檔編號(hào)H01L21/70GK1434953SQ00818935
公開日2003年8月6日 申請(qǐng)日期2000年11月2日 優(yōu)先權(quán)日1999年12月14日
發(fā)明者D·A·馬康恩耐爾, A·V·達(dá)薩利, M·T·梅森 申請(qǐng)人:愛特梅爾股份有限公司