Indholdsfortegnelse:

DIY Dynamic Memory Block: 5 trin
DIY Dynamic Memory Block: 5 trin

Video: DIY Dynamic Memory Block: 5 trin

Video: DIY Dynamic Memory Block: 5 trin
Video: Dynamic Memory Allocation | C Programming Tutorial 2024, Juli
Anonim
DIY dynamisk hukommelsesblok
DIY dynamisk hukommelsesblok

SLG46880 og SLG46881 introducerer flere nye blokke, der ikke er vist i tidligere GreenPAK -enheder. Denne applikationsnotat beskriver dynamiske hukommelsesblokke (DM) og hvordan de bruges.

Den største fordel ved DM-blokke er, at de kan omkonfigureres til at udføre forskellige funktioner i forskellige tilstande i SLG46880/1’s 12-state Asynchronous State Machine (ASM). Dette gør dem til en meget fleksibel komponent, da de kan bruges på en måde i stat 0 og en anden måde i stat 1.

Nedenfor beskrev vi de nødvendige trin for at forstå, hvordan GreenPAK -chippen er blevet programmeret til at oprette den dynamiske hukommelsesblok. Men hvis du bare vil få resultatet af programmeringen, skal du downloade GreenPAK -software for at se den allerede gennemførte GreenPAK -designfil. Tilslut GreenPAK Development Kit til din computer, og tryk på programmet for at oprette den brugerdefinerede IC til den dynamiske hukommelse.

Trin 1: Grundlæggende om DM Block

Grundlæggende om DM -blok
Grundlæggende om DM -blok
Grundlæggende om DM -blok
Grundlæggende om DM -blok

Der er 4 DM -blokke i Dialog GreenPAK SLG46880/1. En ikke -konfigureret DM -blok er vist i figur 1.

Alle DM -blokke i SLG46880/1 har følgende ressourcer:

● 2 opslagstabeller: en 3-bit LUT og en 2-bit LUT

● 2 multiplexere

● 1 CNT/DLY

● 1 Outputblok

Figur 2 viser den samme DM-blok med indfarvede stik. (Disse farver vises ikke inde i GreenPAK ™ Designer, de er kun til illustrative formål.) De grønne stik er input til DM -blokken fra Matrix. De orange forbindelser er dedikerede forbindelser inden for DM -blokken, som ikke kan ændres eller flyttes. De blå stik er urforbindelser til tællerblokken. Den lilla konnektor kan bruges til at udløse en tilstandsovergang, men er ikke en generel matrixforbindelse. De gule stik er matrixudgange fra DM -blokken.

Trin 2: Oprettelse af nye DM -blokkonfigurationer

Oprettelse af nye DM -blokkonfigurationer
Oprettelse af nye DM -blokkonfigurationer
Oprettelse af nye DM -blokkonfigurationer
Oprettelse af nye DM -blokkonfigurationer

For at oprette en ny DM -blokkonfiguration skal du vælge en DM -blok og åbne dens egenskabspanel, vist i figur 3. Nu kan du oprette en ny konfiguration for denne DM -blok ved at klikke på ikonet "+" øverst til højre. På dette tidspunkt kan du omdøbe konfigurationen, hvis du ønsker det, og konfigurere DM -blokken, som du vil, ved at bruge dens egenskabspanel. Du kan slette en unødvendig konfiguration ved at vælge den i rullemenuen og klikke på knappen "-".

Hver DM -blok kan have op til 6 forskellige konfigurationer. Enhver DM -blokkonfiguration kan bruges i enhver af ASMs 12 tilstande, men kun en konfiguration pr. DM -blok pr. Tilstand er tilladt. Figur 4 viser, hvordan ressourcehåndteringslinjen angiver, at en af DM0_0 -konfigurationerne er blevet brugt. Antallet af konfigurationer for DM0_0 blev øget fra 0/6 til 1/6.

Trin 3: Brug en DM -blok til at udløse en statlig overgang

Brug en DM -blok til at udløse en statlig overgang
Brug en DM -blok til at udløse en statlig overgang

Figur 5 viser et par forskellige måder at udløse en tilstandsovergang på. Vi har oprettet nye konfigurationer til DM0_0 og DM1_0 og kaldte dem "myConfig" og "myConfig1". Den øverste DM bruges simpelthen som en 3-bit OG-gate, da topmux'en passerer output fra AND-porten, og 2-bit-bufferen sender den videre til outputblokken. (2-bit LUT kunne også have været konfigureret som en buffer for CNT/DLY-blokken.) “Til ASM-stikket bruges til at udløse en tilstandsovergang fra tilstand 0 til tilstand 1. På samme måde bruges en matrixforbindelse fra Pin5 for at udløse en tilstandsovergang fra tilstand 0 til tilstand 2. Endelig er DM1_0 konfigureret, så begge muxer passerer signalet fra Pin6. Tælleren er konfigureret som en 100 µs begge kantforsinkelser, og 2-bit LUT er en AND-gate. Ligesom i DM0_0 bruges outputblokken til at udløse en anden tilstandsovergang.

Trin 4: Brug af en DM -blok til at interagere med blokke uden for ASM

Brug af en DM -blok til at interagere med blokke uden for ASM
Brug af en DM -blok til at interagere med blokke uden for ASM
Brug af en DM -blok til at interagere med blokke uden for ASM
Brug af en DM -blok til at interagere med blokke uden for ASM

Som du måske har bemærket i det foregående afsnit, har DM0_0s outputblok 3 "til Matrix" -udgange, mens DM1_0s outputblok ikke har nogen matrixudgange. Dette gælder også for DM0_1 og DM1_1; DM0_1 har 3 matrixudgange, mens DM1_1 ikke har nogen. De 3 "til matrix" -udgange kan tilsluttes andre matrixforbindelser, f.eks. Ben, LUT'er, DFF'er osv. Dette er vist i figur 6.

Bemærk, at når der først er forbindelse mellem en "til Matrix" -stift og andre blokke uden for området Statens maskine, vil den eksistere i enhver tilstand, uanset hvilken DM -konfiguration der bruges. I figur 6 viser det øverste afsnit myConfig0 af DM0_0, der findes i tilstand 0. Det nederste afsnit viser myConfig1 af DM0_0, som findes i tilstand 1. Den øverste "til Matrix" -forbindelse i begge konfigurationer er forbundet til Pin3, mens midten den ene er forbundet til 2-bit LUT0. Kun en af disse "til Matrix" -forbindelser kan til enhver tid være "aktive". Der er 4 muligheder i egenskabspanelmenuen for DM0_0 og DM0_1s outputblok: ● Out0/1/2 behold ● Bypass til out0, out1/2 keep ● Bypass to out1, out0/2 keep ● Bypass to out2, out1/1 keep Disse indstillinger bruges til at bestemme, hvilken af de tre udgange der er aktive i hver konfiguration. Hvis den første mulighed vælges, sendes output fra DM-blokens 2-bit LUT ikke til nogen af de tre "til Matrix" -udgange. Værdien af disse tre signaler forbliver uændret i denne tilstand. Men hvis en af de tre andre muligheder bruges, vil output fra DM-blokens 2-bit LUT blive overført til henholdsvis out0, out1 eller out2, og værdien af de to andre output vil blive holdt uændret.

Trin 5: Designeksempel

Designeksempel
Designeksempel

I ovenstående designeksempel er IN0, IN1 og IN2 OR'd sammen. I mellemtiden er IN3 forsinket med 1 ms og derefter AND'd med output fra OR -porten. To til Matrix -blokken er konfigureret, så output fra DM -blokken sendes til OUT0 i STATE0, mens værdierne ved OUT1 og OUT2 bevares.

Konklusion

Takket være deres omkonfigurerbarhed er dynamiske hukommelsesblokke i Dialog GreenPAK SLG46880/1 ekstremt fleksible og kan bruges på mange forskellige måder. Når du får styr på arbejdet med DM -blokke, vil du være i stand til at oprette mere komplekse designs ved at sammensætte forskellige DM -blokkonfigurationer i forskellige ASM -tilstande.

Anbefalede: