sed unitat 1 4 intro vhdl...

25
1 Introducció VHDL Departament Enginyeria Electrònica Josep Conesa 2 Història Anys 70: Evolució en els processos de fabricació dels Ci’s. Poques eines de disseny Disseny concentrat en les característiques i connexions a nivell de transistor. Anys 80: Processos tecnològics més complexes. Augment dels problemes d’integració (circuits MSI i LSI). Desfasament entre tecnologies i tècniques de disseny. Apareixen els “llenguatges de descripció de hardware”: IBM IDL Texas Instruments TI-HDL General Electrics ZEUS Cap aconsegueix una gran acceptació

Upload: others

Post on 05-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

1

11

IntroduccióVHDL

Departament Enginyeria ElectrònicaJosep Conesa

22

Història• Anys 70:

• Evolució en els processos de fabricació dels Ci’s.• Poques eines de disseny• Disseny concentrat en les característiques i connexions a

nivell de transistor.

• Anys 80:• Processos tecnològics més complexes.• Augment dels problemes d’integració (circuits MSI i LSI).• Desfasament entre tecnologies i tècniques de disseny.

• Apareixen els “llenguatges de descripció de hardware”:• IBM IDL• Texas Instruments TI-HDL• General Electrics ZEUS

• Cap aconsegueix una gran acceptació

Page 2: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

2

33

HistoriaL’any 1981 el Departament de defensa dels Estats Units

van desenvolupar el projecte VHSIC (Very High Speed

Integrated Circuit). Rentabilitzar les inversions en

hardware (gràcies a que aquest nou sistema permet un

més fàcil manteniment, reduint molt tant els costos de

temps, com de material).

44

Evolució VHDL

– 1983: IBM i TI , junt amb certes empreses i universitats, varen desenvolupar un llenguatge de disseny, que els permetés l'estandardització, facilitant així el manteniment dels dissenys i la depuració dels algoritmes.

– 1987: IEEE publica l’estàndard IEEE std 1076-1987 (VHDL).

– 1993: IEEE publica un nou estàndard actualitzat. – 1999: VHDL-AMS extensió

Page 3: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

3

55

VHDL

• Llenguatge de programació d’alt nivell: – Llenguatge creat específicament pel disseny

de hardware (llenguatge de descripció de hardware).

– Permet abstracció d’alt nivell.– Ens permet el disseny de CPUs, manipular

fitxers, retards en el temps...

66

Avantatges del llenguatge VHDL

– Independència en la metodologia de disseny.– Portabilitat. Permet la transferència de dissenys a

diferents entorns CAD, de simulació o de síntesi.– Ràpid “Time-to-Market”.Combinat amb eines de

síntesi automàtica permet portar un disseny amb temps record.

– Versatilitat per la descripció de sistemes complexes.

– Possibilitat de reutilització.– Independència respecte dels fabricants.

Page 4: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

4

77

Fabricants FPGA•Actel

•Altera

•Atmel

•Chip Express

•Clear Logic

•Cypress

•Dyna Chip

•Fast Analog Solutions

•Lattice

•Xilinx Inc.

Software de simulació

• Altera Quartus-II

• Lattice ispLEVER

• Xilinx Foundation

• Actel Libero

88

Què és una FPGA ?

• Una FPGA és un dispositiu lògic programable que es pot configurar per implementar qualsevol circuit digital. Segons utilitzem una FPGA més gran , amb més recursos interns, podrem implementar dissenys més complexos.

• Una vegada configurada i gravada amb el nostre disseny ens queda un xip com a únic maquinari, necessitant ben poc components exteriors per acabar el sistema.

Page 5: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

5

99

Estructura FPGA• Tres tipus de components

– CLB : (Blocs lògics configurables). Són els pilars de la FPGA i estan distribuïts uniformement per tot l’àrea de la FPGA i són idèntics

– Latches– Multiplexors– Petites memòries

• IOB (Blocs entrada/sortida) Son CLB’s específics que es troben al costat dels PINS i la seva funció és interconnectar el xip amb l’exterior.

• Xarxa d’interconnexió: Conjunt de camins formats per matrius d’interconnexió que permeten connectar CLB’samb CLB’S i amb IOB’s

1010

Estructura FPGA

Busos de línies metàl·liques

CLB

IOB

IOB

IOB IOB

IOB

IOB

IOB

CLB

CLB

IOB

CLB

IOB

IOB

IOB

Matrius d’interconnexió

Page 6: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

6

1111

Estructura bàsica d’un disseny en VHDL

Encapçalament

Entitat

Arquitectura

•Encapçalament

•Library, Package

•Declaració de l’entitat

•Caixa negra

•Declaració de l’arquitectura

•Funcionament de l’entity

1212

EncapçalamentBiblioteques (LIBRARY):

Dins de les diferents biblioteques podem trobar components, tipus de senyals, operacions... que ja han estat implementades i són estàndard. Biblioteques existents: IEEE, Altera, LPM, etc.Per poder-les utilitzar:

1. Cal fer una crida a la biblioteca que ens interessa.ex: LIBRARY IEEE;

2. Car expressar quines parts d’aquesta biblioteca volem utilitzar:

ex: USE IEEE_STD_LOGIC_1164.ALL;

Nom del paquet Part del paquet

Page 7: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

7

1313

selectabs component if of severityaccess configuration in on signalafter constant inout open subtypealias disconnect is or thenall downto label others toand else library out transportarchitecture elsif linkage package typearray end loop port unitsassert entity map procedure untilattribute exit mod process usebegin file nand range variableblock for new record waitbody function next register whenbuffer generate nor rem whilebus generic not report withcase guarded null return xor

Paraules reservades del VHDL

1414

– Un programa en VHDL consta de dues parts:

• Bloc o entitat (ENTITY): Anàloga al símbol esquemàtic del disseny a implementar. Fa referència als senyals d’entrada i sortida d’interfície.

• Arquitectura (ARQUITECTURE): La descripcióinterna del bloc.

Page 8: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

8

1515

ENTITY• La podem veure com el que envolta l’arquitectura

• Conte els ports d’entrada i sortida

• S’han d’especificar els modes i els tipus de cada port

DECLARACIÓ D’ UNA ENTITAT

entity nom_entitat isport (-- ports d’entrada, sortida, bidireccionalsnom_portA : tipus_port tipus_senyal ;nom_portB : tipus_port tipus_senyal );end nom_entitat ;

*Important: L’ultima declaració dels ports va sense el símbol de ;

1616

Tipus de port– in : Port d’entrada. No es permet assignar-li un valor. Es pot

utilitzar per rellotges,entrades de control com l’enable, i per dades d’entrada unidireccionals

– out : Port de sortida. No se’ns permet llegir el seu valor internament.

– buffer : Port de sortida. Se’ns permet llegir el seu valor. Aquest mode es similar al out. Nomes pot ser connectat a un senyal intern o a un port de mode buffer d’un altre entitat

– inout : Port d’entrada/sortida (bidireccional).

Page 9: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

9

1717

Tipus de senyals dels ports– boolean : 2 valors. True y False.(exemple d’un comparador)

• Exemple– Igual : out boolean;

– bit : 2 valors (0 y 1). – bit_vector : Vector de bits. S’ha de definir el pes dels bits segons

posem la paraula reservada downto o to segons el bit més significatiu es el numero més alt o el més baix del vector.

• Exemple– Entrada : bit_vector (0 to 7); En aquest cas el MSB es el 0 el numero 7 és el

LSB– Entrada : bit_vector (7 downto 0); En aquest cas el MSB es el bit numero 7 i

el numero 0 és el LSB– Integer : utilitza de números enters. El valor que li assignem no ha

d’estar inserit entre cap signe.– std_logic : Com el bit però a més a més amb valors d’alta

impedància (Z) i indefinits (X). – std_logic_vector : Array (vector) de std_logics. – Altres tipus : Els definim nosaltres (Ex: màquines d’estats)

type format_meu is (guapo,lleig,no_mal_del_tot);Defineix el domini d’una variable discreta.Un nou tipus (type) discret determinat per format_meu

1818

Exemple d’entitat

ENTITY exemple IS

PORT( a,b : in std_logic;

c : out std_logic;

d : inout std_logic;

e : buffer std_logic);

END exemple;

Page 10: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

10

1919

Sintaxis

• VHDL no és sensible a minúscules i majúscules

• Exemple: ENABLE,enable, Enable, enablE(és el mateix)

• El primer caràcter identificador ha de ser una lletra

•Dos guions baixos seguits no són vàlids

•No són vàlids els caràcters diferents a les lletres, números i guió baix

2020

Exemple Sintaxis• No són identificatius vàlids:

• _rellotge

• 3_llegir

•Signal_#1

•Clear__2

• Els comentaris

• Poden estar col·locats en qualsevol lloc i es fan amb doble guió (- -)

• Exemple : -- això és un comentari

Page 11: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

11

2121

Senyals

• Els senyals tenen una estructura similar als ports d’una entitat, però es declaren dins d’una arquitectura, i actuen com connexions internes (són els cables dels esquemàtics):SIGNAL nom: tipus [rang]

SIGNAL num: bit_vector(7 downto 0);

2222

exempleSIGNAL A : std_logic;SIGNAL B: std_logic_vector(5 downto 0);SIGNAL C : Boolean;SIGNAL D: integer range o to 255;BEGINA <= ‘1’;B <= “001011”;C <= true;D <= 34;

Page 12: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

12

2323

Operacions lògiques

• Les operacions lògiques es poden implementar directament:– NOT– AND– OR– NAND– NOR– XOR– XNOR

2424

Assignació segons la classe

• Per un senyal: <=• Per una constat o variable: :=• Bit o std_logic: utilitzar cometes simples ‘x’• std_logic_vector: “10110”• Nombres enters: No utilitzar cometes,

assignació directa.

Page 13: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

13

2525

Declaració arquitectura• architecture nom_arcqu of nom_entitat is•• -- declaració de senyals interns i altres tipus•• begin

• -- nucli del programa

• end nom_arcqu ;

2626

Descripció arquitectura– Estil behavioral o de comportament o d’alt nivell : Es caracteritza per

incloure les sentències i ordres típiques d’un llenguatge de programació(if, then, case, for...) de manera que la distribució final del circuit amb

portes lògiques dins del PLD córrer a càrrec del compilador i de la resta de programari. Estructura seqüencial (es necessita un process).

– Estil dataflow o flux de dades : Implica la transferència del senyal d’entrada a la sortida node a node. No és seqüencial, és concurrent. És la traducció a VHDL de les equacions algebraiques.

– Estil structural o estructural : S’hi descriu un netlist de VHDL, en els qual els components són connectats i avaluats instantàniament mitjançant senyals internes. Bàsicament, es tracta de la traducció dels esquemàtics, porta a porta (component) i cable a cable (signal)

– Estil mixt : Compost per 2 o més estils diferents.

Page 14: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

14

2727

Sentencies seqüencials

• Estil behavioral– Les sentències descrites en un programa

s’executen de dalt cap a baix.– Importància de l’ordre de les citades

sentències en el programa.– La realització de forma seqüencial d’un

circuit es realitza dins del cos d’un procés (dins d’un process).

2828

Exemple comportamental (o d’alt nivell) o behavioral

(a i b entrades, sortida1 i sortida2 sortides)

architecture behavioral of compara isbeginprocess (a, b)begin

if (a = b) thensortida1 <= ‘1’;

elsesortida1 <= ‘0’;

end if;if (a = ‘0’ and b = ‘0’) or (a = ‘1’ and b = ‘1’) then

sortida2 <= ‘1’;else

sortida2 <= ‘0’;end if;

end process;end behavioral;

Page 15: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

15

2929

Exemple comparador estil behavioral

compara : process(a,b)begin

if a = b then igual <= ‘1’;else igual <= ‘0’;

end if;end process compara;

end nom_arquitectura

3030

Exemple comparador estil dataflow(equació algebraica)

entity comp isport (a,b: in bit_vector(7 downto 0);

igual: out bit);end comp;-- una altre manera de descriure comparchitecture booleana of comp isbegin

igual <= not(a(0) xor b(0))and not (a(1) xor b(1))and not (a(2) xor b(2))and not (a(3) xor b(3));

end booleana;

Page 16: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

16

3131

Exemple comparador descripcióestructural (l’esquema)

entity comp isport (a,b : in bit_vector(7 downto 0);

igual : out bit);

end comp;-- una altre manera de descriure un comparadoruse work.gatespkg.all; -- (aquí hi ha la biblioteca de portes lògiques)architecture estructural of comp is

signal x: std_logic_vector(0 to 3);beginU0: xnor2 port map (a(0),b(0),x(0));U1: xnor2 port map (a(1),b(1),x(1));U2: xnor2 port map (a(2),b(2),x(2));U3: xnor2 port map (a(3),b(3),x(3));U4: and4 port map (x(0),x(1),x(2),x(3),x(4),igual);end estructural;

3232

Descripciónom_proces: process (llista)

Les variables mostrades a la llista s’anomenen variables sensibles. El process s’executa la primera vegada i després només quan hi ha un canvi en alguna d’aquestes variables.L’engegada del procediment és insensible a variacions de variables no contingudes a llista

Page 17: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

17

3333

• Sentència Process:

– Sempre que es vulgui utilitzar sentències seqüencials (if, for, case) haurem d’usar un procés.

– Estructura d’un procés:

etiqueta: process (senyals_sensibles)-- declaració de variables

begin-- sentències seqüencials

end process etiqueta;

– És opcional escriure les etiquetes

3434

Sentencia ifEstructura:

if (condició ) then-- fes alguna cosa

else-- fes un altre cosa

end if;

Exemples de condicions: if (a = b) then ...if (a = “1111”) then ...if (b = ‘1’) and (c(0) = ‘0’) then ...if clock’event and clock = ‘1’ then ...

Page 18: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

18

3535

Sentencia ifTambé es poden realitzar aniuaments (nesting) :

if (condició) then-- alguna cosaelsif (altre_condició ) then

-- altre cosaelse

-- altre cosa diferentend if;

3636

Sentencia CASEEstructura de la sentència:

case senyal_a_avaluar iswhen valor_1 => -- fes alguna cosa;when valor_2 => -- fes alguna cosa;when valor_3 => -- fes alguna cosa;...when últim_valor => -- el que sigui;

end case;

Page 19: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

19

3737

Sentencia CASE

Variacions sobre la sentència CASE:

case senyal_a_avaluar iswhen valor_1 => -- fes quelcom;when valor_n => -- fes quelcom;...when others => -- el que sigui;

end case;

3838

Sentencia CASE exemple

case data iswhen 0 => dout <= ‘0’;

sortida <= ‘1’;when 1 => dout <= ‘1’;when 2 => dout <= ‘1’;when others => dout = ‘Z’;

end case;

Page 20: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

20

3939

Assignació concurrent condicional:Realitza la mateixa funció que el if de les

sentències seqüencials.

Estructura:sortida <= entrada1 when (condició)

else entrada2;

Exemple:output <= input1 when control = ‘1’

else input2;

4040

Assignació concurrent amb seleccióRealitza la mateixa funció que el case de les

sentencies seqüencials.Estructura:

with senyal selectoutput <= entrada1 when valor1_senyal ,

entrada2 when valor2_senyal ,...entrada_n when valor_n_senyal ;

Page 21: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

21

4141

Assignació concurrent amb seleccióExemple

with a selectresultat <= b OR c when “00”,

b AND c when “01”,b XOR c when “10”,NOT(b XOR c) when “11”;

4242

e2

e1

O1

e2

e1

O1

entity porta is

port( e1: in std_logic;

e2: in std_logic;

O1: out std_logic);

end porta

architecture A of porta is

begin

etiqueta: process(e1,e2)

begin

O1 <= e1 and e2;

end process etiqueta;

end A

Exemple porta AND

Page 22: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

22

4343

Exemple porta ANDprocess (a,b)

begin if a= ‘1’ and b= ‘1’ then

sal <= ‘1’;

else

sal <= ‘0’

end if;

end process;

4444

Descripció de lògica síncrona• En els circuits digitals síncrons, l’estat intern s’actualitza quan arriba el flanc

actiu del senyal de rellotge (clock) library ieee;use ieee.std_logic.all;entity flipD is

port(d,clk: in std_logic;q: out std_logic);

end flipD;architecture ex_sincron of flipD isbegin

process (clk) beginif (clk’event and clk = ‘1’) then – Detecció del flanc de pujadaq <= d;end if;

end process;end ex_sincron;

Page 23: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

23

4545

Descripció de lògica síncrona• Quan s’utilitza std_logic_1164, es poden fer servir les

funcions:

– Rising_edge(clk) equivalent a clk’event AND clk = ‘1’

– Falling_edge(clk) equivalent a clk’event AND clk = ‘0’

• En el cas d’una cel·la de memòria latch activada per nivell alt a l’entrada E només cal posar:

if (E = ‘1’)

4646

Sentència WAIT UNTIL

Estructura:processbegin

wait until (E = ‘1’);-- coses a realitzar;

end process;

S’espera fins que el senyal E no tingui nivell alt

Page 24: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

24

4747

Descripció de maquines d’estats finits (FSM)

Molts circuits lògics seqüencials serveixen per fabricar màquines d’estats finits.

• Exemple d’especificació d’una FSM per controlar una memòria RAM– FSM té dues variables d’entrada:

• ready que indica que el bloc de memòria està preparat • read_write (R_W) que indica que es pretén fer una lectura o

escriptura de la memòria – La maquina d’estats genera aleshores dues variables oe

i we que s’apliquen a les entrades output enable (OE) i write_enable (WE) de la RAM

– Dibuixeu l’esquema de la memòria RAM a controlar i la FSM a dissenyar

4848

Descripció màquina d’estats

start

reading

idle

writing

R_WR_W

readyready

ready

ready

01reading

10writing

00start

00idle

WEOEESTAT

TAULA DE SORTIDES

Page 25: SED Unitat 1 4 Intro VHDL J-Conesadigsys.upc.es/ed/SED/unitats/unitat_1_4/SED_Unitat_1_4_Intro_VHDL… · Rentabilitzar les inversions en hardware (gràcies a que aquest nou sistema

25

4949

library ieee;use ieee.std_logic_1164.all;entity exemple_FSM is

port( r_w, ready: in std_logic;reset,clk: in std_logic;oe,we: out std_logic);

end exemple_FSM;

architecture implementacio_FSM of exemple_FSM istype estats is (idle,start,writing,reading);signal estat_actual: estats;beginprocediment: process (r_w, ready, reset, clk) begin

if reset = ‘1’ thenestat_actual <= idle;

elsif (clk’event and clk = ‘1’) thencase estat_actual is

when idle => oe <= ‘0’; we <= ‘0’;if ready = ‘1’ then

estat_actual <= start;else

estat_actual <= idle;end if;

when start => oe<= ‘0’; we <= ‘0’;if r_w = ‘1’ then

estat_actual <= reading;else

estat_actual <= writing;end if;

when reading => oe <= ‘1’; we <= ‘0’;if ready=‘1’ then

estat_actual < =idle;else

estat_actual <= reading;end if;

when writing => oe <= ‘0’; we <= ‘1’;if ready = ‘1’ then

estat_actual <= idle;else

estat_actual <= writing;end if;

end case;end ifend process procediment;end implementacio_FSM;

5050

Referències• Altera Corporation, Data Book, San Jose, Calif.: Altera Corporation 1995.

Armstrong, J.R., Chip-level modeling with VHDL, Englewoods Cliffs, N.J.: PrenticeHall, 1988.

• VHDL Cookbook, accesible via ftp://ftp.cs.adelaide.edu.au/pub/VHDL/• S., Introduction to HDL-based design using VHDL, Mountain View, Calif.,

Synopsys Inc., 1991.• Coelho, David. The VHDL Handbook, Boston, Kluwer Academic, 1989.• IEEE, IEEE Standard VHDL Language Reference Manula, Std. 1076-1993, New

York, IEEE, 1993.• IEEE, IEEE Standard Multivalue Logic System for VHDL Model Interoperability

(Std_logic_1164), Std IEEE 1164-1993, New York, IEEE, 1993.• Leung, Steven and Michael Shanblatt, ASIC System Design with VHDL: A

Paradigm, Boston, Kluwer Academic, 1989.• Lipsett, Roger, Erich Marschner and Moe Shahdad. “VHDL: The Language”, IEEE

Design and Test of Computers, New York, IEEE, April 1986.• Mazor, Stanley and Patricia Langstraat, A Guide to VHDL, Boston, Kluwer

Academic, 1992.• Navabi, Zainaladebin, VHDL Analysis and Modeling of Digital Systems, New York,

McGraw-Hill, 1993.• Xilinx Inc., Programmable Logic Data Book, San Jose, Calif., Xilinx Inc., 1994.• http://tech-www.informatik.uni-hamburg.de/vhdl/doc/cookbook/VHDL-Cookbook.pdf