一種基于雙口緩存的累加求和方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字信號(hào)處理技術(shù)領(lǐng)域,尤其涉及一種基于雙口緩存的累加求和方法 和裝置。
【背景技術(shù)】
[0002] 擴(kuò)頻通信是一種非常重要的抗干擾通信技術(shù),它具有抗干擾能力強(qiáng)、信號(hào)隱蔽性 好等諸多優(yōu)點(diǎn)。擴(kuò)頻技術(shù)被廣泛的應(yīng)用于軍事和民用通信領(lǐng)域。隨著對(duì)系統(tǒng)作用范圍、接 收靈敏度等關(guān)鍵指標(biāo)要求的提高,擴(kuò)頻系統(tǒng)也不斷朝著增加擴(kuò)頻碼位數(shù)、提高擴(kuò)頻增益的 方向發(fā)展。擴(kuò)頻碼位數(shù)的增多導(dǎo)致在做信號(hào)解擴(kuò)時(shí)涉及到大量的樣本數(shù)據(jù)進(jìn)行累加。同樣, 擴(kuò)頻系統(tǒng)信號(hào)處理中門限技術(shù)也對(duì)系統(tǒng)指標(biāo)有著很大的影響。傳統(tǒng)采用固定門限的方式, 在復(fù)雜電磁環(huán)境下的表現(xiàn)越來越差,會(huì)導(dǎo)致較高的虛警概率。動(dòng)態(tài)門限技術(shù)的提出,可以很 好的解決在干擾環(huán)境下的擴(kuò)頻系統(tǒng)的虛警問題,但需要不斷對(duì)接收到的信號(hào)幅度進(jìn)行評(píng)估 來調(diào)整門限參數(shù),即需要對(duì)當(dāng)前時(shí)間段的信號(hào)進(jìn)行累加后求均值,估算信號(hào)幅度范圍。
[0003] 現(xiàn)有累加求和的方法分為兩種:并行和串行。
[0004] 并行求和的方式將η個(gè)輸入序列分為兩個(gè)一組,分為n/2組,兩兩求和,再對(duì)其進(jìn) 行兩兩分組,分為n/4組,兩兩求和,反復(fù)計(jì)算,直至算出最終結(jié)果。
[0005] 串行求和將η個(gè)輸入序列采用延遲線緩存的方式,在每個(gè)時(shí)鐘CLK將輸入數(shù)據(jù)送 入延遲線進(jìn)行緩存,并對(duì)其輸入數(shù)據(jù)求和、輸出數(shù)據(jù)秋茶的方式可計(jì)算得到最終結(jié)果。
[0006] 但以上兩種方法,只在η值較小時(shí)有較高的適用性,隨著求和序列長度η的增加, 兩種方法的硬件開銷城北增加,會(huì)耗費(fèi)大量的邏輯資源。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明所要解決的技術(shù)問題是,提供一種基于雙口緩存的累加求和方法和裝置, 以解決當(dāng)求和序列數(shù)量增大時(shí),設(shè)備硬件開銷成倍增大的問題。
[0008] 本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案是提供一種基于雙口緩存的累加求 和方法,該方法包括步驟:
[0009] Sl、根據(jù)求和序列的長度η及位數(shù)對(duì)雙口進(jìn)行配置;
[0010] S2、對(duì)模塊進(jìn)行復(fù)位;
[0011] S3、根據(jù)輸入數(shù)據(jù)DIN和輸出數(shù)據(jù)DOUT計(jì)算所述求和序列的求和結(jié)果SUM。
[0012] 優(yōu)選地,步驟SI中對(duì)所述雙口進(jìn)行配置包括步驟:
[0013] S101、在 IP 核中設(shè)置 Memory Type 為 True Dual Port RAM 類型;
[0014] S102、設(shè)置所述雙口的輸入/輸出數(shù)據(jù)的位寬與所述求和序列的量化位數(shù)匹配;
[0015] S103、設(shè)置所述雙口的深度為2的冪次方,且大于或等于所述求和序列的長度η ;
[0016] S104、配置使用使能及復(fù)位信號(hào);
[0017] S105、對(duì)求和結(jié)果SUM的最大取值進(jìn)行預(yù)估,得到預(yù)估值,根據(jù)所述預(yù)估值設(shè)置相 應(yīng)的位數(shù)。
[0018] 優(yōu)選地,步驟S2中復(fù)位要求所述雙口中A、B端口的使能控制信號(hào)為無效值,所述 A、B端口的地址信號(hào)均保持為0,所述B端口的輸出數(shù)據(jù)保持為0,求和結(jié)果SUM輸出為0。
[0019] 優(yōu)選地,步驟S3中計(jì)算所述求和結(jié)果包括步驟:
[0020] S301、控制所述雙口的A端口的使能信號(hào)ENA以及寫信號(hào)WEA有效;
[0021] S302、所述A端口地址信號(hào)ADDRA加1遞增,所述輸入數(shù)據(jù)DIN每個(gè)時(shí)鐘CLK順序 寫入所述雙口,同時(shí)求和結(jié)果SUM累加所述輸入數(shù)據(jù)DIN ;
[0022] S303、當(dāng)ADDRA-ADDRB = n-1時(shí),所述雙口的B端口的使能信號(hào)ENB有效以及寫信 號(hào)WEB無效,所述B端口地址信號(hào)ADDRB開始加1遞增;
[0023] S304、讀出前η個(gè)時(shí)鐘CLK的所述輸入數(shù)據(jù)DIN,所述求和結(jié)果SUM在加上所述 輸入數(shù)據(jù)DIN的同時(shí)需要減去所述B端口的輸出數(shù)據(jù)D0UT,即所述時(shí)鐘CLK為n+i時(shí), SOl=Ef+i DIN -DOlT (i =0, 1,2···),
[0024] 優(yōu)選地,步驟S103中,當(dāng)所述長度η滿足2m〈n〈2m+1且略大于2 m時(shí),所述雙口深度 配置為2m,剩余的長度n-2m采用延遲線緩存方式緩存。
[0025] 另一方面,本發(fā)明提供一種基于雙口緩存的累加求和裝置,該裝置包括:
[0026] A端口,用于在每個(gè)時(shí)鐘CLK順序?qū)⑤斎霐?shù)據(jù)DIN寫入雙口;
[0027] B端口,用于在η-I個(gè)時(shí)鐘CLK后,讀出前η個(gè)時(shí)鐘CLK的所述輸入數(shù)據(jù)DIN,作為 輸出數(shù)據(jù)DOUT ;
[0028] 雙口配置模塊,用于根據(jù)求和序列的長度η及位數(shù)對(duì)雙口進(jìn)行配置;
[0029] 復(fù)位模塊,用于對(duì)模塊進(jìn)行復(fù)位;
[0030] 累加求和模塊,用于根據(jù)所述輸入數(shù)據(jù)DIN和所述輸出數(shù)據(jù)DOUT計(jì)算所述求和序 列的求和結(jié)果SUM。
[0031] 優(yōu)選地,所述雙口配置模塊根據(jù)所述求和序列的長度η確定雙口的深度,所述雙 口的深度為2的冪次方,且大于或等于所述求和序列的長度η。
[0032] 優(yōu)選地,所述復(fù)位模塊通過將所述雙口中的A、B端口的使能控制信號(hào)設(shè)置為無效 值,將地址信號(hào)設(shè)置為0,將所述B端口的輸出數(shù)據(jù)DOUT設(shè)置為0,將所述求和結(jié)果SUM輸 出設(shè)置為〇完成模塊復(fù)位。
[0033] 優(yōu)選地,所述復(fù)位模塊復(fù)位完成后,所述累加求和模塊完成:
[0034] 控制所述A端口的使能信號(hào)ENA以及寫信號(hào)WEA有效,所述A端口的地址信號(hào) ADDRA加1遞增,所述輸入數(shù)據(jù)DIN在每個(gè)時(shí)鐘CLK順序?qū)懭耄銮蠛徒Y(jié)果SUM對(duì)所述輸 入數(shù)據(jù)DIN進(jìn)行累加;
[0035] 所述η-I個(gè)時(shí)鐘CLK后,所述A端口的地址信號(hào)ADDRA與所述B端口的地址信號(hào) ADDRB之差為η-I,即,ADDRA-ADDRB = η-I,設(shè)置所述B端口的使能信號(hào)ENB有效,同時(shí)設(shè)置 寫信號(hào)WEB無效,所述B端口地址信號(hào)ADDRB加1遞增,讀出η個(gè)時(shí)鐘CLK前的輸入數(shù)據(jù);
[0036] 所述求和結(jié)果SUM加上所述輸入數(shù)據(jù)DIN的同時(shí)減去所述B端口的輸出數(shù)據(jù) D0UT,即,所述時(shí)鐘CLK為n+i時(shí),丨1+i DIN - 1Χ)ΓΤ (」=〇, 1,2…),得到最終求 和結(jié)果。
[0037] 優(yōu)選地,所述求和序列的長度η滿足2m〈n〈2m+1且略大于2 m時(shí),所述雙口配置模塊 設(shè)置深度為2m,剩余的長度n-2m采用延遲線緩存方式緩存。
【附圖說明】
[0038] 圖1是本發(fā)明的一個(gè)優(yōu)選實(shí)施例中基于雙口緩存的累加求和實(shí)現(xiàn)框架圖;
[0039] 圖2是本發(fā)明的第一優(yōu)選實(shí)施例中True Dual Port RAM的示意圖;
[0040] 圖3是本發(fā)明的第一優(yōu)選實(shí)施例中雙口讀/寫時(shí)序圖;
[0041] 圖4是本發(fā)明的第一優(yōu)選實(shí)施例中求和序列的求和結(jié)果時(shí)序示意圖;
[0042] 圖5是本發(fā)明的第二優(yōu)選實(shí)施例中基于雙口加延遲線緩存的累加求和實(shí)現(xiàn)框架 圖。
【具體實(shí)施方式】
[0043] 以下實(shí)施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明 的保護(hù)范圍。說明書后續(xù)描述為實(shí)施本發(fā)明的較佳實(shí)施方式,然所述描述乃以說明本發(fā)明 的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護(hù)范圍當(dāng)視所附權(quán)利要求所 界定者為準(zhǔn)。
[0044] 下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。
[0045] 如圖1所示,為本發(fā)明的一個(gè)優(yōu)選實(shí)施例的實(shí)現(xiàn)框架圖,公開了一種基于雙口緩 存的累加求和方法,該方法包含步驟:
[0046] Sl、根據(jù)求和序列的長度η及位數(shù)對(duì)雙口進(jìn)行配置;
[0047] S2、對(duì)模塊進(jìn)行復(fù)位;
[0048] S3、根據(jù)輸入數(shù)據(jù)DIN和輸出數(shù)據(jù)DOUT計(jì)算求和序列的求和結(jié)果SUM。
[0049] 進(jìn)一步地,步驟SI中對(duì)雙口進(jìn)行配置包括步驟:
[0050] S101、在 IP 核中設(shè)置 Memory Type 為 True Dual Port RAM 類型;
[0051] S102、設(shè)置雙口的輸入/輸出數(shù)據(jù)的位寬與所述求和序列的量化位數(shù)匹配;
[0052] S103、設(shè)置雙口的深度為2的冪次方,且大于或等于所述求和序列的長度η ;
[0053] S104、配置使用使能及復(fù)位信號(hào);
[0054] S105、對(duì)求和結(jié)果SUM的最大取值進(jìn)行預(yù)估,得到預(yù)估值,根據(jù)預(yù)估值設(shè)置相應(yīng)的 位數(shù)。
[0055] 本實(shí)施例中,通過控制信號(hào)對(duì)串行輸入的序列進(jìn)行緩存,確保當(dāng)前雙口中的數(shù)據(jù) 為最近的η個(gè)輸入數(shù)據(jù)序列,將迀移時(shí)鐘CLK的求和結(jié)果與當(dāng)前時(shí)鐘CLK雙口的輸入數(shù)據(jù) 相加,并減去當(dāng)前時(shí)鐘CLK雙口的輸出數(shù)據(jù)得到最近的η個(gè)輸入序列的求和結(jié)果SUM,這種 方法實(shí)現(xiàn)簡單,同時(shí)在Dual Port RAM上完成累計(jì)求和,消耗FPGA片上的BlockRAM資源, 節(jié)省邏輯資源,即使求和序列長度較長,也可大量節(jié)省硬件開銷,解決長序列求和時(shí),硬件 損耗成倍增加的問題,在擴(kuò)頻系統(tǒng)數(shù)字信號(hào)處理方面有很強(qiáng)的實(shí)用價(jià)值。
[0056] 參見圖2,為True Dual Port RAM的示意圖,步驟S2中模塊復(fù)位要求雙口中A、B 端口的使能控制信號(hào)均為無效值,地址信號(hào)均保持為〇, B端口的輸出數(shù)據(jù)保持為0,求和結(jié) 果SUM輸出為0。
[0057] 本實(shí)施例中,對(duì)模塊復(fù)位的設(shè)置保證了計(jì)算求和結(jié)果SUM之前,雙口的A、B端口均 為初始狀態(tài),對(duì)后續(xù)的累加沒有影響,確保求和結(jié)果SUM的準(zhǔn)確性。
[0058] 如圖3所示,步驟S3中計(jì)算求和結(jié)果SUM包括步驟:
[0059] S301、控制A端口的使能信號(hào)ENA以及寫信號(hào)WEA有效;
[0060] S302、A端口地址信號(hào)ADDRA加1遞增,輸入數(shù)據(jù)DIN每個(gè)時(shí)鐘CLK順序?qū)懭腚p口, 同時(shí)求和結(jié)果SUM累加輸入數(shù)據(jù)DIN ;
[0061] S303、當(dāng)ADDRA-ADDRB = n-1時(shí),B端口的使能信號(hào)ENB有效以及寫信號(hào)WEB無效, 地址信號(hào)ADDRB開始加1遞增。
[0062] 更進(jìn)一步地,如圖4所示,公開了當(dāng)序列長度η = 4時(shí),步驟S3中計(jì)算求和結(jié)