專利名稱:可編程的數(shù)字濾波器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明根據(jù)一個(gè)實(shí)施例涉及用于數(shù)字系統(tǒng)的濾波器,更確切地說,涉及可編程的數(shù) 字濾波器。
背景技術(shù):
在信號處理應(yīng)用中,需要提供不同布置的數(shù)字濾波器,以產(chǎn)生所需的輸出信號。一 般來說,通過具有固定數(shù)目的極的并聯(lián)布置的裝置來執(zhí)行數(shù)字濾波。在此種實(shí)施方案中, 提供專用硬件以實(shí)施數(shù)字濾波器中的每個(gè)級。舉例來說,圖1展示采用五個(gè)加法器的具 有五個(gè)級的第三階正弦濾波器。所述正弦濾波器100的第一級是積分級,其包含加法器 105、觸發(fā)寄存器IIO和寄存器115。加法器105從輸入端口或寄存器以及觸發(fā)寄存器110 接收輸入。所述加法器的輸出存儲(chǔ)在寄存器115中,且如果觸發(fā)信號(即clk)是活動(dòng)的, 則進(jìn)而將輸出存儲(chǔ)到觸發(fā)寄存器110。正弦濾波器100的第二級是另一積分級,其包含加法器120、觸發(fā)寄存器125和寄 存器130。所述加法器從寄存器115和從觸發(fā)寄存器125接收輸入。加法器120的輸出存 儲(chǔ)在寄存器130中,且當(dāng)觸發(fā)信號(即,clk)是活動(dòng)的時(shí),進(jìn)而將輸出存儲(chǔ)到觸發(fā)寄存 器125。正弦濾波器100的第三級是累加和轉(zhuǎn)儲(chǔ)級,其在特定實(shí)施方案中可稱為積分和轉(zhuǎn)儲(chǔ) 級。所述累加和轉(zhuǎn)儲(chǔ)級包含加法器135、觸發(fā)寄存器140、寄存器145和鎖存器150。加 法器135從寄存器130和從觸發(fā)寄存器140接收輸入。將加法器135的輸出寫入到寄存 器145。當(dāng)?shù)芥i存器的觸發(fā)信號(S卩,clk/64)不活動(dòng)但到觸發(fā)寄存器140的觸發(fā)信號(即, clk)活動(dòng)時(shí),進(jìn)而將來自加法器135的輸出寫入到觸發(fā)寄存器140。當(dāng)?shù)芥i存器的觸發(fā) 信號(即clk/64)活動(dòng)時(shí),進(jìn)而將來自加法器135的輸出寫入到寄存器155且將觸發(fā)寄 存器140清空。正弦濾波器100的第四級是微分級。所述微分級包含經(jīng)配置以執(zhí)行減法的加法器 165、寄存器155和觸發(fā)寄存器160。對加法器165的輸入來自寄存器155和觸發(fā)寄存器 160。加法器165經(jīng)配置以從寄存器155中的值減去觸發(fā)寄存器160中的值。將結(jié)果存儲(chǔ) 在寄存器170中。當(dāng)?shù)接|發(fā)寄存器160的觸發(fā)信號(即,dk/64)是活動(dòng)的時(shí),將寄存器 155中的值存儲(chǔ)在觸發(fā)寄存器中。正弦濾波器100的第五級是另一微分級,其包含加法器180、寄存器170和觸發(fā)寄 存器175。所述加法器180經(jīng)配置以從觸發(fā)寄存器175中的值減去寄存器170中的值, 并將結(jié)果輸出到輸出端口或寄存器。當(dāng)?shù)接|發(fā)寄存器的觸發(fā)信號(即,clk/64)是活動(dòng)的 時(shí),將寄存器170中的值存儲(chǔ)在觸發(fā)寄存器175中。因此,正弦濾波器100需要五個(gè)加法器來實(shí)施第三階正弦濾波器,且組件是以固定 布置來設(shè)定的。然而,特定的應(yīng)用可能在不同時(shí)候根據(jù)應(yīng)用而需要不同類型的濾波器(例 如,高通、低通、正弦或其它濾波器)。因此,需要提供一種可重新配置的可編程濾波器。 也需要提供一種具有可變數(shù)目的極(即,濾波器的階)的濾波器。也需要提供一種不具 有專川于每個(gè)濾波器級的單獨(dú)硬件(例如,加法器)的濾波器。 發(fā)明內(nèi)容本發(fā)明通過以下方式克服以上指出的問題以及現(xiàn)有技術(shù)的其它缺點(diǎn)和不足提供一 種設(shè)備、系統(tǒng)和方法,其用于對多級濾波器進(jìn)行串行化,從而減少實(shí)施多級濾波器所需 的組件的數(shù)目,并且提供布置可更改的濾波器。根據(jù)本發(fā)明的具體實(shí)例實(shí)施例,提供一種對一個(gè)或一個(gè)以上輸入信號進(jìn)行濾波的方 法。所述方法包含接收一個(gè)或一個(gè)以上輸入信號,每個(gè)所述輸入信號具有輸入信號值。 所述方法包含在程序存儲(chǔ)器中存儲(chǔ)至少兩個(gè)指令。所述指令在由可編程濾波器串行執(zhí)行 吋將對輸入信號進(jìn)行濾波。每個(gè)所述指令包含操作碼,且每個(gè)指令識別至少兩個(gè)輸入位 置和至少一個(gè)輸出位置。所述方法進(jìn)一步包含對輸入信號中的一者或一者以上循環(huán)一次。 在循環(huán)內(nèi),所述方法包含進(jìn)入每個(gè)指令的第二循環(huán)。在第二循環(huán)內(nèi),所述方法包含從輸 入位置取得輸入值?;谒鲋噶畹牟僮鞔a對輸入值執(zhí)行操作以產(chǎn)生輸出值。接著,將 所述輸出值輸出到至少一個(gè)輸出位置。根據(jù)本發(fā)明的另一具體實(shí)施例, 一種可編程濾波器可對一個(gè)或一個(gè)以上輸入信號進(jìn) 行濾波。所述可編程濾波器包含時(shí)鐘以提供時(shí)鐘信號。所述可編程濾波器還包含單個(gè)算術(shù)邏輯單元(ALU)以選擇性地對至少兩個(gè)輸入值執(zhí)行一個(gè)或一個(gè)以上操作之一并產(chǎn)生輸出值。所述可編程濾波器進(jìn)一步包含程序存儲(chǔ)器以用于存儲(chǔ)一個(gè)或一個(gè)以上指令。每 個(gè)所述指令包括操作碼且識別至少兩個(gè)輸入位置和至少一個(gè)輸出位置。高速暫存存儲(chǔ)器耦合到所述ALU以存儲(chǔ)一個(gè)或一個(gè)以上值。觸發(fā)存儲(chǔ)器耦合到所述ALU以存儲(chǔ)一個(gè)或 一個(gè)以上值。至少一個(gè)輸入寄存器耦合到所述ALU以存儲(chǔ)外部輸入值。至少一個(gè)輸出寄 存器耦合到所述ALU以存儲(chǔ)外部輸出值。所述可編程濾波器包含控制單元,其耦合到所述ALU和所述程序存儲(chǔ)器。所述控制單元從程序存儲(chǔ)器接收指令,且基于所述指令致使所述ALU從所述高速暫存存儲(chǔ)器、所述觸發(fā)存儲(chǔ)器和所述至少一個(gè)輸入寄存器中的一者或一者以上接收兩個(gè)或兩個(gè)以上輸入值。所述控制單元還致使所述ALU基于指令中的操作碼對輸入值執(zhí)行操作以產(chǎn)生輸出值。所述控制單元將所述輸出值輸出到所述高速暫存存儲(chǔ)器、所述觸發(fā)存儲(chǔ)器和所述至少一個(gè)輸出寄存器中的一者或一者以上。
可通過結(jié)合附圖參看以下描述來獲得對本發(fā)明的更加完整的理解,其中 圖1是具有加法器的并聯(lián)布置的第三階正弦濾波器的示意方框圖; 圖2是根據(jù)本發(fā)明的具體實(shí)例實(shí)施例的可編程濾波器的示意方框圖; 圖3是根據(jù)本發(fā)明的具體實(shí)例實(shí)施例的用于將觸發(fā)信號提供到可編程濾波器的電路 的示意方框圖;且圖4一9是根據(jù)本發(fā)明的具體實(shí)例實(shí)施例將一個(gè)或一個(gè)以上濾波器串行化的方法的 操作流程圖。雖然本發(fā)明可接受各種修改和替代形式,但圖中展示且在本文中詳細(xì)描述本發(fā)明的 具體實(shí)例實(shí)施例。然而,應(yīng)了解,本文中對具體實(shí)例實(shí)施例的描述并不意圖將本發(fā)明局 限于本文中揭示的特定形式,而是相反,本發(fā)明將涵蓋所附權(quán)利要求書定義的所有修改 和等效物。
具體實(shí)施方式
現(xiàn)在參看圖式,示意性說明實(shí)例實(shí)施例的細(xì)節(jié)。圖式中的相同元件將用相同數(shù)字表 示,且相似元件將用相同數(shù)字加上不同的小寫字母后綴表示。參看圖2,圖中描繪根據(jù)本發(fā)明的實(shí)例實(shí)施例用于將兩個(gè)或兩個(gè)以上濾波器級串行 化的可編程數(shù)字濾波器(一般展示在200處)的示意方框圖。所述可編程數(shù)字濾波器200 包含N個(gè)輸入205L.N,其可存儲(chǔ)在寄存器中??删幊虜?shù)字濾波器200包含O個(gè)輸出210lq, 其也可存儲(chǔ)在寄存器中以供可編程數(shù)字濾波器200外部的電路檢索??删幊虜?shù)字濾波器 200還可接收觸發(fā)輸入上的觸發(fā)信號215L.p,其也可存儲(chǔ)在寄存器中??删幊虜?shù)字濾波器 200中包含程序存儲(chǔ)器220以存儲(chǔ)一個(gè)或一個(gè)以上指令以供執(zhí)行。程序存儲(chǔ)器220的容 量可基于可編程數(shù)字濾波器200的需要而改變。在一個(gè)實(shí)例實(shí)施方案中,程序存儲(chǔ)器220 可存儲(chǔ)16個(gè)字節(jié)的指令以實(shí)施一個(gè)或一個(gè)以上數(shù)字濾波器。程序存儲(chǔ)器220中的指令可 經(jīng)更改以實(shí)施不同的濾波操作。舉例來說,在不同時(shí)候,可編程濾波器200可通過在程 序存儲(chǔ)器220中加載不問指令而提供第二階高通濾波器或第三階正弦濾波器。可編程數(shù)字濾波器200進(jìn)一步包含算術(shù)邏輯單元(ALU) 225以對一個(gè)或一個(gè)以上 輸入值執(zhí)行一個(gè)或一個(gè)以上操作。在特定實(shí)例實(shí)施例中,ALU 225可選擇性地對存儲(chǔ)在 存儲(chǔ)器位置中的值執(zhí)行加法或減法。特定實(shí)施方案可具有一個(gè)以上ALU,例如ALU 225。 一般來說,可編程數(shù)字濾波器 可包含L個(gè)ALU。所述多個(gè)ALU可用來并行執(zhí)行濾波器的兩個(gè)或兩個(gè)以上級。此實(shí)施 方案可允許可編程數(shù)字濾波器200以較低頻率運(yùn)行,因?yàn)槎鄠€(gè)濾波級可并行執(zhí)行。在有 些實(shí)施方案中,可編程數(shù)字濾波器200使用的ALU的數(shù)目可以與濾波級的數(shù)目不同。舉 例來說,可編程數(shù)字濾波器200可使用少于濾波級的數(shù)目的ALU。在特定實(shí)施方案中, 可編程數(shù)字濾波器200可使用單個(gè)ALU 225。可編程數(shù)字濾波器200可結(jié)合處理器來實(shí)施,所述處理器可包含一個(gè)或一個(gè)以上其 它ALU。在有些實(shí)施方案中,處理器可包含可編程數(shù)字濾波器200,且使用所述可編程 數(shù)字濾波器200來執(zhí)行信號濾波操作。此實(shí)施方案可允許處理器中的其它ALU在可編程 數(shù)字濾波器200執(zhí)行信號處理操作的同時(shí)執(zhí)行其它功能。ALU 225和程序存儲(chǔ)器220耦合到控制邏輯230??刂七壿嬋〉么鎯?chǔ)在程序存儲(chǔ)器 220中的解譯指令,并配置ALU 225以基于從程序存儲(chǔ)器220讀取的指令的內(nèi)容對存儲(chǔ) 在存儲(chǔ)器位置中的值執(zhí)行操作??刂七壿嬹詈系礁咚贂捍娲鎯?chǔ)器程序計(jì)數(shù)器235以指向 高速暫存存儲(chǔ)器240中的一個(gè)位置??刂七壿?30可控制高速暫存存儲(chǔ)器程序計(jì)數(shù)器235 的值以指向高速暫存存儲(chǔ)器中的不同位置。舉例來說,控制邏輯230可將高速暫存存儲(chǔ) 器程序計(jì)數(shù)器235復(fù)位以指向高速暫存存儲(chǔ)器240的開始處。在另一實(shí)例中,控制邏輯 230可將高速暫存存儲(chǔ)器程序計(jì)數(shù)器235遞增,以指向高速暫存存儲(chǔ)器240中的下一位 置。在另一實(shí)例中,控制邏輯230可讀取高速暫存存儲(chǔ)器程序計(jì)數(shù)器235,以確定高速 暫存存儲(chǔ)器240中的當(dāng)前位置。同樣,控制邏輯可控制或讀取觸發(fā)存儲(chǔ)器程序計(jì)數(shù)器245 的值。特定實(shí)施方案可包含程序存儲(chǔ)器位置程序計(jì)數(shù)器,以指向程序存儲(chǔ)器220中的當(dāng)前 指令。在特定實(shí)施方案中,控制邏輯230可讀取程序存儲(chǔ)器程序計(jì)數(shù)器以確定當(dāng)前指令。 在特定實(shí)施方案中,控制邏輯230可控制程序存儲(chǔ)器程序計(jì)數(shù)器,以(例如)前進(jìn)到程 序存儲(chǔ)器220中的下一指令,或?qū)⒊绦蛴?jì)數(shù)器220復(fù)位到程序存儲(chǔ)器220中的第一指令。高速暫存存儲(chǔ)器240可在一個(gè)或一個(gè)以上高速暫存存儲(chǔ)器位置中存儲(chǔ)值。在可編程 濾波器200的特定實(shí)施實(shí)施方案中,高速暫存存儲(chǔ)器位置每一者存儲(chǔ)從ALU 225輸出的 結(jié)果。高速暫存存儲(chǔ)器240的大小可基于系統(tǒng)的需要而改變。此外,在特定實(shí)例實(shí)施方案中,每個(gè)高速暫存存儲(chǔ)器位置的大小可改變,以(例如)考慮可編程數(shù)字濾波器200 的各個(gè)級中的位增長。在其它實(shí)例實(shí)施方案中,高速暫存存儲(chǔ)器位置的大小可以是統(tǒng)一 的。在根據(jù)本發(fā)明的一個(gè)實(shí)例實(shí)施方案中,高速暫存存儲(chǔ)器240可以是16X32位存儲(chǔ)器。 高速暫存存儲(chǔ)器240耦合到ALU 225,使得ALU 225可接收存儲(chǔ)在高速暫存存儲(chǔ)器位置 中的一個(gè)或一個(gè)以上值,且使得ALU可將結(jié)果輸出到一個(gè)或一個(gè)以上高速暫存存儲(chǔ)器位 置。觸發(fā)存儲(chǔ)器250可在一個(gè)或一個(gè)以上觸發(fā)存儲(chǔ)器位置中存儲(chǔ)值。在可編程濾波器200 的特定實(shí)例實(shí)施方案中,觸發(fā)存儲(chǔ)器位置每一者存儲(chǔ)從ALU 225輸出的結(jié)果,但可只在 與觸發(fā)存儲(chǔ)器位置相關(guān)聯(lián)的觸發(fā)信號是活動(dòng)的時(shí)被寫入所述結(jié)果。觸發(fā)存儲(chǔ)器250的大 小可基于系統(tǒng)的需要而改變。此外,在特定實(shí)例實(shí)施方案中,每個(gè)觸發(fā)存儲(chǔ)器位置的大 小可改變,以(例如)考慮可編程數(shù)字濾波器200的各個(gè)級中的位增長。在其它實(shí)例實(shí) 施方案中,觸發(fā)存儲(chǔ)器位置的大小可以是統(tǒng)一的。在根據(jù)本發(fā)明的一個(gè)實(shí)例實(shí)施方案中, 觸發(fā)存儲(chǔ)器250可以是16X32位的存儲(chǔ)器。觸發(fā)存儲(chǔ)器250耦合到ALU 225,使得ALU 225可接收存儲(chǔ)在觸發(fā)存儲(chǔ)器位置中的一個(gè)或一個(gè)以上值,且使得ALU 225可將結(jié)果輸 出到一個(gè)或一個(gè)以上觸發(fā)存儲(chǔ)器位置。在特定實(shí)施方案中,不論與觸發(fā)存儲(chǔ)器位置相關(guān) 聯(lián)的觸發(fā)信號的狀態(tài)如何均可讀取觸發(fā)存儲(chǔ)器位置值,但只可在與觸發(fā)存儲(chǔ)器位置相關(guān) 聯(lián)的觸發(fā)信號是活動(dòng)的時(shí)寫入觸發(fā)存儲(chǔ)器位置值。雖然將高速暫存存儲(chǔ)器240和觸發(fā)存儲(chǔ)器250描述成兩個(gè)存儲(chǔ)器,但在特定實(shí)施方 案中,其可以是同一物理存儲(chǔ)器裝置的邏輯部分。可編程濾波器200包含時(shí)鐘255,以向可編程濾波器200中的每個(gè)組件提供時(shí)鐘信 號??苫?系統(tǒng)的需要,尤其是濾波器的經(jīng)串行化的級的數(shù)目和輸入信號的數(shù)目而改變 時(shí)鐘255的速度。舉例來說,為了針對單個(gè)輸入信號將同步濾波器100串行化,系統(tǒng)時(shí) 鐘的運(yùn)行速度可能比輸入信號的采樣速率快十倍。這個(gè)速率允許系統(tǒng)在輸入信號的一個(gè) 采樣時(shí)間間隔內(nèi)執(zhí)行五次存儲(chǔ)器加載/存儲(chǔ)和五個(gè)ALU操作。 一般來說,對于要串行化 的濾波器的每個(gè)級(例如,對于程序存儲(chǔ)器220中的每個(gè)指令),系統(tǒng)時(shí)鐘必須以輸入信 號采樣速率的兩倍進(jìn)行操作。系統(tǒng)時(shí)鐘速率也可經(jīng)調(diào)整以考慮要濾波的信號的數(shù)目。舉 例來說,如果可編程濾波器200對四個(gè)輸入信號(例如,N = 4)進(jìn)行濾波,那么可以四 為因數(shù)調(diào)整時(shí)鐘速率,以考慮要進(jìn)行濾波的四個(gè)信號。 一般來說,針對可編程數(shù)字濾波 器200的具有單個(gè)ALU的實(shí)施方案,時(shí)鐘速率可大于或等于2x/ x7Vx/,,其中R是存儲(chǔ) 在程序存儲(chǔ)器中的指令的數(shù)目,N是輸入信號的數(shù)目,且fs是一個(gè)或一個(gè)以上輸入信號的最小采樣頻率。在可編程數(shù)字濾波器200的包含多個(gè)ALU的實(shí)施方案中,時(shí)鐘頻率^經(jīng)調(diào)整以考慮 所述多個(gè)ALU。 一般來說,在此種實(shí)施方案中,時(shí)鐘頻率可大于或等于2x^xWx人,其中R是存儲(chǔ)在程序存儲(chǔ)器中的指令的數(shù)目,N是輸入信號的數(shù)目,L是用來對一個(gè)或 一個(gè)以上輸入信號進(jìn)行濾波的ALU的數(shù)目,且t是一個(gè)或一個(gè)以上輸入信號的最小采樣頻率。參看圖3,圖中描繪用于與可編程數(shù)字濾波器200 —起使用的用以產(chǎn)生觸發(fā)信號 215,..p的系統(tǒng)的示意圖。所述系統(tǒng)可包含Q位計(jì)數(shù)器以并行產(chǎn)生Q個(gè)位。信號的數(shù)目可 基丁系統(tǒng)的需要和布置而改變??蓪⑺鯭個(gè)位輸入到時(shí)分電路310中,以用于從所述 Q個(gè)位產(chǎn)生觸發(fā)信號。時(shí)分電路可接收控制信號TDIV 315,.,p,以控制時(shí)分電路。在圖3 所示的本發(fā)明的實(shí)例實(shí)施方案中,到TDIV 315l.r的信號可控制P個(gè)多路復(fù)用器320l.p。 多路復(fù)用器320..P中的每一者從Q位計(jì)數(shù)器305接收Q個(gè)輸入,且向觸發(fā)器215l.p之一 輸出觸發(fā)信號。在特定實(shí)例實(shí)施方案中,多路復(fù)用器3201..1>中的每一者由來自丁01丫3151..1^ 中的一者或一者以上的信號控制。到TDIV315^的信號可由控制邏輯230提供。在一個(gè) 實(shí)例實(shí)施方案中,所述Q位計(jì)數(shù)器305是32位計(jì)數(shù)器,用以并行產(chǎn)生32個(gè)位,且多路 復(fù)用器320,..P中的每一者并行接收四個(gè)控制位(例如,TDIV 314,為多路復(fù)用器320,提 供四個(gè)控制位)。參看圖4,圖中描繪將兩個(gè)或兩個(gè)以上濾波器級串行化的可編程濾波器200的操作 方框圖??刂七壿?30開始并進(jìn)入在輸入205,..N上的一個(gè)或一個(gè)以上輸入信號的循環(huán)(方 框405和410)。在這個(gè)循環(huán)內(nèi),控制邏輯230將存儲(chǔ)器位置復(fù)位(方框415)??删幊虨V 波器200接著進(jìn)入程序存儲(chǔ)器220中的指令中的一個(gè)或一個(gè)以上指令的循環(huán)(方框420 和425)。在方框420和425定義的循環(huán)內(nèi),控制邏輯230從程序存儲(chǔ)器220中取得下一指令。 -一般來說,每個(gè)所述指令表示例如正弦濾波器100的濾波器的一個(gè)級。在特定實(shí)施方案 中,程序存儲(chǔ)器中的每個(gè)所述指令包含識別要執(zhí)行的ALU操作的操作碼。這些操作碼可 包含積分(INT)以加上一個(gè)或一個(gè)以上值、包含微分(DIFF)以用一個(gè)或一個(gè)以上值 減去另外一個(gè)或一個(gè)以上值,或者包含累加和轉(zhuǎn)儲(chǔ)(ACD)以加上一個(gè)或一個(gè)以上值并 在相關(guān)聯(lián)的觸發(fā)信號是活動(dòng)的時(shí)復(fù)位成零。在特定實(shí)施方案中,可將累加和轉(zhuǎn)儲(chǔ)稱為積 分和轉(zhuǎn)儲(chǔ)。程序存儲(chǔ)器中的每個(gè)指令識別輸入值的位置。所述位置可包含一個(gè)或一個(gè)以 上輸入寄存器或輸入端口 (例如輸入205,.,N)、高速暫存存儲(chǔ)器240中的一個(gè)或一個(gè)以上高速暫存存儲(chǔ)器位置以及觸發(fā)存儲(chǔ)器250中的一個(gè)或一個(gè)以上觸發(fā)存儲(chǔ)器位置。程序存 儲(chǔ)器中的每個(gè)指令可進(jìn)一步識別一個(gè)或一個(gè)以上輸出位置以存儲(chǔ)結(jié)果。這些輸出位置可 包含一個(gè)或一個(gè)以上輸出寄存器或端口 (例如輸出210,...0)、高速暫存存儲(chǔ)器240中的一 個(gè)或一個(gè)以上高速暫存存儲(chǔ)器位置或觸發(fā)存儲(chǔ)器250中的一個(gè)或一個(gè)以上觸發(fā)存儲(chǔ)器位 置。 一般來說,程序存儲(chǔ)器220中的每個(gè)指令與一個(gè)或一個(gè)以上觸發(fā)信號相關(guān)聯(lián),所述 觸發(fā)信號可施加到觸發(fā)器215l.p。相關(guān)聯(lián)的觸發(fā)信號可控制是否將結(jié)果存儲(chǔ)到與指令相 關(guān)聯(lián)的一個(gè)或--個(gè)以上觸發(fā)存儲(chǔ)器位置。相關(guān)聯(lián)的觸發(fā)信號可進(jìn)一步控制累加和轉(zhuǎn)儲(chǔ)指 令是否將存儲(chǔ)器位置復(fù)位。在控制邏輯230已經(jīng)從程序存儲(chǔ)器220中檢索程序指令之后,其檢索ALU操作的數(shù) 據(jù)(方框435)?;谠诜娇?30中接收的指令,這可包含配置ALU 225以從一個(gè)或一個(gè) 以上高速暫存存儲(chǔ)器位置、 一個(gè)或一個(gè)以上觸發(fā)存儲(chǔ)器位置或者一個(gè)或一個(gè)以上輸入 205,j接收值。 一曰.配置了輸入,控制邏輯230便致使ALU基于指令中的操作碼來執(zhí)行 ALU操作??刂七壿?30接著基于指令將ALU操作的結(jié)果輸出到一個(gè)或一個(gè)以上位置 (方框445)。控制邏輯230可接著更新一個(gè)或一個(gè)以上觸發(fā)存儲(chǔ)器位置(方框450)。圖5中更詳細(xì)地展示將存儲(chǔ)器位置復(fù)位(方框415)的實(shí)例實(shí)施方案。將存儲(chǔ)器位 置復(fù)位可包含將零寫入到高速暫存存儲(chǔ)器240中的高速暫存存儲(chǔ)器位置和觸發(fā)存儲(chǔ)器 250中的觸發(fā)存儲(chǔ)器位置(方框505)。將存儲(chǔ)器位置復(fù)位可進(jìn)一步包含將高速暫存存儲(chǔ) 器計(jì)數(shù)器235和觸發(fā)存儲(chǔ)器程序計(jì)數(shù)器245復(fù)位(方框510)。圖6中更詳細(xì)地展示接收ALU操作的數(shù)據(jù)(方框435)的實(shí)例實(shí)施方案。如果指令 指定輸入之一是來自一個(gè)輸入(例如輸入205i.,.n),那么控制單元230從指定的輸入端口 或寄存器接收數(shù)據(jù)(方框610)。這可允許可編程濾波器200實(shí)施正弦濾波器IOO的第一 級,這需要來自濾波器外部的輸入值。如果指令不指定接收輸入值,則控制單元將從高 速暫存存儲(chǔ)器位置取得數(shù)據(jù)(方框615)。不論控制單元230是從輸入205,...N中的一者或 一者以上還是從高速暫存存儲(chǔ)器位置接收輸入,其均將從指令中指定的觸發(fā)存儲(chǔ)器位置 取得輸入值(方框620)。圖7中更詳細(xì)地展示執(zhí)行ALU操作(方框440)的一個(gè)實(shí)例實(shí)施方案。如果操作碼 是微分(DIFF)(方框705),那么ALU 225從第一輸入減去第二輸入(方框710)。舉例 來說,當(dāng)可編程濾波器220正在實(shí)施正弦濾波器100的第四級時(shí),其從對應(yīng)于寄存器155 的高速暫存存儲(chǔ)器位置中的值減去來自對應(yīng)于觸發(fā)寄存器160的觸發(fā)存儲(chǔ)器位置的輸 入。如果操作碼是累加和轉(zhuǎn)儲(chǔ)(ACD)或積分(INT)(方框715),那么ALU 225將輸入相加(方框725)。舉例來說,當(dāng)可編程濾波器正在實(shí)施正弦濾波器100的第二級時(shí), 其將對應(yīng)于寄存器115的高速暫存存儲(chǔ)器位置中的值與存儲(chǔ)在對應(yīng)于觸發(fā)寄存器125的 觸發(fā)存儲(chǔ)器位置中的值相加。圖8中展示輸出朿自ALU操作的結(jié)果(方框445)的實(shí)例實(shí)施方案。如果正被執(zhí)行 的指令指定將數(shù)據(jù)發(fā)送到輸出端口或寄存器(例如輸出410l,.m)中的一者或一者以上(方 框805),那么控制單元230致使ALU將結(jié)果輸出到選定的輸出410l,.m (方框810)。舉 例來說,當(dāng)可編程濾波器200正在實(shí)施正弦濾波器IOO的第五級吋,將ALU操作的結(jié)果 發(fā)送到輸出。否則,控制單元230將致使將ALU操作的結(jié)果存儲(chǔ)在一個(gè)或一個(gè)以上高速 暫存存儲(chǔ)器位置巾(方框815)。舉例來說,當(dāng)可編程濾波器200正在實(shí)施正弦濾波器100 的第一級時(shí),控制單元將致使將ALU操作的結(jié)果存儲(chǔ)在對應(yīng)于寄存器115的高速暫存存 儲(chǔ)器位置中。在累加和轉(zhuǎn)儲(chǔ)指令的情況下,被寫入的高速暫存存儲(chǔ)器位置可基于與累加 和轉(zhuǎn)儲(chǔ)操作相關(guān)聯(lián)的觸發(fā)器的值而改變。舉例來說,當(dāng)可編程濾波器正在實(shí)施正弦濾波 器100的第三級,且與累加和轉(zhuǎn)儲(chǔ)操作相關(guān)聯(lián)的觸發(fā)信號是活動(dòng)的時(shí),將ALU操作的結(jié) 果存儲(chǔ)到對應(yīng)于寄存器155的高速暫存存儲(chǔ)器位置。圖9中更詳細(xì)地展示更新觸發(fā)存儲(chǔ)器位置(方框450)的實(shí)例實(shí)施方案。如果對應(yīng) 于觸發(fā)存儲(chǔ)器位置的觸發(fā)信號是活動(dòng)的,則控制邏輯230更新觸發(fā)存儲(chǔ)器位置(方框 905)。舉例來說,當(dāng)可編程濾波器正在實(shí)施正弦濾波器100的第二級且用于對應(yīng)于觸發(fā) 寄存器125的觸發(fā)存儲(chǔ)器位置的觸發(fā)信號是活動(dòng)的時(shí),將積分(INT)操作的結(jié)果存儲(chǔ)在 觸發(fā)存儲(chǔ)器位置中。如果操作碼是累加和轉(zhuǎn)儲(chǔ)(ACD)且對應(yīng)于累加和轉(zhuǎn)儲(chǔ)的觸發(fā)器是 活動(dòng)的時(shí)(方框910),那么控制邏輯230將累加存儲(chǔ)器位置中的值復(fù)位。舉例來說,當(dāng) 可編程濾波器200正在實(shí)施正弦濾波器IOO的第三級時(shí),其在與累加和轉(zhuǎn)儲(chǔ)相關(guān)聯(lián)的觸 發(fā)信號是活動(dòng)的時(shí)將對應(yīng)于觸發(fā)寄存器140的觸發(fā)存儲(chǔ)器位置中的值復(fù)位。雖然已經(jīng)通過參看本發(fā)明的實(shí)例實(shí)施例描繪、描述和定義了本發(fā)明的實(shí)施例,但此 種參看并不意味著對本發(fā)明的限制,且不應(yīng)推導(dǎo)出任何此種限制。所揭示的標(biāo)的物能夠 接受較大程度的形式和功能卜-的修改、更改和等效物,所屬領(lǐng)域的受益于本發(fā)明的技術(shù) 人員將想到所述修改、更改和等效物。本發(fā)明的所描繪和描述的實(shí)施例只是實(shí)例,且并 不窮盡本發(fā)明的范圍。
權(quán)利要求
1.一種對一個(gè)或一個(gè)以上輸入信號進(jìn)行濾波的方法,其包括接收一個(gè)或一個(gè)以上輸入信號,其每一者具有輸入信號值;在程序存儲(chǔ)器中存儲(chǔ)至少兩個(gè)指令以對所述輸入信號中的一者或一者以上進(jìn)行濾波,每個(gè)指令包括操作碼并識別至少兩個(gè)輸入位置和至少一個(gè)輸出位置;對于所述一個(gè)或一個(gè)以上輸入信號中的一者或一者以上對于每個(gè)指令從所述至少兩個(gè)輸入位置取得輸入值;基于所述指令的所述操作碼對所述輸入值執(zhí)行操作以產(chǎn)生輸出值;以及將所述輸出值輸出到至少一個(gè)輸出位置;且其中由少于指令的數(shù)目的算術(shù)邏輯單元(ALU)來執(zhí)行所述操作。
2. 根據(jù)權(quán)利要求l所述的方法,其中所述輸入信號具有采樣,所述采樣具有最大采樣 頻率(fs),所述方法進(jìn)一步包括提供時(shí)鐘信號,其中所述時(shí)鐘信號具有至少為2x/ xA^/;的頻率,其中R是存儲(chǔ) 在所述程序存儲(chǔ)器中的指令的數(shù)目,且N是輸入信號的數(shù)目。
3. 根據(jù)權(quán)利要求1所述的方法,其中所述輸入信號具有采樣,所述采樣具有最大采樣 頻率(fs),所述方法進(jìn)一步包括-提供時(shí)鐘信號,其中所述時(shí)鐘信號具有至少為 L 的頻率,其中R是存 儲(chǔ)在所述程序存儲(chǔ)器中的指令的數(shù)目,N是輸入信號的數(shù)目,且L是用于對所述一 個(gè)或一個(gè)以上輸入信號進(jìn)行濾波的ALU的數(shù)目。
4. 根據(jù)權(quán)利要求1所述的方法,其中由專用于信號處理的一個(gè)或一個(gè)以上ALU來執(zhí) 行所述操作。
5. 根據(jù)權(quán)利要求1所述的方法,其中由單個(gè)ALU執(zhí)行針對每個(gè)指令執(zhí)行的所述操作。
6. 根據(jù)權(quán)利要求1所述的方法,其中從至少兩個(gè)輸入位置取得輸入值包括選擇性地從高速暫存存儲(chǔ)器位置或輸入寄存器之一取得第一輸入值;以及 從觸發(fā)存儲(chǔ)器位置取得第二輸入值。
7. 根據(jù)權(quán)利要求l所述的方法,其中將所述輸出值輸出到至少一個(gè)輸出位置包括選擇性地將所述輸出值存儲(chǔ)到高速暫存存儲(chǔ)器位置或輸出寄存器之一。
8. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括為一個(gè)或一個(gè)以上觸發(fā)存儲(chǔ)器位置提供觸發(fā)信號,且其中將所述輸出值輸出到至 少一個(gè)輸出位置包括如果所述觸發(fā)存儲(chǔ)器位置的所述觸發(fā)信號是活動(dòng)的,則將所述輸出值存儲(chǔ)到觸發(fā)存儲(chǔ)器位置。
9. 根據(jù)權(quán)利要求l所述的方法,其中對所述輸入值執(zhí)行操作以產(chǎn)生輸出值包括響應(yīng)十積分操作碼將所述輸入值相加。
10. 根據(jù)權(quán)利要求l所述的方法,其中對所述輸入值執(zhí)行操作以產(chǎn)生輸出值包括響應(yīng)于微分操作碼從所述輸入值中的一者或一者以上減去另外-一個(gè)或一個(gè)以上 輸入值。
11. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括為所述ALU提供轉(zhuǎn)儲(chǔ)觸發(fā)信號,且其中對所述輸入值執(zhí)行操作以產(chǎn)生輸出值包 括響應(yīng)于累加和轉(zhuǎn)儲(chǔ)操作碼 將所述輸入值相加;且 如果所述觸發(fā)信號是活動(dòng)的,貝廿將結(jié)果輸出到第一高速暫存存儲(chǔ)器位置;以及將觸發(fā)存儲(chǔ)器位置復(fù)位; 否則將所述結(jié)果輸出到第二高速暫存存儲(chǔ)器位置。
12. —種用f對一個(gè)或一個(gè)以上輸入信號進(jìn)行濾波的可編程濾波器,其包括時(shí)鐘,其提供時(shí)鐘信號-,一個(gè)或一個(gè)以上算術(shù)邏輯單元(ALU),其每一者選擇性地對至少兩個(gè)輸入值執(zhí)行一個(gè)或一個(gè)以上濾波操作之一并產(chǎn)生輸出值;程序存儲(chǔ)器,其用于存儲(chǔ)一個(gè)或一個(gè)以上指令,每個(gè)指令包括操作碼且識別至少兩個(gè)輸入位置和至少一個(gè)輸出位置;高速暫存存儲(chǔ)器,其耦合到一個(gè)或一個(gè)以上ALU以存儲(chǔ)一個(gè)或一個(gè)以上值; 觸發(fā)存儲(chǔ)器,其耦合到--個(gè)或一個(gè)以上ALU以存儲(chǔ)一個(gè)或一個(gè)以上值; 至少一個(gè)輸入寄存器,其耦合到一個(gè)或一個(gè)以上ALU,以存儲(chǔ)外部輸入值; 至少一個(gè)輸出寄存器,其耦合到一個(gè)或一個(gè)以上ALU,以存儲(chǔ)外部輸出值;以及 控制單元,其耦合到一個(gè)或一個(gè)以上ALU和所述程序存儲(chǔ)器且適合于從所述程序存儲(chǔ)器接收指令,且基于所述指令致使所述一個(gè)或一個(gè)以上ALU: 從所述高速暫存存儲(chǔ)器、所述觸發(fā)存儲(chǔ)器和所述至少一個(gè)輸入寄存器中的一者或一者以上接收兩個(gè)或兩個(gè)以上輸入值;基于所述指令中的操作碼對所述輸入值執(zhí)行濾波操作以產(chǎn)生輸出值;以及 將所述輸出值輸出到所述高速暫存存儲(chǔ)器、所述觸發(fā)存儲(chǔ)器和所述至少一個(gè)輸出寄存器中的一者或一者以上;且 其中ALU的數(shù)S小于所述程序存儲(chǔ)器中的指令的數(shù)目。
13. 根據(jù)權(quán)利要求12所述的可編程濾波器,其進(jìn)一步包括-個(gè)或 一個(gè)以上觸發(fā)輸入,其耦合到所述控制單元,每個(gè)觸發(fā)輸入用以接收觸發(fā) 信號,且其中所述觸發(fā)存儲(chǔ)器中的一個(gè)或一個(gè)以上位置的每一者與觸發(fā)輸入相關(guān);且 當(dāng)所述相關(guān)觸發(fā)輸入信號是活動(dòng)的時(shí),所述控制單元只允許將所述輸出值寫入 到所述觸發(fā)存儲(chǔ)器中的位置。
14. 根據(jù)權(quán)利要求12所述的可編程濾波器,其進(jìn)一步包括程序計(jì)數(shù)器,其耦合到所述控制單元以指向程序存儲(chǔ)器中的當(dāng)前指令;且其中所 述控制單元進(jìn)一步適合于控制所述程序計(jì)數(shù)器。
15. 根據(jù)權(quán)利要求12所述的可編程濾波器,其進(jìn)一步包括高速暫存存儲(chǔ)器程序計(jì)數(shù)器,其用以指向當(dāng)前高速暫存存儲(chǔ)器位置,且其中所述 控制單元進(jìn)一步適合于控制所述高速暫存存儲(chǔ)器程序計(jì)數(shù)器。
16. 根據(jù)權(quán)利耍求12所述的可編程濾波器,其進(jìn)一步包括觸發(fā)存儲(chǔ)器程序計(jì)數(shù)器,其用以指向當(dāng)前觸發(fā)存儲(chǔ)器位置,且其中所述控制單元 進(jìn)一步適合于控制所述高速暫存存儲(chǔ)器程序計(jì)數(shù)器。
17. 根據(jù)權(quán)利要求12所述的可編程濾波器,其中所述輸入寄存器中的每一者接收具有最大采樣頻率(fs)的信號,且其中所述時(shí)鐘具有至少與L 一樣快的時(shí)鐘頻率,其中R是存儲(chǔ)在所述程序存儲(chǔ)器中的指令的數(shù)目,L是ALU的數(shù)目,且N 是輸入信號的數(shù)目。
18. 根據(jù)權(quán)利要求12所述的可編程濾波器,其中ALU的數(shù)目是1。全文摘要
一種對一個(gè)或一個(gè)以上輸入信號進(jìn)行濾波的方法包含接收一個(gè)或一個(gè)以上輸入信號,每個(gè)所述輸入信號具有輸入信號值。所述方法包含在程序存儲(chǔ)器中存儲(chǔ)至少兩個(gè)指令,以對所述輸入信號中的一者或一者以上進(jìn)行濾波。每個(gè)指令包含操作碼,且識別至少兩個(gè)輸入位置和至少一個(gè)輸出位置。所述方法包含對于所述一個(gè)或一個(gè)以上輸入信號中的一者或一者以上且接著對于每個(gè)指令,從所述至少兩個(gè)輸入位置取得輸入值。所述方法進(jìn)一步包含基于所述指令的所述操作碼對所述輸入值執(zhí)行操作以產(chǎn)生輸出值,并將所述輸出值輸出到至少一個(gè)輸出位置。
文檔編號G06F9/30GK101253475SQ200680031838
公開日2008年8月27日 申請日期2006年8月29日 優(yōu)先權(quán)日2005年8月31日
發(fā)明者詹姆斯·E·巴特林, 魯沙恩·J·薩穆埃爾 申請人:密克羅奇普技術(shù)公司