Diseño de Circuitos Lógicos Combinatorios Usando Optimización Mediante Cúmulos de Partículas

"Diseño de Circuitos Lógicos Combinatorios Usando Optimización Mediante Cúmulos de Partículas"

Erika Hernández Luna
 

Texto completo de la Tesis     

 


Resumen

En esta tesis se propone un algoritmo para el diseño y la posterior optimización de circuitos lógicos combinatorios a nivel de compuertas usando un algoritmo de optimización mediante cúmulos de partículas y tres enfoques de representación distintos: binaria, entera A y entera B . A pesar de que existen muchos criterios para determinar cual es el diseño de costo mínimo de un circuito, en este trabajo se utiliza una métrica basada en el número de compuertas necesarias para la implementación en hardware del circuito. El algoritmo de optimización mediante cúmulos de partículas (Particle Swarm Optimization PSO) es una técnica de optimización numérica de funciones no lineales que se encuentra influenciada fuertemente por algunas otras corrientes como vida artificial, psicología social, ingeniería y ciencias de la computación, que ha conseguido su éxito gracias a que tiene un bajo costo computacional, una fácil implementación y un excelente desempeño. Las técnicas evolutivas han sido sumamente utiles en el proceso de diseño de circuitos electrónicos debido a su poder exploratorio, pues al contar con una población de soluciones potenciales permiten evaluar diversas regiones del espacio de diseño. También se ha visto a los largo de los años que el diseño de circuitos mediante las metodologías tradicionales es un proceso complejo que requiere de tiempo y experiencia por parte del diseñador humano, por lo que se pretende que al utilizar técnicas evolutivas puedan hallarse diseños que son radicalmente diferentes que los encontrados hasta el momento por estos diseñadores. El PSO ha utilizado una representación binaria y frecuentemente una representación real para codificar las soluciones de los problemas, sin embargo en este trabajo además de presentarse una versión binaria, se hicieron los ajustes necesarios para presentar también una propuesta basada en dos enfoques distintos de una versión entera del algoritmo de optimización mediante cúmulos de partículas para el diseño de circuitos lógicos combinatorios a nivel de compuertas. Los dos enfoques de la representación entera y el de la versión binaria del algoritmo propuesto se validaron usando algunos ejemplos tomados de la literatura y comparados contra otros tres enfoques: el diseño realizado por un experto humano, el diseño resultante de aplicar el algoritmo genético de cardinalidad N (NGA), y el diseño obtenido aplicando el algoritmo genético multiobjetivo (MGA).