適于負責(zé)重定時的集成電路器件配置方法
【專利摘要】本發(fā)明的各實施方式總體上適于負責(zé)重定時的集成電路器件配置方法。具體地,涉及一種利用用戶邏輯設(shè)計配置集成電路器件的方法:分析用戶邏輯設(shè)計以標(biāo)識用戶邏輯設(shè)計內(nèi)的并行路徑的定時要求;確定沿著該路徑的延時要求;基于存儲元件的用于并入到該路徑中的可用性來路由用戶邏輯設(shè)計,以滿足延時要求;以及在通過并入至少一些存儲元件的路由之后,重定時用戶邏輯設(shè)計。
【專利說明】適于負責(zé)重定時的集成電路器件配置方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及用于例如包括現(xiàn)場可編程門陣列(FPGA)或者其它類型的可編程邏輯 器件(PLD)的集成電路器件的設(shè)計或配置方法,并且涉及用于設(shè)計或配置這種器件的設(shè)計 或配置方法,這些設(shè)計或配置方法能夠負責(zé)重定時該設(shè)計或配置。
【背景技術(shù)】
[0002] 早期可編程器件為一次性可配置。例如,配置可以己經(jīng)通過"燒斷"--即"斷 開"--可熔鏈來實現(xiàn)。備選地,配置就可以已經(jīng)被存儲在可編程只讀存儲器中。所述器 件總體為用戶提供配置器件用于"乘積和"(或"P-TERM")邏輯操作的能力。稍后,這種并 入用于配置的可擦除可編程只讀存儲器(EPROM)的可編程邏輯器件變得可用,從而允許對 器件進行重配置。
[0003] 再之后,并入用于配置的靜態(tài)隨機存取存儲器(SRAM)元件的可編程器件變得可 用。也可以進行重配置的這些器件在非易失性存儲器(諸如EPROM)中存儲它們的配置,在 器件上電時從該非易失性存儲器向SRAM元件中加載該配置。這些器件總體為用戶提供配 置器件用于查找表型邏輯操作的能力。
[0004] 雖然已經(jīng)有可能簡單地通過意識上確定應(yīng)當(dāng)將各種元件安排在何處來手動配置 最早的可編程邏輯器件,但是即使與這樣的較早器件相連,以提供允許用戶根據(jù)需要安排 邏輯并且隨后將這些邏輯轉(zhuǎn)譯成用于可編程器件的配置的編程軟件也是常見的。對于當(dāng)前 較大器件,在沒有這樣的軟件的情況下試圖安排該邏輯將是不切實際的??梢允褂妙愃频?軟件來設(shè)計固定邏輯器件,諸如專用集成電路(ASIC)。
[0005] 如果設(shè)計能夠被優(yōu)化,一些用戶邏輯設(shè)計將能夠以更高的時鐘速度進行操作。然 而,已知的配制方法并不總是考慮可能的優(yōu)化。
【發(fā)明內(nèi)容】
[0006] 用于可編程集成電路器件的已知配置方法以及用于專用集成電路的設(shè)計方法通 過檢測具有最長延遲的路徑并且應(yīng)用優(yōu)化技術(shù)以減小或"壓制"所述延遲,來優(yōu)化電路設(shè) 計。然而,這樣的技術(shù)可能無法通過在設(shè)計內(nèi)移動寄存器來正確負責(zé)"重定時"該設(shè)計的能 力。
[0007] 具體而言,單向或"前饋"邏輯路徑服從流水線技術(shù)設(shè)計。并且流水線技術(shù)設(shè)計的 電路可以通過改變流水線寄存器的分布來重定時。通常,這通過在流水線技術(shù)設(shè)計的路徑 中向前移動寄存器來實現(xiàn)。然而,當(dāng)重定時路徑時,也重定時并行路徑以維持電路可操作 性。然而,在所有路徑中并非總是存在足夠的寄存器可用于支持重定時。
[0008] 本發(fā)明提供了用于在路由邏輯設(shè)計時考慮寄存器可用性的方法,以支持可能需要 的重定時。
[0009] 因此,根據(jù)本發(fā)明,提供了一種利用用戶邏輯設(shè)計配置集成電路器件的方法。該方 法包括:分析用戶邏輯設(shè)計以標(biāo)識用戶邏輯設(shè)計內(nèi)路徑的定時要求;沿著所述路徑確定延 時要求;基于用于并入到所述路徑中的存儲元件的可用性來路由用戶邏輯設(shè)計,以滿足延 時要求;以及在通過并入至少一些存儲元件的路由之后,重定時用戶邏輯設(shè)計。
[0010]還提供了被編碼有用于執(zhí)行這樣的方法的指令的機器可讀數(shù)據(jù)存儲介質(zhì)。
【專利附圖】
【附圖說明】
[0011]本發(fā)明的其它特征、其性質(zhì)以及各種優(yōu)點通過結(jié)合附圖考慮以下具體描述將變得 明顯,在附圖中相同的附圖標(biāo)記貫穿全文指代相同部分,并且在附圖中:
[0012]圖1示出將要被重定時的邏輯電路部分的示例;
[0013]圖2示出對圖1的邏輯電路部分的嘗試性重定時的示例;
[0014]圖3示出對圖1的邏輯電路部分的結(jié)果重定時的示例;
[0015]圖4示出在沒有寄存器感知的情況下的重定時感知設(shè)計方法的示例;
[0016]圖5示出根據(jù)本發(fā)明的一個實施例在具有寄存器感知的情況下的重定時感知設(shè) 計方法的示例; t〇〇17]圖6示出包含多扇出信號的非完整的局部路由樹;
[0018]圖7示出對圖6的局部路由的第一解決方案;
[0019]圖8示出對圖6的局部路由的第二解決方案;
[0020]圖9是被編碼有用于執(zhí)行根據(jù)本發(fā)明的方法的機器可執(zhí)行指令集的磁數(shù)據(jù)存儲 介質(zhì)的截面圖;
[0021]圖10是被編碼有用于執(zhí)行根據(jù)本發(fā)明的方法的機器可執(zhí)行指令集的光可讀數(shù)據(jù) 存儲介質(zhì)的截面圖;以及
[0022] 圖11是采用并入本發(fā)明的可編程邏輯器件的示例性系統(tǒng)的簡化框圖。
【具體實施方式】
[0023] 時序分析在假設(shè)重定時的可用性的情況下為已知。例如,通過整體引用并入本文 的共同未決的共同轉(zhuǎn)讓的第13/733, 982號美國專利申請描述了一種標(biāo)識用于優(yōu)化的循環(huán) 路徑的方法,從而留下待重定時的前饋路徑。然而,即使在物理地提供有大量寄存器的器件 上,對用戶邏輯設(shè)計的重定時也可能并非總是能夠到達所期望的程度,如果對用戶邏輯設(shè) 計的初始路由并不考慮潛在的重定時以及在其中可能需要它們以用于重定時的位置提供 足夠可選的寄存器。
[0024] 在圖1至圖3中可見這樣的條件的示例。圖1示出了具有兩個并行路徑1〇1、1〇2 的邏輯設(shè)計的一部分100。上路徑101包括一個邏輯元件111和九個路由元件121。出于 這一示例的目的,假設(shè)邏輯元件111和路由元件121具有相同的單位延遲。下路徑102包 括一個邏輯元件112和兩個路由元件121。為了最大化定時性能,應(yīng)當(dāng)最小化寄存器之間的 延遲。因為路徑101的更長長度,所以其可以從重定時(向長的組合路徑中插入寄存器) 受益,其中將一些輸入寄存器103向前移動到路徑101中。
[0025] 在圖2的示例200中,已經(jīng)將三個寄存器103向前移動到路徑101中。在一個實 施例中,路由元件121可以包括可選的寄存器,并且如果希望重定時則使能該寄存器;因此 在這一情況下,已經(jīng)使能了三個路由元件121中的可選寄存器。這需要向路徑102中引入 三個寄存器123。然而,路徑102具有僅兩個可用于使能其寄存器的路由元件121,缺乏足 夠的寄存器容量以使能三個寄存器123 (這一條件由單獨未連接的寄存器133表示)。結(jié)果 是圖3的并非最佳重定時的電路300,其中僅兩個寄存器103可以向前推進至路徑101中, 由在路徑102中使能的兩個寄存器123平衡。
[0026] 利用可選地使能的寄存器替代所提供的路由元件,重定時可以通過重路由路徑 101以經(jīng)過附近的寄存器而不是經(jīng)過路由元件121來完成??梢韵氲讲⑷敫郊拥募拇嫫鞫?不是路由元件121的其他方式。
[0027] 為了尋址路徑102中的有限數(shù)目的寄存器123,可以根據(jù)本發(fā)明的實施例修改路 由技術(shù),以增加充分的寄存器容量在可能需要它的地方可用的可能性。出于本公開的目的, 這可以被稱作寄存器感知路由。在具有包括大量寄存器的架構(gòu)的可編程器件中,在定時關(guān) 鍵路徑上可能不需要增加的寄存器容量,因為可能希望該路徑包括許多架構(gòu)元件,該架構(gòu) 元件具有可以被使能的可選寄存器。通常在具有較少架構(gòu)元件的路徑上需要附加寄存器容 量,其中插入寄存器將無需打斷長延遲路徑,而是需要增加延時以在別處匹配寄存器的插 入。
[0028] 因此,寄存器感知路由可以相當(dāng)于在非關(guān)鍵路徑上采取更多迂回路線,以如果需 要則并入可以在重定時期間被轉(zhuǎn)換成寄存器(或者其中寄存器可以被使能)的足夠的元 件。然而,一些可編程器件架構(gòu)可以提供較少的寄存器,并且在這樣的器件中具有可選的寄 存器的路由資源的累積也可以在定時關(guān)鍵路徑上是重要的。另外,在重定時期間,可以證明 沿著路由元件的長延伸(stretch),將沒有可以被使能以用流水線技術(shù)設(shè)計關(guān)鍵路徑的充 足的寄存器。
[0029] 上述并入第13/733,982號美國專利申請公開了一種方法400(圖4),該方法利用 對重定時404的稍后可用性的感知通過執(zhí)行綜合401、布局402和路由403在405提供了 FPGA配置比特流,以細化設(shè)計。其中實施方式關(guān)注于減小無法通過重定時404加速的路徑 (例如,諸如回路的循環(huán)路徑)中的延遲的重定時感知綜合401、布局402和路由403,從而 使其它路徑(主要是前饋路徑)在重定時404期間被加速。
[0030] 然而,如上所注意到的那樣,即使綜合401、布局402和路由403是重定時感知的, 如果它們不是寄存器感知的,則重定時404可以發(fā)現(xiàn)已經(jīng)在重定時404之前選擇的路由在 需要重定時的所有路徑中并不包括充足的可用寄存器。
[0031]因此,根據(jù)本發(fā)明的實施例的實施方式500 (圖5),可以執(zhí)行試驗性的路由和重定 時,以確定何處需要附加的延時--即附加的寄存器。試驗性的路由和重定時可以是單獨 的成熟路由和重定時操作。然而,因為附加的重定時感知路由操作以及最終重定時操作將 稍后執(zhí)行,所以可能發(fā)生一些短路。例如,可以通過權(quán)衡用于運行時間的質(zhì)量或者通過收斂 到可能并不完全合法的方案來加速路由。類似地,試驗性的重定時運算法則可以假設(shè)在每 個塊輸入處的有限寄存器容量;在這一寬松的約束之下找到的第一合法和定時最佳方案可 以用來確定用于最終重定時感知路由操作的延時要求。因此,如圖5所示,試驗性路由和重 定時被表示為單個"延時發(fā)現(xiàn)重定時"操作502,其包括充足的路由和重定時元件以發(fā)現(xiàn)何 處可能需要附加的寄存器。該確定不需要完美,而是僅"足夠好",最終重定時操作將通常找 到充足的寄存器以實現(xiàn)所需的重定時方案。
[0032]比較圖4和圖5,"延時發(fā)現(xiàn)重定時"操作502在重定時感知布局操作402之后,路 由403在圖4中在重定時感知布局操作402之后-即"延時發(fā)現(xiàn)重定時"操作502期望 發(fā)生在布局操作和路由操作之間。該期望維持在實施方式500中,其中"延時發(fā)現(xiàn)重定時" 操作502發(fā)生在重定時感知布局操作402與路由操作之間。在這一實施方式中,該路由操 作是增強的重定時感知路由503,在其之后是重定時404.
[0033] 在一些實施例中,延時發(fā)現(xiàn)重定時操作502將執(zhí)行快速路由以導(dǎo)出更精確的后路 由延遲圖,其可以從流水線技術(shù)設(shè)計獲益。延時發(fā)現(xiàn)重定時操作502也可以執(zhí)行快速重定 時,以基于隨后由增強的重定時感知路由503使用的重定時方案而導(dǎo)出延遲要求或約束。 在外,延時發(fā)現(xiàn)重定時操作502可以偏置重定時方案,以產(chǎn)生用于增強的重定時感知路由 操作503的有利的延時約束(例如,最小化在仍然實現(xiàn)良好的最終重定時結(jié)果時所需的附 加路由)。
[0034] 作為延時發(fā)現(xiàn)重定時操作502的備選,可以以其他方式確定延時要求。這甚至可 以包括延時目標(biāo)的用戶輸入。
[0035] 增強的重定時感知路由操作503通過協(xié)商擁塞定時驅(qū)動路由來建立,可能與重定 時感知(如在以上并入的第13/733,982號美國專利申請中公開的)結(jié)合。在增強的重定 時感知路由操作503中可以使用成本驅(qū)動公式,以滿足延時約束。使用成本函數(shù)可以產(chǎn)生 充分的結(jié)果,因為增強的重定時感知路由操作503不需要確保滿足延時約束;最后,最終重 定時操作404將確定最終寄存器布局。并且即使重定時操作404沒有在所有連接上滿足延 時約束,使得最終重定時操作404并未在所有定時關(guān)鍵路徑上實現(xiàn)最佳重定時,所得電路 將仍然是功能性的。
[0036] 為了理解在增強的重定時感知路由操作503中使用的成本函數(shù),可以在定時驅(qū)動 路由探測期間考慮用于節(jié)點η的典型成本函數(shù):
[0037] backward_cost + crit*delay (n)+base_and-congestion一cost- of- node(crit, n)+future-cost(crit,n,sink)backward_cost 包括局部路徑中引導(dǎo)至當(dāng)前節(jié) 點的所有節(jié)點的定時和資源/擁塞成本;其通常為上至當(dāng)前節(jié)點的節(jié)點成本的和(不包括 未來成本)。crit是從0至〇·的(包括的)的數(shù),指示當(dāng)前連接的相對定時重要性。delay (η) 是與當(dāng)如節(jié)點相關(guān)聯(lián)的延遲。如果多個網(wǎng)競爭相同節(jié)點,則base_and_congestion_cost_ of_node()是與擁塞成本一起使用節(jié)點的資源成本。future_cost()是從當(dāng)前節(jié)點η到匯 點的剩余成本的估計,以引導(dǎo)路由器探測(A* Search)。
[0038] 為了使得路由器延遲感知,可以根據(jù)本發(fā)明的實施例修改fUtUre_C〇St()。對 future一cost()的修改將引導(dǎo)路由器如果其下沖延時約束則聚集更多的寄存器,以及如果 其過沖延時約束則避免當(dāng)前分支的進一步擴展。
[0039] 在一些實施例中,未來成本可以計算如下:
[0040] :futii.:]fe_co,8;t (connection,; eri't, n,f .sink., ::num_e nab l.e:d_a n d_p o t e n, t i a.l;_r eg:s_ i,n_pa rtia l_pa t hf en.:ab 1 e d-r e g s-一 i.ii一p.a r ) { η n m_ f u t:〇 r e _p o t e n t i .?1 s - es t imate一nwm-potent i (:S, s::ink| estimafc:§d_latency - num enabled and potential r?gs: in partial pat h+ num_regs_supported_by_aad?|:m) + n um_ f ntu r e _p otential_regs if Cestimated_latency < latency_requirement |.c〇頭ection)) f viol a t i i t;u d e = Xatency_re<|iid remen t (esnaectissl - sstimated_letency EetPrn f l^iolati.?n_mafiFnitude)
[0041] if .Cau'm一ettM&led一regs-σ:.Η.1 復(fù)一in-partial一p.ath > 1 afce n ?y_l'g:qai:.E€me#t; fc o n:a::g#:fc:i:;aft:|'·::) { w;i:?:l:;st.iea_mag:n:i.'t:ade -= ns_in_pa:rt:;i:aX_patto -1 ate.n:O::'f .r?s:n...i,£,ement f.cortaeffiti.:〇Ti): .Ki::fcB':Ea f' :|w i 〇 1 a } }
[0042] 在該實施例中,連接指的是被路由的連接。
[0043] num_enabled_regs_only_in_partial_path包括由于對之前連接的路由而已經(jīng)被 使能的部分路徑上的所有寄存器。這將在下文中結(jié)合多扇出網(wǎng)進一步討論。
[0044] num_enabled_and_potential_regs_in_partial_path 包括之前值加上己經(jīng)被累 積到上至節(jié)點η的部分路徑分支上的所有附加的可選寄存器。隨著路由器擴展進行,mim_ enabled_and_potential_regs_in_partial_path在堆上被追蹤,并且被更新以反映附加的 潛在寄存器的聚集。
[0045] estimate-num_potential-regs(n, sink)是對從n到匯點存在多少個附加寄存 器的估計。在具有普遍存在的寄存器的架構(gòu)中--即在每個路由元件上的單個可選寄存 器--這一估計可能等于直至匯點路由元件的數(shù)目。如果僅一部分路由元件支持可選寄存 器(即,少于元全填充架構(gòu)),則該部分將被作為因素計入估計。
[0046] num-regs-supported_by-node (η)指示當(dāng)前節(jié)點η支持多少寄存器。
[0047] latency_requirement (connection)指示對于連接的延時要求。
[0048] f()是應(yīng)用于過沖延時需求的成本。在一些實施例中,該成本在偏離幅度中是超線 性的。在其他實施例中,一旦路徑到達其中附加延時無法通過路由器在下游加上的點,則成 本也可能增加。這一增加可以通過在將其傳送通過超線性函數(shù)之前增加偏離幅度或者通過 將超線性函數(shù)的結(jié)果與常數(shù)相乘來實現(xiàn)。
[0049] g()是用于應(yīng)用于過沖延時要求的成本。類似于f(),這一函數(shù)也可以在偏離幅 度中是超線性的。在一些實施例中,g()可以比f()更陡,因為過沖無法與下沖那么容易校 正--即在延時過沖的情況下,可以添加更多寄存器,但是不能去除寄存器以校正延時過 沖。
[0050] 如到目前為止所述,成本函數(shù)是延時感知的,其可以是所有針對沿著單個路徑路 由信號相關(guān)的。然而,針對多扇出信號,當(dāng)路由連接時,已知哪個寄存器已經(jīng)沿著相同信號 或網(wǎng)的之前路由的連接被使能,也可以是相關(guān)的。也就是說,在沒有這樣的知識的情況下, 如果新連接靠近相同網(wǎng)的之前路由的連接的匯點分支,則其可以利用多于其延時要求的更 多寄存器結(jié)束。
[0051] 路由器可以存儲由每個信號的所有連接使用的路由資源的試驗性表示。當(dāng)連接被 路由時,該表示首先被修剪以消除特定于被路由的連接的資源,從而使得已經(jīng)被路由的連 接的"部分路由樹"作為起始點。隨后路由當(dāng)前連接,并且表示被更新以反映新選擇的路由。
[0052] 當(dāng)計算用于已經(jīng)在"部分路由樹"中存在的節(jié)點的成本時,當(dāng)路由當(dāng)前連接時,通 常需要future_cost()函數(shù)。為了使得future_cost()能夠針對多扇出情況進行計算,路 由樹表示中的每個節(jié)點將具有用于反映在該節(jié)點處使能的寄存器的數(shù)目的數(shù)據(jù)數(shù)目,并且 該數(shù)據(jù)數(shù)目可以具有從〇到num_regs_supported_by_node(n)的值。針對運行時間效率, 每個節(jié)點也可以存儲從源到當(dāng)前節(jié)點被使能的寄存器的數(shù)目。
[0053] 在路由每個連接之后,當(dāng)路由樹被更新時,與新增節(jié)點相關(guān)聯(lián)的寄存器將根據(jù)需 要試驗性地被使能以滿足用于該連接的延時約束。這一使能是試驗性的,因為最終重定時 自由地考慮其他方案。然而,試驗性的使能對于確保針對相同網(wǎng)的隨后的連接路由嘗試是 有用的,可以負責(zé)針對用于該網(wǎng)的之前連接做出決定。
[0054] 此外,在一些實施例中,沿著給定的連接的寄存器首先最接近匯點被使能,以通過 可能具有低延時要求的隨后的連接來增加多少路由樹是有用的。這與如上所述的成本函數(shù) 中的術(shù)語num_enabled_regs_only_in_partial_path相關(guān)。如果沿著特定部分路徑需要特 定數(shù)目的寄存器,但是之后的連接可能需要更少的寄存器,則如果用于較早路徑的寄存器 靠近源被使能,其可能無法找到用于之后連接的路由,其不包括太多被使能的寄存器。但 是如果較早路徑中的被使能的寄存器更接近匯點,則將更有可能存在稍后連接在存在太多 "被使能的寄存器"之前分叉的點。
[0055] 例如,考慮圖6中的路由樹600,其中來自源601的信號必需傳播到每個匯點602、 603。在源601和匯點602之間存在四個路由元件612、622、632和642。設(shè)想用于去往匯點 602的路徑的延時約束要求在該四個路由元件的三個中的每個中使能一個寄存器。也設(shè)想 用于去往匯點603的路徑的延時約束要求沒有寄存器被使能。
[0056] 如果路由元件612中的寄存器被使能以滿足用于去往匯點602的路徑的延時約束 的一部分,則其將有可能滿足用于去往匯點603的路徑的延時約束。然而,如上所討論的, 如果去往匯點602的路徑中的被使能的寄存器是最接近匯點602的那些寄存器--即在路 由元件622、632和642中的寄存器--則去往匯點603的路徑可以分叉路由元件612,而沒 有寄存器被使能。
[0057] 備選地,設(shè)想用于去往匯點603的路徑的延時約束需要兩個被使能的寄存器(在 用于去往匯點602的路徑的延時約束繼續(xù)要求三個被使能的寄存器時)。隨后可能的路由 可以包括在圖7中所示的那些和在圖8中所示的那些。在兩個附圖中,寄存器在加陰影的 路由元件中被使能。
[0058] 在圖7中所示的路由樹700中,在去往匯點603的路徑上的兩個被使能的寄存器 是在去往匯點602的路徑上的三個被使能的寄存器中的兩個寄存器,而存在偏離去往匯點 602的路徑但是在去往匯點603的路徑上的另一個路由元件613,但是其寄存器未被使能。 雖然這一路由滿足用于兩個路徑的延時約束,但是其并未提供用于最終重定時操作404的 靈活性,以減小沿著去往匯點603的路徑的寄存器的數(shù)目。另一方面,在圖8中所示的路由 樹800中,在去往匯點603的路徑上的兩個被使能的寄存器中的僅一個是在去往匯點602 的路徑上的三個被使能的寄存器中之一。在該路由中,在去往匯點603的路徑上的第二被 使能的寄存器是路由元件613的寄存器。這在重定時兩個單獨路徑時提供了增加的靈活 性,諸如如果定時約束要求減少沿著一個路徑的寄存器的數(shù)目。一些實施例將在路由器的 成本函數(shù)中考慮這一點,支持從"部分路由樹"更早分叉的方案。
[0059] 涉及保持時間的另一考慮與路由元件的接近程度有關(guān)。例如,物理架構(gòu)中的相鄰 寄存器選擇之間的延遲可以小于滿足保持約束所需的延遲。如果是該情況,則可能將希望 忽略另外可以被標(biāo)記為被使能的可用的寄存器。因此,如果關(guān)注保持時間,則其可能對于自 上次被使能或者上次潛在地被使能的寄存器起保持追蹤延遲是有用的。備選地,可以從源 到上次被使能或者上次潛在地被使能的寄存器追蹤絕對總延遲。隨后,如果資源遇到寄存 器選項,但是自上次被使能或者上次潛在地被使能的寄存器起的延遲少于保持要求,該寄 存器選項可以被忽略(例如,即使num_regs_supported_by_node (η) >0,其也可以作為〇被 處理)。可能考慮保持約束的另一地方是在路由樹的后連接更新期間,其中選擇哪個寄存器 來使能(參見以上圖7和圖8的討論)可以是所需延遲的函數(shù),以滿足保持約束。在一些 實施例中,除了沿著路徑追蹤累積的延遲之外,還可以追蹤時鐘延遲,使得在可用的寄存器 之間的選擇可以不僅考慮寄存器之間的延遲,也考慮時鐘偏斜。
[0060] 到目前為止的討論已經(jīng)假設(shè)所有路由元件具有可以被使能的可選的寄存器。然 而,為了保存資源,特定物理架構(gòu)可以提供少于完全填充的路由元件集--即僅器件中的 所有路由元件的特定部分(例如,二分之一、三分之一等)可以具有可用的可選寄存器。因 此,在延遲發(fā)現(xiàn)重定時502期間可以考慮的另一因素是所使用的路由元件的數(shù)目,其不包 括可用的可選寄存器。如果這樣,僅能忍受在寄存器之間的特定最大延遲。例如,如果存在 Ins的時鐘周期,并且每個路由元件具有200ps的延遲,則本領(lǐng)域技術(shù)人員將不會想要穿過 超過五個路由元件,而它們都不具有被使能的寄存器。盡管一些少于完全填充的架構(gòu)可以 確保寄存器的特定最小數(shù)目--例如該架構(gòu)可以被構(gòu)造為使得不具有寄存器的每個路由 元件利用寄存器為路由元件饋送--些架構(gòu)可以較少構(gòu)造。因此,可以向路由函數(shù)添加 項以要求至少每X個路由元件穿過潛在寄存器的路由,或者基于從上一潛在寄存器和相應(yīng) 時鐘偏斜起的延遲。
[0061] 如上所述的延時發(fā)現(xiàn)重定時和寄存器感知路由在諸如圖5的方法中僅為用于延 遲發(fā)現(xiàn)重定時502和增強的重定時感知路由503的可能方法的示例,其中運行在合適的處 理器(諸如個人計算機或工作站)上的可編程器件配置軟件可以處理由用戶根據(jù)之前描述 輸入的電路規(guī)范。
[0062] 因此,可以看出已經(jīng)提供了可編程器件,在可編程器件中利用之后的重定時的可 用性的"感知"進行路由,以使利用將被使能的充足的可選寄存器的重定時滿足定時要求。 [0063]用于編程可編程器件的用于執(zhí)行根據(jù)本發(fā)明的方法的指令可以被編碼在計算機 可讀介質(zhì)上,以由合適的計算機或類似的設(shè)備執(zhí)行,以實現(xiàn)本發(fā)明的用于編程或配置PLD 或其它可編程器件的方法。例如,個人計算機可以配備有接口,PLD可以連接至該接口,并 且個人計算機可以由用戶使用以使用如上所述的合適的軟件工具來編程 PLD。
[0064]圖9呈現(xiàn)磁數(shù)據(jù)存儲介質(zhì)12〇0的截面,磁數(shù)據(jù)存儲介質(zhì)1200可以被編碼有可以 由諸如前述個人計算機或其他計算機或類似設(shè)備執(zhí)行的機器可執(zhí)行程序,或者被編碼有虛 擬光纖網(wǎng)絡(luò)的庫。介質(zhì)12〇0可以是軟盤磁片、或硬盤、或磁帶,具有合適的基板1201,其可 以是常規(guī)的和合適的涂層1202,涂層1202可以是常規(guī)的,在一側(cè)或兩側(cè)上,包含磁疇(不可 見),其極性和定向可以磁性地被改變。除了在其為磁帶的情況下,介質(zhì)1200還可以具有用 于接收磁盤驅(qū)動或其他數(shù)據(jù)存儲設(shè)備的主軸的開口(未示出)。
[0065]介質(zhì)1200的涂層1202的磁疇被極化或定向,以便以可以是常規(guī)的方式編碼機器 可執(zhí)行程序,用于由諸如個人計算機、或其他計算機、或類似系統(tǒng)執(zhí)行,具有套接口或外圍 附件,根據(jù)本發(fā)明將要編程的PLD插入其中,以配置PLD的適當(dāng)部分,從而包括其特定處理 塊(如果有)。
[0066] 圖1〇示出光可讀數(shù)據(jù)存儲介質(zhì)1210的截面,光可讀數(shù)據(jù)存儲介質(zhì)1210也可以被 編碼有可以由諸如前述個人計算機或其他計算機或類似設(shè)備執(zhí)行的機器可執(zhí)行程序,或者 被編碼有虛擬光纖網(wǎng)絡(luò)的庫。介質(zhì)1210可以是常規(guī)的高密度磁盤只讀存儲器(CD-ROM)或 者數(shù)字視頻盤只讀存儲器(DVD-ROM)或者可重寫介質(zhì)(諸如CD-R、CD-RW、_-R、DVD-RW、 DVD+R、DVD+RW或DVD-RAM),或光可讀取并且磁光可重寫的磁光盤。介質(zhì)丨21〇優(yōu)選地具有 合適的基板1211,其可以是常規(guī)的和合適的涂層 1212,涂層1212可以是常規(guī)的,通常在基 板1211的一側(cè)或兩側(cè)上。
[0067]眾所周知,在基于CD或基于DVD介質(zhì)的情況下,涂層1212是反射性的并且層壓有 ^置在一個或者多個層上的多個凹面1213,以編碼機器可執(zhí)行程序。凹面的布置通過反射 離開涂層1212的表面的激光讀取。優(yōu)選為基本透明的保護性涂層 1214提供在涂層1212 的頂部上。
[0068] 眾所周知,在磁光盤的情況下,涂層1212不具有凹面1213,但是具有多個磁疇,其 極性和定向在被加熱至特定溫度以上時可以磁性地被改變,如通過激光(未示出)。磁疇的 定向可以通過測量從涂層1212反射的激光的極性來讀取。磁疇的這一布置如上所述對程 序進行編碼。
[0069] 根據(jù)本發(fā)明編程的PLD140可以用于許多類型的電子器件。一種可能的使用是在 圖11所示的數(shù)據(jù)處理系統(tǒng)1400中。數(shù)據(jù)處理系統(tǒng)1400可以包括一個或多個以下部件:處 理器1401 ;存儲器1402 ;1/0電路裝置1403以及外圍設(shè)備1404。這些部件可以由系統(tǒng)總 線1405耦合在一起,并且被填入電路板1406上,電路板1406被包含在終端用戶系統(tǒng)1407 中。
[0070] 系統(tǒng)1400可以用于多種類型的應(yīng)用,諸如計算機網(wǎng)絡(luò)、數(shù)據(jù)網(wǎng)絡(luò)、儀器、視頻處 理、數(shù)字信號處理或任何其他應(yīng)用,其中使用可編程或可重編程邏輯的優(yōu)點是期望的。 PLD140可以用來執(zhí)行各種不同邏輯功能。例如,PLD140可以被配置為處理器或與處理器 1401協(xié)同工作的控制器。PLD140也可以用作用于仲裁對系統(tǒng)1400中的共享資源的訪問的 仲裁器。在又一示例中,PLD140可以被配置為在處理器1401和系統(tǒng)1400中的其它部件之 一之間的接口。應(yīng)當(dāng)注意系統(tǒng)1400僅為示例性的,并且本發(fā)明的真正范圍和精神由權(quán)利要 求指出。
[0071] 可以使用各種技術(shù)來實現(xiàn)如上所述并且并入本發(fā)明的PLD140。
[0072] 應(yīng)當(dāng)理解上述內(nèi)容僅說明了本發(fā)明的原理,并且本領(lǐng)域技術(shù)人員在不背離本發(fā)明 的范圍和精神的情況下可以進行各種修改。例如,可以以任何希望的數(shù)目和/或布置在PLD 上提供本發(fā)明的各種元件。本領(lǐng)域技術(shù)人員將理解除了所描述的實施例之外還可以實施本 發(fā)明,其被呈現(xiàn)用于說明目而非限制,并且本發(fā)明僅由所附權(quán)利要求進行限定。
【權(quán)利要求】
1. 一種利用用戶邏輯設(shè)計配置集成電路器件的方法,所述方法包括: 分析所述用戶邏輯設(shè)計以標(biāo)識所述用戶邏輯設(shè)計內(nèi)的并行路徑的定時要求; 確定沿著所述并行路徑的延時要求; 基于存儲元件的用于并入到所述并行路徑中的可用性來路由所述用戶邏輯設(shè)計,以滿 足所述延時要求; 在通過并入至少一些所述存儲元件的所述路由之后,重定時所述用戶邏輯設(shè)計; 基于所述分析、所述確定、所述路由和所述重定時來生成配置比特流;以及 將所述配置比特流存儲在所述可編程集成電路器件的配置存儲器中。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述確定包括執(zhí)行初步重定時操作以確定所述延 時請求。
3. 根據(jù)權(quán)利要求2所述的方法,其中所述確定還包括執(zhí)行初步路由操作。
4. 根據(jù)權(quán)利要求1至3中的一項所述的方法,其中所述路由基于成本函數(shù)。
5. 根據(jù)權(quán)利要求4所述的方法,其中所述成本函數(shù)考慮所述延時要求。
6. 根據(jù)權(quán)利要求4或5所述的方法,其中所述成本函數(shù)考慮所述用戶邏輯設(shè)計中的保 持約束。
7. 根據(jù)權(quán)利要求6所述的方法,其中所述成本函數(shù)包括追蹤從被路由的所述路徑中的 一個路徑上的之前存儲元件累計的延時。
8. 根據(jù)權(quán)利要求7所述的方法,其中所述成本函數(shù)還包括追蹤在所述之前存儲元件與 候選存儲元件之間累計的時鐘偏斜。
9. 根據(jù)權(quán)利要求4至8中的一項所述的方法,其中: 所述用戶邏輯設(shè)計包括沿著多個路徑扇出至多個目的地的至少一個信號;以及 所述成本函數(shù)在選擇用于并入到所述多個路徑中的一個路徑中的存儲元件時考慮已 經(jīng)被并入在部分路徑中的存儲元件,所述部分路徑被包括在所述多個路徑中的所述一個路 徑中。
10. 根據(jù)權(quán)利要求1至9中的一項所述的方法,其中所述集成電路器件包括分布式存儲 元件,所述并入包括調(diào)節(jié)所述并行路徑中的至少一個路徑以經(jīng)過所述分布式存儲元件中的 存儲兀件。
11. 根據(jù)權(quán)利要求1至10中的一項所述的方法,其中所述集成電路器件包括路由元件, 所述路由元件具有可選地被使能的存儲元件,所述并入包括使能所述可選地被使能的存儲 元件中的存儲元件。
12. 根據(jù)權(quán)利要求11所述的方法,其中: 所述集成電路器件包括具有所述可選地被使能的存儲元件的路由元件和缺乏所述可 選的可用的存儲元件的路由元件;以及 所述路由包括基于所述定時要求來選擇具有所述可選的可用的存儲元件的所述路由 元件和缺乏所述可選的可用的存儲元件的所述路由元件的組合。
13. -種非瞬態(tài)機器可讀存儲介質(zhì),被編碼有用于執(zhí)行利用用戶邏輯設(shè)計配置集成電 路器件的方法的指令,所述指令包括: 用于執(zhí)行分析所述用戶邏輯設(shè)計以標(biāo)識所述用戶邏輯設(shè)計內(nèi)的并行路徑的定時要求 的指令; 用于確定沿著所述并行路徑的延時要求的指令; 用于執(zhí)行基于存儲元件的用于并入到所述并行路徑中的可用性來路由所述用戶邏輯 設(shè)計以滿足所述延時要求的指令;以及 用于在通過并入至少一些所述存儲元件的所述路由之后執(zhí)行重定時所述用戶邏輯設(shè) 計的指令。
14. 根據(jù)權(quán)利要求13所述的非瞬態(tài)機器可讀存儲介質(zhì),其中所述集成電路器件包括分 布式存儲元件,用于在通過并入至少一些所述存儲元件的所述路由之后執(zhí)行重定時所述用 戶邏輯設(shè)計的所述指令包括用于調(diào)節(jié)所述并行路徑中的至少一個路徑以經(jīng)過所述分布式 存儲元件中的存儲元件的指令。
15. 根據(jù)權(quán)利要求13或14所述的非瞬態(tài)機器可讀存儲介質(zhì),其中所述集成電路器件包 括具有可選地被使能的存儲元件的路由元件,用于在通過并入至少一些所述存儲元件的所 述路由之后執(zhí)行重定時所述用戶邏輯設(shè)計的所述指令包括用于使能所述可選地被使能的 存儲元件中的存儲元件的指令。
【文檔編號】G06F17/50GK104252557SQ201410301808
【公開日】2014年12月31日 申請日期:2014年6月27日 優(yōu)先權(quán)日:2013年6月28日
【發(fā)明者】R·芬格, D·劉易斯, V·瑪諾哈拉拉雅 申請人:阿爾特拉公司