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.

• klockan får inte förekomma någonstans i blocket.• alla insignalfall måste täckas för att undvika att få oönskade latchar. AllaCASE- och IF-satser måste vara fullständiga. För att få mindre att skrivarekommenderar vi att sätta default-värden först i blocket och bara ta med defall då vi inte ska ha default-värdena. Gör så och slipp latchar!Vi avslutar detta avsnitt med en förmaning. Är du det minsta osäker på skillnadenmellan klockade och kombinatoriska processer, så undvik de sistnämnda.1.10 Lite extra för att prata med omvärldenI detta avsnitt tar vi upp ett par detaljer som behövs för att prata med omvärlden,dels hur VHDL importerar från bibliotek, och dels hur du specifierar konstruktionensdestination.1.10.1 Att använda externa bibliotekVHDL har, likt de flesta moderna programmeringsspråk1, direkt stöd för att kommaåt typer och kod i andra moduler. I VHDL används det reserverade ordet USE.Du kommer inte att behöva använda så många andra moduler/bibliotek i DigitalKonstruktion, men i mer avancerade VHDL-kurser kommer det att användas destomer. Här behöver vi oftast bara använda biblioteket ieee.std_logic_1164.Följande rader rekommenderas i början av dina program (före ENTITY):LIBRARY ieee;USE ieee.std_logic_1164.all;USE std_logic_unsigned.all;Det du vill ha ur dessa bibliotek är ett antal standardtyper som definierar normalain- och utsignaler, som std_logic och std_logic_vector.1.11 Syntetiserbar VHDLAll VHDL-kod är inte syntetiserbar! Det finns många konstruktioner som är korrektVHDL-kod men som inte kan realiseras. Tag som exempel följande felaktigaD-vippa:PROCESS (clk)BEGINIF clk’event THENq

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

Saved successfully!

Ooh no, something went wrong!