1.2 - Diseño VHDL ALU

Post on 14-Apr-2016

45 views 8 download

description

diseñar mediante entorno VHDL una ALU(unidad aritmetica logica) rfvafwfafearrfafwffwefwe

Transcript of 1.2 - Diseño VHDL ALU

Competencia 1

DISEÑO VHDL DE UNAÉ Ó

Competencia 1

UNIDAD ARITMÉTICA LÓGICA

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

VHDL es un lenguaje de descripción de hardware decircuitos integrados de muy alta velocidad .

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Es un lenguaje estándar adoptado por el IEEE (Instituteof Electrical and Electronics Engineers) y se designacomo IEEE Std. 1076‐1993.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Los tres elementos fundamentales en cualquier códigoen VHDL son:

•Contiene una lista de todas las librerías que son utilizadas en el diseñoLibrerías

•Especifica los pines de entrada / salida (I/O) del circuitoEntidad

•Contiene el código VHDL apropiado, el cual describe como el circuito debería comportarse

Arquitectura

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Previamente se había diseñado una ALU con lassiguientes funciones:

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

El circuito

átiesquemático

sería

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Observe que la ALU está formada por las siguientes tresetapas:

• Sección aritmética

• Sección lógica• Sección lógica

• Unión de ambas secciones

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Sección

A it étiAritmética

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Sección

Ló iLógica

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Unión deUnión de

ambas

isecciones

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Para describir/programar de mejor manera la ALU, sesugiere seguir la misma segmentación vista, es decir,dividir el circuito en tres secciones:

• Sección aritméticaSección aritmética

• Sección lógica

• U ió d b i• Unión de ambas secciones

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

La sección aritmética está formada por dos partes:

• Sumador Completo

• Circuito Verdadero/Complemento, Uno/CeroCircuito Verdadero/Complemento, Uno/Cero

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Identificados los elementos que conforman la secciónaritmética, se inicia a programar cada parte porseparado.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

library ieee;use ieee.std_logic_1164.all;

entity FA isport( A: in std_logic ;

B: in std_logic ;Cin: in std_logic ;F: out std_logic ;Cout: out std logic );Cout: out std_logic );

end;

architecture BEH of FA isbegin

F <= A xor B xor Cin;Cout <= (A and B) or ((A xor B) and Cin);

dend BEH;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

library ieee;use ieee.std_logic_1164.all;

entity VCUC isport( B: in std_logic ;

S: in std_logic_vector ( 1 downto 0 );Y: out std_logic );

end;end;

architecture BEH of VCUC isbegin

Y <= (not B and S(1)) or (B and S(0));end BEH;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Con los dos códigos programados (FA.vhd y VCUC.vhd)se puede integrar los programas en un código generalque describa a la ALU Aritmética (ALUA.vhd) como untodo.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

La descripción estructural es el método mas eficientepara la integración de dos o más estructuras definidascon la finalidad de crear una nueva estructura.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Observe que la ALU Aritmética está formada por:

• 5 entradas

• 2 salidas2 salidas

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

library ieee;use ieee.std_logic_1164.all;

entity ALUA isPort( A: in std_logic ;

B: in std_logic ;Cin: in std_logic ;S: in std_logic_vector ( 1 downto 0 );F: out std logic ;F: out std_logic ;Cout: out std_logic );

end;

architecture STRL of ALUA is...

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Se ha establecido que la ALU Aritmética en sí es laintegración de dos componentes y su interconexión.

Un componente es una estructura ya definida y sedeclara después de la arquitectura con el nombre ydeclara después de la arquitectura con el nombre ypuertos con el que fue creado.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

El componente FA sería:

component FAport( A: in std logic ;port( A: in std_logic ;

B: in std_logic ;Cin: in std_logic ;F: out std logic ;_ g ;Cout: out std_logic );

end component;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

El componente VCUC sería:

component VCUCport( B: in std logic ;port( B: in std_logic ;

S: in std_logic_vector ( 1 downto 0 );Y: out std_logic );

end component;p ;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Observe que las entidades del sumador completo(FA.vhd) y del circuito verdadero/complemento,uno/cero (VCUC.vhd) son idénticos a los componentesdeclarados en la ALU Aritmética (ALUA.vhd).

entity FA isport( A: in std_logic ;

B: in std_logic ;

component FAport( A: in std_logic ;

B: in std_logic ;Cin: in std_logic ;F: out std_logic ;Cout: out std_logic );

end;

Cin: in std_logic ;F: out std_logic ;Cout: out std_logic );

end component;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

La interconexión hace referencia a las señales internasde conexión entre componentes sin considerar lasentradas y salidas.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Todas las señales de interconexión se declaran despuésde los componentes cuidando que las características dela señal sean las mismas entre componentes.

signal Y: std_logic;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Finalmente, se asignan las entradas (i), salidas (o) yseñales (s) que va a utilizar cada componente para sucorrecto funcionamiento a través de la sentencia portmap.

Cada asignación deberá tener un identificador así comoel nombre del componente a utilizar para la asignación.el nombre del componente a utilizar para la asignación.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

La sintaxis de asignación sería:

Identificador: Componente port map (i, i, s, o, o)

Observe que el orden de los parámetros dentro delObserve que el orden de los parámetros dentro delparéntesis dependerá de la declaración delcomponentecomponente.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Es decir, si se declara un componente con 3 entradas y1 salida, su sintaxis sería:

component EJEMPLOport( A: in std_logic ;

B: in std_logic ;C: in std_logic ;Z: out std_logic );

end component;

...

U1: EJEMPLO port map (i, i, i, o)

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

U1: EJEMPLO port map (i, i, i, o)

De igual forma, si un componente es declarado con 4entradas/salidas, se debe tener cuidado de asignar lamisma cantidad de parámetros.

component EJEMPLOport( A: in std_logic ;

B i td l iB: in std_logic ;Z: out std_logic );

end component;

...

U1: EJEMPLO port map (i, i, i, o, o)

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

La asignación de la ALU sería: U1

begin

U2

U1: VCUC port map (B, S, Y);U2: FA port map (A, Y, Cin, F, Cout);

end STRL;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

library ieee;use ieee.std_logic_1164.all; U1

entity ALUA is

U2

Port( A: in std_logic ;B: in std_logic ;Cin: in std_logic ;S: in std logic vector ( 1 downto 0 );S: in std_logic_vector ( 1 downto 0 );F: out std_logic ;Cout: out std_logic );

end;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

architecture STRL of ALUA isU1

component FAport( A: in std_logic ;

B: in std_logic ;

U2

Cin: in std_logic ;F: out std_logic ;Cout: out std_logic );

end component;end component;

component VCUCport(

B: in std_logic ;S: in std_logic_vector ( 1 downto 0 );Y: out std_logic );

d tend component;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

U1

signal Y: std_logic;

begin

U2

U1: VCUC port map (B, S, Y);U2: FA port map (A, Y, Cin, F, Cout);

end STRL;end STRL;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

La sección lógica está formada por solo una parte, porlo que se puede programar en un mismo código.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

library ieee;use ieee.std_logic_1164.all;

entity ALUL isport( A: in std_logic ;

B: in std_logic ;S: in std_logic_vector ( 1 downto 0);R out std logic )R: out std_logic );

end;

architecture BEH of ALUL isbegin

with S selectR <= (A and B) when "00",

(A xor B) when "01",(A or B) when "10",( o ) e 0 ,(not A) when "11",'0' when others;

end BEH;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Para realizar la unión de las secciones aritméticas ylógicas (ALUA.vhd y ALUL.vhd) se debe considerar queambas son componentes y además se requiere de untercer componente el cual será el multiplexor 2 a 1(mux2x1.vhd) que une ambas partes.

Todos los componentes deberán estar contenidos en unTodos los componentes deberán estar contenidos en unsolo código (ALU.vhd)

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Diseño general

d l ALUde la ALU

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

library ieee;use ieee.std_logic_1164.all;

entity MUX2X1 isPort( I: in std_logic_vector ( 1 downto 0 );

S2: in std logic ;_ g ;X: out std_logic );

end;

architecture BEH of MUX2X1 isarchitecture BEH of MUX2X1 isbegin

with S2 selectX <= I(0) when '0',

I(1) when '1','0' when others;

end BEH;

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Con los tres componentes (ALUA.vhd, ALUL.vhd yMUX2X1.vhd) se puede iniciar con el código de laUnidad Aritmética Lógica (ALU.vhd)

De la misma forma que en el diseño de la ALUDe la misma forma que en el diseño de la ALUAritmética, se debe de considerar a la ALU como unasola entidad que tiene sus entradas y salidas, ademássola entidad que tiene sus entradas y salidas, ademásde estar formada por tres componentes.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Se debe de tener en cuenta las interconexiones queexisten entre componentes sin considerar las entradasy salidas.

Es recomendable tener siempre un esquemático queEs recomendable tener siempre un esquemático queguíe para el proceso de programación.

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego

Ingeniería MecatrónicaM.C. Victor Hugo Cacique Borrego