sumador restador de 8 bits

Informe de Laboratorio I Sumador-Restador de 8 Bits Aplicado a suma de señales Analógicas Jacqueline Guailla Muñoz – Kar

Views 296 Downloads 13 File size 6MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Informe de Laboratorio I Sumador-Restador de 8 Bits Aplicado a suma de señales Analógicas Jacqueline Guailla Muñoz – Karla Muyulema Yumiseba - Jhon Vargas Ochoa [email protected] - [email protected] - [email protected] Abstract — This document presents the report of a project that was carried out with the purpose of applying the knowledge of the chair of digital systems. For which we had to carry out a series of procedures, which will lead us to understand all the concepts taught during the classes. Firstly, we perform the analog-to-digital conversion circuit using the ADC 0808, then we perform the conversion from digital to analog using the DAC 0808, in which the reconstruction of the signal can be appreciated through the oscilloscope. We make the description of a program that the user when manipulating a variable in this high subtract two binary numbers of eight bits, and generate a response in hexadecimal system. Otherwise, if the variable is entered in a low state, these numbers are added, and its response is generated as described above. For the design of this program we will do it through the ISE software, in the VHDL programming language. Keywords — Conversion, ADC, DAC, Decoder, Programmable Logic, Multiplexers, Code, VHDL I.INTRODUCCIÓN Un sistema de procesamiento digital de la señal traduce primero una señal analógica que varía de manera continua a una serie de niveles discretos. Esta serie de niveles sigue las variaciones de la señal analógica y se asemeja a una escalera. El proceso de modificar la señal analógica original, obteniendo una aproximación “en escalera” de la misma, se realiza mediante un circuito de muestreo y retención. Una vez hecho esto la aproximación “en escalera” se cuantifica para obtener una serie de códigos binarios que representan cada uno de los pasos discretos de esa aproximación, mediante un proceso denominado conversión analógico-digital (A/D). El circuito que realiza la conversión A/D se denomina convertidor analógico digital (ADC). Una vez convertida la señal analógica a formato con codificación binaria, se la aplica a un procesador digital de la señal (DSP). Y después de procesar una señal mediante DSP, la señal puede convertirse de nuevo a forma analógica, obteniéndose una señal muy mejorada de la señal analógica original. El uso de sumadores es muy importante no solamente en las computadoras, sino en muchos tipos de sistemas digitales en los que se procesan datos numéricos. Realizar la suma lógica no implica mayor dificultad, debido a que los sistemas electrónicos operan de la misma manera que un ser humano, por ejemplo, para sumar dos números (decimales) de un solo dígito, 8 y 4 se tendrá como resultado un 2 y como acarreo un

1, para formar el resultado cuyo valor es el 12, expresado en sistema decimal. Por el contrario, para llevar a cabo la resta, la operación toma un ligero cambio, un ser humano realiza esta operación tomando un préstamo del bit siguiente, sin embargo, en los circuitos lógicos esto es muy difícil de implementar. Es por eso que se recurre al método del complemento a dos, el cual facilita la realización de dichas operaciones. Los sumadores pueden estar conformados por medios sumadores o sumadores completos, esto va a la par con la implementación en el lenguaje de programación VHDL, para esto se debe realizar el diseño de las estructuras de dichos programas en papel, para posteriormente describirlos utilizando el Software XILINX, y para finalmente tener el diseño de bloques completos y pasar a aplicarlos en la práctica. II. A.

MARCO TEÓRICO

Conversión Analógica Digital (ADC)

Un convertidor analógico-digital toma un voltaje de entrada analógico, y después de cierto tiempo produce un código de salida digital que representa a la entrada analógica. Por lo general, el proceso de conversión AID es más complejo y consume más tiempo que el proceso D/A, por lo cual se han desarrollado y utilizado varios métodos. Examinaremos algunos de ellos con detalle, aún y cuando tal vez nunca sea necesario diseñar o construir ADCs (dado que están disponibles como unidades encapsuladas en IC). No obstante, las técnicas que se utilizan proporcionan una visión interna de los factores que determinan el desempeño de un ADC [1]. Desde el punto de vista de un convertidor analógico-digital ideal, el proceso necesario para convertir una señal analógica (continua) en una señal digital (discreta), consta de tres fases: Muestreo Consiste en tomar muestras periódicas d la amplitud de onda la velocidad de toma de muestras es el número de muestras sobre segundo se conoce como frecuencia de muestreo. Cuantificación En este nivel se mide el nivel de voltaje de cada muestra y a continuación se le asigna un margen de valor de una señal analizada a un único nivel de salida. Codificación Es la traducción de los valores obtenidos en la cuantificación a valores binario.

Los conversores analógico-digital tienen una gran cantidad de aplicaciones. Están presentes en todo tipo de sistemas como pueden ser sistemas de telecomunicaciones, sistemas de control, medidas, etc. También tiene aplicaciones en sistemas donde es necesario medir señales analógicas, como pueden ser sensores de temperatura, proximidad o en sistemas donde hay que realizar el procesamiento y/o almacenamiento de audio o cualquier otro tipo de información. Como estas señales no pueden ser analizadas directamente por un procesador, es necesaria la utilización de conversores A/D. Ilustración 1 Señal analógica a digital

1.

Circuito Integrado ADC

El convertidor ADC0808 es un componente para la adquisición de datos, este circuito CMOS tiene un convertidor analógico-digital de 8 bits, un multiplexor de 8 canales y una lógica de control que lo hace compatible con todos los microprocesadores. Para la conversión utiliza el método de aproximaciones sucesivas [1]. Este dispositivo ofrece gran velocidad, gran exactitud, mínima dependencia a la temperatura, excelente repetitividad y un consumo mínimo de energía, por lo tanto, lo hace un dispositivo ideal en aplicaciones de control y de automotores.

B.

Convertidor Digital Analógico (DAC)

Un DAC contiene normalmente una red resistiva divisora de tensión, que tiene una tensión de referencia estable y fija como entrada. Hay que definir qué tan exacta será la conversión entre la señal analógica y la digital, para lo cual se define la resolución que tendrá. Un convertidor analógico-digital es un dispositivo que realiza el proceso inverso al del ADC. Es decir, convierten la información binaria presente en su entrada en una variable analógica que puede ser una tensión o una corriente. En la siguiente imagen podemos observar la interfaz de un DAC que adopta los niveles lógicos de entrada a los que necesitan los conmutadores. Los mismos que actúan sobre una red resistiva de precisión que, con la ayuda de una fuente de referencia, dan como salida en forma analógica una forma de onda de corriente o voltaje [2].

Ilustración 3 Señal digital analógica Ilustración 2 Esquema de pines de ADC 0808

2.

Características        

3.

Opera radiométricamente, con 5Vcc o con un voltaje de referencia ajustable como span analógico. No requiere ajuste a cero o a escala completa. Tiempo de acceso de 135 nseg. 8 bits de resolución. Tiempo de conversión de 100 mseg. Fácil interface con todos los microprocesadores. Error total de +/- ½ LSB y +/- 1 LSB. Consumo de potencia de 15 mW. Aplicaciones del ADC

1.

Circuito Integrado DAC

El DAC0808 es un convertidor digital-analógico (DAC) monolítico de 8 bits que ofrece un tiempo de establecimiento de la corriente de salida a escala completa de 150 ns mientras que disipa solamente 33 mW con fuentes de ± 5V. No se requiere recorte de corriente de referencia (IREF) para la mayoría de las aplicaciones. Las corrientes de alimentación del DAC0808 son independientes de los códigos de bits y presentan características de dispositivo esencialmente constantes en todo el rango de voltaje de alimentación.

Ilustración 5 Decodoficador binario basico D.

Ilustración 4 Esquema de pines de DAC 0808

2.

Características    

Para poder decodificar las posibles combinaciones de cuatro bits, se necesitan dieciséis puertas de decodificación. Este tipo de decodificador se denomina comúnmente decodificador de 4 líneas a 16 líneas, ya que existen cuatro entradas y dieciséis salidas, o también se le llama decodificador 1 de 16, ya que, para cualquier código dado en las entradas, sólo se activa una de las dieciséis posibles salidas. En la siguiente imagen se muestra la estructura de dicho decodificador [3].

Precisión relativa, con ±0.19% como error máximo. Correspondencia actual de escala completa: ± 1 LSB Tiempo de ajuste rápido 150ns. Las entradas digitales no inversoras con compatibles con TTL y CMOS. Velocidad de muestreo de alta velocidad 8mA/us. Rango de tensión de alimentación desde ± 4.5V a ± 18V. Bajo consumo de energía: 33 mW equivalente a ± 5V

    3.

Decodificador de 4 bits

Aplicaciones del DAC

Los DAC se utilizan siempre que la salida de un circuito digital que tiene que ofrecer un voltaje o corriente analógicos para impulsar o activar un dispositivo analógico.  Control: La salida digital de una computadora puede convertirse en una señal de control analógico para ajustar la velocidad de un motor o para controlar casi cualquier variable física.  Análisis automático: Los ordenadores personales pueden ser programados para generar las señales analógicas a través de un DAC) que se necesitan para analizar circuitos analógicos. La respuesta de salida analógica del circuito de prueba normalmente se convertirá en valor digital por un ADC. C.

Decodificadores

Son circuitos lógicos que aceptan un conjunto de entradas que representan un número binario y activan solo una salida correspondiente al número de la entrada. Entonces un decodificador realiza internamente el trabajo de analizar las entradas, determinar que numero binario se encuentra presente y activar solo la salida correspondiente a este número. Debido a que el número de entradas puede ser 0 o 1, existen combinaciones posibles, por lo tanto, estará una sola salida en alto y las demás se encontraran en estado bajo.

Ilustración 6 Decodificador de 4 líneas a 16 líneas

1.

Aplicaciones

Tienen múltiples aplicaciones, una de las más importantes es la selección de entradas y salidas en las computadoras, el funcionamiento es el siguiente: Las computadoras se tienen que comunicar con una gran variedad de dispositivos externos, denominados periféricos, enviando y/o recibiendo datos a través de lo que se conoce como puertos de entrada/salida (E/S). Estos dispositivos externos incluyen impresoras, módems, escáneres, unidades de disco externas, teclados, monitores y otras computadoras. Debe entonces implementarse un decodificador para seleccionar el puerto de Entrada/Salida (E/S), de tal manera que los datos puedan ser enviados o recibidos desde algún dispositivo en específico Cada puerto de E/S tiene un número, denominado dirección, que lo identifica unívocamente. Cuando la computadora desea comunicarse con algún dispositivo en particular, envía el código de dirección apropiado del puerto de E/S al que está conectado el dispositivo en cuestión. Esta dirección binaria del puerto se decodifica, activándose la salida del decodificador apropiada que habilita el correspondiente puerto de E/S.

de los bits de entrada A y B es la operación OR-exclusiva de esas dos variables, A ⊕ B. Para sumar el acarreo de entrada (Cin) a los bits de entrada, hay que aplicar de nuevo la operación OR-exclusiva. A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

Cin Cout 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 Tabla 3 Tabla de verdad de un sumador completo

Tabla 1 Decodificador hexadecimal de 4:16

Sumadores

E.

1.

3.

Semi-Sumador

Un semi-sumador admite dos dígitos binarios en sus entradas y genera dos dígitos binarios en sus salidas: un bit de suma y un bit de acarreo.

SUMA 0 1 1 0 1 0 0 1

Sumador Binario en paralelo

Para formar un sumador binario en paralelo se conectan dos o más sumadores completos. Para sumar números binarios de más de un bit, se tienen que utilizar sumadores completos adicionales. Cuando se suman dos números binarios, cada columna genera un bit de suma y un 1 ó 0, correspondiente al bit de acarreo, que se añade a la columna inmediata de la izquierda [4]. Para sumar dos números binarios, se necesita un sumador completo por cada bit que tengan los números que se quieren sumar.

Ilustración 7 Símbolo lógico de un semisumador A 0 0 1 1

2.

B 0 1 0 1

Cout 0 0 0 1 Tabla 2 Tabla de verdad de un semi-sumador

Suma 0 1 1 0 Ilustración 9 Sumador de bloques de un sumador paralelo de 2 bits

Sumador Completo F.

Un sumador acepta dos bits de entrada y un acarreo de entrada, y genera una salida de suma y un acarre de salida. La diferencia principal entre un sumador completo y un semisumador es que el sumador completo acepta un acarreo de entrada.

Resta Binaria

Las 4 reglas que rigen esta operación lógica se describen en la siguiente tabla, se debe tomar en cuenta que 0-1 con acarreo negativo de 1. A 0 0 1 1

Ilustración 8 Símbolo lógico de un sumador

El sumador completo tiene que sumar dos bits de entrada y un acarreo de entrada. Del semi-sumador sabemos que la suma

G.

B 0 1 0 1 Tabla 4 Reglas en la resta binaria

Complemento A2

A-B 0 1 1 0

El complemento a 2 de un número binario se obtiene sumando 1 al bit menos significativo del complemento a 1. Se aplica la siguiente expresión: Complemento a 2 = Complemento a 1 + 1 Un método alternativo para obtener el complemento A2 de un número binario es el siguiente:  Se empieza por la derecha con el LSB y se escriben los bits como están hasta encontrar el primer 1, incluido éste.  Se calcula el complemento a 1 de los bits restantes

La función básica de un decodificador es detectar la presencia de una determinada combinación de bits (código) en sus entradas y señalar la presencia de este código mediante un cierto nivel de salida. En su forma general, un decodificador posee n líneas de entrada para gestionar n bits y en una de las 2� líneas de salida indica la presencia de una o más combinaciones de n bits. En esta práctica, se presentan varios tipos de decodificadores. Pero lo que se utilizo es un decodificador de cuatro bits [6].

Ilustración 10 Diagrama del complemento A2 H.

Display de 7 segmentos

El display de 7 segmentos es un componente que se utiliza para la representación de números en muchos dispositivos electrónicos. Cada elemento del display tiene asignado una letra que identifica su posición en el arreglo del display [5].

Ilustración 13 Display de 7segmentos y convertidor binario J.

XILINX

Xilinx diseña, desarrolla y comercializa productos lógicos programables, incluidos los circuitos integrados (CI), herramientas de software de diseño, funciones de sistema predefinidas entregados como núcleos de propiedad intelectual (IP), servicios de diseño, formación del cliente, ingeniería de campo y soporte técnico. Xilinx vende FPGAs y CPLDs para fabricantes de equipos electrónicos en los mercados finales, así como a los de comunicaciones, industrias, consumidores, automoción y procesamiento de datos.

Ilustración 11 Esquema de un display de 7 segmentos 1.

Display de cátodo común

El display cátodo común tiene todos los ánodos de los diodos LED unidos y conectados a tierra. Para activar un segmento de estos hay que poner el ánodo del segmento a encender a Vcc (tensión de la fuente) a través de una resistencia para limitar el paso de la corriente.

Ilustración 12 Display en cátodo común I.

Decodificador Binario (BCD)

1.

VHDL

Ilustración 14 Logotipo de XILINX

Describe cualquier sistema digital mediante la definición de un modelo que proporciona una descripción externa y una o más descripciones internas del mismo. Es un lenguaje estándar de programación de alto nivel, diseñado para describir el comportamiento de circuitos electrónicos digitales, desde complejos sistemas hasta una simple compuerta lógica. Este lenguaje permite que el comportamiento de los circuitos electrónicos sea capturado en un sistema de diseño para la simulación del sistema posteriormente realizar la síntesis automática del circuito, este es un proceso en el cual se transforma el diseño de manera automática desde una descripción con pocos detalles a

una más elaborada, con el fin de poder llevarla a un dispositivo de lógica programable.  VHDL permite diseñar, modelar y comprobar un sistema desde un alto nivel de abstracción bajando hasta el nivel de definición estructural de puertos.  Los circuitos descritos utilizando VHDL, siguen unas guías para la síntesis y pueden ser utilizados por diversas herramientas de síntesis para crear e implementar circuitos. La descripción externa se realiza mediante el concepto de entidad (ENTITY) y la interna mediante el de arquitectura (ARCHITECTURE).

La tarjeta Cmod S6 es una pequeña placa de factor de forma DIP de 48 pines construida alrededor de un Xilinx Spartan 6 LX4 FPGA. La placa también incluye una ROM de programación, fuente de reloj, programación USB y circuito de transferencia de datos, fuentes de alimentación y dispositivos de E / S básicos. Hay 46 señales de E / S de FPGA que se encaminan a pernos pasantes de 100 mil espacia- dos, haciendo que el Cmod S6 sea adecuado para su uso con placas de procesamiento sin soldadura. A sólo 0,7 "por 2,6" pulgadas, también se puede cargar en un socket estándar y se utiliza en sistemas embebidos [7].

Ilustración 18 Tarjeta CMOD S6 Ilustración 15 Descripción de un Sistema digital utilizando VHDL

2.

Entidad (ENTITY)

La entidad corresponde a la descripción externa y está relacionada con los terminales de entrada y salida que permiten al sistema digital interactuar con el exterior. Cada sistema digital que se describe en VHDL constituye una entidad.

Ilustración 16 Entidad de VHDL

3.

Arquitectura (ARCHITECTURE)

La arquitectura, por su parte, especifica el funcionamiento interno del sistema digital y se puede referir tanto a su estructura como a su comportamiento. Puesto que en la práctica totalidad de los casos existen diferentes formas de especificar el comportamiento o la estructura de un sistema digital, una misma entidad puede tener asociada una o más arquitecturas.

Ilustración 17 Arquitectura en VHDL K.

CMOD S6

Ilustración 19 Pines de la tarjeta CMOD S6

III. Item 1 2 3 4 5 6 7 8

Cant 1 1 8 8 1 3 1 1

MATERIALES

Materiales ADC0808 DAC0808 Resistencias Diodos Amplificador operacional Resistencias Capacitor Cable Tabla 5

Item 1 2

Cant 1 1

Descripcion 0808 0808 220 Ω LED LM741 470 Ω 104 Multipac

Materiales Intrumentos Protoboard Multimetros;analogico y digital

3 4 5 6

1 2 1 1

Fuente de voltaje variable de 0 a 30V Generador de señales Lote de vaios materales de coneccion Osciloscopio Tabla 6 Instrumentos

IV.

PROGRAMACIÓN

A. Semi-Suma_resta de un 1 bit library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Semi_Sum_Res1bits is Port ( Op : in STD_LOGIC; a : in STD_LOGIC; b : in STD_LOGIC; Resu : out STD_LOGIC; Cout : out STD_LOGIC); end Semi_Sum_Res1bits; architecture Behavioral of Semi_Sum_Res1bits is begin Resu a1(0), b => b1(0), Resu => Resp(0), Cout => con(1)); uut1: Sum_Res1bits PORT MAP (Cin => con(1), Op => Op1, a => a1(1), b => b1(1), Resu => Resp(1), Cout => con(2)); uut2: Sum_Res1bits PORT MAP (Cin => con(2), Op => Op1, a => a1(2), b => b1(2), Resu => Resp(2), Cout => con(3)); uut3: Sum_Res1bits PORT MAP (Cin => con(3), Op => Op1, a => a1(3), b => b1(3), Resu => Resp(3), Cout => con(4)); uut4: Sum_Res1bits PORT MAP (Cin => con(4), Op => Op1, a => a1(4), b => b1(4), Resu => Resp(4), Cout => con(5)); uut5: Sum_Res1bits PORT MAP (Cin => con(5), Op => Op1, a => a1(5), b => b1(5), Resu => Resp(5), Cout => con(6)); uut6: Sum_Res1bits PORT MAP (Cin => con(6), Op => Op1, a => a1(6), b => b1(6), Resu => Resp(6), Cout => con(7)); uut7: Sum_Res1bits PORT MAP (Cin => con(7), Op => Op1, a => a1(7), b => b1(7), Resu => Resp(7), Cout => con(8)); Carry n(6 downto 0) ); uut1: Deco PORT MAP ( Exa => m(7 downto 4), Num => n(13 downto 7) ); end Behavioral;

Ilustración 26 Estructura completa de un decodificador en ISE

Ilustración 28 Estructura de un reloj en ISE

Ilustración 27 Bloques del decodificador completo

Ilustración 29 Diagrama Bloques del Reloj

E. Reloj library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity clk_200Hz is Port ( entrada: in STD_LOGIC; reset : in STD_LOGIC; RELOJ : out STD_LOGIC; RELOJ1 : out STD_LOGIC ); end clk_200Hz; architecture Behavioral of clk_200Hz is signal temporal: STD_LOGIC; signal contador: integer range 0 to 199 := 0; begin divisor_frecuencia: process (reset, entrada) begin if (reset = '1') then temporal Sal2); ---*****--uut3: clk_200Hz PORT MAP (entrada => entrada1, reset => rest, RELOJ => RELOJ2, RELOJ1=> RELOJ3 ); DAC