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.6.2 Signaler och variablerVHDL skiljer på SIGNAL och VARIABEL. Vi undviker avsiktligt begreppet variabel.En variabel är bara definierad inom en process, och behöver inte egentligenfinnas i den genererade konstruktionen.I denna kurs rekommenderar vi att du inte krånglar till dina processer, utanhåller dem enkla så att du har en hyfsad idé om vad de genererar för logik. Då hardu inte heller någon större användning av variabler.1.7 DatatyperHittills har vi bara tittat på konstruktioner som arbetar med en bit i taget. VHDLhar stöd för datatyper som representerar flera signaler i en, som till exempel heltaluppbyggda av ett antal bitar, men också en bättre variabeltyp för enstaka bitar.Många av dessa typer är inte tillgängliga i den grund-VHDL som man har automatiskt,utan man måste utnyttja externa bibliiotek. I synnerhet kommer vi att hanytta av biblioteket ieee.std_logic_1164.Bättre på bitnivå: std_logicDatatypen bit, den enda typ vi sett hittills, kan bara ha två värden: ’0’ och ’1’.Typen boolean är i princip samma sak, med värden false och true.Även på bitnivå är detta ofta för begränsat. Det låter oss inte göra databussar,t.ex. för att använda RAM-minnen. För detta måste vi ha tillgång till tristate. Detfår vi med std_logic, en datatyp som finns i biblioteket std_logic_1164.Det är en standardtyp som du skall använda i stället för bit. En signal av typenstd_logic kan ha följande värden:’U’ : Uninitialized’X’ : Forcing Unknown’0’ : Forcing 0’1’ : Forcing 1’Z’ : High impedance’W’ : Weak Unknown’L’ : Weak 0’H’ : Weak 1’-’ : Don’t care’U’, ’X’ och är bara till för simulering. ’Z’ är för tristateutgångar och [’-’] kan man använda för att specificera ett näts uppförande (precis som i kursenDigitalteknik).16

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

Saved successfully!

Ooh no, something went wrong!