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