12.07.2015 Views

Kompendium - Datorteknik

Kompendium - Datorteknik

Kompendium - Datorteknik

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.7.1 Numeriska datatyperInteger fungerar ungefär som i C. Du kan deklarera en flerbitars signal som representerarett heltal så här:SIGNAL myinteger: integer RANGE 0 TO 7;Detta heltal kommer rimligtvis att implementeras som tre vippor, dvs ta tremakroceller i anspråk. De mest uppenbara operationerna på numeriska datatyperär addition och subtraktion. De skrivs med + och -. Du kan också göra jämförelser,med >, < och =. Detta skrivs på normalt sätt, t.ex:a b THEN ...Ett problem med integer är att du inte kan indexera den på bitnivå. Ofta villdu hellre använda std_logic_vector, som är en array som tillåter aritmetiskaoperationer. Se avsnittet om arrayer nedan.VHDL stödjer också flyttal, bl.a. med den fördefinierade typen real, men dessastödjs inte av alla syntesverktyg, och kräver i synnerhet mycket utrymme och ärdärför inte användbara i denna kurs.1.7.2 KonstanterKonstanter är som namnet säger fasta värden, som används för att underlätta ändringaroch förtydliga koden. En konstant deklareras så här:CONSTANT mynum: integer := 5;Den deklareras alltså med både typ och värde.1.7.3 Uppräkningsbara datatyper och egendefinierade datatyperDu har också möjligheten att definiera dina egna typer, med TYPE. I den här kursensperspektiv är det mest intressant för uppräkningsbara datatyper. Dessa kangöra kod för ett sekvensnät mycket snygg och lättläst. Du definierar en typ medsatsen TYPE. Så här ser den ut för en uppräkningsbar typ:TYPE (typnamn) is (värde 1, värde 2... värde n-1, värde n);Satsen TYPE kan användas för andra typer också, arrayer, records med mera,men det är utanför målen för denna kurs.En typ som representerar tillstånden i ett sekvensnät kan se ut nånting i den härstilen:TYPE tillstandstyp IS (ledig, ta_emot_data, error,tagit_emot_data, vanta);17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!