IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アミクロ セミコンダクター カンパニー リミテッドの特許一覧

特許7344365デジタル回路で実現される補間フィルタシステム
<>
  • 特許-デジタル回路で実現される補間フィルタシステム 図1
  • 特許-デジタル回路で実現される補間フィルタシステム 図2
  • 特許-デジタル回路で実現される補間フィルタシステム 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-05
(45)【発行日】2023-09-13
(54)【発明の名称】デジタル回路で実現される補間フィルタシステム
(51)【国際特許分類】
   H03H 17/00 20060101AFI20230906BHJP
   H03H 17/02 20060101ALI20230906BHJP
【FI】
H03H17/00 621E
H03H17/02 601G
【請求項の数】 7
(21)【出願番号】P 2022502178
(86)(22)【出願日】2019-11-10
(65)【公表番号】
(43)【公表日】2022-09-26
(86)【国際出願番号】 CN2019116930
(87)【国際公開番号】W WO2021056711
(87)【国際公開日】2021-04-01
【審査請求日】2022-01-12
(31)【優先権主張番号】201910925674.5
(32)【優先日】2019-09-27
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520347351
【氏名又は名称】珠海一微半導体股▲ふん▼有限公司
【氏名又は名称原語表記】AMICRO SEMICONDUCTOR CO.,LTD.
【住所又は居所原語表記】Room 2706,3000 Huandao East Road,Hengqin New District,Zhuhai,Guangdong 519000(CN)
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】ワン,リーリー
【審査官】石田 昌敏
(56)【参考文献】
【文献】米国特許第05592403(US,A)
【文献】特開2000-312187(JP,A)
【文献】特開平10-257113(JP,A)
【文献】米国特許出願公開第2011/0231463(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03H 17/00-17/08
G06F 17/00-17/18
(57)【特許請求の範囲】
【請求項1】
デジタル回路で実現される補間フィルタシステムであって、
補間フィルタリング演算コントローラと、カスケードドライブモジュールと、中間結果キャッシュRAMと、フィルタリング係数記憶ROMと、を含み、補間フィルタリング演算コントローラは、カスケードされたフィルタ演算モジュールと、1つのメインステートマシンと、を含み、カスケードされたフィルタ演算モジュールは、複数のフィルタ演算モジュールが互いに直列に接続されたものであり、
中間結果キャッシュRAMは、補間フィルタシステムの外部から入力されたデータと、補間フィルタリング演算コントローラの内部に含まれる各段のフィルタ演算モジュールにより計算されて出力された中間結果と、を記憶し、
フィルタリング係数記憶ROMは、補間フィルタリング演算コントローラの内部に含まれる各段のフィルタ演算モジュールによる計算に必要なフィルタリング係数を記憶し、
カスケードドライブモジュールは、カウンタを含み、前記カウンタは、補間フィルタリング演算コントローラが、中間結果キャッシュRAM及びフィルタリング係数記憶ROMを読み取り操作するように制御するとともに、補間フィルタリング演算コントローラが、中間結果キャッシュRAMを書き込み操作するように制御し、
補間フィルタリング演算コントローラでは、カスケードドライブモジュールによって出力されたカウントリズムによりドライブされて、メインステートマシンが中間結果キャッシュRAM又は外部から直接入力されたデータを選択して、カスケードされたフィルタ演算モジュールに伝送して加算演算を行うとともに、メインステートマシンがフィルタリング係数記憶ROMのフィルタリング係数を選択して、カスケードされたフィルタ演算モジュールに伝送して乗算演算を行、カスケードされたフィルタ演算モジュール、補間フィルタリング演算を実現するように構成れ、
前記補間フィルタリング演算コントローラは、カスケードされたn個のフィルタ演算モジュールと、対応するサブステートマシンと、を含み、それぞれ、対応するカスケードされたハーフバンドフィルタに相当し、各段のハーフバンドフィルタの出力結果は、奇数添え字出力と偶数添え字出力とに分けられ、前記カスケードドライブモジュールによって出力されたカウントリズムのドライブで、各段のハーフバンドフィルタにより順次出力されるものであり、偶数添え字が0から始まり、奇数添え字が1から始まり、出力される順番に従って昇順でマークされ、
前記メインステートマシンはn個のサブステートマシンを含み、
前記カスケードドライブモジュールがドライブして、メインステートマシンと協力して、
現在段のハーフバンドフィルタの作動を完了し、保存する偶数添え字データを前記中間結果キャッシュRAMの対応するアドレスユニットに記憶し、保存する奇数添え字出力のデータを現在段のハーフバンドフィルタの内部の対応するレジスタに記憶する第1のステップと、現在段のハーフバンドフィルタの全ての出力結果を、次の段のハーフバンドフィルタに、直接的又は内部の対応するレジスタを介して間接的に出力し、次に、次の段のハーフバンドフィルタの保存する偶数添え字出力のデータを、前記中間結果キャッシュRAMの対応するアドレスユニットに記憶し、保存する奇数添え字出力のデータを次の段のハーフバンドフィルタの内部の対応するレジスタに記憶する第2のステップと、の機能を実現し、
n段目のハーフバンドフィルタが順次演算した2 n 個(nは1よりも大きい整数である)の結果が、前記補間フィルタリング演算コントローラの補間結果として、直接的又は内部の対応するレジスタを介して間接的に前記中間結果キャッシュRAMの対応するアドレスユニットに出力されるまで、第1のステップと第2のステップを繰り返して反復して直列演算を行う、ことを特徴とする補間フィルタシステム。
【請求項2】
nは3に設定され、前記カスケードされたフィルタ演算モジュールは、1段目のFIR演算モジュールと、2段目のFIR演算モジュールと、及び3段目のFIR演算モジュールとを含み、前記メインステートマシンは、1段目のFIRサブステートマシンと、2段目のFIRサブステートマシンと、3段目のFIRサブステートマシンと、を含み、前記補間フィルタリング演算コントローラは、第1のレジスタと、第2のレジスタと、第3のレジスタと、第4のレジスタと、第5のレジスタと、第6のレジスタと、第7のレジスタと、をさらに含み、前記中間結果キャッシュRAMは、具体的には、1段目のFIRのSRAMと、2段目のFIRのSRAMと、3段目のFIRのSRAMと、最終結果SRAMと、を含み、
各段のフィルタ演算モジュールの出力は、全て奇数添え字出力と偶数添え字出力とに分けられ、前記カスケードドライブモジュールによって出力されたカウントリズムによりドライブされて、各段のフィルタ演算モジュールにより出力される順番に応じて決定され、偶数添え字が0から始まり、奇数添え字が1から始まり、出力される順番に従って昇順でマークされ、
前記カスケードドライブモジュールがメインステートマシンによるドライブ制御と協力する前提で、
前記補間フィルタシステムの外部から入力された補間対象データ(x0)は、1段目のFIR演算モジュールの1つのデータ入力端に、直接的又は1段目のFIRのSRAMを介して間接的に持続的に入力され、1段目のFIRサブステートマシンによるドライブ・選択作用下で、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、1段目のFIR演算モジュールは外部から入力された補間対象データを補間処理し、1段目のFIR演算モジュールの第1の出力結果(y1)は、第1のレジスタに出力され、1段目のFIR演算モジュールの第0の出力結果(y0)は、2段目のFIRのSRAMに出力され、1段目のFIR演算モジュールの第1の出力結果(y1)は、奇数添え字出力、1段目のFIR演算モジュールの第0の出力結果(y0)は、偶数添え字出力とされ、
2段目のFIRサブステートマシンによるドライブ・選択作用下で、2段目のFIR演算モジュールは、1段目のFIR演算モジュールの第0の出力結果(y0)に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、2段目のFIR演算モジュールの第0の出力結果(z0)と2段目のFIR演算モジュールの第1の出力結果(z1)を演算して生成し、2段目のFIR演算モジュールの第0の出力結果(z0)は、3段目のFIRのSRAMに出力され、2段目のFIR演算モジュールの第1の出力結果(z1)は、第2のレジスタに出力され、2段目のFIR演算モジュールの第1の出力結果(z1)は、奇数添え字出力、2段目のFIR演算モジュールの第0の出力結果(z0)は、偶数添え字出力とされ、
3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第0の出力結果(z0)に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第0の出力結果(p0)と3段目のFIR演算モジュールの第1の出力結果(p1)を演算して生成し、3段目のFIR演算モジュールの第0の出力結果(p0)は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第1の出力結果(p1)は、第3のレジスタに出力され、第3のレジスタは、さらに3段目のFIR演算モジュールの第1の出力結果(p1)を最終結果SRAMに出力し、3段目のFIR演算モジュールの第1の出力結果(p1)は、奇数添え字出力、3段目のFIR演算モジュールの第0の出力結果(p0)は、偶数添え字出力とされ、
第2のレジスタは、2段目のFIR演算モジュールの第1の出力結果(z1)を3段目のFIR演算モジュールに出力し、3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第1の出力結果(z1)に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第2の出力結果(p2)と3段目のFIR演算モジュールの第3の出力結果(p3)を演算して生成し、3段目のFIR演算モジュールの第2の出力結果(p2)は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第3の出力結果(p3)は、第4のレジスタに出力され、第4のレジスタは、さらに3段目のFIR演算モジュールの第3の出力結果(p3)を最終結果SRAMに出力し、3段目のFIR演算モジュールの第3の出力結果(p3)は、奇数添え字出力、3段目のFIR演算モジュールの第2の出力結果(p2)は、偶数添え字出力とされ、
第1のレジスタは、1段目のFIR演算モジュールの第1の出力結果(y1)を2段目のFIR演算モジュールに出力し、2段目のFIRサブステートマシンによるドライブ・選択作用下で、2段目のFIR演算モジュールは、1段目のFIR演算モジュールの第1の出力結果(y1)に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、2段目のFIR演算モジュールの第2の出力結果(z2)と2段目のFIR演算モジュールの第3の出力結果(z3)を演算して生成し、2段目のFIR演算モジュールの第2の出力結果(z2)は、3段目のFIRのSRAMに出力され、2段目のFIR演算モジュールの第3の出力結果(z3)は、第5のレジスタに出力され、2段目のFIR演算モジュールの第3の出力結果(z3)は、奇数添え字出力、2段目のFIR演算モジュールの第2の出力結果(z2)は、偶数添え字出力とされ、
3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第2の出力結果(z2)に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第4の出力結果(p4)と3段目のFIR演算モジュールの第5の出力結果(p5)を演算して生成し、3段目のFIR演算モジュールの第4の出力結果(p4)は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第5の出力結果(p5)は、第6のレジスタに出力され、第6のレジスタは、さらに3段目のFIR演算モジュールの第5の出力結果(p5)を最終結果SRAMに出力し、3段目のFIR演算モジュールの第5の出力結果(p5)は、奇数添え字出力、3段目のFIR演算モジュールの第4の出力結果(p4)は、偶数添え字出力とされ、
第5のレジスタは、2段目のFIR演算モジュールの第3の出力結果(z3)を3段目のFIR演算モジュールに出力し、3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第3の出力結果(z3)に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第6の出力結果(p6)と3段目のFIR演算モジュールの第7の出力結果(p7)を演算して生成し、3段目のFIR演算モジュールの第6の出力結果(p6)は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第7の出力結果(p7)は、第7のレジスタに出力され、第7のレジスタは、さらに3段目のFIR演算モジュールの第7の出力結果(p7)を最終結果SRAMに出力し、3段目のFIR演算モジュールの第7の出力結果(p7)は、奇数添え字出力、3段目のFIR演算モジュールの第6の出力結果(p6)は、偶数添え字出力とされる、ことを特徴とする請求項に記載の補間フィルタシステム。
【請求項3】
前記補間フィルタシステムの外部から入力された補間対象データが1つ以上である場合、前記メインステートマシンは、初期状態から全ての状態変換プロセスを改めて実行することで、前記n段目のハーフバンドフィルタが順次生成した新しい2n個の結果を前記補間フィルタリング演算コントローラから新しく出力された補間結果として、直接的又は内部の対応するレジスタを介して間接的に前記中間結果キャッシュRAMの対応するアドレスユニットに出力する、ことを特徴とする請求項に記載の補間フィルタシステム。
【請求項4】
前記カスケードドライブモジュールは、書き込みロジック制御サブモジュールと読み取りロジック制御サブモジュールとを含み、書き込みロジック制御サブモジュールと読み取りロジック制御サブモジュールとは、前記補間フィルタシステムのドライブクロックソースとしてのカウンタを共用し、書き込みロジック制御サブモジュールは、カウントリズムに基づいて、前記中間結果キャッシュRAMの書き込み操作アドレスを制御し、読み取りロジック制御サブモジュールは、カウントリズムに基づいて、前記中間結果キャッシュRAMの読み取り操作アドレス及び前記フィルタリング係数記憶ROMの読み取り操作アドレスを制御し、
書き込みロジック制御サブモジュール及び読み取りロジック制御サブモジュールは、対応する前記サブステートマシンをドライブすることで、前記補間フィルタリング演算コントローラの内部のカスケードされたフィルタ演算モジュールがタイミングシーケンスに従って補間演算操作を実行するように制御する、ことを特徴とする請求項に記載の補間フィルタシステム。
【請求項5】
前記カスケードされたn個のフィルタ演算モジュールのうちの各段のFIR演算モジュールは、読み取り終了確認サブモジュールと、書き込み終了確認サブモジュールと、積和演算サブモジュールとを含み、
書き込み終了確認サブモジュールは、書き込みロジック制御サブモジュールによって出力されたカウントリズムに基づいて、前の段のFIR演算モジュールによって出力された、現在段のFIR演算モジュール内で演算すべきデータを、前記中間結果キャッシュRAMの対応するアドレス区間に書き込み、
読み取り終了確認サブモジュールは、読み取りロジック制御サブモジュールによって出力されたカウントリズムに基づいて、前記中間結果キャッシュRAMの対応するアドレス区間における、現在段のFIR演算モジュール内で演算すべきデータを読み取ることを積和演算サブモジュールに任せ、
積和演算サブモジュールは、乗算器と加算器とからなる直列シフト加算構造であり、書き込み終了確認サブモジュール及び読み取り終了確認サブモジュールの両方により制御されて、前記中間結果キャッシュRAMの対応するアドレス区間における、現在段のFIR演算モジュール内で演算すべきデータを選択して、加算器に伝送して加算演算を行うとともに、前記フィルタリング係数記憶ROMのフィルタリング係数を乗数として選択して乗算器に伝送して乗算演算を行い、加算器に伝送されたデータ又は加算演算により得られた中間加算値は、乗算器に伝送される被乗数とされる、ことを特徴とする請求項に記載の補間フィルタシステム。
【請求項6】
前記カスケードされたハーフバンドフィルタのうちの各段のハーフバンドフィルタは、異なる次数に設定され、前記フィルタリング係数記憶ROMのフィルタリング係数にゼロ値が存在し、ゼロ値の数が(各段のハーフバンドフィルタの次数-1)/2-1に等しく、
ROMのフィルタリング係数においてセロ値が存在するアドレス区間の設定、及び前記カスケードされたn個のフィルタ演算モジュールがフィルタリング係数のゼロ値を読み取るタイミングシーケンスにより、各段の前記フィルタ演算モジュールの前記奇数添え字出力が、対応する段の前記フィルタ演算モジュールの入力信号の遅延処理結果に相当することを決定する、ことを特徴とする請求項に記載の補間フィルタシステム。
【請求項7】
前記フィルタリング係数は、固定小数点化によって処理されて、16ビットの2進数になる、ことを特徴とする請求項に記載の補間フィルタシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Sigma-delta音声DAC用の補間フィルタに関し、具体的には、デジタル回路で実現される補間フィルタシステムに関する。
【背景技術】
【0002】
補間フィルタは、入力信号のサンプリング周波数を向上させ、バンド範囲内のノイズをフィルタリングするなどを目的として、送信機、音声DACなどのアップコンバーションシステムに幅広く適用されている。補間フィルタは、アナログ回路又はデジタル回路で実現されてもよく、デジタル回路で実現される場合、アナログ回路に生じた電圧、温度ドリフトやノイズなどの問題を克服することができ、正確性が高く、安定した線形位相を有する。
【0003】
しかし、従来の補間フィルタの制御論理回路及び演算論理回路は、ほとんど並行ロジック構造であり、大きいレジスタアレイ及び複雑なパイプラインコントローラを含み、デジタル回路の段数の増加に伴って、発生する遅延がますます大きくなり、回路全体の設計が複雑になり、回路が作動する際作動故障が発生しやすく、回路が属するチップが占有する面積が大きい。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記技術的欠点を解決するために、本発明は、ステートマシンを用いて、カスケードされたFIR補間フィルタをモデル化することで、積和演算を実現し、構成が簡単であり、システムモジュール全体が1個のクロック源を用い、非同期クロック信号に係らず、回路がシリアル構造を用い、ステートマシンを用いることで、システム全体がさらに最適化された空間を有する。具体的な技術案は、以下のとおりである。
【課題を解決するための手段】
【0005】
デジタル回路で実現される補間フィルタシステムであって、補間フィルタリング演算コントローラと、カスケードドライブモジュールと、中間結果キャッシュRAMと、フィルタリング係数記憶ROMとを含み、補間フィルタリング演算コントローラは、カスケードされたフィルタ演算モジュールと、対応するメインステートマシンとを含み、対応して、中間結果キャッシュRAMは、カスケードされたRAMを含み、中間結果キャッシュRAMは、補間フィルタシステムの外部から入力されたデータと、補間フィルタリング演算コントローラの内部に含まれる各段のフィルタ演算モジュールにより計算された中間結果と、を記憶し、フィルタリング係数記憶ROMは、補間フィルタリング演算コントローラの内部に含まれる各段のフィルタ演算モジュールによる計算に必要なフィルタリング係数を記憶し、カスケードドライブモジュールは、補間フィルタリング演算コントローラが中間結果キャッシュRAM及びフィルタリング係数記憶ROMを読み取り・書き込みするように制御するためのカウンタを含み、補間フィルタリング演算コントローラは、カスケードドライブモジュールによって出力されたカウントリズムによりドライブされて、メインステートマシンが中間結果キャッシュRAM又は外部から直接入力されたデータを選択して、カスケードされたフィルタ演算モジュールに伝送して加算演算を行うとともに、メインステートマシンがフィルタリング係数記憶ROMのフィルタリング係数を選択して、カスケードされたフィルタ演算モジュールに伝送して乗算演算を行うように制御し、カスケードされたフィルタ演算モジュールにより処理された後に、補間フィルタリングの目的が実現される。
【0006】
補間フィルタシステムは、従来技術に比べて、カスケード構造の補間演算システムを提供し、ステートマシンロジックに基づいて、積和演算及び異なる段の演算モジュールの間のジャンプを実現し、制御しやすく、性能が一定の範囲内において改善され、柔軟性が高い。
【0007】
さらに、前記補間フィルタリング演算コントローラは、カスケードされたn個のフィルタ演算モジュールと、対応するサブステートマシンを含み、それぞれ、対応するカスケードされたハーフバンドフィルタに相当し、各段のハーフバンドフィルタの出力結果は、全て、奇数添え字出力と偶数添え字出力とに分けられ、前記カスケードドライブモジュールによって出力されたカウントリズムのドライブで、各段のハーフバンドフィルタにより順次出力されるものであり、偶数添え字が0から始まり、奇数添え字が1から始まり、出力される順番に従って昇順でマークされ、前記メインステートマシンは、n個のサブステートマシンを含み、前記カスケードドライブモジュールがドライブして、メインステートマシンと協力して、現在段のハーフバンドフィルタの作動を完了し、保存すべき偶数添え字のデータを前記中間結果キャッシュRAMの対応するアドレスユニットに記憶し、保存すべき奇数添え字出力のデータを現在段のハーフバンドフィルタの内部の対応するレジスタに記憶する第1のステップと、現在段のハーフバンドフィルタの全ての出力結果を、次の段のハーフバンドフィルタに、直接的又は間接的に内部の対応するレジスタを介して出力し、次に、次の段のハーフバンドフィルタに保存すべき偶数添え字出力のデータを前記中間結果キャッシュRAMの対応するアドレスユニットに記憶し、保存すべき奇数添え字出力のデータを次の段のハーフバンドフィルタの内部の対応するレジスタに記憶する第2のステップとの機能を実現し、n段目のハーフバンドフィルタが順次演算した2n個(nは1以上の整数である)の結果が、前記補間フィルタリング演算コントローラの補間結果として、直接的又は内部の対応するレジスタを介して間接的に前記中間結果キャッシュRAMの対応するアドレスユニットに出力されるまで、第1のステップと第2のステップを繰り返して反復して直列演算を行う。
【0008】
該技術案は、従来技術に比べて、ステートマシンに基づいて、カスケードされたハーフバンドフィルタの構造を実現し、信号のサンプリングレートを徐々に向上させ、また、各段のハーフバンドフィルタを奇数添え字出力ブランチと偶数添え字出力ブランチとに分けることで、各段のハーフバンドフィルタを現在の補間出力の数にマッチングしたサブフィルタとして多重化し、ハードウェアリソースを節約する。
【0009】
さらに、nは3に設定され、前記カスケードされたフィルタ演算モジュールは、1段目のFIR演算モジュールと、2段目のFIR演算モジュールと、及び3段目のFIR演算モジュールとを含み、前記メインステートマシンは、1段目のFIRサブステートマシンと、2段目のFIRサブステートマシンと、及び3段目のFIRサブステートマシンとを含み、前記補間フィルタリング演算コントローラは、第1のレジスタと、第2のレジスタと、第3のレジスタと、第4のレジスタと、第5のレジスタと、第6のレジスタと、及び第7のレジスタとをさらに含み、前記中間結果キャッシュRAMは、具体的には、1段目のFIRのSRAMと、2段目のFIRのSRAMと、3段目のFIRのSRAMと、及び最終結果SRAMとを含み、各段のフィルタ演算モジュールの出力は、全て、奇数添え字出力と偶数添え字出力とに分けられ、前記カスケードドライブモジュールによって出力されたカウントリズムのドライブで、各段のフィルタ演算モジュールにより出力される順番に応じて決定され、偶数添え字が0から始まり、奇数添え字が1から始まり、出力される順番に従って昇順でマークされ、前記カスケードドライブモジュールは、メインステートマシンによるドライブ制御と協力する前提で、前記補間フィルタシステムの外部から入力された補間対象データx0は、1段目のFIR演算モジュールの1つのデータ入力端に、直接的又は1段目のFIRのSRAMを介して間接的に持続的に入力され、1段目のFIRサブステートマシンによるドライブ制御作用下で、1段目のFIR演算モジュールは、外部から入力された補間対象データを補間処理し、1段目のFIR演算モジュールの第1の出力結果y1は、第1のレジスタに出力され、1段目のFIR演算モジュールの第0の出力結果y0は、2段目のFIRのSRAMに出力され、第1のレジスタの出力端が2段目のFIRのSRAMの入力端に接続され、1段目のFIR演算モジュールの第1の出力結果y1は、奇数添え字出力、1段目のFIR演算モジュールの第0の出力結果y0は、偶数添え字出力とされ、2段目のFIRサブステートマシンによるドライブ制御作用下で、2段目のFIR演算モジュールは、1段目のFIR演算モジュールの第0の出力結果y0に基づいて、2段目のFIR演算モジュールの第0の出力結果z0及び2段目のFIR演算モジュールの第1の出力結果z1を演算して生成し、2段目のFIR演算モジュールの第0の出力結果z0は、3段目のFIRのSRAMに出力され、2段目のFIR演算モジュールの第1の出力結果z1は、第2のレジスタに出力され、2段目のFIR演算モジュールの第1の出力結果z1は、奇数添え字出力、2段目のFIR演算モジュールの第0の出力結果z0は、偶数添え字出力とされ、3段目のFIRサブステートマシンによるドライブ制御作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第0の出力結果z0に基づいて、3段目のFIR演算モジュールの第0の出力結果p0及び3段目のFIR演算モジュールの第1の出力結果p1を演算して生成し、3段目のFIR演算モジュールの第0の出力結果p0は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第1の出力結果p1は、第3のレジスタに出力され、第3のレジスタは、3段目のFIR演算モジュールの第1の出力結果p1を最終結果SRAMに出力し、3段目のFIR演算モジュールの第1の出力結果p1は、奇数添え字出力、3段目のFIR演算モジュールの第0の出力結果p0は、偶数添え字出力とされ、第2のレジスタは、2段目のFIR演算モジュールの第1の出力結果z1を3段目のFIR演算モジュールに出力し、3段目のFIRサブステートマシンによるドライブ制御作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第1の出力結果z1に基づいて、3段目のFIR演算モジュールの第2の出力結果p2及び3段目のFIR演算モジュールの第3の出力結果p3を演算して生成し、3段目のFIR演算モジュールの第2の出力結果p2は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第3の出力結果p3は、第4のレジスタに出力され、第4のレジスタは、3段目のFIR演算モジュールの第3の出力結果p3を最終結果SRAMに出力し、3段目のFIR演算モジュールの第3の出力結果p3は、奇数添え字出力、3段目のFIR演算モジュールの第2の出力結果p2は、偶数添え字出力とされ、第1のレジスタは、1段目のFIR演算モジュールの第1の出力結果y1を2段目のFIR演算モジュールに出力し、2段目のFIRサブステートマシンによるドライブ制御作用下で、2段目のFIR演算モジュールは、1段目のFIR演算モジュールの第1の出力結果y1に基づいて、2段目のFIR演算モジュールの第2の出力結果z2及び2段目のFIR演算モジュールの第3の出力結果z3を演算して生成し、2段目のFIR演算モジュールの第2の出力結果z2を3段目のFIRのSRAMに出力し、2段目のFIR演算モジュールの第3の出力結果z3は、第5のレジスタに出力され、2段目のFIR演算モジュールの第3の出力結果z3は、奇数添え字出力、2段目のFIR演算モジュールの第2の出力結果z2は、偶数添え字出力とされ、3段目のFIRサブステートマシンによるドライブ制御作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第2の出力結果z2に基づいて、3段目のFIR演算モジュールの第4の出力結果p4及び3段目のFIR演算モジュールの第5の出力結果p5を演算して生成し、3段目のFIR演算モジュールの第4の出力結果p4は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第5の出力結果p5は、第6のレジスタに出力され、第6のレジスタは、3段目のFIR演算モジュールの第5の出力結果p5を最終結果SRAMに出力し、3段目のFIR演算モジュールの第5の出力結果p5は、奇数添え字出力、3段目のFIR演算モジュールの第4の出力結果p4は、偶数添え字出力とされ、第5のレジスタは、2段目のFIR演算モジュールの第3の出力結果z3を3段目のFIR演算モジュールに出力し、3段目のFIRサブステートマシンによるドライブ制御作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第3の出力結果z3に基づいて、3段目のFIR演算モジュールの第6の出力結果p6及び3段目のFIR演算モジュールの第7の出力結果p7を演算して生成し、3段目のFIR演算モジュールの第6の出力結果p6は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第7の出力結果p7は、第7のレジスタに出力され、第7のレジスタは、3段目のFIR演算モジュールの第7の出力結果p7を最終結果SRAMに出力し、3段目のFIR演算モジュールの第7の出力結果p7は、奇数添え字出力、3段目のFIR演算モジュールの第6の出力結果p6は、偶数添え字出力とされる。
【0010】
該技術案は、従来技術に比べて、3つのサブステートマシンを用いて、三段のFIR演算モジュールの読み取り・書き込み及び積和演算を対応して制御し、入力された補間対象データx0に対して、直列な8倍補間操作を実行し、対応するステートマシンの制御で、FIR演算モジュール及び前記中間結果キャッシュRAMを選択的に多重化することで、不必要なレジスタリソース及びロジック制御ユニットを回避し、ハードウェアリソースを節約し、チップ面積を減少させる。
【0011】
さらに、前記補間フィルタシステムの外部から入力された補間対象データが1つ以上である場合、前記メインステートマシンは、初期状態から全ての状態変換プロセスを改めて実行することで、前記n段目のハーフバンドフィルタが順次生成した新しい2n個の結果を前記補間フィルタリング演算コントローラから新しく出力された補間結果として、直接的又は内部の対応するレジスタを介して間接的に前記中間結果キャッシュRAMの対応するアドレスユニットに出力する。前記補間フィルタシステム処理データの有効性を向上させ、システムのリアルタイム性を向上させる。
【0012】
さらに、前記カスケードドライブモジュールは、書き込みロジック制御サブモジュールと読み取りロジック制御サブモジュールとを含み、書き込みロジック制御サブモジュール及び読み取りロジック制御サブモジュールは、前記補間フィルタシステムのドライブクロック源としてのカウンタを共有し、書き込みロジック制御サブモジュールは、カウントリズムに基づいて、前記中間結果キャッシュRAMの書き込み操作アドレス及び前記フィルタリング係数記憶ROMの書き込み操作アドレスを制御し、読み取りロジック制御サブモジュールは、カウントリズムに基づいて、前記中間結果キャッシュRAMの読み取り操作アドレス及び前記フィルタリング係数記憶ROMの読み取り操作アドレスを制御し、書き込みロジック制御サブモジュール及び読み取りロジック制御サブモジュールは、対応する前記メインステートマシンをドライブすることで、前記補間フィルタリング演算コントローラの内部のカスケードされたフィルタ演算モジュールが補間演算操作をタイミングシーケンスに従って実行するように制御する。
【0013】
該技術案は、ステートマシンモデルのジャンプタイミングシーケンスを制御することに寄与し、クロック信号が1つしかないので、全体設計に、異なるクロックの非同期処理問題がなく、設計複雑度を減少させ、システム全体の性能がより安定になる。
【0014】
さらに、前記カスケードされたn個のフィルタ演算モジュールのうちの各段のFIR演算モジュールは、読み取り終了確認サブモジュールと、書き込み終了確認サブモジュールと、積和演算サブモジュールとを含み、書き込み終了確認サブモジュールは、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、前の段のFIR演算モジュールによって出力された、現在段のFIR演算モジュール内で演算すべきデータを、前記中間結果キャッシュRAMの対応するアドレス区間に書き込み、読み取り終了確認サブモジュールは、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、前記中間結果キャッシュRAMの対応するアドレス区間における、現在段のFIR演算モジュール内で演算すべきデータを読み取ることを積和演算サブモジュールに任せ、積和演算サブモジュールは、乗算器と加算器とからなる直列シフト加算構造であり、書き込み終了確認サブモジュール及び読み取り終了確認サブモジュールの両方により制御されて、前記中間結果キャッシュRAMの対応するアドレス区間における、現在段のFIR演算モジュール内で演算すべきデータを選択して、加算器に伝送して加算演算を行うとともに、前記フィルタリング係数記憶ROMのフィルタリング係数を乗数として選択して乗算器に伝送して乗算演算を行い、加算器に伝送されたデータ又は加算演算により得られた中間加算値は、乗算器に伝送される被乗数とされる。
【0015】
回路によるコードの実現の複雑度からみると、ステートマシンのカウント制御により8倍の補間直列演算を実現することは、並行、DA分散型などの構造よりもロジックが簡単であり、コードの実現及びメンテナンスが容易であり、高効率な順序制御性を有する。
【0016】
さらに、前記カスケードされたハーフバンドフィルタのうちの各段のハーフバンドフィルタは、異なる次数に設定され、前記フィルタリング係数記憶ROMのフィルタリング係数にゼロ値が存在し、ゼロ値の数が(各段のハーフバンドフィルタの次数-1)/2-1に等しく、ROMのフィルタリング係数においてセロ値が存在するアドレス区間の設定、及び前記カスケードされたn個のフィルタ演算モジュールがフィルタリング係数のゼロ値を読み取るタイミングシーケンスにより、各段の前記フィルタ演算モジュールの前記奇数添え字出力が、対応する段の前記フィルタ演算モジュールの入力信号の遅延処理結果に相当することを決定する。
【0017】
該技術案は、ハーフバンドフィルタ構造を用いて補間を実現するので、1/2の演算量が減少される。この構造では、ハーフバンドフィルタのフィルタリング係数のうち、ほぼ半分のフィルタリング係数が0であり、演算されなくてもよいため、前記フィルタリング係数記憶ROMは、非0の係数のみを記憶すればよく、従って、半分のROM空間を節約する。
【0018】
さらに、前記フィルタリング係数は、固定小数点化によって処理されて、16ビットの2進数になる。該技術案は、フィルタのパスバンドリップル及びストップバンド減衰による誤差の影響、及び占有するハードウェアリソースのコストを総合評価する。
【図面の簡単な説明】
【0019】
図1】本発明の実施例に係るデジタル回路で実現される補間フィルタシステムの実現ブロックの模式図である。
図2】本発明の実施例に係る補間フィルタリング演算コントローラの内部構造及びその外部接続構造の実現ブロックの模式図である。
図3】本発明の実施例に係るn段目のFIR演算モジュールの内部構造及びその外部接続構造の実現ブロックの模式図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施例の図面を参照しながら、本発明の実施例における技術案について明瞭にかつ完全に説明する。当然ながら、以下に説明された実施例は、本発明の一部の実施例であり、全ての実施例ではない。通常、この図面に説明されて示された本発明の実施例のユニットは、様々異なる構成で配置及び設計され得る。
【0021】
従って、以下、図面における本発明の実施例の詳細説明は、本発明の範囲を限定するためのものではなく、本発明の好ましい実施例を示すものに過ぎない。本発明の実施例に基づいて、当業者が創造的な作業を要することなく得られる他の全ての実施形態は、本発明が保護する範囲に属する。
【0022】
図1に示すように、本発明の実施例は、デジタル回路で実現される補間フィルタシステムを提供し、該補間フィルタシステムは、補間フィルタリング演算コントローラと、カスケードドライブモジュールと、中間結果キャッシュRAMと、フィルタリング係数記憶ROMとを含み、補間フィルタリング演算コントローラは、カスケードされたフィルタ演算モジュールと、対応するメインステートマシンとを含み、対応して、中間結果キャッシュRAMは、カスケードされたRAMを含み、ここで、メインステートマシンは、デジタル回路の技術分野における、回路作動状態がジャンプする論理回路であり、ハードウェア言語に基づいて実現されるものであり、ハードウェア言語は、デジタル回路の通常の実施形態であり、また、前記機能モジュールは、対応するデジタル論理回路により設計される。
【0023】
中間結果キャッシュRAMは、好ましくは、オンチップSRAMであり、補間フィルタシステムの外部から持続的に入力されたデータと、補間フィルタリング演算コントローラの内部に含まれる各段のフィルタ演算モジュールにより計算された中間加算結果とを記憶し、補間フィルタシステムの外部から入力されたデータdata_inは、本実施例では、PCMフォーマットの音声入力データ又は他の補間処理対象のデータであり、data_inは、補間フィルタリング演算コントローラに、直接入力されてもよいし、中間結果キャッシュRAMに接続され、補間フィルタリング演算コントローラに入力されて、補間操作されてもよい。
【0024】
フィルタリング係数記憶ROMは、補間フィルタリング演算コントローラの内部に含まれる各段のフィルタ演算モジュールによる計算に必要なフィルタリング係数を記憶し、カスケードドライブモジュールは、補間フィルタリング演算コントローラが中間結果キャッシュRAM及びフィルタリング係数記憶ROMを読み取り・書き込みするように制御するためのカウンタを含み、該カウンタは、アドレスカウンタ又はアドレスデコーダに相当であり、構成可能であり、適切なタイミングシーケンス条件において中間結果キャッシュRAMに制御トリガー信号ctrl_dを送信し、フィルタリング係数記憶ROMに制御トリガー信号ctrl_cを送信する。
【0025】
補間フィルタリング演算コントローラは、カスケードドライブモジュールによって出力されたカウントリズムによりドライブされ、すなわち、制御トリガー信号ctrl_d及び制御トリガー信号ctrl_cの両方により制御されて、前記メインステートマシンが、中間結果キャッシュRAM又は外部から直接入力されたデータを選択して、カスケードされたフィルタ演算モジュールに伝送して加算演算を行うとともに、メインステートマシンがフィルタリング係数記憶ROMのフィルタリング係数を選択して、カスケードされたフィルタ演算モジュールに伝送して乗算演算を行うように制御し、カスケードされたフィルタ演算モジュールで処理された後、補間フィルタリングの目的が実現され、前記カスケードされたフィルタ演算モジュールは、1つの和の値を出力し、すなわち、図1における補間フィルタリング演算コントローラの出力端のfir_outである。
【0026】
本実施例のフィルタ演算では、和=積1+積2+積3+…、積=乗数*被乗数のようにまとめることができ、ここの乗数は、フィルタリング係数記憶ROMのフィルタリング係数であり、被乗数は、タイミングシーケンス要求に従って、中間結果キャッシュRAMから選択されたデータであり(外部から直接入力されたバッファリングデータ、又は、加算中間結果であってもよいし)、補間フィルタリング演算コントローラは、外部から送信された音声データと、1回の積和演算の結果信号とを積和演算するように制御する。
【0027】
補間フィルタシステムは、従来技術に比べて、カスケード構造の補間演算システムを提供し、ステートマシンロジックに基づいて、積和演算及び異なる段の演算モジュールの間のジャンプを実現し、制御しやすく、性能が一定の範囲で改善され、柔軟性が高い。
【0028】
なお、限られた長さのパルス応答フィルタFIRは、厳密な線形位相や、奇対称、偶対称などの幅特性などの多くの特徴を持っており、FIRの線形位相特性を利用することで、FIRデジタル回路の設計安定性を確保することができ、そうではなければ、システムが安定しないと、デジタル回路の段数の増加に伴って、システムの遅延がますます長くなり、最終的に、システム全体が作動できなくなってしまうため、本発明の実施例は、線形位相、及び幅対称特性を有するFIRフィルタを用いて補間フィルタリングを実現する。
【0029】
ハーフバンドフィルタは、FIRフィルタのうちの1種であり、補間及び抽出の2種に分けられている。
【0030】
本発明の実施例は、音声再生システムにおける適用シーンに適用される補間フィルタを使用する。ハーフバンドフィルタの特徴は、1つのサンプリングポイントが入力されるたびに、ハーフバンドフィルタが2つのサンプリングポイントを出力し、ハーフバンドフィルタが2つずつの入力サンプリングポイントの間に1つの値を挿入することで、2倍補間の目的が実現されることであり、また、補間の方式は、線形補間、0挿入などの複数種あり、本発明の実施例は、直接0を挿入する方法を用いる。
【0031】
具体的には、前記補間フィルタリング演算コントローラは、カスケードされたn個のフィルタ演算モジュールと、対応するサブステートマシンを含み、それぞれ、対応してカスケードされたハーフバンドフィルタに相当し、前記メインステートマシンは、n個の前記サブステートマシンを含み、サブステートマシンもデジタルロジック制御回路である。
【0032】
前記補間フィルタリング演算コントローラには、カスケードされたn個のフィルタ演算モジュールの加算結果をキャッシュするためのレジスタがさらに設けられ、各段のハーフバンドフィルタの出力結果は、全て、奇数添え字出力と偶数添え字出力とに分けられ、前記カスケードドライブモジュールによって出力されたカウントリズムのドライブで、各段のハーフバンドフィルタにより順次出力されるものであり、偶数添え字は0から始まるが、奇数添え字は1から始まり、出力される順番に従って昇順でマークされ、例えば、時点T1に、1段目のハーフバンドフィルタがa0及びa1を演算して出力し、時点T2に、2段目のハーフバンドフィルタが1段目のハーフバンドフィルタによって出力されたa0に基づいて、b0及びb1を演算して出力し、時点T3に、3段目のハーフバンドフィルタが2段目のハーフバンドフィルタによって出力されたb0に基づいて、c0及びc1を演算して出力し、時点T4に、2段目のハーフバンドフィルタが、1段目のハーフバンドフィルタによって出力されたa1に基づいて、b2及びb3を演算して出力し、時点T5に、3段目のハーフバンドフィルタが2段目のハーフバンドフィルタによって出力されたb1に基づいて、c2及びc3を演算して出力し、時点T6に、3段目のハーフバンドフィルタが2段目のハーフバンドフィルタによって出力されたb2に基づいて、c4及びc5を演算して出力し、時点T7に、3段目のハーフバンドフィルタが2段目のハーフバンドフィルタによって出力されたb3に基づいて、c6及びc7を演算して出力する。
【0033】
n個の前記サブステートマシンは、ハードウェアコードにより、トリガー条件及び論理の改定を行うことができ、システム全体を制御しやすくする。
【0034】
前記カスケードドライブモジュールがドライブして、メインステートマシンと協力して、第1のステップ及び第2のステップの機能を完了する。第1のステップでは、現在段のハーフバンドフィルタの作動を完了し、現在段のハーフバンドフィルタに保存すべき偶数添え字出力のデータを前記中間結果キャッシュRAMの対応するアドレスユニットに記憶し、現在段のハーフバンドフィルタに保存すべき奇数添え字出力のデータを現在段のハーフバンドフィルタの内部の対応するレジスタに記憶し、現在段のハーフバンドフィルタは、2a個のサブフィルタ及びレジスタとして多重化され、aは現在段の段数から1を引いた値であり、現在段のハーフバンドフィルタは、保存すべき出力されたデータに応じて、2a個のハーフバンドフィルタの機能を時分割に完了し、実際に、1つのハーフバンドフィルタの回路しかなく、対応するサブステートマシンは、前記メインステートマシンと協力することで、現在段のハーフバンドフィルタが2a個のハーフバンドフィルタの演算機能を完了するように制御する。
【0035】
第2のステップでは、現在段のハーフバンドフィルタの全ての出力結果を次の段のハーフバンドフィルタに、直接的又は内部の対応するレジスタを介して間接的に出力し、次に、次の段のハーフバンドフィルタに保存すべき偶数添え字出力のデータを前記中間結果キャッシュRAMの対応するアドレスユニットに記憶し、保存すべき奇数添え字出力のデータを次の段のハーフバンドフィルタの内部の対応するレジスタに記憶し、次の段のハーフバンドフィルタは、2b個のサブフィルタ及びレジスタとして多重化され、bは次の段の段数から1を引いた値であり、次の段のハーフバンドフィルタは、保存すべき出力されたデータに応じて、2b個のハーフバンドフィルタの機能を時分割に完了し、実際に1つのハーフバンドフィルタの回路しかなく、対応するサブステートマシンは、前記メインステートマシンと協力することで、次の段のハーフバンドフィルタが2b個のハーフバンドフィルタの演算機能を完了するように制御する。
【0036】
n段目のハーフバンドフィルタが順次演算した2n個(nは1以上の整数である)の結果が、前記補間フィルタリング演算コントローラによって出力された補間結果として、前記中間結果キャッシュRAMの対応するアドレスユニットに、直接的又は内部の対応するレジスタを介して間接的に出力されるまで、第1のステップ及び第2のステップを繰り返し反復して、直列演算を実現する。
【0037】
従来技術に比べて、本実施例は、ステートマシンに基づいて、ハーフバンドフィルタのカスケード構造を実現し、信号のサンプリングレートを徐々に向上させ、また、各段のハーフバンドフィルタを奇数添え字出力ブランチ及び偶数添え字出力ブランチに分割し、各段のハーフバンドフィルタを現在の補間出力の数とマッチングしたサブフィルタとして多重化し、ハードウェアリソースをできるだけ多く多重化することで、不必要な記憶ユニット及び制御ロジックを減少させる。
【0038】
前述した実施例では、相当する前記カスケードされたハーフバンドフィルタのうちの1段のハーフバンドフィルタの次数が11次に、設定され、すなわち、現在段のHBF次数が11-tapsに設定される場合、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数は、coeffで示され、ハーフバンドフィルタに入力された補間対象データ又は中間結果データdataは、xiで示され、ハーフバンドフィルタの出力は、yiで示され、前記フィルタリング係数記憶ROMのフィルタリング係数においてゼロ値が存在し、ゼロ値の数が(11-1)/2-1=4に等しい。
【0039】
以下の実施例は、11タップのハーフバンドフィルタHBFの時間領域の表現形態及び補間過程である。
【0040】
フィルタリング係数coeff=[c0,0,c1,0,c2,1,c2,0,c1,0,c0]、
1nT時点でのxiは、x0、0、x1、0、x2、0、x3、0、x4、0、x5を含み、
1.5nT時点でのxiは、0、x0、0、x1、0、x2、0、x3、0、x4、0を含み、
2nT時点でのxiは、x1、0、x2、0、x3、0、x4、0、x5、0、x6を含み、
2.5nT時点でのxiは、0、x1、0、x2、0、x3、0、x4、0、x5、0を含み、
3nT時点でのxiは、x2、0、x3、0、x4、0、x5、0、x6、0、x7を含み、
3.5nT時点でのxiは、0、x2、0、x3、0、x4、0、x5、0、x6、0を含み、
4nT時点でのxiは、x3、0、x4、0、x5、0、x6、0、x7、0、x8を含み、
4.5nT時点でのxiは、0、x3、0、x4、0、x5、0、x6、0、x7、0を含む。
【0041】
ハーフバンドフィルタの出力は、coeffと各時点に入力された全てのxiとを積和演算した値であり、具体的に以下のとおりである。
【0042】
y0=c0*x0+c1*x1+c2*x2+c2*x3+c1*x4+c0*x5、
y1=x2、
y2=c0*x1+c1*x2+c2*x3+c2*x4+c1*x5+c0*x6、
y3=x3、
y4=c0*x2+c1*x3+c2*x4+c2*x5+c1*x6+c0*x7、
y5=x4、
y6=c0*x3+c1*x2+c2*x3+c2*x4+c1*x5+c0*x6、
y7=x5。
【0043】
従って、ROMのフィルタリング係数においてセロ値が存在するアドレス区間の設定、及び、カスケードされた3つのフィルタ演算モジュールがフィルタリング係数のゼロ値を読み取るタイミングシーケンスにより、各段の前記フィルタ演算モジュールの前記奇数添え字の出力が、対応する一段の前記フィルタ演算モジュールの入力信号の遅延処理結果に相当すると決定し、すなわち、y1、y3、y5、y7などの奇数添え字の出力は、入力遅延されると、直接出力された結果であり、y0、y2、y4、y6などの偶数添え字の出力は、積和演算される必要がある。
【0044】
本実施例は、ハーフバンドフィルタ構造を用いて補間を実現するので、1/2の演算量が減少される。この構造では、ハーフバンドフィルタのフィルタリング係数のうち、ほぼ半分のフィルタリング係数が0であり、演算されなくてもよいため、前記フィルタリング係数記憶ROMは、非0の係数のみを記憶すればよく、従って、半分のROM空間を節約する。
【0045】
前述した実施例に基づいて、図2に示すように、前記nは3に設定され、前記カスケードされたフィルタ演算モジュールは、1段目のFIR演算モジュールと、2段目のFIR演算モジュールと、及び3段目のFIR演算モジュールとを含み、補間演算の機能上において、カスケードされた3つのハーフバンドフィルタ、すなわち、1段目のハーフバンドフィルタ、2段目のハーフバンドフィルタ及び3段目のハーフバンドフィルタに相当し、前記フィルタリング係数記憶ROMには、マッチングした3つのフィルタリング係数が記憶され、3つのフィルタリング係数は、それぞれ1段目のFIR演算モジュール、2段目のFIR演算モジュール及び3段目のFIR演算モジュールの乗法演算に使用されるためのものである。
【0046】
前記中間結果キャッシュRAMは、具体的には、1段目のFIRのSRAMと、2段目のFIRのSRAMと、3段目のFIRのSRAMと、及び最終結果SRAMとを含む。1段目のFIRのSRAMに入力された補間対象データが、前記カスケードされた3段のフィルタ演算モジュールにより8倍補間処理された後、各段のFIR演算モジュールがいずれも2倍補間を実現し、3段目のFIR演算モジュールが合計8つの信号を出力し、それにより、8倍補間の目的が実現される。
【0047】
前記メインステートマシンに含まれるサブステートマシン:1段目のFIRサブステートマシン、2段目のFIRサブステートマシン及び3段目のFIRサブステートマシンによって、前記補間フィルタシステムは、状態ジャンプをサポートする。
【0048】
前記補間フィルタリング演算コントローラは、第1のレジスタと、第2のレジスタと、第3のレジスタと、第4のレジスタと、第5のレジスタと、第6のレジスタと、及び第7のレジスタとをさらに含み、合計23-1個のレジスタが、加算中間結果レジスタとして設定される。
【0049】
各段のフィルタ演算モジュールの出力は、いずれも、奇数添え字出力と偶数添え字出力とに分けられ、前記カスケードドライブモジュールによって出力されたカウントリズムのドライブで、各段のフィルタ演算モジュールにより出力される順序に従って決定されるものであり、偶数添え字は、0から始まりが、奇数添え字は、1から始まり、出力される順番に従って昇順でマークされる。
【0050】
具体的には、前記カスケードドライブモジュールがメインステートマシンによるドライブ制御と協力する前提で、図2を参照すると分かるように、前記補間フィルタシステムの外部から入力された補間対象データx0は、1段目のFIR演算モジュールの1つのデータ入力端に、1段目のFIRのSRAMを介して間接的かつ持続的に入力される。
【0051】
1段目のFIRサブステートマシンによるドライブ・選択作用下で、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、1段目のFIR演算モジュールは、外部から入力された補間対象データを補間処理し、1段目のFIRのSRAM及び2段目のFIRのSRAMを読み取り・書き込みすることを含む。
【0052】
1段目のFIR演算モジュールの第1の出力結果y1は、第1のレジスタ出力とされ、1段目のFIR演算モジュールの第0の出力結果y0は、2段目のFIRのSRAM出力とされ、第1のレジスタの出力端が2段目のFIRのSRAMの入力端に接続され、1段目のFIR演算モジュールの第1の出力結果y1は、奇数添え字出力、1段目のFIR演算モジュールの第0の出力結果y0は、偶数添え字出力とされ、1段目のFIR演算モジュールは、T0時点にy0及びy1を同時に、出力する。
【0053】
2段目のFIRサブステートマシンによるドライブ・選択作用下で、2段目のFIR演算モジュールは、1段目のFIR演算モジュールの第0の出力結果y0に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、2段目のFIR演算モジュールの第0の出力結果z0及び2段目のFIR演算モジュールの第1の出力結果z1を演算して生成する。
【0054】
T1時点に、2段目のFIR演算モジュールの第0の出力結果z0は、3段目のFIRのSRAMに出力され、2段目のFIR演算モジュールの第1の出力結果z1は、第2のレジスタに出力され、2段目のFIR演算モジュールの偶数添え字出力ポート及び第2のレジスタの出力端が段目のFIRのSRAMの入力端に接続され、2段目のFIR演算モジュールの第1の出力結果z1は、奇数添え字出力、2段目のFIR演算モジュールの第0の出力結果z0は、偶数添え字出力とされ、T1>T0であり、それらの時間の差値は、2段目のFIR演算モジュールの読み取り・書き込み操作の遅延長さを満たす必要がある。
【0055】
3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第0の出力結果z0に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第0の出力結果p0及び3段目のFIR演算モジュールの第1の出力結果p1を演算して生成する。
【0056】
T2時点に、3段目のFIR演算モジュールの第0の出力結果p0は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第1の出力結果p1は、第3のレジスタに出力され、第3のレジスタは、3段目のFIR演算モジュールの第1の出力結果p1を最終結果SRAMに出力し、3段目のFIR演算モジュールの偶数添え字出力ポート及び第3のレジスタの出力端が最終結果SRAMの入力端に接続さる。
【0057】
3段目のFIR演算モジュールの第1の出力結果p1は、奇数添え字出力、3段目のFIR演算モジュールの第0の出力結果p0は、偶数添え字出力とされ、第0の出力結果p0は、第1の出力結果p1よりも前に、前記補間フィルタリング演算コントローラの出力端fir_outから外部デバイスのポートに出力され、T2>T1であり、それらの時間の差値は、3段目のFIR演算モジュールの読み取り・書き込み操作の遅延長さを満たす必要がある。
【0058】
第2のレジスタは、2段目のFIR演算モジュールの第1の出力結果z1を3段目のFIR演算モジュールに出力し、3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第1の出力結果z1に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第2の出力結果p2及び3段目のFIR演算モジュールの第3の出力結果p3を演算して生成する。
【0059】
T3時点に、3段目のFIR演算モジュールの第2の出力結果p2は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第3の出力結果p3は、第4のレジスタに出力され、第4のレジスタは、3段目のFIR演算モジュールの第3の出力結果p3を最終結果SRAMに出力し、それにより、3段目のFIR演算モジュール及び3段目のFIRのSRAMを多重化する。
【0060】
3段目のFIR演算モジュールの第3の出力結果p3は、奇数添え字出力、3段目のFIR演算モジュールの第2の出力結果p2は、偶数添え字出力とされ、第2の出力結果p2は、第3の出力結果p3よりも前に、前記補間フィルタリング演算コントローラの出力端fir_outから外部デバイスのポートに出力され、T3>T2であり、それらの時間の差値は、3段目のFIR演算モジュールの読み取り・書き込み操作の遅延長さを満たす必要がある。
【0061】
第1のレジスタは、1段目のFIR演算モジュールの第1の出力結果y1を2段目のFIR演算モジュールに出力し、2段目のFIRサブステートマシンによるドライブ・選択作用下で、2段目のFIR演算モジュールは、1段目のFIR演算モジュールの第1の出力結果y1に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、2段目のFIR演算モジュールの第2の出力結果z2及び2段目のFIR演算モジュールの第3の出力結果z3を演算して生成する。
【0062】
T4時点に、2段目のFIR演算モジュールの第2の出力結果z2は、3段目のFIRのSRAMに出力され、2段目のFIR演算モジュールの第3の出力結果z3は、第5のレジスタに出力され、それにより、2段目のFIR演算モジュール及び2段目のFIRのSRAMを多重化する。
【0063】
2段目のFIR演算モジュールの第3の出力結果z3は、奇数添え字出力、2段目のFIR演算モジュールの第2の出力結果z2は、偶数添え字出力とされ、T4>T3であり、それらの時間の差値は、2段目のFIR演算モジュールの読み取り・書き込み操作の遅延長さを満たす必要がある。
【0064】
3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第2の出力結果z2に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第4の出力結果p4及び3段目のFIR演算モジュールの第5の出力結果p5を演算して生成する。
【0065】
T5時点に、3段目のFIR演算モジュールの第4の出力結果p4は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第5の出力結果p5は、第6のレジスタに出力され、第6のレジスタは、3段目のFIR演算モジュールの第5の出力結果p5を最終結果SRAMに出力され、それにより、3段目のFIR演算モジュール及び3段目のFIRのSRAMを多重化する。
【0066】
3段目のFIR演算モジュールの第5の出力結果p5は、奇数添え字出力、3段目のFIR演算モジュールの第4の出力結果p4は、偶数添え字出力とされ、第4の出力結果p4は、第5の出力結果p5よりも前に、前記補間フィルタリング演算コントローラの出力端fir_outから外部デバイスのポートに出力され、T5>T4であり、それらの時間の差値は、3段目のFIR演算モジュールの読み取り・書き込み操作の遅延長さを満たす必要がある。
【0067】
第5のレジスタは、2段目のFIR演算モジュールの第3の出力結果z3を3段目のFIR演算モジュールに出力し、3段目のFIRサブステートマシンによるドライブ・選択作用下で、3段目のFIR演算モジュールは、2段目のFIR演算モジュールの第3の出力結果z3に基づいて、前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数と組み合わせて、3段目のFIR演算モジュールの第6の出力結果p6及び3段目のFIR演算モジュールの第7の出力結果p7を演算して生成する。
【0068】
T6時点に、3段目のFIR演算モジュールの第6の出力結果p6は、最終結果SRAMに出力され、3段目のFIR演算モジュールの第7の出力結果p7は、第7のレジスタに出力され、第7のレジスタは、3段目のFIR演算モジュールの第7の出力結果p7を最終結果SRAMに出力され、それにより、3段目のFIR演算モジュール及び3段目のFIRのSRAMを多重化する。
【0069】
3段目のFIR演算モジュールの第7の出力結果p7は、奇数添え字出力、3段目のFIR演算モジュールの第6の出力結果p6は、偶数添え字出力とされ、第6の出力結果p6は、第7の出力結果p7よりも前に、前記補間フィルタリング演算コントローラの出力端fir_outから外部デバイスのポートに出力され、T6>T5、それらの時間の差値は、3段目のFIR演算モジュールの読み取り・書き込み操作の遅延長さを満たす必要がある。
【0070】
なお、前記x0、y0、y1、z0、z1、z2、z3は、入出力データとされる場合、いずれもm個のデータを有し、mは、毎回前記フィルタリング係数記憶ROMから読み取られたマッチングしたフィルタリング係数の数と同じである。出力された8倍の補間結果p1、p3、p5、p7が属するブランチは、奇数ブランチ(遅延出力)に相当し、出力された8倍の補間結果p0、p2、p4、p6が属するブランチは、偶数ブランチ(演算出力)に相当し、奇数ブランチと偶数ブランチとの位相遅延は、フィルタの次数により決定される。
【0071】
本実施例は、従来技術に比べて、3つのステートマシンを用いて、三段のFIR演算モジュールが読み取り・書き込み及び積和演算を行うように対応して制御し、入力された補間対象データx0に対して、直列な8倍補間操作を実行する。
【0072】
前述した演算モジュールと、レジスタと、SRAMとは、信号伝送関係が存在する限り、物理的な接続関係を具備し、対応するステートマシンの制御下で、FIR演算モジュール及び前記中間結果キャッシュRAMを選択的に多重化し、不必要なレジスタリソース及びロジック制御ユニットを回避し、ハードウェアリソースを節約し、回路が構成可能になり、制御がより柔軟になる。
【0073】
前記補間フィルタシステムの外部から入力された補間対象データが1つ以上である場合、前記メインステートマシンは、改めて初期状態から、全ての状態変換プロセスを実行することで、前記n段目のハーフバンドフィルタが新しい2n個の結果を生成して、前記補間フィルタリング演算コントローラから新しく出力された補間結果として、前記中間結果キャッシュRAMの対応するアドレスユニットに、直接的又は内部の対応するレジスタを介して間接的に出力する。
【0074】
上記実施例では、前記メインステートマシンにおいては、1段目のFIR演算モジュールに入力されたx0に対して、状態ジャンプの制御を実行するだけではなく、外部から入力された補間対象データx1、x2、x3、x4…が全て1段目のFIRのSRAMを介して、1段目のFIR演算モジュールの1つのデータ入力端に間接的かつ持続的に入力される場合、1段目のFIR演算モジュールが計算してy2、y3、y4、y5…を生成し、ステートマシン全体が改めて1回運転し、前記補間フィルタシステムがデータを処理するリアルタイム性の効果を示す。
【0075】
データは、システム全体に送信され続けると、設計全体において、メインステートマシンに含まれたサブステートマシンのトリガー演算が持続的に運転し、各段のFIR演算モジュールにより処理され、前記補間フィルタシステムの出力ポートfir_outに持続的に出力される。前記補間フィルタシステム処理データの有効性を向上させ、システムのリアルタイム性を向上させる。
【0076】
前述した実施例では、前記カスケードドライブモジュールは、好ましくは、図1に示すように、書き込みロジック制御サブモジュールと読み取りロジック制御サブモジュールとを含み、書き込みロジック制御サブモジュールと読み取りロジック制御サブモジュールとは、前記補間フィルタシステムのドライブクロック源としてのカウンタを共有し、書き込みロジック制御サブモジュールは、カウンタによって出力されたカウントリズムに基づいて、前記中間結果キャッシュRAMの書き込み操作アドレス及び前記フィルタリング係数記憶ROMの書き込み操作アドレスを制御し、読み取りロジック制御サブモジュールは、カウンタによって出力されたカウントリズムに基づいて、前記中間結果キャッシュRAMの読み取り操作アドレス及び前記フィルタリング係数記憶ROMの読み取り操作アドレスを制御し、書き込みロジック制御サブモジュール及び読み取りロジック制御サブモジュールは、クロック制御信号を送信するように理解されてもよい。
【0077】
書き込みロジック制御サブモジュール及び読み取りロジック制御サブモジュールは、対応する前記メインステートマシンをドライブし、すなわち、適切なカウント時間に、前記1段目のFIRサブステートマシン、前記2段目のFIRサブステートマシン及び前記3段目のFIRサブステートマシンをトリガーし、次に、前記補間フィルタリング演算コントローラの内部のカスケードされたフィルタ演算モジュールが補間演算操作をタイミングシーケンスに従って実行するように対応して制御することで、8倍補間の目的が実現される。
【0078】
本実施例は、ステートマシンモデルのジャンプタイミングシーケンスを制御することに寄与し、クロック信号が1つしかないので、全体設計に、異なるクロックの非同期処理問題がなく、設計複雑度を減少させ、システム全体の性能がより安定になる。
【0079】
前述した実施例に基づいて、前記カスケードされたn個のフィルタ演算モジュールのうちの各段のFIR演算モジュールは、読み取り終了確認サブモジュールと、書き込み終了確認サブモジュールと、積和演算サブモジュールとを含む。
【0080】
図3を参照して分かるように、n段目のFIR演算モジュールにおいて、書き込みロジック制御サブモジュールは、n段目のFIRサブステートマシンにより、書き込み終了確認サブモジュールをトリガー制御し、書き込み終了確認サブモジュールは、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、n段目のFIRサブステートマシンによって出力された状態がジャンプするようにトリガーし、対応する条件状態で、前の段のFIR演算モジュールによって出力された、現在段のFIR演算モジュール内において演算すべきデータを、前記中間結果キャッシュRAMの対応するアドレス区間に書き込み、すなわち、図1におけるn-1段目のFIRのSRAMによって出力された結果データをn段目のFIRのSRAMの内部の対応するアドレス区間に書き込むように制御する。
【0081】
同様に、読み取りロジック制御サブモジュールは、n段目のFIRサブステートマシントにより、読み取り終了確認サブモジュールをリガー制御し、読み取り終了確認サブモジュールは、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、n段目のFIRサブステートマシンによって出力された状態がジャンプするようにトリガーし、対応する条件状態で、前記中間結果キャッシュRAMの対応するアドレス区間における、現在段のFIR演算モジュール内で演算すべきデータを読み取ることを積和演算サブモジュールに任せ、すなわち、積和演算サブモジュールがn段目のFIRのSRAMを読み取るように制御する。
【0082】
積和演算サブモジュールは、乗算器と加算器とからなる直列シフト加算構造であり、書き込み終了確認サブモジュール及び読み取り終了確認サブモジュールの両方により制御されて、前記中間結果キャッシュRAMの対応するアドレス区間における、現在段のFIR演算モジュール内で演算すべきデータを選択して、加算器に伝送して加算演算を行うとともに、前記フィルタリング係数記憶ROMのフィルタリング係数を乗数として選択して、乗算器に伝送して乗算演算を行う。
【0083】
N段目のFIRのSRAMにより加算器に伝送されたデータは、乗算器に被乗数として直接伝送されてもよいし、現在段(n段目)の加算演算で得られた中間加算値は、n+1段目のFIRのSRAMに伝送されて、乗算器に被乗数として伝送されてもよい。
【0084】
具体的には、1段目のFIR演算モジュールは、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、前記1段目のFIRサブステートマシンによりドライブされて、データx0を前記1段目のFIRのSRAMの対応するアドレス区間に書き込む。
【0085】
書き込みロジック制御サブモジュールによって出力されたカウントリズムが第1の遅延長さに達すると、前記1段目のFIRサブステートマシンが1段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、1段目のFIR演算モジュールが前記1段目のFIRのSRAMの対応するアドレス区間から1つのx0を読み取るとともに、前記フィルタリング係数記憶ROMから、マッチングしたフィルタリング係数を読み取り、1回の積和演算を実行するように制御する。
【0086】
なお、前記1段目のFIR演算モジュールの乗算器は、シフト加算と、Booth4符号化とが組み合わせられたBooth乗算器で実現され、乗算器の面積及び遅延を減少させることができる。
【0087】
読み取りロジック制御サブモジュールによって出力されたカウントリズムが第2の遅延長さに達すると、前記1段目のFIRサブステートマシンが1段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、1段目のFIR演算モジュールが入力されたx0に対する積和計算を完了し、中間結果データy0及びy1を取得したことが示される。
【0088】
2段目のFIR演算モジュールは、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、前記2段目のFIRサブステートマシンのドライブで、1段目のFIR演算モジュールによって出力されたy0を前記2段目のFIRのSRAMの対応するアドレス区間に書き込むように制御する。
【0089】
書き込みロジック制御サブモジュールによって出力されたカウントリズムが第3の遅延長さに達すると、y0の書き込み操作が完了されたことが示され、同時に、前記2段目のFIRサブステートマシンが2段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、2段目のFIR演算モジュールが前記2段目のFIRのSRAMの対応するアドレス区間から全てのデータを読み取るとともに、前記フィルタリング係数記憶ROMから、マッチングしたフィルタリング係数を読み取り、積和計算を実行するように制御する。
【0090】
読み取りロジック制御サブモジュールによって出力されたカウントリズムが第4の遅延長さに達すると、2段目のFIR演算モジュールがy0に対する積和演算を完了したことが示され、中間結果z0及びz1を出力する。
【0091】
同時に、前記2段目のFIRサブステートマシンが2段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、1段目のFIR演算モジュールによって出力されたy1を前記2段目のFIRのSRAMの対応するアドレス区間に書き込き始める。
【0092】
書き込みロジック制御サブモジュールによって出力されたカウントリズムが第5の遅延長さに達すると、y1の書き込み操作が完了したことが示される、同時に、前記2段目のFIRサブステートマシンが2段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、2段目のFIR演算モジュールが前記2段目のFIRのSRAMの対応するアドレス区間から全てのデータを読み取るとともに、前記フィルタリング係数記憶ROMからマッチングしたフィルタリング係数を読み取り、積和計算を実行するように制御する。
【0093】
読み取りロジック制御サブモジュールによって出力されたカウントリズムが第6の遅延長さに達すると、2段目のFIR演算モジュールがy1に対する積和演算を完了したことが示され、中間結果データz2及びz3を出力する。
【0094】
3段目のFIR演算モジュールは、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、前記3段目のFIRサブステートマシンのドライブで、2段目のFIR演算モジュールによって出力されたz0を前記3段目のFIRのSRAMの対応するアドレス区間に書き込むように制御する。
【0095】
書き込みロジック制御サブモジュールによって出力されたカウントリズムが第7の遅延長さ達すると、z0の書き込み操作が完了されたことが示され、同時に、前記3段目のFIRサブステートマシンが3段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、3段目のFIR演算モジュールが前記3段目のFIRのSRAMの対応するアドレス区間から全てのデータを読み取るとともに、前記フィルタリング係数記憶ROMから、マッチングしたフィルタリング係数を読み取り、積和計算を行うように制御する。
【0096】
読み取りロジック制御サブモジュールによって出力されたカウントリズムが第8の遅延長さに達すると、3段目のFIR演算モジュールがz0に対する積和演算を完了したことが示され、8倍補間フィルタリングの結果データp0及びp1を出力する。
【0097】
次に、前記3段目のFIRサブステートマシンが3段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、2段目のFIR演算モジュールによって出力されたz1を前記3段目のFIRのSRAMの対応するアドレス区間に書き込み始める。
【0098】
書き込みロジック制御サブモジュールによって出力されたカウントリズムが第9の遅延長さに達すると、z1の書き込み操作が完了されたことが示され、同時に、前記3段目のFIRサブステートマシンが3段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、3段目のFIR演算モジュールが前記3段目のFIRのSRAMの対応するアドレス区間から全てのデータを読み取るとともに、前記フィルタリング係数記憶ROMから、マッチングしたフィルタリング係数を読み取り、積和計算を行うように制御する。
【0099】
読み取りロジック制御サブモジュールによって出力されたカウントリズムが第11の遅延長さに達すると、3段目のFIR演算モジュールがz1に対する積和演算を完了したことが示され、8倍補間フィルタリングの結果データp2及びp3を出力する。
【0100】
次に、前記3段目のFIRサブステートマシンが3段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、2段目のFIR演算モジュールによって出力されたz2を、前記3段目のFIRのSRAMの対応するアドレス区間に書き込み始める。
【0101】
書き込みロジック制御サブモジュールによって出力されたカウントリズムが第11の遅延長さに達すると、z2の書き込み操作が完了されたことが示され、同時に、前記3段目のFIRサブステートマシンが3段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、3段目のFIR演算モジュールが前記3段目のFIRのSRAMの対応するアドレス区間から全てのデータを読み取るとともに、前記フィルタリング係数記憶ROMから、マッチングしたフィルタリング係数を読み取り、積和計算を行うように制御する。
【0102】
読み取りロジック制御サブモジュールによって出力されたカウントリズムが第12の遅延長さに達すると、3段目のFIR演算モジュールがz2に対する積和演算を完了したことが示され、8倍補間フィルタリングの結果データp4及びp5を出力する。
【0103】
次に、前記3段目のFIRサブステートマシンが3段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、書き込みロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、2段目のFIR演算モジュールによって出力されたz3を、前記3段目のFIRのSRAMの対応するアドレス区間に書き込み始める。
【0104】
書き込みロジック制御サブモジュールによって出力されたカウントリズムが第13の遅延長さに達すると、z3の書き演算が完了したことが示され、同時に、前記3段目のFIRサブステートマシンが3段目のFIR演算モジュールの現在の作動状態を変えるようにトリガーし、次に、読み取りロジック制御サブモジュールによって出力されたカウント制御信号に基づいて、3段目のFIR演算モジュールが前記3段目のFIRのSRAMの対応するアドレス区間から全てのデータを読み取るとともに、前記フィルタリング係数記憶ROMから、マッチングしたフィルタリング係数を読み取り、積和計算を行うように制御する。
【0105】
読み取りロジック制御サブモジュールによって出力されたカウントリズムが第14の遅延長さに達すると、3段目のFIR演算モジュールがz3に対する積和演算を完了したことが示され、8倍補間フィルタリングの結果データp6及びp7を出力する。今回の前記メインステートマシンにより制御された運転プロセスにおいて、入力データx0に基づいて、最終的に出力された8倍補間フィルタリングの結果データは、p0、p1、p2、p3、p4、p5、p6及びp7に分けられる。
【0106】
従って、回路によるコードの実現の複雑度からみると、ステートマシンのカウント制御により8倍の補間演算を実現することは、並行、DA分散型などの構造ロジックよりも簡単であり、コードの実現及びメンテナンスが容易であり、高効率な順序制御性を有する。
【0107】
好ましくは、前記フィルタリング係数は、固定小数点化によって処理されて、16ビット位の2進数になる。前記フィルタリング係数は、必ずMatlab数学ツールで予めシミュレーション処理されて得られ、シミュレーションされて得られた前記フィルタリング係数は、符号ビット及び小数点付きの浮動小数の数である。
【0108】
前記フィルタリング係数によって、フィルタ全体のパスバンドリップル、ストップバンド減衰、過渡帯域幅及びフィルタ全体のフィルタリング効果などに、直接影響を与える。
【0109】
デジタル回路では、全て二進数で示され、Matlabアルゴビートにおけるフィルタリング係数に対して、固定小数点化処理を行う必要があり、異なる係数のビット幅は、Matlabアルゴビートで決定された実数係数と異なる程度にずれるが、ハードウェアコスト(ビット幅が大きいほど、占有する乗算器リソースが多くなり、太すぎるため、1個のクロック周期で、1回の乗法演算を完了することができ、遅延が増大してしまう可能性がある)からみて、実現すべきフィルタ性能の角度に基づいて統合に配慮すれば、本実施例では、16bitのビット幅を決定して、全精度実数係数に対して固定小数点化を行い、二進数相補符号の形態で示し、前記フィルタのデジタル回路の実現に適用し、音声シーンの適用に基づいて、前記補間フィルタシステムに必要な作動クロックが一般的に遅く、例えば256*fsであり、40nmプロセスにおいて、1つのクロック周期内に、1回の乗法演算を完了することができ、フィルタのパスバンドリップル及びストップバンド減衰による誤差の影響を統合に評定し、前記補間フィルタのデジタル回路の実現が占有するハードウェアリソースコストが低い。
【0110】
以上の説明は、本発明の好適な実施形態に過ぎず、本発明を限定するものではなく、当業者にとって、本発明に対する様々な修正及び変更が可能である。本発明の要旨及び原理内で行われるいかなる変更、均等置換や改良なども、本発明の保護範囲に含まれるべきである。注意すべきことは、類似する符号とアルファベットは以下の図面において類似する項目表示するため、ある項目が1つの図面に定義された場合、後の図面においてはさらに定義して解釈する必要がない。
図1
図2
図3