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.

Sedan kan man deklarera signaler som använder typen:SIGNAL nuvarande_tillstand, nasta_tillstand: tillstandstyp;Det kan vara intressant att notera att den fördefinierade typen bit definieras såhär:TYPE bit is (’0’, ’1’);1.7.4 Grupperade signaler: array och recordEn vektor (array) fungerar som i andra språk. Vi kommer i första hand att behövaarrayer av bitar.Dessa kan lämpligtvis göras av typen std_logic_vector. Så här kan enarray med fyra bitar deklareras:SIGNAL myarray: std_logic_vector(3 downto 0);Detta är en array bestående av bitarna myarray(0), myarray(1), myarray(2)och myarray(3). Arrayer indexeras alltså med de vanliga parenteserna (), intemed hakparenteserna [] som man gör i de flesta vanliga språk.Till skillnad från C så bestämmer du arraygränserna själv (inget krav på att debörjar på noll eller nåt annat dumt), så att du kan välja gränser så de passar dittproblem. Arraygränserna anges med TO eller DOWNTO på detta vis:eller(undre gräns) TO (övre gräns)(övre gräns) DOWNTO (undre gräns).En integer och en bitarray är i grund och botten samma sak, men VHDL låteross inte göra saker som typerna inte är definierade för. När vi vill kunna jobba bådearitmetiskt och på bitnivå så kan vi använda oss av typen std_logic_vector,som definieras i bilioteket std_logic_unsigned.SIGNAL u: std_logic_vector(3 DOWNTO 0);Nu kan vi göra allt detta med u:u

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

Saved successfully!

Ooh no, something went wrong!