国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python 的級(jí)聯(lián)半帶濾波器RTL 自動(dòng)生成方法*

2023-03-22 07:23何秋秀李曉蓉邵杰卓琳
電子與封裝 2023年2期
關(guān)鍵詞:級(jí)聯(lián)插值時(shí)鐘

何秋秀,李曉蓉,邵杰,卓琳

(中國(guó)電子科技集團(tuán)公司第五十八研究所,江蘇無(wú)錫 214035)

1 引言

在現(xiàn)代通信領(lǐng)域中,數(shù)字上下變頻是軟件無(wú)線電中收發(fā)機(jī)的核心部分,而利用級(jí)聯(lián)半帶濾波器進(jìn)行采樣率的變換是數(shù)字上下變頻的關(guān)鍵技術(shù)之一[1-3],所以級(jí)聯(lián)半帶濾波器的設(shè)計(jì)開(kāi)發(fā)顯得尤為重要。近年來(lái),集成電路(IC)產(chǎn)業(yè)的快速發(fā)展對(duì)電路的性能、面積、功耗及生產(chǎn)周期的要求不斷提高,利用自動(dòng)化技術(shù)開(kāi)發(fā)數(shù)字電路或者知識(shí)產(chǎn)權(quán)(IP)模塊已經(jīng)成為主流[4-7]。Python 是一種高級(jí)動(dòng)態(tài)編程語(yǔ)言,擁有豐富的標(biāo)準(zhǔn)庫(kù),在實(shí)現(xiàn)自動(dòng)化方面有可擴(kuò)展性、可移植性和可嵌入性等優(yōu)勢(shì)[5],因此基于Python 的級(jí)聯(lián)半帶濾波器自動(dòng)生成方法具有重要意義,可以加快設(shè)計(jì)速度,提高設(shè)計(jì)質(zhì)量。

本文基于Python 編程語(yǔ)言,結(jié)合級(jí)聯(lián)半帶濾波器和并行流水線結(jié)構(gòu)的特點(diǎn),提出了一種級(jí)聯(lián)半帶濾波器寄存器傳輸級(jí)(RTL)自動(dòng)生成方法。

2 級(jí)聯(lián)半帶濾波器介紹

多速率數(shù)字信號(hào)處理系統(tǒng)通過(guò)插值提高信號(hào)的采樣速率,通過(guò)抽取降低信號(hào)的采樣速率。插值操作是先在已知抽樣序列的相鄰兩采樣點(diǎn)之間等間隔地插入M-1 個(gè)零值點(diǎn),然后進(jìn)行低通濾波,就可以得到M 倍插值的結(jié)果;抽取操作是先進(jìn)行抗混疊濾波,然后每隔M-1 個(gè)采樣點(diǎn)抽取1 個(gè)采樣點(diǎn),就可以得到M倍抽取的結(jié)果[8-10]。

半帶濾波器是一種實(shí)現(xiàn)數(shù)字上下變頻的高效濾波器,其時(shí)域離散方程為[11]:

式中x(n)為半帶濾波器的輸入信號(hào),n 為單位時(shí)間,h(i)為半帶濾波器系數(shù),L 為半帶濾波器長(zhǎng)度,y(n)為半帶濾波器的輸出信號(hào)。

半帶濾波器主要有以下特點(diǎn):1)通帶和阻帶對(duì)稱,通帶容限和阻帶容限相等;2)系數(shù)偶對(duì)稱,且半帶濾波器長(zhǎng)度為偶數(shù)(階數(shù)為奇數(shù));3)所有大于0 的偶數(shù)序列的沖擊響應(yīng)值均為0。半帶濾波器的特性大大降低了濾波運(yùn)算所需的乘法次數(shù)和加法次數(shù),所以半帶濾波器特別適合2 倍的插值或者抽取,而且計(jì)算效率高,實(shí)時(shí)性強(qiáng)。

半帶濾波器特殊的頻率響應(yīng)特性使其非常適合2N倍插值或者抽取的多速率轉(zhuǎn)換系統(tǒng)[12-13]。通過(guò)采用多個(gè)半帶濾波器級(jí)聯(lián)的方式,即可十分方便地實(shí)現(xiàn)高插值率轉(zhuǎn)換或者高抽取率轉(zhuǎn)換。3 個(gè)半帶插值濾波器級(jí)聯(lián)可實(shí)現(xiàn)8 倍的插值;4 個(gè)半帶抽取濾波器級(jí)聯(lián)可實(shí)現(xiàn)16 倍的抽取。

3 級(jí)聯(lián)半帶濾波器RTL 自動(dòng)生成設(shè)計(jì)

級(jí)聯(lián)半帶濾波器RTL 自動(dòng)生成設(shè)計(jì)流程如圖1所示,首先讀取設(shè)計(jì)需求參數(shù),創(chuàng)建Python 字典對(duì)象,將設(shè)計(jì)參數(shù)存儲(chǔ)于此字典對(duì)象中;然后讀取字典對(duì)象中的設(shè)計(jì)參數(shù),獲取級(jí)聯(lián)半帶濾波器類型參數(shù);若類型參數(shù)為“插值”,則依次生成插值時(shí)鐘、單級(jí)半帶插值濾波器、N 級(jí)級(jí)聯(lián)半帶插值濾波器和插值內(nèi)建自測(cè)單元;若類型參數(shù)為“抽取”,則依次生成抽取時(shí)鐘、單級(jí)半帶抽取濾波器、N 級(jí)級(jí)聯(lián)半帶抽取濾波器和抽取內(nèi)建自測(cè)單元。

圖1 級(jí)聯(lián)半帶濾波器RTL 自動(dòng)生成設(shè)計(jì)流程

3.1 級(jí)聯(lián)半帶插值濾波器RTL 自動(dòng)生成設(shè)計(jì)

3.1.1 單級(jí)半帶插值濾波器RTL 自動(dòng)生成

單級(jí)半帶插值濾波器生成單元由延時(shí)生成器、加法生成器、乘法生成器和求和生成器組成。生成的單級(jí)半帶插值濾波器為2 路輸入4 路輸出的4 路并行結(jié)構(gòu),圖2 為其設(shè)計(jì)框圖。

圖2 單級(jí)半帶插值濾波器RTL 自動(dòng)生成設(shè)計(jì)框圖

延時(shí)生成器生成延時(shí)單元的RTL 代碼,通過(guò)調(diào)用Python 中的readline()函數(shù)逐行讀取需求參數(shù)中的輸入數(shù)據(jù)位寬和延時(shí)周期數(shù),再利用write()函數(shù)生成延時(shí)單元的輸入輸出信號(hào)和always 延時(shí)結(jié)構(gòu),濾波器的兩路輸入為A0 和A1,則A0 經(jīng)過(guò)延時(shí)得到A(n-0),A(n-4), …, A(n-4k),A1 經(jīng)過(guò)延時(shí)得到A(n-2),A(n-6),…,A(n-4k+2)。

加法生成器生成加法單元的RTL 代碼,讀取輸入數(shù)據(jù)位寬和半帶濾波器長(zhǎng)度參數(shù),再利用write()函數(shù)生成加法單元的輸入輸出信號(hào)和always 加法結(jié)構(gòu),加法結(jié)構(gòu)將系數(shù)相同的兩個(gè)延時(shí)項(xiàng)相加,即adder1=A(n-0)+A(n-4k),adder2=A(n-2)+A(n-4k+2),…,共需計(jì)算k 次。

乘法生成器生成乘法單元的RTL 代碼,讀取加法器位寬、半帶濾波器長(zhǎng)度、半帶濾波器系數(shù)位寬以及定點(diǎn)系數(shù)值,再利用write()函數(shù)生成乘法單元的輸入輸出信號(hào)和always 乘法結(jié)構(gòu),乘法結(jié)構(gòu)將加法單元的結(jié)果與對(duì)應(yīng)的半帶濾波器系數(shù)相乘,即mult1=adder1×coeff1,mult2=adder2×coeff2,…,共需計(jì)算k 次。

求和生成器生成求和單元的RTL 代碼,讀取乘法器位寬、半帶濾波器長(zhǎng)度和加法流水線級(jí)數(shù),再利用write()函數(shù)生成求和單元的輸入輸出信號(hào)和always 求和結(jié)構(gòu),求和結(jié)構(gòu)將所有的乘積項(xiàng)相加求和,即sum=mult1+mult2+…+multk。

3.1.2 級(jí)聯(lián)半帶插值濾波器RTL 自動(dòng)生成

級(jí)聯(lián)半帶插值濾波器RTL 自動(dòng)生成設(shè)計(jì)包括插值時(shí)鐘生成單元、N 級(jí)級(jí)聯(lián)半帶插值濾波器生成單元和插值內(nèi)建自測(cè)生成單元,圖3 為其設(shè)計(jì)框圖。

圖3 級(jí)聯(lián)半帶插值濾波器RTL 自動(dòng)生成設(shè)計(jì)框圖

插值時(shí)鐘生成單元生成插值時(shí)鐘的RTL 代碼,調(diào)用write()函數(shù)生成插值時(shí)鐘單元的端口信號(hào)和always計(jì)數(shù)分頻結(jié)構(gòu),計(jì)數(shù)分頻結(jié)構(gòu)將源時(shí)鐘2、4、8…分頻。插值時(shí)鐘單元為各級(jí)半帶插值濾波器提供時(shí)鐘信號(hào),各級(jí)半帶插值濾波器的時(shí)鐘分頻比分別為2N+1,2N,…,4。

N 級(jí)級(jí)聯(lián)半帶插值濾波器生成單元生成N 級(jí)級(jí)聯(lián)半帶插值濾波器的RTL 代碼,通過(guò)調(diào)用Python 中的readline () 函數(shù)讀取需求參數(shù)中的最大插值倍數(shù),write()函數(shù)生成N 個(gè)單級(jí)半帶插值濾波器并實(shí)例化,各個(gè)半帶插值濾波器首尾依次相連,得到最終N 級(jí)級(jí)聯(lián)的半帶插值濾波器;N=lb (max_interp),其中max_interp 為最大插值倍數(shù)。

插值內(nèi)建自測(cè)生成單元由斜坡測(cè)試生成器和脈沖測(cè)試生成器組成。斜坡測(cè)試生成器生成斜坡測(cè)試單元的RTL 代碼,調(diào)用write()函數(shù)生成斜坡測(cè)試單元的輸入輸出信號(hào)和always 加一結(jié)構(gòu),加一結(jié)構(gòu)實(shí)現(xiàn)斜坡的產(chǎn)生。脈沖測(cè)試生成器生成脈沖測(cè)試單元的RTL 代碼,調(diào)用write()函數(shù)生成脈沖單元的輸入輸出信號(hào)和always 計(jì)數(shù)結(jié)構(gòu),計(jì)數(shù)結(jié)構(gòu)實(shí)現(xiàn)計(jì)數(shù)到指定值之后輸出高脈沖功能。

3.2 級(jí)聯(lián)半帶抽取濾波器RTL 自動(dòng)生成設(shè)計(jì)

3.2.1 單級(jí)半帶抽取濾波器RTL 自動(dòng)生成

單級(jí)半帶抽取濾波器生成單元由乘法生成器和求和生成器組成。單級(jí)半帶抽取濾波器為4 路輸入2路輸出的4 路并行結(jié)構(gòu),圖4 為其設(shè)計(jì)框圖。

圖4 單級(jí)半帶抽取濾波器RTL 自動(dòng)生成設(shè)計(jì)框圖

乘法生成器生成乘法單元的RTL 代碼,通過(guò)調(diào)用Python 中readline()函數(shù)逐行讀取需求參數(shù)中的輸入輸出數(shù)據(jù)位寬,計(jì)算乘法器個(gè)數(shù)和乘法器輸出位寬,再利用write()函數(shù)生成乘法單元的端口信號(hào)和always乘法結(jié)構(gòu),乘法結(jié)構(gòu)將輸入數(shù)據(jù)與對(duì)應(yīng)的濾波器系數(shù)相乘,即mult1=din1×coeff1,mult2=din2×coeff2,…,共需計(jì)算k 次。

求和生成器生成求和單元的RTL 代碼,首先讀取加法位寬參數(shù),計(jì)算相加次數(shù),再利用write()函數(shù)生成加法單元的端口信號(hào)和奇偶相位的always 加法結(jié)構(gòu),加法結(jié)構(gòu)將所有的乘積項(xiàng)相加求和,即sum=mult1+mult2+…+multk。

3.2.2 級(jí)聯(lián)半帶抽取濾波器RTL 自動(dòng)生成

級(jí)聯(lián)半帶抽取濾波器RTL 自動(dòng)生成設(shè)計(jì)實(shí)現(xiàn)包括抽取時(shí)鐘生成單元、N 級(jí)級(jí)聯(lián)半帶抽取濾波器生成單元和抽取內(nèi)建自測(cè)生成單元,圖5 為其設(shè)計(jì)框圖。

圖5 級(jí)聯(lián)半帶抽取濾波器RTL 自動(dòng)生成設(shè)計(jì)框圖

抽取時(shí)鐘生成單元生成抽取時(shí)鐘的RTL 代碼,調(diào)用write()函數(shù)生成抽取時(shí)鐘單元的端口信號(hào)和always計(jì)數(shù)分頻結(jié)構(gòu),計(jì)數(shù)分頻結(jié)構(gòu)將源時(shí)鐘2、4、8…分頻。時(shí)鐘單元為各級(jí)半帶抽取濾波器提供時(shí)鐘信號(hào),各級(jí)半帶抽取濾波器的時(shí)鐘分頻比分別為4, 8, …,2N+1。

N 級(jí)級(jí)聯(lián)半帶抽取濾波器生成單元生成N 級(jí)級(jí)聯(lián)半帶抽取濾波器的RTL 代碼,通過(guò)調(diào)用Python 中readline()函數(shù)讀取需求參數(shù)中的最大抽取倍數(shù),write()函數(shù)生成N 個(gè)單級(jí)半帶抽取濾波器并實(shí)例化,各個(gè)半帶抽取濾波器首尾依次相連,得到最終N 級(jí)級(jí)聯(lián)的半帶抽取濾波器,N=lb(max_decim),其中max_decim 為最大抽取倍數(shù)。

抽取內(nèi)建自測(cè)生成單元由斜坡測(cè)試生成器和脈沖測(cè)試生成器組成。斜坡測(cè)試生成器生成斜坡測(cè)試單元的RTL 代碼,調(diào)用write()函數(shù)生成斜坡測(cè)試單元的輸入輸出信號(hào)和always 加一結(jié)構(gòu),加一結(jié)構(gòu)實(shí)現(xiàn)斜坡的產(chǎn)生。脈沖測(cè)試生成器生成脈沖測(cè)試單元的RTL 代碼,調(diào)用write()函數(shù)生成脈沖單元的輸入輸出信號(hào)和always 計(jì)數(shù)結(jié)構(gòu),計(jì)數(shù)結(jié)構(gòu)實(shí)現(xiàn)計(jì)數(shù)到指定值之后輸出高脈沖功能。

4 試驗(yàn)結(jié)果與討論

本文自動(dòng)生成了一個(gè)級(jí)聯(lián)半帶插值濾波器和一個(gè)級(jí)聯(lián)半帶抽取濾波器,并利用Cadence 公司的NC-Verilog 仿真器在Verilog 環(huán)境下進(jìn)行邏輯功能仿真。利用內(nèi)建自測(cè)單元生成的斜坡信號(hào)或者脈沖信號(hào)以及利用Matlab 中的sine 函數(shù)生成的正弦信號(hào)作為測(cè)試激勵(lì),用Simvision 工具查看仿真波形,最后使用Synopsys 公司的邏輯綜合(DC)工具進(jìn)行電路綜合。以下分別介紹自動(dòng)生成的級(jí)聯(lián)半帶插值濾波器和級(jí)聯(lián)半帶抽取濾波器的仿真驗(yàn)證和電路綜合情況。

4.1 仿真驗(yàn)證

4.1.1 自動(dòng)生成級(jí)聯(lián)半帶插值濾波器

級(jí)聯(lián)半帶插值濾波器的設(shè)計(jì)需求參數(shù)如表1 所示,它包括4 級(jí)單級(jí)的半帶插值濾波器,每級(jí)都能夠?qū)崿F(xiàn)2 倍插值,總體的級(jí)聯(lián)半帶插值濾波器能夠?qū)崿F(xiàn)16、8、4、2 倍插值。當(dāng)4 級(jí)全部使能時(shí),實(shí)現(xiàn)16 倍插值;當(dāng)使能前3 級(jí)時(shí),實(shí)現(xiàn)8 倍插值;當(dāng)使能前2級(jí)時(shí),實(shí)現(xiàn)4 倍插值;當(dāng)只使能第1 級(jí)時(shí),實(shí)現(xiàn)2 倍插值。

表1 級(jí)聯(lián)半帶插值濾波器的設(shè)計(jì)需求參數(shù)

配置級(jí)聯(lián)半帶插值濾波器的插值因子為16,仿真時(shí)序如圖6 所示,din_1 和din_2 是2 路并行的16 位輸入數(shù)據(jù),dout_1、dout_2、dout_3 和dout_4 是4 路并行的16 位輸出數(shù)據(jù),data_combine 是4 路并行輸出數(shù)據(jù)合并的1 路串行輸出數(shù)據(jù)。輸入數(shù)據(jù)經(jīng)過(guò)級(jí)聯(lián)半帶插值濾波器后,輸出數(shù)據(jù)的速率變?yōu)檩斎霐?shù)據(jù)的16倍,證明了生成的級(jí)聯(lián)半帶插值濾波器功能的正確性。

圖6 級(jí)聯(lián)半帶插值濾波器仿真時(shí)序

4.1.2 自動(dòng)生成級(jí)聯(lián)半帶抽取濾波器

級(jí)聯(lián)半帶抽取濾波器的設(shè)計(jì)需求參數(shù)如表2 所示,它包括4 級(jí)單級(jí)的半帶抽取濾波器,每級(jí)都能夠?qū)崿F(xiàn)2 倍抽取,總體的級(jí)聯(lián)半帶抽取濾波器能夠?qū)崿F(xiàn)16、8、4、2 倍抽取。當(dāng)4 級(jí)全部使能時(shí),實(shí)現(xiàn)16 倍抽取;當(dāng)使能后3 級(jí)時(shí),實(shí)現(xiàn)8 倍抽??;當(dāng)使能后2 級(jí)時(shí),實(shí)現(xiàn)4 倍抽??;當(dāng)只使能第4 級(jí)時(shí),實(shí)現(xiàn)2 倍抽取。

表2 級(jí)聯(lián)半帶抽取濾波器的設(shè)計(jì)需求參數(shù)

配置級(jí)聯(lián)半帶抽取濾波器的抽取因子為16,仿真時(shí)序如圖7 所示,din_1、din_2、din_3 和din_4 是4 路并行的16 位輸入數(shù)據(jù),dout_1 和dout_2 是2 路并行的16 位輸出數(shù)據(jù),data_combine 是2 路并行輸出數(shù)據(jù)合并的1 路串行輸出數(shù)據(jù)。輸入數(shù)據(jù)經(jīng)過(guò)級(jí)聯(lián)半帶抽取濾波器后,輸出數(shù)據(jù)的速率變?yōu)檩斎霐?shù)據(jù)的1/16,證明了生成的級(jí)聯(lián)半帶抽取濾波器功能的正確性。

圖7 級(jí)聯(lián)半帶抽取濾波器仿真時(shí)序

4.2 電路綜合

為了進(jìn)一步證明該方法的有效性,將自動(dòng)生成的RTL 代碼和手動(dòng)設(shè)計(jì)的RTL 代碼進(jìn)行對(duì)比分析?;赥SMC 65 nm 工藝,使用Synopsys 公司的DC 工具進(jìn)行電路綜合,對(duì)比分析在相同的條件下,兩者的寄存器需求、關(guān)鍵路徑延遲、面積及功耗等指標(biāo)。級(jí)聯(lián)半帶插值濾波器電路和級(jí)聯(lián)半帶抽取濾波器電路綜合對(duì)比結(jié)果分別如表3 和表4 所示。

表3 級(jí)聯(lián)半帶插值濾波器電路綜合對(duì)比結(jié)果

表4 級(jí)聯(lián)半帶抽取濾波器電路綜合對(duì)比結(jié)果

電路綜合對(duì)比結(jié)果表明,在TSMC 65 nm 工藝下,最高工作頻率為1 000 MHz 時(shí),自動(dòng)生成的級(jí)聯(lián)半帶插值濾波器的關(guān)鍵路徑延遲為3.962 ns,面積為80 338 μm2;手動(dòng)設(shè)計(jì)的級(jí)聯(lián)半帶插值濾波器的關(guān)鍵路徑延遲為3.963 ns,面積為80 421 μm2。自動(dòng)生成的級(jí)聯(lián)半帶抽取濾波器的關(guān)鍵路徑延遲為3.964 ns,面積為65 938 μm2;手動(dòng)設(shè)計(jì)的級(jí)聯(lián)半帶抽取濾波器的關(guān)鍵路徑延遲為3.964 ns,面積為65 963 μm2。自動(dòng)生成的級(jí)聯(lián)半帶濾波器RTL 的時(shí)序和資源消耗與手動(dòng)設(shè)計(jì)的RTL 代碼基本一致,證明了本文基于Python的級(jí)聯(lián)半帶濾波器RTL 自動(dòng)生成方法的有效性。

5 結(jié)論

本文基于Python 編程語(yǔ)言,結(jié)合級(jí)聯(lián)半帶濾波器和并行流水線結(jié)構(gòu)的特點(diǎn),提出了一種級(jí)聯(lián)半帶濾波器RTL 自動(dòng)生成方法。試驗(yàn)結(jié)果證明了本文提出的方法能夠自動(dòng)生成任意N 級(jí)級(jí)聯(lián)的半帶插值濾波器或者半帶抽取濾波器,生成的濾波器不僅能夠?qū)崿F(xiàn)2N倍的插值或者抽取,而且還含有內(nèi)建自測(cè)單元,能對(duì)級(jí)聯(lián)半帶濾波器進(jìn)行斜坡和脈沖測(cè)試,實(shí)現(xiàn)了可測(cè)試性設(shè)計(jì),提升了設(shè)計(jì)效率,縮短了開(kāi)發(fā)周期。

現(xiàn)有的級(jí)聯(lián)半帶插值濾波器或級(jí)聯(lián)半帶抽取濾波器都是固定的結(jié)構(gòu),而針對(duì)不同應(yīng)用需求,基于性能參數(shù)智能評(píng)估,自動(dòng)生成不同結(jié)構(gòu)的級(jí)聯(lián)半帶濾波器將是今后優(yōu)化的重點(diǎn)。

猜你喜歡
級(jí)聯(lián)插值時(shí)鐘
別樣的“時(shí)鐘”
古代的時(shí)鐘
基于Sinc插值與相關(guān)譜的縱橫波速度比掃描方法
有趣的時(shí)鐘
級(jí)聯(lián)LDPC碼的STBC-OFDM系統(tǒng)
時(shí)鐘會(huì)開(kāi)“花”
基于級(jí)聯(lián)MUSIC的面陣中的二維DOA估計(jì)算法
一種改進(jìn)FFT多譜線插值諧波分析方法
基于四項(xiàng)最低旁瓣Nuttall窗的插值FFT諧波分析
LCL濾波器在6kV級(jí)聯(lián)STATCOM中的應(yīng)用