intel UG-20094 Cyclone 10 GX Native Vast Punt DSP IP Core
Intel® Cyclone® 10 GX Native Fixed Point DSP IP Core Gebruikershandleiding
De Intel Cyclone® 10 GX Native Fixed Point DSP IP-kern instantiëert en bestuurt een enkel Intel Cyclone 10 GX Variable Precision Digital Signal Processing (DSP)-blok. De Cyclone 10 GX Native Fixed Point DSP IP-kern is alleen beschikbaar voor Intel Cyclone 10 GX-apparaten.
Cyclone 10 GX Native Fixed Point DSP IP Core functioneel blokdiagram
Gerelateerde informatie
Inleiding tot Intel FPGA IP-kernen.
Cyclone 10 GX Native Fixed Point DSP IP-kernfuncties
De Cyclone 10 GX Native Fixed Point DSP IP-kern ondersteunt de volgende functies:
- Krachtige, energiezuinige en volledig geregistreerde vermenigvuldigingsbewerkingen
- Woordlengten van 18 bits en 27 bits
- Twee vermenigvuldigers van 18 × 19 of één vermenigvuldiger van 27 × 27 per DSP-blok
- Ingebouwde optelling, aftrekking en 64-bit dubbel accumulatieregister om vermenigvuldigingsresultaten te combineren
- Cascading 19-bit of 27-bit wanneer pre-adder is uitgeschakeld en cascadering 18-bit wanneer pre-adder wordt gebruikt om de tap-delay-lijn te vormen voor filtertoepassingen
- Cascaderende 64-bits uitgangsbus om uitgangsresultaten van het ene blok naar het volgende blok te verspreiden zonder externe logische ondersteuning
- Harde pre-adder ondersteund in 19-bits en 27-bits modi voor symmetrische filters
- Interne coëfficiëntenregisterbank in zowel 18-bits als 27-bits modi voor filterimplementatie
- 18-bits en 27-bits systolische FIR-filters (Finite Impulse Response) met gedistribueerde uitgangsopteller
Aan de slag
Dit hoofdstuk geeft een algemeen overzichtview van de Intel FPGA IP-kernontwerpstroom om u te helpen snel aan de slag te gaan met de Cyclone 10 GX Native Fixed Point DSP IP-kern. De Intel FPGA IP-bibliotheek wordt geïnstalleerd als onderdeel van het Intel Quartus® Prime-installatieproces. U kunt elke Intel FPGA IP-core uit de bibliotheek selecteren en parametriseren. Intel biedt een geïntegreerde parametereditor waarmee u de Intel FPGA DSP IP-kern kunt aanpassen om een grote verscheidenheid aan toepassingen te ondersteunen. De parametereditor begeleidt u bij het instellen van parameterwaarden en de selectie van optionele poorten.
Gerelateerde informatie
- Inleiding tot Intel FPGA IP-kernen
Biedt algemene informatie over alle Intel FPGA IP-cores, inclusief het parametriseren, genereren, upgraden en simuleren van IP-cores. - Versie-onafhankelijke IP- en platformontwerper-simulatiescripts (standaard) maken
Maak simulatiescripts waarvoor geen handmatige updates voor software- of IP-versie-upgrades nodig zijn. - Best practices voor projectbeheer
Richtlijnen voor efficiënt beheer en overdraagbaarheid van uw project en IP files.
Cyclone 10 GX Native Fixed Point DSP IP Core-parameterinstellingen
U kunt de Cyclone 10 GX Native Fixed Point DSP IP-kern aanpassen door de parameters op te geven met behulp van de parametereditor in de Intel Quartus Prime-software.
Bedieningsmodus Tab
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Kies de bedieningsmodus | operatie modus | m18×18_full m18×18_sumof2 m18×18_plus36 m18×18_systolic m27×27 | Selecteer de gewenste bedrijfsmodus. |
Vermenigvuldigerconfiguratie | |||
Weergaveformaat voor topvermenigvuldiger x operand | ondertekend_max | ondertekend niet ondertekend | Geef het representatieformaat op voor de hoogste vermenigvuldiger x-operand. |
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Weergaveformaat voor topvermenigvuldiger en operand | ondertekend_mei | ondertekend niet ondertekend | Geef het representatieformaat op voor de hoogste vermenigvuldiger en operand. |
Weergaveformaat voor onderste vermenigvuldiger x operand | ondertekend_mbx | ondertekend niet ondertekend | Geef het representatieformaat op voor de onderste vermenigvuldiger x-operand. |
Weergaveformaat voor onderste vermenigvuldiger en operand | ondertekend_mby | ondertekend niet ondertekend | Geef het representatieformaat op voor de onderste vermenigvuldiger en operand.
Selecteer altijd niet ondertekend voor m18×18_plus36 . |
Schakel 'sub'-poort in | enable_sub | Nee Ja | Selecteer Ja in staat stellen
sub-poort. |
Registreer invoer 'sub' van de vermenigvuldiger | sub_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor het subingangsregister in te schakelen en te specificeren. |
Ingangscascade | |||
Schakel ingangscascade in voor 'ay'-ingang | ay_use_scan_in | Nee Ja | Selecteer Ja om de ingangscascademodule in te schakelen voor elke gegevensinvoer.
Wanneer u de ingangscascademodule inschakelt, gebruikt de Cyclone 10 GX Native Fixed Point DSP IP-kern de scaningangssignalen als ingang in plaats van alle ingangssignalen. |
Schakel ingangscascade in voor 'door'-invoer | by_use_scan_in | Nee Ja | Selecteer Ja om de ingangscascademodule in te schakelen voor gegevensinvoer.
Wanneer u de ingangscascademodule inschakelt, gebruikt de Cyclone 10 GX Native Fixed Point DSP IP-kern de ingangssignalen als ingang in plaats van als ingangssignalen. |
Gegevens- en vertragingsregister inschakelen | delay_scan_out_ay | Nee Ja | Selecteer Ja om vertragingsregister tussen ay en door invoerregisters in te schakelen.
Deze functie wordt niet ondersteund in m18×18_plus36 En m27x27 operationele modus. |
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Gegevens inschakelen via vertragingsregister | delay_scan_out_by | Nee Ja | Selecteer Ja om het vertragingsregister tussen de ingangsregisters en de scanout-uitgangsbus in te schakelen.
Deze functie wordt niet ondersteund in m18×18_plus36 En m27x27 operationele modus. |
Schakel scanoutpoort in | gui_scanout_enable | Nee Ja | Selecteer Ja in staat stellen
scanout-uitgangsbus. |
'scanout'-uitvoerbusbreedte | scan_uit_breedte | 1–27 | Geef de breedte op van
scanout-uitgangsbus. |
Gegevens 'x'-configuratie | |||
'ax' invoerbusbreedte | bijl_breedte | 1–27 | Geef de breedte op van
ax ingangsbus.(1) |
Registreer invoer 'ax' van de vermenigvuldiger | bijl_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor het ax-ingangsregister in te schakelen en te specificeren.
ax-invoerregister is niet beschikbaar als u dit instelt 'ax'-operandbron naar 'coef'. |
'bx' invoerbusbreedte | bx_breedte | 1–18 | Geef de breedte op van
bx-ingangsbus.(1) |
Registreer invoer 'bx' van de vermenigvuldiger | bx_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor het bx-ingangsregister in te schakelen en te specificeren.
bx-ingangsregister is niet beschikbaar als u dit instelt 'bx'-operandbron naar 'coef'. |
Gegevens 'y'-configuratie | |||
'ay' of 'scanin' busbreedte | ay_scan_in_width | 1–27 | Specificeer de breedte van een of scaninvoerbus.(1) |
Registreer invoer 'ay' of voer 'scanin' van de vermenigvuldiger in | ay_scan_in_clock | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor elk of scaninvoerregister in te schakelen en te specificeren. |
'op' ingangsbusbreedte | op_breedte | 1–19 | Specificeer de breedte van de invoerbus.(1) |
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Registreer invoer 'door' van de vermenigvuldiger | tegen_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor by of scanin in te schakelen en te specificeren
invoerregister.(1) |
Uitvoer 'resultaat'-configuratie | |||
'resulta' uitvoerbusbreedte | resultaat_a_breedte | 1–64 | Geef de breedte op van
resulterende uitgangsbus. |
'resultb' uitvoerbusbreedte | resultaat_b_breedte | 1–64 | Specificeer de breedte van de resultaatuitvoerbus. resultb alleen beschikbaar bij gebruik van operations_mode m18×18_vol. |
Gebruik uitvoerregister | uitvoer_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor resulta- en resultb-uitgangsregisters in te schakelen en te specificeren. |
Tabblad Pre-adder
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
'ay'-operandbron | operand_source_may | invoervoorloper | Specificeer de operandbron voor elke invoer. Selecteer voorloper om pre-addermodule voor topvermenigvuldiger in te schakelen. Instellingen voor elke en per operandbron moeten hetzelfde zijn. |
'per' operandbron | operand_bron_mby | invoervoorloper | Specificeer de operandbron voor invoer. Selecteer voorloper om pre-addermodule voor bodemvermenigvuldiger in te schakelen. Instellingen voor elke en per operandbron moeten hetzelfde zijn. |
Stel vóór het optellen een bewerking in op aftrekken | preadder_subtract_a | Nee Ja | Selecteer Ja om de aftrekkingsbewerking voor de pre-addermodule voor de bovenste vermenigvuldiger te specificeren. Pre-adder-instellingen voor de bovenste en onderste vermenigvuldiger moeten hetzelfde zijn. |
Stel pre-optelling b-bewerking in op aftrekken | preadder_subtract_b | Nee Ja | Selecteer Ja om de aftrekkingsbewerking voor de pre-addermodule voor de onderste vermenigvuldiger te specificeren. Pre-adder-instellingen voor de bovenste en onderste vermenigvuldiger moeten hetzelfde zijn. |
Gegevens 'z'-configuratie | |||
'az' invoerbusbreedte | az_breedte | 1–26 | Geef de breedte op van een z-invoerbus.(1) |
Registreer invoer 'az' van de vermenigvuldiger | az_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor az-ingangsregisters in te schakelen en te specificeren. Klokinstellingen voor ay- en az-ingangsregisters moeten hetzelfde zijn. |
'bz' invoerbusbreedte | bz_breedte | 1–18 | Specificeer de breedte van de bz-invoerbus.(1) |
Registreer invoer 'bz' van de vermenigvuldiger | bz_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor bz-ingangsregisters in te schakelen en te specificeren. Klokinstellingen voor by- en bz-ingangsregisters moeten hetzelfde zijn. |
Tabblad Interne Coëfficiënt
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
'ax'-operandbron | operand_bron_max | invoer coëfficient | Specificeer de operandbron voor de ax-invoerbus. Selecteer coëfficient om de interne coëfficiëntenmodule voor de topvermenigvuldiger in te schakelen.
Selecteer Nee voor Registreer invoer 'ax' van de vermenigvuldiger parameter wanneer u de interne coëfficiëntfunctie inschakelt. |
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Instellingen voor ax- en bx-operandbron moeten hetzelfde zijn. | |||
'bx'-operandbron | operand_source_mbx | invoer coëfficient | Specificeer de operandbron voor de bx-ingangsbus. Selecteer coëfficient om de interne coëfficiëntenmodule voor de topvermenigvuldiger in te schakelen.
Selecteer Nee voor Registreer invoer 'bx' van de vermenigvuldiger parameter wanneer u de interne coëfficiëntfunctie inschakelt. Instellingen voor ax- en bx-operandbron moeten hetzelfde zijn. |
'coefsel' Invoerregisterconfiguratie | |||
Registreer invoer 'coefsela' van de vermenigvuldiger | coef_sel_a_clock | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor de coefsela-ingangsregisters in te schakelen en te specificeren. |
Registreer invoer 'coefselb' van de vermenigvuldiger | coef_sel_b_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor de coefselb-ingangsregisters in te schakelen en te specificeren. |
Coëfficiënte opslagconfiguratie | |||
coef_a_0–7 | coef_a_0–7 | Geheel getal | Specificeer de coëfficiëntwaarden voor de ax-invoerbus.
Voor 18-bits werking is de maximale invoerwaarde 218 – 1. Voor 27-bits werking is de maximale waarde 227 – 1. |
coef_b_0–7 | coef_b_0–7 | Geheel getal | Specificeer de coëfficiëntwaarden voor de bx-ingangsbus. |
Tabblad Accumulator/Uitgangscascade
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Schakel de 'accumulatie'-poort in | enable_accumulate | Nee Ja | Selecteer Ja in staat stellen
accu poort. |
Schakel 'negatie'-poort in | enable_negate | Nee Ja | Selecteer Ja in staat stellen
poort ontkennen. |
Schakel 'loadconst'-poort in | enable_loadconst | Nee Ja | Selecteer Ja in staat stellen
loadconst-poort. |
Registreer invoer 'accumuleren' van de accu | accumuleren_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0 , Klok1, of Klok2 om het ingangskloksignaal voor de verzamelde ingangsregisters in te schakelen en te specificeren. |
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Registreer invoer 'loadconst' van de accu | laad_const_clock | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor de loadconst-ingangsregisters in te schakelen en te specificeren. |
Registeringang 'negeren' van de opteleenheid | negeer_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor de negatieve ingangsregisters in te schakelen en te specificeren. |
Dubbele accumulator inschakelen | enable_double_accum | Nee Ja | Selecteer Ja om de dubbele accumulatorfunctie in te schakelen. |
N-waarde van vooraf ingestelde constante | belasting_const_waarde | 0 – 63 | Geef de vooraf ingestelde constante waarde op.
Deze waarde kan 2 zijnN waar N is de vooraf ingestelde constante waarde. |
Chainin-poort inschakelen | gebruik_chainadder | Nee Ja | Selecteer Ja om de uitgangscascademodule en de chainin-ingangsbus in te schakelen.
De cascadefunctie voor uitvoer wordt niet ondersteund in m18×18_vol operatie modus. |
Chainout-poort inschakelen | gui_chainout_enable | Nee Ja | Selecteer Ja om de chainout-uitgangsbus in te schakelen. De cascadefunctie voor uitvoer wordt niet ondersteund in
m18×18_vol operatie modus. |
Tabblad Pipelining
Parameter | IP-gegenereerde parameter | Waarde | Beschrijving |
Voeg invoerpijplijnregister toe aan het invoergegevenssignaal (x/y/z/coefsel) | invoer_pijplijn_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor x-, y-, z-, coefsela- en coefselb-pijplijningangsregisters in te schakelen en te specificeren. |
Voeg een ingangspijplijnregister toe aan het 'sub'-datasignaal | sub_pipeline_klok | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor het subpijplijningangsregister in te schakelen en te specificeren. (2) |
Voeg het invoerpijplijnregister toe aan het 'accumulatie'-gegevenssignaal | accum_pipeline_clock | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor het verzamelde pijplijningangsregister in te schakelen en te specificeren.(2) |
Voeg een invoerpijplijnregister toe aan het 'loadconst'-gegevenssignaal | load_const_pipeline_clock | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor het loadconst pijplijningangsregister in te schakelen en te specificeren.(2) |
Voeg het invoerpijplijnregister toe aan het 'negatieve' datasignaal | negate_pipeline_clock | Nee Klok0 Klok1 Klok2 | Selecteer Klok0, Klok1, of Klok2 om het ingangskloksignaal voor het negatieve pijplijningangsregister in te schakelen en te specificeren.(2) |
Maximale invoergegevensbreedte per bedieningsmodus
U kunt de gegevensbreedte voor x-, y- en z-invoer aanpassen zoals aangegeven in de tabel.
Alle pijplijningangsregisters voor dynamische stuursignalen moeten dezelfde klokinstelling hebben.
Werkingsmodus | Maximale invoergegevensbreedte | |||||
ax | ay | az | bx | by | bz | |
Zonder pre-adder of interne coëfficiënt | ||||||
m18×18_vol | 18 (getekend)
18 (niet ondertekend) |
19 (getekend)
18 (niet ondertekend) |
Niet gebruikt | 18 (getekend)
18 (niet ondertekend) |
19 (getekend)
18 (niet ondertekend) |
Niet gebruikt |
m18×18_somof2 | ||||||
m18×18_systolisch | ||||||
m18×18_plus36 | ||||||
m27×27 | 27 (getekend)
27 (niet ondertekend) |
Niet gebruikt | ||||
Alleen met pre-adder-functie | ||||||
m18×18_vol | 18 (getekend)
18 (niet ondertekend) |
|||||
m18×18_somof2 | ||||||
m18×18_systolisch | ||||||
m27×27 | 27 (getekend)
27 (niet ondertekend) |
26 (getekend)
26 (niet ondertekend) |
Niet gebruikt | |||
Alleen met interne coëfficiëntfunctie | ||||||
m18×18_vol | Niet gebruikt | 19 (getekend)
18 (niet ondertekend) |
Niet gebruikt | 19 (getekend)
18 (niet ondertekend) |
Niet gebruikt | |
m18×18_somof2 | ||||||
m18×18_systolisch | ||||||
m27×27 | 27 (getekend)
27 (niet ondertekend) |
Niet gebruikt |
Functionele beschrijving
De Cyclone 10 GX Native Fixed Point DSP IP-kern bestaat uit 2 architecturen; 18 × 18 vermenigvuldiging en 27 × 27 vermenigvuldiging. Elke instantiatie van de Cyclone 10 GX Native Fixed Point DSP IP-kern genereert slechts 1 van de 2 architecturen, afhankelijk van de geselecteerde operationele modi. U kunt optionele modules voor uw toepassing inschakelen.
Gerelateerde informatie
DSP-blokken met variabele precisie in het hoofdstuk Intel Cyclone 10 GX Devices, Intel Cyclone 10 GX Core Fabric en General Purpose I/Os Handbook.
Operationele modi
De Cyclone 10 GX Native Fixed Point DSP IP-kern ondersteunt 5 operationele modi:
- De 18 × 18 volledige modus
- De 18 × 18 som van 2-modus
- De 18 × 18 Plus 36-modus
- De 18 × 18 systolische modus
- De 27 × 27-modus
De 18 × 18 volledige modus
Wanneer geconfigureerd als 18 × 18 volledige modus, werkt de Cyclone 10 GX Native Fixed Point DSP IP-kern als twee onafhankelijke 18 (ondertekend/niet-ondertekend) × 19 (ondertekend) of 18
(ondertekend/niet-ondertekend) × 18 (niet-ondertekende) vermenigvuldigers met 37-bits uitvoer. Deze modus past de volgende vergelijkingen toe:
- resultaat = bijl * ja
- resultaatb = bx * door
De 18×18 Full Mode-architectuur
De 18 × 18 som van 2-modus
In 18 × 18 som van 2 modi maakt de Cyclone 10 GX Native Fixed Point DSP IP-kern de bovenste en onderste vermenigvuldigers mogelijk en genereert een resultaat door optelling of aftrekking tussen de 2 vermenigvuldigers. Het subdynamische stuursignaal bestuurt een opteller om de optel- of aftrekbewerkingen uit te voeren. De resulterende uitvoerbreedte van de Cyclone 10 GX Native Fixed Point DSP IP-kern kan maximaal 64 bits ondersteunen wanneer u accumulator/uitvoercascade inschakelt. Deze modus past de vergelijking toe van resulta =[±(ax * ay) + (bx * by)].
De 18 × 18 som van 2-modusarchitectuur
De 18 × 18 Plus 36-modus
Indien geconfigureerd als 18 × 18 Plus 36-modus, maakt de Cyclone 10 GX Native Fixed Point DSP IP-kern alleen de hoogste vermenigvuldiger mogelijk. Deze modus past de vergelijking toe van resulta = (ax * ay) + concatenate(bx[17:0],by[17:0]).
De 18 × 18 Plus 36-modusarchitectuur
Wanneer u deze modus gebruikt, moet u het weergaveformaat voor onderste vermenigvuldigers en operand instellen op niet-ondertekend. Wanneer de invoerbus in deze modus minder dan 36 bits is, moet u de noodzakelijke ondertekende extensie opgeven om de 36 bits invoer te vullen.
Minder dan 36-bits operand gebruiken in de 18 × 18 Plus 36-modus
Deze example laat zien hoe de Cyclone 10 GX Native Fixed Point DSP IP-kern moet worden geconfigureerd om de 18 × 18 Plus 36 operationele modus te gebruiken met ondertekende 12-bit invoergegevens van 101010101010 (binair) in plaats van een 36-bit operand.
- Stel het weergaveformaat voor onderste vermenigvuldiger x operand: in op ondertekend.
- Stel het representatieformaat voor de onderste vermenigvuldiger en operand: in op niet-ondertekend.
- Stel de 'bx'-ingangsbusbreedte in op 18.
- Stel de 'by'-ingangsbusbreedte in op 18.
- Geef gegevens van '111111111111111111' door aan de bx-ingangsbus.
- Geef gegevens van '111111101010101010' door via de invoerbus.
De 18 × 18 systolische modus
In 18 x 18 systolische operationele modi maakt de Cyclone 10 GX Native Fixed Point DSP IP-kern de bovenste en onderste vermenigvuldigers mogelijk, een ingangssystolisch register voor de bovenste vermenigvuldiger en een keten-systolisch register voor de keten van ingangssignalen. Wanneer u uitvoercascade inschakelt, ondersteunt deze modus een uitvoerbreedte van 44 bits. Wanneer u de accumulatorfunctie zonder uitvoercascade inschakelt, kunt u de resulterende uitvoerbreedte configureren tot 64 bits.
De 18 × 18 systolische modusarchitectuur
De 27 × 27-modus
Indien geconfigureerd als 27 × 27 modi, maakt de Cyclone 10 GX Native Fixed Point DSP IP-kern een vermenigvuldiger van 27 (ondertekend/niet-ondertekend) x 27 (ondertekend/niet-ondertekend) mogelijk. De uitgangsbus kan maximaal 64 bits ondersteunen als de accumulator/uitgangscascade is ingeschakeld. Deze modus past de vergelijking van resulta = ax * ay toe.
De 27 × 27-modusarchitectuur
Optionele Modules
De optionele modules die beschikbaar zijn in de Cyclone 10 GX Native Fixed Point DSP IP Core zijn:
- Ingangscascade
- Pre-adders
- Interne coëfficiënt
- Accumulator en uitgangscascade
- Pijplijnregistraties
Ingangscascade
De ingangscascadefunctie wordt ondersteund op elke ingangsbus en op de ingangsbus. Wanneer u Enable input cascade for 'ay' input instelt op Yes, zal de Cyclone 10 GX Native Fixed Point DSP IP-kern input ontvangen van scaninvoersignalen in plaats van een inputbus. Wanneer u Enable input cascade for 'by' input instelt op Yes, zal de Cyclone 10 GX Native Fixed Point DSP IP-kern input ontvangen van elke inputbus in plaats van via inputbus.
Voor de juistheid van de toepassing wordt aanbevolen om de ingangsregisters in te schakelen voor en/of telkens wanneer de ingangscascade is ingeschakeld.
U kunt ervoor zorgen dat de vertragingsregisters overeenkomen met de latentievereiste tussen het invoerregister en het uitvoerregister. Er zijn 2 vertragingsregisters in de kern. Het bovenste vertragingsregister wordt gebruikt voor alle invoerpoorten of scan-in-ingangen, terwijl het onderste vertragingsregister wordt gebruikt voor scan-uitvoerpoorten. Deze vertragingsregisters worden ondersteund in 18 × 18 volledige modus, 18 × 18 sommen van 2 modi en 18 × 18 systolische modi.
Pre-adder
De pre-adder kan in de volgende configuraties worden geconfigureerd:
- Twee onafhankelijke 18-bits (ondertekend/niet-ondertekend) pre-adders.
- Eén 26-bits pre-adder.
Wanneer u pre-adder inschakelt in 18 × 18-vermenigvuldigingsmodi, worden ay en az gebruikt als invoerbus voor de bovenste pre-adder, terwijl by en bz worden gebruikt als invoerbus voor de onderste pre-adder. Wanneer u pre-adder inschakelt in de 27 × 27-vermenigvuldigingsmodus, worden ay en az gebruikt als invoerbus voor de pre-adder. De pre-adder ondersteunt zowel optel- als aftrekkingsbewerkingen. Wanneer beide pre-adders binnen hetzelfde DSP-blok worden gebruikt, moeten ze hetzelfde bewerkingstype delen (optellen of aftrekken).
Interne coëfficiënt
De interne coëfficiënt kan maximaal acht constante coëfficiënten ondersteunen voor de multiplicanden in 18-bits en 27-bits modi. Wanneer u de interne coëfficiëntfunctie inschakelt, worden er twee ingangsbussen gegenereerd om de selectie van de coëfficiëntmultiplexer te besturen. De coefsela-invoerbus wordt gebruikt om de vooraf gedefinieerde coëfficiënten voor de bovenste vermenigvuldiger te selecteren en de adviesinvoerbus wordt gebruikt om de vooraf gedefinieerde coëfficiënten voor de onderste vermenigvuldiger te selecteren.
De interne coëfficiëntopslag ondersteunt geen dynamisch bestuurbare coëfficiëntwaarden en externe coëfficiëntopslag is vereist om een dergelijke bewerking uit te voeren.
Accumulator en uitgangscascade
De accumulatormodule kan worden ingeschakeld om de volgende bewerkingen uit te voeren:
- Optellen of aftrekken
- Vooringenomen afrondingsbewerking met een constante waarde van 2N
- Accumulatie via twee kanalen
Om de optel- of aftrekbewerking van de accumulator dynamisch uit te voeren, bestuurt u het negatieve ingangssignaal. Voor een biased afronding kunt u een vooraf ingestelde constante van 2N opgeven en laden voordat de accumulatormodule wordt ingeschakeld, door een geheel getal op te geven voor de parameter N-waarde van de vooraf ingestelde constante. Het gehele getal N moet kleiner zijn dan 64. U kunt het gebruik van de vooraf ingestelde constante dynamisch in- of uitschakelen door het loadconst-signaal te besturen. U kunt deze bewerking gebruiken als een actieve muxing van de ronde waarde in het accumulatorfeedbackpad. De geladen kosten en het geaccumuleerde signaalgebruik sluiten elkaar uit.
U kunt het dubbele accumulatorregister inschakelen met behulp van de parameter Dubbele accumulator inschakelen om dubbele accumulatie uit te voeren. De accumulatormodule kan het aan elkaar koppelen van meerdere DSP-blokken ondersteunen voor optel- of aftrekkingsbewerkingen door de gekoppelde invoerpoort en de gekoppelde uitvoerpoort in te schakelen. In de 18 x 18 systolische modus wordt slechts 44-bit van de keteninvoerbus en ketenuitvoerbus gebruikt. Alle 64-bits ketens in de invoerbus moeten echter worden verbonden met de uitgeketende uitvoerbus van het voorgaande DSP-blok.
Pijplijnregister
De Cyclone 10 GX Native Fixed Point DSP IP-kern ondersteunt een enkel niveau van pijplijnregister. Het pijplijnregister ondersteunt maximaal drie klokbronnen en één asynchroon wissignaal om de pijplijnregisters te resetten. Er zijn vijf pijplijnregisters:
- pijpleidingregister voor gegevensinvoerbus
- pijplijnregister voor subdynamisch stuursignaal
- negeer het pijplijnregister voor dynamische stuursignalen
- accumuleren dynamisch controlesignaal pijplijnregister
- loadconst pijplijnregister voor dynamische controle
U kunt ervoor kiezen om de pijplijnregisters van elke data-invoerbus en de pijplijnregisters voor het dynamische stuursignaal onafhankelijk in te schakelen. Alle ingeschakelde pijplijnregisters moeten echter dezelfde klokbron gebruiken.
Klokschema
De invoer-, pijplijn- en uitvoerregisters in de Cyclone 10 GX Native Fixed Point DSP IP-kern ondersteunen drie klokbronnen/inschakelingen en twee asynchrone clears. Alle invoerregisters gebruiken aclr[0] en alle pijplijn- en uitvoerregisters gebruiken aclr[1]. Elk registertype kan één van de drie klokbronnen en klokvrijgavesignalen selecteren. Wanneer u de Cyclone 10 GX Native Fixed Point DSP IP-kern configureert op 18 × 18 systolische bedrijfsmodus, zal de Intel Quartus Prime-software het ingangs-systolische register en de keten-systolische registerklokbron instellen op dezelfde klokbron als het uitgangsregister intern.
Wanneer u de dubbele accumulatorfunctie inschakelt, zal de Intel Quartus Prime-software de klokbron van het dubbele accumulatorregister instellen op dezelfde klokbron als het uitgangsregister intern.
Beperkingen van het klokschema
Dit tabblad toont de beperkingen die u moet toepassen voor alle registerklokschema's.
Voorwaarde | Beperking |
Wanneer pre-adder is ingeschakeld | De klokbron voor de ingangsregisters ay en az moet hetzelfde zijn. |
De klokbron voor by- en bz-ingangsregisters moet hetzelfde zijn. | |
Wanneer pijplijnregisters zijn ingeschakeld | De klokbron voor alle pijplijnregisters moet hetzelfde zijn. |
Wanneer een van de ingangsregisters voor dynamische besturingssignalen | De klokbron voor ingangsregisters voor sub, accumulatie, loadconst en negate moet hetzelfde zijn. |
Cyclone 10 GX Native Fixed Point DSP IP-kernsignalen
De volgende afbeelding toont de ingangs- en uitgangssignalen van de Cyclone 10 GX Native Fixed Point DSP IP-kern.
Cyclone 10 GX Native Fixed Point DSP IP-kernsignalen
Gegevensinvoersignalen
Signaalnaam | Type | Breedte | Beschrijving |
bijl[] | Invoer | 27 | Voer de databus in naar de bovenste vermenigvuldiger. |
ja[] | Invoer | 27 | Voer de databus in naar de bovenste vermenigvuldiger.
Wanneer pre-adder is ingeschakeld, worden deze signalen als ingangssignalen naar de bovenste pre-adder verzonden. |
az[] | Invoer | 26 | Deze signalen zijn ingangssignalen naar de bovenste pre-adder.
Deze signalen zijn alleen beschikbaar als pre-adder is ingeschakeld. Deze signalen zijn niet beschikbaar in m18×18_plus36 operationele modus. |
bx[] | Invoer | 18 | Voer de databus in naar de onderste vermenigvuldiger.
Deze signalen zijn niet beschikbaar in m27×27 operationele modus. |
door[] | Invoer | 19 | Voer de databus in naar de onderste vermenigvuldiger.
Wanneer pre-adder is ingeschakeld, dienen deze signalen als ingangssignalen voor de onderste pre-adder. Deze signalen zijn niet beschikbaar in m27×27 operationele modus. |
bz[] | Invoer | 18 | Deze signalen zijn ingangssignalen naar de onderste pre-adder. Deze signalen zijn alleen beschikbaar als pre-adder is ingeschakeld. Deze signalen zijn niet beschikbaar in m27×27 En m18×18_plus36 operationele modi. |
Gegevensuitvoersignalen
Signaalnaam | Type | Breedte | Beschrijving |
resultaat[] | Uitvoer | 64 | Uitgangsdatabus van bovenste vermenigvuldiger.
Deze signalen ondersteunen maximaal 37 bits m18×18_vol operationele modus. |
resultaat[] | Uitvoer | 37 | Uitvoerdatabus van onderste vermenigvuldiger.
Deze signalen zijn alleen beschikbaar in m18×18_vol operationele modus. |
Klok-, inschakel- en wissignalen
Signaalnaam | Type | Breedte | Beschrijving |
clk[] | Invoer | 3 | Ingangskloksignalen voor alle registers.
Deze kloksignalen zijn alleen beschikbaar als een van de ingangsregisters, pijplijnregisters of uitgangsregisters is ingesteld op Klok0, Klok1, of Klok2. • clk[0] = Klok0 • clk[1] = Klok1 • clk[2] = Klok2 |
ena[] | Invoer | 3 | Klok inschakelen voor clk[2:0]. Dit signaal is actief-hoog.
• ena[0] is voor Klok0 • ena[1] is voor Klok1 • ena[2] is voor Klok2 |
aclr[] | Invoer | 2 | Asynchrone heldere ingangssignalen voor alle registers. Dit signaal is actief-hoog.
Gebruik aclr[0] voor alle invoerregisters en gebruik aclr[1] voor alle pijplijnregisters en uitgangsregisters. Standaard wordt dit signaal ingetrokken. |
Dynamische stuursignalen
Signaalnaam | Type | Breedte | Beschrijving |
sub | Invoer | 1 | Ingangssignaal om de uitvoer van de bovenste vermenigvuldiger op te tellen of af te trekken met de uitvoer van de onderste vermenigvuldiger.
• Beëindig dit signaal om de optelbewerking te specificeren. • Bekrachtig dit signaal om de aftrekkingsbewerking te specificeren. Standaard wordt dit signaal gedeactiveerd. U kunt dit signaal tijdens runtime bevestigen of deactiveren.(3) |
ontkennen | Invoer | 1 | Ingangssignaal om de som van de bovenste en onderste vermenigvuldigers op te tellen of af te trekken met de gegevens van chainin-signalen.
• Beëindig dit signaal om de optelbewerking te specificeren. • Bekrachtig dit signaal om de aftrekkingsbewerking te specificeren. Standaard wordt dit signaal gedeactiveerd. U kunt dit signaal tijdens runtime bevestigen of deactiveren.(3) |
accumuleren | Invoer | 1 | Ingangssignaal om de accumulatorfunctie in of uit te schakelen.
• Beëindig dit signaal om de accumulatorfunctie uit te schakelen. • Bekrachtig dit signaal om de accumulatorfunctie in te schakelen. Standaard wordt dit signaal gedeactiveerd. U kunt dit signaal tijdens runtime bevestigen of deactiveren.(3) |
belastingconst | Invoer | 1 | Ingangssignaal om de belastingconstantefunctie in of uit te schakelen.
• Beëindig dit signaal om de belastingconstantefunctie uit te schakelen. • Bekrachtig dit signaal om de belastingconstantefunctie in te schakelen. Standaard wordt dit signaal gedeactiveerd. U kunt dit signaal tijdens runtime bevestigen of deactiveren.(3) |
Interne coëfficiëntsignalen
Signaalnaam | Type | Breedte | Beschrijving |
Coefsela[] | Invoer | 3 | Ingangsselectiesignalen voor 8 coëfficiëntwaarden gedefinieerd door de gebruiker voor de bovenste vermenigvuldiger. De coëfficiëntwaarden worden opgeslagen in het interne geheugen en gespecificeerd door parameters coef_a_0 naar coef_a_7.
• coefsela[2:0] = 000 verwijst naar coef_a_0 • coefsela[2:0] = 001 verwijst naar coef_a_1 • coelsela[2:0] = 010 verwijst naar coef_a_2 • … enzovoorts. Deze signalen zijn alleen beschikbaar als de interne coëfficiëntfunctie is ingeschakeld. |
Coefselb[] | Invoer | 3 | Ingangsselectiesignalen voor 8 coëfficiëntwaarden gedefinieerd door de gebruiker voor de onderste vermenigvuldiger. De coëfficiëntwaarden worden opgeslagen in het interne geheugen en gespecificeerd door parameters coef_b_0 naar coef_b_7.
• coefselb[2:0] = 000 verwijst naar coef_b_0 • coefselb[2:0] = 001 verwijst naar coef_b_1 • coelselb[2:0] = 010 verwijst naar coef_b_2 • … enzovoorts. Deze signalen zijn alleen beschikbaar als de interne coëfficiëntfunctie is ingeschakeld. |
Ingangscascadesignalen
Signaalnaam | Type | Breedte | Beschrijving |
scannen[] | Invoer | 27 | Ingangsdatabus voor ingangscascademodule.
Verbind deze signalen met de scanoutsignalen van de voorgaande DSP-kern. |
scannen[] | Uitvoer | 27 | Uitgangsdatabus van de ingangscascademodule.
Verbind deze signalen met de scansignalen van de volgende DSP-kern. |
Uitgangscascadesignalen
Signaalnaam | Type | Breedte | Beschrijving |
keten[] | Invoer | 64 | Ingangsdatabus voor uitgangscascademodule.
Verbind deze signalen met de chainout-signalen van de voorgaande DSP-kern. |
uitschakeling[] | Uitvoer | 64 | Uitgangsdatabus van de uitgangscascademodule.
Verbind deze signalen met de chainin-signalen van de volgende DSP-kern. |
Documentrevisiegeschiedenis voor de Cyclone 10 GX Native Fixed Point DSP IP Core Gebruikershandleiding
Datum | Versie | Wijzigingen |
November 2017 | 2017.11.06 | Eerste release. |
Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen.
Andere namen en merken kunnen als eigendom van anderen worden opgeëist.
Documenten / Bronnen
![]() |
intel UG-20094 Cyclone 10 GX Native Vast Punt DSP IP Core [pdf] Gebruikershandleiding UG-20094 Cyclone 10 GX Native Fixed Point DSP IP Core, UG-20094, Cyclone 10 GX Native Fixed Point DSP IP Core, Native Fixed Point DSP IP Core, Fixed Point DSP IP Core, DSP IP Core |