intel UG-20094 Cyclone 10 GX Native Fixed Point DSP IP Core
Intel® Cyclone® 10 GX Native Fixed Point DSP IP Core Användarhandbok
Intel Cyclone® 10 GX Native Fixed Point DSP IP-kärna instansierar och styr ett enda Intel Cyclone 10 GX Variable Precision Digital Signal Processing (DSP)-block. Cyclone 10 GX Native Fixed Point DSP IP-kärna är endast tillgänglig för Intel Cyclone 10 GX-enheter.
Cyclone 10 GX Native Fixed Point DSP IP Core Funktionsblockdiagram
Relaterad information
Introduktion till Intel FPGA IP-kärnor.
Cyclone 10 GX Native Fixed Point DSP IP Core-funktioner
Cyclone 10 GX Native Fixed Point DSP IP-kärna stöder följande funktioner:
- Högpresterande, effektoptimerade och fullt registrerade multiplikationsoperationer
- 18-bitars och 27-bitars ordlängder
- Två 18 × 19 multiplikatorer eller en 27 × 27 multiplikator per DSP-block
- Inbyggt register för addition, subtraktion och 64-bitars dubbelackumulering för att kombinera multiplikationsresultat
- Kaskad 19-bitars eller 27-bitars när pre-adderaren är inaktiverad och cascading 18-bitars när pre-adderaren används för att bilda tappfördröjningslinjen för filtreringstillämpning
- Kaskad 64-bitars utgångsbuss för att sprida utdata från ett block till nästa block utan externt logikstöd
- Hård föradderare som stöds i 19-bitars och 27-bitars lägen för symmetriska filter
- Intern koefficientregisterbank i både 18-bitars och 27-bitars lägen för filterimplementering
- 18-bitars och 27-bitars systoliska finita impulssvar (FIR)-filter med distribuerad utgångsadderare
Komma igång
Detta kapitel ger en allmän överview av Intel FPGA IP-kärndesignflödet för att hjälpa dig att snabbt komma igång med Cyclone 10 GX Native Fixed Point DSP IP-kärna. Intel FPGA IP-biblioteket installeras som en del av installationsprocessen för Intel Quartus® Prime. Du kan välja och parametrera vilken Intel FPGA IP-kärna som helst från biblioteket. Intel tillhandahåller en integrerad parameterredigerare som låter dig anpassa Intel FPGA DSP IP-kärnan för att stödja en mängd olika applikationer. Parametereditorn guidar dig genom inställningen av parametervärden och valet av valfria portar.
Relaterad information
- Introduktion till Intel FPGA IP-kärnor
Ger allmän information om alla Intel FPGA IP-kärnor, inklusive parametrering, generering, uppgradering och simulering av IP-kärnor. - Skapa versionsoberoende IP- och plattformsdesigner (Standard) Simulatio-skript
Skapa simuleringsskript som inte kräver manuella uppdateringar för uppgraderingar av programvara eller IP-versioner. - Best Practices för projektledning
Riktlinjer för effektiv hantering och portabilitet av ditt projekt och IP files.
Cyclone 10 GX Native Fixed Point DSP IP Core Parameterinställningar
Du kan anpassa Cyclone 10 GX Native Fixed Point DSP IP-kärna genom att specificera parametrarna med parameterredigeraren i Intel Quartus Prime-programvaran.
Fliken Driftläge
Parameter | IP-genererad parameter | Värde | Beskrivning |
Välj driftläge | Driftläge | m18×18_full m18×18_sumof2 m18×18_plus36 m18×18_systolic m27×27 | Välj önskat driftläge. |
Multiplikatorkonfiguration | |||
Representationsformat för toppmultiplikator x operand | signerad_max | undertecknad osignerad | Ange representationsformatet för den övre multiplikatorn x-operanden. |
Parameter | IP-genererad parameter | Värde | Beskrivning |
Representationsformat för toppmultiplikator y-operand | undertecknad_maj | undertecknad osignerad | Ange representationsformatet för den översta multiplikatorns y-operand. |
Representationsformat för bottenmultiplikator x operand | signerad_mbx | undertecknad osignerad | Ange representationsformatet för den nedre multiplikatorn x-operand. |
Representationsformat för bottenmultiplikator y-operand | signerad_mby | undertecknad osignerad | Ange representationsformatet för den nedre multiplikatorns y-operand.
Välj alltid osignerad för m18×18_plus36 . |
Aktivera "sub"-port | enable_sub | Inga Ja | Välja Ja att aktivera
underport. |
Registrera ingången 'sub' för multiplikatorn | underklocka | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för underingångsregistret. |
Ingångskaskad | |||
Aktivera ingångskaskad för 'ay'-ingång | ay_use_scan_in | Inga Ja | Välja Ja för att aktivera ingångskaskadmodul för ay-datainmatning.
När du aktiverar ingångskaskadmodulen använder Cyclone 10 GX Native Fixed Point DSP IP-kärna scanin-ingångssignalerna som ingång istället för ay-ingångssignaler. |
Aktivera ingångskaskad för "efter" ingång | by_use_scan_in | Inga Ja | Välja Ja för att aktivera ingångskaskadmodul för dataingång.
När du aktiverar ingångskaskadmodulen använder Cyclone 10 GX Native Fixed Point DSP IP-kärna ay-ingångssignalerna som insignal istället för ingångssignaler. |
Aktivera data och fördröjningsregister | delay_scan_out_ay | Inga Ja | Välja Ja för att aktivera fördröjningsregister mellan ay- och av ingångsregister.
Den här funktionen stöds inte i m18×18_plus36 och m27x27 driftläge. |
Parameter | IP-genererad parameter | Värde | Beskrivning |
Aktivera data genom fördröjningsregister | delay_scan_out_by | Inga Ja | Välja Ja för att aktivera fördröjningsregister mellan av ingångsregister och scanoututgångsbussen.
Den här funktionen stöds inte i m18×18_plus36 och m27x27 driftläge. |
Aktivera avsökningsport | gui_scanout_enable | Inga Ja | Välja Ja att aktivera
scanout utgångsbuss. |
'scanout' utgångsbussbredd | scan_out_width | 1–27 | Ange bredden på
scanout utgångsbuss. |
Data 'x'-konfiguration | |||
'ax' ingångsbussbredd | ax_width | 1–27 | Ange bredden på
axelingångsbuss.(1) |
Registrera multiplikatorns input 'ax' | ax_klocka | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för axe-ingångsregistret.
yxingångsregistret är inte tillgängligt om du ställer in 'ax' operandkälla till 'coef'. |
'bx' ingångsbussbredd | bx_width | 1–18 | Ange bredden på
bx ingångsbuss.(1) |
Registrera multiplikatorns ingång 'bx' | bx_klocka | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för bx-ingångsregistret.
bx-ingångsregistret är inte tillgängligt om du ställer in 'bx' operandkälla till 'coef'. |
Data 'y'-konfiguration | |||
'ay' eller 'scanin' bussbredd | ay_scan_in_width | 1–27 | Ange bredden på ay- eller scanin-ingångsbussen.(1) |
Registrera ingången 'ay' eller ingången 'scanin' av multiplikatorn | ay_scan_in_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för ay eller scaniningångsregister. |
'efter' ingångsbussbredd | by_width | 1–19 | Ange bredden på ingångsbuss.(1) |
Parameter | IP-genererad parameter | Värde | Beskrivning |
Registrera inmatning 'med' av multiplikatorn | efter_klocka | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för by eller scanin
ingångsregister.(1) |
Konfiguration av 'resultat' | |||
'resulta' utgångsbussbredd | result_a_width | 1–64 | Ange bredden på
resulta en utgångsbuss. |
'resultb' utgångsbussbredd | result_b_width | 1–64 | Ange bredden på resultatbussen. resultb endast tillgängligt när du använder operation_mode m18×18_full. |
Använd utgångsregister | output_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för resulta- och resulta-utgångsregister. |
Tab för pre-adder
Parameter | IP-genererad parameter | Värde | Beskrivning |
'ay' operandkälla | operand_source_may | ingångsförare | Ange operandkällan för ay-inmatning. Välj förläsare för att aktivera pre-addermodul för toppmultiplikator. Inställningarna för ay och per operandkälla måste vara desamma. |
'av' operandkälla | operand_source_mby | ingångsförare | Ange operandkällan för genom inmatning. Välj förläsare för att aktivera pre-addermodul för bottenmultiplikator. Inställningarna för ay och per operandkälla måste vara desamma. |
Ställ in pre-adder en operation till subtraktion | preadder_subtract_a | Inga Ja | Välja Ja för att specificera subtraktionsoperation för pre-addermodul för toppmultiplikatorn. Pre-adderinställningar för topp- och bottenmultiplikator måste vara desamma. |
Ställ in preadder b operation på subtraktion | preadder_subtract_b | Inga Ja | Välja Ja för att specificera subtraktionsoperation för pre-addermodul för bottenmultiplikatorn. Pre-adderinställningar för topp- och bottenmultiplikator måste vara desamma. |
Data 'z'-konfiguration | |||
'az' ingångsbussbredd | az_width | 1–26 | Ange bredden på az-ingångsbussen.(1) |
Registrera ingången 'az' för multiplikatorn | az_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för az-ingångsregister. Klockinställningarna för ay- och az-ingångsregister måste vara desamma. |
'bz' ingångsbussbredd | bz_width | 1–18 | Ange bredden på bz-ingångsbussen.(1) |
Registrera ingången 'bz' för multiplikatorn | bz_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för bz-ingångsregister. Klockinställningar för by- och bz-ingångsregister måste vara desamma. |
Intern koefficient Tab
Parameter | IP-genererad parameter | Värde | Beskrivning |
'ax' operandkälla | operand_source_max | input coef | Ange operandkällan för axe-ingångsbussen. Välj coef för att aktivera intern koefficientmodul för toppmultiplikator.
Välja Inga för Registrera multiplikatorns input 'ax' parameter när du aktiverar den interna koefficientfunktionen. |
Parameter | IP-genererad parameter | Värde | Beskrivning |
Inställningarna för ax- och bx-operandkälla måste vara desamma. | |||
'bx' operandkälla | operand_source_mbx | input coef | Ange operandkällan för bx-ingångsbussen. Välj coef för att aktivera intern koefficientmodul för toppmultiplikator.
Välja Inga för Registrera multiplikatorns ingång 'bx' parameter när du aktiverar den interna koefficientfunktionen. Inställningarna för ax- och bx-operandkälla måste vara desamma. |
'coefsel' Input Register Configuration | |||
Registrera ingången 'coefsela' för multiplikatorn | coef_sel_a_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för coefsela-ingångsregistren. |
Registrera ingången 'coefselb' för multiplikatorn | coef_sel_b_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för coefselb-ingångsregistren. |
Koefficientlagringskonfiguration | |||
coef_a_0–7 | coef_a_0–7 | Heltal | Ange koefficientvärdena för axelingångsbussen.
För 18-bitars driftläge är det maximala ingångsvärdet 218 – 1. För 27-bitars drift är det maximala värdet 227 – 1. |
coef_b_0–7 | coef_b_0–7 | Heltal | Ange koefficientvärdena för bx-ingångsbussen. |
Akkumulator/utgång Kaskad Tab
Parameter | IP-genererad parameter | Värde | Beskrivning |
Aktivera "ackumulera" port | aktivera_ackumulera | Inga Ja | Välja Ja att aktivera
ackumulatorport. |
Aktivera "negera" port | enable_negate | Inga Ja | Välja Ja att aktivera
förneka hamn. |
Aktivera "loadconst"-porten | enable_loadconst | Inga Ja | Välja Ja att aktivera
loadconst port. |
Registrera ingången 'ackumulera' för ackumulatorn | ackumulera_klocka | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0 , Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för de ackumulerade ingångsregistren. |
Parameter | IP-genererad parameter | Värde | Beskrivning |
Registrera ingången 'loadconst' för ackumulatorn | load_const_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för belastningskonst-ingångsregistren. |
Registrera ingången 'negate' för adderaren | negate_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för de negativa ingångsregistren. |
Aktivera dubbel ackumulator | enable_double_accum | Inga Ja | Välja Ja för att aktivera dubbel ackumulatorfunktion. |
N-värdet för förinställd konstant | load_const_value | 0 – 63 XNUMX | Ange det förinställda konstantvärdet.
Detta värde kan vara 2N där N är det förinställda konstantvärdet. |
Aktivera chainin-port | use_chainadder | Inga Ja | Välja Ja för att aktivera utgångskaskadmodulen och chainin-ingångsbussen.
Utdatakaskadfunktionen stöds inte i m18×18_full Driftläge. |
Aktivera chainout-port | gui_chainout_enable | Inga Ja | Välja Ja för att aktivera chainout-utgångsbussen. Utdatakaskadfunktionen stöds inte i
m18×18_full Driftläge. |
Rörledningsflik
Parameter | IP-genererad parameter | Värde | Beskrivning |
Lägg till indatapipelineregister till indatasignalen (x/y/z/coefsel) | input_pipeline_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för x, y, z, coefsela och coefselb pipeline input register. |
Lägg till indatapipelineregister till "sub"-datasignalen | sub_pipeline_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för subpipeline-ingångsregistret. (2) |
Lägg till indatapipelineregister till "ackumulera" datasignalen | accum_pipeline_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för det ackumulerade pipeline-ingångsregistret.(2) |
Lägg till indatapipelineregister till datasignalen 'loadconst' | load_const_pipeline_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för loadconst pipeline input register.(2) |
Lägg till indatapipelineregister till den "negera" datasignalen | negate_pipeline_clock | Inga Klocka0 Klocka1 Klocka2 | Välja Klocka 0, Klocka 1, eller Klocka 2 för att aktivera och specificera ingångsklocksignalen för negate pipeline-ingångsregistret.(2) |
Maximal indatabredd per driftläge
Du kan anpassa databredden för x-, y- och z-ingångar enligt tabellen.
Alla pipeline-ingångsregister för dynamiska styrsignaler måste ha samma klockinställning.
Driftläge | Maximal indatabredd | |||||
ax | ay | az | bx | by | bz | |
Utan föradderare eller intern koefficient | ||||||
m18×18_full | 18 (signerad)
18 (osignerad) |
19 (signerad)
18 (osignerad) |
Ej använd | 18 (signerad)
18 (osignerad) |
19 (signerad)
18 (osignerad) |
Ej använd |
m18×18_sumof2 | ||||||
m18×18_systolisk | ||||||
m18×18_plus36 | ||||||
m27×27 | 27 (signerad)
27 (osignerad) |
Ej använd | ||||
Endast med pre-adder-funktion | ||||||
m18×18_full | 18 (signerad)
18 (osignerad) |
|||||
m18×18_sumof2 | ||||||
m18×18_systolisk | ||||||
m27×27 | 27 (signerad)
27 (osignerad) |
26 (signerad)
26 (osignerad) |
Ej använd | |||
Endast med intern koefficientfunktion | ||||||
m18×18_full | Ej använd | 19 (signerad)
18 (osignerad) |
Ej använd | 19 (signerad)
18 (osignerad) |
Ej använd | |
m18×18_sumof2 | ||||||
m18×18_systolisk | ||||||
m27×27 | 27 (signerad)
27 (osignerad) |
Ej använd |
Funktionsbeskrivning
Cyclone 10 GX Native Fixed Point DSP IP-kärna består av 2 arkitekturer; 18 × 18 multiplikation och 27 × 27 multiplikation. Varje instansiering av Cyclone 10 GX Native Fixed Point DSP IP-kärna genererar endast 1 av de 2 arkitekturerna beroende på de valda driftlägena. Du kan aktivera valfria moduler för din applikation.
Relaterad information
Variable Precision DSP-block i kapitlet Intel Cyclone 10 GX-enheter, Intel Cyclone 10 GX Core Fabric och I/O-handbok för allmänna ändamål.
Driftlägen
Cyclone 10 GX Native Fixed Point DSP IP-kärna stöder 5 driftlägen:
- 18 × 18 Full Mode
- 18 × 18 Summan av 2-läge
- Läget 18 × 18 Plus 36
- 18 × 18 systoliskt läge
- Läget 27 × 27
18 × 18 Full Mode
När den är konfigurerad som 18 × 18 fullt läge, fungerar Cyclone 10 GX Native Fixed Point DSP IP-kärna som två oberoende 18 (signerade/osignerade) × 19 (signerade) eller 18
(signerade/osignerade) × 18 (osignerade) multiplikatorer med 37-bitars utdata. Detta läge tillämpar följande ekvationer:
- resulta = ax * ay
- resultb = bx * by
18 × 18 fulllägesarkitektur
18 × 18 Summan av 2-läge
I 18 × 18 Sum of 2-lägen möjliggör Cyclone 10 GX Native Fixed Point DSP IP-kärna de övre och nedre multiplikatorerna och genererar ett resultat från addition eller subtraktion mellan de 2 multiplikatorerna. Den subdynamiska styrsignalen styr en adderare för att utföra additions- eller subtraktionsoperationerna. Resultatet av utgångsbredden för Cyclone 10 GX Native Fixed Point DSP IP-kärna kan stödja upp till 64 bitar när du aktiverar ackumulator/utgångskaskad. Detta läge tillämpar ekvationen för resulta =[±(ax * ay) + (bx * by)].
18 × 18 summan av 2-lägesarkitektur
Läget 18 × 18 Plus 36
När den är konfigurerad som 18 × 18 Plus 36-läge, möjliggör Cyclone 10 GX Native Fixed Point DSP IP-kärna endast den översta multiplikatorn. Detta läge tillämpar ekvationen för resulta = (ax * ay) + concatenate(bx[17:0],by[17:0]).
18 × 18 Plus 36 Mode Architecture
Du måste ställa in representationsformatet för bottenmultiplikatorer y operand till osignerad när du använder detta läge. När ingångsbussen är mindre än 36-bitar i detta läge, måste du tillhandahålla den nödvändiga signerade förlängningen för att fylla upp 36-bitars ingången.
Använder mindre än 36-bitars operand i 18 × 18 Plus 36-läge
Detta example visar hur man konfigurerar Cyclone 10 GX Native Fixed Point DSP IP-kärna för att använda 18 × 18 Plus 36-driftläge med en signerad 12-bitars indata på 101010101010 (binär) istället för en 36-bitars operand.
- Ställ in representationsformat för bottenmultiplikator x operand: till signerad.
- Ställ in representationsformat för bottenmultiplikator y operand: till osignerad.
- Ställ in 'bx' ingångsbussbredd till 18.
- Ställ in "efter" ingångsbussbredd till 18.
- Ange data för '111111111111111111' till bx-ingångsbussen.
- Ange data för '111111101010101010' till via ingångsbuss.
18 × 18 systoliskt läge
I 18 × 18 systoliska driftlägen, möjliggör Cyclone 10 GX Native Fixed Point DSP IP-kärna topp- och bottenmultiplikatorer, ett systoliskt ingångsregister för toppmultiplikatorn och ett kedjesystoliskt register för kedjan i insignaler. När du aktiverar utdatakaskad stöder detta läge en utmatningsbredd på 44 bitar. När du aktiverar ackumulatorfunktionen utan utgångskaskad kan du konfigurera resultatets utgångsbredd till 64 bitar.
18 × 18 systoliskt lägesarkitektur
Läget 27 × 27
När den är konfigurerad som 27 × 27-lägen, möjliggör Cyclone 10 GX Native Fixed Point DSP IP-kärna en 27(signerad/osignerad) × 27(signerad/osignerad) multiplikator. Utgångsbussen kan stödja upp till 64 bitar med ackumulator/utgångskaskad aktiverad. Detta läge tillämpar ekvationen för resulta = ax * ay.
27 × 27 lägesarkitektur
Valfria moduler
De valfria modulerna som finns tillgängliga i Cyclone 10 GX Native Fixed Point DSP IP Core är:
- Ingångskaskad
- Föraddare
- Intern koefficient
- Ackumulator och utgångskaskad
- Pipeline register
Ingångskaskad
Ingångskaskadfunktionen stöds på ay och av ingångsbussen. När du ställer in Aktivera ingångskaskad för 'ay'-ingång till Ja, kommer Cyclone 10 GX Native Fixed Point DSP IP-kärna att ta insignaler från skanningsingångssignaler istället för ay-ingångsbussen. När du ställer in Aktivera ingångskaskad för 'av'-ingång till Ja, kommer Cyclone 10 GX Native Fixed Point DSP IP-kärna att ta ingångar från ay-ingångsbussen istället för från ingångsbussen.
Det rekommenderas att aktivera ingångsregistren för ay och/eller senast när ingångskaskad är aktiverad för applikationens korrekthet.
Du kan aktivera fördröjningsregistren för att matcha latenskravet mellan ingångsregistret och utgångsregistret. Det finns 2 fördröjningsregister i kärnan. Det övre fördröjningsregistret används för ay- eller scan-iningångsportar medan det nedre fördröjningsregistret används för scanoututgångsportar. Dessa fördröjningsregister stöds i 18 × 18 fullt läge, 18 × 18 summor av 2 lägen och 18 × 18 systoliska lägen.
Föradderare
Föradderaren kan konfigureras i följande konfigurationer:
- Två oberoende 18-bitars (signerade/osignerade) pre-adders.
- En 26-bitars föradderare.
När du aktiverar föradderare i 18 × 18 multiplikationslägen, används ay och az som ingångsbussen till den övre föradderaren medan by och bz används som ingångsbussen till den nedre föradderaren. När du aktiverar pre-adderare i 27 × 27 multiplikationsläge, används ay och az som ingångsbuss till pre-adderaren. Föradderaren stöder både addition och subtraktion. När båda föradderarna inom samma DSP-block används måste de dela samma operationstyp (antingen addition eller subtraktion).
Intern koefficient
Den interna koefficienten kan stödja upp till åtta konstanta koefficienter för multiplikanterna i 18-bitars och 27-bitarslägen. När du aktiverar den interna koefficientfunktionen genereras två ingångsbussar för att styra valet av koefficientmultiplexern. Coefsela-ingångsbussen används för att välja de fördefinierade koefficienterna för den övre multiplikatorn och rådgivningsingångsbussen används för att välja de fördefinierade koefficienterna för den nedre multiplikatorn.
Den interna koefficientlagringen stöder inte dynamiskt styrbara koefficientvärden och extern koefficientlagring krävs för att utföra en sådan operation.
Ackumulator och utgångskaskad
Ackumulatormodulen kan aktiveras för att utföra följande operationer:
- Additions- eller subtraktionsoperation
- Biased avrundningsoperation med ett konstant värde på 2N
- Dubbla kanal ackumulering
För att dynamiskt utföra additions- eller subtraktionsoperation av ackumulatorn, kontrollera den negativa ingångssignalen. För en partisk avrundningsoperation kan du specificera och ladda en förinställd konstant på 2N innan ackumulatormodulen aktiveras genom att ange ett heltal till parametern N-värdet för den förinställda konstanten. Heltalet N måste vara mindre än 64. Du kan dynamiskt aktivera eller inaktivera användningen av den förinställda konstanten genom att styra signalen för lastkonst. Du kan använda denna operation som en aktiv överföring av det runda värdet till ackumulatorns återkopplingsväg. Den laddade kostnaden och den ackumulerade signalanvändningen utesluter varandra.
Du kan aktivera dubbelackumulatorregistret med parametern Aktivera dubbelackumulator för att utföra dubbelackumulering. Ackumulatormodulen kan stödja kedjan av flera DSP-block för additions- eller subtraktionsoperationer genom att aktivera kedjeingångsporten och kedjeutgångsporten. I 18 × 18 systoliskt läge kommer endast 44-bitar av kedjeingångsbussen och kedjeutgångsbussen att användas. Emellertid måste alla 64-bitarskedjor i ingångsbussen vara anslutna till kedjeutgångsutgångsbussen från föregående DSP-block.
Pipeline Register
Cyclone 10 GX Native Fixed Point DSP IP-kärna stöder en enda nivå av pipelineregister. Pipelineregistret stöder upp till tre klockkällor och en asynkron raderingssignal för att återställa pipelineregistren. Det finns fem pipelineregister:
- dataingång buss pipeline register
- under dynamisk styrsignal pipeline register
- negera dynamisk styrsignal pipeline register
- ackumulera dynamisk styrsignal pipeline register
- loadconst dynamisk kontroll pipeline register
Du kan välja att aktivera varje dataingångsbusspipelineregister och de dynamiska styrsignalpipelineregistren oberoende. Alla aktiverade pipelineregister måste dock använda samma klockkälla.
Klockning Schema
Ingångs-, pipeline- och utgångsregistren i Cyclone 10 GX Native Fixed Point DSP IP-kärna stöder tre klockkällor/aktiveringar och två asynkrona rensningar. Alla ingångsregister använder aclr[0] och alla pipeline- och utgångsregister använder aclr[1]. Varje registertyp kan välja en av de tre klockkällorna och klockaktiveringssignaler. När du konfigurerar Cyclone 10 GX Native Fixed Point DSP IP-kärna till 18 × 18 systoliskt driftläge, kommer Intel Quartus Prime-programvaran att ställa in det systoliska ingångsregistret och det kedjesystoliska registrets klockkälla till samma klockkälla som utgångsregistret internt.
När du aktiverar dubbelackumulatorfunktionen kommer Intel Quartus Prime-programvaran att ställa in dubbelackumulatorregistrets klockkälla till samma klockkälla som utgångsregistret internt.
Begränsningar för klockschema
Den här fliken visar de begränsningar du måste tillämpa för alla klockningsscheman.
Skick | Tvång |
När pre-adder är aktiverat | Klockkällan för ay- och az-ingångsregister måste vara densamma. |
Klockkällan för by- och bz-ingångsregister måste vara samma. | |
När pipelineregister är aktiverade | Klockkällan för alla pipelineregister måste vara densamma. |
När någon av ingångarna registrerar sig för dynamiska styrsignaler | Klockkällan för ingångsregister för sub, ackumulera, loadconst och negate måste vara densamma. |
Cyclone 10 GX Native Fixed Point DSP IP Core Signaler
Följande bild visar in- och utsignalerna för Cyclone 10 GX Native Fixed Point DSP IP-kärna.
Cyclone 10 GX Native Fixed Point DSP IP Core Signaler
Dataingångssignaler
Signalnamn | Typ | Bredd | Beskrivning |
yxa[] | Input | 27 | Indatabuss till toppmultiplikator. |
ja[] | Input | 27 | Indatabuss till toppmultiplikator.
När föradderaren är aktiverad, serveras dessa signaler som insignaler till den översta föradderaren. |
az[] | Input | 26 | Dessa signaler är insignaler till den övre föradderaren.
Dessa signaler är endast tillgängliga när pre-adder är aktiverat. Dessa signaler är inte tillgängliga i m18×18_plus36 driftläge. |
bx[] | Input | 18 | Indatabuss till bottenmultiplikator.
Dessa signaler är inte tillgängliga i m27×27 driftläge. |
förbi[] | Input | 19 | Indatabuss till bottenmultiplikator.
När föradderaren är aktiverad fungerar dessa signaler som insignaler till den nedre föradderaren. Dessa signaler är inte tillgängliga i m27×27 driftläge. |
bz[] | Input | 18 | Dessa signaler är insignaler till den nedre föradderaren. Dessa signaler är endast tillgängliga när pre-adder är aktiverat. Dessa signaler är inte tillgängliga i m27×27 och m18×18_plus36 driftslägen. |
Datautgångssignaler
Signalnamn | Typ | Bredd | Avskrivning |
resulta[] | Produktion | 64 | Utdatabuss från toppmultiplikatorn.
Dessa signaler stöder upp till 37 bitar för m18×18_full driftläge. |
resultatb[] | Produktion | 37 | Utdatabuss från bottenmultiplikatorn.
Dessa signaler är endast tillgängliga i m18×18_full driftläge. |
Klocka, aktivera och rensa signaler
Signalnamn | Typ | Bredd | Beskrivning |
clk[] | Input | 3 | Ingående klocksignaler för alla register.
Dessa klocksignaler är endast tillgängliga om något av ingångsregistren, pipelineregistren eller utgångsregistret är inställt på Klocka 0, Klocka 1, eller Klocka 2. • clk[0] = Klocka 0 • clk[1] = Klocka 1 • clk[2] = Klocka 2 |
ena[] | Input | 3 | Klockaktivering för clk[2:0]. Denna signal är aktiv-Hög.
• ena[0] är för Klocka 0 • ena[1] är för Klocka 1 • ena[2] är för Klocka 2 |
aclr[] | Input | 2 | Asynkrona klara insignaler för alla register. Denna signal är aktiv-Hög.
Använda aclr[0] för alla ingångsregister och användning aclr[1] för alla pipelineregister och utgångsregister. Som standard är denna signal avaktiverad. |
Dynamiska styrsignaler
Signalnamn | Typ | Bredd | Beskrivning |
sub | Input | 1 | Insignal för att addera eller subtrahera utsignalen från den övre multiplikatorn med utsignalen från den nedre multiplikatorn.
• Sätt tillbaka denna signal för att specificera additionsoperation. • Bekräfta denna signal för att specificera subtraktionsoperation. Som standard är denna signal avaktiverad. Du kan hävda eller avhäva denna signal under körning.(3) |
förneka | Input | 1 | Insignal för att addera eller subtrahera summan av topp- och bottenmultiplikatorer med data från kedjesignaler.
• Sätt tillbaka denna signal för att specificera additionsoperation. • Bekräfta denna signal för att specificera subtraktionsoperation. Som standard är denna signal avaktiverad. Du kan hävda eller avhäva denna signal under körning.(3) |
ackumulera | Input | 1 | Insignal för att aktivera eller inaktivera ackumulatorfunktionen.
• Avaktivera denna signal för att inaktivera ackumulatorfunktionen. • Bekräfta denna signal för att aktivera ackumulatorfunktionen. Som standard är denna signal avaktiverad. Du kan hävda eller avhäva denna signal under körning.(3) |
lastkonst | Input | 1 | Insignal för att aktivera eller inaktivera belastningskonstantfunktionen.
• Avaktivera denna signal för att inaktivera belastningskonstantfunktionen. • Bekräfta denna signal för att aktivera funktionen för belastningskonstant. Som standard är denna signal avaktiverad. Du kan hävda eller avhäva denna signal under körning.(3) |
Interna koefficientsignaler
Signalnamn | Typ | Bredd | Beskrivning |
coefsela[] | Input | 3 | Ingångsvalssignaler för 8 koefficientvärden definierade av användaren för den översta multiplikatorn. Koefficientvärdena lagras i internminnet och specificeras av parametrar coef_a_0 till coef_a_7.
• coefsela[2:0] = 000 avser coef_a_0 • coefsela[2:0] = 001 avser coef_a_1 • coelsela[2:0] = 010 avser coef_a_2 • … och så vidare. Dessa signaler är endast tillgängliga när den interna koefficientfunktionen är aktiverad. |
coefselb[] | Input | 3 | Ingångsvalssignaler för 8 koefficientvärden definierade av användaren för bottenmultiplikatorn. Koefficientvärdena lagras i internminnet och specificeras av parametrar coef_b_0 till coef_b_7.
• coefselb[2:0] = 000 refererar till coef_b_0 • coefselb[2:0] = 001 refererar till coef_b_1 • coelselb[2:0] = 010 hänvisar till coef_b_2 • … och så vidare. Dessa signaler är endast tillgängliga när den interna koefficientfunktionen är aktiverad. |
Ingående kaskadsignaler
Signalnamn | Typ | Bredd | Beskrivning |
skanna[] | Input | 27 | Ingångsdatabuss för ingångskaskadmodul.
Anslut dessa signaler till scanout-signalerna från föregående DSP-kärna. |
scanout[] | Utgång | 27 | Utdatabuss för ingångskaskadmodulen.
Anslut dessa signaler till skanningssignalerna för nästa DSP-kärna. |
Utgående kaskadsignaler
Signalnamn | Typ | Bredd | Beskrivning |
kedja i[] | Input | 64 | Indatabuss för utgångskaskadmodul.
Anslut dessa signaler till chainout-signalerna från den föregående DSP-kärnan. |
chainout[] | Produktion | 64 | Utdatabuss för utgångskaskadmodulen.
Anslut dessa signaler till kedjesignalerna för nästa DSP-kärna. |
Dokumentversionshistorik för Cyclone 10 GX Native Fixed Point DSP IP Core användarhandbok
Datum | Version | Ändringar |
november 2017 | 2017.11.06 | Initial release. |
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestandan för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti men förbehåller sig rätten att göra ändringar av alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster.
Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Dokument/resurser
![]() |
intel UG-20094 Cyclone 10 GX Native Fixed Point DSP IP Core [pdf] Användarhandbok 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 |