DE69821145T2 - Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz - Google Patents

Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz Download PDF

Info

Publication number
DE69821145T2
DE69821145T2 DE69821145T DE69821145T DE69821145T2 DE 69821145 T2 DE69821145 T2 DE 69821145T2 DE 69821145 T DE69821145 T DE 69821145T DE 69821145 T DE69821145 T DE 69821145T DE 69821145 T2 DE69821145 T2 DE 69821145T2
Authority
DE
Germany
Prior art keywords
coefficient
adders
combination
block
logic
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 - Fee Related
Application number
DE69821145T
Other languages
English (en)
Other versions
DE69821145D1 (de
Inventor
Rakesh-Stmicroelectronics Limited Malik
Puneet Goel
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.)
STMicroelectronics Ltd Great Britain
STMicroelectronics Pvt Ltd
STMicroelectronics Asia Pacific Pte Ltd
STMicroelectronics Pte Ltd
Original Assignee
STMicroelectronics Ltd Great Britain
STMicroelectronics Pvt Ltd
STMicroelectronics Asia Pacific Pte Ltd
STMicroelectronics Pte Ltd
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 STMicroelectronics Ltd Great Britain, STMicroelectronics Pvt Ltd, STMicroelectronics Asia Pacific Pte Ltd, STMicroelectronics Pte Ltd filed Critical STMicroelectronics Ltd Great Britain
Publication of DE69821145D1 publication Critical patent/DE69821145D1/de
Application granted granted Critical
Publication of DE69821145T2 publication Critical patent/DE69821145T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • H03H17/0223Computation saving measures; Accelerating measures
    • 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/0225Measures concerning the multipliers
    • 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
    • H03H2218/00Indexing scheme relating to details of digital filters
    • H03H2218/08Resource sharing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H2218/00Indexing scheme relating to details of digital filters
    • H03H2218/10Multiplier and or accumulator units

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung bezieht sich auf flächeneffiziente Realisierung von Koeffizientenblock [A] oder Architektur [A] mit auf diesen Block angewendeten Hardwareteilungs- bzw. Mitbenutzungstechniken und Optimierungen. Der Koeffizientenblock [A] ist mit Koeffizientenleitungen (CLin 0, CLin_1, ..., CLin_n und BLin_0, BLin_1, ... BLin_n) verbunden zur Durchführung von Filterungsoperationen oder einer mathematischen Berechnungsoperation mit Hardwareoptimierung und sieht eine latenzfreie Ausgabe (Nulllatenzausgabe), d. h. eine Ausgabe ohne Taktverzögerung vor. Die Erfindung liefert auch die flächenminimale Realisierung digitaler Filter basierend auf dem Koeffizienzblock [A] bei Operation in Bit-serieller Art und Weise. Die Optimierungstechniken und Struktur der vorliegenden Erfindung sind gut für Bit-serielle Digitalfilter wie typischerweise einem Filter mit endlicher Impulsantwort (finite impulse response, FIR), Filter mit unendlicher Impulsantwort (infinite impulse response, IIR) und für andere Filter und Anwendungen basierend auf kombinatorischer Logik bzw. Schaltungslogik bestehend aus Verzögerungselement (T), Multiplizierer (M), Serienaddierer (SA) und Seriensubtrahierer (SS).
  • KURZE BESCHREIBUNG DER BEILIEGENDEN ZEICHNUNGEN
  • In den beiliegenden Zeichnungen:
  • 1 zeigt das Gebiet der Erfindung, Anwendungen des Geräts.
  • 2 zeigt das Symbol von im Gerät verwendeten Komponenten.
  • 3 zeigt die Beschreibung von im Gerät verwendeten Komponenten.
  • 4 zeigt die Bit-seriellen FIR-Filter-Implementierungen.
  • 5 zeigt ein Beispiel eines FIR-Filters.
  • 6 zeigt eine der bekannten Minimierungstechniken aufgrund der Koeffizientensymmetrie.
  • 7 zeigt die Struktur einer früheren/bekannten Implementierungstechnik für den Koeffizientenblock.
  • 8 zeigt die allgemeine Struktur einer früheren/bekannten Implementierungstechnik eines Koeffizientenblocks.
  • 9 zeigt die im FIR-Filter verwendete Minimierungstechnik.
  • 10 zeigt die verallgemeinerte Struktur der im FIR-Filter verwendeten Minimierungstechnik.
  • 11 zeigt die minimierte Struktur dieses Beispiel-FIR-Filters der vorliegenden Erfindung.
  • 12 zeigt die verallgemeinerte optimierte Struktur der vorliegenden Erfindung.
  • 13 zeigt die anderen Vorteile der Struktur der vorliegenden Erfindung, d. h. direktes Erhalten der parallelen Ausgabe.
  • 14 zeigt einen Implementierungsablauf einer ersten Filtergleichung.
  • 15 zeigt einen Implementierungsablauf einer zweiten Filtergleichung.
  • Details von in der Beschreibung verwendeten Elementen/Symbolen die in der Konzeption verwendete Symbole der grundlegenden Komponenten sind in 2 der Zeichnungen gezeigt. Zusätzlich werden Erläuterungen und Verwendungen des Geräts im Text unten gegeben und in 3 und 4 der Zeichnungen dargestellt.
  • Einheitsverzögerung (T)
  • Es handelt sich um ein Ein-Bit-Verzögerungselement. Es führt auch die Funktion eines Multiplizierers um einen Faktor 2 aus. [z.B. für den seriellen Eingaberahmen (0101011 in binärer oder 43 in ganzzahliger Darstellung) ist die Ausgabe dieses Blocks (01010110 in binärer oder 86 in ganzzahliger Darstellung)). Dieses Element ist für gewöhnlich ein Flip-Flop (D-Flip-Flop, J-K-FIip-Flop usw.)
  • Volladdierer (FA)
  • Er führt binäre Addition durch. Die Eingänge in dieses Element sind A, B, Cin (Übertrag ein, Carryin) während die Ausgänge Z und Cout (Stellen-Übertrag aus, Carryout) sind. Die Wahrheitstabelle der Volladdiererfunktionalität ist in 3 der Zeichnungen gezeigt.
  • Vollsubtrahierer (FS)
  • Er führt binäre Subtraktion durch. Die Eingänge in dieses Element sind A, B, Cin (Übertrag ein, Carryin) während die Ausgänge Z und Cout (Übertrag aus, Carryout) sind. Die Wahrheitstabelle für Vollsubtrahiererfunktionalität ist in 3 der Zeichnungen gezeigt.
  • Serieller Addieren (SA) und serieller Subtrahierer (SS)
  • Er führt Addition/Subtraktion zweier serieller Rahmen, x1(nT), x2(nT) durch zum Erzeugen einer Ausgabe y(nT) dargestellt als x1(nT) + x2(nT) oder x1(nT)x2(nT). Der Serienaddierer bzw. serielle Addierer (oder Subtrahierer) ist implementiert unter Verwendung eines Volladdierers (oder Subtrahierers) mit einem Flip-Flop wie in 3 der Zeichnungen gezeigt ist. Der Ausgang Cout eines Volladdierers/Subtrahierers wird verzögert unter Verwendung des Einheitsverzögerungselements (T) und wird angelegt an die Cin-Leitung des Volladdierers/Subtrahierers. Das bewegt den Volladdierer/Subtrahierer und das Einheitsverzögerungselement [T] zusammen als serieller Addierer (SA/SS) zu funktionieren, wobei A, B die Eingänge dieses Elements sind und Z der Ausgang ist. (z. B. serielle Addition ist wie folgt, falls x1(nT) = 0110 (6 als ganze Zahl) und x2(nT) = 0111 (7 als ganze Zahl) ist, dann ist y(nT) = 01101 (13 in ganzzahliger Darstellung)).
  • Serieller Multiplizierer (M) bzw. Serienmultiplizierer
  • Er multipliziert zwei serielle Eingangsrahmen X(nT) und m. Die Ausgabe ist als Funktion dargestellt als Y(nT) = X(nT)*m. Ein serieller Koeffizientenmultiplizierer (M) kann implementiert werden mittels Schieberegister unter Verwendung von Einheitsverzögerungselementen [T] und Addiererelementen [SA] (eine Schiebung bzw. Verschiebung bedeutet Multiplizieren mit einen Faktor 2). Wie in 3 der Zeichnungen gezeigt ist, wird der Multiplizierer gebildet durch die Addition der Ausgänge die Einsen in der binären Darstellung des Koeffizienten entsprechen.
  • Verzögerung (Z–1)
  • Verzögerung um einen Datenrahmen wird mittels dem Schieberegister (Serien von Flip-Flops (T) verbunden zum Speichern und Schieben des Eingangsrahmens) durchgeführt. Die Anzahl der Einheitsverzögerung (T) in einem Verzögerungselement ist gleich der Rahmengröße der Eingabe.
  • STAND DER TECHNIK ODER EXISTIERENDE FILTERIMPLEMENTIERUNG
  • Die folgende Beschreibung erörtert die zur Implementierung der Architektur verwendeten Elemente und die existierenden Implementierungen für Digitalfilter. Die vorgeschlagene Minimierung ist erweiterbar auf andere Anwendungen wie beispielsweise digitale Signalverarbeitungsgebiete und digitale Entwürfe.
  • Ab hier wird die Veranschaulichung mit einem FIR-Filter durchgeführt der wie früher beschrieben auf andere Filter erweiterbar ist. 4 zeigt die bestehende Struktur Bit-serieller FIR-Filter mit Koeffizientenleitungen CLin 0, CLin_1, ..., CLin_n und dem Koeffizientenblock [A] mit den Koeffizienten c(0), c(1), c(2), ..., c(n). Der Koeffizientenblock ist verbunden mit Verzögerungselementen [Z–1 und seriellen Addierern [SA] zum Bilden der Filterstruktur.
  • Ein Verfahren zum Einbeziehen der Verzögerungsleitung in den Berechnungsvorgang wurde vorher verwendet siehe P. Duncan et al. „Strategies für Design Automation of High Speed Digital Filters", J. of VLSI Signal Processing, Dordrecht, 1995, Nr. 9, Seiten 105 bis 118 insbesondere 2, 7 und 10.
  • Die FIR-Filtergleichung im Zeit- und Frequenzbereich ist wie folgt angegeben Y(n) = c(0)X(n) + c(1)X(n – 1) + c(2)X(n – 2) + ... c(n)X(0) Y(z) = X(z)[c(0 ) + c(1)Z–1 + c(2)Z–2 + c(3)Z–3 + c(4)Z–4 + c(5)Z–5 + c(6)Z–6 + ... + c(n)Z–n]wobei X, Y die Eingabe bzw. Ausgabe sind und c(0), c(1 ), ..., c(n) den Koeffizientenwert repräsentieren der die Charakteristiken des Filters definiert und jeder Verzögerungs-[Z–1]-Block repräsentiert eine Abtastungsverzögerung um eins. Die Filtergleichung kann auf zwei Arten implementiert werden wie in 4 der Zeichnungen gezeigt ist.
  • In Implementierung 1 sind die Koeffizientenleitung CLin 0, Clin_1, ..., CLin_n gemeinsam und mit dem Eingang X[n] verbunden. Die Ausgabeleitungen CLout 0, CLout 1, ..., CLout_n sind verbunden mit einem Verzögerungsblock [E], der aus Verzögerungselementen [Z–1] und Serienaddierern [SA] besteht. Die Struktur macht die Realisierung eines teilbaren bzw. gemeinsam nutzbaren Multiplizierers im Koeffizientenblock [A] einfach. Ein Beispiel eines gemeinsamen nutzbaren Multiplizierers mit Koeffizientenwerten 3, 11 ist in 4 illustriert. Die getrennte Realisierung dieser Koeffizienten würde vier Einheitsverzögerungselemente und drei serielle Addierer benötigen. Dadurch, dass die Koeffizientenleitungen CLin 0, CLin_1, ... gemeinsam sind wird die Hardware unter Verwendung von drei Einheitsverzögerungselementen und zwei seriellen Addierern realisiert. Ein anderes Merkmal dieser Struktur ist, dass die Struktur verglichen mit der Implementierung 2 mehr Speicherfläche, dargestellt durch [Z–1, benötigt, da die Speicherung nach der Multiplikation durchgeführt wird. Für Eingangsrahmen mit n-Bit und Koeffizienten der Größe m-Bit beträgt die Speicherfläche von jedem Verzögerungselement [Z–1] (m + n). Die Gesamtspeicherraum der Verzögerungselemente ist gleich zu (m + n) (Anzahl der Koeffizienten –1).
  • In Implementierung 2 sind die Koeffizientenleitungen CLin 0, CLin_1, ... nicht gemeinsam. Durch die Verbindung verschiedener Eingangsleitungen mit allen den Koeffizientenelementen [c(0), c(1), ...] ist die Realisierung des Koeffizientenblocks [A] unter Verwendung gemeinsam nutzbarer Elemente nicht vorhanden. Ein anderes Merkmal dieser Struktur ist, dass sie inhärent weniger Speicherraum, dargestellt als [Z–1] benötigt im Gegensatz zu früheren Imple mentierungen wird die Speicherung hier vor der Multiplikation durchgeführt. Für Eingangsrahmen mit m-Bit und Koeffizienten der Größe n-Bit ist die Speicherfläche für jedes Verzögerungselement [Z–1] m. Der Gesamtspeicherraum beträgt m*(Anzahl der Koeffizienten –1).
  • Die Erfindung ist vorgeschlagen bezüglich der Reduzierung der Fläche des Koeffizientenblocks [A] und besitzt gemeinsam nutzbare Elemente bezüglich der Koeffizienten selbst falls die Koeffizientenleitungen CLin 0, CLin_1, ... nicht gemeinsam verbunden sind. Für eine existierende Konfiguration wie in 7 und 8 gezeigt ist, ist die Teilungsfähigkeit bzw. Fähigkeit zur gemeinsamen Nutzung von Hardware im Koeffizientenblock [A] eine Beschränkung.
  • Wie im früheren Abschnitt ist Implementierung 2 auch flächeneffizient in Bezug auf die Implementierung 1 aufgrund der reduzierten Verzögerungselementengröße. Darüber hinaus wird durch den Besitz gemeinsam nutzbarer Multiplizierer oder eines reduzierten Koeffizientenblocks [A], die die Schlüsselmerkmale der Erfindung sind, die Implementierung 2 noch flächeneffizienter. Diese Reduzierung ist erweiterbar auf andere, auf Koeffizientenblock [A] basierenden Filtern, wie im ersten Abschnitt dargestellt. Die vorliegende Erfindung operiert mit ganzzahligen Koeffizienten.
  • Ferner, sei Norsworthy and Crochiere (Delta-Sigma Data Converters IEEE press, Seiten 435, Copyright 1997) zitiert:
  • „Bit-serielle Architektur reduziert die Zwischenprozessorkommunikation herunter auf 1 Bit. Im Allgemeinen ist die Anzahl von Prozessoren sehr groß, aber weil jeder Prozessor so klein ist, ist die Gesamtwirtschaftlichkeit sehr hoch. Bit-serielle Architekturen sind für gewöhnlich am effizientesten für Filter die wenige Zustandsvariablen besitzen, wie beispielsweise IIR-Filter und die Wellendigitalfilter. Aus diesem Grund werden Bit-serielle Techniken weniger häufig auf FIR-Strukturen angewendet, insbesondere wenn die Filterlänge relativ lang ist ..."
  • Die vorliegende Erfindung wendet jedoch Optimierungstechniken zum Reduzieren der Fläche bei großen Koeffizientengrößen an durch die Anwendung einer Anzahl von Optimierungen in FIR/IIR-Filterstrukturen.
  • Zum würdigen der Optimierungstechniken des Anmelders betrachtet man einen FIR-Filter mit Koeffizienten zu 5, 14, 25, 30, 25, 14 und 5. Obwohl die Größe der Koeffizienten in diesem Beispiel klein ist, ist es ausreichend um die Minimierungsvorschläge zu würdigen. In den meisten der praktischen Fälle sind die Koeffizienten symmetrisch.
  • Die FIR-Filtergleichung im Zeit- und Frequenzbereich ist wie folgt angegeben: Y(n) = c(0)X(n) + c(1)X(n–1) + c(2)X(n-2) + ... c(n) X(0) Y(z) = X(z)[c(0) + c(1)Z–1 + c(2)Z–2 + c(3)Z–3 + c(4)Z–4 + c(5)Z–5 + c(6)Z–6 + ... + c(n)Z–n]wobei X, Y die Eingabe bzw. Ausgabe sind und c(0), c(1 ), ..., c(n) den Koeffizientenwert repräsentiert.
  • Verwendung der Koeffizientenwerte in obiger Gleichung führt zu Y(n) = 5X(n) + 14 X(n – 1) + 25X(n – 2) + 30X(n – 3) + 25X(n – 4) + 14X(n – 5) + 5X(n – 6) Y(z) = X(z)[5 + 14Z–1 + 25Z–2 + 30Z–3 + 25Z–4 + 14Z–5 + 5Z–6] (Gl.1)
  • Das existierende Verfahren und Minimierung
  • 5 der Zeichnungen zeigt eine FIR-Filterstruktur der Implementierung 2. Die Figur illustriert die Realisierung eines durch Gleichung 1 dargestellten FIR-Filters.
  • In einer der bekannten Optimierungstechnik wird ein Vorteil aus der Symmetrie der Koeffizienten gewonnen. Die Ströme die mit den gleichen Koeffizienten mulitpliziert werden müssen, können erst addiert und dann multipliziert werden. Für eine große Filterstruktur führt dies zu einer Reduktion um 45% im Koeffizientenblock [A] (siehe 6 der beigefügten Zeichnungen).
  • Das wird gemacht durch Restrukturierung der Gleichung wie unten: Y(z) = X(z) [5*(1 + Z–6) + 14*(Z–1 + Z–5) + 25*(Z–2 + Z–3) + 30*Z–3] (Gl. 2)
  • Für den Rest der Optimierungsvorschläge wird nur gesprochen werden über die Multiplizierer/Addierer-Serie die im als Koeffizientenblock [A] bezeichneten gestrichelten Kasten gezeigt ist. 7 der Zeichnungen zeigt die traditionelle Art der Implementierung der Beispielstruktur für den Koeffizientenblock [A], wobei S1 bis S4 die Eingangsleitungen repräsentieren die mit dem Verzögerungsblock [Z–1] verbunden sind durch die in 6 der Zeichnungen abgebildeten Koeffizientenleitungen CLin 0 bis CLin 6. Die Eingangsleitungen S1 bis S4 sind getrennt verbunden mit einem Einheitsverzögerungselement [T] zum Durchführen einer Multiplikation mit einem Faktor 2 und ein serieller Addierer wird verwendet zum Durchführen serieller Addition von Daten. Dies repräsentiert die multipliziererlose Realisierung des Filterkoeffizientenblocks [A], wobei die Eigenschaft eines Flip-Flop (Einheitsverzögerungselement [T]) als Multiplizierer mit einem Faktor 2 verwendet wird.
  • Mathematisch wird die restrukturierte Gleichung gemäss der Struktur angegeben als Y(nT) = (4 + 1)S1 + (8 + 4 + 2)S2 + (16 + 8 + 1 )S3 + (16 + 8 + 4 + 2)S4 (Gl. 3)
  • In dieser Implementierung sind die Eingangsleitungen S1, S2, S3, S4 nicht gemeinsam verbunden. Also hindert das daran eine gemeinsam nutzbare Hardware im Koeffizientenblock [A] zu erreichen. Somit repräsentieren alle die Funktionen/Operationen dieses Blocks einzigartige Hardware. Die von den Ausdrücken benötigten Elemente sind wie folgt aufgeführt:
    erster Ausdruck = zwei Einheitsverzögerungselemente und ein serieller Addierer,
    zweiter Ausdruck = drei Einheitsverzögerungselemente und zwei serielle Addierer,
    dritter Ausdruck = vier Einheitsverzögerungselemente und zwei serielle Addierer, und
    vierter Ausdruck = vier Einheitsverzögerungselemente und drei serielle Addierer.
  • Die endgültige Addition aller vier Ausdrücke würde drei serielle Addierer benötigen.
  • Die verallgemeinerte Struktur von „Das existierende Verfahren und Minimierung" ist in 8 abgebildet. In der Struktur repräsentiert jede Spalte einen Koeffizientenwert. Die in Spalte 1 als T1_1 bis T1_m gezeigten Einheitsverzögerungselemente definieren eine Verbindung mit Eingangsleitung S1. In gleicher Weise definieren in Spalte n als Tn_1 bis Tn_m gezeigte Einheitsverzögerungselemente die Verbindung mit Eingangsleitung Sn.
  • Die Präsenz eines der Elemente in Spalten 1 bis n (d. h. T_1 bis T_m, T2_1 bis T2_m, ..., Tn_1 bis Tn_m) ist durch den Koeffizientenwert bestimmt. Abhängig vom Koeffizientenwert auf den Leitungen S1 bis Sn ist die Anzahl der Einheitsverzögerungselemente [T] in einer Spalte somit bestimmt. Auch ist die Anzahl serieller Addierer/Subtrahierer [SA/SS] in Spalten repräsentiert durch (SA1_1 bis SA1_m, SA2_1 bis SA2_m, ..., SAn_1 bis SAn_m). Die Präsenz eines dieser Elemente ist wieder definiert durch den Koeffizientenwert.
  • In der Struktur sind die Einheitsverzögerungselemente [T] in Schieberegisterform angeordnet. Der Eingang zum ersten Einheitsverzögerungselement ist mit den Eingangsleitungen S verbunden. Während der Eingang zu einem se riellen Addierer oder Subtrahierer verbunden ist mit Eingangsleitungen S1 bis Sn und/oder einem Ausgang der Einheitsverzögerungselemente des Schieberegisters, und zwar abhängig vom Koeffizientenwert. Unter Verwendung serieller Addierer SAe_1 bis SAe_n–1 werden die Addition/Subtraktion der seriellen Addierer/Subtrahierer allen in Spalten abgebildeten Koeffizientenausdrücke schließlich durchgeführt. Der endgültige Ausgang ist der Ausgang der letzten Addition/Subtraktion.
  • Zwischen den Eingangsleitungen S1 bis Sn sind die Einheitsverzögerungselemente nicht gemeinsam nutzbar und auch die seriellen Addierer in jeder Spalte sind auch nicht gemeinsam nutzbar. Somit ist begrenzte Minimierung in dieser Struktur möglich.
  • Minimierung
  • Diese Struktur reduziert die Hardware des Koeffizientenblocks [A] durch gemeinsam nutzbare Elemente in Koeffizienten, selbst wenn die Koeffizientenleitungen CLin 0, CLin_1, ... nicht gemeinsam verbunden sind. Diese Struktur reduziert die Fläche um ungefähr 30 bis 50% von 7 der Zeichnungen, und zwar durch Reduzieren der Anzahl der Komponenten und durch gemeinsame Nutzbarkeit bzw. Teilbarkeit von Komponenten. Hier sind die Optimierungstechniken mit Beispielen illustriert und das Ende dieses Abschnitts bildet die allgemeine Vergleichung und Struktur des Geräts ab.
  • Weiterführen des gleichen Beispiels eines FIR-Filters und Verwenden der Gleichung 3 des vorhergehenden Abschnitts ergibt Y(nT) = 5*S1 + 14*S2 + 25*S3 + 30*S4 Y(nT) = (4 + 1)S1 + (8 + 4 + 2)S2 + (16 + 8 + 1)S3 + (16 + 8 + 4 + 2)S4
  • Die Anmelder fahren fort die Schieberegister (multiplizieren um 2) der Ausführung gemeinsam zu nutzen.
  • = (S3 + S4)*16 + (S2 + S3 + S4)*8 + (S1 + S2 + S4)*4 + (S2 + S4)*2+(S1 + S3) = (S1 + S3 + 2*(S2 + S4 + 2*(S1 + S2 + S4*2(S2 + S3 + S4 + 2*(S3 + S4)))) (Gl. 4) Findet man die gemeinsamen additiven Faktoren heraus A1 = S2 + S4 A2 = S3 + S4kann die Gleichung 4 weiter reduziert werden zuY(nT) = (S1 + S3) + 2*(A1 + 2*(S1 + A1 + 2*(S2 + A2 + 2*A2))) (Gl. 5)
  • Der Implementierungsablauf für diese Gleichung ist in 14 illustriert, die Hardwareimplementierung ist in 9 gezeigt und 10 der Zeichnungen [z. B. SA(1), SA(2) usw. werden zum Darstellen der Addierer verwendet, T(1), T(2) usw. werden zum Darstellen der Einheitsverzögerung verwendet]. Im Ablauf der Implementierung repräsentieren S1, S2, S3, S4 vier Eingangsleitungen. Die primäre Addition wird durchgeführt unter Verwendung serieller Addierer SA(1), SA(3), SA(9), die die Addition der Ausdrücke S1 + S3, S2 + S4, S3 + S4 repräsentieren. Die sekundäre und tertiäre Addition ist durchgeführt unter Verwendung der Addierer SA(5), SA(7), SA(8), SA(6), SA(4), SA(2). Die Multiplikation um einen Faktor 2 wird durchgeführt unter Verwendung der Einheitsverzögerungselemente T(1), T(2), T(3), T(4).
  • Die Implementierung von Hardware ist in 9 der Zeichnungen gezeigt, wobei die Eingangsleitungen S1 bis S4 die Leitungen darstellen, die mit dem Delay-Block [Z–1] durch die in 6 der Zeichnungen abgebildeten Koeffizientenleitungen CLin 0 bis CLin 6 verbunden sind. Die Eingangsleitungen S1 bis S4 sind verbunden mit einem Kombinationslogikblock [B] zum Durchführen der seriellen Addition/Subtraktion für die serielle Addierer/Substrahierer innerhalb des Kombinationslogikblocks [B] verwendet werden. Der Ausgang jedes Kombinationslogikblocks [B] ist mit einem Einheitsverzögerungselement terminiert bzw. abgeschlossen, das eine Multiplikation um einen „Faktor 2" des Ausgangs des Kombinationslogikblocks darstellt. Der Ausgang b_1 des Kombinationslogikblocks [B] welcher an Bitposition 0 ist wird an den Eingang des Einheitsverzögerungselements T(1) gegeben, im Gegenzug wird die Ausgangsleitung T_1 des Einheitsverzögerungselements [T(1)] an den nächsten Kombinationslogikblock [B] gegeben. Alle Addition definiert somit eine Bitposition bevor diese mit 2 multipliziert wird und den Wechsel zur nächsten Bitposition. Alle Einheitsverzögerungselemente [T] werden durch das Einheitsverzögerungscluster bzw. Einheitsverzögerungszusammenballung [C] dargestellt. Das in der Struktur eine Multiplikation um einen „Faktor 2" repräsentierende Einheitsverzögerungselement [T] wird geschoben zur gemeinsamen Benutzung zwischen verschiedenen Koeffizientenwerten, also die Anzahl der Einheitsverzögerungselemente [T] (Flip-Flop) reduzierend.
  • In der Minimierung von 9 der Zeichnungen ergeben die ungefähren Flächenberechnungen 9 serielle Addierer + 4 Einheitsverzögerungselemente = 22 Einheiten, wobei die Flächenberechnung von 7 der Zeichnungen 11 serielle Addierer + 13 Einheitsverzögerungselemente = 35 Einheiten ergibt (unter Annahme dass eine Einheit = 1 Volladdierer = 2 Halbaddierer = 1 Einheitsverzögerungselement und serieller Addierer = 2 Einheiten). Das resultiert in 37% Flächeneinsparung (13/35*100).
  • Eine unterschiedliche existierende Implementierung eines Filters ist in der WO 94 23493 A offenbart die sich auf ein Verfahren und eine Anordnung in einem gekippten digitalen FIR-Filter zum Multiplizieren eines binären Eingangssignals mit Anzapfungskoeffizienten und auf ein Verfahren zum Entwurf eines solchen Filters bezieht. Die Erfindung umfasst ein Schieberegister das in die Richtung des niederwertigsten Bits schiebt, und das höchstwertigste Bit kopiert oder Nullwerte einfüllt. Das Register empfängt das binäre Eingangssignal des Filters und besitzt Ausgänge zum Ausgeben des Inhalts der gewünschten Bitpositionen. Eine Vielzahl von Bit-seriellen Subtrahier- und Addierelementen multiplizieren das binäre Eingangssignal mit N + 1 verschiedenen Anzapfungskoeffizienten durch Kombinieren von Ausgangsbits des Schieberegisters. Die Subtrahier- und/oder Addierelemente bilden ein Netzwerk worin wenigstens ein Element in der Multiplizieroperation von wenigstens zwei unterschiedlichen Anzapfungskoeffizienten teilnimmt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • In der vorliegenden Erfindung vorgeschlagene Minimierung
  • Die Erfindung reduziert die Fläche des Koeffizientenblocks [A] durch das Vorhandensein von teilbaren bzw. gemeinsam nutzbaren Elementen in Koeffizienten, selbst in der Implementierung wo die Koeffizientenleitungen CLin 0, CLin_1, ... nicht gemeinsam verbunden sind (gezeigt als Architektur [A]). Wenn dieser Koeffizientenblock [A] in Implementierung 2 (4) eines FIR-Filters angewendet wird, wird dies noch flächeneffizienter. Diese Reduktion ist erweiterbar auf andere auf Koeffizientenblock [A] basierende Filter, wie im ersten Abschnitt angegeben.
  • Eine flächeneffiziente Implementierung des Filterkoeffizientenblocks wird durchgeführt unter Verwendung von Volladdierern (FA) anstelle von seriellen Addierern (SA). Es ist bekannt, dass ein serieller Addierer aus einem Volladdierer (FA) und einem Flip-Flop (T) besteht (siehe 3 der Zeichnungen). Das macht serielle Addierer (SA) doppelt teuer bezüglich Fläche verglichen mit einem Volladdierer (FA) [Fläche des seriellen Addierers (SA) = 1 FA + 1T = 2 Einheiten während die Fläche des 1 FA = 1 -Einheit]. In dieser Implementierung wird die Flächenreduktion des Koeffizientenblocks [A] erreicht durch Maximierung der Verwendung des Volladdierers (FA), d. h. durch Ersetzen von seriellen Addierern (SA) durch Volladdierer (FA) in dem Koeffizientenblock [A].
  • Das obige wird erreicht durch Vorsehen einer Digitallogikarchitektur, eines Digitalfilters und einer Kombinationslogikstruktur wie in den Ansprüchen 1, 5 und 6 entsprechend beansprucht.
  • Vorzugsweise wird in der vorliegenden Erfindung die flächenminimale Realisierung Digitalfilter basierend auf Koeffizientenblock [A] erreicht, wenn er in Bit-serieller Weise betrieben wird. Die Struktur liefert Hardwareminimierung für Filter mit endlicher Impulsantwort (finite impulse response, FIR), Filter mit unendlicher Impulsantwort (infinite impulse response, IIR) und für andere Filter und Anwendungen bezogen auf Kombinationslogik bzw. Schaltungslogik bestehend aus Verzögerungselementen (T), Multiplizierern (M), Addierern und Subtrahierern. Weitere Optimierungstechnik im Kombinationslogikcluster bzw. Kombinationslogikzusammenballung [D] ist durchgeführt unter Verwendung von gemeinsamen Addierern (FA) und gemeinsamen Subtrahierern (FS) und unter Verwendung dieser gemeinsam benutzten Ausgänge oder durch Verwendung von Substrahierern (FS) anstelle von Addierern, wenn der Koeffizientenwert näher einer Zweierpotenz ist oder durch Minimierung der Verwendung von Subtrahierern durch Nehmen von gemeinsamen Subtraktionenoperatoren und Verwendung von Addierern stattdessen.
  • Wenn die vorliegende Erfindung in Implementierung 2 von FIR/IIR-Filtern und ähnlicher Filterstruktur verwendet wird, resultiert das in relativ flächeneffizienter Realisierung des Filters, die Speicherfläche in Implementierung 2 als Verzögerungselemente [Z–1] bezeichnet, ist kleiner verglichen mit Implementierung 1, die vorhanden ist aufgrund der inhärenten Eigenschaften der Struktur der Implementierung 2 und eine zusätzliche Flächeneinsparung im Filterkoeffizientenrealisierungsdesign bzw. -entwurt wird erreicht durch die Verwendung der beanspruchten Struktur des Koeffizientenblocks [A] der 12.
  • Im unten mit Bezug auf 15 erläuterten Implementierungsablauf wird der Übertrag-aus (carry-out, COUT) Anschluss des Volladdierers (FA) jeder Stufe an den Übertrag-ein (carry-in, CIN) Eingang des Volladdierers (FA) der vorhergehenden Stufe, d. h. der Stufe die dem Flip-Flop (T) Element vorhergeht eingegeben. Auf diese Weise wird das Flip-Flop (T1, T2, T3, T4) das für eine Multiplikation mit 2 verwendet wird, wieder verwendet, und zwar um als Übertragsspeicher zu dienen und um den Volladdierer zu ermöglichen als 1 Bitserieller Addierer zu arbeiten.
  • Das Umschreiben der Filtergleichung für das im vorhergehenden Abschnitt gezeigte Beispiel führt zu Y(nT) = (S1 + S3) + 2*(A1 + 2*(S1 + A1 + 2*(S2 + A2 + 2*A2))) (Gl. 6)
  • Bei Verwendung der Volladdierer (FA) Komponente in Gleichung 6 kann gesehen werden, dass die Anzahl der verwendeten Volladdierer die gleiche ist wie die Anzahl der in der früheren Architektur verwendeten 1-Bit-Serien Addierern. In der vorliegenden Erfindung sind abhängig vom Übertrag-aus der Bit-0-Position einige Halbaddierer oder einige Extraelemente vorhanden.
  • Wie im Implementierungsablauf der 15 gezeigt ist, definiert die Gleichung die Bitposition mit Bit 0 bis Bit 4, welches die Position der „Multiplikation mit hoch zwei" (z. B. repräsentiert BIT0 eine Multiplikation mit 20). An der B1T0-Position wird die Addition von S3 + S4 durchgeführt und der Ausgang ist bei T(1) terminiert bzw. abgeschlossen. Der Ausgang von T(1) definiert die nächste Bitposition BIT1, die die Addition von S2 + S3 + S4 unter Verwendung des Volladdierers und auch dem Ausgang des Flip-Flops T(1) durchführt. Der Ausgang dieser Addition wiederum ist terminiert beim Flip-Flop T(2). Die Struktur wird bei den nächsten Bitpositionen wiederholt. Die Stellenüberträge (carry-outs) der Volladdierer werden an die vorhergehende Bitposition geführt. Die endgültige Addition der Bitposition BIT4 liefert die Ausgabe des Koeffizientenblocks [A].
  • Die implementierte Struktur ist in 11 gezeigt, wobei die Eingangsleitungen S1 bis S4 Leitungen darstellen, die mit dem Verzögerungsblock [Z–1] durch 6 der Zeichnungen abgebildete Koeffizientenleitungen CLin 0 bis CLin 6 verbunden sind. Die Eingangsleitungen S1 bis S4 mit dem Kombinationslogikblock [B] verbunden zum Durchführen der Serienaddition/Subtraktion für die Volladdierer und Vollsubtrahierer innerhalb des Kombinationslogikblocks [B] verwendet werden. Alle Einheitsverzögerungselemente [T] werden durch das Einheitsverzögerungscluster [C] repräsentiert.
  • Die Addierer bei allen der Bitpositionen durch FA(1), FA(2), ..., FA(10) dargestellt werden im Kombinationslogikcluster [D] geclustert bzw. zusammengeballt. Die Addierereingänge werden von den Koeffizientenleitungen S1, S2, S3, S4 und vom Einheitsverzögerungselement der vorhergehenden Bitposition verbunden. Die Addition/Subtraktion wird im Kombinationslogikblock [B] durchgeführt und der endgültige bzw. letzte Ausgang des letzten Addierers wird mit einem Einheitsverzögerungselement verbunden, das zur „Multiplikation mit einem Faktor 2" verwendet wird. Die Zwischenverbindung vom Kombinationslogikblock zum Einheitsverzögerungselement [T] wird dargestellt als b_1, b_2, b_3, b_4. Die Ausgänge der Einheitsverzögerungselemente werden mit einem der Eingänge des Kombinationslogikblocks [B] der nächsten Bitposition verbunden (d. h. verbunden zum Eingang des ersten Volladdierers des Kombinationslogikblocks [B]) und diese Zwischenverbindungen werden durch t_1, t_2, t_3, t_4 dargestellt und die Bitpositionen werden mit BIT0, BIT2, BIT3, BIT4 markiert. Eine Beispieldarstellung der Konnektivität bzw. Verbundenheit wird erläutert. Der Ausgang b_1 des Kombinationslogikblocks [B] der an der Bitposition BIT0 ist, wird zum Eingang des Einheitsverzögerungselements T(1) geleitet, ihrerseits ist die Ausgangsleitung t_1 des Einheitsverzögerungselements [T(1)] wiederum wird zum nächsten Kombinationslogikblock [B] geleitet. Somit definieren alle Additionen eine Bitposition bevor sie „mit einem Faktor 2 multipliziert" werden und zur nächsten Bitposition wechseln.
  • Die Verbindung des Anschlusses COUT (Stellenübertrag) aller der Volladdierer einer Stufe wird hier erläutert. Die Verbindung des Stellenübertrag(COUT)-Anschlusses der Volladdierers (FA) von jedem Kombinationslogikblock [B] wird zu einem der Eingänge des Volladdierers (FA) des vorhergehenden Kombinationslogikblocks [B] geleitet, d. h. der Block der dem Einheitsverzögerungselement [T] des Einheitsverzögerungsclusters [C] vorausgeht. Somit wird das Einheitsverzögerungselement [T] dieser Bitposition wieder genutzt. Das ermöglicht die Verwendung des Einheitsverzögerungselements [T] zur Übertragsspeicherung durch alle Volladdierer in dieser Bitposition, und zwar während des Serienadditionsbetriebs.
  • Gemäß der Erfindung wird das Einheitsverzögerungselement [T] für zwei Zwecke verwendet:
    • 1) Multiplikation des Ausgangs des Kombinationslogikblocks [B] mit einem Faktor 2, und zwar von allen Koeffizienten verwendet
    • 2) Ausnutzen des gleichen Einheitsverzögerungselements [T] gemeinsam mit dem Kombinationslogikblock [B] zur Verwendung mit einem Volladdierer um diesem zu ermöglichen als Serienaddierer (SA) zu arbeiten.
  • Beispielsweise bei Bitposition 3 führt der Halbaddierer HA(2) die Addition von Daten auf den S2, S4 Leitungen durch. Der Ausgang Z der den gemeinsam genutzten Addier A1 repräsentiert wird zu den Volladdierern FA(3) und FA(5) geleitet. Der die Bitposition 3 definierende Ausgang Z von FA(3) wird beim Einheitsverzögerungselement [T(4)] terminiert. Der Stellenübertragsanschluss (Cout) an dieser Bitposition ist mit dem Übertragseingabeanschluss (Cin) von irgendeinem Volladdierer [FA(5)] an der vorhergehenden Bitstelle verbunden deshalb, das Einheitsverzögerungselement [T(4)] ausnutzend, und zwar zum Ermöglichen dass alle die Volladdierer an dieser Stelle als Serienaddierer arbeiten. Die Struktur eines Serienaddierers ist im Wesentlichen ein Volladdierer zusammen mit einem Einheitsverzögerungselement [T] das den Stellenübertragsanschluss (Cout) des Volladdierers mit seinem Übertrageingabeanschluss (Cin) verbindet.
  • In dieser Implementierung gibt es einige Extraelemente wie beispielsweise den Volladdierer FA(11) und Einheitsverzögerungselemente Te(2), Te(1) die nötig sind zum Terminieren des Stellenübertrags (Cout) an der Bitposition 0. Die Anzahl der Volladdierer ist gleich der Anzahl der Cout-Leitungen –1 an der Bitposition 0 und die Anzahl der Einheitsverzögerungselemente [T] ist gleich der Anzahl der Cout-Leitungen an Bitposition 0. Die Extraelemente werden als Extralogikblock [Ex] dargestellt.
  • Die Schaltung ist strukturiert in ein Einheitsverzögerungscluster [C] das aus Einheitsverzögerungselementen [T] besteht und Kombinationslogikcluster [D] das aus Volladdierern und Subtrahierern besteht.
    • a) das sequentielle Elemente besitzende Einheitsverzögerungscluster [C] ist gemeinsam für alle die Koeffizienten und besitzt gemeinsam nutzbare Einheitsverzögerungselemente [T] die an der Endposition jedes Kombinationslogikblocks [B] angeordnet sind.
    • b) die Kombinationslogikcluster [D] besitzen Kombinationslogikblöcke [B] die im wesentlichen Volladdierer und Subtrahierer sind. Nicht nur die Hardware innerhalb der Kombinationslogikblöcke [B] ist gemeinsam nutzbar, sondern auch über verschiedene Kombinationslogikblöcke hinweg. Deshalb wird die Komponentenhardware innerhalb des Kombinationslogikclusters [D] minimiert.
  • Die Minimierung im Kombinationslogikcluster [D] wird durch die Verwendung folgender Minimierungstechniken erreicht.
    • 1) Teilen bzw. gemeinsames Nutzen der gemeinsamen Addierterme bzw. – ausdrücke, d. h. mehrmaliges Ausnutzen der gemeinsamen Addierer.
    • 2) Verwendung von Subtraktion anstelle von Addition, wenn der Koeffizient einer Zweierpotenz nahe ist, d. h. 63 wird besser realisiert durch (64-1) als (32 + 16 + 8 + 4 + 2 + 1 ). Im ersteren Fall ist in die Anzahl der Subtrahierer 1 verglichen mit 5 Addierern im letzteren Falle.
    • 3) Inanspruchnahme gemeinsamer Subtraktionsoperation und Maximierung der Verwendung von Addierern wird angewendet. Dies erfolgt weil die Subtraktion verglichen zur Additionsoperation teuer ist.
  • In der vorliegenden Minimierung der 11 ergibt eine ungefähre Flächenberechnung FA + 2 HA + 6T = 16 Einheiten. Wie die Anmelder gesehen haben, ist die Fläche nach der Minimierung im Abschnitt „Das existierende Ver fahren und Minimierung" und 7 35 Einheiten. Die nach Abschnitt „Minimierung" (9) minimierte Fläche ist 22 Einheiten. Die gegenwärtige Minimierung ergib eine Verbesserung von 54%{(35 – 16)/35} & 27%{(22 – 16)/22} des Koeffizientenblocks entsprechend über die zwei Strukturen (unter Annahme dass eine Einheit = 1 FA = 2HA = 1T & Serienaddierer = 2 Einheiten).
  • VERALLGEMEINERTE STRUKTUR DER ERFINDUNG
  • Die Erfindung sieht eine flächeneffiziente Realisierung eines Koeffizientenblocks [A] vor, und zwar anwendbar auf Filtergeräte wie beispielsweise FIR, IIR und andere auf diesem Block basierende Filterstrukturen. Diese Architektur ist auch anwendbar auf kombinatorische und sequentielle Logik die aus Addierern, Subtrahierern, Multiplizieren und Flip-Flop [T] besteht. Diese Architektur wird unter Verwendung der Elemente Volladdierer (FA), Vollsubtrahierern (FS) und Flip-Flop [T] realisiert.
  • Man beginnt mit der verallgemeinerten Gleichung des FIR-Filterkoeffizientenblocks (A) Y(nT) = a*S1 + b*S2 + c*S3 + ... k*Sn ...(1)wobei a, b, ..., k die Filterkoeffizienten darstellen. S1, S2, ... stellen die den Koeffizienten entsprechenden Eingangsleitungen dar.
  • Jetzt stellt man jeden Koeffizienten als Addition von Termen bzw. Ausdrücken die in Zweierpotenzen angeordnet sind dar und wendet es auf die Gleichung an. y(nT) = (2m*am + ... 21*a1 + 20*a0)*S1 + (2m*bm + ... 21*b1 + 20*b0)*S2 + (2m*cm + ... 21*c1 + 20*c0)*S3 + ... + (2m*km + .... 21*k1 + 20*k0)*Sn
  • Nimmt man des Weiteren „2" als gemeinsamen Faktor bekommen wir die verallgemeinerte Gleichung für die Architektur nach dem Anspruch wie folgt: Y(nT) = (a0*S1 + b0*S2 +... + k0*Sn) +21( (a1*S1 + b1*S2 + ... + k1*Sn) + 21 ((a2*S1 + b2*S2+...+ k2*Sn) + 21 ((a3*S1 + b3*S2 + ... + k3*Sn) + ... + 21 ((am*S1 + bm*S2 + ... + km*Sn)))))wobei a0, a1, ..., am und b0, b1, ..., bm und k0, k1, ...., km die Vorzeichen der Koeffizienten [d. h. sie haben den Wert (+/–) 1 oder 0] darstellen. Die Architekturrealisierung in 12 wird durchgeführt unter Verwendung der sequentiellen Elemente wie Einheitsverzögerungen [T] und kombinatorischen Elementen, wie beispielsweise Volladdierern (FA) und Vollsubtrahierern (FS).
  • In 12 sind die Eingangsdaten auf den Eingangsleitungen S1, S2, ..., Sn vorhanden [wobei n die Anzahl der Koeffizienten des Filters darstellt]. Die Additionsterme der Gleichung [(a0*S1 + b0*S2 + ... + k0*Sn), (a1*S1 + b1*S2 + ... + k1*Sn)....(am*S1 + bm*S2 + ... + km*Sn)] werden als Kombinationslogikblöcke [B] dargestellt. Der Block [B] ist ein kombinatorischer Block der aus Volladdierern (FA) und Vollsubtrahierern (FS) besteht. Die Werte a0, b0, ... usw. stellen Werte (+/–) 1 oder 0 dar. Die Verbindung von Volladdierern und Subtrahierern mit S1, S2, ..., Sn und Zwischenverbindung der Volladdierer und Subtrahierer hängt vom Wert der Koeffizienten ab. Das ist so, weil der Koeffizientenwert den Wert von a0, a1, ... usw. bestimmt und deshalb bestimmt er die Zwischenverbindungen zwischen ihnen.
  • Alle die Additions/Subtraktionsoperationen bei einer Bitstelle werden in einem Kombinationslogikblock [B] durchgeführt und der Ausgang jedes Kombinationslogikblocks (B] wird von Einheitsverzögerungselementen [T] terminiert, die im wesentlichen zum Multiplizieren des Kombinationslogikblockausgangs mit „einem Faktor 2" und zum Weitergeben der Ausgabe an die nächste Bitposition verwendet werden. Die Einheitsverzögerungselemente T[1], T[2], ..., T[m] werden dafür verwendet. Die Verbindungsleitungen b_1, b_2, ..., b_m werden zur Terminierung des Ausgangs des Kombinationslogikblocks [B] verwendet. Die Bitpositionen des seriellen Datenrahmens werden mit BIT0, BIT1, ..., BITm markiert. Die Anzahl der Einheitsverzögerungselemente [T] hängt von der Größe des maximalen Koeffizienten ab und ist gemeinsam nutzbar für alle die Koeffizienten in dem Koeffizientenblock [A]. Auch werden alle die Kombinationslogikblöcke [B] zusammengeclustert bzw. zusammengeballt zu einem Kombinationslogikcluster bzw. -zusammenballung [D] und alle die Einheitsverzögerungselemente T[1], T(2], ..., T[m] werden zusammengeclustert in einem Einheitsverzögerungscluster (C], und trennen dadurch die sequentielle und kombinatorische Logik. Der Eingang des Einheitsverzögerungselements [T] ist der letzte Ausgang des Kombinationslogikblocks [B] und der Ausgang des Einheitsverzögerungselements [T] ist mit dem einen der Eingänge des Kombinationslogikblocks [B] der nächsten Bitposition verbunden (d. h. verbunden mit dem Eingang des ersten Volladdierers oder Subtrahierers des Kombinationslogikblocks [B] in Abhängigkeit von dem Vorzeichenwert +/–). Die Zwischenverbindungen vom Einheitsverzögerungscluster [C] zum Kombinationslogikblock [B] ist dargestellt als t_1, t_2, ..., t_m.
  • Somit sind die als ein Einheitsverzögerungscluster [C] geclusterten bzw. angehäuften Einheitsverzögerungselemente [T] gemeinsam benutzbar für alle die Koeffizienten und die Volladdierer/Subtrahierer sind als ein Kombinationslogikblock [D] geclustert bzw. gruppiert. Der Stellenübertragsausgang des Volladdierers (FA) von jedem Kombinationslogikblock [B] wird zum Eingang des Volladdierers (FA) des vorhergehenden Kombinationslogikblocks (B] geleitet, d. h. dem Block der dem Einheitsverzögerungselement [T] des Einheitsverzögerungsclusters [C] vorhergeht. Auf diese Weise werden wir das gleiche Einheitsverzögerungselement [T] gemeinsam nutzen bzw. teilen welches für die Multiplikation mit Faktor 2 (T1, T2, T3, ..., Tn) mit der Implementierung der Übertragsstruktur in dem Einbitserienaddierer.
  • Extrakomponenten dargestellt als ein Extralogikblock [Ex] werden verwendet zum Verbinden des Stellenübertrags von allen den Addierern/Subtrahierern (FA/FS) des letzten Kombinationslogikblocks des Kombinationslogikclusters [D] d. h. Bitposition BIT0. Volladdierer/Subtrahierer [FA/FS] und Einheitsverzögerungselemente [T] werden in diesem Block verwendet. Die Leitung COUT (Stellenübertrag) der Bitposition BIT0 ist mit dem Extrablock [Ex] verbunden (typischerweise mit Eingängen von einem Element wie beispielsweise Volladdierer oder Vollsubtrahierer). Jetzt verwendet man ein Einheitsverzögerungselement [T], wobei der Stellenübertrag (COUT) von jedem Volladdierer oder – subtrahierer zurück an den Übertragsanschluss CIN des gleichen Elements geleitet wird. Auch zur Verbindung eines Volladdiererausgangs zu dem Eingang A oder B des nächsten Volladdierers. Hier kann ein binärer Baum gebildet werden. Die Anzahl der Volladdierer der Einheitsverzögerungselemente im Extralogikblock [Ex] sind gleich der Anzahl der Stellenübertragsausgänge –1 bzw. der Anzahl der Stellenübertragsausgänge.
  • Gemäss der Erfindung werden Optimierungen in der Hardware in beiden Clustern [C] und [D] erreicht mit den reduzierten Einheitsverzögerungselementen [T] und der Addierer/Subtrahiererfläche (FA, FS). Der Hardwaregewinn wird nachstehend beschrieben.
  • Hardwarereduzierung im Block [C]
  • Für Filter, die Koeffizienten mit großer Größe besitzen, reduziert diese Struktur die Fläche des Koeffizientenblocks [A] um 50 bis 75 % der Fläche des Koeffizientenblocks [A].
  • Vor dem Beginn des Beweisens der Aussage wird die Berechnung der Elemente formularisiert für
    • 1) die Anzahl der Einheitsverzögerungselemente [T] (Flip-Flops),
    • 2) die Anzahl der Serienaddierer (SA) oder Volladdierer (FA).
  • Dieser Vergleich wird hier durchgeführt. Die verallgemeinerte Struktur von „Das existierende Verfahren und Minimierung" ist in 8 illustriert. Die andere Strukturen zum Vergleich sind „Minimierung" in 10 und „Verallgemeinerte Struktur der Erfindung" in 12 der Zeichnungen.
    • 1) Die Anzahl der Einheitsverzögerungselemente [T] im Koeffizientenblock [A] hängt von der Größe aller der Koeffizienten ab. Die ungefähre und pessimistische Formel zur Berechnung der gesamten Einheitsverzögerungselemente [T] im Koeffizientenblock [A] in „Das existierende Verfahren und Minimierung" ist gleich der durchschnittlichen Größe eines Koeffizienten multipliziert mit der Anzahl der Koeffizienten (in 8), wobei die durchschnittliche Größe eines Koeffizienten pessimistisch als maximale Koeffizientengröße/2 berechnet wird. Während in der „Minimierung" und „Vorgeschlagene Minimierung" die Anzahl der Einheitsverzögerungselemente [T] gleich der maximalen Koeffizientengröße ist, da die Einheitsverzögerungselemente [T] hier gemeinsam benutzbar sind.
    • 2) Die ungefähre Formel zur Berechnung der gesamten Serienaddierer (SA) im Koeffizientenblock [A] für die erwähnten obigen Fälle ist gleich der Addierer pro Koeffizient multipliziert mit der Anzahl der Koeffizienten. Die Addierer pro Koeffizientenblock hängen ausschließlich vom Koeffizientenwert ab. Nimmt man im schlimmsten Fall keine Optimierung an, so ist die Anzahl der Addierer pro Koeffizient gleich der Anzahl der Koeffizienten multipliziert mit der maximalen Koeffizientengröße und geteilt durch 2.
  • Jetzt verwendet man die erwähnte Formel auf einen Beispielfilter mit 20 Koeffizienten. Die Koeffizienten besitzen einen Maximalwert der in 16 Bits ist (z. B. maximaler Koeffizientenwert ist +32767 oder –32768 in 2er Komplimentdarstellung). Im vorliegenden Beispiel ist die durch die Formel angenäherte durchschnittliche Größe des Koeffizienten 8 Bit. Für „Das existierende Verfahren und Minimierung" ist die Gesamtanzahl der für die Implementierung benötigten Flip-Flops [T] 8*20 = 160. Im Gegensatz dazu würden die „Minimierung" und „Vorgeschlagene Minimierung" nur 16 Flip-Flops benötigen. Die Anzahl der Flip-Flops aller der Koeffizienten sind gemeinsam benutzbar und sind beschränkt auf den Koeffizienten der den Maximalwert hat. Unter Verwendung von der Formel zur Berechnung der Addierer ist die Anzahl der Addierer für drei Fälle 8*20 = 160 (ungefähr).
  • Die Flächenberechnung für „Das existierende Verfahren und Minimierung" ergibt 160 T + 160 SA = 480 Einheiten. Die Flächenberechnung für „Minimierung" ergibt 16 T + 160 SA = 336. Die Flächenberechnung für „Vorgeschlagene Minimierung" ergibt 16 T + 160 FA + (Extraelemente 8 T + 7 FA) = 191. Man nimmt an, dass die durchschnittliche Anzahl von Volladdierern pro Bitposition 8 ist. Wir werden die Berechnung der Anzahl der Extraelemente hier verallgemeinern. Diese Extraelemente sind nötig zum Terminieren des Stellenübertrags der letzten (LSB) Position. Folglich, falls die durchschnittliche Anzahl von Volladdierern 8 ist werden die Extraelemente 7 Volladdierer und 8 Einheitsverzögerungselemente (7FA, 8T) benötigt zum Terminieren der Stellenüberträge der LSB-Position. Das ist in 12 gezeigt. Somit sehen wir, dass die vorliegende Erfindung eine Flächenverbesserung um ungefähr 60% {(480 – 190)/480} des Koeffizientenblocks über „Das existierende Verfahren und Minimierung" hat.
  • Hardwarereduzierung im Block [D]
  • Für Hardwarereduzierung im Kombinationslogikcluster [D] werden folgende Minimierungen angewandt.
    • 1) Teilen bzw. gemeinsames Nutzen des gemeinsamen Addierterms und dessen Verwendung im Kombinationslogikcluster [D]
    • 2) Verwendung von Subtraktion anstelle von Addition, wenn der Koeffizient nahe einer 2er Potenz ist, zum Beispiel wird 63 besser realisiert mit (64-1) als durch (32 + 16 + 8 + 4 + 2 + 1)
    • 3) Nehmen gemeinsamer Subtraktionsoperation und Maximieren der Verwendung von Addierern
  • Für ungefähre Flächeberechnung ist die folgende Annahme getroffen (1 Flächeneinheit = 1 FA = 2HA = 1 T & SA = SS = 2 Flächeneinheiten).
  • Vorteile die sich aus der vorliegenden Erfindung ergeben
  • Die Fläche wird um 50–75% (des Koeffizientenblocks [A]) für große Filterstrukturen reduziert, wenn die 3 Optimierungsschritte, die im vorhergehenden Abschnitt „Hardwarereduzierung im Kombinationslogikcluster [D]" alle angewendet werden.
  • Die letzte vorgeschlagene Architektur (12) ist eine echte Maschine des Mealy-Typs bzw. Art. Ziemlich oft muss der Ausgang zurück zum parallelen Datenformat formatiert werden. In diesem Fall können die Ausgänge des gleichen Schieberegisters verwendet werden (13). Ein-Bit-serieller Multiplizierer könnten noch für die vorgeschlagene Architektur gemultiplext werden falls die Spezifikationen dies erlauben (d. h. falls die Operationsfrequenz nicht sehr hoch ist).

Claims (6)

  1. Eine Digitallogikarchitektur zur Realisierung von Koeffizienten eines Digitalfilters oder eine Kombinations/Sequentiallogikstruktur zur Ausführung von Operationen wie beispielsweise Additionen und/oder Subtraktionen und/oder Multiplikationen und/oder Verzögerungen, wobei die Digitallogikarchitektur Folgendes aufweist: – n serielle Koeffizienteneingangsleitungen (S1, S2 , ..., Sn), wobei n die Anzahl der zu realisierenden Koeffizienten ist; und – einen Koeffizientenblock (A), der Eingaben bzw. Eingangsgrößen von den n Koeffizienteneingangsleitungen (S1, S2, ..., Sn) empfängt und eine Ausgabe bzw. Ausgangsgröße vorsieht; wobei der Koeffizientenblock (A) Folgendes aufweist: – einen Kombinationslogikcluster bzw. eine -zusammenballung (D) mit m + 1 Kombinationslogikblöcken (B0, B1, ..., Bm), wobei m eine ganze Zahl ist bestimmt als der Wert von log2 des maximalen Koeffizientenwertes aufgerundet auf den nächsten ganzen Wert, wobei die Kombinationslogikblöcke Eingangsgrößen von den Koeffizienteneingangsleitungen (S1, S2, ..., Sn) empfangen und die Addition und/oder Subtraktion der Eingangsgrößen von den Koeffizienteneingangsleitungen (S1, S2, ..., Sn) ausführen, um jeweils Ausgabeausdrücke a0·S1 + b0·S2 + ... + k0·Sn, a1·S1 + b1·S2, ..., k1·Sn, ..., am·S1 + bm·S2 + ... + km·Sn zu erzeugen, wobei jede Größe von a0, b0, ..., k0; a1, b1, ..., k1; ...; am, bm, ..., km den Wert *1, –1 oder 0 hat, und wobei S1, S2, ..., Sn Eingangsgrößen von den Koeffizienteneingangsleitungen sind; und – ein Einheitsverzögerungscluster oder eine -zusammenballung (C) mit m Einheitsverzögerungselementen (T(1), T(2), ..., T(m)), wobei das i-te Einheitsverzögerungselement mit i = 1 ... m als eine Eingangsgröße den Ausgabeausdruck von dem (i – 1)ten Kombinationslogikblock (B0, B1, ..., Bm) empfängt, wobei die empfangene Eingangsgröße mit dem Faktor von zwei multipliziert wird, und wobei das sich ergebende Produkt an einen Eingang des i-ten Kombinationslogikblocks (B1, B2, ..., Bm) ausgegeben wird; wobei die erwähnten Kombinationslogikblöcke (B0, B1, ..., Bm) jeweils einen oder mehrere Addierer (SA) oder Subtrahierer (SS) aufweisen, wobei der Übertrag (carry-out = Cout) jedes Addieres (SA) oder Subtrahierers (SS) des i-ten Kombinationslogikblocks (B0, B1, ..., Bm) in einen Eingang eines Addierers (SA) oder Subtrahierers (SS) des erwähnten (i – 1)ten Kombinationslogikblocks (B0, B1, ..., Bm) derart eingespeist wird, dass der gleiche Verzögerungseinheitsblock (T) für die Multiplikation mit einem Faktor zwei und auch für die Carry- oder Übertragstruktur in einer Bit-Serienaddierfunktion verwendet wird.
  2. Eine Digitallogikarchitektur nach Anspruch 1, wobei die erwähnten Kombinationslogikblöcke (B0, B1, ..., Bm) als eine Matrix der Ordnung (m + 1) × n angeordnet sind.
  3. Eine Digitallogikarchitektur nach Anspruch 1 oder 2, wobei eine oder mehrere Zwischenverbindungen zwischen einem der Addierer und/oder Subtrahierer der Kombinationslogikblöcke (B0, B1, ..., Bm) vorgesehen sind, um die Addierer und/oder Subtrahierer zu teilen bzw. gemeinsam zu benutzen, und zwar gemäß der erwähnten einen oder mehreren jeweiligen Zwischenverbindungen, und um auf diese Weise die Anzahl der Addierer und/oder Subtrahierer die für die Implementierung des Digitalfilters oder der Kombination/Sequentiallogikstruktur erforderlich sind, zu minimieren und infolge dessen eine Fläche der Digitallogikarchitektur zu minimieren, auf der die Kombinationslogikblöcke (B0, B1, ..., Bm) angeordnet sind.
  4. Eine Digitallogikarchitektur nach einem der Ansprüche 1 bis 3, wobei dann, wenn einer der zu realisierenden Koeffizienten nahe einer aber weniger eine Zweipotenz ist, einer oder mehrere Seriensubtrahierer verwendet werden, um den erwähnten Koeffizienten zu erzeugen.
  5. Ein Digitalfilter, welches eine Filterkoeffizienten realisierende Digitallogikarchitektur aufweist, wobei die Digitallogikarchitektur eine Digitallogikarchitektur nach einem der vorhergehenden Ansprüche 1 bis 4 ist.
  6. Eine Kombinations/Sequentiallogikstruktur zur Ausführung von Operationen wie beispielsweise Additionen und/oder Subtraktionen und/oder Multiplikationen und/oder Verzögerungen, wobei die Kombinations/Sequentiallogikstruktur eine Digitallogikarchitektur aufweist, welche Koeffizienten realisiert zur Durchführung der Operationen, wobei die erwähnte Digitallogikarchitektur eine Digitallogikarchitektur nach einem der vorhergehenden Ansprüche 1 bis 4 ist.
DE69821145T 1998-10-13 1998-10-13 Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz Expired - Fee Related DE69821145T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG1998/000082 WO2000022729A1 (en) 1998-10-13 1998-10-13 Area efficient realization of coefficient architecture for bit-serial fir, iir filters and combinational/sequential logic structure with zero latency clock output

Publications (2)

Publication Number Publication Date
DE69821145D1 DE69821145D1 (de) 2004-02-19
DE69821145T2 true DE69821145T2 (de) 2004-09-02

Family

ID=20429882

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69821145T Expired - Fee Related DE69821145T2 (de) 1998-10-13 1998-10-13 Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz

Country Status (5)

Country Link
US (1) US7007053B1 (de)
EP (1) EP1119910B1 (de)
DE (1) DE69821145T2 (de)
SG (1) SG73567A1 (de)
WO (1) WO2000022729A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1119909B1 (de) * 1998-10-13 2004-01-14 STMicroelectronics Pte Ltd. Flächeneffiziente herstellung von koeffizientarchitektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz
US7292630B2 (en) * 2003-04-17 2007-11-06 Texas Instruments Incorporated Limit-cycle-free FIR/IIR halfband digital filter with shared registers for high-speed sigma-delta A/D and D/A converters
US7187312B2 (en) * 2004-01-16 2007-03-06 Cirrus Logic, Inc. Look-ahead delta sigma modulator having an infinite impulse response filter with multiple look-ahead outputs
TWI353724B (en) * 2008-07-31 2011-12-01 Ralink Technology Corp Transversal filter
US10665222B2 (en) * 2018-06-28 2020-05-26 Intel Corporation Method and system of temporal-domain feature extraction for automatic speech recognition

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61114338A (ja) * 1984-11-09 1986-06-02 Hitachi Ltd 乗算器
US4982354A (en) * 1987-05-28 1991-01-01 Mitsubishi Denki Kabushiki Kaisha Digital finite impulse response filter and method
FR2665275B1 (fr) * 1990-07-27 1992-11-13 France Etat Multiplieur cellulaire en arbre de type gradin inverse et son procede de realisation.
US5262972A (en) * 1991-07-17 1993-11-16 Hughes Missile Systems Company Multichannel digital filter apparatus and method
FI96256C (fi) * 1993-04-05 1996-05-27 Tapio Antero Saramaeki Menetelmä ja järjestely transponoidussa digitaalisessa FIR-suodattimessa binäärisen sisääntulosignaalin kertomiseksi tappikertoimilla sekä menetelmä transponoidun digitaalisen suodattimen suunnittelemiseksi
GB9511568D0 (en) * 1995-06-07 1995-08-02 Discovision Ass Signal processing apparatus and method

Also Published As

Publication number Publication date
EP1119910A1 (de) 2001-08-01
DE69821145D1 (de) 2004-02-19
US7007053B1 (en) 2006-02-28
EP1119910B1 (de) 2004-01-14
SG73567A1 (en) 2000-06-20
WO2000022729A1 (en) 2000-04-20

Similar Documents

Publication Publication Date Title
DE69231518T2 (de) Integrierte schaltung fuer einen pyramidenfoermigen prozessor
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE69421073T2 (de) Berechnung eines skalarprodukts in einem direkten nichtrekursiven filter
DE69031674T2 (de) Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation
DE60021623T2 (de) Multiplizierer und verschiebungsanordnung mit benutzung von vorzeichenzifferzahlen darstellung
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE3240906A1 (de) Digitale filteranordnung mit zwei ausgaengen
DE69425565T2 (de) Verfahren und vorrichtung in einem transponierten digitalen fir-filter zur multiplikation eines binären eingangssignals mit filterkoeffizienten und verfahren zum entwurf eines digitalen transponierten filters
DE69914087T2 (de) Digitales filter ohne multiplizierer
DE2918692C2 (de) Digitalfilter
DE4345029C2 (de) Schaltkreis für diskrete Kosinustransformation
DE69434276T2 (de) Datenwandler mit Skalierung der Verstärkung zusammen mit einem Zittersignal
DE69821145T2 (de) Flächeneffiziente herstellung von koeffizient-architektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz
DE69320218T2 (de) Digitales Filter
DE2900844C2 (de)
EP0234452A1 (de) Digitale Schaltungsanordung zur Abtastratenänderung und Signalfilterung und Verfahren zu ihrem Entwurf
DE69320681T2 (de) Digitales Filter
DE10250555A1 (de) Verfahren zur Ermittlung von Filterköffizienten eines digitalen Filters und digitales Filter
DE3922469C2 (de)
EP0305708B1 (de) Digitales Dezimierungsfilter
DE69821144T2 (de) Flächeneffiziente herstellung von koeffizientarchitektur für bit-serielle fir, iir filter und kombinatorische/sequentielle logische struktur ohne latenz
DE10117041C1 (de) Carry-Ripple Addierer
DE69611155T2 (de) Digitales filter
DE69222626T2 (de) Hochauflösendes Digitalfilter
WO2006069743A1 (de) Fir-dezimationsfilter und anordnung mit demselben

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee