JP2009507423A - 共有されるメモリおよび共有される乗算器のプログラム可能なデジタルフィルタ構成 - Google Patents

共有されるメモリおよび共有される乗算器のプログラム可能なデジタルフィルタ構成 Download PDF

Info

Publication number
JP2009507423A
JP2009507423A JP2008529195A JP2008529195A JP2009507423A JP 2009507423 A JP2009507423 A JP 2009507423A JP 2008529195 A JP2008529195 A JP 2008529195A JP 2008529195 A JP2008529195 A JP 2008529195A JP 2009507423 A JP2009507423 A JP 2009507423A
Authority
JP
Japan
Prior art keywords
address
data
memory
read
control block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008529195A
Other languages
English (en)
Other versions
JP2009507423A5 (ja
Inventor
ベスト、デニス
マグデバーガー、トマス
Original Assignee
クイックフィルター・テクノロジーズ・インコーポレーテッド
マグデバーガー、トマス
ベスト、デニス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クイックフィルター・テクノロジーズ・インコーポレーテッド, マグデバーガー、トマス, ベスト、デニス filed Critical クイックフィルター・テクノロジーズ・インコーポレーテッド
Publication of JP2009507423A publication Critical patent/JP2009507423A/ja
Publication of JP2009507423A5 publication Critical patent/JP2009507423A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

デジタルフィルタを構成する集積回路は2つのデータサンプルのアクセスを同時に許容するための2つのポート210、220を有するデータメモリ100と、フィルタ係数を記憶するための係数メモリ105とを有する。第1の加算器110は第1及び第2のポート210、220からのデータサンプルを加算し、乗算器115は第1の加算器110からの値を係数メモリ105からの値と乗算し、第2の加算器は乗算器115からの値を累算する。マスター制御装置190は累算された値をさらに処理または出力するためにデータメモリ100に累算された値を選択的に記憶するように構成されている。データメモリ100及び係数メモリ105と通信するアドレス及び制御ブロック125は実行されるフィルタに対して適切な値を保持する。アドレス及び制御ブロック125は第1の予め定められたデジタルフィルタと第2の予め定められたデジタルフィルタの値をカスケードに保持するためのレジスタの第1のセットの2つのセットを有している。方法は円形リストとしてアドレスおよび制御ブロック125にデータの現在の書込みアドレスを維持し、円形リストはフィルタタップの予め定められた数に等しいサイズを有する。方法は先入れ先出し待ち行列として第1のポートからのデータの第1の読取アドレスと、後入れ先出しスタックとして第2のポートからのデータの第2の読取アドレスと、円形リストとして係数読取アドレスを維持する。
【選択図】図1

Description

本発明は広く選択可能な範囲の周波数にわたって電子信号のデジタル濾波を行うための電子回路の電力、性能、物理的寸法において効率的な構成に関する。その構成は特定の有限インパルス応答(FIR)フィルタ、FIRフィルタのカスケード、またはアプリケーションの周波数選択仕様を満たすための多速度FIRフィルタを迅速にプログラムし実行するために使用されることができる。
本出願は2004年7月6日出願の米国特許出願第10/884,200号明細書(発明の名称“System and method for design and implementation of integrated-circuit digital filters”)に関連し、この出願は本出願で参考文献とされている。
デジタルFIRフィルタを計算するための数学アルゴリズムはよく知られており、高い計算速度のデジタルハードウェアが利用可能になったので最近広く使用されている。しかしながら、計算は高い乗算と累算速度を必要とし、乗算器は構成するのに高価であり、大きな面積または時間遅延するので、ほとんどの構成は固定された周波数帯域に対して非常に特定的である。低い周波数帯域の構成ではしばしばソフトウェアを介してデジタル信号プロセッサで行われるが、高い周波数帯域では典型的に高く最適化された特定のハードウェアで構成され、周波数の特定のセットに対して適用可能であり、時には特別なフィルタ(固定され多数のタップ)に対してプログラム能力の所望の属性を失う。
FIRフィルタを構成するためのサンプルされたデータ式の通常の形態は次式のようになる。
Figure 2009507423
ここで、y(n)=サンプル時間nに対するフィルタ出力であり、b(i)=次数N−1のフィルタに対するフィルタ係数であり、x(n)=サンプル時間nにおけるフィルタ入力であり、N=フィルタのタップ数である。
線形位相FIRフィルタは中心係数について「鏡像」係数を有するので、折り返し係数方法は2の係数により乗算数を減少させることができる。固定されたタップ数(固定された次数)を有する特定のフィルタでは、式は、長さN−1のシフトレジスタ中にサンプルを保存し、次の入力サンプルの到着前に各出力サンプルに対する計算を完了するために十分な加算器と乗算器を設けることによって容易に実行されることができる。しかしながら、タップ数がプログラム可能であるならば、最小から最大のタップ数に適合するためのシフトレジスタのアドレスには非常に複雑なハードウェアを必要とする。構成がプログラム可能なサンプル周波数速度に適合しなければならないならば、加算器、乗算器、累算器の処理速度は最悪の場合のスループット速度(タップ数×入力サンプル速度)に適合するように設計されなければならない。また(過剰にサンプルされた入力速度を所望の出力サンプル速度へ減少するためのデシメーションと共に使用される)カスケード接続されたフィルタと(非常に減少された数の乗算器により非常に多数のタップフィルタを効率的に実行するために第1のフィルタのデシメーションと第2のフィルタ中の補間と共に使用される)多速度フィルタを提供することが望まれるならば、論理装置及びレジスタはさらに増加し、電力の要求はサンプル周波数と共に線形にスケールしない。
本発明はデジタルフィルタを構成する集積回路及び方法を開示する。集積回路は2つのデータサンプルのアクセスを同時に許容するための第1及び第2のポートを有するデータメモリと、フィルタ係数を記憶するための係数メモリとを有する。データメモリ中でアドレスされる第1及び第2のポートからのデータサンプルを加算するための第1の加算器と、第1の加算器からの値を係数メモリからの値により乗算する乗算器と、乗算器からの値を累算する第2の加算器とが存在する。
マスター制御装置は累算された値をさらに処理または出力するためにデータメモリに累算された値を選択的に記憶するように設けられ構成されている。
集積回路はさらに実行されるフィルタに対して適切に値を保持するためのアドレス及び制御ブロックを具備し、アドレス及び制御ブロックはデータメモリ及び係数メモリと通信している。
アドレス及び制御ブロックはさらに第1の予め定められたデジタルフィルタの値を保持するためのレジスタの第1のセットと、第2の予め定められたデジタルフィルタの対応する値を保持するためのレジスタの第2のセットを具備している。レジスタの第1のセットは少なくとも、選択的にデータメモリまたは係数メモリへの次の入力データのアドレスを保持する書込みアドレスレジスタと、第1のポートから読取られる次のデータメモリアドレスのアドレスを保持する第1の読取アドレスレジスタと、第2のポートから読取られる次のデータメモリアドレスのアドレスを保持する第2の読取アドレスレジスタと、読取られる次の係数のアドレスを保持する係数アドレスレジスタとを有する。
好ましい実施形態でフィルタを構成する方法は、円形リストとしてアドレス制御ブロック中にデータの現在の書込みアドレスを維持する処理を含んでおり、円形リストはフィルタタップの予め定められた数に等しいサイズを有する。その方法は先入れ先出し待ち行列として第1のポートからのデータの第1の読取アドレスと、後入れ先出しスタックとして第2のポートからのデータの第2の読取アドレスと、円形リストとして係数読取アドレスを維持する。係数アドレスは2で割算されるフィルタタップの予め定められた数に等しく、フィルタタップ数が奇数ならば切り上げられたサイズを有する。この方法はさらにアドレス制御ブロックの現在の書込みアドレスにより決定された位置においてデータメモリ中に入力デジタルサンプルを記憶し、データメモリ中の記憶されたサンプルと係数メモリ中の記憶された係数からの第1のデジタルフィルタの出力サンプルを計算し、アドレス制御ブロック中のパラメータの第1のセットをアドレス制御ブロック中のパラメータの第2のセットと交換し、データメモリ中の記憶されたサンプルと係数メモリ中の記憶されたサンプルからカスケード接続されたデジタルフィルタの出力サンプルを計算するステップを含んでいる。計算後、アドレス制御ブロック中のパラメータの第1のセットはアドレス制御ブロック中のパラメータの第2のセットと交換され、第2のフィルタが計算される。
この明細書は広い周波数範囲にわたってプログラム可能であるハードウェアセットの構成を記載し、その範囲は乗算器の性能またはデータ及び係数の記憶に使用されるメモリまたはレジスタのアクセス時間によってのみ制限される。設計はまた3乃至N個のタップの線形のフィルタを適合し、Nは現在のIC技術制約で実際的なメモリサイズと計算速度によってのみ制限される。同じハードウェアリソースが付加的な制御ハードウェアが少数で、カスケードされたまたは多速度フィルタを実現するために使用されることができる。
図1は好ましい実施形態の全体的なブロック図を示している。データメモリ100は典型的にアナログデジタル変換器によりエイリアス除去濾波されデジタル化されているアナログ入力からの入力サンプルを記憶するために使用される。データメモリ100は、システムがカスケードまたは多速度濾波用にプログラムされるとき第2のフィルタ動作により使用するため第1のフィルタ動作から計算された出力サンプルを記憶するために使用される。メモリ100は好ましくは一度に2つのサンプルのアクセスを許容するために2ポートメモリとして構成され、一方のポートは読取専用ポートであり、他方は読取又は書込みポートである。
係数メモリ105は1以上のフィルタの係数またはタップ加重を保持する。この係数メモリ105は実行される1以上のフィルタに対する複数の特有の係数を保持する大きさにされている。係数の数は折り返しフィルタ設計用のタップ数の1/2である。
データメモリ100と係数メモリ105の両メモリは好ましくはランダムアクセスメモリ(RAM)である。
加算、乗算、累算(AMAC)機能はFIR演算の基本的な計算機能を行うために使用される。AMAC機能は第1の加算器110、乗算器115、累算機能120を含んでいる。好ましい実施形態では、累算された結果はデータメモリ100に記憶されるか、さらに処理するために出力されることに注意すべきである。ANAC機能はアドレス及び制御ブロック125に記憶された値により制御される。マスター制御装置190はプログラム入力からの係数を係数メモリ105へロードし、所望のフィルタ機能を実行するために必要な他の制御パラメータを記憶する。これらのパラメータは各フィルタの複数のタップの数と、各フィルタのサンプルと係数の初期開始及び終了アドレスと、各フィルタのデシメーションおよび補間値を含んでいる。
図1は次のフィルタアドレス及び制御レジスタ150のセットと、アクチブフィルタアドレス及び制御レジスタ155のセットを示しており、これらは共にアドレス及び制御ブロックレジスタ125を構成している。マスター制御装置190はコンピュータが読取可能な媒体195にそれを関連付けするプロセッサである。コンピュータが読取可能な媒体はマスター制御装置190のプログラムが先にロードされている読取専用メモリ(ROM)、フラッシュメモリまたはRAMであってもよい。ROM195(図1ではこのように示されている)はこの明細書に記載されているようにデジタルフィルタを構成するのに必要な命令を実行するための記憶されたプログラムを保持している。
折り返されたFIR演算では、AMAC機能はデータメモリ100から2つのオペランドを受取り、これらのオペランドを第1の加算器110で加算し、この結果を計数メモリ105から選択された係数によって乗算器115で乗算し、この結果を累算器120で累算する。累算された値が単一のFIRフィルタまたはカスケード接続されたフィルタの第2のフィルタの演算の結果であるならば、その結果は後処理プロセッサ(図示せず)に出力され、値がカスケード接続されたフィルタの第1のフィルタの結果であるならば、その結果は第2のフィルタ演算に入力するために確保されたデータメモリスペースに記憶される。
アドレス及び制御ブロックレジスタ125と係数メモリ105は実行されるフィルタに適切な値をマスター制御装置190によって予めロードされる。好ましい実施形態ではロードされる値はマスター制御装置190によりフィルタハードウェアに対して外部のソースから外部プロセッサに接続される直列ポート等により予めロードされる。フィルタパラメータを予めロードするこのような方法と装置の1例では、参考とされる同時出願の米国特許出願第10/884,200号明細書を参照されたい。しかしながらこの明細書はこの同時出願で開示されているシステム及び方法により限定されない。
マスター制御装置190は入力サンプルを捕捉するために必要な全てのアドレス、ゲーティング機能、タイミングを生成し、出力サンプルを生成するための一般化されたFIR式を行い、サンプルを出力し、または第2のフィルタにより使用するためのサンプルをデータメモリ100に記憶し、(カスケードフィルタが実行されるならば)第1のフィルタ演算から第2のフィルタ演算への制御を適時に切り換えることによりフィルタ演算の実行を開始する。デシメーションがエネーブルされるならば、n個の出力サンプルの1つのみが計算され、ここでnはデシメーション値であることに注意する。
好ましい実施形態のFIR設計は乗算数を減少するために実行は折り返し方法に基づいている。タップ数は非常に大きい可能性があるので、シフトレジスタの構成は現実的ではなく、それ故データ点をメモリ中に維持し、データエレメントを係数と共に正しい順序でAMACハードウェアに提示しなければならない。このことは図2及び3で示され、以下説明するように、フィルタの予め規定されたタップ数にわたって循環シフト方法でエレメントをアドレスし、新しいデータエレメントがデータのアレイに入ったときにプロセスを反復することによって行われる(最も古いデータ点を最新のデータ点で重ね書きするとき開始アドレスを適切にシフトする)。
この設計はAMAC機能とデュアルポート、16ビットデータメモリ100の単一のセットを使用する。図1は2つのデータポート、即ち第1のポート210に対するマークされたdata_0と第2のポート220に対するマークされたdata_1を示している。好ましい実施形態では、係数は20ビット幅である別々のメモリ105に記憶される。読者はより長い又はより短いワードが他の構成のデータまたは係数に対して使用されることができることを知るであろう。
マスター制御装置190または類似のコンピュータ手段は割当てられたメモリスペースに対する新しいデータの書込みを制御し、新しいデータ点の計算を開始する。この制御装置はまた各フィルタについてデシメーションを有するかそれを有しないカスケード接続されたフィルタを許容するために適切な開始アドレスをアドレスレジスタに入力する。
[メモリ割当て]
各フィルタに対してデータメモリ100は仮想アドレススペース0乃至N−1を割当てられ、ここでNはタップ数である。デュアルポートメモリは第1のポート210および第2のポート220を有し、一方は読取及び書込みポートであり、他方は読取専用ポートである。多数のフィルタに適合するために実際のアドレススペースはゼロからオフセットされる。割当てられる係数メモリ105は好ましい実施形態ではN/2 20ビットワードであり、2により割算されないNでは切り上げられる。新しいデータをデータメモリ100に記憶するための開始アドレスはN−1+適切なオフセットであり、書込みアドレスレジスタはこれが仮想アドレスゼロに到達するまでカウントダウンし、その後仮想アドレスN−1で再ロードされる。第1のフィルタデータスペースはアドレス0からN−1までの範囲であり、第2のフィルタデータスペースはアドレスNで開始しN+N−1で終了する。係数は上部アドレススペースでは係数ゼロで記憶され、係数アドレスは係数の次数が高い程減少する。上部係数は係数仮想アドレスゼロにある。
[メモリアドレッシング]
書込みアドレスレジスタ130(write_addr)は仮想メモリスペースへ次の入力オペランドを記憶するためのアドレスを含んでいる。これはデータ出力計算の終了において更新される。
係数アドレスレジスタ145(coef_addr)は係数メモリ105のデータポート230からアクセスされる次の係数のアドレスを含んでいる。これは各クロックサイクルで更新される。係数メモリ105のデータポート230でcoefおよびcoef_1とマークされているボックスは第2のバッファが乗算器115へのオペランドのデータ流のタイミングを維持するためにこのポート230で使用されることが好ましいことを示している。
オペランドアドレスレジスタread_addr0 135とread_addr1 140はそれぞれ第1のデータポート210と第2のデータポート220から各クロックでアクセスされる2つのオペランドのアドレスを含んでおり、read_addr0は第1のデータポート210からのデータを読取るためのアドレスであり、read_addr1は第2のデータポート220からのデータを読取るためのアドレスである。
定数レジスタは対にされたデータオペランドと係数の最大及び最小のアドレス、即ちaddr_max165、addr_min170、coef_max175、coef_min180をそれぞれ含んでいる。これらの値はオペランドアドレス範囲にわたってアドレス値を「ラップ」するために比較し、データ点計算の終了時に初期アドレスを提供するために使用される。
ダウンサンプリングはゼロに予めロードされるデクリメントカウンタ185(decm_ctr)と定数レジスタ160(decm)により制御される。データ点はデクリメントカウンタ185がゼロに等しい入力に対してのみ計算される。他の入力は記憶されるが計算されず(即ち出力データ点は存在しない)、アドレスカウンタは更新される。例えば4のデシメーション値を有するフィルタは4毎の入力サンプルでのみ出力サンプルを計算する。
各データ点計算のアドレスの制御は、基本的に第1のポート210から読取られる最新のデータワードで開始するFIFO待ち行列として動作するread_addr0レジスタ135と第2のポートから読取られる最も古いデータワードで開始するLIFOスタックとして動作するread_addr1レジスタ140を有するスタックとして入力データを処理する。実行サイクルの完了後、次のデータ入力はメモリ中の最も古いデータ点を置換し、スタックアドレスは適切にシフトされ、次の出力の実行が開始する。
[制御動作]
アドレスレジスタの制御は図2と3の簡単化されたフローチャートにより示されている。図2はマスター制御装置190で動作するプログラムを示し、図3はマスター制御装置190のアドレス制御装置の機能の動作を示している。
マスター制御装置190は各フィルタの状態制御を別々に維持する。この制御は次の入力サンプルと、係数の数と、係数セットの開始アドレスとを記憶するためにアドレスに対するポインタを含んでいる。入力を受信するとき、マスター制御装置190はサンプルポインタアドレスで入力を記憶し、加算、乗算、累積論理装置で使用される係数及びサンプルをアドレスし、計算されたサンプルを出力する。デシメーションが使用されるならば、マスター制御装置190は入力を記憶するが、n個の入力から1つの入力だけを計算し出力し、ここでnはデシメーション値である。マスター制御装置190はその後入力ポインタアドレスをインクリメントし、コンテキストを第2のフィルタ演算の状態に切換え、第2のフィルタに対して同じ機能を行う。(補間がエネーブルされるならば、マスター制御装置190は多速度フィルタにおいて第1のフィルタから第2のフィルタへ通過されるm+1出力のmに対してゼロを挿入することに注意する。)第2のフィルタの演算の終了時に、マスター制御装置190は第2のフィルタのポインタを更新し、状態を第1のフィルタに戻すように切換え、プロセスは以下の説明および図2および3のフローチャートで説明されているように継続する。
アドレス及び制御ブロック125のレジスタはフィルタまたはフィルタの対に対して適切な値を予めロードされる。ステップ240で、プログラムは動作モードが設定されているか否かをチェックする。設定されているならば、プログラムはステップ245でアナログデジタル変換器からの入力を選択する。プログラムはステップ250で新しいデータ(新しい入力サンプル)をチェックする。マスター制御装置190は新しいデータ信号により示されているようにwrite_dataレジスタ200へ入力サンプルを受信するまでアイドル状態である。マスター制御装置190は第1のフィルタの出力サンプルの処理を開始するためにステップ255でアドレス制御装置機能へGo信号を設定し、第1のサンプルをデータメモリ100へ書込む。プログラムはその後出力サンプル処理の終了を待機するためにステップ260で実行F1状態に入る(「F1」は2つのカスケード接続されたフィルタのうちの第1のものを示している)。アドレス制御装置はステップ315またはステップ325でGo信号をリセットすることによりサンプル処理の終了を通報する。プログラムがこの状態であり、サンプルが計算されない(デクリメントカウンタ180がゼロではない)ならば、エネーブルされるフィルタが1つのみ存在する場合のように、マスター制御装置190はステップ275でアイドル状態に戻ることに注意する。サンプルが計算されないことを示すためにNone信号が245でアドレス制御装置機能により設定される。第2のフィルタが存在するならば、第2のフィルタの制御レジスタはステップ280でアクチブレジスタに移動される。
第2のフィルタサンプルが計算されるならば、プログラムはサンプル結果がAMACパイプライン中の処理を終了したことを示す遅延されたLast信号を待機するためにステップ285で待機状態に入る。サンプル結果値はその後、ステップ290でデータメモリ100に書き込まれ、制御装置がステップ300で実行F2状態(「F2」は2つのカスケード接続されたフィルタの第2のものを指している)に入り、F2値を制御レジスタへ移動してNoneをゼロに設定するときサンプル処理を開始するためにGoが設定される。アドレス制御機能はGoのリセットによりF2出力サンプルの終了を示す。
図3に示されているように、アドレス制御装置機能はメモリアドレッシングのために全てのアドレス計算を行い、AMAC機能を供給するオペランドレジスタに転送する。Go信号がステップ305で存在するならば、アドレス制御装置機能はステップ310でデシメーションカウンタ値185をチェックする。
デシメーション値がステップ310でゼロではないならば、プログラムはステップ315でデシメーションカウンタをデクリメントし、Goをゼロへ、Noneを真へ設定し、そうでなければプログラムは次にステップ320で係数アドレスをチェックし、これが最小のアドレスであるか否かを決定する。最小のアドレスではないならば、デシメーションカウンタはステップ325でデシメーション定数160でロードされ、Goはゼロに設定され、Lastフラグは真に設定され、係数アドレス値145は定数レジスタ175中で最大値に設定される。係数アドレスがその最小値にあるならば、ステップ330でプログラムは係数アドレスをデクリメントし、read_addrレジスタ(135、140)の読取アドレス値におけるデータメモリ100中のデータを第1の加算器のデータレジスタに移動し、現在の係数アドレスにおける係数値を乗算器115に関連される係数レジスタ(coef_1)に移動する。
係数アドレスがその最小値にあるならば、ステップ325後、プログラムはステップ335で奇数タップフィルタについてチェックする。何も存在しないならば、ステップ340でデータは係数データと同様に現在の読取アドレスでデータメモリ100からロードされる。奇数タップフィルタが存在するならば、ステップ345で第1のポート210(data_0)に関連されるデータレジスタはread_addr0 135値により指向される値に設定され、第2のポート220(data_1)に関連されるレジスタはゼロに設定され、係数メモリポート230(coef)に関連されるレジスタは現在の係数アドレスからロードされる。ステップ345からの実行はステップ365へ進み、ここで書込みアドレスがその最小値であるかについてチェックされる。値が最小値であるならば、書込みアドレスレジスタ130はaddr_max定数レジスタ165から最大アドレスに設定され、read_addr0レジスタ135は書込みアドレスに設定され、read_addr1 140は最大のアドレスに設定される。書込みアドレスがその最小ではないならば、ステップ370は書込みアドレスレジスタ130をデクリメントし、書込みアドレスをread_addr0レジスタ135へ移動し、デクリメントされた書込みアドレスをread_addr1 140へ移動する。実行はその後ステップ300へ戻る。
ステップ330から継続して、プログラムはステップ350で、read_addr0レジスタ135の値がその最大であるか否かを決定するようにチェックする。最大ではないならば、読取アドレスはステップ360でデクリメントされ、実行はステップ380へ進む。そうでなければaddr_minレジスタ170の定数がread_addr0レジスタ135へロードされ、実行はステップ380へ進む。
ステップ380はread_addr1 140の値が定数レジスタaddr_min 170の最小のアドレスであるか否かを決定するようにチェックする。最小ではないならば、読取アドレスはデクリメントされ、そうでなければread_addr1 140はaddr_max定数レジスタ165中の値に設定され、実行はステップ300へ進む。
以上説明したように、アドレス制御装置機能はさらに折り返されたFIR演算のためのFIFOおよびLIFOアドレッシングのラップアラウンドを処理する。これはGoのリセットによる計算の完了を示している。
オペランドアドレスレジスタは512×16ビットデータメモリをアドレスするために9ビットであり、係数アドレスレジスタは256×20ビット係数メモリをアドレスするために8ビットであることにも注意すべきである。読者はこれらの値が単なる例示であり、他の構成がメモリ中に異なる寸法のワードを有することができることを認識すべきである。
例示的な実施形態で列挙した値に対応して、オペランド加算レジスタは17ビットであり、被乗数レジスタは37ビットであり、累算器は長さが45ビットである。出力は16ビットに切り捨てられる。
1例として、4の係数により入力サンプル速度をデシメートするために使用される2つのカスケード接続されたローパスフィルタを考慮すると、後続の演算に対してクリーンでエイリアス除去された出力が提示される。
第1のフィルタは2のデシメーションを有する27タップローパスであり、第2のフィルタは同様に2のデシメーションを有する63タップローパスである。入力サンプル速度は毎秒200,000サンプルであり、出力は毎秒50,000サンプルである。フィルタブロックは各出力サンプルが入力サンプル間で時間内に計算されることのできる任意のサンプル速度で動作することに注意すべきである。非常に高いサンプル速度では、付加的な加算、乗算、累算機能が付加されることができ、メモリはメモリ帯域幅を改良するために付加的な係数によりインターリーブされることができる。
例えば27タップフィルタは0から26の記憶メモリアドレスを割当てられ、63タップフィルタはアドレス28乃至90を割当てられる。第1のフィルタの係数はメモリ105のアドレス0乃至13にロードされ、第2のフィルタタップ加重は位置14乃至45に記憶される。マスター制御装置190は各フィルタの現在の状態を維持し、別のフィルタが適切なデシメーションで後続する1つのフィルタ動作を行うように制御を切換える。2のデシメーションは1つおきの出力サンプルのみが計算され、各入力サンプルにおいて出力することを示している。
好ましい実施形態の全体的なブロック図。 好ましい実施形態のマスター制御装置の機能の実行の流れを示すフローチャート。 マスター制御装置のアドレス制御機能における実行の流れを示すフローチャート。

Claims (22)

  1. 2つのデータサンプルのアクセスを同時に許容するための第1及び第2のポートを有するデータメモリと、
    フィルタ係数を記憶するための係数メモリと、
    第1及び第2のポートから読取られるデータサンプルを加算する第1の加算器と、
    係数メモリから読取られた値により第1の加算器からの値を乗算する乗算器と、
    乗算器からの値を累算するための第2の加算器と、
    累算された値をさらに処理または出力するためにデータメモリ中に累算された値を選択的に記憶するように構成されているマスター制御装置とを具備しているデジタルフィルタを構成する集積回路。
  2. データメモリと係数メモリはランダムアクセスメモリで或る請求項1記載の集積回路。
  3. さらに実行されるフィルタに対して適切に値を保持するためのアドレス及び制御ブロックを具備し、そのアドレス及び制御ブロックはデータメモリ及び係数メモリと通信する請求項1記載の集積回路。
  4. アドレス及び制御ブロックはさらに、第1の予め定められたデジタルフィルタに対する値を保持するためのレジスタの第1のセットと、第2の予め定められたデジタルフィルタに対する対応する値を保持するためのレジスタの第2のセットとを具備している請求項3記載の集積回路。
  5. レジスタの第1のセットは少なくとも、
    選択的にデータメモリまたは係数メモリへの次の入力データのアドレスを保持する書込みアドレスレジスタと、
    データメモリの第1のポートから読取られる次のデータのアドレスを保持する第1の読取アドレスレジスタと、
    データメモリの第2のポートから読取られる次のデータのアドレスを保持する第2の読取アドレスレジスタと、
    読取られる次の係数のアドレスを保持する係数アドレスレジスタとを具備している請求項4記載の集積回路。
  6. さらに、予め定められたデジタルフィルタを構成する命令を含んでいるコンピュータが読取可能な媒体を有するマスター制御装置を具備している請求項1記載の集積回路。
  7. 第1及び第2のポートを具備するデータメモリと、係数メモリを設け、
    さらに、デジタルフィルタの動作を制御するためのパラメータの第1のセットを保持するためのアドレス及び制御ブロックを設け、
    フィルタタップの予め定められた数に等しいサイズを有する円形リストとしてアドレス制御ブロック中にデータの現在の書込みアドレスを維持し、
    先入れ先出し待ち行列として第1のデータメモリポートから読取られるデータの第1の読取アドレスを維持し、
    後入れ先出しスタックとして第2のデータメモリポートから読取られるデータの第2の読取アドレスを維持し、
    円形リストとして、2で割算されるフィルタタップの予め定められた数に等しく、フィルタタップ数が奇数ならば切り上げられたサイズを有する係数読取アドレスを維持し、
    アドレス制御ブロック中の現在の書込みアドレスにより決定された位置においてデータメモリ中に入力デジタルサンプルを記憶し、
    データメモリ中の記憶されたサンプルと係数メモリ中の記憶された係数からの出力サンプルを計算するステップを含んでいるデジタルフィルタを構成する方法。
  8. さらに、計算された出力サンプルをデータメモリ中に記憶するステップを含んでいる請求項7記載の方法。
  9. さらに、アドレス制御ブロック中にデシメーションカウンタを維持し、
    各入力サンプルに対して、出力サンプルの計算前に、デシメーションカウンタがゼロになるまでデシメーションカウンタをデクリメントするステップを含んでいる請求項7記載の方法。
  10. 第1及び第2の読取アドレス、書込みアドレス、および係数アドレスはそれぞれのメモリ中に仮想メモリアドレスとして維持される請求項7記載の方法。
  11. 第1及び第2のメモリポートを具備するデータメモリと、係数メモリを設け、
    さらに、第1のデジタルフィルタの動作を制御するためのパラメータの第1のセットと、第2のデジタルフィルタの動作を制御するための値を保持するパラメータの第2のセットとを保持するアドレス及び制御ブロックを設け、
    フィルタタップの予め定められた数に等しいサイズを有する円形リストとしてアドレス制御ブロック中のデータに対する現在の書込みアドレスを維持し、
    先入れ先出し待ち行列として第1のデータメモリポートから読取られるデータの第1の読取アドレスを維持し、
    後入れ先出しスタックとして第2のデータメモリポートから読取られるデータの第2の読取アドレスを維持し、
    円形リストとして、2で割算されるフィルタタップの予め定められた数に等しく、フィルタタップ数が奇数ならば切り上げられたサイズを有する係数読取アドレスを維持し、
    アドレス制御ブロック中の現在の書込みアドレスにより決定された位置においてデータメモリ中に入力デジタルサンプルを記憶し、
    データメモリ中の記憶されたサンプルと係数メモリ中の記憶された係数からの第1のデジタルフィルタの出力サンプルを計算し、
    アドレス制御ブロック中のパラメータの第1のセットをアドレス制御ブロック中のパラメータの第2のセットと交換し、
    データメモリ中の記憶されたサンプルと係数メモリ中の係数中の記憶された係数からのカスケード接続されたデジタルフィルタの出力サンプルを計算し、
    アドレス制御ブロック中のパラメータの第1のセットをアドレス制御ブロック中のパラメータの第2のセットと交換するステップを含んでいるカスケード接続されたデジタルフィルタを構成する方法。
  12. さらに、計算された出力サンプルをデータメモリ中に記憶するステップを含んでいる請求項10記載の方法。
  13. さらに、アドレス制御ブロックにデシメーションカウンタを維持し、
    各入力サンプルに対して、出力サンプルの計算前に、デシメーションカウンタがゼロになるまでデシメーションカウンタをデクリメントするステップを含んでいる請求項10記載の方法。
  14. 第1及び第2の読取アドレス、書込みアドレス、および係数アドレスはそれぞれのメモリ中に仮想メモリアドレスとして維持されている請求項10記載の方法。
  15. 第1及び第2のメモリポートを具備するデータメモリと、係数メモリと、デジタルフィルタの動作を制御するためのパラメータの第1のセットを保持するアドレス及び制御ブロックとを具備しており、装置中にデジタルフィルタを構成する方法を行うためのコンピュータが実行可能な命令を有するコンピュータが読取可能な媒体において、前記方法は、
    フィルタタップの予め定められた数に等しいサイズを有する円形リストとしてアドレス制御ブロック中にデータの現在の書込みアドレスを維持し、
    先入れ先出し待ち行列として第1のデータメモリポートから読取られるデータの第1の読取アドレスを維持し、
    後入れ先出しスタックとして第2のデータメモリポートから読取られるデータの第2の読取アドレスを維持し、
    円形リストとして、2で割算されるフィルタタップの予め定められた数に等しく、フィルタタップ数が奇数ならば切り上げられたサイズを有する係数読取アドレスを維持し、
    アドレス制御ブロック中の現在の書込みアドレスにより決定された位置においてデータメモリ中に入力デジタルサンプルを記憶し、
    データメモリ中の記憶されたサンプルと係数メモリ中の記憶された係数からの出力サンプルを計算する処理を含んでいるコンピュータが読取可能な媒体。
  16. 方法はさらに、計算された出力サンプルをデータメモリ中に記憶するステップを含んでいる請求項15記載のコンピュータが読取可能な媒体。
  17. 方法はさらに、アドレス制御ブロック中にデシメーションカウンタを維持し、
    各入力サンプルに対して、出力サンプルの計算前に、デシメーションカウンタがゼロになるまでデシメーションカウンタをデクリメントするステップを含んでいる請求項15記載のコンピュータが読取可能な媒体。
  18. 第1及び第2の読取アドレス、書込みアドレス、および係数アドレスはそれぞれのメモリ中に仮想メモリアドレスとして維持されている請求項15記載のコンピュータが読取可能な媒体。
  19. カスケード接続されたデジタルフィルタを装置中に構成する方法を行うためのコンピュータが実行可能な命令を有するコンピュータが読取可能な媒体において、装置は、
    第1及び第2のメモリポートを具備するデータメモリと、係数メモリと、第1のデジタルフィルタの動作を制御するためのパラメータの第1のセットと第2のデジタルフィルタの動作を制御するための値を保持するパラメータの第2のセットとを保持するアドレス及び制御ブロックとを具備し、前記方法は、
    フィルタタップの予め定められた数に等しいサイズを有する円形リストとしてアドレス制御ブロック中にデータの現在の書込みアドレスを維持し、
    先入れ先出し待ち行列として第1のデータメモリポートから読取られるデータの第1の読取アドレスを維持し、
    後入れ先出しスタックとして第2のデータメモリポートから読取られるデータの第2の読取アドレスを維持し、
    円形リストとして、2で割算されるフィルタタップの予め定められた数に等しく、フィルタタップ数が奇数ならば切り上げられたサイズを有する係数読取アドレスを維持し、
    アドレス制御ブロック中の現在の書込みアドレスにより決定された位置においてデータメモリ中に入力デジタルサンプルを記憶し、
    データメモリ中の記憶されたサンプルと係数メモリ中の記憶された係数から第1のデジタルフィルタの出力サンプルを計算し、
    アドレス制御ブロック中のパラメータの第1のセットをアドレス制御ブロック中のパラメータの第2のセットと交換し、
    データメモリ中の記憶されたサンプルと係数メモリ中の係数中の記憶された係数からのカスケード接続されたデジタルフィルタの出力サンプルを計算し、
    アドレス制御ブロック中のパラメータの第1のセットをアドレス制御ブロック中のパラメータの第2のセットと交換する処理を含んでいるコンピュータが読取可能な媒体。
  20. 方法はさらに、計算された出力サンプルをデータメモリ中に記憶するステップを含んでいる請求項19記載のコンピュータが読取可能な媒体。
  21. 方法はさらに、アドレス制御ブロック中にデシメーションカウンタを維持し、
    各入力サンプルに対して、出力サンプルの計算前に、デシメーションカウンタがゼロになるまでデシメーションカウンタをデクリメントするステップを含んでいる請求項19記載のコンピュータが読取可能な媒体。
  22. 第1及び第2の読取アドレス、書込みアドレス、および係数アドレスはそれぞれのメモリ中に仮想メモリアドレスとして維持されている請求項19記載のコンピュータが読取可能な媒体。
JP2008529195A 2005-09-02 2006-08-29 共有されるメモリおよび共有される乗算器のプログラム可能なデジタルフィルタ構成 Withdrawn JP2009507423A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/219,376 US20070052557A1 (en) 2005-09-02 2005-09-02 Shared memory and shared multiplier programmable digital-filter implementation
PCT/US2006/033725 WO2007027692A2 (en) 2005-09-02 2006-08-29 Shared memory and shared multiplier programmable digital-filter implementation

Publications (2)

Publication Number Publication Date
JP2009507423A true JP2009507423A (ja) 2009-02-19
JP2009507423A5 JP2009507423A5 (ja) 2009-07-09

Family

ID=37809434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008529195A Withdrawn JP2009507423A (ja) 2005-09-02 2006-08-29 共有されるメモリおよび共有される乗算器のプログラム可能なデジタルフィルタ構成

Country Status (6)

Country Link
US (1) US20070052557A1 (ja)
EP (1) EP1932238A2 (ja)
JP (1) JP2009507423A (ja)
KR (1) KR20080053327A (ja)
CN (1) CN101351791A (ja)
WO (1) WO2007027692A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100835173B1 (ko) * 2006-09-20 2008-06-05 한국전자통신연구원 곱셈 누적 연산을 위한 디지털 신호처리 장치 및 방법
US8751554B2 (en) * 2010-04-26 2014-06-10 Aptina Imaging Corporation Systems and methods for an adjustable filter engine
CN102539864B (zh) * 2010-12-31 2016-01-20 北京普源精电科技有限公司 数字示波器及信号测量方法
US9823928B2 (en) * 2011-09-30 2017-11-21 Qualcomm Incorporated FIFO load instruction
CN102412808B (zh) * 2011-11-25 2015-01-21 南京中新赛克科技有限责任公司 一种基于fpga的高性能多路fir数字抽取滤波器及其读写方法
KR102192991B1 (ko) 2014-04-23 2020-12-18 삼성전자주식회사 가변적인 디지털 필터를 포함하는 아날로그-디지털 컨버터 및 이를 포함하는 이미지 센서
US9571265B2 (en) * 2015-07-10 2017-02-14 Tempo Semicondutor, Inc. Sample rate converter with sample and hold
CN106533392B (zh) * 2016-10-31 2023-09-08 杭州士兰微电子股份有限公司 用于脉宽调制信号的数字滤波器及方法
CN108228480B (zh) * 2017-12-29 2020-11-03 京信通信系统(中国)有限公司 一种数字滤波器及数据处理方法
CN110492867B (zh) * 2019-09-27 2020-06-05 珠海市一微半导体有限公司 一种用数字电路实现的插值滤波器系统
CN111865311B (zh) * 2020-07-27 2024-04-09 中国电子科技集团公司第三十六研究所 一种可变模小数变频并行信号处理装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206821A (en) * 1991-07-01 1993-04-27 Harris Corporation Decimation circuit employing multiple memory data shifting section and multiple arithmetic logic unit section
US5475628A (en) * 1992-09-30 1995-12-12 Analog Devices, Inc. Asynchronous digital sample rate converter
US5450083A (en) * 1994-03-09 1995-09-12 Analog Devices, Inc. Two-stage decimation filter
US6038191A (en) * 1997-10-22 2000-03-14 Texas Instruments Incorporated Circuit for reducing stand-by current induced by defects in memory array
FR2776093A1 (fr) * 1998-03-10 1999-09-17 Philips Electronics Nv Circuit processeur programmable muni d'une memoire reconfigurable, pour realiser un filtre numerique
US6470365B1 (en) * 1999-08-23 2002-10-22 Motorola, Inc. Method and architecture for complex datapath decimation and channel filtering
US6427158B1 (en) * 2000-12-14 2002-07-30 Texas Instruments Incorporated FIR decimation filter and method
US6864812B1 (en) * 2004-02-05 2005-03-08 Broadcom Corporation Hardware efficient implementation of finite impulse response filters with limited range input signals
US7418467B2 (en) * 2004-06-18 2008-08-26 Analog Devices, Inc. Micro-programmable digital filter

Also Published As

Publication number Publication date
CN101351791A (zh) 2009-01-21
EP1932238A2 (en) 2008-06-18
WO2007027692A2 (en) 2007-03-08
KR20080053327A (ko) 2008-06-12
US20070052557A1 (en) 2007-03-08
WO2007027692A3 (en) 2008-09-18

Similar Documents

Publication Publication Date Title
JP2009507423A (ja) 共有されるメモリおよび共有される乗算器のプログラム可能なデジタルフィルタ構成
EP1400016B1 (en) Reconfigurable digital filter having multiple filtering modes
US7489259B2 (en) Sample rate converter and method to perform sample rate conversion
JPH11296493A (ja) デ―タ処理システム用再構成可能コプロセッサ
US5274469A (en) Sample rate converter circuit for image data
JP2009507423A5 (ja)
CN109271133B (zh) 一种数据处理方法及系统
US10949493B2 (en) Multi-functional computing apparatus and fast fourier transform computing apparatus
US6940897B2 (en) System and method for a highly-programmable FIR filter
US20030062927A1 (en) Programmable delay indexed data path register file for array processing
CN103378820A (zh) 可编程数字滤波实现方法、装置、基带芯片及其终端
EP1039635B1 (en) Multi channel filtering device and method
JP6311601B2 (ja) 多段フィルタ処理装置及び方法
JP3880807B2 (ja) デジタルフィルタおよびその処理方法
JP3019767B2 (ja) デジタル信号処理装置
Pristach et al. Enhanced architecture of FIR filters using block memories
WO1991009371A1 (en) Random access fir filtering
JP2622962B2 (ja) Fftアナライザのズーミング装置
Ferry Implementation of FIR filters for fast multi-channel processing
JP6275474B2 (ja) 半導体装置及びデータ転送装置
WO2008004158A1 (en) Method and system for configuration of a hardware peripheral
SZÁNTÓ et al. EFFICIENT MULTI-CHANNEL FIR FILTERS IN FPGA
Hansen Design of a multistage decimation-interpolation filter
JPS6398773A (ja) 畳込み演算処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090522

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100113