亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于自定時(shí)算法執(zhí)行的裝置和方法

文檔序號(hào):6411755閱讀:313來(lái)源:國(guó)知局
專利名稱:用于自定時(shí)算法執(zhí)行的裝置和方法
技術(shù)領(lǐng)域
本發(fā)明涉及的是待審的美國(guó)專利申請(qǐng),流水號(hào)為08/501970,名稱是“用于相同步、可變頻率計(jì)時(shí)和通信的系統(tǒng)和方法”,在1995年7月21日申請(qǐng)。
本發(fā)明一般說(shuō)來(lái)涉及為高速計(jì)算機(jī)系統(tǒng)產(chǎn)生內(nèi)部定時(shí)信號(hào)的裝置和方法。特別地說(shuō)本發(fā)明是用于自定時(shí)算法執(zhí)行的裝置和方法,它與主時(shí)基并不固定地同步。
在高速計(jì)算機(jī)系統(tǒng)中,需要一個(gè)主時(shí)基用于各種必需的切換活動(dòng)。在一些計(jì)算機(jī)系統(tǒng)中,一個(gè)單個(gè)的時(shí)鐘信號(hào)通過(guò)幾個(gè)時(shí)鐘放大器重新緩沖存儲(chǔ),為在系統(tǒng)中使用的所有存儲(chǔ)器設(shè)備用作唯一的定時(shí)同步源。在另一些系統(tǒng)中,可能使用幾個(gè)另外的相位不同的時(shí)鐘信號(hào)來(lái)驅(qū)動(dòng)不同組的存儲(chǔ)器設(shè)備,但是通常都與系統(tǒng)中的主時(shí)基同步。
如果使用多個(gè)時(shí)鐘信號(hào),則不同的存儲(chǔ)器設(shè)備由數(shù)據(jù)流或指令序列以相對(duì)不同的速率翻轉(zhuǎn)或改變狀態(tài)。經(jīng)常設(shè)計(jì)這樣的多時(shí)鐘電路,使得在存儲(chǔ)器設(shè)備之間的功能邏輯能夠以其最快可能的速率循環(huán)。例如在流水線系統(tǒng)中,功能邏輯在存儲(chǔ)器設(shè)備中間分配,使得最小目標(biāo)執(zhí)行時(shí)間的系統(tǒng)設(shè)計(jì)要求得以維持,而無(wú)需同時(shí)要求增加功能邏輯數(shù)目或存儲(chǔ)器設(shè)備元件的協(xié)同要求增加。
在一些流水線系統(tǒng)中,使用上調(diào)和時(shí)鐘(superharmonic clock)使一定的流水線功能單元的內(nèi)部次序以較快速率協(xié)調(diào)運(yùn)行,而功能單元的輸入-輸出邊界以與系統(tǒng)中剩余的流水線功能單元兼容的較慢的速率協(xié)調(diào)運(yùn)行。這種現(xiàn)有技術(shù)的方法叫做“微流水線”(micropipelining),包括這樣的設(shè)備,其中一個(gè)流水線功能單元的內(nèi)存儲(chǔ)器設(shè)備有一個(gè)嚴(yán)格同步的上調(diào)和時(shí)鐘信號(hào),它把流水線同步的微操作與在流水線的輸入端口和輸出端口上經(jīng)歷的較慢的流速率交錯(cuò)在一起。不足的是,微流水線的缺點(diǎn)包括需要在一個(gè)低扭曲樹(shù)組織中有幾個(gè)時(shí)鐘放大器來(lái)保證在激發(fā)由每個(gè)存儲(chǔ)器設(shè)備實(shí)際接收到的信號(hào)中保持最低可能的扭曲,還需要一個(gè)統(tǒng)一的定時(shí)區(qū)間。因此不具有在統(tǒng)一的定時(shí)區(qū)間之內(nèi)能夠操作的短傳播延遲的多組邏輯元件難以容納在微流水線之內(nèi)。另外,微流水線的概念特別難于通過(guò)可重配置邏輯設(shè)備(RLD),例如現(xiàn)場(chǎng)可編程門陣列(FPGA)實(shí)現(xiàn),因?yàn)樵谝粋€(gè)RLD中的傳播延遲從一個(gè)功能單元到另一個(gè)功能單元而變化,使得它難以具有一個(gè)半全程微流水線時(shí)鐘(semi-global micropipeline clock)。
在傳統(tǒng)的方法中,當(dāng)使用RLD來(lái)實(shí)現(xiàn)各種邏輯設(shè)計(jì)時(shí),用以產(chǎn)生實(shí)際RLD互連的大部分“工具”使用一個(gè)寄存器傳輸語(yǔ)言(RTL)范式。這種范式極大地依賴于分開(kāi)的主時(shí)基時(shí)鐘的存在以驅(qū)動(dòng)功能邏輯和在RLD之內(nèi)的存儲(chǔ)器設(shè)備。這種范式也忽略這種效果,即在RLD之內(nèi)的邏輯設(shè)計(jì)的物理實(shí)現(xiàn)對(duì)邏輯設(shè)計(jì)的總定時(shí)性能和硅資源的需求。事實(shí)上,RLD工具制造商常常聲稱他們的邏輯設(shè)計(jì)范式的優(yōu)點(diǎn)是并不為適應(yīng)RLD的物理特征而修改。
其它的高速計(jì)算機(jī)系統(tǒng)試圖避免上面所述的與主時(shí)基同步時(shí)鐘系統(tǒng)相關(guān)的困難,他們把計(jì)算機(jī)的功能任務(wù)分成一組異步定時(shí)的子任務(wù)。不足的是,現(xiàn)存的異步邏輯設(shè)計(jì)也具有許多限制,例如要求在完成運(yùn)算任務(wù)后產(chǎn)生“完成信號(hào)”;完成時(shí)間變化或不定;要求外部時(shí)鐘元件;完成時(shí)間依賴于數(shù)據(jù);與外部電路的異步連接;與外部電路不連貫的定相數(shù)據(jù)交換;加在外部時(shí)鐘電路上的延遲增加了額外的系統(tǒng)復(fù)雜性;難于包裝在同步外部電路中;以及把整個(gè)系統(tǒng)的寬性能綁在外部時(shí)鐘電路的網(wǎng)絡(luò)上。
需要的是一個(gè)用于自定時(shí)算法執(zhí)行的裝置和方法,它在一個(gè)使用統(tǒng)一的定時(shí)區(qū)間的系統(tǒng)之內(nèi)把獲得最快可能的流水線頻率時(shí)的固有負(fù)擔(dān)從具有最短可能的級(jí)間延遲強(qiáng)制要求的同時(shí)發(fā)生的負(fù)擔(dān)中分出來(lái)。
本發(fā)明是一個(gè)用于自定時(shí)算法執(zhí)行的裝置和方法。本發(fā)明的裝置最好是包括一個(gè)功能邏輯組、一個(gè)參考時(shí)鐘輸入和一個(gè)脈沖序列發(fā)生器。功能邏輯組與在參考時(shí)鐘輸入上收到的參考時(shí)鐘信號(hào)同步地接收輸入數(shù)據(jù);以由脈沖序列發(fā)生器按照功能邏輯組的物理特征決定的最大速率對(duì)輸入數(shù)據(jù)執(zhí)行算法計(jì)算;產(chǎn)生輸出數(shù)據(jù);以及與參考時(shí)鐘信號(hào)同步地傳輸輸出數(shù)據(jù)。由脈沖序列發(fā)生器設(shè)定的最大速率獨(dú)立于參考時(shí)鐘。
本發(fā)明的方法最好是包括下述步驟與參考時(shí)鐘信號(hào)同步地傳送輸入數(shù)據(jù)到功能邏輯組;產(chǎn)生最大速率脈沖序列,以依賴于功能邏輯組的算法執(zhí)行時(shí)間但獨(dú)立于參考時(shí)鐘的速率驅(qū)動(dòng)功能邏輯組;響應(yīng)最大速率脈沖序列從功能邏輯組產(chǎn)生輸出數(shù)據(jù);與參考時(shí)鐘信號(hào)同步地從功能邏輯傳輸輸出數(shù)據(jù)。


圖1是用于自定時(shí)算法執(zhí)行的裝置的一個(gè)較佳實(shí)施例的框圖;圖2A是本發(fā)明的脈沖序列發(fā)生器的一個(gè)較佳實(shí)施例的框圖;圖2B是在脈沖序列發(fā)生器內(nèi)的起動(dòng)邏輯的一個(gè)較佳實(shí)施例的框圖;圖2C是在該脈沖序列發(fā)生器內(nèi)的延遲單元的一個(gè)較佳實(shí)施例的框圖;圖2D是在脈沖序列發(fā)生器內(nèi)的脈沖計(jì)數(shù)器的一個(gè)較佳實(shí)施例的框圖;圖2E是在脈沖序列發(fā)生器內(nèi)的門序列邏輯的一個(gè)較佳實(shí)施例的框圖;圖3是本發(fā)明的功能邏輯的一個(gè)較佳實(shí)施例的框圖;圖4是在該功能邏輯內(nèi)的多路轉(zhuǎn)換器的一個(gè)較佳實(shí)施例的框圖;圖5是在該功能邏輯內(nèi)的部分乘積生成器的一個(gè)較佳實(shí)施例的框圖;圖6是在該功能邏輯內(nèi)的部分乘積加法器的一個(gè)較佳實(shí)施例的框圖;圖7是在該功能邏輯內(nèi)的乘積累加器的一個(gè)較佳實(shí)施例的框圖;圖8是表示本發(fā)明的操作的較佳的定時(shí)圖;圖9A是表示本發(fā)明的16位乘16位的較佳的部分乘積相加的矩陣;圖9B是表示本發(fā)明的8位乘8位的較佳的部分乘積相加的矩陣;圖10是用于自定時(shí)算法執(zhí)行的一個(gè)較佳方法的流程圖;圖11是產(chǎn)生脈沖序列的一個(gè)較佳方法的流程圖;圖12是用于響應(yīng)上述脈沖序列產(chǎn)生輸出的一個(gè)較佳方法的流程圖。
本發(fā)明是用于自定時(shí)算法執(zhí)行的一個(gè)裝置和方法。通過(guò)用設(shè)計(jì)為執(zhí)行所選擇的算法的一個(gè)功能邏輯組給延遲單元配對(duì),本發(fā)明以其最大可能的速度執(zhí)行所選擇的算法,而與驅(qū)動(dòng)其它功能邏輯組的任何參考時(shí)鐘無(wú)關(guān)。從而與已知的定時(shí)裝置和方法相比,實(shí)現(xiàn)該算法的任何功能邏輯組的定時(shí)特性既不需由一個(gè)參考時(shí)鐘的速度制約也不依賴于它。相反,本發(fā)明首先,從其它功能邏輯組接收數(shù)據(jù);其次,以基于一個(gè)功能邏輯組的一個(gè)自定時(shí)速率運(yùn)算這些數(shù)據(jù),這一功能邏輯組響應(yīng)一組自定時(shí)脈沖的產(chǎn)生實(shí)現(xiàn)該算法;第三,以由其它功能邏輯組可接受的一個(gè)已知的特定時(shí)間輸出數(shù)據(jù)。其結(jié)果,本發(fā)明的裝置和方法比現(xiàn)有技術(shù)來(lái)說(shuō)特別具有優(yōu)點(diǎn),因?yàn)樗试S一個(gè)功能邏輯組以獨(dú)立于另外的功能邏輯組的運(yùn)行速度或參考時(shí)鐘的速度操作,從而在維持最快可能的算法執(zhí)行速度的同時(shí)簡(jiǎn)化了硬件設(shè)計(jì)。
本發(fā)明通過(guò)根據(jù)功能邏輯組最基本的物理結(jié)構(gòu)審查這些功能邏輯組實(shí)現(xiàn)了這些優(yōu)點(diǎn)。本發(fā)明不依賴于寄存器傳輸邏輯(RTL)范式(paradigm)。相反,本發(fā)明裁剪一個(gè)唯一的定時(shí)電路以適應(yīng)實(shí)現(xiàn)一個(gè)算法的功能邏輯組,使得該功能邏輯組能夠以其最快可能的速率運(yùn)行。于是本發(fā)明通過(guò)把硅資源不僅視為算法執(zhí)行而且視為定時(shí)速率的增量仲裁器(incremental arbiter),從而定義一個(gè)新的范式,為在硅資源之內(nèi)實(shí)現(xiàn)邏輯設(shè)計(jì)?,F(xiàn)有技術(shù)不知道這種新的范式,因?yàn)椋紫?,在現(xiàn)有技術(shù)的系統(tǒng)中邏輯實(shí)現(xiàn)的短時(shí)沖擊只依賴于在存儲(chǔ)器設(shè)備上看到的副效應(yīng);其次,功能邏輯組在現(xiàn)有技術(shù)中被機(jī)械地視為通過(guò)數(shù)據(jù)的管道,而事實(shí)上功能邏輯組也可以被視為減少一個(gè)功能邏輯組總執(zhí)行時(shí)間的一個(gè)機(jī)會(huì);第三,RTL范式不鼓勵(lì)分析在功能邏輯和存儲(chǔ)器設(shè)備之間的有利的或整體互連效應(yīng);第四,現(xiàn)有技術(shù)強(qiáng)調(diào)功能邏輯,不鼓勵(lì)結(jié)合局部反饋以便在任何層次的算法實(shí)現(xiàn)上產(chǎn)生個(gè)體化的定時(shí)電路的設(shè)計(jì)。
本發(fā)明最好以可重配置邏輯設(shè)備(RLD),例如Xilinx XC4000系列(Xilinx,San Jose,CA)現(xiàn)場(chǎng)可編程門陣列(FPGA)實(shí)施。RLD包括一組可配置邏輯塊(CLB)。每一CLB最好包括至少一個(gè)功能發(fā)生器以及一個(gè)或多個(gè)進(jìn)位邏輯元件。如熟悉本技術(shù)領(lǐng)域的人員所知,F(xiàn)PGA的內(nèi)部結(jié)構(gòu)通過(guò)使用一個(gè)配置數(shù)據(jù)組或配置位流(比特流)可以動(dòng)態(tài)重新配置。在任何給定的CLB之內(nèi),特別的邏輯功能是通過(guò)功能發(fā)生器按照配置位流而產(chǎn)生的。每一個(gè)功能發(fā)生器具有一個(gè)特征的、穩(wěn)定的信號(hào)傳播延遲。例如在Xilinx XC4000系列CLB之內(nèi),第一和第二功能發(fā)生器(類型“F”和“G”)每一個(gè)有大約4.5毫微秒(ns)的傳播延遲;第三功能發(fā)生器(類型H)有大約2.5ns的傳播延遲。熟悉本技術(shù)領(lǐng)域的人會(huì)看出,進(jìn)位邏輯元件通常包括設(shè)計(jì)為具有非常小而穩(wěn)定的傳播延遲的進(jìn)位傳播邏輯線路。在Xilinx XC4000系列FPGA之內(nèi)的進(jìn)位傳播邏輯線路的傳播延遲為1.5ns。
本發(fā)明通過(guò)在RLD內(nèi)有選擇地組合資源產(chǎn)生多級(jí)反饋來(lái)產(chǎn)生不同的內(nèi)部傳播延遲。這種反饋用來(lái)產(chǎn)生個(gè)別的定時(shí)電路,來(lái)驅(qū)動(dòng)RLD之內(nèi)一個(gè)或多個(gè)功能邏輯組。本發(fā)明最好使用“慣性”延遲而不是唯一依賴于“純”延遲。慣性延遲定義為傳播需要最小脈沖寬度的延遲,而純延遲是其延遲傳播基本是與脈沖寬度無(wú)關(guān)的。慣性延遲穩(wěn)定,極容易控制,很有優(yōu)點(diǎn)。熟悉本技術(shù)領(lǐng)域的人會(huì)看出,本發(fā)明不需在RLD之內(nèi)實(shí)施,相反可以使用其它通常已知的邏輯設(shè)備建立。
雖然本發(fā)明公開(kāi)了一種實(shí)現(xiàn)X位乘Y位以產(chǎn)生一個(gè)P位積(其中X、Y和P是整數(shù))的一個(gè)功能邏輯組,但是熟悉本技術(shù)領(lǐng)域的人會(huì)看出該功能邏輯組也可以設(shè)計(jì)為執(zhí)行大量不同的其它算法。所述其它算法可能包括執(zhí)行任何類型的算法、邏輯、圖形、字處理、信號(hào)處理和網(wǎng)絡(luò)操作的步驟。例如,本發(fā)明可以用于為有效地使用RLD內(nèi)部隨機(jī)存取存儲(chǔ)器(RAM)、多端口寄存器文件或在一個(gè)RLD內(nèi)的數(shù)據(jù)路徑選擇(例如在FPGA之內(nèi)的交叉條形開(kāi)關(guān))而提供定時(shí)信號(hào)。
為清楚起見(jiàn),下面圖3到圖7示出了一個(gè)16位乘16位產(chǎn)生一個(gè)32位積的例子的細(xì)節(jié)。然而熟悉本技術(shù)領(lǐng)域的人會(huì)看出,本發(fā)明可以用于實(shí)現(xiàn)多于或少于16位的乘積。另外,對(duì)于本說(shuō)明書(shū)的剩余部分,下面說(shuō)明的信號(hào)和位最好只有兩個(gè)狀態(tài),邏輯“1”和邏輯“0”。雖然本發(fā)明的元件在說(shuō)明中只響應(yīng)狀態(tài)變換的上升緣(例如邏輯“0”到邏輯“1”的變化),但是熟悉本技術(shù)領(lǐng)域的人會(huì)看出,RLD可以配置為只響應(yīng)狀態(tài)變化的下降緣或?qū)ι仙壓拖陆稻壎柬憫?yīng)。
現(xiàn)在參考圖1,其中表示了自定時(shí)算法執(zhí)行裝置20的一個(gè)優(yōu)選實(shí)施例的框圖。裝置20包括一個(gè)輸入緩沖器22、功能邏輯24、一個(gè)輸出緩沖器26、一個(gè)同步狀態(tài)機(jī)30、和一個(gè)脈沖序列發(fā)生器34。輸入緩沖器22是一個(gè)傳統(tǒng)已知的設(shè)備,它在外部電路(未示出)收到線28上的一個(gè)參考時(shí)鐘信號(hào)而在線29上保持輸入允許信號(hào)為狀態(tài)“1”時(shí),加載從外部電路通過(guò)線19接收的X位被乘數(shù)或Y位的乘數(shù)。參考時(shí)鐘最好使用在系列號(hào)為No08/501970,名稱為“用于相同步、可變頻率計(jì)時(shí)和通信的系統(tǒng)和方法”的美國(guó)專利申請(qǐng)中敘述的時(shí)鐘裝置實(shí)現(xiàn)。熟悉本技術(shù)領(lǐng)域的人會(huì)看出,可以代以任何傳統(tǒng)已知的時(shí)鐘發(fā)生設(shè)備來(lái)提供參考時(shí)鐘信號(hào)。
輸入緩沖器22通過(guò)線21輸出X位被乘數(shù)和通過(guò)線23輸出Y位乘數(shù)到功能邏輯24。功能邏輯24接收被乘數(shù)和乘數(shù),并按照乘法算法以依賴于脈沖序列發(fā)生器34但獨(dú)立于參考時(shí)鐘的定時(shí)速率相乘。功能邏輯24執(zhí)行乘法算法需要的時(shí)間是其算法執(zhí)行時(shí)間。在功能邏輯24之內(nèi)的傳播延遲決定了它的算法執(zhí)行時(shí)間,并且通常是基于它所包含的一組邏輯設(shè)備而計(jì)算的。功能邏輯24通過(guò)線25輸出一個(gè)P位的乘積到輸出緩沖器26。功能邏輯24的細(xì)節(jié)將在下面參考圖3進(jìn)行說(shuō)明。輸出緩沖器26是傳統(tǒng)類型的緩沖器,它在外部電路收到線28上的參考時(shí)鐘信號(hào)而在線31上保持輸入允許信號(hào)為狀態(tài)“1”時(shí),通過(guò)線27加載然后輸出P位乘積到外部電路。
同步狀態(tài)機(jī)30是現(xiàn)有技術(shù)中已知的類型,它在線28上的參考時(shí)鐘兩次翻轉(zhuǎn)且外部電路在線29上同時(shí)保持輸入允許的邏輯“1”狀態(tài)時(shí),把在線32上的起動(dòng)信號(hào)90轉(zhuǎn)變?yōu)檫壿嫛?”。同步狀態(tài)機(jī)30在把起動(dòng)信號(hào)90設(shè)置為邏輯“1”之前等待兩次參考時(shí)鐘翻轉(zhuǎn),以便輸入緩沖器22可以順序從外部電路接收X位的被乘數(shù)和Y位的乘數(shù)。
脈沖序列發(fā)生器34監(jiān)視線32上從同步狀態(tài)機(jī)30來(lái)的起動(dòng)信號(hào)90,并在起動(dòng)信號(hào)90轉(zhuǎn)變到邏輯“1”時(shí)依次通過(guò)線33產(chǎn)生和發(fā)送一組信號(hào)到功能邏輯24。下面參考圖2A說(shuō)明脈沖序列發(fā)生器34的操作和它所輸出的信號(hào)的細(xì)節(jié)。一旦裝置20以物理設(shè)備實(shí)現(xiàn),或者按照一個(gè)給定的物理設(shè)備的要求設(shè)計(jì),功能邏輯24的傳播延遲和脈沖序列發(fā)生器34的定時(shí)速率就已知,于是,輸出數(shù)據(jù)在從輸入數(shù)據(jù)進(jìn)入輸入緩沖器22計(jì)時(shí)的一個(gè)已知時(shí)間之內(nèi)出現(xiàn)在輸出緩沖器26上。然而這一已知時(shí)間由于物理設(shè)備作為設(shè)備溫度和老化的函數(shù)的正常性能變化而稍微改變。不過(guò)由于脈沖序列發(fā)生器34最好為功能邏輯24的一個(gè)必備部分,如下面將要敘述的,脈沖序列發(fā)生器34和功能邏輯24都經(jīng)歷同樣的溫度和時(shí)間變化。其結(jié)果脈沖序列發(fā)生器34和功能邏輯24相當(dāng)匹配,脈沖序列發(fā)生器34對(duì)功能邏輯24既不“過(guò)時(shí)鐘”(over-clock),也不“欠時(shí)鐘”(under-clock)。
現(xiàn)在參考圖2A,其中示出了本發(fā)明的脈沖序列發(fā)生器34的一個(gè)較佳實(shí)施例的框圖。脈沖序列發(fā)生器34包括起動(dòng)邏輯36、延遲單元38、脈沖計(jì)數(shù)器40和門序列邏輯42。脈沖序列發(fā)生器34的脈沖速率、脈沖持續(xù)時(shí)間和脈沖周期數(shù)(如果有的話)最好對(duì)其驅(qū)動(dòng)的功能邏輯24優(yōu)化。脈沖序列發(fā)生器34還最好使用接近功能邏輯24的邏輯設(shè)備實(shí)現(xiàn),以便產(chǎn)生相似的對(duì)溫度和老化效應(yīng)的響應(yīng),如上所述。盡管下面只敘述了一個(gè)驅(qū)動(dòng)整組功能邏輯24的脈沖序列發(fā)生器34,但是也可以設(shè)計(jì)多個(gè)脈沖序列發(fā)生器34用來(lái)在功能邏輯24運(yùn)行期間以不同的速率和在不同時(shí)間驅(qū)動(dòng)功能邏輯組24的特定子組。在這樣可選的實(shí)施例中,多個(gè)脈沖序列發(fā)生器34中的每一個(gè)最好接收起動(dòng)脈沖104。
當(dāng)起動(dòng)信號(hào)90在線32上轉(zhuǎn)變?yōu)檫壿嫛?”時(shí),起動(dòng)邏輯36在線43上產(chǎn)生一個(gè)復(fù)位(1)脈沖105(參見(jiàn)圖8)和在線35上產(chǎn)生一個(gè)起動(dòng)脈沖。復(fù)位(1)脈沖105啟動(dòng)脈沖計(jì)數(shù)器40。起動(dòng)邏輯36的細(xì)節(jié)在下面參考圖2B給出。延遲單元38接收起動(dòng)脈沖并在第一個(gè)已知的延遲之后,在線39上產(chǎn)生一個(gè)延遲單元輸出信號(hào)133(參見(jiàn)圖8)。延遲單元38的細(xì)節(jié)下面參考圖2C給出。起動(dòng)邏輯36通過(guò)線37接收反饋信號(hào)132(參見(jiàn)圖8),反過(guò)來(lái)在線35上產(chǎn)生下一起動(dòng)脈沖,于是產(chǎn)生一個(gè)自定時(shí)振蕩。該自定時(shí)振蕩的周期由與起動(dòng)邏輯36、延遲單元38和線37有關(guān)的傳播延遲決定。起動(dòng)邏輯36和延遲單元38物理上最好放置在RLD之內(nèi),使得與線37有關(guān)的傳播延遲最小。在使用Xilinx XC4000系列FPGA的示范實(shí)施例中,當(dāng)使用傳統(tǒng)的放置指令來(lái)定義CLB的安排時(shí),與線37有關(guān)的延遲處于1.7和2.2ns之間。當(dāng)在線41上從脈沖計(jì)數(shù)器40接收到一個(gè)中止信號(hào)時(shí),起動(dòng)邏輯36停止在線35上產(chǎn)生起動(dòng)脈沖,于是中止自定時(shí)振蕩。
脈沖計(jì)數(shù)器40接收線39上的延遲單元輸出信號(hào)133并作為響應(yīng)在線44上產(chǎn)生一個(gè)脈沖計(jì)數(shù),和在線41上產(chǎn)生中止信號(hào)。該脈沖計(jì)數(shù)在線43上復(fù)位為一個(gè)初始脈沖計(jì)數(shù)(優(yōu)選為1),并每當(dāng)延遲單元輸出信號(hào)133翻轉(zhuǎn)時(shí)增量。一旦該脈沖計(jì)數(shù)達(dá)到一個(gè)最大的脈沖計(jì)數(shù)值時(shí),則脈沖計(jì)數(shù)器40在線41上產(chǎn)生中止信號(hào)。線44包括一些足夠傳輸最大脈沖計(jì)數(shù)的二進(jìn)制位線。例如,在16位與16位的乘法中,脈沖計(jì)數(shù)由于下面的理由需要8個(gè)狀態(tài)。于是,線44必須至少包括三根二進(jìn)制位線,這里定義為MUX(0)92(最低有效位(LSB))、MUX(1)94和MUX(2)96(最高有效位(MSB))(參見(jiàn)圖8)。脈沖計(jì)數(shù)器40的細(xì)節(jié)下面參考圖2D給出。
門序列邏輯42通過(guò)線44接收脈沖計(jì)數(shù)和通過(guò)線39接收延遲單元輸出信號(hào)133。作為響應(yīng),門序列邏輯42在線45上產(chǎn)生一個(gè)復(fù)位(2)信號(hào)97(參見(jiàn)圖8),在線46上產(chǎn)生一個(gè)部分乘積加法器時(shí)鐘信號(hào)(PPS-CLK)98(參見(jiàn)圖8),在線47上產(chǎn)生一個(gè)乘積累加器時(shí)鐘(1)信號(hào)(PA-CLK(1))99(參見(jiàn)圖8),在線48上產(chǎn)生PA-CLK(2)100(參見(jiàn)圖8)和在線49上產(chǎn)生PA-CLK(3)101(參見(jiàn)圖8)。每一個(gè)CLK98、99、100、101最好是從脈沖計(jì)數(shù)和延遲單元輸出信號(hào)133導(dǎo)出的一個(gè)方波信號(hào)。脈沖計(jì)數(shù)信號(hào)44、復(fù)位(2)信號(hào)97、PPS-CLK46和PA-CLK47、48、49一起作為在線33上到功能邏輯24的一組輸出信號(hào),如圖1所示。然而,根據(jù)自定時(shí)范式,線33上的信號(hào)輸出沒(méi)有一組是有目的地與在線28上的參考時(shí)鐘同步的。關(guān)于門序列邏輯42的細(xì)節(jié)下面參考圖2E給出。
現(xiàn)在參考圖2B,其中示出了本發(fā)明的起動(dòng)邏輯36的一個(gè)優(yōu)選實(shí)施例的框圖。起動(dòng)邏輯36包括按圖2B中所示連接的一組邏輯設(shè)備。在以Xilinx XC4000系列FPGA實(shí)現(xiàn)的示范實(shí)施例中,起動(dòng)邏輯36包括傳統(tǒng)的Xilinx二進(jìn)制元件FDS、AND2B1、AND2B2和OR2B1。
現(xiàn)在參考圖2C,其中示出了本發(fā)明的延遲單元38的一個(gè)優(yōu)選實(shí)施例的框圖。延遲單元38優(yōu)選在RDL內(nèi)實(shí)現(xiàn),并在一組“n”個(gè)CLB138、144、150、154中包括進(jìn)位邏輯元件,其中n是一個(gè)整數(shù)。優(yōu)選每一進(jìn)位邏輯元件包括一個(gè)高速進(jìn)位傳播電路。延遲單元38在這組n個(gè)CLB中另外還包括一個(gè)功能發(fā)生器的子組以方便信號(hào)在延遲單元38和對(duì)延遲單元38的外部邏輯,亦即起動(dòng)邏輯36、脈沖計(jì)數(shù)器40和門序列邏輯42之間形成通路。在一個(gè)示范的實(shí)施例中,延遲單元38是用Xilinx XC4000系列FPGA通過(guò)使用“EXAMINE CI”和“FORCE CI”指令實(shí)現(xiàn)的,這兩個(gè)指令分別相應(yīng)于檢察和強(qiáng)迫載入信號(hào)。
在每一個(gè)CLB138、144、150、154中使用的邏輯把一個(gè)已知的延遲(對(duì)Xilinx XC4000進(jìn)位邏輯元件為1.5ns,對(duì)Xilinx XC4000F型功能發(fā)生器為4.5ns)加在延遲單元38上。延遲單元38的操作頻率優(yōu)選通過(guò)用增加或者減少以串聯(lián)方式連接的進(jìn)位邏輯元件的數(shù)目而變化。在較佳實(shí)施例中,希望得到最大速率的自定時(shí)脈沖序列發(fā)生器34。因此組成延遲單元38的CLB138、144、150、154的數(shù)目取決于功能邏輯24的一個(gè)最慢的部分。其結(jié)果,如果功能邏輯24的最慢部分用″t”ns執(zhí)行,則優(yōu)選用總延遲等于“t”ns的一半(亦即周期的一半)的“n”個(gè)CLB組成延遲單元38。也就是說(shuō),由于RLD具有可實(shí)時(shí)重新編程的能力,延遲單元38的延遲可以在功能邏輯24進(jìn)行處理操作期間動(dòng)態(tài)改變。這允許功能邏輯24的第一組操作以第一自定時(shí)速率進(jìn)行功能邏輯24的第二組其它操作以第二自定時(shí)速率執(zhí)行等等。
在第一個(gè)CLB138中,功能發(fā)生器(1)140接收線35上的起動(dòng)脈沖,并把該脈沖傳給進(jìn)位邏輯元件(1)139。然后進(jìn)位邏輯元件(1)139通過(guò)進(jìn)位輸出線142把該脈沖傳給第二個(gè)CLB144。在第二CLB144之內(nèi),進(jìn)位邏輯元件(2)145接收脈沖并將其傳給功能發(fā)生器(2)146,并通過(guò)進(jìn)位輸出線148也把該脈沖傳給第三CLB150。傳送脈沖到功能發(fā)生器(2)146使得該脈沖從延遲單元38在那一點(diǎn)被“分接”一下,使其成為在線39上的延遲單元輸出信號(hào)133。這里“分接”定義為在延遲單元38之內(nèi)的連接,它便利了延遲單元外的信號(hào)路徑選擇。這種“分接”也可能以另一種方案在延遲單元38之內(nèi)的一個(gè)不同的位置發(fā)生,或者在幾個(gè)地方發(fā)生,取決于被實(shí)現(xiàn)的該組功能邏輯24。其中線39被分接的準(zhǔn)確位置在延遲單元38內(nèi)優(yōu)選如此選擇,使得由脈沖序列發(fā)生器在線33上產(chǎn)生的信號(hào)與啟動(dòng)裝置20運(yùn)行的外部電路(未示出)相位一致,如參考圖1敘述的那樣。
在第三個(gè)CLB150中,進(jìn)位邏輯元件(3)151接收脈沖并把它傳送給在下一CLB中的一個(gè)進(jìn)位邏輯元件,等等,直到該脈沖被傳送到在“第n個(gè)”CLB154之內(nèi)的進(jìn)位邏輯元件(n)。在第三CLB150和“第n個(gè)”CLB154之間的任何CLB優(yōu)選具有同樣的結(jié)構(gòu)和有與第三CLB150同樣的接口。在第三CLB150之內(nèi),不需功能發(fā)生器(3)152操作延遲單元38,因?yàn)榈谌鼵LB150未被分接來(lái)把該脈沖送達(dá)延遲單元38外部的目的地。因此功能發(fā)生器(3)152可以用來(lái)實(shí)現(xiàn)部分功能邏輯24的操作,這極具優(yōu)點(diǎn)。
在第n個(gè)CLB中進(jìn)位邏輯元件(n)155接收脈沖并將其傳送給功能發(fā)生器(n)156,它把該脈沖翻轉(zhuǎn)并將翻轉(zhuǎn)后的脈沖在線37上作為反饋信號(hào)132輸出。正是通過(guò)對(duì)該脈沖的翻轉(zhuǎn),自定時(shí)振蕩器從邏輯“1”變?yōu)檫壿嫛?”。熟悉本技術(shù)領(lǐng)域的人會(huì)看出也可以使用功能發(fā)生器(1)140使脈沖翻轉(zhuǎn)。
延遲單元38的運(yùn)行頻率可以通過(guò)增加或減少串連的進(jìn)位邏輯元件的數(shù)目而改變(亦即通過(guò)改變“n”的值)。在另一可選的實(shí)施方案中,“n”可以是零,結(jié)果使起動(dòng)脈沖、反饋信號(hào)132和延遲單元輸出信號(hào)133成為同一信號(hào)。還有另一個(gè)實(shí)施例,延遲單元38的運(yùn)行頻率可以通過(guò)附屬的信號(hào)路徑通過(guò)一個(gè)或多個(gè)功能發(fā)生器而改變。還有再一個(gè)實(shí)施例,其中延遲單元38的運(yùn)行頻率可以使用在具有良好定義的延遲特性的RLD之內(nèi)的信號(hào)路徑資源而修改或調(diào)整。熟悉本技術(shù)領(lǐng)域的人會(huì)看出,可以使用其中具有已知最大信號(hào)傳播延遲的單個(gè)元件的邏輯,以不可重新配置的設(shè)備來(lái)實(shí)施延遲單元38。
現(xiàn)在參考圖2D,其中示出了本發(fā)明的計(jì)數(shù)器40的一個(gè)優(yōu)選實(shí)施例的框圖。脈沖發(fā)生器40包括以圖2D中所示操作連接的一組邏輯設(shè)備160、162、164(最好使用庫(kù)元件ROM16X1、FDR和AND3B3在Xilinx XC4000系列FPGA中產(chǎn)生)。多個(gè)ROM160與觸發(fā)器162連接到一起實(shí)現(xiàn)脈沖計(jì)數(shù)。觸發(fā)器162的當(dāng)前狀態(tài)碼Q3、Q2、Q1、Q0用于產(chǎn)生脈沖計(jì)數(shù),用一個(gè)當(dāng)前狀態(tài)碼相應(yīng)于中止信號(hào)134。脈沖計(jì)數(shù)器40一直增量直到在線43上收到復(fù)位(1)脈沖105。要在ROM160中存儲(chǔ)的編碼從下面的當(dāng)前狀態(tài)/下一狀態(tài)表中產(chǎn)生。
當(dāng)前狀態(tài) 下一狀態(tài)Q3 Q2 Q1 Q0 RD3 RD2 RD1 RD00 0 0 0 0 0 0 10 0 0 1 0 0 1 00 0 1 0 0 0 1 10 0 1 1 0 1 0 00 1 0 0 0 1 0 10 1 0 1 0 1 1 00 1 1 0 0 1 1 10 1 1 1 1 0 0 01 0 0 0 1 0 0 01 0 0 1 1 0 0 01 0 1 0 1 0 0 01 0 1 1 1 0 0 01 1 0 0 1 0 0 01 1 0 1 1 0 0 01 1 1 0 1 0 0 01 1 1 1 1 0 0 0現(xiàn)在參考圖2E,其中表示了本發(fā)明的門序列邏輯42的一個(gè)優(yōu)選實(shí)施例的框圖。門序列邏輯42由一組示于圖2E中操作連接的邏輯設(shè)備組成(最好使用庫(kù)元件D3_8E、AND2B1、FD、FD_1、NOR2、OR8和OR7在Xilinx XC4000系列FPGA內(nèi)部分產(chǎn)生)。門序列邏輯42使用在圖2E中所示的一組假信號(hào)保護(hù)電路(gIitch guardian circuit)170解碼8個(gè)狀態(tài)。解碼在時(shí)間上以在線44上的脈沖計(jì)數(shù)順序進(jìn)行。最后脈沖計(jì)數(shù)狀態(tài)(亦即(0,0,0))僅被解碼一次。CLK46、47、48、49由“或操作”假信號(hào)保護(hù)電路組170的輸出而產(chǎn)生。熟悉FPGA設(shè)計(jì)技術(shù)的人會(huì)看出,門序列邏輯42的另一可選的實(shí)施例可以通過(guò)德摩根(DeMorganization)局部狀態(tài)解碼器使用線與門電路來(lái)代替線或門電路。按照每一CLB封裝有高效雙觸發(fā)器的策略,優(yōu)選的門序列邏輯42包括一個(gè)偶數(shù)數(shù)目的負(fù)邊緣觸發(fā)的觸發(fā)電路和正邊緣觸發(fā)的觸發(fā)電路,其中同樣時(shí)鐘的觸發(fā)器互連。
現(xiàn)在參考圖3,其中表示了本發(fā)明的功能邏輯24的一個(gè)優(yōu)選實(shí)施例的框圖。功能邏輯24包括一個(gè)多路轉(zhuǎn)換器(MUX)50,一個(gè)部分乘積生成器(PPG)52,一個(gè)部分乘積加法器(PPS)54和一個(gè)乘積累加器(PA)56。MUX50接收線21上的X位被乘數(shù),并響應(yīng)在線44上的脈沖計(jì)數(shù)輸出S位的被乘數(shù)的子集,下面參考圖4將詳細(xì)敘述。PPG52用S位被乘數(shù)子集乘線23上的Y位乘數(shù),并向PPS54輸出一組部分乘積,其在下面參考圖5詳細(xì)敘述。PPS54合并這組部分乘積并響應(yīng)線46上的PPS-CLK98輸出一個(gè)部分乘積和到PA56,其在下面參考圖6詳細(xì)敘述。PA56從起動(dòng)邏輯36接收線45上的一個(gè)復(fù)位(2)脈沖107(參見(jiàn)圖8),并作為響應(yīng)復(fù)位其內(nèi)部觸發(fā)器(FF)為零。在接收這一復(fù)位(2)脈沖107之前,先前的P位乘積留在線25上。PA56通過(guò)把部分乘積和加到乘積累加位的一個(gè)子集而產(chǎn)生一個(gè)乘積累加,并響應(yīng)線47、48、49上的PA-CLK(1、2、3)99、100、101(參考圖8)在線25上輸出一個(gè)P位的乘積,其在下面參考圖7詳細(xì)敘述。在每一個(gè)S位的被乘數(shù)子集由Y位乘數(shù)相乘并由PA56累加后,由功能邏輯24執(zhí)行完整的X位與Y位的乘積。
現(xiàn)在參考圖4,其中表示了在功能邏輯24中的MUX的一個(gè)優(yōu)選的實(shí)施例的框圖。MUX50包括一個(gè)第一MUX58和一個(gè)第二MUX60。每一個(gè)MUX58和60通過(guò)線21連接到輸入緩沖器22,使得每一個(gè)接收一半的X位被乘數(shù)。第一MUX58接收被乘數(shù)的偶數(shù)位(亦即對(duì)16位的被乘數(shù)為20、22、…214),而第二個(gè)MUX60接收被乘數(shù)的奇數(shù)位(亦即對(duì)16位的被乘數(shù)為21、23、…215)。每一個(gè)MUX58、60通過(guò)線44接收脈沖計(jì)數(shù)。在X位與Y位相乘期間,脈沖計(jì)數(shù)從初始脈沖計(jì)數(shù)增量直到并包括最大脈沖計(jì)數(shù)。在被乘數(shù)為16位的場(chǎng)合,初始脈沖計(jì)數(shù)最好相應(yīng)于線44上的(0,0,1),其中“1”是LSB,而最大脈沖計(jì)數(shù)最好相應(yīng)于(0,0,0)。于是脈沖計(jì)數(shù)最好從(0,0,1)變化到(0,1,0),(0,1,1),(1,0,0),(1,0,1),(1,1,0),(1,1,1),然后為(0,0,0)。
第一和第二MUX58、60輸出一個(gè)S位被乘數(shù)子集到PPG52。于是一個(gè)兩位的被乘數(shù)子集(21和2i+1)被送往PPG52,其中位2i是從第一MUX58選取,而位2i+1是從第二MUX60選取。對(duì)于一個(gè)16位乘以16位的乘法,“S”等于“2”而“i”是一個(gè)整數(shù),在脈沖計(jì)數(shù)從(0,0,1)變化到(0,0,0)時(shí),i最好位于0到14之間。
現(xiàn)在參考圖5,其中表示了在功能邏輯之內(nèi)的PPG52的一個(gè)較佳實(shí)施例的框圖。PPG52包括第一組部分乘積乘數(shù)(PPM)51和第二組部分乘積乘數(shù)PPM53,其輸入連接起來(lái)以便從第一和第二MUX58、60接收S位被乘數(shù)子集和在線23上接收Y位乘數(shù)。從第一和第二組PPM51、53的輸出連接到PPS54。對(duì)于一個(gè)16位乘16位的乘法,每一組PPM51、53包括4個(gè)并行的2位乘以2位的PPM運(yùn)算,產(chǎn)生總共32位的積,其在每次乘法運(yùn)算后被送往PPS54。在線23上從16位乘數(shù)來(lái)的每一對(duì)兩位的乘數(shù)被引向8個(gè)PPMs中的一個(gè)并在每一個(gè)部分乘積乘法運(yùn)算期間保持恒定。對(duì)每一個(gè)脈沖計(jì)數(shù),一個(gè)2位的被乘數(shù)子集(亦即2i和2i+1)被送往8個(gè)PPM中的每一個(gè),從第一個(gè)2位被乘數(shù)對(duì)(20&21)開(kāi)始,其時(shí)脈沖計(jì)數(shù)置為1,以最后兩位被乘數(shù)對(duì)(214&215)結(jié)束,其時(shí)脈沖計(jì)數(shù)置為零。如圖5中為清楚起見(jiàn)所示,從第一和第二組PPM51、53來(lái)的兩個(gè)16位部分乘積的列位置豎直對(duì)齊,因?yàn)樗鼈兊奈粚⒂蒔PS54相加,這在該技術(shù)領(lǐng)域已公知。位20是最低有效位(LSB)而位217是最高有效位(MSB)。熟悉本技術(shù)領(lǐng)域的人會(huì)看出,雖然敘述的是產(chǎn)生16位乘以16位的部分乘積,但是同樣的說(shuō)明可類似地應(yīng)用于產(chǎn)生X位乘以Y位部份乘積的一般情況。
現(xiàn)在參考圖6,其中表示了功能邏輯24內(nèi)的PPS54的一個(gè)較佳實(shí)施例的框圖。PPS54包括一個(gè)PPS加法器64,一個(gè)PPS增量器66和一組PPS觸發(fā)器68。連接PPS54以接收由PPG52產(chǎn)生的兩個(gè)部分乘積。PPS54相加兩個(gè)部分乘積并產(chǎn)生一個(gè)部分乘積和。在16位與16位的乘法的場(chǎng)合,從第一組PPM51來(lái)的兩個(gè)LSB(20-21)直接由PPS觸發(fā)器68接收;PPS加法器64從第一和第二組PPM51、53兩者中相加14位(22-215);PPS增量器66從第二組PPM 53接收兩個(gè)MSB(216-217)和從14位的PPS加法器64接收進(jìn)位輸出;產(chǎn)生一個(gè)18位的部分乘積和(20-217)并輸出。從加法得到的部份乘積和,響應(yīng)線46上的PPS-CLK98的翻轉(zhuǎn),存儲(chǔ)在PPS觸發(fā)器68內(nèi)。
現(xiàn)在參考圖7,其中表示了在功能邏輯24內(nèi)的PA56的一個(gè)優(yōu)選的實(shí)施例的框圖。PA56包括一個(gè)為從PPS54接收部分乘積和以及執(zhí)行累加而連接的PA加法器70,一個(gè)PA增量器71和用于最終存儲(chǔ)P位乘積的一組PA觸發(fā)器72、74、76、78、80、82、84、86、88。對(duì)于16乘以16的乘法PA加法器70是一個(gè)16位的加法器;PA增量器71是一個(gè)2位增量器;而PA觸發(fā)器組72、74、76、78、80、82、84、86、88包括第一觸發(fā)器組72,第二觸發(fā)器組74,第三觸發(fā)器組76,第四觸發(fā)器組78,第五觸發(fā)器組80,第六觸發(fā)器組82,第七觸發(fā)器組84,第八組觸發(fā)器86,和第九觸發(fā)器組88,用以存儲(chǔ)一個(gè)32位的乘積(p0-p31,其中p0是LSB,而p31是MSB)。從PPS54接收到的第一部分乘積和的兩個(gè)LSB(20-21)響應(yīng)線47上的PA-CLK(1)99的上升緣存儲(chǔ)在第二觸發(fā)器組74,從而成為32位乘積的兩個(gè)LSB(p0-p1)。一個(gè)16位乘積累加子集(從16位加法器70和兩位增量器71的輸出的位22到位217)響應(yīng)線48上的PA-CLK(2)100的上升緣存儲(chǔ)在第一觸發(fā)器組72中。16位加法器70把從PPS54接收的每一部分乘積和的位20到位215加到16位乘積累加子組上以產(chǎn)生一個(gè)乘積累加(從16位加法器70和兩位增量器71的輸出的位20到位217)。然后每一乘積累加的位22到位217成為乘積累加子組,反饋到第一觸發(fā)器組72,而乘積累加位20和21,每一乘積累加之后,響應(yīng)線49上的PA-CLK(3)101的順序移過(guò)通過(guò)第三到第九觸發(fā)器組76、78、80、82、84、86、88。于是在一個(gè)PA-CLK(1)99翻轉(zhuǎn)之后,位p0和p1存儲(chǔ)在第二觸發(fā)器組74中;在八個(gè)PA-CLK(2)100翻轉(zhuǎn)后,位p16到位p31存儲(chǔ)在第一觸發(fā)器組72中;和在七個(gè)PA-CLK(3)101翻轉(zhuǎn)后,位p2和p3存儲(chǔ)在第九觸發(fā)器組88中,位p4和p5存儲(chǔ)在第八觸發(fā)器組86中,位p6和p7存儲(chǔ)在第七觸發(fā)器組84中,位p8和p9存儲(chǔ)在第六觸發(fā)器組82中,位p10和p11存儲(chǔ)在第五觸發(fā)器組80中,位p12和p13存儲(chǔ)在第四觸發(fā)器組78中,和位p14和p15存儲(chǔ)在第三觸發(fā)器組76中。然后32位乘積(位p0到p31)通過(guò)線25送往輸出緩沖器26。
現(xiàn)在參考圖8,其中表示了本發(fā)明的操作的較佳定時(shí)圖89。圖8所示的定時(shí)波形是理想化了的,因此邏輯效果被認(rèn)為是發(fā)生在任何狀態(tài)變換的瞬間。定時(shí)圖89包括起動(dòng)信號(hào)90,快起動(dòng)信號(hào)128,起動(dòng)脈沖信號(hào)130,反饋信號(hào)132,延遲單元輸出信號(hào)133,中止信號(hào)134,RESET(1)信號(hào)91,MUX(0)信號(hào)92,MUX(1)信號(hào)94,MUX(2)信號(hào)96,PPS-CLK信號(hào)98,RESET(2)信號(hào)97,PA-CLK(1)信號(hào)99,PA-CLK(2)信號(hào)100,PA-CLK(3)信號(hào)101,乘積信號(hào)102,第一起動(dòng)信號(hào)104,下一起動(dòng)信號(hào)106,第一PPS-CLK信號(hào)108,第一PA-CLK(1)信號(hào)109,第一PA-CLK(2)信號(hào)110,第一PA-CLK(3)信號(hào)112和乘積計(jì)算時(shí)間114。第一起動(dòng)信號(hào)104由脈沖序列發(fā)生器34通過(guò)線32接收,如圖2A所示。響應(yīng)第一起動(dòng)信號(hào)104,起動(dòng)邏輯36通過(guò)在線43上發(fā)送復(fù)位(1)脈沖105并通過(guò)線44發(fā)送MUX(0)92,MUX(1)94和MUX(2)96信號(hào)到MUX50分別初始化MUX(0)92(LSB),MUX(1)94和MUX(2)96(MSB)信號(hào)為(0,0,1)。作為響應(yīng),MUX50選擇頭兩位被乘數(shù)對(duì)(2-21)用于16位與16位相乘,如上所述。門序列邏輯42延遲送出第一PPS-CLK信號(hào)108到PPS54,直到第一個(gè)18位的部份乘積和出現(xiàn)在PPS觸發(fā)器68的輸入。在第一個(gè)18位部分乘積和存儲(chǔ)在PPS觸發(fā)器68之后,MUX(0)92,MUX(1)94和MUX(2)96信號(hào)增量到下一狀態(tài)(0,1,0)以準(zhǔn)備下一個(gè)18位的部分乘積和。門序列邏輯42也通過(guò)線47延遲發(fā)送出第一PA-CLK(1)信號(hào)109直到該18位的部分乘積和出現(xiàn)在第二觸發(fā)器組74的輸入。就在PA-CLK(1)脈沖109通過(guò)線47送出之前,起動(dòng)邏輯36通過(guò)線45產(chǎn)生復(fù)位(2)脈沖107以清除先前的P位PRODUCT(積)102。PA-CLK(1)99在每一次完成16位與16位的乘法運(yùn)算時(shí)翻轉(zhuǎn)一次。僅在第一16位乘積累加子集出現(xiàn)在第一觸發(fā)器組72的輸入之后才通過(guò)線48產(chǎn)生第一PA-CLK(2)信號(hào)110,之后,每當(dāng)下一個(gè)16位的乘積累加子集出現(xiàn)在第一觸發(fā)器組72的輸入時(shí)PA-CLK(2)100翻轉(zhuǎn)。PA-CLK(2)100在每一次完成16位與16位的乘法運(yùn)算過(guò)程中翻轉(zhuǎn)8次。僅在第二個(gè)18位的乘積累加出現(xiàn)在第三觸發(fā)器組76的輸入之后,才通過(guò)線49產(chǎn)生第一PA-CLK(3)信號(hào)112,之后,每當(dāng)下一個(gè)18位的乘積累加出現(xiàn)在第三觸發(fā)器組72的輸入時(shí)PA-CLK(3)101翻轉(zhuǎn)。PA-CLK(3)101在每一次完成16位與16位乘積運(yùn)算過(guò)程中翻轉(zhuǎn)7次。由于實(shí)施本發(fā)明的一個(gè)物理設(shè)備出現(xiàn)的傳播延遲,PRODUCT(乘積)102在乘積計(jì)算時(shí)間114之內(nèi)被計(jì)算而已知。其結(jié)果,在第一起動(dòng)信號(hào)104之后作為第二起動(dòng)信號(hào)106可能被送往脈沖系列發(fā)生器34的最早時(shí)間是在PRODUCT信號(hào)102穩(wěn)定之后。雖然只敘述了16位乘16位的情形,但是熟悉本技術(shù)領(lǐng)域的人會(huì)看出,可以以相似的方式實(shí)現(xiàn)X位與Y位的乘法。
現(xiàn)在參考圖9A,其中表示了由本發(fā)明執(zhí)行的16位乘16位的較佳的選部分乘積相加的矩陣。對(duì)于16位與16位相乘,PPS54經(jīng)過(guò)8次相加而PA56經(jīng)過(guò)7次累加,最后通過(guò)線25產(chǎn)生一個(gè)對(duì)輸出緩沖器26的32位的乘積輸出,如上所述。在矩陣的頂部,表示了32位積的每一位的列,其中LSB為20,MSB為231。參見(jiàn)標(biāo)以“I,II,III,IV,V,VI,VII”和“VIII”的矩陣部分,表示了PPG52之內(nèi)的8個(gè)部分乘積62的對(duì)齊。在部分“I”,16位被乘數(shù)的位20和21用16位的乘數(shù)相乘;在部份“II”,16位被乘數(shù)的位22和23用16位乘數(shù)相乘;等等,直到在部分“VIII”16位被乘數(shù)的位214和215用16位乘數(shù)相乘。PA56以在矩陣中指示的方式相加這8部分,產(chǎn)生一個(gè)32位的乘積。
現(xiàn)在參考圖9B,其中表示了根據(jù)本發(fā)明執(zhí)行的8位乘8位的一個(gè)優(yōu)選的部分乘積相加的矩陣。對(duì)于8位與8位相乘,設(shè)計(jì)PPS54經(jīng)過(guò)4次相加和PA56經(jīng)過(guò)3次累加,最后通過(guò)線25產(chǎn)生一個(gè)16位的乘積,輸出到輸出緩沖器26,如上所述。在矩陣的頂部,表示了16位乘積的每一位的列,其中LSB為20,MSB為215。參考標(biāo)以“I,II,III”和“IV”的矩陣部分,表示了在PPG52之內(nèi)的4個(gè)部分乘積乘數(shù)62的組合。在部分“I”,8位被乘數(shù)的位20和21用8位乘數(shù)相乘;在部分“II”,8位被乘數(shù)的位22和23用8位乘數(shù)相乘,等等,直到在部分“IV”8位被乘數(shù)的位26和27用8位乘數(shù)相乘。PA56以在矩陣內(nèi)指示的方式把4部分相加,產(chǎn)生一個(gè)16位的乘積。
現(xiàn)在參考圖10,其中表示了用于自定時(shí)算法執(zhí)行的一個(gè)較佳方法的流程圖。該較佳方法從步驟200開(kāi)始,其中當(dāng)線29上的輸入使能設(shè)為邏輯“1”時(shí),參考時(shí)鐘的翻轉(zhuǎn)引起輸入緩沖器22把輸入數(shù)據(jù)通過(guò)線21和23以上述方式與參考時(shí)鐘翻轉(zhuǎn)同步傳輸?shù)焦δ苓壿?4。接著在步驟202,響應(yīng)起動(dòng)信號(hào)90在線32上從邏輯“0”轉(zhuǎn)變到邏輯“1”,脈沖序列發(fā)生器34通過(guò)線33產(chǎn)生一個(gè)最大速率脈沖序列,以依賴于功能邏輯24的算法執(zhí)行時(shí)間但獨(dú)立于線28上的參考時(shí)鐘的速率驅(qū)動(dòng)功能邏輯24。在圖11中詳細(xì)敘述步驟202。在步驟204,功能邏輯24響應(yīng)線33上的最大速率脈沖序列在線25上產(chǎn)生輸出數(shù)據(jù)。在圖12中詳細(xì)敘述204。在步驟206,當(dāng)在線31上的輸出使能置為邏輯“1”時(shí),輸出數(shù)據(jù)響應(yīng)線28上的參考時(shí)鐘翻轉(zhuǎn)并與之同步地從功能邏輯24通過(guò)線25傳輸輸出數(shù)據(jù)到輸出緩沖器26,如上所述。在步驟206之后,較佳方法結(jié)束。
現(xiàn)在參考圖11,其中表示產(chǎn)生一個(gè)脈沖序列(圖10的步驟202)的一個(gè)優(yōu)選方法的流程圖。該優(yōu)選方法在步驟250以起動(dòng)邏輯36監(jiān)視線32上的起動(dòng)信號(hào)90和線41上的中止信號(hào)的狀態(tài)而開(kāi)始。在步驟252,如果起動(dòng)信號(hào)90轉(zhuǎn)變?yōu)檫壿嫛?”而中止信號(hào)依然設(shè)定為“0”,則該方法前進(jìn)到步驟254,否則該方法返回到步驟250。在步驟254,起動(dòng)邏輯36初始化脈沖計(jì)數(shù)器40,如上所述。在步驟255起動(dòng)邏輯36把一個(gè)起動(dòng)脈沖傳送到延遲單元38,如上所述。在下一步驟256,脈沖計(jì)數(shù)器40增量脈沖計(jì)數(shù)信號(hào)(亦即對(duì)16位乘16位的乘法為MUX(0)92,MUX(1)94和MUX(2)96)以響應(yīng)延遲單元輸出信號(hào)133,如上所述。在延遲單元38之內(nèi)延遲單元輸出信號(hào)被分接的位置可以改變,以便把脈沖序列發(fā)生器34的定時(shí)脈沖與連接到裝置20上的外部電路相位校準(zhǔn)。在步驟258,門序列邏輯42以上述方式響應(yīng)脈沖計(jì)數(shù)信號(hào),產(chǎn)生PPS-CLK信號(hào)98和PA-CLK信號(hào)99、100、101。在步驟260,如果脈沖計(jì)數(shù)信號(hào)等于最大脈沖計(jì)數(shù)信號(hào),則該方法前進(jìn)到步驟262,否則該方法返回到步驟256。在步驟262,脈沖計(jì)數(shù)器40通過(guò)設(shè)定線41上的中止信號(hào)為邏輯“1”而停止發(fā)送起動(dòng)脈沖到延遲單元38。在步驟262之后,該優(yōu)選方法結(jié)束。
現(xiàn)在參考圖12,其中表示了響應(yīng)脈沖序列(圖12的步驟204)而產(chǎn)生輸出數(shù)據(jù)的一個(gè)較佳方法的流程圖。該較佳方法在步驟300以MUX50輸入X位被乘數(shù),PPG52輸入Y位的乘數(shù),和起動(dòng)邏輯36初始化部分乘積和以及乘積累加為零而開(kāi)始,如上所述。在步驟302,MUX50以上述方式選擇下一S位被乘數(shù)子集。在步驟304,PPG52用Y位乘數(shù)乘當(dāng)前S位被乘數(shù)子集(亦即當(dāng)前子集是在步驟302中選擇的下一子集),產(chǎn)生部分乘積送往PPS54,如上所述。在下一步驟306,PPS54產(chǎn)生部分乘積和并以上述方式送往PA56。在步驟308,PA56把部分乘積和加到乘積累加上,如上所述。在步驟310,如果下一S位被乘數(shù)子集還需要用Y位乘數(shù)相乘的話,則該方法返回到步驟302,否則該方法前進(jìn)到312。在步驟312,PA56輸出P位乘積到輸出緩沖器26。在步驟312之后,該較佳方法結(jié)束。
本發(fā)明優(yōu)選用于計(jì)算系統(tǒng)內(nèi)。在現(xiàn)有技術(shù)中,設(shè)計(jì)提供高速特定算法實(shí)現(xiàn)的電路是由多層電路構(gòu)造的。每一電路層接收一組信號(hào),執(zhí)行一組特定的操作,并與參考時(shí)鐘同步地輸出一組結(jié)果。信號(hào)從一層傳輸?shù)搅硪粚?。這種現(xiàn)有技術(shù)的電路設(shè)計(jì)常常需要許多電路層,使得必須使用大量的硬件資源,這是不希望的。與現(xiàn)有技術(shù)相比,本發(fā)明通過(guò)以最大的自定時(shí)速率一次又一次重新使用最低數(shù)量的硬件資源實(shí)現(xiàn)一個(gè)算法而產(chǎn)生結(jié)果。也就是說(shuō),從接收起動(dòng)信號(hào)到產(chǎn)生中止信號(hào)重復(fù)使用同一組硬件資源來(lái)產(chǎn)生結(jié)果。本發(fā)明使用比現(xiàn)有技術(shù)需要的高速電路少得多的硬件資源提供一種實(shí)現(xiàn)一個(gè)算法的設(shè)備,而不會(huì)有明顯的產(chǎn)生結(jié)果的速率損失。這在用RLD實(shí)現(xiàn)一個(gè)或多個(gè)不同方式的本發(fā)明時(shí)特別具有優(yōu)點(diǎn)。
熟悉本技術(shù)領(lǐng)域的人會(huì)看出,上述本發(fā)明相對(duì)于現(xiàn)有邏輯設(shè)計(jì)有很多優(yōu)點(diǎn)。本發(fā)明由于現(xiàn)在的非同步邏輯設(shè)計(jì)特別具有優(yōu)點(diǎn)。例如,本發(fā)明不需要在完成操作任務(wù)后產(chǎn)生“完成信號(hào)”;已知或預(yù)見(jiàn)完成時(shí)間;不需要外部時(shí)鐘元件,相反有其自己的整體脈沖系列定時(shí)元件;具有獨(dú)立于數(shù)據(jù)的完成時(shí)間;可以與外部電路同步的接口;可以與外部電路進(jìn)行內(nèi)在的相位數(shù)據(jù)交換;在給定時(shí)元件增加延遲時(shí)只需增加局部電路另外的復(fù)雜程度;非常易于封裝在同步外部電路中;只影響一組局部電路的性能而不影響整個(gè)外部電路系統(tǒng)。
雖然本發(fā)明是參考特定的較佳實(shí)施例敘述的,但是熟悉本技術(shù)領(lǐng)域的人會(huì)看出,可以進(jìn)行各種修改,這樣的修改可以產(chǎn)生本發(fā)明另外的實(shí)施方案。例如延遲單元38可以設(shè)計(jì)為隨RLD配置連續(xù)循環(huán)一個(gè)脈沖,從而取消起動(dòng)邏輯36。在這樣的實(shí)施例中,使用一個(gè)RS觸發(fā)器能夠響應(yīng)起動(dòng)信號(hào)使多路轉(zhuǎn)換器把延遲單元輸出信號(hào)傳送給脈沖計(jì)數(shù)器40和門序列邏輯42。熟悉本技術(shù)領(lǐng)域的人還會(huì)看出,功能邏輯不限于自定時(shí)乘法器。功能邏輯可以修改為提供包括(但不限于)下述功能自定時(shí)除法器,自定時(shí)卷積器,或自定時(shí)信號(hào)處理器。下述權(quán)利要求限定了本發(fā)明對(duì)較佳實(shí)施例可能提供的變化和修改。
權(quán)利要求
1.自定時(shí)算法執(zhí)行裝置,包括為以第一速率接收輸入數(shù)據(jù)而連接的一個(gè)功能邏輯組,用于以獨(dú)立于第一速率的第二速率產(chǎn)生輸出數(shù)據(jù),并以第一速率傳輸輸出數(shù)據(jù);一個(gè)脈沖序列發(fā)生器,用于相應(yīng)于第二速率產(chǎn)生一個(gè)自定時(shí)脈沖序列,該脈沖序列發(fā)生器用于控制功能邏輯。
2.權(quán)利要求1的裝置,其中該功能邏輯組具有一個(gè)予測(cè)的執(zhí)行時(shí)間;第二速率是基于該預(yù)測(cè)執(zhí)行時(shí)間的一個(gè)最大速率。
3.權(quán)利要求1的裝置,其中功能邏輯和脈沖序列發(fā)生器這樣位于一組硬件資源之內(nèi),使得能同步地響應(yīng)硬件資源的操作參數(shù)變化。
4.權(quán)利要求1的裝置,其中脈沖序列發(fā)生器包括產(chǎn)生自定時(shí)振蕩的一個(gè)延遲單元。
5.權(quán)利要求4的裝置,其中延遲單元包括一組串聯(lián)的邏輯設(shè)備,每一個(gè)邏輯設(shè)備具有一個(gè)可預(yù)測(cè)的傳播延遲。
6.權(quán)利要求5的裝置,其中該組串聯(lián)邏輯設(shè)備包括一組進(jìn)位邏輯元件。
7.權(quán)利要求6的裝置,其中該組進(jìn)位邏輯元件包括在可重配置邏輯設(shè)備之內(nèi)的進(jìn)位傳送邏輯。
8.權(quán)利要求4的裝置,其中脈沖序列發(fā)生器另外包括門序列邏輯,用以產(chǎn)生一組時(shí)鐘信號(hào),門序列邏輯用以接收延遲單元輸出信號(hào)和交付該組時(shí)鐘信號(hào)到功能邏輯以提供第二速率。
9.權(quán)利要求8的裝置,其中脈沖序列發(fā)生器另外包括一個(gè)脈沖計(jì)數(shù)器用以產(chǎn)生一個(gè)脈沖計(jì)數(shù)信號(hào),該脈沖計(jì)數(shù)器用以接收延遲單元輸出信號(hào)。
10.權(quán)利要求9的裝置,其中脈沖序列發(fā)生器另外還包括起動(dòng)邏輯,用以產(chǎn)生一個(gè)起動(dòng)脈沖來(lái)起動(dòng)延遲單元的操作。
11.權(quán)利要求4的裝置,其中該邏輯單元包括一個(gè)乘法器,該乘法器包括接收被乘數(shù)的一個(gè)多路轉(zhuǎn)換器;接收乘數(shù)和被乘數(shù)位的子集的一個(gè)部分乘積生成器,用于產(chǎn)生一組部分乘積;接收該組部分乘積的一個(gè)部分乘積加法器,用于產(chǎn)生一個(gè)部分乘積和;以及接收部份乘積和的一個(gè)乘積累加器,用于累加部分乘積和以產(chǎn)生乘積,其中乘法器按照由延遲單元產(chǎn)生的自定時(shí)振蕩控制。
12.在一個(gè)可重配置邏輯設(shè)備內(nèi)的一個(gè)脈沖序列發(fā)生器,該脈沖序列發(fā)生器包括一組產(chǎn)生自定時(shí)振蕩的進(jìn)位邏輯元件。
13.控制自定時(shí)算法執(zhí)行系統(tǒng)的裝置,該自定時(shí)算法執(zhí)行系統(tǒng)包括功能邏輯,其接收輸入數(shù)據(jù)并響應(yīng)一組控制信號(hào)產(chǎn)生輸出數(shù)據(jù),該裝置包括接收起動(dòng)信號(hào)并作為響應(yīng)產(chǎn)生起動(dòng)脈沖的起動(dòng)邏輯;接收起動(dòng)脈沖并作為響應(yīng)產(chǎn)生延遲單元輸出信號(hào)和反饋信號(hào)的延遲單元;接收延遲單元輸出信號(hào)和作為響應(yīng)產(chǎn)生脈沖計(jì)數(shù)信號(hào)和有選擇地產(chǎn)生中止信號(hào)的脈沖計(jì)數(shù)器;以及接收脈沖計(jì)數(shù)信號(hào)和作為響應(yīng)產(chǎn)生該控制信號(hào)組的門序列邏輯,其中,該啟動(dòng)邏輯接收反饋信號(hào),并作為響應(yīng),在未產(chǎn)生中止信號(hào)時(shí),再產(chǎn)生起動(dòng)脈沖。
14.為一個(gè)包括一組功能邏輯和一個(gè)脈沖序列發(fā)生器的裝置所用的自定時(shí)算法執(zhí)行的方法,該方法包括的步驟有以第一速率接收輸入數(shù)據(jù);以獨(dú)立于第一速率的第二速率產(chǎn)生一個(gè)自定時(shí)脈沖序列;響應(yīng)該脈沖序列以第二速率處理輸入數(shù)據(jù);以及以第一速率輸出輸出數(shù)據(jù)。
15.權(quán)利要求14的方法,其中產(chǎn)生脈沖序列的步驟以一個(gè)依賴于與該組功能邏輯有關(guān)的執(zhí)行時(shí)間的最大速率執(zhí)行。
16.權(quán)利要求14的方法,其中接收輸入數(shù)據(jù)的步驟與參考時(shí)鐘同步地執(zhí)行;產(chǎn)生步驟以獨(dú)立于參考時(shí)鐘的自定時(shí)速率執(zhí)行;以及輸出步驟與參考時(shí)鐘同步地執(zhí)行。
17.權(quán)利要求16的方法,其中產(chǎn)生步驟包括的步驟有響應(yīng)起動(dòng)信號(hào)產(chǎn)生一個(gè)自定時(shí)振蕩;維持自定時(shí)振蕩,直到接收到中止信號(hào)。
18.權(quán)利要求17的方法,其中產(chǎn)生步驟另外還包括的步驟有產(chǎn)生一個(gè)脈沖計(jì)數(shù)信號(hào);產(chǎn)生一組控制信號(hào)相應(yīng)于自定時(shí)振蕩的周期的速率控制輸入數(shù)據(jù)的處理。
19.權(quán)利要求14的方法,其中處理步驟包括的子步驟有通過(guò)把乘數(shù)和被乘數(shù)的位的子集相乘產(chǎn)生一組部分乘積;通過(guò)相加該組部分乘積產(chǎn)生一個(gè)部分乘積和;累加該部分乘積和與先前的部分乘積和;并重復(fù)處理步驟中的每一子步驟,直到產(chǎn)生一個(gè)乘積。
20.用于自定時(shí)算法執(zhí)行的一個(gè)裝置,該裝置包括以第一速率接收數(shù)據(jù)的設(shè)備;以第二速率產(chǎn)生自定時(shí)脈沖序列的設(shè)備,第二速率獨(dú)立于第一速率;以第二速率處理輸入數(shù)據(jù)以響應(yīng)自定時(shí)脈沖序列產(chǎn)生輸出數(shù)據(jù)的設(shè)備;以及以第一速率輸出輸出數(shù)據(jù)的設(shè)備。
21.權(quán)利要求20的裝置,其中產(chǎn)生裝置包括產(chǎn)生一個(gè)自定時(shí)振蕩的設(shè)備。
全文摘要
一個(gè)用于自定時(shí)算法執(zhí)行的裝置包括一個(gè)功能邏輯組,一個(gè)參考時(shí)鐘輸入和一個(gè)脈沖序列發(fā)生器。功能邏輯組與在參考時(shí)鐘輸入接收到的參考脈沖組同步地接收輸入數(shù)據(jù);以由脈沖序列發(fā)生器按照該功能邏輯的物理特性設(shè)定的最大速率對(duì)輸入數(shù)據(jù)進(jìn)行算法計(jì)算;產(chǎn)生輸出數(shù)據(jù);并與參考脈沖組同步地傳送輸出數(shù)據(jù)。由脈沖序列發(fā)生器設(shè)定的最大速率獨(dú)立于參考脈沖組。
文檔編號(hào)G06F9/38GK1162153SQ97102100
公開(kāi)日1997年10月15日 申請(qǐng)日期1997年1月23日 優(yōu)先權(quán)日1996年1月24日
發(fā)明者M·A·巴克斯特 申請(qǐng)人:株式會(huì)社理光
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1