Upload
raul-arturo-samaniego-tello
View
256
Download
0
Embed Size (px)
Citation preview
7/28/2019 Informe Mux
1/22
SISTEMAS DIGITALES II
UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE INGENIERIA
ESCUELA DE ELECTRONICA Y TELECOMUNICACIONES
INFORME DE SISTEMAS DIGITALES II
Tema: Mux, Demux, Decos en Xilinx
Nombres:
Maria Jose Inca
Karina Escudero
Raul Samaniego
Klever Allauca
OBJETIVOS:
Aprender la forma de programacin de cada uno de los elementos.
Implementar los multiplexores y decodificadores en el CMod C2
MATERIALES
Software Xilinx
Computador
Cables de conexin
Marco Terico.
El sistema CAE de Xilinx es una herramienta de desarrollo que consiste en un conjunto
integrado de herramientas software y hardware para crear, simular e implementar diseos
digitales en una FPGA o CPLD. Todas las herramientas usan una interfaz de usuario grfica
que permite usar todos los programas desde iconos, mens o barras de herramientas.
Tambin se dispone de ayuda en lnea desde la mayora de ventanas.
MULTIPLEXORES
Un multiplexor digital es un circuito con 2n lneas de entrada de datos y una lnea de salida;tambin debe tener una manera de determinar la lnea de entrada de datos especfica que se va
a seleccionar en cualquier momento. Esto se efecta con otras n lneas de entrada, denominadas
entradas de seleccin, cuya funcin es elegir una de las 2n entradas de datos para la conexin
con la salida.
Multiplexores (Selectores)
Existen dos tipos bsicos de Multiplexores:
7/28/2019 Informe Mux
2/22
SISTEMAS DIGITALES II
De varias entradas a una salida, llamados de selectores de 2n a 1, o simplemente MUX (del ingls
multiplexer) de 2n a 1.
De una entrada a varias salidas, llamados selectores de 1 a 2n o simplemente DEMUX (del ingls
demultiplexer) de 2n a 1.
El multiplexor 4 a 1 tiene seis entradas y una salida. Una tabla de verdad que describa el circuito
necesitar 64 renglones, esta es una tabla excesivamente larga y no es prctica.
Una manera ms prctica de describir el funcionamiento es por medio de una tabla de funcin.
DECODICADORES
Las cantidades discretas de informacin se representan en sistemas digitales con cdigos
binarios (ejemplo: BCD, EXCESO 3, 84-2-1, 2421, etc.). Un cdigo binario de n bits es capaz de
representar hasta 2n elementos distintos de informacin codificada.
Un decodificador es un circuito combinatorio que convierte informacin binaria de n lneas de
entrada a un mximo de 2n lneas nicas de salida o menos. Estos decodificadores son
denominados decodificadores n-a-m lneas, donde m 2n.
Estos dispositivos normalmente cuentan con una entrada habilitadora. Cuando esta entrada vale0, todas las salidas del codificador son 0. Cuando la entrada habilitadora vale 1, la salida
correspondiente al mini trmino formado por la combinacin presente en las n entradas tomar
el valor 1 y las dems tomarn el valor 0.
7/28/2019 Informe Mux
3/22
SISTEMAS DIGITALES II
De forma semejante a como se define el decodificador 2x4, pueden definirse decodificadores de
3x8, 4x16, 5x32 y en forma general de nx2n.
La principal utilizacin de este dispositivo es cuando se tiene N alternativas que se pueden
seleccionar, pero se desea seleccionar solamente una de ella.
Tambin puede ser usado para construir funciones lgicas
CODIFICADORES
Un codificador es un circuito digital que ejecuta la operacin inversa de un decodificador. Un
codificador tiene 2n (o menos) lneas de entrada y n lneas de salida. Las lneas de salida generan
un cdigo binario correspondiente al valor de entrada binario.
Ver codificador de octal a binario
7/28/2019 Informe Mux
4/22
SISTEMAS DIGITALES II
El codificador puede implantarse con compuertas OR cuyas entradas se determinan directamente
de la tabla de verdad. Por ejemplo, la salida es A0 ser igual a 1 si el digito octal de entrada es 1 o
3 o 5 o 7.
Las funciones de este codificador son las siguientes:
A0 = D1+D3+D5+D7
A1 = D2+D3+D6+D7
A3 = D4+D5+D6+D7
APLICACIONES DEL DECODIFICADOR
Su funcin principal es la de direccionar espacios de memoria. Un decodificador de N entradas
puede direccionar 2N espacios de memoria.
Para poder direccionar 1kb de memoria necesitara 10 bits, ya que la cantidad de salidas seria 210,
igual a 1024.
De esta manera:
Con 20 bits tengo 220 que es 1Mb.
Con 30 bits tengo 230 que es 1Gb.
1. GRFICOS
2. PROCEDIMIENTO
Problema 1. Completar el circuito MUX 4:1 en dibujar los cables que faltan.
7/28/2019 Informe Mux
5/22
SISTEMAS DIGITALES II
CODIGO EN VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity multiplexer4_1 is
port (i0 : in std_logic;
i1 : in std_logic;
i2 : in std_logic;
i3 : in std_logic;
sel : in std_logic_vector(1 downto 0);
bitout : out std_logic
);
end multiplexer4_1;
architecture Behavioral of multiplexer4_1 is
begin
process(i0,i1,i2,i3,sel)
begin
case sel is
when "00" => bitout bitout bitout
7/28/2019 Informe Mux
6/22
SISTEMAS DIGITALES II
when others => bitout
7/28/2019 Informe Mux
7/22
SISTEMAS DIGITALES II
if enable='1' then d d d d d
7/28/2019 Informe Mux
8/22
SISTEMAS DIGITALES II
Problema 5: Compite un esquema del circuito para mostrar cmo F = m (0, 2, 4, 5, 6) puede ser
implementado utilizando el mux mostrado. (Sugerencia: preparar una ingresado variable K-map).
I0
I1
I2
I3
S1S0
Y
Problema 6. Completar el esquema decodificador 03:08 a la derecha por dibujar los cables quefaltan.
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
S2 S1 S0
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
S2
S1
S0
3:8 Decoder
Symbol 3:8 Decoder Circuit
CODIGO EN VHDL
--libraries to be used are specified here
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
--entity declaration with port definitions
entity decoder is
port( input : in std_logic_vector(2 downto 0);
output : out std_logic_vector(7 downto 0)
);
end decoder;
--architecture of entity
architecture Behavioral of decoder is
begin
output(0)
7/28/2019 Informe Mux
9/22
SISTEMAS DIGITALES II
output(3)
7/28/2019 Informe Mux
10/22
SISTEMAS DIGITALES II
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
S0
S1
S2
Problema 10. Completa la tabla de verdad. La tabla muestra los nueve dgitos decimales, sus
equivalentes binarios, y siete columnas etiquetadas AG. Las columnas etiquetadas AG se pueden
utilizar para grabar cuando un segmento debe estar iluminado para mostrar un dgito
determinado. Por ejemplo, en la primera fila correspondiente al dgito '0 ', los segmentos A, B, C,
D, E, y F se deben iluminar, por lo que un '1' debe ser colocado en esas columnas. Cuando se haya
completado, la tabla puede servir como una tabla de verdad para el controlador de siete
segmentos - que muestra la relacin lgica requerida entre las cuatro entradas y siete salidas.
Tenga en cuenta que en la tabla de verdad, los ltimos seis patrones de entrada (1010 a 1111) noestn asociados con un dgito decimal. Por tanto, son las entradas "ilegales", lo que los resultados
pueden recibir un "no me importa" para las filas.
Digit Inputs
4-bit numbers
Outputs
Segment-drive functions
B3 B2 B1 B0 A B C D E F G
0 0 0 0 0 1 0 0 0 0 0 0
1 0 0 0 1 1 1 1 1 0 0 1
2 0 0 1 0 0 1 0 0 1 0 0
3 0 0 1 1 0 1 1 0 0 0 0
4 0 1 0 0 0 0 1 1 0 0 1
5 0 1 0 1 0 0 1 0 0 1 0
6 0 1 1 0 0 0 0 0 0 1 0
7 0 1 1 1 1 1 1 1 0 0 0
8 1 0 0 0 0 0 0 0 0 0 0
9 1 0 0 1 0 0 1 0 0 0 0
A 1 0 1 0 0 0 0 1 0 0 0
b 1 0 1 1 0 0 0 0 0 1 1
C 1 1 0 0 1 0 0 0 1 1 0
d 1 1 0 1 0 1 0 0 0 0 1
E 1 1 1 0 0 0 0 0 1 1 0
7/28/2019 Informe Mux
11/22
SISTEMAS DIGITALES II
F 1 1 1 1 0 0 0 1 1 1 0
Problema 12. Completa la tabla de verdad de un codificador de prioridad de tres entradas. Al
completar la tabla de verdad, tenga en cuenta que si I3 es un '1 ', no importa lo que I2, I1, I0 o son
- la salida codificada ser "11". Esta informacin puede dar lugar a que no le importa en la tabla de
verdad, lo que hace que el diseo mucho ms fcil (tenga en cuenta que X se han utilizado en la
tabla de verdad para indicar que no se preocupan por las condiciones de entrada). Cuando la tabla
de verdad se ha completado, escribir ecuaciones VHDL para definir los circuitos de codificador.
EIN I3 I2 I1 I0 GS Y1 Y0 EOUT
0 X X X X 0 0 0 0
1 1 X X X 1 0 0 1
1 0 1 X X 0 1 1 1
1 0 0 1 X 0 1 0 1
7/28/2019 Informe Mux
12/22
SISTEMAS DIGITALES II
CODIGO EN VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity prio_encoder is
port(
r
: in STD_LOGIC_VECTOR(4 downto 1);
pcode
: out STD_LOGIC_VECTOR(2 downto 0)
);
end prio_encoder;
architecture arq_when of prio_encoder is
begin
pcode
7/28/2019 Informe Mux
13/22
SISTEMAS DIGITALES II
Problema 14. Completa la tabla de abajo para mostrar los resultados numricos de la aplicacin
de la operacin indicada con las caractersticas indicadas. Opcodes son nmeros de seis bits
definidos como se muestra a continuacin. R = 1 para rotar, D = 1 para la derecha; F es llenado y
A2-A0 define el nmero de bits. Mostrar todo el trabajo para ser elegible para el crdito parcial.
R D F A2 A1 A0
Input(Base10) Input(Base2/8-bit) Op Code Output(Base10) Output(Base2/8-bit))
47 00101111 000011 188 01111000
96 01100000 110111
16 00010000 011001
111 01101111 100011
63 00111111 001111
188 10111100 110001
Problema 15. Modifique slo dos caracteres en el siguiente cdigo para aadir un pedacito derelleno.
7/28/2019 Informe Mux
14/22
SISTEMAS DIGITALES II
entity my_shift is
port (din: in std_logic_vector(7 downto 0);
r, d, f, en: in std_logic;
dout: out std_logic_vector(7 downto 0));
end my_shift;
architecture my_shift_arch ofmy_shift is
begin
dout
7/28/2019 Informe Mux
15/22
SISTEMAS DIGITALES II
Podramos decir que al realizar las conexiones hacia el PLD Cmod- C2 tenemos que conocer de
forma clara el datasheet de nuestro dispositivo ya que esta puede ser una de las razones que no
funcione nuestro circuito de forma correcta.
Tenemos que copilar y ver que el circuito en el programa funcione de forma correcta,
especficamente la simulacin, ya que si no copilamos bien el circuito no puede funcionar.
Debemos asignar de forma correcta los pines de nuestro PLD C Mod-C2 en el software xilinx.
4. CONCLUSIONES
Aprendimos a reconocer y programar en el software XILIXNX de forma adecuada siguiendo todos
los pasos necesarios para un correcto funcionamiento del simulado y al grabar en el PLD C Mod C2
no tengamos problemas.
Comprendimos para que sirve el TEST BENCH as como su nombre lo dice el banco de pruebas, en
donde programamos nuestros tiempos para poder simular en nuestro software xilinx ISE.
Adems grabamos de forma correcta la asignacin de pines y conocimos la forma correcta dequemar nuestro programa en el PLD C-Mod C2 .
5. BIBLIOGRAFIA
http://vhdlguru.blogspot.com/2010/03/how-to-write-testbench.html
ece.wpi.edu/~rjduck/Xilinx VHDL Test Bench Tutorial_2.0.pdf
http://www.digilentinc.com/Products/Detail.cfm?Prod=CMOD
6.
PROBLEMA 1_____________________________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--USE ieee.numeric_std.ALL;
ENTITY mux_tb IS
END mux_tb;
ARCHITECTURE behavior OF mux_tb IS
-- Component Declaration for the Unit Under Test (UUT)
http://vhdlguru.blogspot.com/2010/03/how-to-write-testbench.htmlhttp://www.digilentinc.com/Products/Detail.cfm?Prod=CMODhttp://www.digilentinc.com/Products/Detail.cfm?Prod=CMODhttp://vhdlguru.blogspot.com/2010/03/how-to-write-testbench.html7/28/2019 Informe Mux
16/22
SISTEMAS DIGITALES II
COMPONENT mux
PORT(
a : IN std_logic_vector(3 downto 0);
b : IN std_logic_vector(3 downto 0);
c : IN std_logic_vector(3 downto 0);
sel : IN std_logic_vector(1 downto 0);
salida : OUT std_logic_vector(3 downto 0)
);
END COMPONENT;
--Inputs
signal a : std_logic_vector(3 downto 0) := (others => '0');
signal b : std_logic_vector(3 downto 0) := (others => '0');
signal c : std_logic_vector(3 downto 0) := (others => '0');
signal sel : std_logic_vector(1 downto 0) := (others => '0');
--Outputs
signal salida : std_logic_vector(3 downto 0);
-- No clocks detected in port list. Replace below with
-- appropriate port name
constant _period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: mux PORT MAP (
a => a,
b => b,
c => c,
sel => sel,
salida => salida
);
-- Clock process definitions
_process :process
7/28/2019 Informe Mux
17/22
SISTEMAS DIGITALES II
begin
7/28/2019 Informe Mux
18/22
SISTEMAS DIGITALES II
port ( H : in std_logic;
S : in std_logic_vector(2 downto 0);
D : out std_logic_vector(7 downto 0));
end decodificador_3_a_8;
architecture estructural_1 of decodificador_3_a_8 is
begin
process(S,H)
begin
case s is
when "000" =>
if H ='1' then
D
7/28/2019 Informe Mux
19/22
SISTEMAS DIGITALES II
else
D
if H ='1' then
D
7/28/2019 Informe Mux
20/22
SISTEMAS DIGITALES II
end process;
end estructural_1;
PROBLEMA 6 ----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 10:02:04 04/02/2013
-- Design Name:
-- Module Name: p6 - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;
7/28/2019 Informe Mux
21/22
SISTEMAS DIGITALES II
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity p6 is
Port ( A : in STD_LOGIC_vector(2 downto 0);
Y : out STD_LOGIC_vector(7 downto 0));
end p6;
architecture Behavioral of p6 is
begin
with A select
Y
7/28/2019 Informe Mux
22/22
SISTEMAS DIGITALES II
Conclusiones:
1.-Es mejor utilizar el banco pe pruebas para no tener errores al momento de quemar el pld.
Bibliografa
http://www.digilentinc.com/Products/Detail.cfm?Prod=CMOD
http://es.wikipedia.org/wiki/PLD
http://www.digilentinc.com
http://www.digilentinc.com/Products/Detail.cfm?Prod=CMODhttp://www.digilentinc.com/Products/Detail.cfm?Prod=CMODhttp://es.wikipedia.org/wiki/PLDhttp://es.wikipedia.org/wiki/PLDhttp://www.digilentinc.com/http://www.digilentinc.com/http://www.digilentinc.com/http://es.wikipedia.org/wiki/PLDhttp://www.digilentinc.com/Products/Detail.cfm?Prod=CMOD