por una matriz de puertas lógicas y flip-flops, que proporcionan una solucion al diseño de forma análogas, a las soluciones de suma de productos, productos de sumas y multiplexores PROM • Este tipo de dispositivo se basa en la utilización de una matriz AND fija, seguida de una matriz OR programable PLA • ambas matrices, la de puertas And, así como la de puertas Or es programable, por lo que nos vemos habilitados a incrementar el número de entradas disponibles, sin aumentar el tamaño de la matriz. PAL • Una PAL es diferente de una PROM a causa de que tiene una red Y programable y una red O fija CPLD (Complex PLD) • La matriz de interconexión se programa para conectar de forma selectiva señales de entrada a un nivel de puertas AND programables que se conectan a su vez a un nivel de puertas OR fijo. • Las salidas de las puertas OR se conectan a su vez a macrocelulas configurables que permiten al usuario: o Especificar la polaridad de salida. o Seleccionar operaciones combinacionales o de registro. o Proporcionar la funcionalidad triestado. o Opcionalmente realimentar la matriz de interconexión. • Independientemente de la función que se implemente, el camino que siguen las señales a través del CPLD es prácticamente el mismo. Esta arquitectura limita la flexibilidad del diseño, pero ofrece la ventaja con que los tiempos de propagación son muy predecibles. FPGA (Field Programmable Gate Array) • Consiste en una matriz de gran tamaño de celdas lógicas simples con canales de rutado horizontal y vertical para interconexión. • No tienen una estructura de implementación predefinida, como los CPLD, permitiendo implementar una función lógica de mulltiples maneras. • Son tremendamente flexibles y potentes algunas de ellas. el lenguaje VHDL El lenguaje VHDL está creado específicamente para el diseño de hardware, es decir, podremos implementar con él multitud de circuitos lógicos, tanto combinacionales como secuenciales Un programa en VHDL consta de dos partes. La primera, la entidad, nos sirve para relacionar nuestro diseño con el mundo exterior, es decir, analizamos lo que tratamos de crear como una "caja negra", de la que sólo conocemos sus entradas, sus salidas y la disposición de las mismas La segunda parte, la arquitectura, describe como trata el circuito la información correspondiente a las entradas para obtener las salidas. VHDL soporta con este motivo, tres típos de objetos, las variables, las constantes y las señales . Como las variables y las señales pueden variar su valor mientras ejecutamos un programa, serán éstas las encargadas de almacenar dichos datos, asimismo serán los portadores de la información Los process son estructuras concurrentes constituidas por sentencias de ejecución secuencial Únicamente las señales pueden tener la connotación de globalidad dentro de un programa, es decir, que pueden ser empleadas dentro de cualquier parte del programa a diferencia de las variables que solo tienen sentido en el interior de un process . library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity ejemplo1 is port( A1: in std_logic ; A2: in std_logic ; B2: in std_logic ; A3: in std_logic ; B3: in std_logic ; f1: out std_logic ; f2: out std_logic ; f3: out std_logic ); end; architecture behavioral of ejemplo1 is begin inver: process (A1) begin if A1='0' then f1<='1'; else f1<='0'; end if; end process inver; compand: process (A2,B2) begin if A2='0' or B2='0' then f2<='0'; else f2<='1'; end if; end process compand; compor: process (A3,B3) begin if A3='1'or B3='1' then f3<='1'; else f3<='0'; end if; end process compor; end behavioral;