一種高階音頻均衡濾波器的設(shè)計實現(xiàn)
2.2 濾波器系數(shù)存儲模塊
濾波器系數(shù)存儲模塊和輸入序列緩存模塊相對應(yīng),采用雙口RAM模塊實現(xiàn),共有4個256深度的雙口RAM模塊,如圖3所示。
圖3 濾波器系數(shù)存儲模塊實現(xiàn)框圖
4個子塊使用相同的輸入數(shù)據(jù)線,通過系數(shù)寫地址的譯碼,生成各子塊的寫使能’wen1~wen4和寫地址h_addr,控制輸入的系數(shù)按照順序依次存入到RAM中。系數(shù)的讀地址h_addr由控制模塊生成,4個子塊共用一個讀地址,輸出與數(shù)據(jù)相對應(yīng)的系數(shù)h1~h4到乘累加模塊,進(jìn)行乘累加運算。
2.3 控制模塊
控制模塊產(chǎn)生輸入序列緩存模塊的讀寫地址、使能信號以及濾波系數(shù)存儲模塊的讀地址、使能信號,并對乘累加運算進(jìn)行控制。
輸入序列需要在緩存模塊中反復(fù)移位輸出進(jìn)行運算,每256個時鐘周期輸入1個數(shù),輸入序列的寫地址必須滯后讀地址一個時鐘周期,才能保證數(shù)據(jù)的連續(xù)、不丟失。這樣新寫入的數(shù)據(jù)不在固定的位置,就要求讀地址也不是單純的累加關(guān)系。以每個RAM塊深度等于4為例研究讀寫地址的關(guān)系,如圖4所示。
圖4 每個RAM塊深度為4時讀寫順序
可見此時輸入序列的讀地址順序如圖5所示。
圖5 每個RAM塊深度為4時讀地址
由此類推可得實際輸入序列緩存模塊的讀地址如圖6所示。
圖6 輸入序列緩存模塊讀地址
整個控制模塊的實現(xiàn)如圖7所示。主計數(shù)器整體計數(shù),每256個時鐘周期,地址產(chǎn)生模塊就把計數(shù)器的計數(shù)值整體加1,作為輸人序列的讀地址raddr輸出,實現(xiàn)了圖6所示的地址順序。寫地址waddr由讀地址raddr經(jīng)延時一個時鐘周期獲得。由于輸入序列是按時間順序輸出的,故濾波系數(shù)只要從存儲陣列中也相應(yīng)地順序輸出就可以了,將主計數(shù)器的計數(shù)值直接引出作為濾波系數(shù)陣列的讀地址h_addr。
圖7 整個控制模塊的實現(xiàn)
主計數(shù)器的輸出經(jīng)過譯碼電路后,輸出數(shù)據(jù)的低速采樣時鐘sa_clk,用來同步輸入序列。還輸出輸入序列的寫使能wren,每256個時鐘周期使能一次,寫一次數(shù)據(jù)。
評論