Professional Documents
Culture Documents
Niveles de abstraccin
Permiten abordar el diseo de sistemas modernos que se caracterizan por:
Elevada y muy elevada complejidad (millones de puertas lgicas) Diseados por equipos de diseo en vez de diseadores individuales Nivel funcional
Nivel RTL
Nivel lgico
Nivel elctrico
Sntesis de circuitos
Se parte de una descripcin funcional en un lenguaje de descripcin de alto nivel (en nuestro caso VHDL) y se sigue un proceso de diseo hasta llegar a integrarlo en uno o varios circuitos integrados (FPGA o PLD)
CEDG - Tema 7
Descripcin Funcional
S R
Bscula RS
library IEEE; use IEEE.std_logic_1164.all; entity BasculaRS is port (S, R: in STD_LOGIC; Q, QN: buffer STD_LOGIC); end BasculaRS; architecture BasculaRS_arch of BasculaRS is begin
Q QN
U1: nor2 port map (R,QN,Q); U2: nor2 port map (S,Q,QN);
end BasculaRS _arch;
Librera IEEE.std_logic_1164.all Puertos: S, R, Q y QN Comportamiento o estructura de la caja: QN <= S nor Q; Q <= R nor QN;
entity BasculaRS is port (S, R: in STD_LOGIC; Q, QN: buffer STD_LOGIC); end BasculaRS; architecture BasculaRS_arch of BasculaRS is begin QN <= S nor Q; Q <= R nor QN; end BasculaRS_arch;
CEDG - Tema 7 5
Libreras (VHDL)
Librera de uso, normalmente:
IEEE.std_logic_1164.all estndar IEEE.std_logic_arith.all aritmtica IEEE.std_logic_unsigned.all aritmtica sin signo library IEEE; use IEEE.std_logic_1164.all; entity BasculaRS is port (S, R: in STD_LOGIC; Q, QN: buffer STD_LOGIC); end BasculaRS; architecture BasculaRS_arch of BasculaRS is begin QN <= S nor Q; Q <= R nor QN; end BasculaRS_arch;
CEDG - Tema 7 6
Empaquetado I (VHDL)
BasculaRS
library IEEE; use IEEE.std_logic_1164.all; entity BasculaRS is port (S, R: in STD_LOGIC; Q, QN: buffer STD_LOGIC); end BasculaRS; architecture BasculaRS_arch of BasculaRS is begin QN <= S nor Q; Q <= R nor QN; end BasculaRS_arch;
CEDG - Tema 7 7
Nombre: BasculaRS Nombre de los puertos: S y R Tipo: in Seales: Lgicas estndar Nombre de los puertos: Q y QN Tipo: buffer Seales: Lgicas estndar
Empaquetado II (VHDL)
Nombre del componente, case sensitive:
entity BasculaRS is port ( ); end BasculaRS; BasculaRS
Comportamiento I (VHDL)
library IEEE; use IEEE.std_logic_1164.all; entity BasculaRS is port (S,R: in STD_LOGIC; Q, QN: buffer STD_LOGIC); end BasculaRS; architecture BasculaRS_arch of BasculaRS is begin QN <= S nor Q; Q <= R nor QN; end BasculaRS_arch;
CEDG - Tema 7 9
Nombre de la realizacin: BasculaRS_arch Nombre del componente: BasculaRS Asignaciones: <= Funciones: nor Variables o seales: S, R, Q, QN
Comportamiento II (VHDL)
Nombre de la arquitectura, puede haber varias realizaciones para una misma entidad:
architecture BasculaRS_arch_NOR of BasculaRS is begin Cuerpo; end BasculaRS_arch_NOR
Nombre del componente al que corresponde esta realizacin (BasculaRS): Asignaciones (concurrentes):
variable_asignada <= variable o funcin que se asigna
Q <= R nor QN; Salida <= 0;
CEDG - Tema 7
10
Funciones complejas
If-then-else if condicin then accin_1; elsif accin_2; ... else accin_n; end if; select with expresin select seal <= valor_1 when condicin_1, .. valor_n when condicin_n;
Circuitos combinacionales
Descripcin de algunos ejemplos de circuitos combinacionales
Decodificador 3_a_8 74xx138 Variacin de niveles sobre el 74xx138. Se muestra la flexibilidad de este tipo de descripciones y su elevada productividad Multiplexor de 4 entradas de 8 bits Multiplexor especializado 4 entradas de 3 bits. Se disea un nuevo componente sobre el anterior Comparador de 8 bits Comparador de 8 bits (alternativo). Flexibilidad en las implementaciones Barrel shifter de 16 bits con desplazamiento circular a la izquierda
Al final del tema se presentan como ejercicios para el alumno otros componentes
CEDG - Tema 7 12
CEDG - Tema 7
14
CEDG - Tema 7
15
Comparador de 8 bits
library IEEE; use IEEE.std_logic_1164.all; entity vcompare is port ( A, B: in STD_LOGIC_VECTOR (7 downto 0); EQ, NE, GT, GE, LT, LE: out STD_LOGIC ); end vcompare; architecture vcompare_arch of vcompare is begin process (A, B) begin EQ <= '0'; NE <= '0'; GT <= '0'; GE <= '0'; LT <= '0'; LE <= '0'; if A = B then EQ <= '1'; end if; if A /= B then NE <= '1'; end if; if A > B then GT <= '1'; end if; if A >= B then GE <= '1'; end if; if A < B then LT <= '1'; end if; if A <= B then LE <= '1'; end if; end process; end vcompare_arch
CEDG - Tema 7
17
CEDG - Tema 7
19
Circuitos secuenciales
Descripcin de algunos ejemplos de elementos biestables, circuitos secuenciales y mquinas de estados
Bscula R-S Biestable D con flanco positivo Biestable D con Preset y Clear 74xx74. Se muestra la elevada flexibilidad y productividad de estas descripciones Contador binario de cuatro bits 74xx163 Ejemplo de mquina de estados que muestra un formato genrico propuesto para la descripcin de este tipo de mquinas Mquina estados: intermitente Thunderbird, como ejemplo de implementacin
Al final del tema se presentan como ejercicios para el alumno otros componentes
CEDG - Tema 7 20
Bscula R-S
library IEEE; use IEEE.std_logic_1164.all; entity Vsrlatch is port (S, R: in STD_LOGIC; Q, QN: buffer STD_LOGIC ); end Vsrlatch; architecture Vsrlatch_arch of Vsrlatch is begin QN <= S nor Q; Q <= R nor QN; end Vsrlatch_arch;
CEDG - Tema 7 21
CEDG - Tema 7
24
library IEEE; use IEEE.std_logic_1164.all; entity smexamp is port ( CLOCK, A, B: in STD_LOGIC; Z: out STD_LOGIC ); end; architecture smexamp_arch of smexamp is type Sreg_type is (INIT, A0, A1, OK0, OK1); signal Sreg: Sreg_type; begin
25
CEDG - Tema 7
26
CEDG - Tema 7
30
Representacin compacta
CEDG - Tema 7
31
Ejemplo
CEDG - Tema 7
32
PAL
Habitualmente no se utiliza la comparticin de productos, lo que no justifica el array OR En las PAL el array OR es fijo. Cada puerta AND est permanentemente conectada a una puerta OR determinada Ejemplo: PAL16L8
CEDG - Tema 7
33
Ejemplo de PAL
10 entradas 8 salidas, con 7 AND por salida 64 filas y 32 columnas (16 variables de entrada a AND) 1 AND para salida triestado 6 salidas disponibles como entradas Mas entradas pero menos salidas Pueden usarse como lgica en dos pasos CEDG - Tema 7 34 L lid i tid
PAL secuenciales
Integran biestables a las salidas, lo que permite el diseo de circuitos sncronos Ejemplo: PAL 16R8
CEDG - Tema 7
35
La salida Q se realimenta en el array AND para facilitar la realizacin de mquinas de estados Salidas triestado con una seal comn de Enable
CEDG - Tema 7
36
GAL 16V8
Una de las ms comunes Cada salida es programable para que funcione como combinacional o registrada con un biestable El nivel de cada salida tambin es programable
CEDG - Tema 7
37
CEDG - Tema 7
38
CEDG - Tema 7
39
CEDG - Tema 7
40
CEDG - Tema 7
41
Ejercicios:
Obtenga la funcin lgica y la tabla de comportamiento del codificador de prioridad 74xx148 Obtenga la funcin lgica y la tabla de comportamiento del registro de desplazamiento del segundo ejemplo Obtenga el diagrama de estados de la mquina de estados del tercer ejemplo
CEDG - Tema 7 42
library IEEE; use IEEE.std_logic_1164.all; entity V74x148 is port ( EI_L: in STD_LOGIC; I_L: in STD_LOGIC_VECTOR (7 downto 0); A_L: out STD_LOGIC_VECTOR (2 downto 0); EO_L, GS_L: out STD_LOGIC ); end V74x148;
library IEEE; use IEEE.std_logic_1164.all; entity rolr16 is port ( DIN: in STD_LOGIC_VECTOR(15 downto 0); -Data inputs S: in STD_LOGIC_VECTOR (3 downto 0); -- Shift amount, 0-15 DIR: in STD_LOGIC; -- Shift direction, 0=>L, 1=>R DOUT: out STD_LOGIC_VECTOR(15 downto 0) -Data bus output ); end rolr16;
CEDG - Tema 7
44
library IEEE; use IEEE.std_logic_1164.all; entity Vggame is port ( CLOCK, RESET, G1, G2, G3, G4: in STD_LOGIC; L1, L2, L3, L4, ERR: out STD_LOGIC ); end; architecture Vggame_arch of Vggame is type Sreg_type is (S1, S2, S3, S4, SOK, SERR); signal Sreg: Sreg_type; begin
CEDG - Tema 7
45