[go: up one dir, main page]

Academia.eduAcademia.edu

Circuitos Digitales

clase 13 de circuitos digitales

Circuitos Digitales Clase 10 Expandiendo el concepto de los sumadores • Como hemos visto, es posible generar sumas de números de n bits, agregando las cantidades necesarias de sumadores para cumplir con dichos requerimientos. • Hasta ahora nuestros bloques básicos de construcción son los sumadores de 1 bit, sin embargo es posible utilizar otros sumadores para realizar circuitos más grandes. Sumador de números de 8 bits a partir de uno de 4. Sumador de números de 16 bits a partir de sumadores de 4 bits Ejemplo de un sistema de votación aplicando sumadores • Veremos como podemos integrar diferentes tipos de sumadores en un ejemplo bastante directo. • Digamos que se requiere implementar un sistema de votación que cuente cuantos votos corresponden a sí y cuantos a no. • Para esto el sistema tiene dos displays de 7 segmentos uno para cada opción donde se mostrará la cantidad de votos en cada caso. • Utilizaremos sumadores para desarrollar este sistema. Ejemplo de un sistema de votación aplicando sumadores Aplicación de VHDL a diseños jerárquicos • Como hemos visto de los ejemplos de sumadores, es posible implementar diferentes diseños de circuitos a un circuito más grande. • Estos circuitos más pequeños son tratados como componentes de este circuito mayor. • Esto nos permite reutilizar elementos desarrollados previamente sin tener que rehacer todo. • El beneficio de eso es también la modularidad, es decir poder cambiar una parte del diseño sin tener que modificar todo. Diseño Jerárquico • Un diseño jerárquico consiste en dividir un sistema en bloques mas pequeños, y luego construir cada bloque independientemente. • Un posible ejemplo podría ser un multiplicador secuencial, el cual se divide en dos sub bloques. El data path y control path, a la vez cada uno de estos sub bloques se subdividen en dos bloques mas pequeños. • Ahora el multiplicador podría ser parte de una unidad aritmética lógica (ALU), y este podría ser parte de un procesador. Diseño Jerárquico • El diseño de circuitos complejos o sistemas digitales nos plantea el uso de bloques funcionales (componentes) para resolver el problema. • Estos bloques deben identificarse según el papel que cumplan en la arquitectura solución. • Cada uno de estos bloques se diseña según su función, pudiendo contener más bloques funcionales en su interior. • Esto continúa hasta llegar a bloques básicos como sumadores, multiplexores, memorias, registros, etc. Diseño Jerárquico Diseño Jerárquico • Por todo esto podemos ver que existen dos beneficios fundamentales de aplicar diseño jerárquico: • Manejo de complejidad. • Reutilización de componentes. Diseño Jerárquico en VHDL • Debido a que VHDL está hecho con el objetivo de modelar el comportamiento de cualquier circuito, es posible también aplicar el diseño modular al código VHDL. • Para realizar un diseño jerárquico, utilizamos los denominados paquetes, componentes y genericos. • Con ellos podemos definir los bloques y subcircuitos a utilizar y agruparlos en una librería para usarlos en nuestro circuito principal (circuito con mayor jerarquía). Además, esta librería puede ser usada en diferentes circuitos (proyectos), con lo cual podemos reusarlos y compartirlos, sin necesidad de volver a escribir un código ya diseñado. • Todo diseño jerárquico contará con más de 1 archivo VHDL en el proyecto. Se debe tener 1 archivo VHDL por cada componente a utilizar, 1 archivo para el paquete y 1 para el circuito principal. Diseño Jerárquico en VHDL PAQUETES • Un paquete es una parte de una librería que agrupa porciones de código usados comúnmente, como son los componentes, funciones, procedimientos, tipos de datos y constantes. • Su uso permite crear librerías y usarlas en diversos circuitos, permitiendo el diseño jerárquico y el reuso de porciones de código. • Todo paquete creado por el usuario se encuentra dentro de la librería WORK. • Sintaxis package nombre_paquete is [declaración de tipos de datos] [declaración de constantes] [declaración de componentes] end nombre_paquete; • Declaración del paquete en el circuito principal use work.nombre_paquete.all; Diseño Jerárquico en VHDL COMPONENTES • Es un circuito. • Al ser tratado como componente, puede ser utilizado en un diseño jerárquico y reutilizado y compartido en otros circuitos. • Para ello, debe ser declarado en un paquete y, posteriormente, deber ser instanciado en el circuito principal. • Sintaxis de la declaración del componente (es su entidad). component nombre_componente port( <entradas> :in <tipo_dato>; <salidas> :out <tipo_dato> ); end component; Diseño Jerárquico en VHDL PORT MAP • PORT MAP nos permite instanciar un componente dentro de un circuito. Instanciar un componente, apeo , significa utilizar físicamente a este circuito y conectarle señales (cables) a cada uno de sus puertos. • Podemos realizar 2 tipos de mapeo: • POR ASIGNACIÓN: tiene en cuenta el nombre del puerto al asignarle una señal. • POR POSICIÓN: tiene en cuenta en la asignación la posición de las señales respecto a la presente en su declaración. Diseño Jerárquico en VHDL PORT MAP • Sintaxis del mapeo POR ASIGNACIÓN. [etiqueta]: nom_comp port map (puerto1=>señal1, puerto2=>señal2, …; • Sintaxis del mapeo POR POSICIÓN. [etiqueta]: nom_comp port map señal , señal , … ; Diseño Jerárquico en VHDL • Ejemplo: • Desarrollar un sumador de 4 bits, a partir de sumadores de 1 bit. Diseño Jerárquico en VHDL • Para lograr esto utilizaremos sumadores completos de 1 bit y los conectaremos en paralelo. Diseño Jerárquico en VHDL Diseño Jerárquico en VHDL Diseño Jerárquico en VHDL Diseño Jerárquico en VHDL Diseño Jerárquico en VHDL Diseño Jerárquico en VHDL Diseño Jerárquico en VHDL Comparadores • Además de la operación aritmética de la suma, es necesario poder comparar números para realizer ciertas acciones. • Los circuitos comparadores como su nombre lo indican, nos permiten comparar dos magnitudes y determinar qué relación tienen entre sí. • La forma más sencilla de un comparador nos permite identificar si dos números son iguales. Comparador de igualdad • De lo visto anteriormente podemos deducir que la operación XOR es un comparador de igualdad, debido a que si las entradas diferentes el esultado se á y si so iguales se á . Comparador de igualdad • Si se desea comparar números que contengan dos bits cada uno, se requerirá más de una compuerta XOR. Ejemplo 1 • Construir un comparador de igualdad que permita identificar si dos números de 4 bits son iguales. Comparadores de desigualdad • Además de comparar si dos números son iguales, se pueden dar casos donde deseemos determinar si un número es mayor o menor que otro. • Para eso tenemos componentes que nos permiten determinar si un número es mayor o menor. Comparadores de desigualdad Comparadores de desigualdad • Para determinar si un número es mayor que otro se debe empezar comparando por sus bits más significativos. • “i po eje plo se tie e dos ú e os de its , A y B, si A = y B = , e to es el ú e o A se á ayo ue el ú e o B. • En caso ambos MSB fueran iguales, se evalúa el segundo MSB y así sucesivamente hasta determinar qué número es mayor. Ejemplo 2 • Indicar si el número 0110 es mayor o menor que el número 1100. Ejemplo 3 • Indicar si el número 01101010 es mayor o menor que el número 01100100. Decodificadores • Los decodificadores son circuitos que permiten identificar si una combinación particular de bits ha sido activada. • En su forma más simple es un circuito que contiene n líneas de entrada, para manejar n bits, y 2n lineas de salida para indicar la presencia de una o más combinaciones de n-bits. El decodificador básico binario • Imaginemos que necesitamos determinar cuando la combinación 1001 ocurre, ¿Qué circuito nos permitiría generar dicha entrada? • Podemos aplicar la compuerta AND para identificar esta única combinación dentro de las 16 posibles. • Para esto requeriremos aplicar compuertas inversoras en las posi io es de its ue e esite os te ga u valo de pa a a tiva el circuito. El decodificador básico binario Ejemplo 4 • Diseñar un circuito decodificador para la siguiente secuencia de bits 1011. Decodificador de 4 bits • Un decodificador de 4 bits es un circuito que puede mostrar todas las posibles combinaciones de bits a su salida. • Para ello el circuito se compone de 4 entradas y 16 salidas, una para cada combinación posible. Decodificador de 4 bits Decodificador de 4 bits