Академический Документы
Профессиональный Документы
Культура Документы
VHDL
Descripción de comportamiento
Una descripción de comportamiento de un multiplexor de dos entradas, una salida y una señal de selección
sería: la salida será igual a la primera entrada si la señal de control está desactivada y la salida será la segunda
entrada si la señal de control está activada.
En VHDL la arquitectura de este multiplexor para la entidad llamada mux sería:
En el código anterior se deberían haber definido previamente las puertas inversor, and_2_entradas y
or_2_entradas.
Con la generación del “netlist” (síntesis) tenemos la descripción de una serie de elementos lógicos conectados
y podemos pasar a realizar la validación del diseño, mediante la simulación. La simulación puede ser funcional,
considerando los elementos como ideales (sin retrasos), o estructural, en el que la herramienta informática
incorpora modelos más elaborados de los elementos lógicos que permiten realizar la simulación incorporando
retrasos. En este último caso, podemos abordar además el análisis de los tiempos de setup y de hold. La
simulación funcional es más rápida y se aconseja realizarla primero hasta que la lógica de nuestro diseño se
compruebe.
Una vez que se ha realizado la simulación funcional podemos pasar a la implementación física, es necesario
una etapa de síntesis y ajuste (“fitting”) en el que el diseño se divide en elementos asimilables a los recursos
físicos de nuestra PLC (sumas de productos, multiplexores, memoria embebida).
Se puede observar en la figura que se pueden generar netlist tomando como base diferentes tipos de
elementos, por ejemplo, puertas elementales al inicio del diseño, o bien los elementos que realmente se
encuentran en un dispositivo programable, una vez que sabemos cuál vamos a utilizar.
Requerimientos y limitaciones.
En un diseño existen una serie de requerimientos previos como pueden ser:
- El diseño debe estar terminado en una cierta fecha.
- Debe funcionar correctamente, con el mínimo de material.
- Debe ser capaz de operar a una cierta frecuencia.
- No puede superar un cierto coste económico.
- Debe ajustarse a un circuito más complejo (limitaciones de espacio y compatibilidad).
El orden de los requerimientos puede ayudar a tomar decisiones. Por ejemplo, si la fecha limite es el
requerimiento más importante, el diseñador no dedica más tiempo a mejorar un diseño que ya cumple el
resto de requerimientos. Si la frecuencia de operación es un parámetro más crítico que el coste, no se pierde
tiempo intentando reducir el área si las prestaciones ya son suficientes.
Es necesario tener en cuenta también las limitaciones de los CI programables:
- Número de salidas/entradas.
- Número de biestables.
- El número de términos producto (o capacidad booleana).
- Las posibles combinaciones de reset/preset que admita.
- Los posibles esquemas de distribución reloj.
- La capacidad de interconexión interna de señales.
A la hora de decidir entre una CPLD o una FPGA es importante tener en cuenta algunas consideraciones. Las
CPLDs proporcionan habitualmente las mejores prestaciones, pero también contienen menos registros que las
FPGAs.
Las CPLDs pueden implementar funciones más complicadas en un sólo pase (sin que la salida sea realimentada
al integrado) y en ellas el análisis de tiempos es más fácil. Las FPGAs son más flexibles en cuanto a la
construcción de celdas lógicas en cascada debido a su granularidad más fina (celdas lógicas más sencillas, pero
en mayor número que en una CPLD, y con mayor capacidad de conexión).
La optimización y el análisis de tiempos son más difíciles en una FPGA.
Antes de elegir un dispositivo, es conveniente entender qué recursos necesita un diseño, su funcionamiento,
así como los objetivos de prestaciones, coste y otros. Con todos los requerimientos en una lista, se pueden
comparar las necesidades con lo que un dispositivo puede ofrecer.
Finalmente, hay que contar por supuesto con un software adecuado y manejable.
Flip-Flops
El "Flip-flop" es el nombre común que se le da a los dispositivos de dos estados, que sirven como memoria
básica para las operaciones de lógica secuencial. Los Flip-flops son ampliamente usados para el
almacenamiento y transferencia de datos digitales y se usan normalmente en unidades llamadas "registros",
para el almacenamiento de datos numéricos binarios.