Diseño sobre FPGA de una Unidad Aritmética Decimal

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

Download "Diseño sobre FPGA de una Unidad Aritmética Decimal"

Transcripción

1 TITULACIÓN: Ingeniería Técnica Industrial en Electrónica Industrial AUTOR: Alejandro Baena Alonso DIRECTOR: Jean-Pierre Deschamps FECHA: Febrero / 2010

2 1. ÍNDICE GENERAL

3 Índice general 2. INTRODUCCIÓN 2.1 Objetivos del proyecto Aspectos básicos Aritmética decimal Código decimal codificado en binario (BCD) Dispositivos programables Diseño de Sistemas Electrónicos Tendencias generales en Diseño Electrónico Lenguajes de descripción del hardware Qué son los lenguajes de descripción del hardware? El lenguaje VHDL Introducción al lenguaje VHDL Características Niveles de descripción Estructura de una descripción Metodología de diseño Dispositivos lógicos programables Componentes IP (IP cores) Prototipado rápido Spartan-3E Starter Kit Board MEMORIA DESCRIPTIVA 3.1 La Unidad Aritmética Decimal Bloques de la unidad Sumador/Restador Sumador Sumador de 1 dígito BCD (bloque one_digit_adder.vhd ) Sumador de n dígitos decimales Restador Cálculo del complemento a 9 (bloque nine_complement.vhd ) Sumador/Restador en complemento a 10 n Sumador/Restador, representación con signo y magnitud (bloque n_adder_subs.vhd ) Multiplicador Multiplicador de 1x1 dígitos BCD (bloque one_digit_multiplier.vhd ) Multiplicador de Nx1 dígitos BCD (bloque n_by_one_multiplier.vhd ) Multiplicador de NxM dígitos BCD (bloque n_by_m_multiplier.vhd ) Divisor Algoritmo de división binaria Algoritmo de división BCD Error generado Divisor BCD (bloque divider.vhd ) Diseño de la Unidad Aritmética Decimal

4 Índice general 4. MEMORIA EXPERIMENTAL 4.1 Descripción del proceso Especificaciones Elementos necesarios Arquitectura a desarrollar Módulos IP de terceros utilizados Microcontrolador PicoBlaze (módulo kcpsm.vhd ) Interfaz LCD (módulo lcd_interface.vhd ) Memoria de programa (módulo program_memory.vhd ) Generación del circuito (módulo main.vhd ) Asignación de pines en la FPGA (archivo pins.ucf ) Implementación en la FPGA Generación del archivo Implementación en la FPGA ANEXOS 5.1 Modelos VHDL Sumador de 1 dígito BCD (one_digit_adder.vhd) Complemento a 9 (nine_complement.vhd) Sumador/Restador de n dígitos decimales (n_adder_subs.vhd) Multiplicador de 1x1 dígitos BCD (one_digit_multiplier.vhd) Multiplicador de Nx1 dígitos BCD (n_by_one_multiplier.vhd) Multiplicador de NxM dígitos BCD (n_by_m_multiplier.vhd) Divisor BCD (divider.vhd) Unidad Aritmética Decimal (arithmetic_unit.vhd) Memoria de programa (program_memory.vhd) Circuito completo (main.vhd) Programa en lenguaje ensamblador (decimal_unit.asm) Asignación de pines en la Spartan-3E (pins.ucf) BIBLIOGRAFÍA

5 2. INTRODUCCIÓN

6 Introducción 2.1 Objetivos del proyecto Aspectos básicos Aritmética decimal Código decimal codificado en binario (BCD) Dispositivos programables Diseño de Sistemas Electrónicos Tendencias generales en Diseño Electrónico Lenguajes de descripción del hardware Qué son los lenguajes de descripción del hardware? El lenguaje VHDL Introducción al lenguaje VHDL Características Niveles de descripción Estructura de una descripción Metodología de diseño Dispositivos lógicos programables Componentes IP (IP cores) Prototipado rápido Spartan-3E Starter Kit Board

7 Introducción 2.1 Objetivos del proyecto El objetivo de este proyecto es el diseño del modelo VHDL de una Unidad Aritmética Decimal, que pueda funcionar como coprocesador/acelerador dentro de otro sistema más complejo. Por tanto, se trata de un componente virtual utilizable en cualquier tipo de sistemas que requieran operar en decimal. Dicha unidad permitirá realizar las operaciones aritméticas básicas siempre operando en decimal como son la suma, resta, multiplicación y división de dos valores decimales. Posteriormente, y a modo de testeo del modelo resultante, se implementará sobre una FPGA, la SPARTAN-3E modelo XC3S500E de XILINX. Para la creación y simulación de la unidad aritmética decimal se ha utilizado el programa MODELSIM PE en su versión STUDENT EDITION. Para la implementación en la FPGA, se ha utilizado el ensamblador PBLAZ IDE para la creación de la memoria de programa, y el paquete ISE DESIGN SUITE de XILINX para la síntesis y grabación del código en la placa de pruebas. 2.2 Aspectos básicos Aritmética decimal Los sistemas que operan en decimal son preferibles a los que lo hacen en binario en un gran número de aplicaciones aritméticas informáticas. El motivo principal no es la complejidad de las interfaces de codificación y decodificación (que también influye), sino principalmente la falta de precisión y claridad de los resultados. La aritmética decimal desempeña un papel clave en el procesamiento de datos en diversos entornos, ya sean comerciales, financieros o de aplicaciones basadas en Internet, entre otros. Y las prestaciones que estos requieren no quedan satisfechas con las unidades convencionales que internamente operan en binario. En consecuencia, los procesadores de propósito general que incluyen la implementación hardware de aritmética decimal están adquiriendo relevancia Actualmente, el sistema decimal codificado en binario (BCD) es utilizado en el diseño de algoritmos de aritmética decimal; aunque otros sistemas de codificación podrían resultar interesantes, el sistema BCD parece la mejor opción por el momento

8 Introducción Código decimal codificado en binario (BCD) El código decimal codificado en binario (BCD, Binary Coded Decimal, también conocido como código 8421) codifica los dígitos decimales del 0 al 9 mediante sus representaciones binarias sin signo de 4 bits, desde 0000 a Las palabras de código restantes, de 1010 a 1111, no se utilizan. Las conversiones entre las representaciones BCD y decimal son triviales e implican la sustitución directa de cuatro bits por cada dígito decimal. El decimal codificado en binario es un código ponderado, puesto que cada dígito decimal puede obtenerse a partir de su palabra de código asignando un peso fijo a cada bit de palabra de código. Los pesos para los bits BCD son 8, 4, 2, 1, y por esta razón el código se denomina en ocasiones código En la siguiente tabla se representa la correspondencia entre los números decimales y las combinaciones binarias del código BCD: Decimal BCD Tabla 2.1. Correspondencia entre los dígitos decimales y código BCD Dispositivos programables Hoy en día, las FPGA (Field Programmable Gate Arrays, de las que se hablará más adelante) son una de las tecnologías disponibles para el desarrollo de sistemas electrónicos. Representan una atractiva opción para la producción de pequeñas cantidades ya que sus costes fijos (coste del prototipo, de la primera unidad) son bastante más bajos que los correspondientes en ASIC (Application-Specific Integrated Circuit, circuitos integrados de aplicación específica). Además, en pos de reducir el tamaño y por tanto el coste unitario, una posibilidad interesante es reconfigurarlas mientras operan de modo que el mismo dispositivo pueda ejecutar diferentes funciones predefinidas

9 Introducción 2.3 Diseño de Sistemas Electrónicos Tendencias generales en Diseño Electrónico Actualmente los sistemas electrónicos están muy presentes en la mayoría de ámbitos, desde la electrónica de consumo a los sistemas de control industrial, pasando por las aplicaciones para automoción o seguridad, y un largo etcétera El problema principal radica en la complejidad del diseño de muchos de los elementos, donde se exige, por ejemplo, que sean de fácil utilización y adaptables a varias aplicaciones, que consuman pocos recursos y que puedan estar rápidamente a la venta La tecnología actual de circuitos integrados permite realizar e integrar estos complejos sistemas en muy poco espacio; son los llamados sistemas empotrados (o embebidos) o SoC (System on Chip). Estos sistemas, como pueden ser los ASIC (Application-Specific Integrated Circuit) o las FPGA, permiten integrar en el mismo dispositivo uno o más microprocesadores o microcontroladores, coprocesadores, diversos bloques de memoria de diferentes tipos, periféricos de entrada-salida, osciladores, buses para interconectar los bloques, etc. Estos sistemas embebidos para aplicaciones específicas incluyen hardware y software específico. En el caso de las FPGA, al ser dispositivos reconfigurables, son altamente útiles para el desarrollo de prototipos o pequeñas cantidades, a un precio razonablemente bajo Lenguajes de descripción del hardware Qué son los lenguajes de descripción del hardware? Los lenguajes de descripción hardware (HDL, Hardware Description Language) surgen de la necesidad de los diseñadores de disponer de un conjunto de herramientas que permitan describir los sistemas digitales de formas diferentes, facilitando el diálogo entre los propios diseñadores, aunque también entre las herramientas de diseño asistido por ordenador (CAD, Computer-Aided Design) y entre diseñadores y herramientas. Los sistemas de desarrollo basados en lenguajes HDL permiten especificar y modelar la estructura y función de un circuito digital; incluyen herramientas para compilar, simular y sintetizar sistemas digitales. Estas herramientas de programación se utilizan para comprobar el funcionamiento del modelo antes de que sea construido. Actualmente, los lenguajes HDL más utilizados son VHDL y Verilog, ya que están estandarizados por el IEEE (Institute of Electrical and Electronic Engineers). Nosotros nos centraremos en el primero de ellos

10 Introducción El lenguaje VHDL Introducción al lenguaje VHDL VHDL proviene de VHSIC (Very High Speed Integrated Circuit) Hardware Description Language. VHDL es un lenguaje de descripción del hardware que puede utilizarse para modelar, documentar, simular, verificar y sintetizar un sistema digital. Por tanto, abarca el ciclo completo de diseño (salvo el trazado físico o layout) desde las especificaciones iniciales hasta la construcción del prototipo hardware. Proporciona el soporte necesario para especificar su comportamiento o estructura, incluyendo jerarquías. Asimismo, es útil para metodologías de diseño ascendentes (bottom-up) como, sobre todo, descendentes (topdown). La semántica y construcciones del lenguaje permiten también diseñar con facilidad bancos de prueba (test-benches), mediante los que se lleva a cabo la simulación de los sistemas modelados Características VDHL es un lenguaje de descripción hardware de ámbito general derivado del lenguaje de alto nivel ADA (que es el lenguaje para programar sistemas en tiempo real por excelencia). Dispone de tipos abstractos para definir el formato y valores de señales, variables, constantes, etc., y proporciona amplias facilidades para la realización de algoritmos. Admite casi todos los niveles de descripción, desde el algorítmico (nivel más alto) hasta el lógico (nivel más bajo). Para ello proporciona herramientas semánticas y sintácticas que se pueden agrupar así: Aquellas orientadas a las descripciones del comportamiento del circuito. Aquellas orientas a la descripción de las relaciones entre los distintos bloques de un circuito, es decir, su estructura. Al realizar una descripción VHDL es importante elegir adecuadamente el nivel de función del objetivo perseguido. Por ejemplo, si se pretende sintetizar la descripción realizada, es decir, si el objetivo final es obtener un conjunto de puertas e interconexiones, no se debe emplear el nivel algorítmico, pues en general las herramientas actuales de síntesis no procesan de forma eficiente estas descripciones. Sin embargo, este nivel sí es adecuado cuando el objetivo es comprobar que un sistema complejo funciona correctamente, pues se puede describir y simular de una forma rápida y eficaz

11 Introducción Niveles de descripción El lenguaje VHDL presenta tres métodos básicos para describir un circuito digital por software: El nivel algorítmico es el que presenta un mayor grado de abstracción (alto nivel). Aquí el diseñador solo describe el comportamiento del sistema, sin preocuparse de las señales o componentes internos del mismo. También llamado nivel de comportamiento o behavior. El nivel RTL (Register-Transfer Level, nivel de transferencia de registros) proporciona un cierto grado de abstracción con respecto al hardware, pero el diseñador se ve obligado a describir las distintas señales que interactúan en un circuito y su comportamiento en función de las entradas por medio de ecuaciones lógicas y sentencias de asignación. También conocido como nivel de flujo de datos. El nivel lógico describe la estructura interna de un circuito basándose en unos componentes básicos definidos previamente (equivaldría a un diagrama lógico) Estructura de una descripción Toda descripción en VHDL está constituida al menos por tres tipos de elementos: bibliotecas (libraries), entidades (entities) y arquitecturas (architectures). El diseñador generalmente realiza la descripción de las entidades empleando elementos almacenados en las bibliotecas. En la declaración de la entidad se define el diseño como si fuera un producto encapsulado, indicando el número de pines, los puertos de entrada y salida. La entidad puede definir bien las entradas y salidas de un circuito integrado por diseñar o puede definir la interfaz de un módulo que será utilizado en un diseño más grande. Para que la descripción de un circuito sea completa se necesita, además de su declaración como entidad, una especificación de su funcionamiento. La arquitectura es la encargada de ello. Es posible realizar diversas descripciones del funcionamiento del circuito, por lo que pueden existir varias arquitecturas para una misma entidad

12 Introducción Metodología de diseño La Figura 2.1 muestra el flujo de diseño de un circuito en VHDL, desde su concepción hasta su fabricación. Figura 2.1. Flujo de diseño en VHDL Una vez finalizada la prueba del concepto, se pasa al diseño detallado. Dependiendo de la herramienta de síntesis que se utilice y de las especificaciones del circuito, la descripción VHDL estará desarrollada en un nivel de abstracción mayor o menor (desde un nivel algorítmico a uno lógico). Por último se aborda la síntesis del circuito, es decir, el paso de una descripción en VHDL a un circuito real. El proceso de diseño puede terminar antes si el objetivo final no es la fabricación sino, por ejemplo, la creación de componentes de biblioteca para uso posterior

13 Introducción Dispositivos lógicos programables Existen dos grandes grupos de dispositivos lógicos programables: PLDs (Programmable Logic Device, dispositivo lógico programable) y FPGAs (Field Programmable Gate Array, matriz de puertas configurables). Figura 2.2. Tipos de lógica programable Los PLDs están basados en una matriz AND + OR. Dentro de los PLDs encontramos las PROM (Programmable Read Only Memory), las PAL (Programmable Logic Array) y las PAL (Programmable Array Logic). Figura 2.3. Familia de los PLD Dentro de las PAL se encuentran los CPLDs (Complex PLD), compuestos por la integración de PLDs (PAL/GAL o PLA). Están formados por bloques lógicos y matrices de interruptores, donde cada bloque lógico corresponde a un PLD. Figura 2.4. Ejemplo de arquitectura de CPLD (con 4 elementos lógicos o bloques programables)

14 Introducción Las FPGA están compuestas por una matriz de elementos lógicos cuya interconexión y funcionalidad se puede programar. En comparación con los dispositivos CPLD, difieren en la arquitectura, no utilizan matrices de tipo PAL/PLA y tienen unas densidades mucho mayores que los anteriores. Una FPGA típica tiene un número de puertas equivalentes mucho mayor que un dispositivo CPLD típico. Los elementos que implementan las funciones lógicas en las FPGA son, generalmente, mucho más pequeños que en los CPLD, por lo que hay muchos más de esos elementos. Asimismo, en las FPGA, las interconexiones programables están organizadas según una disposición de filas y columnas. Figura 2.5. Arquitectura interna de una FPGA Los tres elementos básicos en una FPGA son el bloque configurable (CLB, Configurable Logic Block), las interconexiones y los bloques de entrada/salida (E/S). Los bloques CLB de una FPGA son menos complejos que sus homónimos en un CPLD, pero suele haber muchos más de ellos. La matriz distribuida de interconexiones programables permite interconectar los bloques CLB entre sí y conectarlos a las entradas y a las salidas. Los bloques de E/S situados alrededor del perímetro de las estructura proporcionan un acceso de entrada/salida o bidireccional, individualmente seleccionable, hacia el mundo exterior. Estructura de los bloques lógicos configurables Cada bloque lógico de la FPGA está formado por múltiples módulos lógicos más pequeños (que son los componentes básicos) y por una serie de interconexiones programables locales que se emplean para conectar entre sí los módulos lógicos que componen el CLB. CLB Módulo lógico Módulo lógico Interconexión local Módulo lógico Figura 2.6. Arquitectura de un CLB

15 Introducción Un módulo lógico puede configurarse para implementar lógica combinacional, lógica registrada o una combinación de ambas. Se emplea un flip-flop que forma parte de la lógica asociada para implementar lógica registrada. A continuación se muestra un diagrama de bloques de un módulo lógico típico basado en LUT (Look-Up Table, tipo de memoria programable que se utiliza para generar funciones booleanas): A 0 A 1 Salida suma de productos LUT Lógica asociada E/S A n-1 Módulo lógico Figura 2.7. Diagrama de bloques básico de un módulo lógico Los dispositivos FPGA son reprogramables, y los de gran tamaño pueden tener decenas de miles de bloques CLB, además de memoria y otros recursos. Por todo ello y la gran flexibilidad que presentan, son ideales para realizar prototipos de manera rápida, en pequeñas cantidades Componentes IP (IP cores) Dentro de una FPGA se puede incluir la funcionalidad de varios circuitos integrados. Esta funcionalidad puede ser desarrollada uno mismo o adquirida a través de terceros. Debido a que estas funcionalidades son como componentes electrónicos, pero sin su parte física, se les suele llamar componentes virtuales. En la industria se les conoce como bloques de propiedad intelectual o IP cores (Intellectual Property). Existen tres tipos de IP cores: Hablamos de soft-core cuando se trata de código sintetizable, similar al código fuente para software o también a descripción a nivel de puerta (netlist). Entendemos por hard-core el caso de una descripción física, a nivel físico (de transistores); estos módulos presentan problemas a la hora de asociar diferentes procesos entre ellos o pasar de una línea de fabricación a otra. Por firm-core nos referimos a un diseño que puede ser modificado en términos de placement & routing o en tecnología de bibliotecas. Los dispositivos FPGA que contienen procesadores integrados y otras funciones implementadas en forma de módulos de hardware (hard-core) y de módulos de software (soft-core) se conocen con el nombre de dispositivos FPGA de plataforma, porque pueden emplearse para implementar un sistema completo sin necesidad de dispositivos externos de soporte. El objetivo de este proyecto es el de crear un IP core o componente IP que realice operaciones en decimal. En este caso se tratará de un soft-core

16 Introducción Prototipado rápido Un sistema completo (hardware y software) y su entorno no puede ser validado únicamente mediante la simulación. El objetivo es comprobar en la práctica el funcionamiento del prototipo a un coste asequible. El prototipado rápido es una posibilidad que facilita enormemente el diseño, mediante la cual un circuito compuesto por una gran cantidad de puertas lógicas puede ser implementado en un circuito integrado configurable, como lo puede ser una FPGA, a partir de una descripción en HDL mediante un simple ordenador personal (PC), sin la necesidad de adquirir o disponer de un equipamiento caro. Y la tecnología que permite dicha técnica la forman las tarjetas de prototipado rápido, que permiten reproducir desde funciones sencillas hasta complejos sistemas en un chip (SoC, System on Chip). Dichas tarjetas incluyen los componentes necesarios para esta misión: dispositivos programables (CPLD, FPGA), memoria de datos y de programa, componentes de entradasalida y conectores (displays, puertos Ethernet, USB, RS-232, conversores analógicodigital y viceversa, interruptores, LEDs ), osciladores internos (reloj del sistema) Un ejemplo de este tipo de dispositivos es la Spartan-3E Starter Kit Board, que utilizaremos para comprobar el funcionamiento de nuestra Unidad Aritmética Decimal. 2.4 Spartan-3E Starter Kit Board La unidad Spartan-3E Starter Kit Board nos proporciona las herramientas necesarias para testear nuestro sistema. Incluye la placa de pruebas con una FPGA Spartan-3E modelo XC3S500E, fuente de alimentación, cable USB para programar el dispositivo, software para sintetizar e implementar nuestro modelo y manuales de referencia. A continuación enumeramos algunas características de la placa: Dispositivos Xilinx integrados: - FPGA de la familia Spartan-3E modelo XC3S500E-4FG320C (con 232 pines de E/S para el usuario, 1164 CLBs o bloque lógicos configurables y celdas o módulos lógicos) - Controlador CPLD CoolRunner-II CPLD (XC2C64A-5VQ44C) - 4 Mbits de memoria PROM Platform Flash Reloj: oscilador de 50 MHz Otra memoria incluida: Mbits de memoria Parallel Flash - 16 Mbits de memoria SPI (Serial Peripheral Interface) Flash - 64 MBytes de memoria DDR SDRAM

17 Introducción Interfaces y conectores: - 4 interruptores tipo pulsador - 4 salidas DAC (Digital-to-Analog Converter) - 2 entradas ADC (Analog-to-Digital Converter) - Conexión Ethernet 10/100 - Puerto USB - 2 puertos serie RS Puerto PS/2 para ratón o teclado - 4 interruptores tipo slide - Display: Pantalla LCD de 2 líneas de 16 caracteres cada una Figura 2.8. Vista superior de la Spartan-3E

18 3. MEMORIA DESCRIPTIVA

19 Memoria descriptiva 3.1 La Unidad Aritmética Decimal Bloques de la unidad Sumador/Restador Sumador Sumador de 1 dígito BCD (bloque one_digit_adder.vhd ) Sumador de n dígitos decimales Restador Cálculo del complemento a 9 (bloque nine_complement.vhd ) Sumador/Restador en complemento a 10 n Sumador/Restador, representación con signo y magnitud (bloque n_adder_subs.vhd ) Multiplicador Multiplicador de 1x1 dígitos BCD (bloque one_digit_multiplier.vhd ) Multiplicador de Nx1 dígitos BCD (bloque n_by_one_multiplier.vhd ) Multiplicador de NxM dígitos BCD (bloque n_by_m_multiplier.vhd ) Divisor Algoritmo de división binaria Algoritmo de división BCD Error generado Divisor BCD (bloque divider.vhd ) Diseño de la Unidad Aritmética Decimal

20 Memoria descriptiva 3.1 La Unidad Aritmética Decimal Nuestro objetivo es la creación del modelo VHDL de una Unidad Aritmética Decimal, es decir, una unidad que, operando en sistema BCD, realice las operaciones de suma, resta, multiplicación y división. Figura 3.1. Representación previa de la Unidad Aritmética Decimal Necesitaremos un sistema que dados dos valores de entrada de n dígitos BCD cada uno, x e y, calcule el resultado z (de 2n dígitos BCD) de la operación que hayamos escogido previamente mediante la señal de entrada operation. Además, contaremos con las señales de entrada start (para iniciar el cálculo interno cuando sea necesario), reset (reiniciar el sistema), clk (señal de reloj) y las de salida carry (acarreo de salida cuando sea necesario) y done (indicador de resultado disponible). Para ello, la primera idea es que deberemos crear el modelo necesario para poder ejecutar cada operación. Unidad aritmética decimal Sumador Restador Multiplicador Divisor Figura 3.2. Estructura interna previa de la Unidad Aritmética Decimal Por consiguiente, nos centraremos primero en el diseño de los módulos primarios que realizarán las diferentes operaciones y después los integraremos en la unidad principal

21 Memoria descriptiva 3.2 Bloques de la unidad Sumador/Restador Sumador En este apartado nuestro objetivo es la realización de un sumador de n dígitos decimales. Para ello, lo primero que hacemos es crear una estructura básica, el sumador de 1 dígito decimal Sumador de 1 dígito BCD (bloque one_digit_adder.vhd ) La idea principal de este bloque es que, dadas dos entradas, a y b, que representan cada una 1 dígito decimal, tenemos una arquitectura cuya misión es realizar la suma de ambos dígitos y dar como resultado (c) 1 dígito decimal de salida y un acarreo (carry_out) en caso de ser necesario. Figura 3.3. Sumador de 1 dígito decimal La estructura interna del bloque sería la siguiente: Figura 3.4. Arquitectura del sumador de 1 dígito decimal

22 Memoria descriptiva Tenemos dos entradas, a y b, que pueden representar cualquier dígito decimal del 0 al 9, una salida c que también será un dígito BCD, y un acarreo de salida (carry_out). También hay un acarreo de entrada, carry_in, que nos permitirá interconectar diversos bloques. Funcionamiento Al realizar la suma binaria se nos pueden presentar dos casos: si el resultado de dicha suma es igual o menor a 9 ( 1001 ), el resultado es directo (es decir, a + b = c). Si la suma es superior a 9, debemos realizar una corrección al valor obtenido. El proceso en este segundo caso es el siguiente: realizamos la suma de a y b en binario, obteniendo el valor intermedio d formado por 5 bits (Figura 3.4). Son 5 bits porque el máximo número en decimal que podemos obtener es que el que se da cuando a y b tienen sus valores máximos (9) y el acarreo de entrada carry_in es igual a 1 ; el resultado de la suma (a + b + carry_in) es 19, y en binario sería (los cinco bits mencionados). Para el caso de que la suma de a y b sea mayor que 9, aplicaremos un factor de corrección que sería restar 10 al valor obtenido y aumentar 1 el dígito de las decenas. Y restar diez equivale en binario a sumar 6 ( 0110 ). Un ejemplo: si a es 5 y b es 7, la suma es 12 y debemos realizar la corrección. Empezamos sumando 5 y 7. Sus correspondientes en binario son 0101 para el 5 y 0111 para el número 7. El resultado es 12, que en binario se representa como decimal Vemos que este valor es superior a 9, y por tanto no es un valor BCD válido. Entonces hemos de aplicar una corrección para obtener el valor correspondiente en BCD, donde el número 12 se representaría con dos dígitos de cuatro bits cada uno; un primer grupo para el , y otro grupo para el Para pasar de binario a BCD vamos a sumar 6 (en binario 0110 ): Equivale a un dígito BCD de valor 1 ( 0001 ) Equivale a un dígito BCD de valor 2 ( 0010 ) Obtenemos 10010, donde debemos leer los últimos cuatro bits para el primer dígito decimal 0010 y que equivalen al número 2, y el bit de más peso, 1, que formaría parte del siguiente dígito decimal, que sería un 1. Por tanto, tendríamos como resultado dos dígitos decimales, un dígito decimal de las decenas igual a 1, y otro para las unidades que sería un 2. Hemos pasado del valor 12, en binario, a su equivalente en nomenclatura BCD,

23 Memoria descriptiva Decimal 12 Binario 1100 BCD En resumen: Si a + b + cy_in 9, a + b + cy_in = c, acarreo de salida = 0 (3.1) Si a + b + cy_in > 9, a + b + cy_in = (c + 6) mod 16, acarreo de salida = 1 (3.2) A continuación podemos ver una simulación del funcionamiento de este bloque: Figura 3.5. Simulación del sumador de 1 dígito decimal Podemos observar como se realiza la corrección cuando a + b > 9, obteniendo como resultado en c el dígito de las unidades, y el dígito 1 ( 0001 ) de las decenas en el acarreo de salida (cy_out)

24 Memoria descriptiva Sumador de n dígitos decimales Para obtener el sumador de n dígitos BCD vamos a interconectar n sumadores de 1 dígito decimal (el bloque que hemos creado antes). Gracias a la entrada carry_in de cada bloque, podemos propagar el acarreo de manera que el resultado obtenido sea el correcto. Figura 3.6. Diagrama de bloques del sumador de n dígitos decimales La interconexión de los bloques sencillos creará el sumador de n dígitos BCD, Figura 3.7. Sumador de n dígitos decimales donde tendremos dos entradas, x e y, de n dígitos BCD (4n bits), y una salida z que será el resultado de la operación. Además, en el caso de que haya desbordamiento en z, la salida out_carry se pondrá a 1. La entrada ini_carry en este bloque se corresponde con el acarreo de entrada del primer sumador de 1 dígito BCD

25 Memoria descriptiva A continuación se muestra la simulación de unos ejemplos para n = 4: Figura 3.8. Simulación del sumador de 4 dígitos decimales Podemos ver como en la tercera operación (x = 3050, y = 8070), el acarreo de salida está a nivel alto, lo que indica que el resultado es z =

Laboratorio de Diseño de Sistemas Digitales

Laboratorio de Diseño de Sistemas Digitales Proceso de Diseño Laboratorio de Diseño de Sistemas Digitales I Semestre 2008 Ing. Gabriela Ortiz L. Diseño Implementación Depuración Diseño: Concepto inicial. Cuál es la función que lleva a cabo el objeto?

Más detalles

FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES).

FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES). FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES). 1 1 FIELD PROGRAMMABLE GATE ARRAY Un FPGA (Field Programmable Gate Array) permite implementar cualquier circuito digital de aplicación específica. Las aplicaciones

Más detalles

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech www.emtech.com.ar Temario Introducción Circuitos Digitales FPGAs Flujo y Herramientas de Diseño Diseño para Síntesis Simulación Ejemplos

Más detalles

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE Los FPGA fueron introducidos por Xilinx en la mitad de 1980. Ellos difieren de los CPLDs en la arquitectura, por su tecnología de almacenamiento, número

Más detalles

Diseño de Hardware con VHDL

Diseño de Hardware con VHDL Diseño de Hardware con VHDL Facultad de Ingeniería Laboratorio Electrónica Segundo Semestre, 2015 Field Programmable Gate Array (FPGA) De una manera superficial podemos decir que las FPGA son chips de

Más detalles

CAPÍTULO 3 MÓDULO DIGITAL PARA CONVERSIÓN DE VIDEO

CAPÍTULO 3 MÓDULO DIGITAL PARA CONVERSIÓN DE VIDEO CAPÍTULO 3 MÓDULO DIGITAL PARA CONVERSIÓN DE VIDEO 3.1 INTRODUCCIÓN Las señales provenientes de una tarjeta de video de una computadora son formatos estandarizados que podemos emplear para desplegar información

Más detalles

Introducción a FPGAs. Contenido

Introducción a FPGAs. Contenido Introducción a FPGAs Dra. Claudia Feregrino cferegrino@inaoep.mx Contenido 1. FPGA 2. Arquitectura genérica 3. Celda lógica 4. Field Programmable 5. Cómo se programa un FPGA 6. Herramientas de diseño 7.

Más detalles

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas. Que es una FPGA? Las FPGA s (Field Programmable Gate Array) Son dispositivos lógicos de propósito general programable por los usuarios, compuesto de bloques lógicos comunicados por conexiones programables.

Más detalles

FUNCIONES ARITMÉTICAS Y

FUNCIONES ARITMÉTICAS Y Tema 3 FUNCIONES ARITMÉTICAS Y LÓGICAS 3.. INTRODUCCIÓN Hasta ahora hemos visto como se podían minimizar funciones booleanas, y como se podían implementar a partir de puertas discretas. En los temas siguientes

Más detalles

CIRCUITOS COMBINACIONALES

CIRCUITOS COMBINACIONALES Escuela Universitaria de Ingeniería Técnica Industrial de Bilbao Universidad del País Vasco / Euskal Herriko Unibertsitatea ELECTRONICA INDUSTRIAL CIRCUITOS COMBINACIONALES SANCHEZ MORONTA, M - UGALDE

Más detalles

Metodologías de diseño de hardware

Metodologías de diseño de hardware Capítulo 2 Metodologías de diseño de hardware Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización de lenguajes de descripción de hardware, han posibilitado la reducción

Más detalles

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica)

CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS. 40 horas (15 horas teoría + 25 horas práctica) CURSO DISEÑO DE SISTEMAS DIGITALES MEDIANTE VHDL PARA SU IMPLEMENTACIÓN CON FPGAS 40 horas (15 horas teoría + 25 horas práctica) OBJETIVOS Aprendizaje del lenguaje VHDL para el diseño de sistemas digitales

Más detalles

EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos

EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos EIE 446 - SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas Fecha: 1 er semestre de 2011 INTRODUCCIÓN El sistema

Más detalles

Tipos de Dispositivos Controladores

Tipos de Dispositivos Controladores Tipos de Dispositivos Controladores PLC Allen Bradley Siemens Schneider OMRON PC & Software LabView Matlab Visual.NET (C++, C#) FPGAS Xilinx Altera Híbridos Procesador + FPGA (altas prestaciones) µcontrolador

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

3 BLOQUES ARITMÉTICOS Y CODIFICACIÓN NUMÉRICA. b a. C.S. c. s - 66 Electrónica Digital

3 BLOQUES ARITMÉTICOS Y CODIFICACIÓN NUMÉRICA. b a. C.S. c. s - 66 Electrónica Digital 3 BLOQUES ARITMÉTICOS Y CODIFICACIÓN NUMÉRICA 3.1. Operaciones aritméticas: suma, resta, comparación y producto 3.2. Unidad lógica y aritmética: ALU 3.3. Codificación de números en binario 3.4. Codificación

Más detalles

CONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción

CONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción Anexo A: FPGA Introducción Cuando se requiere del diseño de un sistema electrónico y surge la necesidad de implementar una parte con hardware dedicado son varias las posibilidades que hay. Una es un diseño

Más detalles

Laboratorio 4: Uso de una FPGA

Laboratorio 4: Uso de una FPGA Laboratorio 4: Uso de una FPGA Objetivos: Conocer y comprender la estructura interna de una FPGA y su tarjeta de desarrollo que será usada en el laboratorio, y los cuidados y recomendaciones para evitar

Más detalles

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES ANTECEDENTES En los últimos diez años la industria electrónica ha tenido una gran evolución en el desarrollo de sistemas digitales; desde computadoras personales, sistemas de audio y vídeo hasta dispositivos

Más detalles

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Clase 4: FPGAs Por: Nelson Acosta & Daniel Simonelli UNICEN - Tandil - 1999 1 Implementación de Sistemas Procesador convencional. Economico, conjunto

Más detalles

T6. CIRCUITOS ARITMÉTICOS

T6. CIRCUITOS ARITMÉTICOS T6. CIRCUITOS ARITMÉTICOS Circuitos Aritméticos Son dispositivos MSI que pueden realizar operaciones aritméticas (suma, resta, multiplicación y división) con números binarios. De todos los dispositivos,

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Circuitos para multiplicación y división de números en coma fija Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa Bibliografía..

Más detalles

Aritmética del computador. Departamento de Arquitectura de Computadores

Aritmética del computador. Departamento de Arquitectura de Computadores Aritmética del computador Departamento de Arquitectura de Computadores Contenido La unidad aritmético lógica (ALU) Representación posicional. Sistemas numéricos Representación de números enteros Aritmética

Más detalles

LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones

LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones Introducción Simple PLDs Complex PLDs FPGAs Diseño tradicional: basado en CIs estándar SSI/MSI Obtención de la función lógica Reducción a términos producto Minimización: Número de integrados Retardo de

Más detalles

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL N. E. Chávez Rodríguez*, A. M. Vázquez Vargas** *Departamento de Computación **Departamento de Procesamiento Digital de Señales

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

1.1. Tecnologías de diseño de circuitos integrados

1.1. Tecnologías de diseño de circuitos integrados 1.1. Tecnologías de diseño de circuitos integrados Durante la década de los 80, varias compañías intentaron resolver el viejo compromiso de complejidad versus estandarización. Por un lado se tenía la opción

Más detalles

MÁQUINAS ALGORÍTMICAS COMO OPCIÓN DIDÁCTICA DE SISTEMAS DIGITALES COMPLEJOS

MÁQUINAS ALGORÍTMICAS COMO OPCIÓN DIDÁCTICA DE SISTEMAS DIGITALES COMPLEJOS MÁQUINAS ALGOÍTMIAS OMO OIÓN DIDÁTIA D SISTMAS DIGITALS OMLJOS T. OLLÁN,. MATÍN y J. ON D LÓN scuela Universitaria de Ingeniería Técnica Industrial de Zaragoza. Departamento de Ingeniería lectrónica y

Más detalles

Prácticas de Máquina Sencilla con FPGA

Prácticas de Máquina Sencilla con FPGA TITULACIÓN: Enginyeria Tècnica Industrial en Electrònica Industrial AUTOR: Alan Morato Gomis DIRECTOR: Enrique F. Cantó Navarro FECHA: junio del 2011. Índice General 1 Índice General 2 Introducción Pág.

Más detalles

Proyecto de Diseño 2

Proyecto de Diseño 2 Altera University Program 1 Proyecto de Diseño 2 Números y Visualizadores El objetivo de esta práctica es diseñar circuitos combinacionales que realicen conversiones numéricas de binario a decimal y adición

Más detalles

Sistemas de Numeración Operaciones - Códigos

Sistemas de Numeración Operaciones - Códigos Sistemas de Numeración Operaciones - Códigos Tema 2 1. Sistema decimal 2. Sistema binario 3. Sistema hexadecimal 4. Sistema octal 5. Conversión decimal binario 6. Aritmética binaria 7. Complemento a la

Más detalles

Introducción a Verilog y XILINX

Introducción a Verilog y XILINX DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Introducción a Verilog y XILINX Enunciados de Prácticas de Laboratorio Estructura de Computadores Nota: Los archivos

Más detalles

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente: Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético

Más detalles

VHDL. Lenguaje de descripción hardware Introducción e historia

VHDL. Lenguaje de descripción hardware Introducción e historia VHDL. Lenguaje de descripción hardware Introducción e historia 2007 A.G.O. All Rights Reserved s descriptivos y niveles de abstracción s descriptivos: Comportamiento Se realiza la función sin información

Más detalles

CONTADORES Y REGISTROS

CONTADORES Y REGISTROS Capítulo 7 CONTADORES Y REGISTROS 7.. CONTADORES Un contador es un circuito secuencial cuya función es seguir una cuenta o conjunto predeterminado de estados como consecuencia de la aplicación de un tren

Más detalles

FUNDAMENTOS DE INFORMATICA

FUNDAMENTOS DE INFORMATICA FUNDAMENTOS DE INFORMATICA TEMAS QUE SE TRATARÁN: Arquitectura Interna Sistemas Operativos Programación en Visual Basic Bases de Datos Redes e Internet 1 FUNDAMENTOS DE INFORMATICA Tema 1: Arquitectura

Más detalles

3.1 Introducción a VHDL

3.1 Introducción a VHDL Capítulo 3 Implementación en VHDL A continuación se va a explicar brevemente el funcionamiento de VHDL y las componentes de programación para poder entender mejor el programa. Una vez explicado esto, se

Más detalles

Alternativas de implementación: Estilos

Alternativas de implementación: Estilos Alternativas de implementación: Estilos Alternativas de implementación: Estilos Alternativas de implementación: Estilos µprocesador INTEL 386: 3 estilos de layout Datapath: ALU 2-D arrays: Memoria Standard

Más detalles

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 1. Electrónica Digital Antes de empezar en el tema en cuestión, vamos a dar una posible definición de la disciplina que vamos a tratar, así como su ámbito

Más detalles

Tema 2: Sistemas de representación numérica

Tema 2: Sistemas de representación numérica 2.1 Sistemas de Numeración Definiciones previas Comenzaremos por definir unos conceptos fundamentales. Existen 2 tipos de computadoras: Analógicas: actúan bajo el control de variables continuas, es decir,

Más detalles

Algoritmos de multiplicación y división.

Algoritmos de multiplicación y división. Capítulo 11. 1 Algoritmos de multiplicación y división. A continuación se estudiarán algoritmos para efectuar las operaciones de multiplicación y división entera. Usualmente estas operaciones están soportadas

Más detalles

Universidad de Guanajuato FIMEE. Electrónica Digital II

Universidad de Guanajuato FIMEE. Electrónica Digital II Universidad de Guanajuato FIMEE Departamento de Electrónica Manual de prácticas Electrónica Digital II Ing. Dr. René de J. Romero Troncoso Verano 2006. Contenido: Introducción 3 Recomendaciones generales

Más detalles

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA Experimental III: Introducción a la Microfabricación y FPGA - Instituto Balseiro Mauricio Tosi Diciembre de 2013 Resumen

Más detalles

Arquitectura Básica para Controladores de Lógica Difusa a Programarse en FPGAs

Arquitectura Básica para Controladores de Lógica Difusa a Programarse en FPGAs Arquitectura Básica para Controladores de Lógica Difusa a Programarse en FPGAs Juan C. Herrera Lozada, jcrls@ipn.mx Ma. de Lourdes Olvera Cárdenas, lolvera@ipn.mx Ma. Teresa Lozano Hernández. tlozanoh@ipn.mx

Más detalles

Sistemas de Numeración

Sistemas de Numeración UNIDAD Sistemas de Numeración Introducción a la unidad Para la mayoría de nosotros el sistema numérico base 0 aparentemente es algo natural, sin embargo si se establecen reglas de construcción basadas

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5040 Circuitos Digitales Avanzados PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA DURACIÓN (HORA) Multiplicador binario 4

Más detalles

MAXHC11. TARJETA DE BAJO COSTE PARA EL DISEÑO MIXTO HARDWARE-SOFTWARE

MAXHC11. TARJETA DE BAJO COSTE PARA EL DISEÑO MIXTO HARDWARE-SOFTWARE MAXHC11. TARJETA DE BAJO COSTE PARA EL DISEÑO MIXTO HARDWARE-SOFTWARE Sadot Alexandres F.¹, José D. Muñoz F.², Pedro Pérez de A.³ Departamento de Electrónica y Automática. Escuela Técnica Superior de Ingeniería

Más detalles

PROGRAMA DE CURSO Modelo 2009

PROGRAMA DE CURSO Modelo 2009 REQUISITOS: HORAS: 3 Horas a la semana CRÉDITOS: PROGRAMA(S) EDUCATIVO(S) QUE LA RECIBE(N): IETRO PLAN: 2009 FECHA DE REVISIÓN: Mayo de 2011 Competencia a la que contribuye el curso. DEPARTAMENTO: Departamento

Más detalles

TEMA 4. MÓDULOS COMBINACIONALES.

TEMA 4. MÓDULOS COMBINACIONALES. TECNOLOGÍA DE COMPUTADORES. CURSO 27/8 TEMA 4. MÓDULOS COMBINACIONALES. 4.. Módulos combinacionales básicos MSI. Los circuitos combinacionales realizados con puertas lógicas implementan funciones booleanas,

Más detalles

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs. Clase 1: Lógica Configurable

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs. Clase 1: Lógica Configurable Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Clase 1: Lógica Configurable Por: Nelson Acosta & Daniel Simonelli UNICEN - Tandil - 1999 1 Organización del curso Clases teórico/prácticas: 1

Más detalles

ARQUITECTURA DE LAS COMPUTADORAS PRACTICA

ARQUITECTURA DE LAS COMPUTADORAS PRACTICA ARQUITECTURA DE LAS COMPUTADORAS PRACTICA SISTEMAS NUMÉRICOS INTRODUCCIÓN TEÓRICA: Definimos Sistema de Numeración como al conjunto de reglas que permiten, con una cantidad finita de símbolos, representar

Más detalles

IMPLEMENTACIÓN DE ALGORITMO DE CONTROL FUZZY PI EN UN DISPOSITIVO DE LÓGICA PROGRAMABLE

IMPLEMENTACIÓN DE ALGORITMO DE CONTROL FUZZY PI EN UN DISPOSITIVO DE LÓGICA PROGRAMABLE IMPLEMENTACIÓN DE ALGORITMO DE CONTROL FUZZY PI EN UN DISPOSITIVO DE LÓGICA PROGRAMABLE Lya Velazco Molina, Universidad de la Habana Cuba lya@imre.oc.uh.cu Matilde Santos Peña, Universidad Complutense

Más detalles

UNIDAD 4: El procesador: Camino de los datos y Control.

UNIDAD 4: El procesador: Camino de los datos y Control. UNIDAD 4: El procesador: Camino de los datos y Control. 4.1 Introducción El rendimiento de una máquina depende de tres factores clave: Conteo de Instrucciones, tiempo del ciclo de reloj y ciclos de reloj

Más detalles

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006 Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006 Qué son los FPGAs? Matriz de bloques lógicos configurables (CLB) y una matriz de interconexión. Los bloques lógicos

Más detalles

1 LA INFORMACION Y SU REPRESENTACION

1 LA INFORMACION Y SU REPRESENTACION 1 LA INFORMACION Y SU REPRESENTACION 1.1 Sistemas de numeración Para empezar a comprender cómo una computadora procesa información, debemos primero entender cómo representar las cantidades. Para poder

Más detalles

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO SÍLABO ASIGNATURA: MICROELECTRÓNICA CÓDIGO: 8F0108 1. DATOS GENERALES 1.1. DEPARTAMENTO ACADÉMICO : Ing. Electrónica e Informática 1.2. ESCUELA PROFESIONAL : Ingeniería de Mecatrónica 1.3. CICLO DE ESTUDIOS

Más detalles

PRÁCTICA DE SÍNTESIS

PRÁCTICA DE SÍNTESIS PRÁCTICA DE SÍNTESIS El sumador restador en complemento a dos 1.- Introducción Mediante el complemento a dos se simplifica la circuitería necesaria para realiar las operaciones suma y resta de números

Más detalles

PROYECTO CURRICULAR. Electrónica Digital y Microprogramable

PROYECTO CURRICULAR. Electrónica Digital y Microprogramable PROYECTO CURRICULAR Electrónica Digital y Microprogramable Ciclo Formativo Grado Medio Equipos Electrónicos de Consumo CAPACIDADES TERMINALES 1 Analizar funcionalmente circuitos electrónicos digitales,

Más detalles

GUÍA DE APRENDIZAJE CIRCUITOS LOGICOS COMBINACIONALES

GUÍA DE APRENDIZAJE CIRCUITOS LOGICOS COMBINACIONALES GUÍA DE APRENDIZAJE CIRCUITOS LOGICOS COMBINACIONALES COMPETENCIA GENERAL Construye circuitos digitales básicos en base a circuitos integrados MSI. COMPETENCIAS PARTICULARES 1. Emplea los sistemas numéricos

Más detalles

1.1 Sistema de numeración binario

1.1 Sistema de numeración binario 1.1 Sistema de numeración binario Un sistema de numeración consta de: Un conjunto ordenado de cifras y un conjunto de operaciones. Llamaremos Base al número de cifras que hay en dicho conjunto. De este

Más detalles

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos. Introducción a la ciencia de la computación y a la programación 1. La computadora CONTENIDOS 2. Entidades primitivas para el desarrollo de algoritmos. 3. Metodología a seguir para la resolución de problemas

Más detalles

Universidad de Guanajuato FIMEE. Sistemas Digitales

Universidad de Guanajuato FIMEE. Sistemas Digitales Universidad de Guanajuato FIMEE Departamento de Electrónica Manual de prácticas Sistemas Digitales Catedrático: Dr. Verano 2006. Contenido: Introducción Recomendaciones generales de uso Práctica 1: Práctica

Más detalles

INTRODUCCIÓN A HDL VERILOG

INTRODUCCIÓN A HDL VERILOG INTRODUCCIÓN A HDL VERILOG Departamento de Tecnología Electrónica Universidad de Sevilla Paulino Ruiz de Clavijo Vázquez Rev.7 (nov 2012) Índice Introducción a HDL Verilog Bloque I:

Más detalles

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid Tema 4: Sistemas de Numeración. Codificación Binaria Ingeniería Informática Universidad Autónoma de Madrid 1 O B J E T I V O S Sistemas de Numeración. Codificación Binaria Conocer los diferentes sistemas

Más detalles

TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA

TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Sistemas digitales 2. Competencias Desarrollar y conservar sistemas automatizados

Más detalles

Control y programación de sistemas automáticos: Circuitos Combinacionales

Control y programación de sistemas automáticos: Circuitos Combinacionales Control y programación de sistemas automáticos: Circuitos Combinacionales Hemos estado estudiando anteriormente las características generales de los circuitos digitales y hemos presentado un protocolo

Más detalles

Tema I. Sistemas Numéricos y Códigos Binarios

Tema I. Sistemas Numéricos y Códigos Binarios Tema I. Sistemas Numéricos y Códigos Binarios Números binarios. Aritmética binaria. Números en complemento-2. Códigos binarios (BCD, alfanuméricos, etc) Números binarios El bit. Representación de datos

Más detalles

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE LENGUAJES DE DESCRIPCIÓN DE HARDWARE METODOS PARA DESCRIBIR CIRCUITOS LÓGICOS Descripción verbal Tablas de verdad Diagrama esquemático Expresiones del álgebra booleana Diagrama de tiempos Lenguajes de

Más detalles

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Componentes básicos de memorización

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Componentes básicos de memorización Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 17. Componentes básicos b de memorización Existe La necesidad de memorizar información obliga

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

TEMA 4. Unidades Funcionales del Computador

TEMA 4. Unidades Funcionales del Computador TEMA 4 Unidades Funcionales del Computador Álvarez, S., Bravo, S., Departamento de Informática y automática Universidad de Salamanca Introducción El elemento físico, electrónico o hardware de un sistema

Más detalles

TEMA VII: DISEÑO SECUENCIAL PROGRAMABLE

TEMA VII: DISEÑO SECUENCIAL PROGRAMABLE TEMA VII: ISEÑO SECUENCIAL PROGRAMABLE e igual forma que podíamos disponer de dispositivos combinacionales programables para poder implementar funciones combinacionales en un solo integrado, en el dominio

Más detalles

Representación de la Información en una Computadora

Representación de la Información en una Computadora Representación de la Información en una Computadora Sistemas de Numeración El sistema de numeración que utiliza el hombre es el sistema decimal (de base 10). Lo creamos en forma natural porque tenemos

Más detalles

PRÁCTICA 1. Introducción al Software Xilinx ISE versión 6.

PRÁCTICA 1. Introducción al Software Xilinx ISE versión 6. PRÁCTICA 1. Introducción al Software Xilinx ISE versión 6. 1. Introducción. Debido a los requerimientos de funcionamiento, la complejidad que están alcanzando los diseños digitales aumenta día a día. Estos

Más detalles

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1) ELECTRÓNICA DIGITAL Tema 16 LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1) IMPORTANCIA DE LOS ESQUEMAS Los circuitos y sistemas electrónicos digitales cuya complejidad es limitada, se pueden

Más detalles

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES SISTEMA DE NUMERACIÓN BASE 2 El sistema de numeración binario es el conjunto de elementos {0, 1} con las operaciones aritméticas (suma, resta,

Más detalles

Representación de Datos y Aritmética Básica en Sistemas Digitales

Representación de Datos y Aritmética Básica en Sistemas Digitales Representación de Datos y Aritmética Básica en Sistemas Digitales Departamento de Sistemas e Informática Escuela de Electrónica Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional

Más detalles

Tema IV. Unidad aritmético lógica

Tema IV. Unidad aritmético lógica Tema IV Unidad aritmético lógica 4.1 Sumadores binarios 4.1.1 Semisumador binario (SSB) 4.1.2 Sumador binario completo (SBC) 4.1.3 Sumador binario serie 4.1.4 Sumador binario paralelo con propagación del

Más detalles

Memoria de Acceso Aleatorio. Dispositivos de Almacenamiento Masivo

Memoria de Acceso Aleatorio. Dispositivos de Almacenamiento Masivo Memoria. Definiciones Componente de una computadora que retiene datos informáticos durante algún intervalo de tiempo. Consiste en la capacidad de registrar datos y volver a incorporarlos en determinado

Más detalles

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles Inicios de la computación Turing y Church sientan las bases teóricas de la computación Máquina de Turing Máquina teórica compuesta

Más detalles

Proyecto de Diseño # 3 DISEÑO E IMPLEMENTACIÓN DE SISTEMAS ARITMÉTICOS MATERIAL ADICIONAL

Proyecto de Diseño # 3 DISEÑO E IMPLEMENTACIÓN DE SISTEMAS ARITMÉTICOS MATERIAL ADICIONAL INSTITUTO TECNOLÓGICO DE COSTA RICA ESCUELA DE INGENIERÍA ELECTRÓNICA IE-3308: LABORATORIO DE DISEÑO LÓGICO Prof. Ing. Luis C. Rosales Proyecto de Diseño # 3 DISEÑO E IMPLEMENTACIÓN DE SISTEMAS ARITMÉTICOS

Más detalles

Figura 1: Suma binaria

Figura 1: Suma binaria ARITMÉTICA Y CIRCUITOS BINARIOS Los circuitos binarios que pueden implementar las operaciones de la aritmética binaria (suma, resta, multiplicación, división) se realizan con circuitos lógicos combinacionales

Más detalles

Clase 02: Representación de datos

Clase 02: Representación de datos Arquitectura de Computadores y laboratorio Clase 02: Representación de datos Departamento de Ingeniería de Sistemas Universidad de Antioquia 2015-2 Contenido 1 2 Representación de la Información Y sistemas

Más detalles

PLC CONTROLADOR LOGICO PROGRAMABLE

PLC CONTROLADOR LOGICO PROGRAMABLE PLC CONTROLADOR LOGICO PROGRAMABLE PLC Los Controladores Lógicos Programables o PLC (Programmable Logic Controller por sus siglas en inglés) son dispositivos ampliamente usados en la Automatización Industrial.

Más detalles

Representación de Datos. Una Introducción a los Sistemas Numéricos

Representación de Datos. Una Introducción a los Sistemas Numéricos Representación de Datos Una Introducción a los Sistemas Numéricos Tipos de Datos Datos Texto Número Imagen Audio Video Multimedia: Información que contiene números, texto, imágenes, audio y video. Como

Más detalles

Sistemas Embebidos 1º Cuatrimestre de 2015

Sistemas Embebidos 1º Cuatrimestre de 2015 Sistemas Embebidos 1º Cuatrimestre de 2015 Clase 11: Contenido Introducción : concepto y tecnologías Categorías de SPLDs CPLDs FPGAs Procesadores Soft-Core Prof: Sebastián Escarza Dpto. de Ciencias e Ingeniería

Más detalles

Capítulo 1: Diseño Estructurado:

Capítulo 1: Diseño Estructurado: Capítulo 1: Diseño Estructurado: Metodología General de Diseño Top-Down Herramientas Tecnologías de implementación Test de Circuitos y Sistemas DEA SED 1-1 Metodologías General de Diseño Análisis del Sistema

Más detalles

Maria José González/ Dep. Tecnología

Maria José González/ Dep. Tecnología Señal analógica es aquella que puede tomar infinitos valores para representar la información. Señal digital usa solo un número finito de valores. En los sistemas binarios, de uso generalizado en los circuitos

Más detalles

Implementación en FPGA de Máquinas de Estados con VHDL

Implementación en FPGA de Máquinas de Estados con VHDL 1 Encuentro de Investigación en Ingeniería Eléctrica Zacatecas, Zac, Abril 5 7, 2006 Implementación en FPGA de Máquinas de Estados con VHDL Miguel Ángel Porta García, Marlen Meza, Perla Saldívar, Oscar

Más detalles

La Unidad Procesadora.

La Unidad Procesadora. La Unidad Procesadora. En un sistema digital complejo, la capa de hardware de la máquina es el nivel más bajo del modelo de capas de un sistema microcomputarizado. La unidad procesadora es una parte del

Más detalles

Introducción a Verilog y XILINX

Introducción a Verilog y XILINX DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Introducción a Verilog y XILINX Sistemas Digitales Avanzados 1. Introducción y objetivos Uno de los objetivos generales

Más detalles

Encuesta sobre utilización de la microelectrónica en la Argentina

Encuesta sobre utilización de la microelectrónica en la Argentina Encuesta sobre utilización de la microelectrónica en la Argentina Los dispositivos microelectrónicos forman el corazón de todo sistema electrónico de nuestros días. En ellos los circuitos alcanzan las

Más detalles

5. Metodologías de diseño de un ASIC

5. Metodologías de diseño de un ASIC 5. Metodologías de diseño de un ASIC 5.1. Introducción 5.2. Gate Arrays 5.3. Standard Cells 5.4. Seas of Gates 5.5. Dispositivos programables FPGAs Dispositivos programables El diseño de circuitos integrados

Más detalles

Introducción 7. Introducción

Introducción 7. Introducción Introducción 7 Introducción En las últimas décadas hemos asistido a un rápido desarrollo de los sistemas electrónicos digitales, origen y consecuencia del crecimiento de las redes de comunicaciones, de

Más detalles

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Aritmética binaria Oliverio J. Santana Jaria 3. Aritmética tica binaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Para Los La en conocer muchos aritmética comprender otros binaria tipos

Más detalles

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A.

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A. MATERIAL PERMITIDO: los libros Estructura y tecnología de computadores y Problemas de estructura y tecnología de computadores, ed. Sanz y Torres, y calculadora. NO SE PERMITEN FOTOCOPIAS. INSTRUCCIONES:

Más detalles

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Los sistemas de numeración se clasifican en: posicionales y no posicionales. SISTEMAS NUMERICOS Un sistema numérico es un conjunto de números que se relacionan para expresar la relación existente entre la cantidad y la unidad. Debido a que un número es un símbolo, podemos encontrar

Más detalles

ELECTRONICS WORKBENCH

ELECTRONICS WORKBENCH PRÁCTICA 1: INTRODUCCIÓN A LA SIMULACIÓN DE CIRCUITOS ELECTRÓNICOS DIGITALES CON ELECTRONICS WORKBENCH Ingeniería Técnica en Informática de Sistemas. Miguel Martínez Iniesta Juan Antonio Ruiz Palacios

Más detalles

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM Breve Curso de VHDL M. C. Felipe Santiago Espinosa Profesor Investigador UTM Noviembre de 2007 1 Orden del curso 1. Introducción al diseño con VHDL. 2. Unidades de diseño en VHDL. 3. Señales. 4. Especificación

Más detalles