Multiplexores y Demultiplexores

42
1 Instituto Tecnológico Superior de Teziutlán PRÁCTICAS DE MECATRONICA CÓDIGO 3 D A C ELT N° PRÁCTICA ÁREA DE CONOCIMIENTO LABORATORIO DE ELECTRÓNICA NOMBRE DE LA PRÁCTICA: Multiplexores y Demultiplexores Parte 1: Material para el alumno Objetivos de aprendizaje Realizar la implementación física en una CPLD con VHDL de circuitos que funcionen con Multiplexores y demultiplexores. Actividad(es) de aprendizaje Usar Quartus II para elaborar funciones booleanas y programar un CPLD para que el estudiante evalué funciones booleanas definidas en formas canónicas y no estándar. Materias relacionadas Ninguna PR-MEC-ELT-LE

description

excelente

Transcript of Multiplexores y Demultiplexores

Page 1: Multiplexores y Demultiplexores

1Instituto Tecnológico Superior de Teziutlán

PRÁCTICAS DE MECATRONICA

CÓDIGO

3 D A C ELT

N° PRÁCTICAÁREA DE

CONOCIMIENTO

LABORATORIO

DE

ELECTRÓNICA

NOMBRE DE LA PRÁCTICA:

Multiplexores y Demultiplexores

Parte 1: Material para el alumno

Objetivos de aprendizaje

Realizar la implementación física en una CPLD con VHDL de circuitos que

funcionen con Multiplexores y demultiplexores.

Actividad(es) de aprendizaje

Usar Quartus II para elaborar funciones booleanas y programar un CPLD para que

el estudiante evalué funciones booleanas definidas en formas canónicas y no

estándar.

Materias relacionadas

Ninguna

PR-MEC-ELT-LE

Page 2: Multiplexores y Demultiplexores

2Instituto Tecnológico Superior de Teziutlán

PARTES Y EQUIPO REQUERIDO

DESCRIPCIÓN No. DE PARTE

Equipo de cómputo con puertos USB. Software con IDE Quartus II Altera Programador USB Blaster Led (1) Resistencias de 10k (7) Resitencia de 100 (1) Botones pulsadores (7) Tarjeta con CPLD Altera

PRECAUCIONES Y MEDIDAS DE SEGURIDAD

El responsable debe asegurar que ninguna persona no autorizada trabaje

con o en el equipo. Nunca deje objetos extraños en el área de trabajo (cables, pinzas,

desarmadores, etc.). Solo utilice el material adecuado para la operación que valla a realizar. Maneje con cuidado herramientas y piezas con bordes afilados para evitar

heridas. No use ropa suelta durante la realización de la práctica. Si tiene algún problema con el funcionamiento del equipo o herramienta que

utiliza, pida ayuda a su docente o al encargado del laboratorio. Reporte cualquier anomalía a su docente o al encargado del laboratorio.

PR-MEC-ELT-LE

ELABORÓ: REVISÓ: AUTORIZÓ:

M.S.C. MIGUEL MONTIEL

MARTÍNEZ

ACADEMIA DE INGENIERÍA

MECATRÓNICA

JEFE DE CARRERA

INGENIERÍA MECATRÓNICA

NOMBRE Y FIRMA NOMBRE Y FIRMA NOMBRE Y FIRMA

FECHA FECHA FECHA

Page 3: Multiplexores y Demultiplexores

3Instituto Tecnológico Superior de Teziutlán

Índice de contenido

Introducción................................................................................................................4

Antecedentes.............................................................................................................5

Arquitectura.....................................................................................................5

Bloques lógicos............................................................................................5

Matriz de términos producto y su distribución.............................................5

Macroceldas..................................................................................................6

Multiplexores.................................................................................................7

Síntesis de funciones lógicas mediante multiplexores..................................9

Síntesis de multiplexores mediante la Expansión de Shannon...................10

Demultiplexores..........................................................................................12

TestBench probando los diseños en VHDL..................................................13

Modelado Estructural con VHDL..................................................................18

Desarrollo.................................................................................................................22

Creación de un proyecto en Quartus II...........................................................22

Asignación de señales concurrentes...........................................................23

Simulación con UMHDL...............................................................................25

Compilación del Proyecto en Quartus II......................................................29

Compilando el circuito...................................................................................31

Programación del dispositivo......................................................................31

Asignación de Señal Seleccionada..............................................................33

Implementación de Multiplexor por medio de sentencia CASE y PROCESS.34

Trabajando funciones con Multiplexores modelado Estructural...................36

BIBLIOGRAFIA...........................................................................................................41

PR-MEC-ELT-LE

Page 4: Multiplexores y Demultiplexores

4Instituto Tecnológico Superior de Teziutlán

IntroducciónLos CPLD extienden el concepto de un PLD (del acrónimo inglés

Programmable Logic Device) a un mayor nivel de integración ya que

permite implementar sistemas más eficaces, ya que utilizan menor

espacio, mejoran la fiabilidad del diseño, y reducen costos. Un CPLD se

forma con múltiples bloques lógicos, cada uno similar a un PLD. Los

bloques lógicos se comunican entre sí utilizando una matriz programable

de interconexiones, lo cual hace más eficiente el uso del silicio,

conduciendo a una mejor eficiencia a menor costo. A continuación se

explican brevemente las principales características de la arquitectura de

un CPLD.

PR-MEC-ELT-LE

Page 5: Multiplexores y Demultiplexores

5Instituto Tecnológico Superior de Teziutlán

AntecedentesEstas estructuras extienden el concepto de de PLD a un nivel de integraciónsuperior; esto es, se dispone de mayor número de puertas y deentradas/salidas en un circuito programable (con lo que se disminuye eltamaño del diseño, el consumo y el precio). En vez de hacer estos circuitos conmayor número de términos producto por macrocelda, o de mayor número deentradas/salidas, cada CPLD contiene bloques lógicos, cada uno de ellos similara una estructura PAL o GAL. Estos bloques lógicos se comunican entre sí pormedio de interconexiones programables, con lo que se optimizan los recursosincorporados en el chip. Interconexiones programables.(Dueck, 2011)

Las interconexiones programables, conducen las señales de los dispositivos deentrada/salida (I/O) hacia los bloques lógicos. Cada uno de estos bloques tiene unnúmero predeterminado de entradas.

La mayoría de Ias CPLDs utilizan una de las siguientes estrategias para laimplementación de la interconexión programable:

• Interconexión basada en estructura matricial.

• Interconexión basada en multiplexores.

Arquitectura

Bloques lógicos

Un bloque lógico equivale a una pequeña estructura PAL: Dispone de una matrizque implementa términos producto y macroceldas. Las celdas de I/O son a vecesconsideradas parte de un bloque lógico. El tamaño de un bloque lógico es unamedida de su capacidad (cuanta lógica se puede implementar) y se expresa,habitualmente en términos del número de macroceldas, el número de entradas y elnúmero de términos producto, así de cómo su distribución.

Matriz de términos producto y su distribución

Además del tamaño de la matriz (importante par identificar el número de términosproducto promedio por macrocleda), es interesante conocer la distribución pormacroceldas.

La familia MAX3 está organizada de forma que cada macrocelda tiene cuatrotérminos producto fijos por macrocelda. Además dispone de una serie de términos

PR-MEC-ELT-LE

Page 6: Multiplexores y Demultiplexores

6Instituto Tecnológico Superior de Teziutlán

producto (expander product terms) que se pueden asociar a una o variasmacroceldas. Si este término se utiliza por una única macrocelda se denomina"product-term steering", mientras que si se puede utilizar por varias a la vez sedenomina "product-term sharing". Versiones más evolucionadas de este conceptose encuentran en las familias MACH de Advanced Micro Devices o en la familia7000 de Altera

Macroceldas

Como en las PLD más sencillas; las CPLD incluyen macroceldas en las que sedispone de biestables y señales de control de polaridad4. Además se aumentala flexibilidad de las mismas. Por ejemplo muchas CPLDs ofrecen la posibilidadde configurar los biestables como tipo D o T, para mejorar el proceso deimplementación. Además los CPLDs suelen disponer de macroceldas de I/O(esto es, asociada con una entrada/salida) y macroceldas con salidas sólo a lamatriz programable (buried macrocell).

Veamos algunos ejemplos. La familia MAX340 dispone de una macrocelda conun alto grado de configurabilidad. La suma de términos producto sirve comoentrada de una puerta o-exclusiva, mientras que la otra entrada es un únicotérmino producto5. De esta forma se puede configurar la polaridad de la salida.También se puede seleccionar la señal de reloj de la macrocelda, o configurarel biestable como T, JK o RS. La salida de la macrocelda también se puedeconfigurar como puramente combinacional o a través de un biestable.

Esta salida puede ser realimentada a la matriz programable, tanto a nivellocal6 como a nivel global.

La familia MAX340 dispone de macroceldas ocultas (buried7); esto es, que noestán disponibles en las entradas/salidas. Son idénticas a las asociadas a lasI/O excepto que sus salidas sólo se utilizan para la realimentación de la matrizprogramable.

Un ejemplo de CPLD en las que las macroceldas internas son distintas a lasasociadas a las líneas de I/O lo encontramos en la familia Flash370.

Otras macroceldas con una función especializada son las macroceldas deentrada, que son utilizadas para dotar al dispositivo de unas líneas adicionalesde entrada, que pueden tener funciones tales como señales de reloj, entradas

PR-MEC-ELT-LE

Page 7: Multiplexores y Demultiplexores

7Instituto Tecnológico Superior de Teziutlán

de la matriz programable, etc. (Jara & Maxinez, 2003; Morillo, 2006;pyroelectro, 2011)

MultiplexoresUn circuito multiplexor tiene varias entradas de datos, una o más entradas de selección y una salida. Pasa el valor de señal de una de las entradas de datos ala salida. La entrada de datos se elige mediante los valores de las entradas de selección.(Brown, 2006)

En la Ilustración 1 se muestra un multiplexor dos a uno. En el inciso a) sepresenta el símbolo que suele usarse para representar un multiplexor. La entradaselect t (selección), s, elige como salida del multiplexor cualquiera de las entradasw0 o w1 . La funcionalidad del multiplexor queda descrita con una tabla de verdad,como se muestra en el inciso b) de la figura. En el inciso c) se presenta unaimplementación en suma de productos del multiplexor dos a uno, y en el inciso dd) se ilustra cómo construirlo con compuertas de transmisión.

En la Ilustración 2 se describe un multiplexor más grande con cuatro entradas dedatos, w0 , . . ., w3 , y dos entradas de selección, s1 y s0 . Como se muestra en latabla de verdad del inciso b) de la figura, los números de dos bits representadospor s1 s0 escogen una de las entradas de datos como la salida del multiplexor. En el

PR-MEC-ELT-LE

Ilustración 1: Mux 2 a 1

Page 8: Multiplexores y Demultiplexores

8Instituto Tecnológico Superior de Teziutlán

inciso c) aparece una implementación en suma de productos de un multiplexorcuatro a uno.

Esa implementación realiza la función multiplexora:

f=s̄1 s̄0w0+ s̄1 s0w1+s1 s̄0w2+s1 s0w 3

Es posible construir multiplexores mas grandes a partir de multiplexores maspequeños; de modo general el numero de entrada de datos n, es una potenciaentera de dos, Un multiplexor con n entradas de datos w0, ...wn-1 requiere (log2 n)entradas de selección.

PR-MEC-ELT-LE

Ilustración 2: Mux 4 a 1

Page 9: Multiplexores y Demultiplexores

9Instituto Tecnológico Superior de Teziutlán

Síntesis de funciones lógicas mediante multiplexoresLos multiplexores pueden usarse de una forma mas general para sintetizarfunciones lógicas Considérese por ejemplo la Ilustración 4, donde la tabla de

verdad define la función f=w1⊕w2 la cual puede implementarse por medio de

un multiplexor de 4 a 1 en el que los valores de f de cada fi la de la tabla de verdadse conectan como constantes a las entradas de datos del multiplexor. Las entradasde selección del multiplexor son manejadas por w1 y w2. Por lo tanto, paracombinación de w1w2 , la salida f es igual al valor de la función en la filacorrespondiente de la tabla de verdad.

La anterior es una implementación directa, sin embargo no es la mas adecuada.Una mejor forma, puede derivarse al manipular la tabla de verdad como se indicaen el inciso b), lo cual permite que f se implemente con solo un multiplexor de 2 auno. Una de las señales de entrada se elije como entrada de selección delmultiplexor. La tabla de verdad se dibuja de nuevo para indicar el valor de f paracada valor de w1 (entrada). Esto lleva a que f tendrá el valor de w2 si w1 = 0, y ftendrá el valor de ~w2 si w1 = 0.

PR-MEC-ELT-LE

Ilustración 3: Mux 4 a 1 a partir de mux 2 a 1

Page 10: Multiplexores y Demultiplexores

10Instituto Tecnológico Superior de Teziutlán

Síntesis de multiplexores mediante la Expansión de ShannonLas implementaciones de funciones lógicas con multiplexores requieren que una función se descomponga en términos de las variables empleadas como entradas de selección. Esto se logra mediante un teorema propuesto por Claude Shannon. Elcual menciona que toda expresión booleana f(w1, w2, … , wn) puede escribirse en laforma:

f (w1,w2, ... ,wn)=w̄1⋅f (0,w2, ...,wn)+w1⋅f (1,w2, ... ,wn)

Esta expansión puede efectuarse en términos de cualquiera de las n variables.

PR-MEC-ELT-LE

Ilustración 4: Función implementada con Multiplexor

Page 11: Multiplexores y Demultiplexores

11Instituto Tecnológico Superior de Teziutlán

Por ejemplo, sea f (w1 ,w2 ,w3)=w1w2+w1w3+w2w3 de la cual al aplicar la

expansión de Shannon, se obtiene lo siguiente:

f (w1 ,w2 ,w3)=w̄1(0⋅w2+0⋅w3+w2w3)+w1(1⋅w2+1⋅w3+w2w3)f (w1,w2, w3)=w̄1(w2⋅w3)+w1(w2+w3+w2w3)f (w1 ,w2,w3)=w̄1(w2⋅w3)+w1(w2+w3⋅1+w2⋅w3)

factorizandow3f (w1 ,w2 ,w3)=w̄1(w2⋅w3)+w1(w2+w3⋅(1+w2))f (w1,w2,w3)=w̄1(w2⋅w3)+w1(w2+w3⋅(1))f (w1,w2,w3)=w̄1(w2⋅w3)+w1(w2+w3)

El circuito se muestra en la Ilustración 5

PR-MEC-ELT-LE

Ilustración 5: Implementación de función booleana con Teorema de expansión de Shannon

Page 12: Multiplexores y Demultiplexores

12Instituto Tecnológico Superior de Teziutlán

DemultiplexoresEl propósito del circuito multiplexor es multiplexar r las n entradas de datos en la salida de datos bajo el control de las entradas de selección. Un circuito que realiza la función opuesta, es decir, que coloca el valor de una sola entrada de datos en varias salidas, se llama demultiplexor.

Un demultiplexor puede implementarse con un circuito decodificador. Por ejemplo, un decodificador de 2 a 4 de la Ilustración 6 puede usarse como un demultiplexor uno a cuatro.

En este caso la entrada EN, funciona como la entrada de datos del demultiplexor ylas salidas y0 , … , y3 funcionan como la salida de los datos. Las combinaciones delas entradas w1w0 definen cual de las salidas se establecerá al valor de EN.

En general, un circuito decodificador de n a 2n puede usarse como undemultiplexor uno a n, pero en la practica un decodificador no se usa como demux.

PR-MEC-ELT-LE

Ilustración 6: Decodificador 2 a 4

Page 13: Multiplexores y Demultiplexores

13Instituto Tecnológico Superior de Teziutlán

TestBench probando los diseños en VHDLUna vez que se tiene un diseño en VHDL, no sabemos a ciencia cierta elfuncionamiento del mismo. Para comprobarlo, se realiza la elaboración de unarchivo de prueba denominado TestBench.

Con VHDL, no solo es posible modelar el hardware, sino además, generar unasecuencia de estímulos, los cuales permitirán analizar los resultados.

TestBench para un multiplexor

La declaración de una entidad para un “banco de pruebas” (test bench) se declarageneralmente vacia, y eso es por que en sí, el test bench no tiene entradas osalidas. Los vectores de prueba se inyectan a través del Dispositivo Bajo Prueba.

Componentes

La declaración de un componente es necesaria, ya que tiene la finalidad de “jalar”la entidad mux4_1 en el banco de pruebas. Piense que la declaración delcomponente es como colocar el soquet de un circuito. (véase la Ilustración 7).

A fin de que el simulador VHDL pueda hacer “encajar” la entidad mux4_1 en elcomponente mux4_1, los nombres y los tipos de los puertos, deben coincidir entrela entidad y el componente.

PR-MEC-ELT-LE

Ilustración 7: Modelo de Testbench en VHDL

Page 14: Multiplexores y Demultiplexores

14Instituto Tecnológico Superior de Teziutlán

A continuación se coloca una plantilla para el testbench de nuestro simulador

Tabla 1 Plantilla para la elaboración de testbench sencillos

entity TEST_MUX4 isend;

library IEEE;use IEEE.STD_LOGIC_1164.all;

architecture BENCH of TEST_MUX4 is

component MUX4 ... end component;

-- signals

begin

-- signal assignments to create stimulus

M: MUX4 port map (...);

end BENCH;

Escribiendo un TestBench

Un testbench es un modelo que es usado para verificar un modelo de hardware, el cual tiene tres propósitos:

1. Generar estimulos para la simulación ( formas de onda).

2. Aplicar estos estímulos a la entidad bajo prueba y monitorear las respuestasde salida.

3. Comparar las respuestas de salida con los esperados.

Una forma típica de un testbench la cual controla a un dispositivo bajo prueba es lasiguientes

entity TEST_BENCH is

end;

architecture TB_BEHAVIOR of TEST_BENCH is

component ENTITY_UNDER_TEST

port(lista de puertos sus tipos y modelos);

end component;

Declaración de señales locales;

PR-MEC-ELT-LE

Page 15: Multiplexores y Demultiplexores

15Instituto Tecnológico Superior de Teziutlán

begin

Genera las formas de onda usando constructos de comportamiento;

Aplicar al DUT;

EUT: ENTITY_UNDER_TEST port map( asociaciones de los puertos);

Monitorear valores y comparar con los valores esperados;

end TB_BEHAVIOR;

La aplicación de un estímulo a la entidad bajo prueba se completa automáticamente en el instante en el que la entidad en el testbench.

Generación de formas de onda

Existen dos enfoques principales para la generación de estímulos:

1. Crear formas de onda y aplicar estimulos a determinados intervalos de tiempo.

2. Generar estímulos basados en el estado de la entidad, esto es, basados en las respuestas de salida de la entidad.

Patrón Repetitivo

Un patrón repetitivo consiste en un delay on-off constante, el cual puede ser creado usando una señal concurrente por asignación.

A <= not A after 20 ns; --Se asume que la señal es de tipo bit

Una señal de reloj con periodo on-off variable puede ser creado usando una sentencia proceso, por ejemplo:

– Señal D_CLK de tipo bit

PR-MEC-ELT-LE

Page 16: Multiplexores y Demultiplexores

16Instituto Tecnológico Superior de Teziutlán

process

constant OFF_PERIOD: TIME :=30 ns;

constant ON_PERIOD: TIME:= 20 ns;

begin

wait for OFF_PERIOD;

D_CLK <= '1';

wait for ON_PERIOD;

D_CLK <= '0';

end process;

Un problema con este tipo de enfoque, es que si la simulación no tiene manera de controlar el tiempo que dura la simulación, el proceso temrinará hasta que llegue al valor límite, ocasionando un gran desperdicio de tiempo. Una forma de evitar esto, es por medio de la instrucción ASSERT, lo cual ocasionara un error después de un tiempo específico. Por ejemplo:

assert(NOW <= 100 ns)

report “Simulación completada exitosamente”

severity ERROR;

PR-MEC-ELT-LE

Ilustración 8: Patrón repetitivo

Page 17: Multiplexores y Demultiplexores

17Instituto Tecnológico Superior de Teziutlán

Una forma alternativa de generar una señal de reloj con un periodo variable es usando una señal de asignación condicional:

D_CLK <= '1' after OFF_PERIOD when D_CLK = '0' else

'0' after ON_PERIOD;

Un conjunto secuencial de valores pueden ser generados por una señal usando múltiples formas de onda en una asignación de señal concurrente. Por ejemplo:

RESET <= '0','1' after 100ns, '0' after 180 ns, '1' after 210 ns;

Lo cual generará la siguiente forma de onda

La anterior forma de onda puede hacerse repetitiva al colocar la señal de asignación dentro de un proceso. El siguiente ejemplo de un reloj de doble fase muestra como se repite esta forma de onda

signal CLK1, CLK2: MVL :='0';

TWO_PHASE: process

begin

CLK1 <= 'U' after 5 ns, '1' after 10 ns, 'U' after 20 ns, '0' after 25 ns;

PR-MEC-ELT-LE

Page 18: Multiplexores y Demultiplexores

18Instituto Tecnológico Superior de Teziutlán

CLK2 <= 'U' after 10 ns, '1' after 20 ns, 'U' after 25 ns, '0' after 30 ns;

wait for 35 ns;

end process;

Modelado Estructural con VHDLEs necesaria la conformación de bloques dentro del diseño digital, una forma deconectar multiples módulos con la finalidad de elaborar una implementaciónjerárquica, es por medio de el modelado estructural, como ejemplo se tiene laimplementación del siguiente circuito generador de paridad de 9 bits (Bhasker,1999).

Nótese que se tiene un conjunto de 9 entradas, 8 compuertas xor de dos entradas,una compuerta inversora, siete señales intermedias y dos salidas, que son laparidad.

PR-MEC-ELT-LE

Ilustración 9: Reloj de dos fases

Ilustración 10: Generador de paridad de 9 bits

Page 19: Multiplexores y Demultiplexores

19Instituto Tecnológico Superior de Teziutlán

Cabe aclarar que se hace realmente necesaria la implementación de una señalmás, la cual se denominará h1.

Primero se crea el archivo vhdl que representa a la función xor de dos entradas

Tabla 2 Compuerta XOR de dos entradas

----------------------------------------------------------------------------------- Company : ITS Teziutlán Académia Ing. Mecatrónica-- Engineer: Miguel Montiel Mtz-- -- Create Date: 21/07/2015 01:00:21-- Project Name: xor2-- Module Name: xor2.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para unsigned

entity xor2 is port(

a,b : in bit;z : out bit

);end xor2;

architecture arq1 of xor2 isbegin z <= a xor b;end arq1;

Ahora se representa la función VHDL del inversor

Tabla 3 Compuerta Inversora

----------------------------------------------------------------------------------- Company : ITS Teziutlán Académia Ing. Mecatrónica-- Engineer: Miguel Montiel Mtz-- -- Create Date: 21/07/2015 01:03:25-- Project Name: inv2-- Module Name: inv2.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para unsigned

entity inv2 is port(a :in bit;z :out bit );end inv2;

PR-MEC-ELT-LE

Page 20: Multiplexores y Demultiplexores

20Instituto Tecnológico Superior de Teziutlán

architecture arq1 of inv2 isbeginz <= not a;end arq1;

Ahora se elabora la estructura del archivo VHDL del generador de paridad, paraello tengase en mente la Ilustración 10.

Tabla 4 Generador de Paridad de 9 bits

----------------------------------------------------------------------------------- Company : ITS Teziutlán-- Engineer: Miguel Montiel Mtz-- -- Create Date: 21/07/2015 00:59:17-- Project Name: Estructura1-- Module Name: Estructura1.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para unsigned

entity Estructura1 is port( d : in bit_vector (8 downto 0);par : out bit;impar: out bit);end Estructura1;

architecture arq1 of Estructura1 is--declaracion de los componentescomponent xor2

port (a,b: in bit; z: out bit);end component;

component inv2port(a: in bit; z: out bit);

end component;

-- señales que conectan a las diferentes compuertassignal e0,e1,e2,e3,f0,f1,h0,h1: bit;begin

XE0: xor2 port map(d(0), d(1), e0);XE1: xor2 port map(d(2), d(3), e1);XE2: xor2 port map(d(4), d(5), e2);XE3: xor2 port map(d(6), d(7), e3);XF0: xor2 port map(e0, e1, f0);XF1: xor2 port map(e2, e3, f1);XH0: xor2 port map(f0, f1, h0);Xpar: xor2 port map(h0, d(8), h1);Ximpar: inv2 port map(h1, impar);par <= h1;

end arq1;

Finalmente se desarrolla el banco de pruebas para esta nueva entidad creada

PR-MEC-ELT-LE

Page 21: Multiplexores y Demultiplexores

21Instituto Tecnológico Superior de Teziutlán

Tabla 5 Banco de Pruebas para generador de paridad

----------------------------------------------------------------------------------- Company : ITS Teziutlán Ing Mecatrónica-- Engineer: Miguel Montiel Mtz-- -- Create Date: 21/07/2015 00:59:17-- Project Name: Estructura1-- Module Name: Estructura1_tb.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para signed, unsigned

entity Estructura1_tb isend Estructura1_tb;

architecture Testbench of Estructura1_tb is

-- Component Declaration for the Unit Under Test (UUT) component Estructura1 port(d : in bit_vector (8 downto 0);par : out bit;impar: out bit ); end component;

--Señales de conexion al componentesignal d : bit_vector(8 downto 0);signal par,impar : bit;

begin

-- Instantiate the Unit Under Test (UUT) uut: Estructura1 port map (d,par, impar);

d(0) <= not d(0) after 1 ns; d(1) <= not d(1) after 2 ns; d(2) <= not d(2) after 4 ns; d(3) <= not d(3) after 8 ns; d(4) <= not d(4) after 16 ns; d(5) <= not d(5) after 32 ns; d(6) <= not d(6) after 64 ns; d(7) <= not d(7) after 128 ns; d(8) <= not d(8) after 256 ns;end Testbench;

Este banco de pruebas genera una secuencia de paridad par e impar, la cual a suvez es complementaria, y que al visualizarla con gtkwave, se mostrarán las señalesde entrada y su respectiva paridad. Véase la Ilustración 10.

Puede verse además que en la simulación en el panel SST la uut (unidad bajoprueba – unit under test) se encuentra compuesta por las señales internasdeclaradas en el archivo testbench.

PR-MEC-ELT-LE

Page 22: Multiplexores y Demultiplexores

22Instituto Tecnológico Superior de Teziutlán

DesarrolloCreación de un proyecto en Quartus II

1. Da clic en File → New Project Wizard y en la ventana que abre, da clic en siguiente

2. Elije una ruta para guardar tu proyecto, y dale un nombre al mismo, en este caso, se utiliza el nombre de Multiplexor. Presiona el botón FINISH

PR-MEC-ELT-LE

Ilustración 11: Salidas del generador de paridad de 9 bits

Page 23: Multiplexores y Demultiplexores

23Instituto Tecnológico Superior de Teziutlán

3. Al dar clic en la secuencia File → New, aparece una ventana como la que se muestra a continuación y presiona Finish.

4. Da clic en File → New y5. Del cuadro selecciona Desing Files → VHDL File

6. La acción anterior abrirá un panel, en el cual podrás escribir tu código enVHDL; la forma en que se puede esctructurar un multiplexor son múltiples. A continuación se mostrarán algunas de las formas en las que se puede construir un multiplexor en VHDL

Asignación de señales concurrentes7. Recuerde que la forma que tiene una señal concurrente es la siguiente:

__signal <= __expresión;8. Este formato permite la descripción de una función booleana que

describe al multiplexor 4 a 19. A continuación escribe el siguiente código fuente

PR-MEC-ELT-LE

Page 24: Multiplexores y Demultiplexores

24Instituto Tecnológico Superior de Teziutlán

Tabla 1 Multiplexor en formato concurrente

----------------------------------------------------------------------------------- Company : Instituto Tecnológico Superior de Teziutlan - Mecatrónica-- Engineer: Miguel Montiel Mtz-- -- Create Date: 13/07/2015 13:55:41-- Project Name: mux4_1-- Module Name: mux4_1.vhd-- Description:---- Additional Comments:----------------------------------------------------------------------------------- mux4.vhd-- Multiplexor 4 a 1-- Direcciona una de cuatro señales de entrada (d0 a d3) hacia la salida-- dependiendo del estado de los bits de selecci´on

ENTITY mux4_1 is port(d0,d1,d2,d3 : in bit;--s : in bit_vector (1 downto 0);

s0,s1 : in bit;y : out bit);END mux4_1;

architecture mux4to1 of mux4_1 isbegin-- Asignaci´on de señales concurrentesy<= ((not(s1)) and (not(s0)) and d0) or ((not(s1)) and s0 and d1) or (s1 and (not s0) and d2) or (s1 and s0 and d3); end mux4to1;

10.El multiplexor que se muestra a continuación tendrá las señales siguiente:

PR-MEC-ELT-LE

Page 25: Multiplexores y Demultiplexores

25Instituto Tecnológico Superior de Teziutlán

11.La respuesta esperada ante los estímulos que se muestran a continuación es la siguiente:

Simulación con UMHDL12. Abrir el programa UMHDL13.generar el testbench o banco de pruebas para el multiplexor (en la Tabla

2)

Tabla 2 Testbench para el multiplexor 4 a 1

----------------------------------------------------------------------------------- Company : ITS Teziutlan-- Engineer: Miguel Montiel Mtz-- -- Create Date: 13/07/2015 13:55:41

PR-MEC-ELT-LE

Page 26: Multiplexores y Demultiplexores

26Instituto Tecnológico Superior de Teziutlán

-- Project Name: mux4_1-- Module Name: mux4_1_tb.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

ENTITY mux4_1_tb isEND mux4_1_tb;

ARCHITECTURE muxtb OF mux4_1_tb is COMPONENT mux4_1

PORT(d0,d1,d2,d3 : in bit;--s : in bit_vector (1 downto 0);

s0,s1 : in bit;y : out bit);

END COMPONENT;

SIGNAL d0,d1,d2,d3: bit; SIGNAL s0,s1: bit; SIGNAL y: bit;

BEGIN u0: mux4_1 PORT MAP (d0,d1,d2,d3,s0,s1,y);

d0 <= '1' after 0 ns, '0' after 5 ns, '1' after 10 ns, '0' after 15 ns; d1 <= '1' after 0 ns, '0' after 10 ns, '1' after 20 ns, '0' after 30 ns; d2 <= '1' after 0 ns, '0' after 20 ns, '1' after 40 ns, '0' after 60 ns; d3 <= '1' after 0 ns, '0' after 40 ns, '1' after 80 ns, '0' after 90 ns;

s0 <= '0' after 0 ns, '1' after 1 ns, '0' after 2 ns, '1' after 4 ns; s1 <= '0' after 0 ns, '1' after 2 ns, '0' after 4 ns, '1' after 8 ns;END muxtb;

PR-MEC-ELT-LE

Page 27: Multiplexores y Demultiplexores

27Instituto Tecnológico Superior de Teziutlán

14.Los intervalos de tiempo para la simulación se definen en la instancia u0

15.Dado que por defecto la simulación del software genera un tiempo de 30000 us, el cual generaría un archivo .vcd muy grande, se reconfigura desde la opción Opciones … >> Configurar .. (véase la Ilustración 12)

16.En este caso, el tiempo de paro de la simulación es de 30 us indicado por medio del argumento adicional –stop-time = 30us

17.Dar clic en Compilar el proyecto actual del menú ejecución o en el icono del martillo

18.Verificar que no exista errores en la compilación, en caso de haberlas, revisa la pestaña errores.

PR-MEC-ELT-LE

Ilustración 12: Opciones para configurar UMDHL para GHDL

Page 28: Multiplexores y Demultiplexores

28Instituto Tecnológico Superior de Teziutlán

19.Dar clic en el ícono Compilar y simular el proyecto actual, el cual es una “engrane” de color verde.

20.Dar clic en el ícono Revisar las formas de onda resultantes...21.Este último paso abre el programa GTKwave

22.Ahora con la ventana de GTKWave abierta, arrastrar las señales y tipo hacia el panel Signals

PR-MEC-ELT-LE

Ilustración 13: GTKWave con las señales de la simulación propuesta

Ilustración 14: Señales simuladas, sin ajuste en el tiempo

Page 29: Multiplexores y Demultiplexores

29Instituto Tecnológico Superior de Teziutlán

23.Para una visualización adecuada de las señales, Time >> Zoom >> Zoom best fit

Compilación del Proyecto en Quartus II

24.De clic en el menú Assignments >> Device para elegir la CPLD que se encuentra en la persiana Family del cuadro Device que se abrió

25.El dispositivo a utilizar es de la Familia MAX II y en el cuadro inferior Available Devices, se ecoge la CPLD EPM240T100C5 y dar clic en OK

26.De clic en el menú Assignments >> Pin Planner para escoger las terminales que va a conectar de su dispositivo. (véase la Ilustración 16).

27.Los textos que colocamos son los de la columna “Location”28.Finalizada la edición de las conexiones, dar clic en File >> Close29.En la Ilustración 17 se muestra la conexión de la tarjeta CPLD en circuito

protoboard.30.Recuerde que la alimentación de la CPLD es de 3.3V y no de 5V.31.La conexión de los pushbuttons es de tipo lógica negativa

PR-MEC-ELT-LE

Ilustración 16: Distribución de terminales para el multiplexor

Ilustración 15: Simulación del multiplexor 4 a 1 con GHDL

Page 30: Multiplexores y Demultiplexores

30Instituto Tecnológico Superior de Teziutlán

32.Ahora hay que definir que hacer con las conexiones no usadas para el circuito.

33.Para este paso, dar clic en menú Assignments >> Device, lo cual abre un nuevo cuadro, donde existe el botón Device and Pin Options …

PR-MEC-ELT-LE

Ilustración 17: Conexión de CPLD con dispositivos para la práctica de multiplexores

Page 31: Multiplexores y Demultiplexores

31Instituto Tecnológico Superior de Teziutlán

34.Esto abre un nuevo cuadro, donde la categoria Unused Pins tiene la opción por defecto: As output driving ground

35.Dar clic en el comboBox que esta habilitado por defecto y selecciona As Input tri-stated with weak pull-up.

36.Dar clic en Ok y nuevamente en Ok

Compilando el circuito37.Para la compilación se presiona el botón RUN y el cual hará que se inicie

el proceso de compilación y síntesis

Programación del dispositivo38.Para llevar a cabo la programación del CPLD, debe conectar primero el

programador JTAG a la tarjeta y hacia el puerto USB.39.Dar clic en el menu Tools >> Programmer ..40.Al realizar este paso, se abre una nueva ventana, la cual permite la

grabación de la estructura lógica diseñada en VHDL.41.En caso de que no aparezca el dispositivo seleccionado, o que exista otro

dispositivo en la cadena JTAG, borre el dispositivo para el segundo caso, y/o agregue un nuevo elemento, es decir el CPLD MAX II EMP240

42.Para el primer caso, selecciona el dispositivo y da clic en el botón borrar,que esta en el panel izquierdo.

43.Para agregar un dispositivo, selecciona Add File …44.Del cuadro que aparece, selecciona la carpeta Output_files

PR-MEC-ELT-LE

Ilustración 18: Configuración de pines sin uso

Page 32: Multiplexores y Demultiplexores

32Instituto Tecnológico Superior de Teziutlán

45.Selecciona el archivo mux4_1.pof con un doble clic o con un clic sobre el botón Open

46.Da un clic sobre las casillas de verificación Program/Configure

47.Solo resta dar clic en el botón Start1

1 Para el caso de ArchLinux y probablemente en Ubuntu, hay problema con los permisos de usuario normal, que apesar de la definición de reglas de reglas en udev, el programador no responde, para arreglar este problema un workaround se propone por Carl (2013), donde se menciona que hay que matar primero al demonio jtagd de la siguiente manera

$ sudo killall -9 jtagd # Kill jtagd, ...

$ sudo killall -9 jtagd # ...and verify jtagd is indeed not running.

jtagd: no process found # Good, verified.

$ sudo jtagconfig # Will also start jtagd as root

ahora resta correr el jtagconfig como usuario normal y verificar que así lo haga, cierra el Quartus y abrelo de nueva cuenta para trabajar.

Se puede revisar el link http://iemontiel.blogspot.mx/2015/07/grabando-un-cpld-altera-en-manjaro.html donde existe una explicación a mayor detalle.

PR-MEC-ELT-LE

Page 33: Multiplexores y Demultiplexores

33Instituto Tecnológico Superior de Teziutlán

Asignación de Señal Seleccionada 48.El multiplexor 4 a 1 puede ser descrito en VHDL de la siguiente manera

Tabla 3

----------------------------------------------------------------------------------- Company : ITS Teziutlan -- Engineer: Miguel Montiel Martinez-- -- Create Date: 17/07/2015 01:16:38-- Project Name: mux4_1b-- Module Name: mux4_1b.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para unsigned

entity mux4_1b is port(

d : in bit_vector(3 downto 0);s : in bit_vector(1 downto 0);y : out bit

);end mux4_1b;

architecture arq1 of mux4_1b isbeginM: with s select

y <= d(0) when "00",d(1) when "01",d(2) when "10",d(3) when others;

end arq1;

49. Y el banco de pruebas es el siguiente

Tabla 4

----------------------------------------------------------------------------------------- Company : ITS Teziutlan---- Engineer: Miguel Montiel Mtz---- ---- Create Date: 17/07/2015 01:16:39---- Project Name: mux4_1b---- Module Name: mux4_1b_tb.vhd---- Description:-------- Additional Comments:-----------------------------------------------------------------------------------------ENTITY mux4_1b_tb is--END mux4_1b_tb;----ARCHITECTURE muxtb OF mux4_1b_tb is-- COMPONENT mux4_1b-- PORT(-- d : in bit_vector (3 downto 0);

PR-MEC-ELT-LE

Page 34: Multiplexores y Demultiplexores

34Instituto Tecnológico Superior de Teziutlán

-- s : in bit_vector (1 downto 0);-- y : out bit);-- END COMPONENT;---- SIGNAL d: bit_vector(3 downto 0);-- SIGNAL s: bit_vector(1 downto 0);-- SIGNAL y: bit;---- BEGIN-- u0: mux4_1b PORT MAP (d,s,y);-- d(0) <= '1' after 0 ns, '0' after 1 ns, '1' after 2 ns, '0' after 3 ns;-- d(1) <= '1' after 0 ns, '0' after 2 ns, '1' after 4 ns, '0' after 8 ns;-- d(2) <= '1' after 0 ns, '0' after 4 ns, '1' after 8 ns, '0' after 16 ns;-- d(3) <= '1' after 0 ns, '0' after 8 ns,'1' after 16 ns, '0' after 32 ns;---- s(0) <= '0' after 0 ns,'1' after 8 ns,'0' after 16 ns, '1' after 24 ns;-- s(1) <= '0' after 0 ns, '1' after 16 ns, '0' after 32 ns;--END muxtb;

50.Verifique que la salida del multiplexor sea la siguiente

Implementación de Multiplexor por medio de sentencia CASE y PROCESS51.La implementación del multiplexor es la siguiente:

PR-MEC-ELT-LE

Page 35: Multiplexores y Demultiplexores

35Instituto Tecnológico Superior de Teziutlán

Tabla 5

----------------------------------------------------------------------------------- Company : ITS Teziutlan-- Engineer: Miguel Montiel Mtz-- -- Create Date: 18/07/2015 13:00:54-- Project Name: mux4_1c-- Module Name: mux4_1c.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para unsigned

entity mux4_1c is port(

d : in bit_vector(3 downto 0);s : in bit_vector(1 downto 0);y : out bit );

end mux4_1c;

architecture arq1 of mux4_1c isbegin

process (s)begin

case s iswhen "00" => y <= d(0);when "01" => y <= d(1);when "10" => y <= d(2);when "11" => y <= d(3);

end case;end process;

end arq1;

52.Y el testbench es el siguiente

Tabla 6

----------------------------------------------------------------------------------- Company : ITS Teziutlan-- Engineer: Miguel Montiel Mtz-- -- Create Date: 18/07/2015 13:00:54-- Project Name: mux4_1c-- Module Name: mux4_1c_tb.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para signed, unsigned

entity mux4_1c_tb isend mux4_1c_tb;

PR-MEC-ELT-LE

Page 36: Multiplexores y Demultiplexores

36Instituto Tecnológico Superior de Teziutlán

architecture Testbench of mux4_1c_tb is

-- Component Declaration for the Unit Under Test (UUT) component mux4_1c port(

d : in bit_vector(3 downto 0);s : in bit_vector(1 downto 0);y : out bit

); end component;

signal d : bit_vector(3 downto 0);signal s : bit_vector(1 downto 0);signal y : bit;

begin

u0: mux4_1c PORT MAP (d,s,y);d(0) <= not d(0) after 1 ns;

d(1) <= not d(1) after 2 ns; d(2) <= not d(2) after 4 ns; d(3) <= not d(3) after 8 ns;

s(0) <= not s(0) after 8 ns; s(1) <= not s(1) after 16 ns;

assert(NOW <= 50 ns)report "Simulación completada exitosamente"severity ERROR;

end Testbench;

Trabajando funciones con Multiplexores modelado Estructural53.La estructura jerárquica de VHDL permite la implementación de

funciones a través de multiplexores.

54.sea f (w1 ,w2 ,w3)=w1w2+w1w3+w2w3 de la cual al aplicar la expansión de

Shannon, se obtiene lo siguiente:

f (w1 ,w2 ,w3)=w̄1(0⋅w2+0⋅w3+w2w3)+w1(1⋅w2+1⋅w3+w2w3)f (w1,w2, w3)=w̄1(w2⋅w3)+w1(w2+w3+w2w3)f (w1 ,w2,w3)=w̄1(w2⋅w3)+w1(w2+w3⋅1+w2⋅w3)

factorizandow3f (w1 ,w2 ,w3)=w̄1(w2⋅w3)+w1(w2+w3⋅(1+w2))f (w1,w2,w3)=w̄1(w2⋅w3)+w1(w2+w3⋅(1))f (w1,w2,w3)=w̄1(w2⋅w3)+w1(w2+w3)

55.El circuito se muestra en la Ilustración 5

56.El circuito contiene un multiplexor 2 a 1, una compuerta or de dos terminales y una compuerta and de dos terminales, siendo la entrada w1 la que se conecte a la entrada selectora.

PR-MEC-ELT-LE

Page 37: Multiplexores y Demultiplexores

37Instituto Tecnológico Superior de Teziutlán

57.El circuito en VHDL es el que se describe a continuación

Tabla 7 multiplexor 2 a 1 linea

----------------------------------------------------------------------------------- Company : Instituto Tecnológico Superior de Teziutlán - Mecatrónica-- Engineer: Miguel Montiel Martínez-- -- Create Date: 21/07/2015 09:26:58-- Project Name: mux2_1-- Module Name: mux2_1.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para unsigned

entity mux2_1 is port(

d : in bit_vector(1 downto 0); -- datoss : in bit; -- selecciony : out bit --salida

);end mux2_1;

architecture arq1 of mux2_1 isbegin

M: with s select y <= d(0) when '0',

d(1) when '1';

end arq1;

Tabla 8 Implementación de la función con multiplexor

----------------------------------------------------------------------------------- Company : Instituto Tecnológico Superior de Teziutlán - Mecatrónica-- Engineer: Miguel Montiel Martínez-- -- Create Date: 21/07/2015 16:57:47-- Project Name: Funcion1-- Module Name: Funcion1.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para unsigned

entity Funcion1 is port(

w1,w2,w3 : in bit;f : out bit

);end Funcion1;

architecture arq1 of Funcion1 is--declaración de componentes

PR-MEC-ELT-LE

Page 38: Multiplexores y Demultiplexores

38Instituto Tecnológico Superior de Teziutlán

component mux2_1 port( d : in bit_vector(1 downto 0); -- datoss : in bit; -- selecciony : out bit --salida);

end component;

--Señales para cableado del circuito internosignal e : bit_vector(1 downto 0);

begine(0) <= w2 and w3;e(1) <= w2 or w3;

u0: mux2_1 port map(e,w1,f);end arq1;

Tabla 9 Testbench para la función

----------------------------------------------------------------------------------- Company : Instituto Tecnológico Superior de Teziutlán - Mecatrónica-- Engineer: Miguel Montiel Martínez-- -- Create Date: 21/07/2015 16:57:48-- Project Name: Funcion1-- Module Name: Funcion1_tb.vhd-- Description:---- Additional Comments:---------------------------------------------------------------------------------

library IEEE;use IEEE.std_logic_1164.all; -- Para std_logicuse IEEE.numeric_std.all; -- Para signed, unsigned

entity Funcion1_tb isend Funcion1_tb;

architecture Testbench of Funcion1_tb is

-- Component Declaration for the Unit Under Test (UUT) component Funcion1port(

w1,w2,w3 : in bit;f : out bit

); end component;

signal w1,w2,w3,f : bit;

begin

-- Instantiate the Unit Under Test (UUT) uut: Funcion1 port map (w1,w2,w3,f);

w1 <= not w1 after 1 ns; w2 <= not w2 after 2 ns; w3 <= not w3 after 4 ns;

end Testbench;

PR-MEC-ELT-LE

Page 39: Multiplexores y Demultiplexores

39Instituto Tecnológico Superior de Teziutlán

58.La salida lógica de este sistema implementado por medio de multiplexores es la siguiente:

PR-MEC-ELT-LE

Page 40: Multiplexores y Demultiplexores

40Instituto Tecnológico Superior de Teziutlán

Actividades1. Elabora un banco de pruebas para el multiplexor bajo los siguientes

criterios de simulación1. Cada canal de entrada de datos del multiplexor será seleccionado en

una secuencia ascendente al aplicar un conteo binario a las entradas de selección.

2. Cada entrada de datos, deberá ser fácilmente reconocida al tener una “firma” en su forma de onda.

3. La forma de onda de salida, deberá desplegar una serie única de formas de onda, la cual indica la selección del canal de datos en una correcta secuencia

4. Los tiempos propuestos son:

Tabla 10 tiempos propuestos para el testbench

Tiempo Final 100 us

S[1..0] 25 us

D3 1 us

D2 2 us

D1 0.5 us

D0 4 us

2. Verifique los cuatro tipos de elaborar un multiplexor 4 a 1 en VHDL con este testbench propuesto.

3. Utilice mutliplexores para evaluar los puntos que se muestran en la 40, tanto de forma práctica, así como simulada.

Tabla 11 Actividades de la práctica

Num Función Valor solicitado Respuesta

1 F(A ,B ,C , D, E , F ,G)=Π(0,3,5,23,56,77,89,100,101) F(23)

F(45)

F(34)

F(88)

PR-MEC-ELT-LE

Page 41: Multiplexores y Demultiplexores

41Instituto Tecnológico Superior de Teziutlán

F(100)

2 F(A ,B ,C , D)=Σ(0,1,2,5,7,12,15) F(0)

F(7)

F(15)

F(2)

3 F(A ,B ,C , D, E , F)=(A⋅B '⋅D⋅F )+(C '⋅E)'⋅(A '+E⋅F ' ) F(0)

F(3)

F(27)

F(33)

F(45)

F(55)

F(62)

BIBLIOGRAFIA Bhasker, J. (1999). A VHDL Primer (Vol. 1). Prentice Hall.

Brown, S. A. (2006). Fundamentos de lógica digital con diseño VHDL (Vol. 1).

McGraw-Hill.

Dueck, R. (2011). Digital Design with CPLD Applications and VHDL (2 edition).

Clifton Park, NY: Delmar Cengage Learning.

Jara, J. A., & Maxinez, D. G. (2003). VHDL El Arte de Programar Sistemas Digitales.

Cecsa.

Morillo, N. (2006, February 22). Fundamentos Sistemas Digitales. Retrieved

December 13, 2010, from about:blank

PR-MEC-ELT-LE

Page 42: Multiplexores y Demultiplexores

42Instituto Tecnológico Superior de Teziutlán

pyroelectro. (2011). An Introduction To FPGA And CPLD: The Intro [Tutoriales de

electronica]. Retrieved from

http://www.pyroelectro.com/edu/fpga/introduction/

user2746930. (2013, September 9). linux - Unable to lock chain (Insufficient port

permissions) - Stack Overflow. Retrieved June 4, 2015, from

http://stackoverflow.com/questions/18704913/unable-to-lock-chain-

insufficient-port-permissions

PR-MEC-ELT-LE