Práctica 8. Diseño en VHDL de un modulador BPSK

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Práctica 8. Diseño en VHDL de un modulador BPSK"

Transcripción

1 Práctica 8. Diseño en VHDL de un modulador BPSK 8.1. Objetivos Diseñar un sistema de modulación por desplazamiento de fase binaria (BPSK) mediante VHDL e implementarlo en una FPGA. Aprender a llevar a cabo la comunicación con periféricos, en este caso el DAC LTC Conversor digital a analógico LTC 2624 La tarjeta de desarrollo Spartan-3A/3AN Starter Kit Board dispone de un convertidor digital a analógico (DAC, Digital-to-Analog Converter) serie de cuatro canales y compatible con el bus SPI (Serial Peripheral Interface). Las cuatro salidas del DAC son accesibles en el conector J21, el cual se encuentra, junto con el DAC, justo al lado del conector RJ-45 de la tarjeta, tal como se puede observar en la figura. Figura 8.1. Ubicación del DAC LTC 2624 y del conector J21 en la tarjeta de desarrollo El SPI es un bus síncrono full-duplex orientado a carácter que utiliza únicamente cinco líneas de comunicación. En la figura se muestra la conexión de la FPGA con la interfaz del bus SPI y la de ésta a su vez con el DAC. Figura 8.2. Esquema de conexiones del convertidor digital-analógico 1/13

2 En la siguiente tabla se muestran las líneas de comunicación utilizadas por el bus SPI, donde la FPGA actúa como dispositivo maestro (master) de la comunicación y el DAC actúa como esclavo (slave). Las señales SPI_MOSI, SPI_SCK y DAC_OUT están compartidas con otros dispositivos en la tarjeta, por lo que debe hacerse uso de la señal DAC_CS para indicar que la comunicación que desea establecerse es con el DAC. La señal DAC_CLR es activa a baja y permite inicializar a cero la entrada del DAC. Tabla 8.1. Señales de interfaz del DAC El protocolo de comunicación del bus SPI es el que se muestra en la figura siguiente, donde se observa que una vez se activa la señal DAC_CS a baja, a cada flanco de subida de la señal SPI_SCK, el dato enviado por la línea SPI_MOSI es cargado en la memoria de entrada del dispositivo, en este caso el DAC. Asimismo, la línea DAC_OUT devuelve los datos cargados en su memoria durante la comunicación previa. Estos datos enviados desde el DAC pueden ignorarse en la mayoría de las aplicaciones, pero sirven como mecanismo de control para comprobar que la comunicación se está llevando a cabo de manera correcta. Figura 8.3. Protocolo de comunicación del bus SPI En la figura 8.4 se muestra la estructura de datos que debe presentar la línea SPI_MOSI para el caso de trabajar con el DAC LTC2624. Podemos observar que los primeros cuatro bits de datos son indiferentes (don t care), al igual que los ocho últimos. Téngase en cuenta, sin embargo, que según la figura precedente, los bits son enviados en orden descendente, desde el más significativo hasta el menos significativo, por lo que los primeros bits en ser enviados serían los ocho bits don t care (desde el bit 31 hasta el 24). Los bits 23 a 20 contienen el comando que generalmente será la palabra c3c2c1c0 = 0011, para indicar que la salida del DAC se actualice inmediatamente con la palabra recibida. Los bits 19 a 16 contienen la dirección del canal a utilizar tal como se indica en la tabla incluida en la figura, mientras que los bits 15 a 4 contienen la palabra de datos a cargar 2/13

3 en el DAC desde el bit más significativo al menos significativo. El valor de salida del DAC seleccionado por la dirección (ADDRESS) vendrá dado por la siguiente expresión en función de la palabra de datos (DATA): V DATA[11: 0] OUT V REF Por tanto, el DAC sólo trabaja con valores positivos (enteros sin signo), característica que hemos de tener en cuenta a la hora de enviarle la palabra de datos a representar Realización práctica Figura 8.4. Protocolo de comunicación con el DAC LTC2624 En esta práctica se pretende diseñar un modulador BPSK mediante VHDL constituido por un generador de datos pseudoaleatorios, el modulador BPSK propiamente dicho y el dispositivo de interfaz con el DAC, tal como se esquematiza en la figura 8.5. Como podemos apreciar en la figura, el generador de datos posee dos entradas (reloj y reset) y dos salidas (datos y sinc), mientras que el modulador BPSK posee tres entradas (reloj, reset y datos_serie) y tres salidas (clk_datos, clk_spi y datos). Asimismo, la salida clk_datos está realimentada a la entrada de reloj del generador de datos, mientras que la salida de datos del generador se conecta a la entrada de datos serie del modulador BPSK. Figura 8.5. Esquema de bloques del sistema modulador BPSK 3/13

4 Dado que la salida del modulador BPSK debe ser de tipo analógica, se hace uso de la interfaz con el DAC a través del bus SPI para conseguir dicho objetivo. El modulador BPSK debe suministrarle la señal de reloj de referencia al bus, así como los datos digitales a ser convertidos en un valor analógico. Por tanto, todo el sincronismo tanto del bus SPI como del generador de datos será llevado a cabo por el dispositivo modulador BPSK Interfaz con el DAC El dispositivo de interfaz con el DAC tiene tres entradas (reset, reloj y datos) y cuatro salidas que se corresponden básicamente con las líneas de comunicación con el bus SPI (spi_mosi, spi_sck, dac_cs, dac_clr). A continuación se va a diseñar una interfaz con el DAC que permita la representación de una señal haciendo uso del canal DAC A. 1. Diseñar un código en VHDL para la interfaz de conexión con el DAC a través del bus SPI. Un posible ejemplo sería el siguiente: use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity com_dac is Port ( reloj : in STD_LOGIC; reset : in STD_LOGIC; dac_cs : out STD_LOGIC; dac_clr : out STD_LOGIC; spi_mosi : out STD_LOGIC; spi_sck : out STD_LOGIC; datos : in STD_LOGIC_VECTOR(11 downto 0); cuenta_sal : out std_logic_vector(6 downto 0)); end com_dac; architecture Behavioral of com_dac is signal memoria_dac : std_logic_vector(31 downto 0) := (others => '0'); process(reloj,reset) variable cuenta : natural range 0 to 100 := 0; if reset = '1' then -- Establece el comando por defecto memoria_dac(23 downto 20) <= "0011"; -- Direcciona al DAC A por defecto memoria_dac(19 downto 16) <= "0000"; cuenta := 0; dac_cs <= '1'; elsif reloj'event and reloj = '1' then cuenta := cuenta + 1; case cuenta is when 1 => dac_cs <= '0'; memoria_dac(15 downto 4) <= datos; -- Carga los -- datos -- Direcciona al DAC A memoria_dac(19 downto 16) <= "0000"; spi_mosi <= memoria_dac(31); when 33 => dac_cs <= '1'; when 64 => cuenta := 0; when others => 4/13

5 spi_mosi <= memoria_dac(31-((cuenta-1) mod 32)); end case; cuenta_sal <= std_logic_vector(conv_unsigned(cuenta,7)); end process; spi_sck <= not(reloj); dac_clr <= not(reset); end Behavioral; Obsérvese que el controlador de la interfaz con el DAC consta básicamente de una máquina de estados controlados por la variable cuenta. Cada vez que se produce un flanco de subida en la señal de reloj se incrementa dicha variable y se van comprobando una serie de condiciones. Si cuenta es igual a uno, se cargan los datos en la memoria de la interfaz (memoria_dac) y se prepara para la transmisión de los mismos a través del bus SPI direccionados hacia el canal DAC A. Una vez se han transmitido los 32 bits de datos, se activa a alta la señal dac_cs a fin de que el DAC lleve a cabo la conversión, y todo el proceso vuelve a reiniciarse a continuación. Este proceso se repetirá una y otra vez, a menos que sea interrumpido por una señal de reset, que inicializaría la interfaz. Podemos comprobar que las señales spi_sck y dac_clr se obtienen simplemente mediante la inversión de la señal de reloj y de reset, respectivamente. 2. A continuación, vamos a llevar a cabo una simulación con el ISE Simulator a fin de comprobar el correcto funcionamiento de la interfaz con el DAC. Obsérvese que se ha incluido una señal de tipo std_logic_vector denominada cuenta_sal, simplemente a efectos de facilitar el análisis de las señales a la salida del dispositivo. 3. Probar en la tarjeta el correcto funcionamiento de la interfaz con el DAC, utilizando como entradas de datos los interruptores SW0 a SW3 de la tarjeta de desarrollo (representarán a los bits más significativos). Para el reset utilizar un pulsador cualquiera y para la entrada de reloj utilizar el de la tarjeta. Un posible fichero de configuración de pines es el siguiente: NET "reset" CLOCK_DEDICATED_ROUTE = FALSE; NET "datos<11>" LOC = T9; NET "datos<10>" LOC = U8; NET "datos<9>" LOC = U10; NET "datos<8>" LOC = V8; NET "reloj" LOC = E12; NET "reset" LOC = T15; NET "spi_mosi" LOC = AB14; NET "spi_sck" LOC = AA20; NET "dac_cs" LOC = W7; NET "dac_clr" LOC = AB13; Generador de datos Para el diseño del generador de datos pseudoaleatorio podemos hacer uso del ya implementado en la práctica anterior. Dicho generador de datos requiere de una serie de definiciones de constantes y de un componente que actúe como un 5/13

6 registro. A continuación se muestran los códigos en VHDL necesarios en cada caso. 1. Crear el paquete denominado constantes que contenga todas las constantes que vamos a utilizar durante el desarrollo de esta práctica. El código en VHDL sería el siguiente: use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.all; use IEEE.MATH_REAL.all; package constantes is constant N : positive := 4; constant M : positive := 32; constant nbits : positive := 12; constant ndec : positive := 10; subtype palabra is signed(nbits-1 downto 0); type tabla is array (M-1 downto 0) of palabra; constant Pi : real := ; constant delta_fi : real := 2.0*Pi/real(M); function and_vector (vector : in std_logic_vector(0 to N-1)) return std_logic; end constantes; package body constantes is function and_vector (vector : in std_logic_vector(0 to N-1)) return std_logic is variable resultado : std_logic; resultado := vector(0); for I in 1 to N-1 loop resultado := vector(i) and resultado; end loop; return resultado; end and_vector; end constantes; Obsérvese que, aparte de la constante N que se referirá a la longitud (número de registros) del generador de datos y de la función and_vector que determina la función y-lógica de un vector de datos, se definen también la constante M para el número de posiciones de la tabla que contendrá la función senoidal (véase sección 8.3.3), el número de bits (nbits) de cada palabra de la tabla, así como el número de bits utilizados como decimales (ndec), además de dos constantes reales (Pi y delta_fi). Estas dos últimas constantes son utilizadas por la función de inicialización de la tabla y se refieren al número y al incremento de fase que se produce a cada paso de una posición a la siguiente en la tabla y que vendrá dado por 2 /M. En la sección incidiremos nuevamente sobre esto. La librería MATH_REAL de IEEE se incluye para poder trabajar con números reales. 2. Crear un dispositivo que actúe como registro a fin de que pueda ser utilizado por el generador de datos. Un posible código VHDL sería el siguiente: 6/13

7 use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity registro is Port ( clk,preset,d : in STD_LOGIC; Q : out STD_LOGIC); end registro; architecture Behavioral of registro is process(clk,preset) if preset='1' then Q <= '1'; elsif clk'event and clk='1' then Q <= D; end process; end Behavioral; Obsérvese que el registro responde a los cambios de las señales de entrada clk (señal de reloj) y preset (señal de set que pondrá el registro a nivel lógico 1 cuando se active a alta). Toda vez que se produzca un flanco de subida de la señal de reloj clk, el dato a la entrada D del registro pasará a la salida Q del mismo. 3. En la figura 8.6 se muestra la estructura de un generador de datos pseudoaleatorio constituido por cuatro registros, lo que dará lugar a una secuencia pseudoaleatoria de longitud = 15. Figura 8.6. Estructura interna de un generador de datos pseudoaleatorio Un posible código en VHDL que nos permite implementar el generador de datos pseudoaleatorio de la figura 8.6 es el siguiente: use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use work.constantes.all; entity gen_datos is generic (Nreg : positive := N); port (clk,reset : in STD_LOGIC; 7/13

8 datos,sinc : out STD_LOGIC); end gen_datos; architecture Behavioral of gen_datos is component registro is port (clk,preset,d : in std_logic; Q : out std_logic); end component registro; signal sig_xor : std_logic; signal Q_int : std_logic_vector(0 to Nreg-1); Generador_datos: for I in 0 to Nreg-1 generate Reg00: if (I=0) generate Reg0: Registro port map (clk,reset,sig_xor,q_int(0)); end generate; Regs: if I>0 generate Reg: Registro port map (clk,reset,q_int(i-1),q_int(i)); end generate; end generate; datos <= Q_int(Nreg-1); sig_xor <= Q_int(0) xor Q_int(Nreg-1); sinc <= and_vector(q_int); end Behavioral; Modulador BPSK En este apartado procederemos al diseño del modulador BPSK. Para ello debemos tener en cuenta que, tal como se ha definido el bloque Interfaz DAC, dicho dispositivo requiere de 64 ciclos de la señal de reloj para llevar a cabo la transmisión del dato a representar en el DAC y enviarlo a la salida analógica del canal correspondiente. Por tanto, el reloj utilizado por dicho dispositivo será el más rápido posible, en este caso el reloj de 50 MHz de la tarjeta. Durante esos 64 ciclos de la señal de reloj, el dato suministrado al DAC no puede cambiar, por lo que el reloj del modulador que da lugar al direccionamiento en la tabla que contiene la función seno debe tener una frecuencia 64 veces menor que la señal de reloj base. Asimismo, el dato suministrado por el generador, que es el que se encarga de modular la señal senoidal, no puede cambiar durante todo el ciclo de representación de la función seno, que consta de M muestras, por lo que dicho reloj de datos del generador deberá ir a una frecuencia M veces inferior a la del direccionamiento a la tabla. Con todo esto, es posible definir la cadencia de las distintas señales de reloj dentro del bloque modulador BPSK, pero también es necesario crear la tabla que contenga los valores para las distintas muestras de la función seno. Por ello, crearemos un paquete, que denominaremos real2bit, que contenga las funciones necesarias para la generación de dicha tabla. 1. Añadir al diseño el siguiente paquete real2bit: use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.MATH_REAL.ALL; use work.constantes.all; 8/13

9 package real2bit is subtype doble is signed(2*nbits-1 downto 0); function truncar (a: real; numdec : natural := ndec) return signed; function extraer (a: doble; numdec : natural := ndec) return signed; function inicializar_tabla return tabla; constant tabla_onda : tabla := inicializar_tabla; end real2bit; package body real2bit is function truncar (a: real; numdec : natural := ndec) return signed is variable resultado: signed(nbits-1 downto 0); variable tmp, comp : real := 0.0; variable comp_int, signo : integer := 0; -- numdec indica el numero de bits dedicados a decimales tmp := abs(a*(2.0**numdec)); if a < 0.0 then signo:= -1; else signo:= 1; for I in nbits-2 downto 0 loop comp := comp + 2.0**I; comp_int := comp_int + 2**I; if tmp < comp then comp := comp - 2.0**I; comp_int := comp_int - 2**I; end loop; resultado := conv_signed(comp_int*signo,nbits); return resultado; end truncar; function extraer (a: doble; numdec : natural := ndec) return signed is variable resultado : signed(nbits-1 downto 0); resultado := signed(a(numdec+nbits-1 downto numdec)); return resultado; end function extraer; function inicializar_tabla return tabla is variable resultado : tabla; for I in 0 to M-1 loop resultado(i) := truncar(2.0*sin(delta_fi*real(i))); end loop; return resultado; end function inicializar_tabla; end real2bit; En este paquete se han definido dos funciones para trabajar con números reales, que son truncar y extraer, así como una función para la inicialización de la tabla que contiene las distintas muestras de la función seno. La función truncar permite convertir un número real a un entero con signo de nbits, donde los numdec bits menos significativos representan los valores decimales. Por ejemplo, si le suministramos el valor 1,5 a la función truncar, teniendo en cuenta 9/13

10 que, según las definiciones en el paquete constantes, nbits = 12 y ndec = 7 (valor que toma por defecto numdec si no se le suministra ningún valor como argumento en la función), ésta nos devolvería (el punto decimal ha sido añadido para una mejor comprensión del resultado). Por el contrario, truncar(-1.5) devolvería La función extraer permite obtener nuevamente un resultado de tipo palabra (definido en el paquete constantes) a partir de un tipo doble, resultado que se produce al multiplicar dos datos de tipo palabra. Esta función no será utilizada en esta práctica, pero es útil cuando se produce la multiplicación de valores de tipo palabra y se desea recuperar nuevamente un resultado de tipo palabra. Como se sabe, multiplicar un dato binario de nbits con otro también de nbits da lugar a un resultado de 2nbits, con un desplazamiento del punto decimal a 2ndec. La función extraer no hace más que recuperar la parte central del resultado producido tras la multiplicación, para obtener nuevamente un valor de tipo palabra. Por último, se ha definido una función inicializar_tabla, que no hace más que inicializar con la función seno las muestras, de manera consecutiva, de un array de enteros con signo (signed) de M posiciones, definido con el tipo tabla en el paquete constantes. La tabla resultante, denominada tabla_onda, es una constante que podrá ser indexada para extraerle los valores necesarios en todo momento. 2. Teniendo en cuenta todo lo expuesto anteriormente, vamos a proceder al diseño del modulador BPSK. Un posible código en VHDL sería el siguiente: use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use work.constantes.all; use work.real2bit.all; entity bpsk is Port ( reloj : in STD_LOGIC; reset : in STD_LOGIC; datos_serie : in STD_LOGIC; clk_datos : out STD_LOGIC; clk_spi : out STD_LOGIC; clk_bpsk : out STD_LOGIC; datos : out STD_LOGIC_VECTOR (11 downto 0)); end bpsk; architecture Behavioral of bpsk is signal puntero : natural range 0 to (M-1) := M-1; signal valor : palabra := (others => '0'); signal reloj_bpsk : std_logic := '0'; process(reset,reloj,reloj_bpsk) variable cuenta : natural range 0 to (64*M-1) := 0; if reset = '1' then reloj_bpsk <= '0'; clk_datos <= '0'; cuenta := 0; 10/13

11 elsif reloj'event and reloj = '1' then if cuenta = 0 then reloj_bpsk <= '1'; clk_datos <= '1'; elsif cuenta mod 64 = 0 then reloj_bpsk <= '1'; else reloj_bpsk <= '0'; clk_datos <= '0'; cuenta := (cuenta + 1) mod (64*M); end process; process(reset,reloj_bpsk) if reset = '1' then puntero <= M-1; elsif reloj_bpsk'event and reloj_bpsk = '1' then puntero <= (puntero + 1) mod M; end process; clk_spi <= reloj; valor <= -tabla_onda(puntero) when datos_serie = '1' else tabla_onda(puntero); -- Utilizar la siguiente línea para simulación datos <= std_logic_vector(valor); -- Utilizar la siguiente línea para la síntesis y comentar la anterior --datos <= valor + conv_signed(2**(nbits-1),nbits); clk_bpsk <= reloj_bpsk; end Behavioral; Obsérvese que existe un primer proceso que se encarga de la generación de las señales de reloj (clk_datos, reloj_bpsk) en base a las consideraciones indicadas anteriormente. Asimismo, a la señal de reloj de la interfaz con el DAC, clk_spi, se le asigna directamente la señal de entrada reloj, que será la de 50 MHz de la tarjeta. Un segundo proceso se encarga de ir modificando el valor de un puntero, que indexa la tabla con las muestras de la función seno, tabla_onda, a cada flanco de subida de la señal reloj_bpsk. Dado que las muestras están dispuestas de manera secuencial en dicha tabla, a cada salto del puntero se irá representando la siguiente muestra en el tiempo, con lo que, tras M saltos, se habrá completado la representación de la señal senoidal a la salida del sistema. Por último, tenemos una serie de líneas de código para el envío de la palabra digital a representar por el DAC. En primer lugar, se ha creado una señal interna denominada valor a la que se le asigna el valor de la tabla negado si el dato suministrado por el generador de datos (datos_serie) es uno o el propio valor de la tabla sin negarlo si el dato es cero. Este es básicamente el proceso de modulación BPSK. A continuación, dicho valor es enviado a la salida de datos del modulador a través del puerto datos. Se han incluido dos posibles líneas de código, cada uno excluyente de la otra, una para simulación, donde se envía directamente el dato, y otra para la síntesis donde se le suma una determinada cantidad a fin de hacer el valor enviado a la interfaz con el DAC positivo. Téngase en cuenta que el DAC sólo trabaja con valores 11/13

12 enteros sin signo (tipo unsigned). Lo que se ha hecho es sumarle un valor constante que se corresponde con la mitad del margen de salida del DAC (VREF/2). De esta forma, la onda de salida representada estará centrada en torno a dicho valor. 3. Haciendo uso del ISE Simulator, comprobar el correcto funcionamiento del modulador BPSK. Obsérvese que se ha incluido la señal clk_bpsk como línea de salida del bloque (asignándole el valor contenido en reloj_bpsk), únicamente a efectos de facilitar el análisis del dispositivo, pues dicha señal realmente trabaja únicamente de manera interna en dicho bloque. 4. A continuación se muestra un posible código en VHDL que integre todos los bloques diseñados anteriormente: use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use work.constantes.all; entity sistema is Port ( reloj : in STD_LOGIC; reset : in STD_LOGIC; dac_cs : out STD_LOGIC; spi_mosi : out STD_LOGIC; spi_sck : out STD_LOGIC; dac_clr : out STD_LOGIC; datos : out STD_LOGIC); end sistema; architecture Behavioral of sistema is component bpsk is Port ( reloj : in STD_LOGIC; reset : in STD_LOGIC; datos_serie : in STD_LOGIC; clk_datos : out STD_LOGIC; clk_spi : out STD_LOGIC; clk_bpsk : out STD_LOGIC; datos : out STD_LOGIC_VECTOR (11 downto 0)); end component bpsk; component gen_datos is generic (Nreg : positive := N); port (clk,reset : in STD_LOGIC; datos,sinc : out STD_LOGIC); end component gen_datos; component com_dac is Port ( reloj : in STD_LOGIC; reset : in STD_LOGIC; dac_cs : out STD_LOGIC; dac_clr : out STD_LOGIC; spi_mosi : out STD_LOGIC; spi_sck : out STD_LOGIC; datos : in STD_LOGIC_VECTOR(11 downto 0); cuenta_sal : out std_logic_vector(6 downto 0)); end component com_dac; signal clk_datos, clk_spi, datos_serie : std_logic; signal datos_int : std_logic_vector (11 downto 0); Gen_datos0: gen_datos port map (clk_datos,reset,datos_serie); Modulador: bpsk port map 12/13

13 (reloj,reset,datos_serie,clk_datos,clk_spi, datos => datos_int); Interfaz_dac: com_dac port map (clk_spi,reset,dac_cs,dac_clr,spi_mosi,spi_sck,datos_int); datos <= datos_serie; end Behavioral; Obsérvese que existen determinadas señales como clk_bpsk, sinc y cuenta_sal que no son utilizadas por el bloque sistema, ya que en su momento fueron añadidas únicamente a efectos de facilitar el análisis de los distintos dispositivos. 5. Implementar en la FPGA el diseño del modulador BPSK. Observar las señales de salida haciendo uso de un analizador lógico/osciloscopio. A continuación se muestra una posible configuración para los pines de entrada/salida a la FPGA: NET "reset" CLOCK_DEDICATED_ROUTE = FALSE; NET "dac_clr" LOC = AB13; NET "dac_cs" LOC = W7; NET "datos" LOC = A13; NET "reloj" LOC = E12; NET "reset" LOC = T15; NET "spi_mosi" LOC = AB14; NET "spi_sck" LOC = AA20; 13/13

Práctica 7. Diseño en VHDL de un modulador PPM

Práctica 7. Diseño en VHDL de un modulador PPM Práctica 7. Diseño en VHDL de un modulador PPM 7.1. Objetivos Diseñar un sistema de modulación por posición de pulso (PPM) mediante VHDL e implementarlo en una FPGA. Aprender a utilizar las diferentes

Más detalles

DISEÑO DE PROCESADORES DEDICADOS. Práctica 6 LCD de Propósito General

DISEÑO DE PROCESADORES DEDICADOS. Práctica 6 LCD de Propósito General DISEÑO DE PROCESADORES DEDICADOS Instituto Politécnico Nacional Práctica 6 LCD de Propósito General Campo 1: Datos Personales. Centro de Innovación y Desarrollo Tecnológico en Cómputo CIDETEC Mayo 2015

Más detalles

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López.

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López. UNIVERSIDAD CARLOS III DE MADRID Ejercicios de VHDL Circuitos Integrados y Microelectrónica Luis Entrena Celia López Mario García Enrique San Millán Marta Portela Almudena Lindoso Problema 1 Se pretende

Más detalles

Sistemas Electrónicos Digitales Curso de adaptación al Grado

Sistemas Electrónicos Digitales Curso de adaptación al Grado Práctica Práctica 2 Sistemas Electrónicos Digitales Curso de adaptación al Grado Sistemas combinacionales con VHDL Universidad de Alicante Ángel Grediaga 2 Índice INTRODUCCIÓN... 3 2 CIRCUITOS COMBINACIONALES...

Más detalles

Sistemas Electrónicos Digitales. PRACTICA nº 8

Sistemas Electrónicos Digitales. PRACTICA nº 8 PRACTICA nº 8 Diseño de subsistemas aritméticos. Síntesis sobre dispositivos FPGA. Síntesis estructural a partir de la descripción VHDL a nivel RTL de la estructura. Síntesis a partir de la descripción

Más detalles

Practica No. 5 Diseño de un Multiplicador

Practica No. 5 Diseño de un Multiplicador Practica No. 5 Diseño de un Multiplicador Objetivo: Diseñar un módulo de multiplicación utilizando diferentes métodos, entender las ventajas y desventajas de cada uno de ellos. Aprender a usar procesos

Más detalles

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

MAQUINA DE ESTADO FINITO (FSM) Autómata finito MAQUINA DE ESTADO FINITO (FSM) Autómata finito Modelo de Mealy E Lógica del próximo estado Q t+1 M E M O R I A Q t Lógica de salida S Ck Q t+1 = f (E, Q t ) S = g (E, Q t ) Modelo de Moore E Lógica del

Más detalles

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006.

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006. INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA TRABAJO TUTORADO DE VHDL. Primer Cuatrimestre Curso 2005/2006. OBJETIVOS: Con este proyecto se pretende que el alumno practique y afiance los conocimientos

Más detalles

MAQUINA DE ESTADO FINITO (FSM) Autómata finito

MAQUINA DE ESTADO FINITO (FSM) Autómata finito MAQUINA DE ESTADO FINITO (FSM) Autómata finito Modelo de Mealy E Lógica del próximo estado Q t+1 M E M O R I A Q t Lógica de salida S Ck Q t+1 = f (E, Q t ) S = g (E, Q t ) Modelo de Moore E Lógica del

Más detalles

Practica No. 8 Introducción a las Máquinas de Estados. 1. En la figura 1 se muestra el comportamiento de un robot que evade obstáculos.

Practica No. 8 Introducción a las Máquinas de Estados. 1. En la figura 1 se muestra el comportamiento de un robot que evade obstáculos. Practica No. 8 Introducción a las Máquinas de Estados Objetivo: Familiarizar al alumno en el conocimiento de los algoritmos de las máquinas de estados. Desarrollo: Para cada uno de los siguientes apartados,

Más detalles

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) SEGUNDA CLASE DE VHDL

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) SEGUNDA CLASE DE VHDL LABORATORIO DE CIRCUITOS DIGITALES (25-II) SEGUNDA CLASE DE VHDL TIPOS y MODOS DE DATOS DESCRIPCIÓN CONCURRENTE Sentencias de asignación: with select, when - else DESCRIPCIÓN COMPORTAMENTAL Procesos asíncronos

Más detalles

PRÁCTICA: LENGUAJE VHDL

PRÁCTICA: LENGUAJE VHDL PRÁCTICA: LENGUAJE Introducción Los lenguajes permiten manejar mejor grandes tamaños Los lenguajes son más flexibles que las tablas Los lenguajes son légibles por las máquinas más fácilmente que los gráficos

Más detalles

VHDL: Código Secuencial. Arquitectura del Computador 2017

VHDL: Código Secuencial. Arquitectura del Computador 2017 VHDL: Código Secuencial Arquitectura del Computador 2017 PROCESSES, FUNCTIONS y PROCEDURES Solo se ejecuta secuencialmente el código que se encuentra dentro de PROCESSES, FUNCTIONS o PROCEDURES. Cualquiera

Más detalles

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL MÁQUINAS DE ESTADO FINITAS (FSMs) Máquinas de Moore Máquinas de Mealy MÁQUINAS DE ESTADOS FINITAS (FSMs) Tipos: Máquina de Moore: Las salidas

Más detalles

Recursos y Metodologías. Función. Programas

Recursos y Metodologías. Función. Programas Recursos y Metodologías Sistema Digital Estructura { + Función Descripción Datos R. Cómputo R. Almacenamiento R. Conexionado { Comandos Implementación Full-custom Semi-custom Gate Arrays Programas Lenguaje

Más detalles

DISEÑO DE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS

DISEÑO DE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS Práctica 2 DISEÑO DE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS Controlador de teclado Universidad de Alicante Curso 2013/14 Práctica 2 Práctica 2 Control del teclado 1. Introducción Esta práctica plantea

Más detalles

Práctica I Modelado y simulación de una máquina expendedora de refrescos

Práctica I Modelado y simulación de una máquina expendedora de refrescos Práctica I Modelado y simulación de una máquina expendedora de refrescos Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 2 1.1. Objetivos. En esta práctica vamos a modelar

Más detalles

Tipos de datos en VHDL

Tipos de datos en VHDL Tipos de datos en VHDL Sistemas Digitales Avanzados Universidad Técnica Particular de Loja Prof: Diego Barragán Guerrero Oct. 2014 - Feb. 2015 Sistemas Digitales Avanzados (UTPL) IET Oct. 2014 - Feb. 2015

Más detalles

1. Módulo de desarrollo Spartan 3 STARTER KIT con un FPGA xc3s200 ft256 2. Software de diseño XILINX ISE versión 10.1

1. Módulo de desarrollo Spartan 3 STARTER KIT con un FPGA xc3s200 ft256 2. Software de diseño XILINX ISE versión 10.1 Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC1723, Circuitos Digitales Trimestre Septiembre-Diciembre 2008 Realización: Semana 8. Miércoles 5 de Noviembre Laboratorio Práctica 4:

Más detalles

SISTEMAS ELECTRÓNICOS DIGITALES

SISTEMAS ELECTRÓNICOS DIGITALES SISTEMAS ELECTRÓNICOS DIGITALES PRÁCTICA 6 SISTEMA DE ENCRIPTACIÓN 1. Objetivos - Estudio del funcionamiento de memorias RAM y CAM. - Estudio de métodos de encriptación y compresión de datos. 2. Enunciado

Más detalles

Práctica 6. Diseño Lógico Digital mediante VHDL

Práctica 6. Diseño Lógico Digital mediante VHDL Práctica 6. Diseño Lógico Digital mediante VHDL 6.1. Objetivos Aprender a diseñar circuitos lógicos digitales mediante el uso de lenguajes de descripción de hardware como VHDL. 6.2. Introducción al VHDL

Más detalles

Sistemas Electrónicos Digitales. PRACTICA nº 3

Sistemas Electrónicos Digitales. PRACTICA nº 3 PRACTICA nº 3 Diseño top-down estructural y síntesis de un procesador dedicado elemental para resolver el cálculo del máximo común divisor (MCD) de dos números sin signo Objetivos: Análisis, diseño y síntesis

Más detalles

VHDL. Carlos Andrés Luna Vázquez. Lección 10 Problemas

VHDL. Carlos Andrés Luna Vázquez. Lección 10 Problemas Carlos Andrés Luna Vázquez Lección 10 Problemas 1 Índice Introducción Niveles de abstracción del modelado con HDL Estilos descriptivos del modelado con HDL Ventajas y limitaciones de los HDLs El lenguaje

Más detalles

Tutorial 2: Pasar de diagrama ASM a un circuito

Tutorial 2: Pasar de diagrama ASM a un circuito Tutorial 2: Pasar de diagrama ASM a un circuito Introducción En este segundo tutorial veremos cómo transformar nuestros diagramas ASM en circuitos que puedan ser implementados utilizando la placa DEO.

Más detalles

Tema 3 - Modelado con HDL a nivel RTL

Tema 3 - Modelado con HDL a nivel RTL - Modelado con HDL a nivel RTL Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx

Más detalles

5. Decodificadores. Salida _1= A A A A = m = M ... Electrónica Digital. Tema

5. Decodificadores. Salida _1= A A A A = m = M ... Electrónica Digital. Tema 5. Decodificadores La función de un decodificador es la siguiente: ante una combinación concreta binaria de entrada (correspondiente a una combinación de algún código binario), activar una salida correspondiente

Más detalles

Tutorial de VHDL: Contadores y Simulación

Tutorial de VHDL: Contadores y Simulación Tutorial de VHDL: Contadores y Simulación Importante: -Verifique la instalación del Webpack 6.0 y el Modelsim XE 6.0 SE. Ambos programas se pueden bajar desde www.xilinx.com. -Verifique también la licencia

Más detalles

Julio. [ Programación en VHDL ] Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / a s i g n a t u r a s / d s d.

Julio. [ Programación en VHDL ] Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / a s i g n a t u r a s / d s d. Julio 09 [ Programación en VHDL ] Guía rápida [ h t t p : / / w w w. o p e n b o x e r. 2 6 0 m b. c o m / a s i g n a t u r a s / d s d. h t m l ] Programación en VHDL Guia rapida [ INDICE ] I. Programación

Más detalles

Manual de referencia de la tarjeta BASYS 2

Manual de referencia de la tarjeta BASYS 2 Universidad Politécnica de Madrid ETSI de Telecomunicación Departamento de Ingeniería Electrónica Circuitos Electrónicos (Plan 2010) Curso 2012-2013 Manual de referencia de la tarjeta BASYS 2 Álvaro de

Más detalles

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos Pablo Huerta Pellitero Luis Rincón Córcoles ÍNDICE Bibliografía

Más detalles

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016)

Sistemas Digitales - Examen temas 1, 2 y 3 - (6 de Abril 2016) Sistemas Digitales - Examen temas, 2 y 3 - (6 de Abril 206) EXAMEN RESUELTO Problema-. Modelo-A (Calificación 0 puntos) Se quiere diseñar un circuito digital, tal que, dado un número en código octal de

Más detalles

CONTADORES. Definición. Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos.

CONTADORES. Definición. Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos. CONTADORES Definición Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos Descripción VHDL Ejercicios Definición Un contador es un circuito digital

Más detalles

VHDL. Lenguaje de descripción hardware Estructura Básica de diseño

VHDL. Lenguaje de descripción hardware Estructura Básica de diseño VHDL. Lenguaje de descripción hardware Estructura Básica de diseño 2007 A.G.O. All Rights Reserved Estructura de un diseño en VHDL LIBRARY declaraciones VHDL estructura básica ENTITY caja negra ARCHITECTURE

Más detalles

Introducción al VHDL. VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables

Introducción al VHDL. VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables Introducción al VHDL VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables Introducción Lenguaje de descripción de dispositivos Hardware. Diferencias con lenguajes de programación:

Más detalles

SISTEMAS DIGITALES VHDL

SISTEMAS DIGITALES VHDL SD SISTEMAS DIGITALES VHDL Fredy Hernán Riascos Campiño Practica 1a: Implementación de un incrementador: Se he de implementar un modulo incrementador (INC), Este modulo no es mas que un sumador y un registro

Más detalles

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER Electrónica Digital Departamento de Electrónica VHDL Bioingeniería Facultad de Ingeniería - UNER VHDL VHSIC Hardware Design Language VHSIC Very High Speed Integrated Circuits Verilog Handel C Celóxica

Más detalles

6. Codificadores. Electrónica Digital. Tema

6. Codificadores. Electrónica Digital. Tema 6. Codificadores Un codificador realiza la función inversa al decodificador, es decir, al activarse una de las entradas, en la salida aparece la combinación binaria correspondiente al número decimal activado

Más detalles

Generador de Secuencia Binaria Pseudo Aleatoria

Generador de Secuencia Binaria Pseudo Aleatoria Generador de Secuencia Binaria Pseudo Aleatoria Nota Técnica 12 Cristian Sisterna Introducción La generación de una secuencia pseudo aleatoria de números binarios es muy útil en ciertas ambientes de test

Más detalles

DISEÑO DE CIRCUITOS SECUENCIALES

DISEÑO DE CIRCUITOS SECUENCIALES Sistemas Electrónicos y Automáticos PRÁCTICA 3 DISEÑO DE CIRCUITOS SECUENCIALES 1. OBJETIVO DE LA PRÁCTICA. El objetivo de la presente práctica consiste en modelar el comportamiento de un sistema secuencial

Más detalles

Objetos de VHDL. Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato

Objetos de VHDL. Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato Objetos de VHDL Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato Objetos que se pueden manipular en VHDL y sus tipos -3 clases principales de objetos: SEÑALES: similares

Más detalles

DESCRIPCIÓN DE CIRCUITOS DIGITALES

DESCRIPCIÓN DE CIRCUITOS DIGITALES DESCRIPCIÓN DE CIRCUITOS DIGITALES Circuitos combinacionales Circuitos secuenciales Organización del diseño. Diseño genérico Operaciones iterativas Autores: Luis Entrena, Celia López, Mario García, Enrique

Más detalles

Comparador de 1 bit Tabla de verdad y circuito lógico A B A > B A = B A < B

Comparador de 1 bit Tabla de verdad y circuito lógico A B A > B A = B A < B Comparadores Índice Descripción Comparador de 1 bit Tabla de verdad Circuito lógico Comparador de N bits Circuito comercial 74LS85 Tabla de verdad Circuito lógico Comparador 8 bits serie Comparador 16

Más detalles

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) CUARTA CLASE DE VHDL

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) CUARTA CLASE DE VHDL LABORATORIO E CIRCUITOS IGITALES (2005-II) CUARTA CLASE E VHL CIRCUITOS SECUENCIALES Procesos asíncronos (Latches) Procesos síncronos (flip flops, contadores y registros) CIRCUITOS SECUENCIALES En los

Más detalles

Sumadores. Tipos de sumadores: Half-adder. Full-Adder. Carry-Look-Ahead. Carry-select.

Sumadores. Tipos de sumadores: Half-adder. Full-Adder. Carry-Look-Ahead. Carry-select. Sumadores En electrónica un sumador es un circuito lógico que calcula la operación suma. En los computadores modernos se encuentra en lo que se denomina Unidad aritmético lógica (ALU). Generalmente realizan

Más detalles

DISEÑO DE PROCESADORES DEDICADOS. Práctica. No. 8 Circuitos de Barrido y Escaneo: Teclado Matricial de Propósito General y Matriz de LEDs

DISEÑO DE PROCESADORES DEDICADOS. Práctica. No. 8 Circuitos de Barrido y Escaneo: Teclado Matricial de Propósito General y Matriz de LEDs DISEÑO DE PROCESADORES DEDICADOS Práctica. No. 8 Circuitos de Barrido y Escaneo: Teclado Matricial de Propósito General y Matriz de LEDs DR. JUAN CARLOS HERRERA LOZADA jlozada@ipn.mx Instituto Politécnico

Más detalles

Tema 4 - Bloques combinacionales

Tema 4 - Bloques combinacionales - Bloques combinacionales Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx

Más detalles

Práctica I.- Introducción a los Sistemas Secuenciales

Práctica I.- Introducción a los Sistemas Secuenciales Práctica I.- Introducción a los Sistemas Secuenciales 1.1.- Objetivos. El objetivo de esta práctica consiste en consolidar las diferencias entre sistemas combinacionales y secuenciales 1.2.- Problema.

Más detalles

Universidad Autónoma de Querétaro Facultad de Ingeniería

Universidad Autónoma de Querétaro Facultad de Ingeniería Universidad Autónoma de Querétaro Facultad de Ingeniería Manual de Prácticas Sistemas Digitales con Lógica Reconfigurable (SDLRI) Que como parte de los requisitos para obtener el grado de Ingeniero en

Más detalles

Práctica IV Procesador DLX con unidades de entrada/salida

Práctica IV Procesador DLX con unidades de entrada/salida Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 29 Práctica IV Procesador DLX con unidades de entrada/salida 4.1. Introducción La utilización normal de las unidades de entrada/salida

Más detalles

Objetos de VHDL.! Un objeto en VHDL es un elemento que contiene. un valor de tipo específico de dato

Objetos de VHDL.! Un objeto en VHDL es un elemento que contiene. un valor de tipo específico de dato Objetos de VHDL! Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato Objetos que se pueden manipular en VHDL y sus tipos -3 clases principales de objetos: SEÑALES: similares

Más detalles

GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL.

GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL. 24/9/2013 ÁREA DE TECNOLOGÍA ELECTRÓNICA UBU GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL. Manual de Inicio Miguel Ángel Lozano Pérez Contenido 1.1 GUÍA DE SOFTWARE... 3 1.1.1 Primer paso: crear un diseño nuevo...

Más detalles

Simulación y Síntesis con VHDL

Simulación y Síntesis con VHDL Simulación y Síntesis con VHDL Diseño de Computadores: Síntesis Lógica Apuntes de Prácticas sobre Diseño y Simulación con VHDL empleando el entorno de XILINX: ISE Manuel J. Bellido Octubre 2012 1 Contenidos

Más detalles

Sesión 3: Modelo temporal: VHDL concurrente. S3 1 Laboratorio de Estructura de Computadores Curso 04 / 05

Sesión 3: Modelo temporal: VHDL concurrente. S3 1 Laboratorio de Estructura de Computadores Curso 04 / 05 Sesión 3: Modelo temporal: VHDL concurrente S3 1 Dominios secuencial y concurrente en VHDL ENTITY dispositivo IS PORT(pe1,...:IN tipoe; ps1,...:out tipos; pes1,...:inout tipoes END dispositivo ARCHITECTURE

Más detalles

ELECTRÓNICA DIGITAL 24-I Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos).

ELECTRÓNICA DIGITAL 24-I Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos). ELECTRÓNICA DIGITAL 24-I-2014 PREGUNTAS TEÓRICO PRÁCTICAS: 1. Determinar el valor decimal de los números expresados en Complemento a 2. (0.25 puntos). 11111100-4 10101010-86 01010110 86 2. Determinar el

Más detalles

Practica No. 1 Circuitos Secuenciales

Practica No. 1 Circuitos Secuenciales Practica No. 1 Circuitos Secuenciales Objetivo: Conocer la estructura y características de la tarjeta de dispositivos lógicos programables TerasIC proporcionada a los alumnos, el software de operación

Más detalles

Operadores y atributos en VHDL [1]

Operadores y atributos en VHDL [1] Operadores y atributos en VHDL [1] Sistemas Digitales Avanzados Universidad Técnica Particular de Loja Prof: Diego Barragán Guerrero Oct. 2014 - Feb. 2015 Sistemas Digitales Avanzados (UTPL) IET Oct. 2014

Más detalles

Laboratorio de Arquitectura de Computadoras

Laboratorio de Arquitectura de Computadoras Laboratorio de Arquitectura de Computadoras Estándar IEEE 1164 de VHDL Oscar Alvarado Nava oan@azc.uam.mx Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana,

Más detalles

CIRCUITOS MULTIPLEXORES Y DEMULTIPLEXORES

CIRCUITOS MULTIPLEXORES Y DEMULTIPLEXORES Oscar Ignacio Botero Henao. CIRCUITOS MULTIPLEXORES Y DEMULTIPLEXORES MULTIPLEXOR (MUX) Un Multiplexor (MUX) es un circuito combinacional al que entran varios canales de datos, y sólo salen los datos del

Más detalles

2. Sumadores. Diagrama. Donde a y b son los bits a sumar, S el. resultado de la suma y C el acarreo generado. b EB. Circuito. Tabla de verdad.

2. Sumadores. Diagrama. Donde a y b son los bits a sumar, S el. resultado de la suma y C el acarreo generado. b EB. Circuito. Tabla de verdad. 2. Sumadores Los sumadores son cirtuitos muy utilizados en muchos tipos de sistemas digitales en los que se procesan datos numéricos. Para comprender su diseño y funcionamiento se parte del diseño de un

Más detalles

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX Índice GUÍA DE INICIO AL SOFTWARE ISE DE XILINX... 1 1. Introducción... 1 2. Inicio del software ISE (Integrated Software Environment)

Más detalles

Diseño electrónico digital integrado: Back to basics. Sep-2011 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid

Diseño electrónico digital integrado: Back to basics. Sep-2011 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid Diseño electrónico digital integrado: Back to basics Sep-2011 F.Barbero Escuela Politécnica Superior - Universidad Autónoma de Madrid Flip-flop D con Reset Asíncrono Captura un dato con el flanco de reloj

Más detalles

Laboratorio de Arquitectura de Computadoras

Laboratorio de Arquitectura de Computadoras Laboratorio de Arquitectura de Computadoras CPU de cuatro instrucciones Oscar Alvarado Nava oan@azc.uam.mx Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana,

Más detalles

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas. Tema 2. Funciones Lógicas Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas. Representación de Circuitos Digitales Representación esquemática. Representación

Más detalles

Electrónica Digital. Actividad Dirigida. Implementación de un Cronómetro Digital

Electrónica Digital. Actividad Dirigida. Implementación de un Cronómetro Digital Electrónica Digital Actividad Dirigida Implementación de un Cronómetro Digital Trabajo a realizar La actividad consiste en la implementación de un cronómetro digital con capacidad de cuenta de minutos

Más detalles

Introducción al VHDL

Introducción al VHDL Introducción al VHDL Curso de Diseño de Circuitos y Sistemas Electrónicos - Grupo 43 Giancarlo Sportelli Biomedical Image Technologies - Departamento de Ingeniería Electrónica E.T.S.I. de Telecomunicación

Más detalles

Tutorial I Diseño de una máquina de refrescos utilizando el WebPack de XILINX TM

Tutorial I Diseño de una máquina de refrescos utilizando el WebPack de XILINX TM Tutorial I Diseño de una máquina de refrescos utilizando el WebPack de XILINX TM Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 2 1.1. Introducción Al ejecutar el software

Más detalles

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2013

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2013 Solución al examen de Septiembre 2013 PREGUNTA 1 (2 puntos) Tomando como base el siguiente código VHDL, dibuje el cronograma de evolución de las señales clk, x, a, b, c e y entre los instantes 0 y 1000

Más detalles

2384-27. ICTP Latin-American Advanced Course on FPGADesign for Scientific Instrumentation. 19 November - 7 December, 2012

2384-27. ICTP Latin-American Advanced Course on FPGADesign for Scientific Instrumentation. 19 November - 7 December, 2012 2384-27 ICTP Latin-American Advanced Course on FPGADesign for Scientific Instrumentation 19 November - 7 December, 2012 Sequential Logic Described in VHDL - A Design Example ARTECHE DIAZ Raul Center of

Más detalles

Arquitectura de Computadores. Práctica 1: Diseño Hardware de Procesadores. Práctica 1/1

Arquitectura de Computadores. Práctica 1: Diseño Hardware de Procesadores. Práctica 1/1 Arquitectura de Computadores Práctica 1: Diseño Hardware de Procesadores Práctica 1/1 Práctica 1 Ejercicio 1: Modelado VHDL de la etapa IF en el procesador DLX32 Ejercicio 2: Ampliación Y Especialización

Más detalles

ÍNDICE. Sistemas Electrónicos Digitales Práctica 2

ÍNDICE. Sistemas Electrónicos Digitales Práctica 2 ÍNDICE Índice... 1 Descripción de la práctica... 2 Características del FPGA... 2 Características del Modulo de Audio... 2 Descripción del código de programa... 3 Máquina de estados... 3 ROM de Notas...

Más detalles

CAPITULO 5 GENERADOR DIGITAL DE TREN DE PULSOS PROGRAMABLE

CAPITULO 5 GENERADOR DIGITAL DE TREN DE PULSOS PROGRAMABLE CAPÍTULO B. GENERADOR DIGITAL DE TREN DE PULSOS PROGRAMABLE CAPITULO 5 GENERADOR DIGITAL DE TREN DE PULSOS PROGRAMABLE CONTENIDO 5.1 Introducción. 5.2 Diseño de un generador digital de tren de pulsos programable

Más detalles

Dispositivos y Sistemas Programables Avanzados

Dispositivos y Sistemas Programables Avanzados Dispositivos y Sistemas Programables Avanzados Autores: Antonio Calomardre Jordi Zaragoza Índice: Práctica 1: Barra de Leds... 3 1. Introducción...4 2. Descripción del diseño...4 3. Procedimiento a Seguir...5

Más detalles

Arquitectura de Computadoras Practica No. 1 Circuitos Secuenciales

Arquitectura de Computadoras Practica No. 1 Circuitos Secuenciales Arquitectura de Computadoras Practica No. 1 Circuitos Secuenciales Objetivo: Conocer la estructura y características de la tarjeta de los dispositivos lógicos programables que se dispone en el laboratorio,

Más detalles

+ Máquinas de Estado Finitas

+ Máquinas de Estado Finitas + Máquinas de Estado Finitas Las máquinas de estado pueden ser: SÍNCRONAS: Necesitan de la intervención de un pulso de reloj. Si la entrada participa también en la salida se denomina Máquina de estado

Más detalles

PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE

PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE TEMA 3. Modelos de sistemas con VHDL Curso 05/06 1 TEMA 3. Modelos de sistemas digitales 3.1 Sistemas combinacionales

Más detalles

Tema 2. Funciones Lógicas. Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL.

Tema 2. Funciones Lógicas. Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL. Tema 2. Funciones Lógicas Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL. Introducción al VHDL Definición de las estructuras básicas. Entidades: genéricos y puertos. Tipos

Más detalles

VHDL Y FPGA LENGUAJE VHDL

VHDL Y FPGA LENGUAJE VHDL VHDL Y FPGA LENGUAJE VHDL VHDL es un lenguaje de alto nivel que describe todas las características de circuitos electrónicos digitales de variada complejidad. El significado de las siglas VHDL es V de

Más detalles

4. SUMADORES EN BINARIO PURO (I)

4. SUMADORES EN BINARIO PURO (I) TEMA 3: SISTEMAS ARITMÉTICOS Introducción y objetivos (3). Representación y codificación de la información (4-7) 2. Sistemas numéricos posicionales. Binario, hexadecimal, octal, y BCD. (8-33) 3. Números

Más detalles

Planificaciones Sistemas Digitales. Docente responsable: ALVAREZ NICOLAS. 1 de 5

Planificaciones Sistemas Digitales. Docente responsable: ALVAREZ NICOLAS. 1 de 5 Planificaciones 8641 - Sistemas Digitales Docente responsable: ALVAREZ NICOLAS 1 de 5 OBJETIVOS El objetivo de la materia es aprender a diseñar arquitecturas digitales utilizando como herramienta los lenguajes

Más detalles

4.5. Procedimiento de síntesis

4.5. Procedimiento de síntesis 4.5. Procedimiento de síntesis En este apartado se resumen los pasos a seguir para completar la implementación de un sistema digital en un dispositivo programable: descripción del sistema mediante uno

Más detalles

Digital III. El Microprocesador i80c86

Digital III. El Microprocesador i80c86 Digital III El Microprocesador i80c86 Pinout del Microprocesador i80c86 ADDRESS / DATA Bus Oscilador a Cristal Decodificador de Instrucciones & Unidad de Control Bus de direcciones / Datos (Multiplexado)

Más detalles

SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL.

SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL. SÍNTESIS DE CIRCUITOS DIGITALES CON VHDL. 1 Proceso automático, realizado por una herramienta software, para la generación de una representación con puertas lógicas de una descripción VHDL. Las herramientas

Más detalles

Convertidores Analógico - Digital y su Interfaz con Dispositivos de Lógica Programable

Convertidores Analógico - Digital y su Interfaz con Dispositivos de Lógica Programable Convertidores Analógico - Digital y su Interfaz con Dispositivos de Lógica Programable Juan Carlos Herrera Lozada Centro de Innovación y Desarrollo Tecnológico en Cómputo (CIDETEC IPN) e-mail: jlozada@ipn.mx

Más detalles

Tema 7. Análisis de Circuitos Secuenciales

Tema 7. Análisis de Circuitos Secuenciales Tema 7. Análisis de Circuitos Secuenciales Máquinas de estado finito (FSM). Análisis de circuitos secuenciales síncronos. Introducción al diseño secuenciales síncronos. de circuitos Contadores. Registros

Más detalles

Memorias ROM: FPGA-VHDL Cómo???

Memorias ROM: FPGA-VHDL Cómo??? Memorias ROM: FPGA-VHDL Cómo??? Nota Técnica 03 Cristian Sisterna Introducción Básicamente hay dos formas de que una memoria ROM sea implementada en un FPGA a partir del código VHDL: - Deduciendo la memoria

Más detalles

Hardware Libre: Clasificación y desarrollo de hardware reconfigurable en entornos GNU/Linux

Hardware Libre: Clasificación y desarrollo de hardware reconfigurable en entornos GNU/Linux Hardware Libre: Clasificación y desarrollo de hardware reconfigurable en entornos GNU/Linux Iván González, Juan González, Francisco Gómez-Arribas Escuela Politécnica Superior Universidad Autónoma de Madrid

Más detalles

Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE. Ing. Arturo J. Miguel de Priego Paz Soldán.

Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE. Ing. Arturo J. Miguel de Priego Paz Soldán. Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE Ing. Arturo J. Miguel de Priego Paz Soldán www.tourdigital.net Chincha, Perú 30 de octubre de 2008 Capítulo 4 DESCODIFICADORES

Más detalles

5.1. Introducción a los sistemas digitales

5.1. Introducción a los sistemas digitales 5.. Introducción a los sistemas digitales 5... Sistemas digitales [ Wakerly.2 pág. 3] 5..2. Puertas y señales lógicas [ Wakerly.3 pág. 6] 5..3. Representación de la lógica digital [ Wakerly. pág. 9] 5..4.

Más detalles

LENGUAJE VHDL. Ing. Wilmer Naranjo 1

LENGUAJE VHDL. Ing. Wilmer Naranjo 1 LENGUAJE VHDL Ing. Wilmer Naranjo 1 DESCRIPCIÓN EN VHDL Al inicio de los 80 s diversos grupos de investigadores empiezan a crear y desarrollar los llamados "lenguajes de descripción de hardware" cada uno

Más detalles

Laboratorio 5: Tarjeta de Desarrollo Spartan-3

Laboratorio 5: Tarjeta de Desarrollo Spartan-3 Laboratorio 5: Tarjeta de Desarrollo Spartan-3 Objetivos: Aprender el uso de dispositivos controlados por una FPGA en una tarjeta de desarrollo. Conocer la interfaz PS/2, el protocolo de comunicación y

Más detalles

Práctica III Introducción a la descripción VHDL del procesador DLX

Práctica III Introducción a la descripción VHDL del procesador DLX Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 3 Práctica III Introducción a la descripción VHDL del procesador DLX 3.1. Implementación del procesador DLX La configuración

Más detalles

MÓDULO Nº10 CONVERTIDORES DIGITAL ANALÓGICO

MÓDULO Nº10 CONVERTIDORES DIGITAL ANALÓGICO MÓDULO Nº0 CONVERTIDORES DIGITAL ANALÓGICO UNIDAD: CONVERTIDORES TEMAS: Introducción al tratamiento digital de señales. Definición y Funcionamiento. Parámetros Principales. DAC00 y circuitos básicos. OBJETIVOS:

Más detalles

Módulos aritméticos I

Módulos aritméticos I Práctica 3 Módulos aritméticos I 1 Introducción El diseño de ALUs que sean capaces de realizar cálculos a alta velocidad es fundamental dentro del diseño de la CPU. Con este objetivo, se plantea en esta

Más detalles

VHDL. Carlos Andrés Luna Vázquez. Lección 5. Sentencias concurrentes

VHDL. Carlos Andrés Luna Vázquez. Lección 5. Sentencias concurrentes VHDL Carlos Andrés Luna Vázquez Lección 5 Sentencias concurrentes Índice Introducción Niveles de abstracción del modelado con HDL Estilos descriptivos del modelado con HDL Ventajas y limitaciones de los

Más detalles

LECCIÓN Nº 06 DISEÑO DE CONTADORES SINCRONOS

LECCIÓN Nº 06 DISEÑO DE CONTADORES SINCRONOS LECCIÓN Nº 06 DISEÑO DE CONTADORES SINCRONOS 1. DISPOSITIVOS SECUENCIALES Los circuitos biestables son aquellos que poseen dos estados estables que se pueden mantener por tiempo indefinido, lo que nos

Más detalles

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE 1 SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE tiempo de acceso RAM, algunas veces se usa cerrojo en el Juan Manuel Narváez Sánchez, Carlos Andrés Moreno Tenjica, Estudent Member IEEE

Más detalles

Tema 2 Descripción de VHDL (2/2)

Tema 2 Descripción de VHDL (2/2) TECNOLOGÍA DE COMPUTADORES Tema 2 Descripción de VHDL (2/2) Agustín Álvarez Marquina Tipos de sentencias en VHDL Sentencias concurrentes PROCESS Asignación de señal BLOCK Llamadas a procedimientos Llamadas

Más detalles

Circuitos Electrónicos Digitales E.T.S.I. Telecomunicación Universidad Politécnica de Madrid. Descripciones funcionales y estructurales

Circuitos Electrónicos Digitales E.T.S.I. Telecomunicación Universidad Politécnica de Madrid. Descripciones funcionales y estructurales Circuitos Electrónicos Digitales E.T.S.I. Telecomunicación Universidad Politécnica de Madrid Descripciones funcionales y estructurales Descripciones funcionales y estructurales. Introducción al lenguaje

Más detalles

Sistemas Electrónicos Digitales. PRACTICA nº 7

Sistemas Electrónicos Digitales. PRACTICA nº 7 PRACTICA nº 7 Diseño de Memorias RAM y ROM. Síntesis e implementación sobre dispositivos FPGA. Síntesis empleando FFs y síntesis utilizando bits de RAM dedicados Objetivos: Descripción y síntesis de memorias

Más detalles

8. Multiplexores Digitales

8. Multiplexores Digitales 8. Multiplexores Digitales El multiplexor permite seleccinar del total de líneas de entrada una única y trasladar la información que conlleva dicha línea a la salida del circuito. Suele utilizarse para

Más detalles