Komma igång med mejsel (3 / 6 steg)
Steg 3: Ansluta moduler i mejsel
Mejsel handledning som du hämtade innan du har några bra exempelkod med problem och lösningar. Om du skulle hellre spelar med exempel och ändra dem följa avsnittet slutföra Tutorials i README i repo du hämtade.
Bilderna ovan visar ett av exemplen i mejsel reporäntan. En multiplexor eller mux för kort används för att välja mellan två ingångar. Den första bilden visar ett genomförande av en multiplexor med två ingångar, in0 och in1. De är båda en bit i storlek. Sel lite sedan väljer mellan in0 och in1. Om sel = 0 sedan ut = in0, annars om sel = 1 sedan ut = in1. När du har skapat denna modul kan vi använda det i en annan modul för att välja mellan 4 bitar. För att göra detta måste vi nu två urval bitar att välja vilken av de fyra ingångarna. Dessutom är skriver in0, in1, in2, in3 rörigt. Så istället använder vi en mejsel Vec för att säga vi vill ha 4 ingångar. Detta liknar en matris eller lista och vi får tillgång till som lite som vi vill. Vi nu skapa tre Mux2 moduler och ansluta dem till våra in- och utgångar. Detta avslutar 4 bitar mux.
Operatörer i mejsel
Något du kanske har märkt är att blanda den "="och": =" i exemplen. Menar de två olika saker. Den "=" är scala. I exemplet ovan modulerna som är skapade som scala objekt. Den ": =" används för att ansluta "trådar". Detta är mejsel operatören säger att värdet av något ska anslutas till produktionen av något annat. Det finns några fler sådana som i om uttalanden där "==" är vanligtvis används för att jämföra två scala objekt där som "===" används för att jämföra värdena i två "trådar" i mejsel. Se Mejsel-tutorial.pdf för mer information.