Lär dig Verilog: En kort Tutorial serie på Digital elektronik Design med FPGAs och Verilog HDL (12 / 21 steg)

Steg 12: VM 3.0: modulär Design



Vänligen betala nära uppmärksamhet till modulär design. Detta är kanske det enda största ämnet i Verilog och är kanske också sin mest kraftfulla och användbara funktionen.

Nu bör du kunna genomföra enkla logiska funktioner med hjälp av grundläggande Verilog operatorer (|, &,...) och få det att framgångsrikt driva på brädan FPGA. Om inte du riktigt till det stadiet, börja med VM 2.0.

I "VM 2.0: min första Verilog-projekt" införde jag begreppet "moduler" och "modulära" kod. nu finns det några nyanser av moduler du behöver veta för att vara en kunnig "modulära designer". Men först måste vi diskutera "Vad är modulär Design?"

Om du genomfört "hello_world" utövandet, infördes till nyckelordet Verilog "modul". Varje Verilog källfilen innehåller en modul definition. Så hur kan vi skapa komplexa projekt som involverar många mindre moduler? Låt oss kontrollerad ta exemplet med att bygga en timer LED krets. Vad skulle vi behöva i vår krets gör en LED blinkar varje sekund om vissa switch var en logik en och vi hade bara en 50MHz klocka?

Bryta ner vad vi behöver i tre typer: ingångar, utgångar och interna komponenter.

Ingångar: fysiska signalkällor såsom en oscillator ("klocka"), växlar, knappar, hamnar data, etc...

Utgångar: fysiska utgångar som kommer att drivas av kretsen gillar lysdioder, hamnar data, skärmar osv...

Interna komponenter: komponenter som tar statligt av indata till generera en önskad utgång; inte alla av dessa måste vara ansluten till "top level"-portar, men så småningom allt bör "rutten".

Läs dessa klassificeringar igen; Det är oerhört viktigt du veta skillnaderna! Observera också vokabulär orden: "top level" och "rutten".

Tycker om vad dessa termer kan innebära... Jag ska formellt definiera dem i en minut.

Likna dessa tre typer av komponenter till en algebraisk ekvation, ingångarna är de oberoende variablerna, utgångarna är de beroende variablerna och de inre delarna representerar faktiska ekvationen. Att komma ihåg denna analogi hjälper dig att avgöra om en viss komponent är en ingång, utgång eller inre komponent arbetar på projekt.

När det gäller LED blinkar banan är här vad vi har på en mycket hög nivå:

Ingångar: 50 MHz klocka, switch

Utgångar: LED

Internals: en 50 MHz till 1 Hz klocka avdelare, en AND-gate (eftersom LED endast ska komma på om båda delade klockan och växeln är logik en)

Hur skulle du, på en mycket hög nivå (som betyder mest "svarta lådor" representerar komponenter snarare än gate mönster), block diagram denna krets? Minns att du kan göra en klocka avdelare genom att ansluta ett antal D-Flip Flops (DFFs) tillsammans med några växelriktare.

Se bifogat diagram för svaret.

Utmaning: I själva verket skulle vi ha en fysisk knapp som skulle återställa alla DFFs i klocka delaren. Kan du rita ursprung och destination för en knapp som heter "Första" på detta blockdiagram?

Blockdiagram som detta är det första steget till att hjälpa dig att räkna ut hur man skriver en Verilog program, som varje låda i diagrammet kommer hamna som en instans av en modul i din kod. Märke att vi har ett stort kvarter som innehåller ett antal mindre block; Vi kallar detta modulen "top". Modulen "top" är vad tar hand om ansluter alla interna komponenter i kretsen till fysiska ingångar och utgångar.

Inuti denna särskilda topp modul är två saker: en klocka avdelare och en AND-gate. Men märker klocka divider blocket innehåller också ett antal mindre block (DFFs). Vi inte har att skapa alla dessa DFFs i våra top modul; Vi kan skapa en separat klocka divider modul som innehåller alla DFFs och skapa en instans av den klocka avdelaren i våra top modul.

Som du hade kunnat gissa, måste vi också göra en DFF-modul som vi kan initiera ett antal gånger i klocka delaren. Detta tillåter oss att endast definierar beteendet för en D-Flip Flop en gång, därefter instansierar flera instanser av det DFF. Allt vi behöver göra i våra Verilog koden är ansluta varje instans av DFF till motsvarande portar (dvs ansluta dess in- och utgångar), men mer om modul instansiering senare.

Obs: Försök inte att kod blinkande LED projektet bara ännu; Det finns några saker vi behöver täcka.

Denna modul är att utsätta dig för modulär design; ser du varför jag kallar dessa tutorials "moduler"? Denna idé bör vara ingrodd i ditt sinne som du fortsätter att lära sig och använda Verilog.

Se Steg
Relaterade Ämnen

Att få igång med Python och programmering - The kort handledning

så jag ser att du är intresserad av lärande om programmering... eller ormar.Om du är här i ormar, tyvärr är detta inte platsen för dig. Ja, kanske...Om du är här för att lära sig om programmering eller Python då du har kommit. Denna handledning gjord...

DIY Basic sy Tutorial T-shirt / jacka / tröja / bygel / Normal och Raglan ärm

Hur jag syr en t-shirt? Sömnad för nybörjare. Vi visar dig hur att sy en skjorta, top med ärm, raglanärm, raglan tröja själv. Principen är alltid densamma oavsett om du är sömnad t-shirts, jackor, långa ärmar, raglanärm, klänningar med ärmar etc.Vi h...

Himmelska Mechanica serie: växellåda design och konstruktion

Himmelska Mechanica är en 16-ft lång kinetic stål skulptur av vårt solsystem som representerar den majestätiska dansen av himlakropparna. Den skapades av en grupp ledd av Jessika Welz för Burning Man 2014.(Projektet Facebooksida: https://www.facebook...

GTA IV - utan grafiken kort Tutorial - av SBTOPZZZ

Välkommen killar,Kan börja Grand Theft Auto 4 utan grafikkort.Steg 1: Steg 1: möjligt att ha GTA IV utan grafikkort?Om du frågar mig, säger jag Ja.GTA IV konfigurerar alltid din dator för att kontrollera krav, speciellt Grafikkort.Så, jag hade också...

DIY mikrofon byggnad Tutorial serie

del 1Del 2Del 3Del 4Del 5Del 6 Detta är en sex delar serie videoklipp om hur man bygger din egna mikrofoner. Jag kommer på detta ur bygga mikrofoner för förstärkt munspel, men många av tipsen skulle gälla byggnad mikrofoner för andra ändamål. Videorn...

1. hacka Panasonic GH2 Tutorial serie - komma igång

[youtube]0b8iBiUPWoI[/youtube]...

2. hacka Panasonic GH2 Tutorial serie - använder hacket

[youtube]IOisy0Oq0TE[/youtube]...

3. hacka Panasonic GH2 Tutorial serie - testa inställningar

[youtube]ZPhrMmX4E3Y[/youtube]...

4. hacka Panasonic GH2 Tutorial serie - testning Footage - ISO Bug

[youtube]N21mzRjJG74[/youtube]...

Hur man gör en låg poly spel modellen ser mycket mer detaljerade med mixer och Gimp

Så du vill göra ett spel men du har en dator som inte kan hantera grafik alla väl och men du ändå vill göra något som ser wicked. Detta är en metod jag gjorde upp när jag försöker göra spel.En formel jag vilja leva av är roligt > arbete. Om du arbeta...

Hur till göra mat bilder ser aptitlig med rekvisita och naturlig belysning

En bild säger tusen ord!Det finns inget som tar en minnesvärd bild och visar det för släkt och vänner och få fave recensioner på hur bilden ser ut och hur det känns när observera det.Som en ivrig foodie mig själv och inte en professionell fotograf, j...

HUR DU LÄR DIG RITA! OKONVENTIONELLA sätt att rita saker, det är enkel och trevlig.

För dem som gillar ritningen och konst! och aldrig ens försökt Rita någon sak cuz han tror att han aldrig har någon talang! Detta instructable kan vara ditt första steg som konstnär!Jag har börjat lära sig Rita bara två år sedan på mitt första år som...

Photoshop Tutorial: Skapa nödställda textur med genomskinlig bakgrund

Detta Photoshop tutorial ska show dig hur man skapar nödställda struktur och spara den som en tif-fil med en genomskinlig bakgrund i teckningen i Adobe Illustrator....

Video Tutorial: Hur man skapar en webbsida med SliceMaker produkter?

Detta är en video tutorial av SliceMaker produkter. I denna video tutorial, kommer att vi lära dig att skapa en komplett webbsida med hjälp av SliceMaker produkter.Du behöver inte skriva koder manuellt när du skapar en webbsida med SliceMaker produkt...

SliceMaker Tutorial: Hur man skapar en webbsida med SliceMaker produkter?

SliceMaker mjuk kommer att fortsätta att ge dig nya video tutorials om hur du använder deras produkter. Detta är en av den video tutoials av SliceMaker produkter. Genom denna video tutorial lära du enkelt dig att skapa en webbsida med SliceMaker prod...

Brainstorming buss Shelter design med kortplats bygga kort

studenter tillsammans bygga fysiska brainstorming modeller av busskurer med Tom registerkort som de konvertera i kortplatsen bygga kort. Slot skyddsrum modell byggnad verkstad lektionen inbjuder elementära studenter att föreställa multipurpose bussku...

2015 gym Guide: Lär dig att träna + förbättra din hälsa med 16 + års professionell vägledning!

Personlig träning är dyrt. Ännu människor fortfarande dra nytta av den personliga touch som en fitness expert erbjuder. Mitt mål med denna uppskrivning är att informera dig om att du har alternativ för DIY fitness utbildning. Jag älskar personliga tr...

Knex pistol: Gear Series #1-GGLP (växel Grenade Launcher och Pistol)

denna pistol är sparka igång en ny serie: GEAR -serien. Jag planerar att göra (förutom GGLP) ett gevär, sniper och hagelgevär.Denna pistol har en optimal räckvidd på 40ft, inklusive granat. Det är robust och ganska bärbara, tidningen rymmer ca 6 enda...

DIY blåser lila krita konst! Med hjälp av FIG lila!

i bara några enkla steg, kan du skapa detta roliga dekoration, perfekt för studentrummet eller något utrymme som behöver lite extra! Ingen limpistol som behövs!Här är vad du behöver:-1 duk.-En bild på någon låtsas att blåsa bubblor tryckt på vanliga...