Modificación de ASMs sobre descripciones funcionales en VHDL (2007)
Este proyecto presenta una metodología de extracción del tiempo de vida de las variables en diagramas ASM estructurados y la modificación de estos mediante agrupación de variables, con el fin de lograr reducciones en las métricas de desempeño de su implementación en lógica programable. Se ha realizado una herramienta software que puede extraer el tiempo de vida de un ASM descrito en VHDL de manera automática, teniendo en cuenta que la tendencia de automatizar los procesos de captura, síntesis y optimización en el diseño de circuitos digitales es la que ha permitido el gran avance en la extensión y complejidad de dichos diseños. Tras evidenciar la falta de una metodología de extracción del tiempo de vida de las variables para ASMs con decisiones en el marco teórico consultado, se optó por diseñar una nueva metodología que permitiera analizar cualquier diagrama ASM, llegando a la conclusión de que la mejor forma de hacerlo era planteando un nuevo conjunto de estructuras para diseñar ASMs. De esta manera se propone una concepción alternativa de la construcción de diagramas ASM. Sobre dicha concepción se hace un análisis que permite extraer el tiempo de vida de las variables en cualquier situación. Como la intención de obtener el tiempo de vida está sustentada en permitir la modificación del ASM sin que se altere su funcionamiento, se propone una experimentación de la agrupación de variables que explora las posibilidades de agrupación de manera exhaustiva como un acercamiento al efecto que tienen tales modificaciones en las métricas de desempeño para implementaciones en lógica programable, a saber, el número de slices o celdas básicas usadas y la máxima frecuencia de operación del circuito. Por último, se implementan los algoritmos obtenidos en la metodología mediante un lenguaje de programación de software, generando una herramienta que toma como entrada una descripción de un ASM en VHDL y extrae el tiempo de vida de las variables de dicho ASM. La herramienta también tiene la capacidad de generar las modificaciones de agrupación de variables, compilar los códigos VHDL con un sintetizador comercial externo y extraer los resultados de síntesis arrojados por dicho sintetizador