Lär dig Verilog: En kort Tutorial serie på Digital elektronik Design med FPGAs och Verilog HDL (17 / 21 steg)
Steg 17: VM 4.0: Introduktion till beteendemässiga Verilog
Grattis! Du har gjort det här långt och nu är dags där dina projekt kan få super komplexa med relativ lätthet med "beteende" Verilog.Hittills har mestadels vi strukturell logik i Verilog. Detta innebär din krets beteende ställs in en gång med tilldela-uttryck och logik med vår logiska operatorer, och när programmerad på styrelsen fungerar som anges utan hänsyn till vilka ingångar är (detta är inte att säga att ingångarna inte påverkar produktionen, bara att varje möjlig kombination av insatsvaror utvärderas med exakt samma logik). Beteendemässiga logik kan du ändra en krets är beteende baserat på delstaten tanke tillförseln.
Idén påminner om denna typ av Verilog kod finns i icke-HDL programmeringsspråk som C/C++ ses i form av kontroll loopar och if/annat/fall uttalanden.
Resten av VM 4 kommer att täcka de grundläggande typerna av beteendemässiga Verilog och sätt att genomföra den.
Vi kommer också att diskutera skillnaden mellan blockerande och icke-blockerande uttalanden; en mycket viktig men ofta förbisedd koncept. Jag en gång hörde en assistent fråga en student om operativa specifikationer av hans projekt i min logiska kretsar labb, och när eleven inte hade ett svar på en fråga som besvarades enkelt om han läser igenom uppgiften ända innan han började skriva kod, TA svarade med något som, "Detta är ett stort problem att så många ingenjörer bara Skriv koden och vet inte varför de gjorde vad de gjorde." Detta fastnade i mitt huvud, och det gick för mig som jag fick bara veta när man ska använda blockerande och icke-blockerande uttalanden men aldrig berättade varför eller vad skillnaden var, så detta är ett ämne som jag anser är mycket viktigt att diskutera.