Hvordan lage en Delay Pulse i Verilog

Hvordan lage en Delay Pulse i Verilog


Verilog, en jern deskriptor språk som brukes til å generere digitale kretser for programmerbare chips, kan brukes for å skrive koden som beskriver digitale kretser, simulere krets oppførsel og program maskinvare. Et godt eksempel på en enkel Verilog krets er en som skaper en puls etter en kort forsinkelse. Du kan skrive en Verilog program som oppnår dette med noen få linjer med kode uten tidligere erfaring med programmering.

Bruksanvisning

1 Åpne Verilog IDE og opprette et nytt prosjekt ved å klikke på "File" og deretter velge "New Project Wizard." En etablering vindu prosjekt vises. Velg et navn og katalog for dette prosjektet. For eksempel kan du kalle prosjektet "forsinkelse" og plassere den i katalogen "C:. \ Verilog Projects"

2 Trykk på "Neste" -knappen for å gå gjennom resten av sidene, slik at alle innstillingene på standardverdiene. Trykk på "Finish" -knappen for å opprette prosjektet.

3 Velg "File" og deretter "Ny" for å åpne en fil skapelse vindu. Velg "Verilog HDL Fil" og trykk på "OK" -knappen for å legge til en ny Verilog fil til prosjektet. En tom Verilog filen vises i hovedteksten redigeringsvinduet.

4 Definer en ny "modul" som har samme navn som prosjektet. Denne modulen vil huse all koden for forsinkelsen puls program. Når du definerer en modul, kan du også definere noen parametere som innganger og utganger. Den forsinkelsesmodul trenger to parametre: et klokkesignal og en utgang for den genererte puls. Skriv følgende for å definere modulen med disse parametrene:

modul forsinkelse (klokke, puls);

5 Definere to signaler: et inngangsklokkesignal, og et utgangspulssignal. Klokkesignalet blir brukt til å telle en kort sekvens før den sender et pulssignal gjennom utgangen. Dette tillater deg å gang en forsinkelse basert på antall klokke overganger som oppstår. Skriv følgende signal definisjoner:

innspill klokke;
utgangspuls;

6 Definer et register som lagrer gjeldende antall klokke overganger som har skjedd. Siden dette registeret brukes til å telle antall overganger, et godt navn for det er "teller". Skriv følgende for å definere og klargjøre dette registeret:

reg teller;
innledende begynne count = 0;

7 Skriv følgende uttalelse til å utføre en rekke handlinger med hverandre mens klokken tikker signal:

alltid @ (posedge klokke)

8 Øke den "teller" register etter én med hver overgang på klokken:

count <= teller + 1;

9 Test for å se om det "teller" register tilsvarer 10, eller en annen vilkårlig verdi. Dette er hvordan du kan tid forsinkelsen puls. Pulsen er bare slippes ut etter et bestemt antall klokke overganger. Dersom klokkehastigheten er 10 svingninger per sekund, da pulsen genereres etter en ett-sekunds forsinkelse. Du kan teste den "teller" registrere seg med en "hvis" statement, for eksempel følgende:

if (count == 10)

10 Plasser en enkelt bit på "puls" utgangssignal ved å skrive:

puls <= 1'b1;

11 Avslutt "hvis" statement med følgende uttalelse:

slutt

12 Avslutt modul med følgende uttalelse:

endmodule

1. 3 Kompilere og teste din krets. Denne krets frembringer en puls som varer én klokkeovergang. Pulsen blir bare generert etter en forutbestemt forsinkelse, i dette tilfelle 10 klokkeoverganger. Du kan endre denne verdien til annen puls generasjon som passer dine kriterier.