You are on page 1of 13

TEMA I: PROGRAMACION DE MUX 4 a 1 EN VHDL UTILIZANDO LA SENTENCIA

WHEN SELECT.
I

OBJETIVOS:
Objetivo General:
Conocer la sentencia de asignacin WHEN SELECT en VHDL
Objetivos Especficos:
Investigar la sintaxis de las instrucciones en VHDL de Xilinx
Implementar un Mux de 4 a 1 utilizando la sentencia de asignacin WHEN
SELECT en VHDL.

II

MARCO TERICO:
VHDL

VHDL es un lenguaje concurrente, como consecuencia no se seguir el orden en que estn


escritas las instrucciones a la hora de ejecutar el cdigo. De hecho, si hay dos instrucciones, no
tiene por qu ejecutarse una antes que otra, pueden ejecutarse a la vez.
Sentencias Concurrentes
La instruccin bsica de la ejecucin concurrente es la asignacin entre seales a travs del
smbolo <=. Para facilitar la asignacin de las seales VHDL incluye elementos de alto nivel
como son instrucciones condicionales, de seleccin. Etc. [1]

WHEN-SELECT-WHEN
Es una sentencia de asignacin denominada concurrente, la cual est representada por la
siguiente sintaxis: [1]

FIGURA 1: Sintaxis de la sentencia WITH SELECT


AUTOR: Universidad de Catambria

III.

DESCRIPCIN:

Diseo de un Multiplexor de 4 entradas y 1 salida en VHDL.


El multiplexor (MUX) es un circuito combinacional que tiene varios canales de datos de entrada
y solamente un canal de salida. Slo un canal de la entrada pasar a la salida y este ser el que
haya sido escogido mediante unas seales de control.
Es una sentencia de asignacin denominada concurrente, la cual est representada por la
siguiente sintaxis:
A continuacin se presenta el diagrama de bloques que muestra las entradas I0, I1, I2 e I3 y la
seleccin viene dada por las entradas S0 y S1. El valor de la salida Y depende de los valores
lgicos presentes en las entradas de datos y la seleccin. [2]

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

FIGURA 2: Selector/Multiplexor de una salida y cuatro entradas


AUTOR: Universidad Nacional de Colombia

La
tabla
de
verdad
se
muestra
en
la
s I0=1, I1=1, I2=0, I3=1 y S1=1, S0=0 entonces Y=I2=0. [2]
Entradas de seleccin de datos
S1
S0
0
0
0
1
1
0
1
1

tabla

3.6.2.

Por

ejemplo,

Entrada Seleccionada
D0
D1
D2
D3

TABLA 1: Seleccion de datos del multiplexor de 1 salida y 4 entradas


AUTOR: Universidad Nacional de Colombia

Salida de datos.
El problema consiste en definir un conjunto de expresiones para construir el circuito lgico. La
ecuacin en cada fila, se obtiene a partir del dato de entrada y la entrada de seleccin de datos:
La salida es Y= I0, s S1=0 y S0=0. Entonces Y = I0S1S0.
La salida es Y= I1, s S1=0 y S0=1. Entonces Y = I1S1S0.
La salida es Y= I2, s S1=1 y S0=0. Entonces Y = I2S1S0.
La salida es Y= I3, s S1=1 y S0=1. Entonces Y = I3S1S0.
Sumando lgicamente las ecuaciones anteriores, se tiene:
Y = I0S1S0 + I1S1S0 + I2S1S0 + I3S1S0 [2]
PASOS PARA PROGRAMAR MUX 4 a 1 EN VHDL
Paso 1:
En la ventana que se muestra a continuacin se pone el nombre de la carpeta interna del Xilinx
identificado con Mux4a1, posteriormente se escoge la ubicacin en el disco local D en una
carpeta donde contenga los proyectos que se vaya a realizar.

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

FIGURA 3: Creacin de un Nuevo Proyecto


AUTOR: Estudiantes de Octavo Electrnica A

Paso 2:
Dar clic en Next y muestra otra ventana que indica la ubicacin del nombre en la carpeta interna
de xilinx, posteriormente se da clic en Finish.

FIGURA 4: Ubicacin de la carpeta interna de Xilinx


AUTOR: Estudiantes de Octavo Electrnica A

Paso 3:
Una vez dado click en Finish, se muestra una ventana donde se escoge el tipo de programacin
que se va a utilizar, para el caso hay que elegir VHDL Module, una vez elegido, nuevamente
pide un nombre, el cual indica donde se va a realizar la respectiva programacin y
automticamente la localizacin de la carpeta donde se va a guardar el programa que
previamente se eligio. Se da click en Next.

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

FIGURA 5: Ventana para escoger el tipo de programacin a utilizar


AUTOR: Estudiantes de Octavo Electrnica A

Paso 4:
Al haber dado clic en Next, aparece una nueva ventana donde indica el nombre Mux4a1 y los
puertos a los cuales se les va a dar los nombres correspondientes de acuerdo a las entradas y
salida que tiene dicho sistema combinacional.

FIGURA 6: Ventana donde indica el nombre del Proyecto y los puertos respectivos
AUTOR: Estudiantes de Octavo Electrnica A

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016
Paso 5:
Aparece una nueva ventana indicando el nombre del proyecto que se va a programar y los
nombres asignados tanto como a las entradas como a la salida del Mux4a1.

FIGURA 7: Ventana que indica el nombre del Proyecto a ser programado


AUTOR: Estudiantes de Octavo Electrnica A

Paso 6:
Una vez realizado todos estos pasos, aparece una ventana indicando las entradas y salida que se
les asigno previamente y es aqu donde se realiza la respectiva programacin de VHDL
correspondiente utilizando la sentencia de asignacin WITH-SELEC-WHEN, para el mux4a1.
Declaradas con sus respectivas libreras y entradas y salida asignada en forma de vectores
dentro de la entidad y as mismo su salida declarada en la arquitectura.

FIGURA 8: Gestor para la programacin respectiva


AUTOR: Estudiantes de Octavo Electrnica A

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016
Paso 7:
Una vez hecho la programacin, se hace una verificacin si el cdigo realizado esta
correctamente, determinado esto, se procede a verificar su esquema RTL y tecnolgico.

FIGURA 9: Esquemas RTL y Tecnolgico


AUTOR: Estudiantes de Octavo Electrnica A

FIGURA 10: Simulacin MUX4a1


AUTOR: Estudiantes de Octavo Electrnica A

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

IV.

CDIGO:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity mux41 is
Port ( ctrl : in STD_LOGIC_vector (0 to 1);
A : in STD_LOGIC_vector (0 to 3);
S : out STD_LOGIC);
end mux41;
architecture Behavioral of mux41 is
begin
with ctrl select
S <= A(0) WHEN "00",
A(1) WHEN "01",
A(2) WHEN "10",
A(3) WHEN "11",
'0' WHEN OTHERS;
end Behavioral;
Conclusiones.

WITH-SELECT-WHEN al ser considerada una sentencia concurrente se ejecuta


simultneamente en la simulacin, es decir, no existe una prioridad debida al caso del proyecto.
Esta sentencia de asignacin es una de las aplicadas y entendibles en el mundo de VHDL puesto
que su forma de uso es muy fcil al momento de programar, en este caso del Mux 4 a 1.

Recomendaciones:

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

TEMA II: PROGRAMACIN DE UN CONVERSOR DE NBCD A SIETE SEGMENTOS


EN VHDL UTILIZANDO LA SENTENCIA WHEN SELECT.
I.

OBJETIVOS:
Objetivo General:
Generar un programar que permita convertir de NBCD a siete segmentos.
Objetivos Especficos:
Crear una programacin que convierta de NBCD a siete segmentos mediante la
utilizacin de ISE de XILINX
Implementar un conversor NBCD a siete segmentos utilizando la sentencia de
asignacin WHEN SELECT en VHDL.

II.

MARCO TERICO:
VHDL

VHDL es un lenguaje concurrente, como consecuencia no se seguir el orden en que estn


escritas las instrucciones a la hora de ejecutar el cdigo. De hecho, si hay dos instrucciones, no
tiene por qu ejecutarse una antes que otra, pueden ejecutarse a la vez.
Sentencias Concurrentes
La instruccin bsica de la ejecucin concurrente es la asignacin entre seales a travs del
smbolo <=. Para facilitar la asignacin de las seales VHDL incluye elementos de alto nivel
como son instrucciones condicionales, de seleccin. Etc. [1]
III.

DESCRIPCIN:

Diseo de un conversor de NBCD a siete segmentos.


El visualizador de siete segmentos se compone de siete diodos emisores de luz (LEDs)
dispuestos en un patrn, y algunos incluyen un octavo LED para el punto decimal. Existen dos
tipos de visualizadores de acuerdo a su conexin elctrica: nodo comn y ctodo comn.
Desde el punto de vista de programacin (o del diseo de sistemas digitales), es necesario saber
el tipo de visualizador para las condiciones de activacin.
Para el desarrollo de la prctica se genera las tablas en donde se encuentran el cdigo NBCD y
la conversin de los mismos a 7 segmentos, despus se procede a la programacin en ISE de
XILINX en la cual se generan los vectores de 4 y 8 bits mediante los cuales se podr convertir
de NBCD a siete segmentos con la utilizacin de la sentencia WHEN SELECT.
NBCD
0000
0001
0010
0011
0100
0101
0110
0111

SIETE SEGMENTOS
1111110
0110000
1101101
1111001
0110011
1011011
0011111
1110000

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016
1111111
1110011
0000000
0000000
0000000
0000000
0000000
0000000

1000
1001
1010
1011
1100
1101
1110
1111

TABLA 2: NBCD a siete segmentos


AUTOR: Estudiantes de Octavo Electrnica A

FIGURA 11: Esquema RTL y Tecnolgico


AUTOR: Estudiantes de Octavo Electrnica A

FIGURA 12: Simulacin convertidor NBCD a siete segmentos


AUTOR: Estudiantes de Octavo Electrnica A

IV.

CDIGO:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity segm is

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016
Port ( N : in BIT_VECTOR (3 downto 0);
S : out BIT_VECTOR (6 downto 0));
end segm;
architecture Behavioral of segm is
begin
with N select
S <=

"1111110" when "0000", --0


"0110000" when "0001", --1
"1101101" when "0010", --2
"1111001" when "0011", --3
"0110011" when "0100", --4
"1011011" when "0101", --5
"0011111" when "0110", --6
"1110000" when "0111", --7
"1111111" when "1000", --8
"1110011" when "1001", --9
"0000000" when others; --n

end Behavioral;

Conclusiones.

Recomendaciones:

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

TEMA III: PROGRAMACION DE UN DECTECTOR DE NUMEROS PARES DE 4 BITS


EN VHDL UTILIZANDO LA SENTENCIA WHEN SELECT.
I.

OBJETIVOS:
Objetivo General:
Generar un programar que permita detectar nmeros pares de 4 bits.
Objetivos Especficos:
Crear una programacin que permita detectar nmeros pares de 4 bits mediante la
utilizacin de ISE de XILINX
Implementar un detector de nmeros pares de 4 bits utilizando la sentencia de
asignacin WHEN SELECT en VHDL.

II.

MARCO TERICO:
VHDL

VHDL es un lenguaje concurrente, como consecuencia no se seguir el orden en que estn


escritas las instrucciones a la hora de ejecutar el cdigo. De hecho, si hay dos instrucciones, no
tiene por qu ejecutarse una antes que otra, pueden ejecutarse a la vez.
Sentencias Concurrentes
La instruccin bsica de la ejecucin concurrente es la asignacin entre seales a travs del
smbolo <=. Para facilitar la asignacin de las seales VHDL incluye elementos de alto nivel
como son instrucciones condicionales, de seleccin. Etc. [1]
III.

DESCRIPCIN:

Diseo de un detector de nmeros pares de 4 bits.


El siguiente programa permitir detectar de nmeros pares de cuatro bits, si estos nmeros son
representados en mas bits se genera una sentencia que haga que la salida sea 0, esto se realiza
mediante la programacin en ISE de XILINX en la cual se declara un vector de 4 bits y una
salida del detector; para lo cual que utiliz la sentencia WHEN SELECT.

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

FIGURA 13: Esquemas RTL y Tecnolgico


AUTOR: Estudiantes de Octavo Electrnica A

FIGURA 14: Simulacin Detector de numeros pares de 4 bits


AUTOR: Estudiantes de Octavo Electrnica A

IV.

CDIGO:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity numerospars is
port(

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F . I . S . E E. INDUSTRIAL
I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016
x: in std_logic_vector (3 downto 0); -----declaracion de la variable de entrada (4 BITS)
s: out std_logic
(CERO O UNO)

----- SALIDA DEL DETECTOR AL DECTECTAR EL # PAR

);
end numerospars;
architecture Behavioral of numerospars is
begin
with x select

------SENTENCIA WHIT__SELECT

s <= '1' when "0010",---NUMERO PAR 2


'1' when "0100",---NUMERO PAR 4
'1' when "0110",---NUMERO PAR 6
'1' when "1000",---NUMERO PAR 8
'1' when "1010",---NUMERO PAR 10
'1' when "1100",---NUMERO PAR 12
'1' when "1110",---NUMERO PAR 16
'0' when others;
end Behavioral;
Conclusiones.

Recomendaciones:

Bibliografa:
[1] Universidad de Cantabria. Introduccin al
http://www.sc.ehu.es/acwarila/LDD/Teoria/VHDL.pdf

Lenguaje VHDL.

2008. Disponible

en:

[2] Universidad Nacional de Colombia. Captulo 3: Circuitos Lgicos Combinatorios. Electrnica


Digital. Disponible en: http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/030601.htm