專利名稱:電路的動(dòng)態(tài)常量合并的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及電路,尤其涉及電路的動(dòng)態(tài)常量合并(constant folding )。
背景技術(shù):
現(xiàn)代計(jì)算設(shè)備中的數(shù)字電路通常用于響應(yīng)于一個(gè)或多個(gè)輸入信號(hào) 而產(chǎn)生一個(gè)或多個(gè)輸出信號(hào)。舉個(gè)非常簡(jiǎn)單的例子,與(AND)門接收 可能對(duì)應(yīng)于二進(jìn)制1或二進(jìn)制0的兩個(gè)輸入。如果這兩個(gè)輸入都是1 或都是0,則與門的輸出是二進(jìn)制l,如果這兩個(gè)輸入不同,則輸出是 二進(jìn)制0。更復(fù)雜的電路,如處理器、存儲(chǔ)元件、專用集成電路等,可 以通過(guò)組合簡(jiǎn)單的邏輯元件(如與門)來(lái)構(gòu)成。數(shù)字電路的輸入和/或 輸出的值典型地是與時(shí)鐘合拍地評(píng)估的。例如,可以基于在時(shí)鐘信號(hào) 的上升沿上輸入的值,確定數(shù)字電路的輸出的值。因此,數(shù)字電路的 狀態(tài)可以以時(shí)鐘頻率改變,或者被允許改變。盡管數(shù)字電路的總體狀態(tài)典型地隨著時(shí)鐘頻率變化,但對(duì)數(shù)字電 路的各部分的一些輸入可以以比用于驅(qū)動(dòng)數(shù)字電路的時(shí)鐘頻率小的頻 率改變。在一些情況下,對(duì)數(shù)字電路的一部分的輸入可能很大程度上 偶然保持不變。然而,在其他情況下,對(duì)數(shù)字電路的一部分的一個(gè)或 多個(gè)輸入可能在比時(shí)鐘周期大的時(shí)間段上可預(yù)測(cè)地保持恒定。因此, 可以通過(guò)假設(shè)在輸入保持恒定的多個(gè)時(shí)鐘周期內(nèi)輸入等于常量值,來(lái) 筒化數(shù)字電路。當(dāng)輸入改變到不同的常量值時(shí),數(shù)字電路可能相應(yīng)地 被修改。因此,數(shù)字電路可以以等于輸入的變化頻率的頻率而變化。 通過(guò)假設(shè)在所選時(shí)間段內(nèi)一個(gè)或多個(gè)輸入是常量值來(lái)簡(jiǎn)化電路,這通 常稱為"常量合并"。圖1概念性地示出電路100和對(duì)應(yīng)于電路100的常量合并電路105 的常規(guī)靜態(tài)實(shí)施。電路100接收輸入A和B,并且產(chǎn)生相應(yīng)的輸出C。 輸入A假設(shè)以時(shí)鐘頻率變化,并且輸入B以小于時(shí)鐘頻率的頻率變化。 因此,電路100保持靜態(tài),并且電路100的輸出C以時(shí)鐘頻率變化。常量合并電路105接收A,對(duì)輸入A執(zhí)行與電路100對(duì)輸入B的所選常 量值執(zhí)行的相同搮作,并且產(chǎn)生相應(yīng)的輸出C。然而,由于輸入B以小 于時(shí)鐘頻率的頻率變化,因此常量合并電路105的輸出C也以輸入B 的頻率變化。常量合并電路105的結(jié)構(gòu)典型地是由現(xiàn)用配置存儲(chǔ)器中包含的信 息確定的??梢愿淖儸F(xiàn)用配置存儲(chǔ)器的內(nèi)容,以改變常量合并電路105 的結(jié)構(gòu)來(lái)對(duì)應(yīng)于常量輸出B的不同值。例如,常量合并電路105可以 實(shí)施為現(xiàn)場(chǎng)可編程門陣列(FPGA),并且對(duì)FPGA查找表的輸入可以被 存儲(chǔ)在現(xiàn)用配置存儲(chǔ)器中。通過(guò)以與輸入B相關(guān)聯(lián)的頻率向現(xiàn)用配置 存儲(chǔ)器提供新信息,常量合并電路105的結(jié)構(gòu)可以以輸入B的頻率變 化。例如,對(duì)應(yīng)于輸入B的不同值的不同編程輸入可以由系統(tǒng)在設(shè)計(jì) 時(shí)(即,靜態(tài)地)生成并存儲(chǔ)。然后,可以將所存儲(chǔ)的編程輸入以與 輸入B相關(guān)聯(lián)的頻率提供給現(xiàn)用配置存儲(chǔ)器。然而,常量合并系統(tǒng)配 置的靜態(tài)生成和存儲(chǔ)限制了重新配置的可應(yīng)用性。例如,如果不同常 量值的數(shù)量大,那么存儲(chǔ)的代價(jià)可能很高。此外,如果片外(off-chip) 存儲(chǔ)配置,則按要求加載它們所需的1/0帶寬可能非常大。在運(yùn)行期間重新配置常量合并電路105可能會(huì)引起亂真輸出,這 可能傳播到系統(tǒng)的其余部分。因此,傳統(tǒng)的常量合并要求常量合并電 路105在重新配置過(guò)程中暫停計(jì)算,以便將常量合并電路105的未知 暫時(shí)狀態(tài)與可以接收在重新配置期間產(chǎn)生的亂真結(jié)果的目標(biāo)區(qū)域隔離 開(kāi)。例如,可以通過(guò)修剪系統(tǒng)時(shí)鐘、設(shè)置在重新配置過(guò)程期間等于常 量的目標(biāo)區(qū)域、或者設(shè)置重新配置標(biāo)記來(lái)暫停計(jì)算。不管用于暫停計(jì)算的具體技術(shù)如何,暫停計(jì)算引起包括常量合并 電路的計(jì)算架構(gòu)的停工期。可以通過(guò)限制對(duì)(當(dāng)與系統(tǒng)時(shí)鐘頻率相比)相對(duì)不那么頻繁改變的輸入的重新配置,將停工期分?jǐn)傇谟?jì)算時(shí)間上。 然而,如果將常量合并限制為相對(duì)不那么頻繁改變的變量,則限制了 常量合并所能應(yīng)用到的實(shí)例的數(shù)量?;蛘?,可以通過(guò)提供允許快速重 新配置速度的芯片級(jí)架構(gòu)特征來(lái)減少計(jì)算架構(gòu)停工期。然而,芯片級(jí) 架構(gòu)特征消耗寶貴的壓模(die)面積,并且可能導(dǎo)致芯片上的電路性 能下降,而這可能減少計(jì)算架構(gòu)的應(yīng)用數(shù)量。發(fā)明內(nèi)容本發(fā)明旨在解決上面提出的一個(gè)或多個(gè)問(wèn)題的效果。下面提出了 本發(fā)明的簡(jiǎn)單摘要,以便提供對(duì)本發(fā)明一些方面的基本理解。該摘要 不是對(duì)本發(fā)明的窮舉性概述。它并非意圖標(biāo)識(shí)本發(fā)明的關(guān)鍵或重要元 素或者描繪本發(fā)明范圍。它的唯一目的是以簡(jiǎn)化形式提供一些概念, 作為后面討論的更具體描述的序言。在本發(fā)明一個(gè)實(shí)施例中,提供一種涉及至少一個(gè)第一電路的方法, 該第一電路具有至少一個(gè)第一輸入、至少一個(gè)第二輸入和至少一個(gè)輸 出。該方法包括基于所述至少一個(gè)笫一輸入的至少一個(gè)第一值,確定 第二電路的至少一個(gè)輸出的至少一個(gè)第一值。所述笫二電路是使用基 于第一電路和所述至少一個(gè)第二輸出的至少一個(gè)第一值生成的第一配 置信息來(lái)配置的。該方法還包括與確定所述至少一個(gè)輸出的至少一個(gè) 第一值同時(shí)地,基于第一電路和所述至少一個(gè)第二輸入的至少一個(gè)第 二值生成第二配置信息。在本發(fā)明的另一實(shí)施例中,提供一種涉及包括至少一個(gè)相關(guān)器的 匹配濾波器的方法,所述相關(guān)器被配置來(lái)將碼序列的 一部分與數(shù)據(jù)流的部分相關(guān)。該方法包括基于碼序列的這部分和數(shù)據(jù)流的笫一部分, 使用相關(guān)器確定至少一個(gè)第一相關(guān)值。相關(guān)器是使用基于數(shù)據(jù)流的第 一部分生成的第一配置信息配置的。該方法還包括與確定所述至少 一個(gè)第一相關(guān)值同時(shí)地,基于數(shù)據(jù)流的第二部分生成第二配置信息。
通過(guò)參考下面結(jié)合附圖的描述,可以理解本發(fā)明,其中相同的附圖標(biāo)記表示相同的元素,其中圖1概念性地示出電路的常規(guī)靜態(tài)實(shí)施和對(duì)應(yīng)于該電路的靜態(tài)實(shí)施的常規(guī)常量合并電路;圖2概念性地示出根據(jù)本發(fā)明的系統(tǒng)的 一個(gè)示例性實(shí)施例;圖3概念性地示出根據(jù)本發(fā)明的靜態(tài)系統(tǒng)的一個(gè)示例性實(shí)施例;圖4概念性地示出根據(jù)本發(fā)明的常量合并系統(tǒng)的一個(gè)示例性實(shí)施例;圖5概念性地示出根據(jù)本發(fā)明的常量合并系統(tǒng)的一個(gè)示例性實(shí)施例;圖6概念性地示出根據(jù)本發(fā)明的匹配濾波器的一個(gè)示例性實(shí)施例;6圖7概念性地示出根據(jù)本發(fā)明的相關(guān)器的 一 個(gè)示例性實(shí)施例;圖8概念性地示出根據(jù)本發(fā)明的、常量合并單元的重新配置序列 的一個(gè)示例性實(shí)施例;圖9概念性地示出根據(jù)本發(fā)明的、可以用于實(shí)施圖7所示相關(guān)器 的常量合并電路的邏輯結(jié)構(gòu)的一個(gè)示例性實(shí)施例。盡管本發(fā)明容易進(jìn)行各種修改和替代形式,但在附圖中通過(guò)示例 的方式示出了其特定實(shí)施例并在這里詳細(xì)描述。然而應(yīng)當(dāng)理解,這里 對(duì)特定實(shí)施例的描述并非意圖將本發(fā)明限制于所公開(kāi)的具體形式,相 反,本發(fā)明意圖涵蓋落入權(quán)利要求書限定的本發(fā)明宗旨和范圍內(nèi)的所 有修改、等效和替代。
具體實(shí)施方式
下面描述本發(fā)明的說(shuō)明性實(shí)施例。為了清楚起見(jiàn),并非實(shí)際實(shí)施 的所有特征都在說(shuō)明書中描述。當(dāng)然應(yīng)當(dāng)明白,在任何實(shí)際實(shí)施例的 開(kāi)發(fā)中,需要作出眾多特定于實(shí)施的判斷,以實(shí)現(xiàn)開(kāi)發(fā)者的特定目標(biāo), 如符合關(guān)于系統(tǒng)和關(guān)于業(yè)務(wù)的約束,該約束在不同的實(shí)施之間將是不 同的。此外,應(yīng)當(dāng)明白,這樣的開(kāi)發(fā)努力可能是復(fù)雜且耗時(shí)的,但仍 然是本領(lǐng)域普通技術(shù)人員受益于本公開(kāi)而承擔(dān)的常規(guī)工作。本發(fā)明的各部分以及相應(yīng)的詳細(xì)描述是用軟件或計(jì)算機(jī)存儲(chǔ)器內(nèi) 對(duì)數(shù)據(jù)位操作的算法和符號(hào)表示來(lái)提供的。這些描述和表示是本領(lǐng)域術(shù)人員的手段。這里所廣義使用的術(shù)語(yǔ)"算法",是指引起期望結(jié)果 的自相容的步驟序列。這些步驟要求物理量的物理操作。通常但不是 必需地,這些量采用光、電或者磁信號(hào)的形式,能夠被存儲(chǔ)、傳送、 組合、比較以及用其他方式操作。將這些信號(hào)稱為位、值、元素、符 號(hào)、字符、項(xiàng)目、數(shù)字等,經(jīng)常被證明是方便的,主要是由于普遍使 用的原因。然而應(yīng)當(dāng)記住,所有這些和類似術(shù)語(yǔ)都要與恰當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián), 并且僅僅是應(yīng)用到這些量的方便的標(biāo)簽。除非另有專門說(shuō)明或者從討 論明顯看出,否則諸如"處理,,或"計(jì)算"或"推算,,或"確定"或 "顯示,,之類的術(shù)語(yǔ),是指計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算設(shè)備的動(dòng)作和 處理,將表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器內(nèi)的物理、電子量的數(shù)據(jù)操縱和變換成由計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器以及其他這樣的信息存 儲(chǔ)、傳輸或顯示設(shè)備內(nèi)的物理量類似表示的其他數(shù)據(jù)。還要注意,軟件實(shí)施的本發(fā)明方面典型地被編碼在某種形式的編 程存儲(chǔ)介質(zhì)上,或者在某種類型的傳輸介質(zhì)上實(shí)施。編程存儲(chǔ)介質(zhì)可 以是磁(例如,軟盤或硬盤驅(qū)動(dòng)器)或光(例如,光盤只讀存儲(chǔ)器或"CD ROM"),并且可以是只讀或隨機(jī)存取的。類似地,傳輸介質(zhì)可 以是雙絞線、同軸電纜、光纖或本領(lǐng)域已知的某種其他適合的傳輸介 質(zhì)。本發(fā)明不受任何給定實(shí)施的這些方面的限制。下面將參照附圖描述本發(fā)明。僅僅為了說(shuō)明的目的,在附圖中示 意性地繪出了各種結(jié)構(gòu)、系統(tǒng)和設(shè)備,以便不使本發(fā)明與本領(lǐng)域技術(shù) 人員公知的細(xì)節(jié)混淆。不過(guò),包括附圖以描述和說(shuō)明本發(fā)明的說(shuō)明性 示例。這里使用的詞和短語(yǔ)應(yīng)當(dāng)被理解和解釋為具有與相關(guān)領(lǐng)域技術(shù) 人員對(duì)這些詞和短語(yǔ)的理解相一致的含義。這里對(duì)術(shù)語(yǔ)或短語(yǔ)的一致 使用并非意圖暗示術(shù)語(yǔ)或短語(yǔ)的特殊定義,即,不同于本領(lǐng)域技術(shù)人 員理解的普通和習(xí)慣含義的定義。就術(shù)語(yǔ)或短語(yǔ)意圖具有特殊含義(即,不同于本領(lǐng)域技術(shù)人員理解的含義)而言,這種特殊定義將在 說(shuō)明書中以明確的方式清楚地闡述,以直接和明確地提供該術(shù)語(yǔ)或短 語(yǔ)的特殊定義。圖2概念性地示出系統(tǒng)200的一個(gè)示例性實(shí)施例。在說(shuō)明性實(shí)施 例中,系統(tǒng)200接收一個(gè)或多個(gè)動(dòng)態(tài)輸入205和一個(gè)或多個(gè)常量輸入 210。這里使用的術(shù)語(yǔ)"動(dòng)態(tài)"和"常量"將被理解為是指在動(dòng)態(tài)輸入 205和常量輸入210處表明(assert )的值改變或預(yù)期改變的相對(duì)速率。 動(dòng)態(tài)輸入205處表明的值預(yù)期以比常量輸入210處表明的值的改變速 率快的速率改變。因此,術(shù)語(yǔ)"常量"意圖暗示在常量輸入210處表 明的值在比動(dòng)態(tài)輸入205處表明的值可能改變的時(shí)間段要長(zhǎng)的時(shí)間段 上,保持近似恒定。例如,動(dòng)態(tài)輸入205處表明的值可能以與系統(tǒng)200 相關(guān)的時(shí)鐘頻率變化,而常量輸入210處表明的值可能以小于時(shí)鐘頻 率的頻率變化。然而,術(shù)語(yǔ)"常量"并非意圖暗示常量輸入210處表 明的值永不改變,盡管在一些實(shí)施例中, 一個(gè)或多個(gè)常量輸入210處 表明的一個(gè)或多個(gè)值在系統(tǒng)200運(yùn)行期間可能不改變。在所示的實(shí)施例中,在常量輸入210處表明的值被提供給控制單 元215,后者可以將常量輸入210處的值提供給生成器220??刂茊卧?15也可以提供指示在常量輸入210處表明的值預(yù)期保持恒定的時(shí)間 段期間可在動(dòng)態(tài)輸入215處表明的值的信息。在所示的實(shí)施例中,控 制單元215接收動(dòng)態(tài)輸入205處表明的值,并且可以將這些值或者指 示這些值的信息提供給生成器220。動(dòng)態(tài)輸入205處表明的值也可以被 提供給緩沖器225,后者可以將這些值存儲(chǔ)預(yù)定的時(shí)間段,從而給系統(tǒng) 200增加延遲。然而,受益于本公開(kāi)的本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)明白, 本發(fā)明不限于其中動(dòng)態(tài)輸入205處表明的值提供給控制單元215和/或 生成器220的實(shí)施例。在一個(gè)替代實(shí)施例中,控制單元215不能接收 在動(dòng)態(tài)輸入205處表明的值,而是可以形成能指示動(dòng)態(tài)輸入205處表 明的值的信息。例如,動(dòng)態(tài)輸入205處表明的值可以包括偽隨機(jī)信息。 控制單元215因此可以考慮未來(lái),并且預(yù)測(cè)可能在動(dòng)態(tài)輸入205處表 明的偽隨機(jī)值。然后可以將預(yù)測(cè)的值提供給生成器220。生成器220是可以用于生成配置信息的電路,該配置信息指示基 于常量輸入210處表明的值以及(可能)在動(dòng)態(tài)輸入205處表明的值 的一個(gè)或多個(gè)輸出值。受益于本公開(kāi)的本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)明白, 生成器220可以對(duì)應(yīng)于任何電路,因此本發(fā)明不限于生成器220的任 何具體實(shí)施。在一個(gè)實(shí)施例中,生成器220對(duì)于常量輸入210處表明 的值與(可能)在動(dòng)態(tài)輸入205處表明的每個(gè)值的每個(gè)組合確定輸出 的值。例如,如果生成器220對(duì)應(yīng)于只包括一個(gè)與門的電路,并且在 對(duì)與門的常量輸入處表明的值為二進(jìn)制1,則生成器220可以確定與二 進(jìn)制1的動(dòng)態(tài)輸入值相關(guān)聯(lián)的二進(jìn)制1,以及與二進(jìn)制0的動(dòng)態(tài)輸入值 相關(guān)聯(lián)的二進(jìn)制0。在一個(gè)實(shí)施例中,生成器220所確定的配置信息可 以以查找表的形式提供。例如,由生成器220使用在常量輸入210處 表明的值確定的值可以被存儲(chǔ)在查找表中,并且使用在動(dòng)態(tài)輸入205 處表明的值來(lái)尋址。由生成器220確定的配置信息可以;故存儲(chǔ)在配置存儲(chǔ)器230中。 在所示的實(shí)施例中,配置信息被存儲(chǔ)在配置存儲(chǔ)器230的位置235中。 例如,由生成器220確定的查找表可以被存儲(chǔ)在位置235中。之前確 定的配置信息也可以被存儲(chǔ)在配置存儲(chǔ)器230的位置240中。因此, 存儲(chǔ)在位置235中的配置信息可以被移動(dòng)到位置240,這將在下面詳細(xì) 討論??梢詫⒋鎯?chǔ)在配置存儲(chǔ)器230中的配置信息提供給常量合并電 路245。例如,可以將存儲(chǔ)在位置240中的查找表提供給常量合并電245。常量合并電路245可以使用動(dòng)態(tài)輸入205處表明的值和由生成器 220確定的配置信息,確定輸出250的一個(gè)或多個(gè)值。在一個(gè)實(shí)施例中, 常量合并電路245是現(xiàn)場(chǎng)可編程門陣列(FPGA),其可以使用在動(dòng)態(tài) 輸入205處表明的值和由生成器220確定的配置信息來(lái)確定輸出250 的一個(gè)或多個(gè)值。例如,常量合并電路245可以是基于查找表的現(xiàn)場(chǎng) 可編程門陣列(FPGA),其可以通過(guò)使用在動(dòng)態(tài)輸入205處表明的值 來(lái)尋址由生成器220確定的查找表,從而確定輸出250的一個(gè)或多個(gè) 值。提供給常量合并電路245的配置信息可以被存儲(chǔ)在位置240中。 因此,生成器220可以生成與可在常量輸入210處表明的不同值集合 相關(guān)聯(lián)的配置信息,同時(shí)常量合并的電路245使用在動(dòng)態(tài)輸入205處 表明的值和位置240中存儲(chǔ)的配置信息確定輸出250的一個(gè)或多個(gè)值。 與常量合并電路245的操作同時(shí)生成的配置信息可以被存儲(chǔ)在位置 235中,供常量合并電路245以后使用,這將在下面詳細(xì)討論。由于生 成器220可以與常量合并電路245的操作同時(shí)地生成配置信息,因此 可以在系統(tǒng)200中執(zhí)行常量合并,而不用系統(tǒng)200暫停竟?fàn)?。在一個(gè) 實(shí)施例中,位置235、 240可以對(duì)應(yīng)于不同的存儲(chǔ)板。圖3概念性地示出靜態(tài)系統(tǒng)300的一個(gè)示例性實(shí)施例。在所示的 實(shí)施例中,靜態(tài)系統(tǒng)300包括多個(gè)子系統(tǒng)305 (l-n)。這里將使用索引 (l-n)來(lái)指示各個(gè)子系統(tǒng)305 (l-n)或者子系統(tǒng)305 (l-n)的子集。然而為了清楚起見(jiàn),當(dāng)籠統(tǒng)地指代子系統(tǒng)305時(shí)可以去掉這些索引。當(dāng)指 代與單個(gè)識(shí)別號(hào)和多個(gè)索引相關(guān)聯(lián)的任何元素組時(shí),將使用這個(gè)約定。子系統(tǒng)305也與指示器gO…gn相關(guān)聯(lián)。在所示的實(shí)施例中,可以通過(guò) 將多個(gè)相同的子系統(tǒng)305連在一起(部分地)實(shí)現(xiàn)靜態(tài)系統(tǒng)300。然而, 受益于本公開(kāi)的本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,靜態(tài)系統(tǒng)300并不是一定 要包括相同的子系統(tǒng)305,而是也可以包括圖3未示出的其他子系統(tǒng)或 者其他電路。同樣為了清楚,在圖3中省略了子系統(tǒng)、它們的功能以 及任何額外電路之間的連接。靜態(tài)系統(tǒng)300中的每個(gè)子系統(tǒng)305具有輸入集合/,編號(hào)為O...q。 在所示的實(shí)施例中,輸入O...p具有高的轉(zhuǎn)換頻率并且不考慮用于合并。 因此,輸入O...p可以考慮為動(dòng)態(tài)輸入。輸入p+l…q具有低的轉(zhuǎn)換頻率(相對(duì)于系統(tǒng)時(shí)鐘),并且被選擇用于合并。因此,輸入p+l…q可 以被考慮為常量輸入。靜態(tài)系統(tǒng)300中的子系統(tǒng)305可以產(chǎn)生子系統(tǒng) 輸出的集合R,編號(hào)為O...m。在一個(gè)實(shí)施例中,子系統(tǒng)305可以是基 于查找表的計(jì)算架構(gòu)的一部分,如FPGA。圖4概念性地示出常量合并系統(tǒng)400的一個(gè)示例性實(shí)施例。圖3 所示的每個(gè)子系統(tǒng)gO...gn的實(shí)施被常量合并子系統(tǒng)405代替,該常量 合并子系統(tǒng)405也標(biāo)號(hào)為hO,..hn。每個(gè)常量合并子系統(tǒng)405的輸出與 對(duì)應(yīng)子系統(tǒng)305的輸出相同。對(duì)每個(gè)常量合并子系統(tǒng)405的輸入集合 由于常量合并而減少,因此輸入/具有索引O...p。在一個(gè)實(shí)施例中, 常量合并子系統(tǒng)被實(shí)施為大的查找表(LLUT)。然而,受益于本公開(kāi) 的本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)明白,本發(fā)明不限于查找表實(shí)施。在替代 實(shí)施例中,可以使用任何代表常量合并系統(tǒng)400的存儲(chǔ)器內(nèi)容。LLUT內(nèi)容可以以常量輸入p+l. . q的最大改變頻率而改變,并且可 以使用生成器功能來(lái)在運(yùn)行時(shí)提供LLUT,如上所述。對(duì)LLUT內(nèi)容的訪 問(wèn)可以通過(guò)本地接口,如XUinx SRL 16原體。因此,系統(tǒng)400可以 使用常量輸入p+l.,.q的值集合Bi的LLUT運(yùn)行,同時(shí)生成器功能對(duì)常 量輸入p+l...q的不同的值集合Bw提供LLUT。這樣就不需要在現(xiàn)用常 量值改變到Bw時(shí)暫停計(jì)算,因?yàn)樗幸龅木褪且圆煌牡刂菲茝?LLUT讀取。地址偏移是設(shè)計(jì)選擇的事情,可能依賴于實(shí)施架構(gòu)。對(duì)于 由4個(gè)查找表構(gòu)成、并且通過(guò)串行移位寄存器機(jī)制(例如,SRL16)運(yùn) 行時(shí)提供新常量的FPGA,該偏移涉及這樣操作LUT輸入,即對(duì)新內(nèi)容 的每個(gè)位進(jìn)行移位。這對(duì)于保持LUT輸入與表中訪問(wèn)的位之間的關(guān)系 可能是必要的。圖5概念性地示出常量合并子系統(tǒng)500的一個(gè)示例性實(shí)施例。例 如,常量合并子系統(tǒng)500可以是圖4所示的常量合并子系統(tǒng)405之一 的以FPGA為目標(biāo)的實(shí)施。在所示的實(shí)施例中,通過(guò)使用對(duì)應(yīng)的查找表 505 ( li)執(zhí)行表查找,產(chǎn)生每個(gè)輸出R。. ..R 。對(duì)查找表505的輸入 是輸入O...P的值。然而,受益于本公開(kāi)的本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理 解,可以使用任何數(shù)量的查找表505,并且查找表505的數(shù)量可以不對(duì) 應(yīng)于輸出R。...肊的數(shù)量。例如,如果對(duì)子系統(tǒng)500的FPGA實(shí)施的輸 入數(shù)量大于4,則可能需要不止一個(gè)4位的查找表505來(lái)產(chǎn)生每個(gè)輸出。 作為另一個(gè)例子,可以使用具有不止四個(gè)輸入位的一個(gè)或多個(gè)查找表505。查找表505執(zhí)行的常量功能可以大致以輸入的常量集合改變的頻 率而被替換。這可以使用圖3所示的子系統(tǒng)實(shí)施以常量輸入處表明的 值為p+l...q遍歷所有可能的動(dòng)態(tài)輸入O...p來(lái)完成。然后子系統(tǒng)305 產(chǎn)生的每個(gè)結(jié)果可以被加載到查找表505。例如,每個(gè)輸出位可以;故加 栽到查找表505中與用于該輸出位的動(dòng)態(tài)輸入相關(guān)聯(lián)的位置,從而當(dāng) 應(yīng)用動(dòng)態(tài)輸入時(shí),產(chǎn)生存儲(chǔ)在查找表505的所選位置處的輸出。當(dāng)所 有可能的輸出被寫入到查找表505時(shí),完成重新配置序列。子系統(tǒng)305 然后可以通過(guò)提供常量輸入p+l…q的適當(dāng)值并且再次遍歷動(dòng)態(tài)輸入的 所有可能值0…p,來(lái)將LUT內(nèi)容提供給另一子系統(tǒng)405、 500。在一個(gè)實(shí)施例中,加栽新內(nèi)容的機(jī)制可以是1位移位寄存器,如 Xilinx Virtex設(shè)備族中的SRL16功能體。在SRL16模式中,查找表 505的16位內(nèi)容如移位寄存器一樣工作。特殊的輸入管腳提供新輸入, 并且允許寫入管腳確定是否移位。當(dāng)允許寫入管腳為高且發(fā)生時(shí)鐘轉(zhuǎn) 換時(shí),移位寄存器的內(nèi)容移動(dòng)一個(gè)位置,位置0現(xiàn)在包含新的輸入, 而位置15的舊內(nèi)容丟失,被位置14重寫。當(dāng)移位成新內(nèi)容時(shí),可以 調(diào)節(jié)對(duì)查找表505的輸入。例如,在多次移位之后提供二進(jìn)制輸入0000 將在位置0產(chǎn)生最近一次加載的新內(nèi)容,而不是當(dāng)前的常量?jī)?nèi)容。為 了說(shuō)明這點(diǎn),可以動(dòng)態(tài)地調(diào)節(jié)對(duì)查找表505的輸入。在FPGA上沒(méi)有多 個(gè)上下文查找表505的情況下,能支持的最大動(dòng)態(tài)輸入數(shù)量等于查找 表505上的輸入數(shù)量的一半。否則,舊內(nèi)容在重新配置期間被移出查 找表505,并且不能用于當(dāng)前計(jì)算。在FPGA上有多個(gè)上下文查找表505 的情況下,動(dòng)態(tài)輸入的數(shù)量可以不像在單個(gè)上下文情況下那樣受到約 束??梢允褂靡粋€(gè)上下文繼續(xù)計(jì)算,同時(shí)將新配置數(shù)據(jù)加載到第二上 下文。在常量切換時(shí)第二上下文成為現(xiàn)用上下文。圖6概念性地示出匹配濾波器600的一個(gè)示例性實(shí)施例。在碼分 多址(CDMA)通信系統(tǒng)、如通用移動(dòng)通信系統(tǒng)(UMTS)中廣泛^f吏用匹 配濾波器600。 UMTS小區(qū)中的所有移動(dòng)單元使用相同的頻諮。為了允 許不同單元之間的區(qū)分,每一個(gè)發(fā)送唯一的碼序列。UMTS蜂窩基站必 須能夠檢測(cè)這些不同的碼序列來(lái)區(qū)分傳輸。這可以使用匹配濾波器6 00 來(lái)完成,該濾波器600輸出指示值以表明在輸入流中匹配碼序列。高 的值指示好的匹配。因此,在所示的實(shí)施例中,匹配濾波器600是UMTS多信道復(fù)用碼匹配的濾波器(CCMF) 600.然而,本領(lǐng)域普通技術(shù)人員 應(yīng)當(dāng)明白,本發(fā)明不限于CCMF 600,并且在替代實(shí)施例中,可以使用 任何匹配濾波器600。在CDMA中,碼片(chip)是指物理層上的二進(jìn)制位。當(dāng)搜索匹配 時(shí),以連續(xù)的碼片偏移(稱為搜索窗口 )執(zhí)行碼與數(shù)據(jù)流之間的相關(guān) 性,在UMTS中,每秒有3.84兆碼片。匹配濾波器600中的相關(guān)器因 此可以能夠處理引擎支持的最大32個(gè)呼叫的負(fù)荷??梢栽?60個(gè)碼片 大小的窗口上搜索呼叫的四個(gè)采樣饋送的每一個(gè)。以153. 6MHz的時(shí)鐘 速率,每個(gè)碼片有40個(gè)可用的周期。匹配濾波器600執(zhí)行預(yù)期的碼序 列與輸入的兩個(gè)源的數(shù)據(jù)流之間的相關(guān), 一次一個(gè)256碼片符號(hào)。輸 入的數(shù)據(jù)流是2 x過(guò)采樣的,產(chǎn)生4個(gè)要相關(guān)的不同的數(shù)據(jù)流。在所示的實(shí)施例中,碼被存儲(chǔ)在碼寄存器(CODE REG)中,后者 可以包括兩個(gè)256位寄存器。數(shù)據(jù)被存儲(chǔ)在圖上部的兩個(gè)寄存器中, 一個(gè)寄存器用于實(shí)部(I數(shù)據(jù)寄存器),另一個(gè)用于虛部(Q數(shù)據(jù)寄存 器)。每個(gè)數(shù)據(jù)寄存器是415字的數(shù)據(jù)移位寄存器,其中每個(gè)字是4 位的碼片采樣。只有數(shù)據(jù)寄存器最右邊的376個(gè)字作為376字向量被 輸出到點(diǎn)積子塊(DPSB)。其余39個(gè)字可以一直移位到它們到達(dá)輸出 為止。DPSBO以字0-255作為其輸入,并且計(jì)算假設(shè)0-39的結(jié)果,每 時(shí)鐘周期一個(gè)。DPSB3以字120-275作為其輸入,并且計(jì)算假設(shè)120-159 的結(jié)果。因此,可以使用大約40個(gè)時(shí)鐘周期來(lái)計(jì)算源分量的160個(gè)假 設(shè)。在大約160個(gè)時(shí)鐘周期之后,可以計(jì)算出四個(gè)源的所有假設(shè)。圖7概念性地示出相關(guān)器700的一個(gè)示例性實(shí)施例,相關(guān)器700 可以用于執(zhí)行與圖6所示的DPSB的256個(gè)位置的每一個(gè)相關(guān)聯(lián)的相關(guān)。 在所示的實(shí)施例中,IO位輸入產(chǎn)生IO位輸出。相關(guān)器700可以將本地 生成的碼的復(fù)共軛乘以復(fù)數(shù)據(jù)樣本。圖6所示的每個(gè)DPSB可以由實(shí)施 相關(guān)器700計(jì)算的相關(guān)函數(shù)的256個(gè)相同生成器單元構(gòu)成。相關(guān)器700的常量合并(數(shù)據(jù)合并)的實(shí)施認(rèn)識(shí)到,數(shù)據(jù)流在40 個(gè)周期的搜索窗口上保持恒定。因此,有機(jī)會(huì)減少執(zhí)行相關(guān)所需的計(jì) 算數(shù)量。通過(guò)將數(shù)據(jù)合并到相關(guān)器700中,相關(guān)器700的動(dòng)態(tài)輸入可 以減少到僅有2位,而輸出仍是10位??梢允褂靡粋€(gè)4位LUT產(chǎn)生每 個(gè)輸出位。在一個(gè)實(shí)施例中,僅使用一半LUT,并且可以將對(duì)應(yīng)于下一 常量的新配置與計(jì)算并行地移動(dòng)到LUT,如上所述。對(duì)于與相關(guān)器70013相關(guān)聯(lián)的生成器,對(duì)數(shù)據(jù)項(xiàng)計(jì)算所有四個(gè)碼值需要四個(gè)時(shí)鐘周期。在40個(gè)周期的重新配置時(shí)間段和每數(shù)據(jù)項(xiàng)4個(gè)周期的情況下,IO個(gè)數(shù)據(jù) 項(xiàng)可以共享生成器。計(jì)算所有415個(gè)數(shù)據(jù)項(xiàng)的配置可能需要42個(gè)生成 器單元。對(duì)應(yīng)于相關(guān)器700的常量合并單元可以包括10個(gè)允許SRL16 的LUT以及用于調(diào)節(jié)碼輸入的加法器??梢蕴峁╊~外的控制電路以產(chǎn) 生碼片允許信號(hào),用于在正確的4周期窗口中移入新配置。在共享同 一生成器單元的單元群中,可以使用一個(gè)SRL16 LUT用作4位移位寄 存器,來(lái)產(chǎn)生CE信號(hào)。圖8概念性地示出了常量合并單元的重新配置序列800的一個(gè)示 例性實(shí)施例。在5個(gè)連續(xù)的時(shí)鐘周期中示出10個(gè)SRL16實(shí)例化的LUT 805 ( 1-10 )的內(nèi)容。在CLK卜"僅SRL16 800 ( 1 ) 、 800 ( 6 )的底部 四個(gè)位置被占用。在一個(gè)實(shí)施例中,這可以是對(duì)于加電復(fù)位唯一的狀 態(tài)。在其他實(shí)施例和/或在其他時(shí)候,被從底行移出的舊配置數(shù)據(jù)可以 占用上面的位置。在CLKH,單元的碼片啟用信號(hào)變高。這導(dǎo)致SRL16 800將其移位寄存器輸入管腳上的任何內(nèi)容加栽到第一存儲(chǔ)位中,并且將 已有的內(nèi)容進(jìn)一步移動(dòng)1位到LUT 800中。10個(gè)SRL16 800的輸入管 腳由相關(guān)聯(lián)的生成器單元的IO位輸出驅(qū)動(dòng)。與CLKi相關(guān)聯(lián)的信號(hào)加栽 碼"11"的配置,與CLKw相關(guān)聯(lián)的信號(hào)加栽碼"10"的配置,依此類 推。在CLKw, CE信號(hào)在重新配置完成時(shí)變低。調(diào)節(jié)LUT輸入以處理移位存儲(chǔ)器內(nèi)容。由于碼提供對(duì)單元中的所有LUT 800的輸入,因此可 以將調(diào)節(jié)電路的低成本分?jǐn)偟秸麄€(gè)單元上。圖9概念性地示出可以用于實(shí)施圖7所示相關(guān)器700的常量合并 電路的邏輯結(jié)構(gòu)900的一個(gè)示例性實(shí)施例。在所示的實(shí)施例中,邏輯 結(jié)構(gòu)900不對(duì)應(yīng)于常量合并電路的物理布局。在所示的實(shí)施例中,DPSB 長(zhǎng)度從256擴(kuò)展到295個(gè)單元,以同時(shí)包含所有數(shù)據(jù)項(xiàng)。DPSB也可以 被對(duì)齊,從而相同的數(shù)據(jù)項(xiàng)形成一列。在DPSB由共同的數(shù)據(jù)項(xiàng)對(duì)齊的 情況下,相關(guān)聯(lián)的生成器單元只能執(zhí)行最小數(shù)量的估值。例如,特定 數(shù)據(jù)元素的配置典型地必須對(duì)于所有四個(gè)DPSB產(chǎn)生。連接到所有四個(gè)單元的單個(gè)生成器可以提供該配置。相反,常規(guī)的靜態(tài)實(shí)施將基本的 生成器計(jì)算執(zhí)行大大超過(guò)所需的次數(shù)。邏輯結(jié)構(gòu)900中具有相似陰影線(hatching)的各個(gè)區(qū)域指示在特定生成器單元周圍聚集的單元。標(biāo)簽Gl (無(wú)陰影線)指示與這些單元相關(guān)聯(lián)的生成器每數(shù)據(jù)項(xiàng)饋送一個(gè)單元,從而Gl單元可以以每數(shù)據(jù) 項(xiàng)四個(gè)周期、在大約40個(gè)周期中配置10個(gè)單元。標(biāo)簽G2(以及從左 到右的陰影線)指示與這些單元相關(guān)聯(lián)的生成器每數(shù)據(jù)項(xiàng)饋送兩個(gè)單 元,從而G2單元可以以每數(shù)據(jù)項(xiàng)四個(gè)周期、在大約40個(gè)周期中配置 20個(gè)單元。標(biāo)簽G3 (以及從右到左的陰影線)指示與這些單元相關(guān)聯(lián) 的生成器每數(shù)據(jù)項(xiàng)饋送三個(gè)單元,從而G3單元可以以每數(shù)據(jù)項(xiàng)四個(gè)周 期、在大約40個(gè)周期中配置30個(gè)單元。標(biāo)簽G4 (以及交叉陰影線) 指示與這些單元相關(guān)聯(lián)的生成器每數(shù)據(jù)項(xiàng)饋送四個(gè)單元,從而04單元 可以以每數(shù)據(jù)項(xiàng)四個(gè)周期、在大約40個(gè)周期中配置40個(gè)單元。因此,常量合并實(shí)施可以將資源需求減少超過(guò)三分之一。上面所公開(kāi)的特定實(shí)施例僅僅是說(shuō)明性的,因?yàn)楸景l(fā)明可以不同 的、但對(duì)于受益于這里教學(xué)的本領(lǐng)域技術(shù)人員來(lái)說(shuō)明顯等效的方式修 改和實(shí)踐。此外,除了下面權(quán)利要求書中描述的以外,對(duì)于這里所示 的結(jié)構(gòu)或設(shè)計(jì)細(xì)節(jié)并沒(méi)有限制。因此很明顯,上面公開(kāi)的特定實(shí)施例 可以被更改或修改,并且所有這些變型都認(rèn)為是在本發(fā)明范圍和宗旨 之內(nèi)。因此,這里要求保護(hù)的范圍在下面權(quán)利要求書中闡述。
權(quán)利要求
1.一種涉及至少一個(gè)第一電路的方法,該第一電路具有至少一個(gè)第一輸入、至少一個(gè)第二輸入和至少一個(gè)輸出,該方法包括基于所述至少一個(gè)第一輸入的至少一個(gè)第一值,確定第二電路的至少一個(gè)輸出的至少一個(gè)第一值,所述第二電路是使用基于第一電路和所述至少一個(gè)第二輸出的至少一個(gè)第一值生成的第一配置信息來(lái)配置的;和與確定所述至少一個(gè)輸出的至少一個(gè)第一值同時(shí)地,基于第一電路和所述至少一個(gè)第二輸入的至少一個(gè)第二值生成第二配置信息。
2. 如權(quán)利要求l所述的方法,其中第二電路的所述至少一個(gè)輸出 的所述至少一個(gè)第一值對(duì)應(yīng)于第一電路的所述至少一個(gè)輸出的至少一 個(gè)值,所述第一電路的所述至少一個(gè)輸出的至少一個(gè)值是由第一電路 響應(yīng)于所述至少一個(gè)第一輸入的所述至少一個(gè)第一值和所述至少一個(gè) 笫二輸入的所述至少一個(gè)第一值生成的。
3. 如權(quán)利要求l所述的方法,其中生成第二配置信息包括使用 對(duì)應(yīng)于至少一個(gè)第一電路的至少一個(gè)生成器功能,生成第二配置信息, 以及其中使用對(duì)應(yīng)于所述至少一個(gè)第一電路的所述至少一個(gè)生成器功 能生成第二配置信息包括使用所述至少一個(gè)生成器功能來(lái)生成查找 表。
4. 如權(quán)利要求l所述的方法,包括向與第二電路相關(guān)聯(lián)的配置存 儲(chǔ)器提供第二配置信息,其中向配置存儲(chǔ)器提供第二配置信息包括 與確定第二電路的所述至少一個(gè)輸出的所述至少一個(gè)第一值同步地, 向配置存儲(chǔ)器提供第二配置信息。
5. 如權(quán)利要求l所述的方法,包括基于所述至少一個(gè)笫一輸入的 至少一個(gè)第二值確定第二電路的至少一個(gè)輸出的至少一個(gè)第二值,并 且包括與確定第二電路的所述至少一個(gè)輸出的所述至少一個(gè)第二值 同步地,使用對(duì)應(yīng)于所述至少一個(gè)第一電路的所述至少一個(gè)生成器功 能和所述至少一個(gè)笫二輸入的至少一個(gè)第三值,生成第三配置信息。
6. —種涉及包括至少一個(gè)相關(guān)器的匹配濾波器的方法,所述相關(guān) 器被配置來(lái)將碼序列的 一部分與數(shù)據(jù)流的 一部分相關(guān),該方法包括基于碼序列的所述部分和數(shù)據(jù)流的第一部分,使用相關(guān)器確定至少一個(gè)第一相關(guān)值,該相關(guān)器是使用基于數(shù)據(jù)流的第一部分生成的第一配置信息配置的;和與確定所述至少一個(gè)第一相關(guān)值同時(shí)地,基于數(shù)據(jù)流的第二部分 生成第二配置信息。
7. 如權(quán)利要求6所述的方法,其中確定所述至少一個(gè)第一相關(guān)值 包括使用多個(gè)相關(guān)器,基于碼序列的所述部分和數(shù)據(jù)流的多個(gè)第一 部分確定多個(gè)第一相關(guān)值,所述多個(gè)相關(guān)器的每一個(gè)是使用基于數(shù)據(jù) 流的所述多個(gè)第一部分中相應(yīng)的一個(gè)生成的多個(gè)第一配置信息集合配 置的。
8. 如權(quán)利要求6所述的方法,其中生成第二配置信息包括使用 對(duì)應(yīng)于相關(guān)器的至少一個(gè)生成器功能來(lái)生成第二配置信息,其中使用 對(duì)應(yīng)于所述至少一個(gè)第一電路的至少一個(gè)生成器功能生成第二配置信 息包括使用所述至少一個(gè)生成器功能生成至少一個(gè)查找表。
9. 如權(quán)利要求6所述的方法,包括向與相關(guān)器相關(guān)聯(lián)的配置存儲(chǔ) 器提供第二配置信息,其中向配置存儲(chǔ)器提供第二配置信息包括與 確定所述至少一個(gè)第一相關(guān)值同步地,向配置存儲(chǔ)器提供第二配置信 僉
10. 如權(quán)利要求6所述的方法,包括基于數(shù)據(jù)流的第二部分確定 至少一個(gè)第二相關(guān)值,并且包括與確定所述至少一個(gè)第二相關(guān)值同 步地,使用所述至少一個(gè)生成器功能、基于數(shù)據(jù)流的第三部分,生成 第三配置信息。
全文摘要
本發(fā)明提供一種涉及至少一個(gè)第一電路的方法,該第一電路具有至少一個(gè)第一輸入、至少一個(gè)第二輸入和至少一個(gè)輸出。該方法包括基于所述至少一個(gè)第一輸入的至少一個(gè)第一值,確定第二電路的至少一個(gè)輸出的至少一個(gè)第一值。所述第二電路是使用基于第一電路和所述至少一個(gè)第二輸出的至少一個(gè)第一值生成的第一配置信息來(lái)配置的。該方法還包括與確定所述至少一個(gè)輸出的至少一個(gè)第一值同時(shí)地,基于第一電路和所述至少一個(gè)第二輸入的至少一個(gè)第二值生成第二配置信息。
文檔編號(hào)H03K19/177GK101326720SQ200680046189
公開(kāi)日2008年12月17日 申請(qǐng)日期2006年12月8日 優(yōu)先權(quán)日2005年12月8日
發(fā)明者I·O·肯尼迪 申請(qǐng)人:盧森特技術(shù)有限公司