DE69838091T2 - Programmierbare Schaltung zur Realisierung eines digitalen Filters - Google Patents

Programmierbare Schaltung zur Realisierung eines digitalen Filters Download PDF

Info

Publication number
DE69838091T2
DE69838091T2 DE69838091T DE69838091T DE69838091T2 DE 69838091 T2 DE69838091 T2 DE 69838091T2 DE 69838091 T DE69838091 T DE 69838091T DE 69838091 T DE69838091 T DE 69838091T DE 69838091 T2 DE69838091 T2 DE 69838091T2
Authority
DE
Germany
Prior art keywords
input
data
filter
output
adder
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.)
Expired - Lifetime
Application number
DE69838091T
Other languages
English (en)
Other versions
DE69838091D1 (de
Inventor
Eric Dujardin
Olivier Gay-Bellile
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69838091D1 publication Critical patent/DE69838091D1/de
Application granted granted Critical
Publication of DE69838091T2 publication Critical patent/DE69838091T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0294Variable filters; Programmable filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0283Filters characterised by the filter structure
    • H03H17/0292Time multiplexed filters; Time sharing filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0227Measures concerning the coefficients
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0238Measures concerning the arithmetic used
    • H03H17/0242Residue number arithmetic
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H21/00Adaptive networks
    • H03H21/0012Digital adaptive filters

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Description

  • Diese Erfindung betrifft eine programmierbare Coprozessor-Schaltung, dafür bestimmt, mit einem Hauptprozessor verbunden zu werden, um einen digitalen Filter zu bilden, eine Schaltung mit mehreren Filter-Prozessor-Elementen, gesteuert von einem Steuerblock, und jeweils mit einem Eingangsdatenregister, wovon ein Leseausgang verbunden ist mit einem Eingang von mindestens einem Addierer, mindestens einem Multiplizierer, von dem ein Eingang angeschlossen ist an einen Ergebnisausgang des Addierers und ein anderer Eingang angeschlossen ist an einen Leseausgang eines Koeffizientenspeichers und wovon ein Ergebnisausgang verbunden ist mit einem Eingang eines so genannten Endaddierers, wovon ein Ausgang bei jedem Uhrzyklus ein Zwischenergebnis der Berechnung einer Gleichung ausgibt.
  • Eine solche Schaltung wird insbesondere in Anwendungen verwendet, wo mehrere Filter notwendig sind, wie bei diversen so genannten „Multimedia-Anwendungen", beispielsweise um die Interferenzen zwischen Symbolen zu reduzieren, um den Datenstrom zu ändern oder um das von einem Kommunikationskanal kommende Rauschen zu reduzieren.
  • Ein digitaler Filter enthält hauptsächlich eine Folge von Elementen, zwischen denen Signale entnommen werden, die verarbeitet, und insbesondere mit einem Koeffizienten multipliziert und/oder addiert werden, um danach woanders wieder eingefügt zu werden. Zur Realisierung von digitalen Filtern kennt man drei Wege:
    • – Verwendung eines Prozessors des so genannten DSP-Typs mit speziellen Algorithmen, um einen Filter zu bilden; wenn dieser Weg auch eine große Flexibilität bietet, ist er dagegen hinsichtlich der Leistungen der Filter begrenzt, insbesondere bei der Geschwindigkeit,
    • – Verwendung von speziellen Schaltungen, die direkt Filter bilden; dies ermöglicht große Leistungen, aber führt zur Entwicklung zahlreicher verschiedener Schaltungen,
    • – Verwendung von speziellen Schaltungen, aber programmierbar; dies bildet einen guten Kompromiss zwischen den hohen Leistungen der speziellen Schaltungen und der guten Flexibilität eines DSP; unter den programmierbaren speziellen Schaltungen unterscheidet man programmierbare Prozessorfilter, d.h. sie bestehen hauptsächlich aus einem DSP-Prozessor, die durch das in einem Filter verlaufende Verfahren auf ein Minimum geschmälert sind. Dies ist die interessanteste Lösung.
  • Eine programmierbarer spezielle Schaltung enthält Register für die Speicherung der programmierbaren Koeffizienten. Sie ist generell zur Realisierung eine besonderen Filtertyps konfiguriert: symmetrisch, Halbband, mit Interpolation, mit Dezimation, adaptiv, komplex. Ein programmierbarer Prozessorfilter ist aus dem Dokument EP 0 732 809 bekannt. Der Prozessor in diesem Dokument ist dazu fähig, zwei in Kaskade geschaltete Filter mit derselben Uhrfrequenz zu berechnen. Er verwendet zwei Register für die Speicherung der Teilergebnisse der zwei Filter.
  • Ein Gegenstand der Erfindung ist die Bereitstellung einer programmierbaren Schaltung, die die Multiplexierung von verschiedenen Filtertypen ermöglicht, selbst wenn sie verschiedene Datenformate und verschiedene Geschwindigkeiten für den Eingang der Daten mit verschiedenen Datenformaten und verschiedenen Geschwindigkeiten für den Eingang der Daten haben.
  • Zu diesem Zweck, zum Multiplexen einer Vielzahl von verschiedenen Filtern, enthält jedes Filter-Prozessor-Element eine Anzahl von Registern mit Teilergebnissen gleich der Anzahl der verschiedenen Filter, die man multiplexen können will, wobei ein Schreibeingang jedes Registers an den Ausgang des Endaddierers angeschlossen ist und ein Leseausgang jedes Registers an einen der Eingänge des Endaddierers angeschlossen ist.
  • Somit können mehrere Filter mit verschiedenen, reellen oder komplexen Datenformaten verarbeitet werden.
  • Andere besondere Ausführungsformen der Erfindung werden aus den Ansprüchen 2 bis 8 ersichtlich.
  • Diese Aspekte der Erfindung sowie noch andere, detailliertere Aspekte werden dank der folgenden Beschreibung einer ein nicht erschöpfendes Beispiel bildenden Ausführungsform eindeutiger ersichtlich.
  • 1 zeigt schematisch ein System zur Berechnung von Filtern.
  • 2 ist ein detaillierteres Schema eines Filter-Prozessor-Elements.
  • 3 ist ein Diagramm, welches die Progression einer Berechnung zeigt.
  • 4 ist ein Schema eines Aktualisierungselements des Filter-Prozessor-Elements der 2.
  • 5 zeigt schematisch die Organisation eines Steuerblocks der Schaltung.
  • Zur Realisierung der verschiedenen Filtertypen geht man von Filtern aus, die begrenzt auf einen Impuls ansprechen: jeder unterschiedliche Filtertyp ist somit ein Filter, der begrenzt auf einen Impuls anspricht, mit Eigenschaften, die der verminderten oder erhöhten Komplexität eines Standardfilters zu Grunde liegen. Die Filtertypen, die die Schaltung verarbeiten können, sind folgende:
    • – symmetrische Filter; sie haben symmetrische Koeffizienten, was beträchtliche Vereinfachungen in Bezug auf die Multiplizierer und Speicher ermöglicht. Tatsächlich sind für einen Filter der Länge L nur ⌈L/2 Koeffizienten, ⌈L/2 Multiplikationen und L-1 Additionen notwendig. Die Gleichung eines symmetrischen Filter ist:
      Figure 00030001
      wobei x(i) das Eingangssignal im Zeitpunkt i ist, n die von einer nicht dargestellten bekannten Uhr getaktete Zeit zeigt, k die Nummer eines Koeffizienten ist und wk ein Koeffizient ist, der dem Koeffizienten k entspricht,
    • – adaptive Filter: dies sind Filter, die sich durch Adaption des Koeffizienten an einen Kommunikationskanal adaptieren können, um ein Fehlersignal zu minimieren. Die Gleichung eines adaptiven Filters ist:
      Figure 00040001
      mit: wk(n + 1) = wk(n) – K × e(n) × x(n – k)* (3)wobei K dem Adaptionsschritt entspricht, x(n – i)* der konjugierte Komplex von x(n – i) ist, wenn die Daten komplex sind, und e(n) der Fehler im Ergebnis ist. Der Fehler wird vom Hostprozessor berechnet. Dieser Algorithmus verwendet komplette Multiplikationen, und um die Komplexität zu vermindern verwendet man eine unterschriebene Version für die Berechnung des Fehlers und für die der Daten, was eine bessere Rechengeschwindigkeit gewährleistet: wk(n + 1) = wk(n) – K × sgn(e(n)) × sgn(x(n – k)*) (4)
    • – Dezimationsfilter: dies sind Filter, bei denen der Datenfluss am Ausgang niedriger ist als am Eingang. Die Gleichung eines Dezimationsfilter ist:
      Figure 00040002
      wobei d(ganzzahlig) der Dezimationsfaktor ist.
  • Schließlich kann man für alle möglichen Filtertypen eine gemeinsame Gleichung definieren:
    Figure 00040003
    in der L die Länge des Filters ist und l die Anzahl an Koeffizienten ist. Im Falle eines nicht symmetrischen Filters wird der zweite Ausdruck (x(dn – L + k + 1)) nicht verwendet.
  • Das Format der Eingangsdaten kann reell oder komplex sein, was auch auf die Koeffizienten zutrifft und es erfordert, komplexe Vorgänge auszuführen. Die Addition von zwei komplexen Daten erfordert zwei reelle Additionen, die Multiplikation eines komplexen Datensatzes mit einem reellen Koeffizient erfordert zwei reelle Multiplikationen und die Multiplikation von zwei komplexen Daten erfordert vier reelle Multiplikationen und zwei reelle Additionen.
  • Die Anzahl an Eingangsdaten und an Koeffizientenwerten, die zu speichern sind, sowie die Anzahl an Multiplikationen und an Additionen, die von den verschiedenen Algorithmen benötigt werden, entsprechen verschiedenen Filtertypen, die begrenzt auf einen Impuls ansprechen, und sie werden berücksichtigt, um die Architektur der Schaltung zu definieren. Die symmetrischen Filter benötigen zweimal mehr an Additionen als an Multiplikationen, obwohl andere Filter dieselbe Anzahl an Multiplikationen und an Additionen verwenden. Da bei der digitalen Kommunikationen weitgehend symmetrische Filter verwendet werden und die marginalen Mehrkosten eines Addierers geringfügig sind wird eine optimierte Architektur für die symmetrischen Filter verwendet. Das Problem der Anzahl an Koeffizienten und an Daten wird mit einer Teilung des Speichers gelöst.
  • Die Schaltung CO-PR der 1 ist ein Coprozessor in Verbindung mit einem Hostprozessor PR-H, und sie kommuniziert mit ihm über einen Bus mit 32 Bits, selbst wenn der digitale Filter nicht so viele parallele Bits erfordert. Sie enthält einen Block I/O, der die Kommunikationen zwischen dem Hostprozessor und dem Coprozessor synchronisiert, sowie einen Steuerblock CONT, der die Charakteristiken des zu realisierenden Filters registriert und die eigentlichen Filter-Prozessor-Elemente FPE steuert. Es sind mehrere Filter-Prozessor-Elemente FPE vorgesehen, um die notwendige Rechenleistung abzugeben, deren Anzahl nc genannt wird.
  • Das Filter-Prozessor-Element der 2 enthält zwei Hauptteile: einen Operationsteil OP und einen Speicherteil MAC. Der Operationsteil enthält die erforderlichen Multiplizierer und Addierer für die Berechnung der Filter und der verwendeten Logik zur Aktualisierung der Koeffizienten der adaptiven Filter. Der Speicherteil enthält einen Speicher w-taps, um alle von den verschiedenen multiplexierten Filtern verwendeten Koeffizienten zu speichern, einen Speicher x-data, um alle von den Filtern verwendeten Eingangsdaten zu speichern, und eine Anzahl NMF an Registern y-data, um die Teilergebnisse der MNF-Filter zu speichern. Die Register y-data sind insbesondere zur Berechnung mit Multiplexierung vorgesehen. Der Eingang w_in dient der Initialisierung des Speichers w-taps.
  • Die Daten werden über zwei Einrichtungsleitungen zwischen den Filter-Prozessor-Elementen übertragen: eine „Hinleitung" Data_inF und eine „Rückleitung" Data_inB. Die Hinleitung überträgt die Daten von links nach rechts. Die Rückleitung überträgt die Daten von rechts nach links; diese Leitung wird nur im Falle von symmetrischen Filtern verwendet. Die Ergebnisse werden von rechts nach links über die Ports y_in und y übertragen.
  • Aufgrund der Tatsache, dass es mehrere mögliche Formate für die Daten gibt, dass eine Dezimation ausgeführt werden kann und dass die Daten reell oder komplex sein können, ist ein Block zur Reorganisation der Daten REORG vorgesehen, versehen mit Mitteln für den Erhalt der Eingangsdaten vom Speicher der Eingangsdaten x-data, um sie zu reorganisieren und an den ersten und zweiten Addierer auszugeben, um den Operationsteil mit adäquaten Daten zu versorgen. Die Daten Xa und Xb, die aus dem Register x-data kommen, die den von der Hinleitung übertragenen entsprechen, werden pro Reorganisationsblock in X'a und X'b transformiert.
  • Der Operationsteil OP enthält einen ersten Addierer 1 und einen zweiten Addierer 2, deren jeweiliger Ausgang an einen respektiven Eingang eines ersten Multiplizierers 3 und eines zweiten Multiplizierers 4 angeschlossen ist, wovon der andere Eingang über einen Anschluss 7 einen Koeffizientenwert vom Koeffizientenspeicher w-taps erhält, und die Ausgänge des ersten und des zweiten Multiplizierers sind jeweils an einen Eingang eines Addierers/Subtrahierers 5 angeschlossen, wovon der Ausgang an einen Eingang eines dritten Addierers 6, den so genannten Endaddierer, angeschlossen ist, wobei der andere Eingang dieses Addierers von einem der Register der Teilergebnisse das im vorhergehenden Zyklus erhaltene Ergebnis y-old erhält und sein Ausgang das Ergebnis zur Berechnung „y" ausgibt, das dem laufenden Zyklus entspricht. Diese zwei Addierer 1, 2, zwei Multiplizierer 3, 4 realisieren die erforderlichen Akkumulationen und Multiplikationen für die Berechnung der Teilergebnisse. Ein Aktualisierungsblock UPD dient im Falle von adaptiven Filtern der Adaption der Koeffizienten. Jeder Multiplizierer 3, 4 mit 32 Präzisionsbits kann als zwei Multiplizierer 16 Bits verwendet werden, um eine komplexe Multiplikation mit 16 Bits in einem Zyklus verarbeiten zu können, und jeder Addierer 1, 2 enthält zwei Addierer 16 Bits. Es sind Wörter mit 8 Bits verwendbar, wobei jeder Operator 16 Bits als zwei Operator 8 Bits betrachtet werden kann. Somit kann ein Filter-Prozessor-Element bis zu vierundzwanzig Vorgänge 8 Bits gleichzeitig verarbeiten. Jeder Operator kann als vier Operator 8 Bits oder als zwei Operator 16 Bits parallel betrachtet werden. Die zwei Addierer 1, 2 werden verwendet, wenn ein Filter symmetrisch ist; in den anderen Fällen werden sie kurzgeschlossen. Der Addierer-Subtrahierer 5 wird als Subtrahierer verwendet, wenn dies wegen einer komplexen Multiplikation erforderliche ist, und in den anderen Fällen als Addierer. Der Block OP realisiert folgende Gleichung: Y(new) = Y – old ÷ (X'a + X'aB) × W0 ± (X'b + X'bB) × w1 wobei ± entweder eine Addition ist (im Falle eines reellen Koeffizienten, von Teilen in Quadratur oder einer komplexen Multiplikation), oder eine Subtraktion (im Falle von Teilen in Phase einer komplexen Multiplikation); w0 und w1 sind entweder zwei aufeinanderfolgende reelle Koeffizienten oder ein komplexer Koeffizient; X'a und X'b sind Eingangsdaten der Hinleitung; X'aB und X'bB sind Eingangsdaten der Rückleitung, ihre Werte sind Null, wenn der Filter nicht symmetrisch ist; y(new) ist der Wert, zuletzt berechnet, des Teilergebnisses y, wobei allerdings y-old entweder der vorhergehende Wert von y oder das Teilergebnis eines anderen Filter-Prozessor-Elements y-in ist.
  • Der Aktualisierungsblock UPD, in 4 mehr im Detail dargestellt, erhält einen Datensatz „sgn_err", der im Falle eines adaptiven Filters vom Hostprozessor berechnet wird, und er wendet den in Gleichung 3 dargestellten Algorithmus an. Aufgrund der Pipeline-Organisation und der Kommunikationszeit zwischen dem Coprozessor und dem Hostprozessor ist der Fehler mit einer gewissen Verzögerung verfügbar, und während dieser Zeit wird das Zeichen der Daten gespeichert. Der Block enthält folglich ein Register sgn_x, um das Zeichen sgn eines Datensatzes Xa zu speichern, während man auf das Zeichen sgn_err des zu berechnenden Fehlers wartet; er enthält außerdem ein Exklusiv-Oder-Gatter XOR mit zwei Eingängen, dem, um ein Zeichenbit zu schaffen, respektive das Zeichen sgn und das Zeichen sgn_err zugeführt werden, und dessen Ausgang an einen Eingang eines Addierers-Subtrahierers +/– angeschlossen ist, der an einem anderen Eingang, kommend aus dem Speicher w-taps über den Anschluss 7 der 3, einen Koeffizientenwert w in erhält, und an noch einem anderen Eingang eine Konstante K, blockintern und entsprechend dem Adaptionsschritt. Der Addierer-Subtrahierer gibt einen Koeffizientenwert w_out aus, der im Koeffizientenspeicher zu speichern ist.
  • 3 zeigt die zeitliche Progression der Berechnung eines Filter mit 4 Koeffizienten w0, w1, w2, w3 mit zwei Filter-Prozessor-Elementen FPE0 und FPE1. Ein Punkt entspricht der Berechnung eines Koeffizienten. Die Zahl neben jedem Punkt zeigt den Zeitpunkt der Berechnung an. Im selben Moment wird von demselben Filter-Prozessor-Element ein Satz mit vier Berechnungen realisiert. Ein vertikaler Pfeil zeigt die Propagation der Ergebnisse y(n), die diagonalen Pfeile zeigen die spatiale Progression der x Datenunterwörter. Die Subdivision in Unterwörter ändert nicht die Berechnung eines Ergebnisses, sondern nur die Progression der Daten zwischen verschiedenen Rechenergebnissen. Es werden bei jeder Iteration mehrere Daten verwendet (Daten im grauen Rechteck); der erste Satz wird von dem Punkt oben rechts verwendet, während der letzte dem Punkt unten links entspricht, x(dn) wird für die Berechnung von y(n) entsprechend dem Punkt oben rechts verwendet, x(dn – nt + 1) wird für die Berechnung von y(n) entsprechend dem Punkt unten rechts verwendet und x(d(n – px + 1) wird für die Berechnung von y(npx + i) entsprechend dem Punkt oben links verwendet. Die Anzahl der zu lesenden Daten ist somit Rp = (px – 1)d + nt. Außerdem enthält jedes Wort mit 32 Bits px Daten, wobei sich die zu lesende Anzahl der angrenzenden Wörter mit 32 Bits liest:
    Figure 00080001
  • Somit steigt die Anzahl des Lesens mit d an. Mit zwei Lese-Ports für den Speicher x-data ist es möglich, Filter mit Dezimation eines Faktors von zwei zu realisieren. Im Falle von symmetrischen Filtern werden zweimal mehr Eingangsdaten gieichzeitig verwendet, wobei ein viermaliges Lesen 32 Bits für den Speicher x-data notwendig ist. Es werden für jedes der Teilergebnisse (nt = 1 oder 2) höchstens zwei verschiedene Koeffizienten gleichzeitig verwendet; Folglich, da nur Präzisionsberechnungen mit 16 und 8 Bits zulässig sind, ist ein Lesen 32 Bits für den Speicher w-taps notwendig; px aufeinanderfolgende Teilergebnisse werden verwendet, wobei ein Lesen 32 Bits für die Register y-data notwendig ist.
  • Für die Initialisierung oder Aktualisierung der Koeffizienten ist ein Schreiben 32 Bits im Speicher w-taps notwendig; pc aufeinanderfolgenden reelle Produkte werden gespeichert, und ein Schreiben 32 Bits ist für die Register y-data notwendig. Während der Berechnung eines neuen Ergebnissatzes px kommen dpx neue Eingangsdaten an; wenn es keine Dezimation gibt, ist ein Schreiben 32 Bits für den Speicher x-taps notwendig; im Falle von Dezimationsfiltern sind mehrere Iterationen notwendige, um die Daten wegen des begrenzten Durchlassbands bei der Verbindung mit dem Hostprozessor (px Daten bei jedem Zyklus) zu speichern.
  • Jeder Filter wird in kleinere Filter identischer Länge geteilt, gleichzeitig auf systolische Art berechnet; somit berechnet jedes Filter-Prozessor-Element einen Filter mit denselben Charakteristiken; er erfordert dieselben Steuerungen wie die anderen. Folglich reicht ein einziger Steuerblock ungeachtet der Anzahl an Filter-Prozessor-Elementen aus. Der Steuerblock der 5 enthält vier Register der Größe NMF, wobei NMF die höchste Anzahl an Filtern ist, die multiplexiert werden kann. Dieser Steuerblock hat mehrere Aufgaben:
    • – er speichert in einem Register „TYPE" die Charakteristiken jedes Filters, wie die Anzahl an Koeffizienten,
    • – er speichert in einem Register „FILT LNG" die Charakteristiken jedes Filters, wie die Anzahl an Koeffizienten,
    • – er speichert in einem Register „CURR ADR" die laufenden Adressen im Speicher und 30 in einem Register „BDNS" die Ober- und Untergrenzen der Teile der Datenregister und der Koeffizienten, die verwendet werden,
    • – er erzeugt dank einem Block „ADD GEN" die notwendigen Adressen für die Filter-Prozessor-Elemente,
    • – er steuert den Reorganisationsblock sowie die Kommunikationen zwischen den Filter-Prozessor-Elementen.
  • Der Verwaltungsblock MUX MNG ist eine Kombinations-Logikschaltung, die die Datenkommunikationen im Coprozessor unter Berücksichtigung vom Filtertyp steuert.
  • Figuren
    • PR-H
      = Hostprozessor
      I/O
      = Block
      CONT
      = Steuerblock
      CO-PR
      = Coprozessor
      FPE
      = Filter-Prozessor-Elemente
      Y
      = Teilergebnis
      y
      = Ports
      w
      = Koeffizientenwert
      x
      = Eingangssignal
      Data_inF
      = Hinleitung
      Data_inB
      = Rückleitung
      in
      = ein
      data
      = Daten
      taps
      = Speicher
      MAC
      = Speicherteil
      out
      = aus
      REORG
      = Datenreorganisationsblock
      UPD
      = Aktualisierungsblock
      old
      = alt
      sgn
      = Zeichen
      err
      = Fehler
      OP
      = Operationsteil
      XOR
      = Exklusiv-Oder-Gatter
      UPD
      = Aktualisierungsblock
      TYPE
      = Register
      FILT LNG
      = Register
      CURR ADR
      = Register
      BDNS
      = Register
      MUX MNG
      = Verwaltungsblock
      ADD GEN
      = Block

Claims (8)

  1. Programmierbare Coprozessor-Schaltung, dafür bestimmt, mit einem Hauptprozessor verbunden zu werden, um einen digitalen Filter zu bilden, eine Schaltung mit mehreren Filter-Prozessor-Elementen, gesteuert von einem Steuerblock, und jeweils mit einem Eingangsdatenregister (x-data), wovon ein Leseausgang verbunden ist mit einem Eingang von mindestens einem Addierer (1), mindestens einem Multiplizierer (3), von dem ein Eingang angeschlossen ist an einen Ergebnisausgang des Addierers und ein anderer Eingang angeschlossen ist an einen Leseausgang eines Koeffizientenspeichers (w-taps) und wovon ein Ergebnisausgang verbunden ist mit einem Eingang eines so genannten Endaddierers (6), wovon ein Ausgang bei jedem Uhrzyklus ein Zwischenergebnis der Berechnung einer Gleichung ausgibt, dadurch gekennzeichnet, dass zum Multiplexen einer Vielzahl von verschiedenen Filtern mit verschiedenen Datenformaten und verschiedenen Geschwindigkeiten für den Eingang der Daten jedes Filter-Prozessor-Elements eine Anzahl von Registern mit Teilergebnissen (y-data) gleich der Anzahl der verschiedenen Filter enthält, die man multiplexen können will, wobei ein Schreibeingang jedes Registers an den Ausgang des Endaddierers (6) angeschlossen ist, und ein Leseausgang jedes Registers an einen der Eingänge (y-old) des Endaddierers angeschlossen ist.
  2. Programmierbare Coprozessor-Schaltung nach Anspruch 1, dadurch gekennzeichnet, dass jedes Filter-Prozessor-Element zwei Addierer enthält, die jeweils vom Speicher der Eingangsdaten zwei zu addierende Eingangsdaten erhalten.
  3. Programmierbare Coprozessor-Schaltung nach Anspruch 2, dadurch gekennzeichnet, dass sie einen Block zur Reorganisation von Daten enthält, der mit Mitteln für den Erhalt der Eingangsdaten vom Speicher der Eingangsdaten versehen ist, um sie zu reorganisieren und an die zwei Addierer auszugeben.
  4. Programmierbare Coprozessor-Schaltung nach Anspruch 2, dadurch gekennzeichnet, dass jedes Filter-Prozessor-Element zwei Multiplizierer enthält, mit jeweils einem Eingang, angeschlossen an einen Ergebnisausgang einer der zwei Addierer.
  5. Programmierbare Coprozessor-Schaltung nach Anspruch 4, dadurch gekennzeichnet, dass die Ausgänge jeder der beiden Multiplizierer jeweils an einen Eingang eines Addierers/Subtrahierers angeschlossen sind, wovon ein Ausgang an einen Eingang des Endaddierers angeschlossen ist.
  6. Programmierbare Coprozessor-Schaltung nach Anspruch 1, dadurch gekennzeichnet, dass sie einen Aktualisierungsblock enthält, versehen mit Mitteln für die Verarbeitung der Koeffizienten, die aus dem Koeffizientenspeicher kommen, um sie wieder in dieser Speicher einzugeben.
  7. Programmierbare Coprozessor-Schaltung nach Anspruch 6, dadurch gekennzeichnet, dass der Aktualisierungsblock ein Exklusiv-Oder-Gatter mit zwei Eingängen enthält, dem respektive ein Datensignal kommend aus dem Datenspeicher und ein Fehlersignal aus dem Hauptprozessor zugeführt werden und wovon ein Ausgang an einen Eingang eines Addierers angeschlossen ist, der an einem anderen Eingang einen aus dem Koeffizientenspeicher kommenden Koeffizientenwert erhält und mit Mitteln versehen ist, um einen im Koeffizientenspeicher zu speichernden Koeffizientenwert auszugeben.
  8. Programmierbare Coprozessor-Schaltung nach Anspruch 1, dadurch gekennzeichnet, dass der Steuerblock mehrere Registerblöcke enthält mit jeweils einer Anzahl an Registern gleich der Anzahl an Filtern, die multiplexiert sein können, um die Charakteristiken jedes Filters und die laufenden Adressen im Speicher zu speichern.
DE69838091T 1997-12-23 1998-12-16 Programmierbare Schaltung zur Realisierung eines digitalen Filters Expired - Lifetime DE69838091T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9716306 1997-12-23
FR9716306 1997-12-23

Publications (2)

Publication Number Publication Date
DE69838091D1 DE69838091D1 (de) 2007-08-30
DE69838091T2 true DE69838091T2 (de) 2008-03-20

Family

ID=9514959

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69838091T Expired - Lifetime DE69838091T2 (de) 1997-12-23 1998-12-16 Programmierbare Schaltung zur Realisierung eines digitalen Filters

Country Status (5)

Country Link
US (1) US6279020B1 (de)
EP (1) EP0926823B1 (de)
JP (1) JP4854826B2 (de)
KR (1) KR19990063536A (de)
DE (1) DE69838091T2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100335252B1 (ko) * 2000-03-30 2002-05-06 정명식 비트 분리 구조의 고속 디지털 필터
FR2808139B1 (fr) 2000-04-25 2003-01-03 Saint Louis Inst Procede de filtrage a large dynamique pour filtre numerique recursif implante dans un processeur de signal dsp travaillant avec des nombres entiers
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
KR100423503B1 (ko) * 2001-09-14 2004-03-18 삼성전자주식회사 디지털영상 처리 장치 및 방법
US8412915B2 (en) * 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US20030108012A1 (en) * 2001-12-12 2003-06-12 Quicksilver Technology, Inc. Method and system for detecting and identifying scrambling codes
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US20040024802A1 (en) * 2002-08-05 2004-02-05 Khan Raheel Ahmed High-performance programmable processing element for GF (2N)
US7353243B2 (en) * 2002-10-22 2008-04-01 Nvidia Corporation Reconfigurable filter node for an adaptive computing machine
CN103098371B (zh) * 2011-09-02 2016-04-13 松下知识产权经营株式会社 对称型滤波运算装置以及对称型滤波运算方法
US9977601B2 (en) * 2016-03-17 2018-05-22 Ceva D.S.P. Ltd. Data load for symmetrical filters
FR3128542B1 (fr) * 2021-10-22 2023-11-03 St Microelectronics Grenoble 2 Circuit intégré comprenant un calculateur matériel et procédé de calcul correspodant.

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131924A (ja) * 1989-10-18 1991-06-05 Hitachi Ltd 情報処理装置
JPH0438005A (ja) * 1990-06-04 1992-02-07 Nec Corp ディジタル信号処理回路
JP2703126B2 (ja) * 1991-04-23 1998-01-26 三菱電機株式会社 A/d,d/a変換装置
DE69325786T2 (de) * 1992-12-04 2000-02-17 Koninkl Philips Electronics Nv Prozessor für gleichförmige Operationen auf Datenreihenfolgen in entsprechenden parallelen Datenströmen
TW290769B (de) * 1994-11-15 1996-11-11 Matsushita Electric Ind Co Ltd
FR2731854B1 (fr) * 1995-03-14 1997-04-25 Thomson Consumer Electronics Dispositif de filtrage digital
JP3125672B2 (ja) * 1996-01-26 2001-01-22 日本電気株式会社 ディジタルフィルタ
JPH09265103A (ja) * 1996-03-28 1997-10-07 Toppan Printing Co Ltd 液晶パネル体及びその製造方法
US5933797A (en) * 1997-02-28 1999-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive dual filter echo cancellation

Also Published As

Publication number Publication date
EP0926823A1 (de) 1999-06-30
DE69838091D1 (de) 2007-08-30
US6279020B1 (en) 2001-08-21
JPH11266140A (ja) 1999-09-28
JP4854826B2 (ja) 2012-01-18
KR19990063536A (ko) 1999-07-26
EP0926823B1 (de) 2007-07-18

Similar Documents

Publication Publication Date Title
DE69838091T2 (de) Programmierbare Schaltung zur Realisierung eines digitalen Filters
DE69924170T2 (de) Programmierbare Verarbeitungsschaltung mit einem rekonfigurierbaren Speicher zur Darstellung eines digitalen Filters
DE2752724C2 (de) Digital-Modem
DE10085322B4 (de) Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form
DE19835216B4 (de) Prozessor und Verfahren zur parallelen Datenverarbeitung
DE3044208C2 (de) Interpolator zur Erhöhung der Wortgeschwindigkeit eines digitalen Signals
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE2628473B2 (de) Digitales Faltungsfilter
DE3209450A1 (de) Digitalfilterbank
DE2911096C2 (de)
DE2145404A1 (de) Nichtrekursive Digitalfiltereinrichtung mit Verzögerungs- und Addier-Anordnung
DE19625569A1 (de) Signalprozessor
DE3306306C2 (de)
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE102020105536A1 (de) Maschinenlerntrainingsarchitektur für programmierbare Vorrichtungen
EP0149785B1 (de) Verfahren und Schaltungsanordnung zur Digitalsignalverarbeitung nach Art eines vorzugsweise adaptiven Transversalfilters
DE2603791B2 (de) Verfahren und schaltungsanordnungen zur deltamodulationsuebertragung
EP0660246A2 (de) Signalprozessor
DE3447634C2 (de)
EP1297669B1 (de) Viterbi-entzerrung mittels vorausberechneter metrikinkremente
DE2451235A1 (de) Schaltungsanordnung fuer ein digitales filter
EP0598112B1 (de) Verfahren und anordnung zum bilden der summe einer kette von produkten
EP0256286B1 (de) Filteranordnung
EP0090904B1 (de) Schaltungsanordnung für seriell arbeitende Digitalfilter
DE69821145T2 (de) Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz

Legal Events

Date Code Title Description
8320 Willingness to grant licences declared (paragraph 23)
8364 No opposition during term of opposition