Duarte Vima

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 192

Síntesis Automática de Circuitos

Analógicos Utilizando Algoritmos


Evolutivos

Por

Miguel Aurelio Duarte Villaseñor


Maestro en Ciencias

Tesis sometida como requisito parcial para


obtener el grado de
Doctor en Ciencias en la especialidad
de Electrónica
en el
Instituto Nacional de Astrofísica
Óptica y Electrónica.
Diciembre, 2010
Tonantzintla, Puebla

Supervisada por:

Dr. Esteban Tlelo-Cuautle


Investigador Titular del INAOE

©INAOE 2010
Derechos Reservados
El autor otorga al INAOE el permiso de
reproducir y distribuir copias de esta tesis en su
totalidad o en partes.
Esta hoja se dejo en blanco intencionalmente.
Sı́ntesis Automática de Circuitos Analógicos
utilizando Algoritmos Evolutivos
Miguel Aurelio Duarte Villaseñor

Resumen
Se presenta una metodologı́a de codificación binaria, la cual ha sido imple-
mentada como un sistema automático para sintetizar circuitos analógicos,
tales como: seguidores de voltaje (VF), espejos de voltaje (VM), seguidores
de corriente (CF) y espejos de corriente (CM); estas cuatro celdas de ganancia
unitaria se combinan para realizar la sı́ntesis de current conveyors (CC), CC-
inversos (ICC) y amplificadores operacionales retroalimentados en corriente
(CFOA). El método de sı́ntesis se programó utilizando algoritmos evolutivos
(EA), los cuales son técnicas de búsqueda basadas en los mecanismos de la
selección natural de Darwin y en la genética biológica de Mendel.
Se comparan algunas herramientas de sı́ntesis con el método realizado en
este trabajo. Además se describe brevemente el EA, resaltando las opera-
ciones genéticas y los tres tipos de EAs: algoritmos genéticos (GA), estrate-
gias evolutivas (ES) y programación genética (GP). Las operaciones genéticas
aplicadas son selección, cruza, mutación y elitismo.
Para realizar los algoritmos evolutivos se utilizo MatLab. Se muestra el es-
quema del algoritmo propuesto y como fue realizada la comprobación de
funcionamiento de éste. Se recurre a SPICE para evaluar el comportamien-
to de las topologı́as obtenidas con tecnologı́a de circuitos integrados CMOS.
De esta manera, el método selecciona sólo los circuitos más apropiados. El
parámetro de evaluación para la selección de los circuitos es calculado según
la respuesta de los circuitos en las simulaciones en SPICE.
Como resultado, la principal aportación de esta tesis es la propuesta del
nuevo método de codificación genética para circuitos analógicos y la sı́ntesis
de nuevas topologı́as para el diseño de VFs, VMs, CFs, CMs. Finalmente
se muestra que la combinanción de estas celdas analógicas genera el código
genético de circuitos con más terminales, tales como los CCs, ICCs y CFOAs.

Palabras Clave: Automatización del Diseño Electrónico, Algoritmo


Evolutivo, Algoritmo Genético, nullor, sı́ntesis de circuitos, seguidor de volta-
je, seguidor de corriente, espejo de voltaje, espejo de corriente, current
conveyor, CFOA.

i
Esta hoja se dejo en blanco intencionalmente.

ii
.

Dedicatorias

A mi mamá, Magdalena Villaseñor


que sobrepasando su obligación como madre
me proporcionó más de lo que le correspondia

A la memoria de mi abuelita Evita,


le doy garcias por tanto cariño
y por el el ejemplo que me dio.

iii
Esta hoja se dejo en blanco intencionalmente.

iv
.

Agradecimientos

Mi agradecimiento al Dr. Esteban Tlelo Cuautle por su orientación, sus con-


sejos y por todo el apoyo brindado para el desarrollo de esta tesis, gracias.

A mis sinodales Dr. Francisco Fernández, Dr. Arturo Sarmiento, Dr. Alejan-
dro Dı́az, Dr. Luis Hernández y Dr. Carlos Reyes. Agradezco sus sugerencias
para mejorar la calidad de este trabajo.

A mi familia, a mi esposa, a mis amigos y a todas las personas que me


apoyaron en la culminación de esta tesis.

Este trabajo fue financiado por CONACyT con la beca para estudios de doc-
torado No. 160533. Además la tesis forma parte del proyecto No. 48396-Y.
“Electrónica evolutiva: sı́ntesis automática de circuitos integrados analógi-
cos”.

v
Esta hoja se dejo en blanco intencionalmente.

vi
Índice general

1. Introducción 1
1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Objetivos y metas . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Organización de la Tesis . . . . . . . . . . . . . . . . . . . . . 6

2. Marco Teórico 7
2.1. Herramientas de sı́ntesis de circuitos
analógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1. Sı́ntesis de circuitos analógicos usando EAs . . . . . . . 8
2.1.2. Herramientas de generación de topologı́as . . . . . . . . 11
2.2. Algoritmos Evolutivos . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1. Genotipo y Fenotipo . . . . . . . . . . . . . . . . . . . 15
2.2.2. Operadores genéticos . . . . . . . . . . . . . . . . . . . 16
2.2.3. Algoritmos Genéticos . . . . . . . . . . . . . . . . . . . 26
2.2.4. Estrategias Evolutivas . . . . . . . . . . . . . . . . . . 30
2.2.5. Programación Genética . . . . . . . . . . . . . . . . . . 32

3. Método de sı́ntesis propuesto 35


3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2. El elemento nullor . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3. Algoritmo Genético realizado . . . . . . . . . . . . . . . . . . 38
3.3.1. Diagrama de Flujo . . . . . . . . . . . . . . . . . . . . 38
3.3.2. Pruebas al GA realizado . . . . . . . . . . . . . . . . . 42
3.3.3. Medida de aptitud para los UGC . . . . . . . . . . . . 47
3.4. Codificación genética de los circuitos . . . . . . . . . . . . . . 53
3.4.1. Genotipo y fenotipo de un VF . . . . . . . . . . . . . . 54
3.4.2. Genotipo y fenotipo de un CF . . . . . . . . . . . . . . 60
3.4.3. Genotipo y fenotipo de un CM . . . . . . . . . . . . . 62
3.4.4. Genotipo y fenotipo de un VM . . . . . . . . . . . . . 68
3.5. Genotipo y fenotipo de las uniones entre dos UGCs . . . . . . 73

vii
3.5.1. Unión simple . . . . . . . . . . . . . . . . . . . . . . . 75
3.5.2. Duplicar salida . . . . . . . . . . . . . . . . . . . . . . 76
3.5.3. Duplicar salida intermedia . . . . . . . . . . . . . . . . 79
3.5.4. Creación del nodo Z . . . . . . . . . . . . . . . . . . . 81
3.5.5. Combinación de nullators-norators . . . . . . . . . . . 82
3.5.6. Genotipo y fenotipo de un CFOA . . . . . . . . . . . . 85

4. Resultados 89
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.2. Topologı́as de VF generadas . . . . . . . . . . . . . . . . . . . 91
4.3. Topologı́as de CF generadas . . . . . . . . . . . . . . . . . . . 95
4.4. Topologı́as de CM generadas . . . . . . . . . . . . . . . . . . . 98
4.5. Topologı́as de VM generadas . . . . . . . . . . . . . . . . . . . 101
4.6. Topologı́as de CCII generadas . . . . . . . . . . . . . . . . . . 103
4.7. Topologı́as de CFOAs generadas . . . . . . . . . . . . . . . . . 106

5. Conclusiones 109
5.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.2. Ideas para trabajos a futuro . . . . . . . . . . . . . . . . . . . 112

A. Parámetros de simulación 113


A.1. Parámetros de 0.35µm, AMI Semiconductor . . . . . . . . . . 113
A.2. Parámetros de 0.50µm, AMI Semiconductor . . . . . . . . . . 114
A.3. Parámetros de 0.18µm, Taiwan Semiconductor (TSMC) . . . . 116
A.4. Parámetros de 0.25µm, Taiwan Semiconductor (TSMC) . . . . 117
A.5. Parámetros de 0.35µm, Taiwan Semiconductor (TSMC) . . . . 118
A.6. Parámetros de 0.18µm, IBM Semiconductor . . . . . . . . . . 120
A.7. Parámetros de 0.25µm, IBM Semiconductor . . . . . . . . . . 121
A.8. Parámetros de 0.35µm, IBM Semiconductor . . . . . . . . . . 122
A.9. Parámetros de 0.50µm, IBM Semiconductor . . . . . . . . . . 124

B. Publicaciones 127
B.1. Publicaciones en congresos . . . . . . . . . . . . . . . . . . . . 127
B.2. Publicaciones en revistas . . . . . . . . . . . . . . . . . . . . . 127
B.3. Publicaciones en capı́tulo de libro . . . . . . . . . . . . . . . . 128

C. Manual de usuario 129


C.1. Descripción de los archivos contenidos de la carpeta SBGU . . 129
C.2. Antes de ejecutar el programa . . . . . . . . . . . . . . . . . . 130
C.3. Ejecución del programa CM. . . . . . . . . . . . . . . . . . . . 131
C.4. Ejecución del programa VF. . . . . . . . . . . . . . . . . . . . 131

viii
C.5. Ejecución del programa CF. . . . . . . . . . . . . . . . . . . . 132
C.6. Ejecución del programa VM. . . . . . . . . . . . . . . . . . . . 133
C.7. Notas Extras . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

ix
Esta hoja se dejo en blanco intencionalmente.

x
Capı́tulo 1

Introducción

1.1. Antecedentes

Actualmente, las herramientas clave para manipular la complejidad en


el proceso de diseño de Circuitos Integrados CMOS son generadas por la
industria de la Automatización del Diseño Electrónico (EDA). Este tipo de
herramientas permiten acelerar el proceso de diseño ya que pretenden re-
presentarlo como una metodologı́a estructurada [1, 2, 3, 4, 5]. En el proceso
de diseño de circuitos integrados, las herramientas EDA se enfocan en au-
tomatizar muchas de las tareas que son de rutina y repetitivas en el diseño
analı́tico.
En algunos casos en el diseño de sistemas analógicos se pueden identificar
bloques funcionales, tales como: amplificadores, seguidores de voltaje, espe-
jos de corriente, entre otros. Los cuales pueden repetirse y además pueden
sintetizarse automáticamente aplicando metodologı́as del EDA [1, 2, 3, 5].
De esta manera, las herramientas EDA incrementan la productividad en el
diseño, aún para bloques de circuitos que no sean repetitivos. Por ello, el
EDA analógico tiene un papel importante en el proceso de diseño. Sin em-
bargo, la automatización del diseño analógico es más compleja comparándola
con el diseño digital, porque las relaciones entre sus especificaciones son más

1
2 CAPÍTULO 1. INTRODUCCIÓN

complejas.
Además, aún para los diseñadores no ha sido posible automatizar todos
los niveles de abstracción y la sı́ntesis de circuitos desde un diseño de al-
to nivel [1, 3, 4]. Esto se debe principalmente a que el diseño analógico
requiere de experiencia, intuición y creatividad; ya que se trabaja con un
gran número de parámetros y de algunas interacciones complejas entre ellos.
Asimismo, debido a la gran variedad de circuitos analógicos, se busca de al-
guna manera automatizar ciertas tareas de diseño, tantas como sea posible
[1, 2, 3, 4, 5, 6, 7, 8, 9].
En los últimos años se han presentado algunos métodos para la sı́ntesis de
circuitos analógicos. Por ejemplo en [1] se muestran trabajos enfocados al
diseño de circuitos pasivos. Asimismo, con el fin de obtener nuevas topologı́as
de circuitos analógicos se han desarrollo herramientas como ACACIA [15]
y ASTRX/OBLX [16]; además de trabajos como el de Grimbleby [17] y
Hajime Shibata con Nobuo Fuji [18]. De esta manera, ya sea para gene-
rar nuevos circuitos u optimizarlos, para encontrar mejoras a topologı́as de
circuitos o para dimensionar ciertas topologı́as conocidas, las herramientas
EDA han utilizado algoritmos inteligentes como los algoritmos evolutivos
(EA) [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21]. Por lo tanto,
el diseño de circuitos analógicos es muy adaptable para técnicas evolutivas
y es un problema que se esta trabajando, como se demuestra en distintas
publicaciones [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21].
En esta Tesis, se propone un método de codificación genética capaz de sin-
tetizar celdas de ganancia unitaria (UGC), tales como: seguidores de voltaje
(VFs) [19, 22, 23, 24], seguidores de corriente (CFs) [8, 24, 25], espejos de
voltaje (VMs) [24, 26, 27] y espejos de corriente (CMs) [24, 25, 28]. Estas
celdas se combinan para realizar la sı́ntesis de circuitos más complejos o con
1.2. MOTIVACIÓN 3

más terminales como los current conveyors (CCs) [25, 29, 30], CC inversos
(ICCs) [25, 27, 30, 31] y amplificadores operacionales retroalimentados en
corriente (CFOAs) [25, 32]; cuyas ecuaciones caracterı́sticas y sı́mbolos se
muestran en la figura 1.1.

Figura 1.1: (a) VF, (b) CF, (c) VM, (d) CM, (e) CCII+, (f) CFOA.

El proceso de sı́ntesis propuesto en esta Tesis esta basado en la apli-


cación de algoritmos evolutivos (EA), principalmente para la generación de
UGCs, CCs y CFOAs. Los EAs son técnicas fundadas en los mecanismos de
selección natural y genética biológica operando sobre el principio de sobre-
vivencia del más apto. Ası́ que los EAs tienen la capacidad de generar nuevos
diseños de solución para una población de soluciones existentes y descar-
tan las soluciones que tienen una medida de aptitud inferior a la deseada
[2, 33, 34, 35, 36, 37].
Cabe mencionar que la principal aportación de este trabajo es el desarrollo
del código genético para la representación de VFs, VMs, CFs, CMs, CCs,
ICCs y CFOAs; además de realizar la búsqueda de nuevas topologı́as.

1.2. Motivación
Los circuitos analógicos como por ejemplo filtros y osciladores han ido
evolucionando al paso de los años [6, 7, 14, 25, 29, 31, 38, 39, 40, 41, 42].
4 CAPÍTULO 1. INTRODUCCIÓN

Esto debido a la búsqueda de modificar una o más cualidades de los circuitos


anteriores y es un progreso que no se ha detenido. De igual forma ha existido
una evolución en las topologı́as de los circuitos OPAMP, OTA, UGC y CC
entre otros [1, 2, 3, 4, 18, 19, 20, 21, 22, 25, 29, 31]. Esta es una evolución
que continúa en estos dı́as, con el fin de encontrar cada vez topologı́as que
se acerquen más a las especificaciones ideales de estos circuitos.
Asimismo, en los últimos años se han presentado métodos para la sı́ntesis de
circuitos analógicos aplicando sistemas inteligentes; como se muestra en los
trabajos de Gielen y Rutenbar [1], Salem [2], Mazumder [4], Mattiussi [6],
entre otros [7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21]. En su mayorı́a son tra-
bajos enfocados al diseño de circuitos pasivos o circuitos con amplificadores
operacionales.
En la actualidad, no hay métodos automáticos genéricos para el diseño de
topologı́as en circuitos analógicos. En diseño digital las celdas básicas son las
compuertas NAND, NOR, NOT, con las cuales se pueden generar bloques
más complejos. En diseño analógico, es posible generar bloques más com-
plejos a partir de celdas de ganancia unitaria (UGCs). De esta manera, el
diseño de un sistema que permita la sı́ntesis automática de topologı́as tales
como VFs, VMs, CFs y CMs facilitará la búsqueda de nuevas topologı́as de
circuitos analógicos con más terminales, tales como los CCs y los CFOAs.
Algunas de las aplicaciones de las UGCs están reportadas en [38, 39, 40].
Asimismo, existen cuantiosas aplicaciones con CCs [29, 41, 42] y CFOAs
[32].

1.3. Objetivos y metas

El objetivo principal de la tesis es la propuesta de un código genético


para la representación de circuitos analógicos, tales como las UGCs. A par-
1.3. OBJETIVOS Y METAS 5

tir de estas UGCs se propone la combinación de códigos genéticos para la


representación de bloques con más terminales como los CCs y CFOAs. El
uso de los códigos genéticos dentro de un procedimiento de sı́ntesis basado
en la aplicación de algoritmos evolutivos, permitirá la generación de nuevas
topologı́as de circuitos analógicos.
Como metas secundarias se tiene:

Proponer una codificación genética que represente topologı́as de UGCs.

Desarrollar un EA para generar topologı́as conocidas y nuevas de


UGCs. Para esto es necesario:

• Realizar los algoritmos de operaciones genéticas: selección, cruza,


mutación y elitismo para este tipo de circuitos.

• Realizar el algoritmo de la operación de evaluación para el EA,


con el objetivo de elegir a las topologı́as funcionales según su simu-
lación en SPICE.

Encontrar nuevas topologı́as de UGCs: VF, CF, VM y CM.

Proponer una codificación genética que represente topologı́as de CCs,


ICCs y CFOAs.

Desarrollar un EA para generar topologı́as conocidas y nuevas de CCs,


ICCs y CFOAs. Obtener nuevas topologı́as de CCIIs, ICCIIs y CFOAs.

Desarrollar un algoritmo que pueda evolucionar las UGCs a circuitos


con más terminales; tales como: CCs y CFOAs.
6 CAPÍTULO 1. INTRODUCCIÓN

1.4. Organización de la Tesis


En el capı́tulo 2 se describen las herramientas de sı́ntesis de topologı́as de
circuitos analógicos, muchas de estas utilizan algoritmos evolutivos (EA).
Se comparan estas herramientas con el método propuesto en esta Tesis.
Además, se describe brevemente los conceptos de EA, resaltando las opera-
ciones genéticas y los tres tipos de EA: algoritmos genéticos (GA), estrategias
evolutivas (ES) y programación genética (GP). Las operaciones genéticas de
los EA son selección, cruza, mutación y elitismo.
En el capı́tulo 3 se describe el método de sı́ntesis propuesto, desde el
planteamiento de la representación ideal de los circuitos por medio de ele-
mentos nullor hasta la descripción a bloques del sistema final a desarrollar.
En el capı́tulo tres se muestran los cromosomas de UGCs y CCs propuestos.
Se presenta como se elaboró un GA que sirve para realizar la búsqueda de las
topologı́as de UGCs, CCs y CFOAs. También en el capı́tulo tres se describen
las pruebas de funcionamiento del GA realizado.
Los circuitos obtenidos se muestran en el capı́tulo 4. Las conclusiones se
muestran en el capı́tulo 5. Para finalizar, en el anexo A se muestran los
parámetros de las tecnologı́as utilizadas en esta Tesis, el anexo B muestra el
listado de publicaciones derivadas de este trabajo y en el anexo C se muestra
el manual de usuario de la herramienta realizada.
Capı́tulo 2

Marco Teórico

2.1. Herramientas de sı́ntesis de circuitos


analógicos

Exı́sten varios trabajos previos acerca de herramientas de sı́ntesis de cir-


cuitos y sistemas analógicos, como por ejemplo: IDAC, OPASYN, OASYS,
O-ISAAC, STATIC, ARCHGEN, DARWIN, AMGIE o ANACONDA recopi-
lados en [1]. Algunos de estos dimensionan los MOSFET de los circuitos [47];
otros mejoran algún parámetro en los dominios de CD, CA y/o tiempo de
una cierta topologı́a o circuito conocido [61]; y otros realizan filtros o encuen-
tran funciones analógicas con circuitos CMOS [63].
También existen trabajos desarrollados utlizando EAs, estos muestran una
codificación de circuitos en un cromosoma, como se muestra en los trabajos de
Salem [2], Mattiussi [6], Kruiskamp y Leenaerts [47] entre otros [4, 5, 7, 8, 9].
Sin embargo, estas descripciones se enfocan a optimizar ciertos parámetros
de un circuito en CD, CA y/o tiempo. Por lo que sus codificaciones repre-
sentan, en la mayorı́a de trabajos, dimensiones de sus transistores y no como
están realizadas estas topologı́as, ya que principalmente optimizan topologı́as
conocidas [1, 2, 4, 6, 7, 8, 12, 13, 14, 17, 15, 16, 18]. Ası́, se tiene la necesidad
de realizar una codificación diferente a las ya mencionadas. De esta manera,

7
8 CAPÍTULO 2. MARCO TEÓRICO

en la propuesta de esta Tesis se están buscando nuevas topologı́as, las cuales


se sintetizan a partir de la representación de los circuitos con códigos bina-
rios.
El método de sı́ntesis propuesto utiliza Algoritmos Evolutivos, los cuales son
técnicas de búsqueda basadas en los mecanismos de selección natural y en la
genética biológica. El principio de supervivencia del más apto es el eje central
sobre el cual se desarrollan los EAs. Los EAs simulan el proceso evolutivo
en una computadora con la finalidad de resolver problemas de aprendizaje,
búsqueda, clasificación u optimización.

2.1.1. Sı́ntesis de circuitos analógicos usando EAs

La utilización de EAs no solo se enfoca a reproducir los cambios en los


individuos biológicos, sino se ha trabajado con estos algoritmos en distintas
áreas del conocimiento, como: cómputo [33], medicina [43], matemáticas [44],
óptica [45, 46], entre otras [5, 34, 35]. Algunos de los trabajos que existen
acerca de las herramientas de sı́ntesis de circuitos y sistemas analógicos se
muestran en los cuadros 2.1 y 2.2.
Todos los algoritmos mostrados en los cuadros 2.1 y 2.2 realizan sı́ntesis de
circuitos analógicos y trabajan mediante algún tipo o método de EA. Se
observa en los cuadros 2.1 y 2.2 que tipo de circuito sintetizan, cual es su
método de evaluación y el tipo de algoritmo evolutivo realizado en estos tra-
bajos.
2.1. HERRAMIENTAS DE SÍNTESIS DE CIRCUITOS ANALÓGICOS 9

Cuadro 2.1: Trabajos de sı́ntesis de circuitos analógicos usando EAs.

REF EA Sintetiza Evaluación Notas


[6] GP Circuitos de volta- Mono-objetivo. Tesis de doctorado.
ES je de referencia, sen- Promedio del 2005
sor de temperatu- mı́nimo de la
ra, generadores de la suma de los
función ‘campana de cuadrados
Gauss’ y evolución
de una XOR a una
red neuronal
[7] GP Amplificadores y fil- 16 objetivos en 5 Han logrado realizar
tros diferentes test más de 20 patentes
de circuitos analógi-
cos. 2004
[10] GP OPAMP CMOS, Os- Mono-objetivo. 2005
GA cilador de anillo y En CA, CD y
Compuerta XOR Tiempo
[11] GA Osciladores sinu- Mono-objetivo, Utiliza bloques RLC
soidales por frecuencia de y OPAMP. 2003
oscilación
[12] GP Filtros pasa-bajas — Escoje los compo-
y amplificadores de nentes de una libre-
voltaje ria y los dimensiona.
2007
[13] GP Filtros pasa-bajas, Multi-objetivo, 2006
RLC sumatoria de la
norma
[14] GA Osciladores sinu- Mono-objetivo Utiliza bloques UGC
soidales y RLC. 2004
[17] GA Filtros RLC Mono-objetivo, Sintetiza circuitos
inverso de expo- sencillos de realizar.
nencial 2000
[19] ES VF y CF — Solo propuesta. 2006
[20] GA Optimiza CCII que 11 especificaciones Optimiza W y L.
se encuentran en una 2002
librerı́a.
[22] ES VF — Solo propuesta. 2005
[47] GA OPAMP Mono-objetivo, DARWIN, el circuito
magnitud dB lo entrega dimen-
sionado. 1995
[48, GA OPAMP Multi-objetivo Realizan la sı́ntesis
49] uniendo bloques y
después optimizan
con GA (dimensio-
nando los CMOS).
2003
10 CAPÍTULO 2. MARCO TEÓRICO

Cuadro 2.2: Continuación del cuadro 2.1.


REF EA Sintetiza Evaluación Notas
[50] GA Filtros pasa-altas Multi-objetivo, UMOAGA. Puede
suma de objetivos extenderse esto
particulares a otros circuitos
analógicos y digi-
tales. 2005
[51] GA Circuitos inte- Multi-objetivo, MESACGA. Puede
gradores en competencias extenderse a más
locales y globales diseños analógicos.
2005
[52] GA Amplificadores y fil- Multi-objetivos, Solo propuesta. 2001
tros RC-bipolares sumatoria de
objetivos
[53] GA Amplificadores de 3 objetivos, sumas 2007
voltaje con bipolares de respuestas
y filtros pasa-bajas cuadraticas
[54] GA OPAMP Multi-objetivo MOJITO. El espacio
de búsqueda es
de 3528 posibles
topologı́as, 2007
[55] ES VF 7 objetivos, Obtienen VFs al
promedio de los unir varios CMOS.
valores meta. No son viables
para CI por su
complejidad. 2007
[56] GA OPAMP y os- Multi-objetivo, Realizado en C++,
ciladores de anillo suma normailiza- simulan en Hspice.
da 2008
[57] ES Filtros RLC 2 objetivos Filtros pasa bajas,
pasa banda y pasa
altas. 2009
[58] GA Filtros pasa-bajas, Multi-objetivo, 2010
RLC Inverso de la
sumatoria de la
norma
[59] GA VF, CF, VM y CM Mono-objetivo, Tesis de maestrı́a de
superar un niv- Miguel Duarte. 2007
el mı́nimo en
su respuesta en
ganancia
Aquı́ GA VF, CF, VM, CM, Multi-objetivo, Este trabajo de tesis.
CCII+/-, ICCII+/- sumatoria de la Puede extenderse a
y CFOA norma multipli- más objetivos. 2010
cada por pesos. 4
objetivos o menos
2.1. HERRAMIENTAS DE SÍNTESIS DE CIRCUITOS ANALÓGICOS 11

2.1.2. Herramientas de generación de topologı́as

Entre los trabajos que existen acerca de las herramientas de sı́ntesis de


circuitos y sistemas analógicos, se encuentran los enfocados a la generación
de topologı́as. Algunos de estos trabajos generadores de topologı́as se mues-
tran en los cuadros 2.3 y 2.4. En estos se menciona que tipo de topologı́as
sintetizan estos trabajos y el método por el cual lo hacen.

Cuadro 2.3: Herramientas de generación de topologı́as.

REF Sintetiza Método Notas


[7] OPAMP, OTA GP, con 16 objetivos 2004
en 5 diferentes test
[8] CM de bajo voltaje Generación de Este método con-
grafos por evolución tiene semejanzas con
(EGG) EA. 2007
[10] OPAMP con MOS- GP-GA, mono- 2005
FET objetivo en CA, CD
o Tiempo
[18] Nuevos cir- Matrices de super- 2001
cuitos, ejemplo: imposición
IOU T = (IIN )3
[19] VF y CF Los circuitos crecen Solo es una propues-
a partir de un em- ta de sı́ntesis, no se
brión ideal. ES realizo ningún algo-
ritmo. 2006
[32] CFOAs Desarrolla y opti- 2006
miza las topologı́as
propuestas mediante
diseño y análisis
analı́tico
12 CAPÍTULO 2. MARCO TEÓRICO

Cuadro 2.4: Continuación del cuadro 2.3.


REF Sintetiza Método Notas
[47] OPAMP GA Sintetiza y dimen-
siona. 1995
[48, 49] OPAMP Migración de blo- Mientras es realiza-
ques, GA da la topologı́a se
esta dimensionando.
2003
[54] OPAMP GA multi-objetivo, MOJITO. 2007
3528 posibles
topologı́as
[60] OPAMP Unión de bloques 3 objetivos de 12 a
CMOS, parecido a escojer. 2002
un GP
[61] OTAs Unión de bloques de 1992
una libreria
[62] OPAMP Unión de bloques 6 objetivos. 1995
CMOS y variables
W/L para que el cir-
cuito final este listo
para usarse
[63] Osciladores, filtros Unión de blo- 1995
pasa-bajas, ADC ques, como: inte-
gradores, seguidores,
sumadores, etc.
[65] CCII+, CFOA Unión de bloques Solo propuesta, no se
VFs conocidos con programo. 2005
CMs conocidos
[59] VF, CF, VM y CM GA mono-objetivo, Tesis de maestrı́a de
superar un nivel Miguel Duarte. 2007
mı́nimo en su re-
spuesta en ganancia
Aquı́ VF, CF, VM, CM, GA multi-objetivo Este trabajo de tesis.
CCII+/-, ICCII+/- y con operador de 4 objetivos a escojer.
y CFOA elitismo. Evaluación 2010
por suma de norma
miltiplicada por
pesos
2.2. ALGORITMOS EVOLUTIVOS 13

2.2. Algoritmos Evolutivos

Uno de los paradigmas centrales de la biologı́a es el principio de la evolu-


ción, por el que los seres vivos experimentan cambios en el transcurso del
tiempo. Como resultado de estos cambios surgen nuevas especies de las que
derivan otras nuevas y ası́ sucesivamente. Entre otras explicaciones, el prin-
cipio de selección natural, propuesto por Darwin, representa desde su formu-
lación uno de los mecanismos evolutivos más populares [66], cuya trascen-
dencia se extiende más allá del ámbito de la biologı́a. La simulación de la
evolución en la PC aplicando el principio de selección natural no sólo tiene
interés teórico sino también práctico [33, 34, 35, 36, 37].
Los organismos vivos poseen una destreza consumada en la resolución de
problemas de adaptación al medio que los rodea. Los organismos biológicos
obtienen sus habilidades de adaptación, funcionamiento y comportamiento a
través de mecanismos como la evolución y la selección natural [34, 36, 37].
De acuerdo al modelo de Darwin de la evolución de las especies, toda la vida
en nuestro planeta puede ser explicada a través de un conjunto de procesos,
que actúan sobre y dentro de las poblaciones, individuos y especies; como por
ejemplo: la reproducción, herencia, mutación, competencia y selección de los
organismos [66].
La selección natural es el proceso donde los individuos mejor adaptados al
medio ambiente tienen mayor probabilidad de producir descendientes, que
aquellos que son menos aptos [66]. Adicionalmente a las teorı́as de Darwin,
son necesarios los planteamientos de Mendel y de la Genética Matemática
para comprender cómo estos procesos ayudan en la selección natural [67].
El principio de supervivencia del más apto, es el eje central sobre el cual se
desarrollan técnicas de aprendizaje que responden al nombre genérico de Al-
goritmos Evolutivos (EAs) [33]. Los EAs simulan el proceso evolutivo en una
14 CAPÍTULO 2. MARCO TEÓRICO

computadora con la finalidad de resolver problemas de aprendizaje, búsque-


da, clasificación u optimización. El problema a resolver puede caer dentro de
una gran variedad de disciplinas, incluyendo la Biologı́a, Ingenierı́a, Servicios
Financieros y Ciencias Computacionales [2, 35, 44, 45, 46].
Los términos de Computación Evolutiva, Algoritmos Evolutivos, Algoritmos
Bio-inspirados, Computación Natural y Vida Artificial son relativamente re-
cientes y representan un gran esfuerzo para acercar a los investigadores a
seguir los diferentes aspectos de la evolución [34].
Dentro de las principales técnicas de los EAs se encuentran: los Algoritmos
Genéticos (GA), las Estrategias Evolutivas (ES) y la Programación Genética
(GP). Las cuales tienen en común que cada una de ellas se apoyan en la re-
producción, la variación aleatoria, la competencia y la selección de individuos
contendiendo dentro de una población [34, 35]; lo cual es en sı́ la esencia de
la evolución. Cabe aclarar que la evolución es un proceso de optimización, el
cual no implica la perfección. Por lo tanto, la aplicación de los EAs a un con-
junto de posibles soluciones para un problema, deberı́a producir una buena
solución (u óptima, en el mejor de los casos) para ese problema [2, 33].
Algunas caracterı́sticas de los EAs son [33, 34, 35]:

Trabajan con un conjunto de soluciones, que representan las soluciones


al problema.

Buscan la solución en una población de posibles soluciones y no con


soluciones solitarias.

Utilizan una función de evaluación, no utilizan funciones derivadas de


esta o algún otro método o conocimiento auxiliar.

Utilizan reglas de transición probabilı́stica y no determinı́stica.


2.2. ALGORITMOS EVOLUTIVOS 15

Combina elementos de búsqueda estocástica y directa que hace un


balance notable entre exploración y aprovechamiento del espacio de
búsqueda.

2.2.1. Genotipo y Fenotipo

Si un problema puede ser representado por un conjunto de parámetros


(genes), y estos pueden ser unidos para formar una cadena de valores; a esta
cadena se le llama cromosoma y a este proceso se le conoce como codificación
[33, 34].
Es común que la representación de individuos a través de cromosomas se
haga con cadenas de dı́gitos binarios, tal representación es llamada genotipo;
entonces, es necesaria la conversión del genotipo a los valores que pertenecen
a un individuo. El individuo es llamado fenotipo [33, 34, 35, 36, 37].
Existen varios aspectos relacionados con la codificación de un problema a ser
tomados en cuenta en el momento de su realización:

Se debe de usar la representación más pequeña de los parámetros, nor-


malmente se utiliza una representación binaria.

Las variables que representan los parámetros del problema deben ser
discretas para poder representar cadenas de genes.

La mayor parte de los problemas tratados con algoritmos genéticos son


no lineales y muchas veces existen relaciones entre las variables que
conforman las soluciones. Esta es la causa de que la codificación puede
generar genotipos invalidos, estos representan una solución que no se
puede (o debe) realizar fisicamente.

El tratamiento de los genotipos inválidos debe ser tomado en cuenta


para el diseño de la codificación.
16 CAPÍTULO 2. MARCO TEÓRICO

En esta tesis se sintetizan circuitos analógicos donde los genotipos son


compuestos por cadenas de bits. Estos genotipos o cromosomas sintetizan
a un circuito analógico; la codificación propuesta se muestra en el capı́tulo
tres. Los circuitos realizados con transistores MOS son los fenotipos en los
EAs realizados.

2.2.2. Operadores genéticos

Los operadores genéticos son los diferentes métodos u operaciones que se


pueden realizar sobre una población en un EA, estos se dividen en cuatro
categorı́as:

Selección

Cruza o Recombinación

Mutación

Reemplazo, Reinserción o Elitismo

Los dos procesos que principalmente contribuyen a la evolución son los


operadores de cruza y mutación. En los GA y ES el operador principal es la
cruza, mientras que en la GP el principal operador genético es la mutación
[34].

Operador de selección

El operador de selección es el proceso en el que se eligen a los miembros


de la población actual que serán utilizados para la reproducción o cruza.
Su objetivo es dar más oportunidades de ser seleccionados a los miembros
más aptos de la población. El primer paso es la asignación de una medida
de aptitud a cada individuo, la cual se puede realizar por medio de una
2.2. ALGORITMOS EVOLUTIVOS 17

asignación proporcional, o basada en una clasificación (ranking) [34, 35].


En la asignación de aptitud proporcional se convierten los valores objetivos
de una población en una medida de aptitud con un lı́mite superior conocido,
este lı́mite superior es determinado por el valor de la precisión selectiva. Este
método generalmente utiliza alguna operación de escalamiento lineal [33].
En la asignación de aptitud basada en la clasificación (ranking) la población
es evaluada de acuerdo a su valor objetivo. La asignación de aptitud para
cada individuo depende solamente de su posición en la clasificación individual
y no de su valor objetivo actual. La asignación de aptitud basada en la
clasificación puede ser lineal o no. En esta tesis la asignación es lineal ya que
no se utilizaran términos cuadráticos para el cálculo de su clasificación. Los
algoritmos para la clasificación (lineal y no-lineal) primero ordenan los valores
de la función objetivo en orden descendente o ascendente. Por ejemplo: el
individuo menos apto es colocado en la primera posición en el orden de la
lista de valores objetivos y el individuo más apto es colocado en la posición
N, donde N es el número de individuos en la población. Con lo cual, el valor
de aptitud es asignado a cada individuo dependiendo de su posición en el
orden de la población [33].
Habiendo asignado la aptitud a los individuos en la población se procede a
la selección de los padres; lo cual se puede realizar mediante alguno de los
siguientes métodos [33, 34, 35]:

Selección de la rueda de la ruleta.

Muestreo estocástico universal.

Selección local.

Selección por truncamiento.


18 CAPÍTULO 2. MARCO TEÓRICO

Selección por torneo.

Estos métodos son descritos en [33], [34] y [35], para el desarrollo de la


tesis se considerarón los métodos de selección de la ruleta y el de truncamien-
to. Ambos presentarón resultados similares, ası́ que se eligio el que utilizo
el menor tiempo de cómputo: el método de selección por truncamiento. El
método de selección por truncamiento es un método de selección artificial.
Los individuos en la selección por truncamiento son sorteados de acuerdo a
su aptitud y solamente los mejores individuos son seleccionados como pare-
jas. En la figura 2.1 se ilustra el método de truncamiento utilizado en este
trabajo; de los N individuos existentes se tienen que formar N/2 parejas.
Los individuos mejor calificados se seleccionan para formar parejas hasta dos
veces; mientras que los peor calificados no se utilizarón en ninguna pareja.

Figura 2.1: (a) todos los individuos, (b) se califican del mejor al peor, (c)
el método de selección forma las parejas que serán los padres de la próxima
generación.
2.2. ALGORITMOS EVOLUTIVOS 19

Operador de cruza

La cruza, también llamada recombinación, consiste en combinar de alguna


forma los cromosomas de dos padres para formar uno o más descendientes.
Este es el operador más caracterı́stico e importante de un GA, su finalidad
es acelerar el proceso de búsqueda o exploración de los mejores cromosomas
[33, 34, 35]. Existen diversas variaciones dependiendo del número de puntos
de división a emplear o de la forma de sintetizar el cromosoma. Dependiendo
de la representación de las variables en los cromosomas se pueden aplicar los
siguientes métodos [33, 34]:
Recombinación de parámetros reales:

Recombinación Discreta.

Recombinación Intermedia.

Recombinación Lineal.

Recombinación Lineal Extendida.

Recombinación de parámetros binarios:

Cruza de Punto Sencillo.

Cruza de Múltiples Puntos.

Cruza Uniforme.

Cruza Aleatoria.

Cruza con Reducción de Sustituto.

Estos operadores son descritos en [33, 34, 35]. La operación de recombi-


nación utilizada en este trabajo es llamada Cruza de Punto Sencillo, tam-
bién conocida como Sobrecruzamiento con un Punto de Corte. Al comparar
20 CAPÍTULO 2. MARCO TEÓRICO

la cruza de multiples puntos fijos usada anteriormente [59] con la cruza de


punto sencillo, esta última apresento mejores resultados, esto es debido a
que el tamaño de cromosoma es pequeño (unos 22 bits). La cruza de punto
sencillo se ilustra en la figura 2.2; donde los desendientes estan formados con
caracterı́sticas de ambos padres y el punto de corte es aleatorio.

Figura 2.2: Operador de cruza de punto sencillo.

La cruza de punto sencillo es implementada de acuerdo con el algoritmo


que se describe a continuación [34]:

Obtener las parejas de cromosomas padres, por algún operador de se-


lección o aleatoriamente si este no es implementado.

En cada pareja de cromosomas obtener un número aleatorio entero U


comprendido entre 1 y el tamaño del cromosoma menos uno (L-1). El
número U será el punto de corte en la pareja de cromosomas.

El cromosoma hijo es formado con los genes procedentes del cromosoma


padre1 que esten ubicados antes del punto de corte y los genes del
cromosoma padre2 que esten situados después del punto de corte. De
manera contraria se puede generar un hijo2 si se desea.

Los cromosomas hijos forman una nueva población para ser utilizada
por el operador de reinserción, si no existe tal operador los cromosomas
hijos sustituyen a los cromosomas padres.

Un ejemplo de esta cruza con circuitos analógicos se muestra en la figura


2.3; donde los padres son los circuitos (a) y (b) y los descendientes, resultado
2.2. ALGORITMOS EVOLUTIVOS 21

de la cruza, son los circuitos (c) y (d). En estos circuitos se observa que su
cromosoma esta formado por una parte del cromosoma (a) y una parte del
cromosoma (b).

Figura 2.3: Ejemplo de la cruza en circuitos CMOS. (a) y (b) padres, (c) y
(d) descendientes.
22 CAPÍTULO 2. MARCO TEÓRICO

Operador de mutación

Después de la operación de cruza los descendientes experimentan al ope-


rador de mutación. El operador de mutación es el operador más caracterı́stico
de la GP; sin embargo al ser utilizada demasiado en los GA los puede conver-
tir en una búsqueda lenta y al azar. La mutación se encarga de modificar en
forma aleatoria uno o más genes del cromosoma de un descendiente. La re-
presentación de las variables determinara el método de mutación [33, 34, 35];
ası́, dos de los principales métodos son los siguientes:

Mutación de Parámetros Binarios.

Mutación de Parámetros Reales.

Las variables de los descendientes son mutadas por la adición de pequeños


valores aleatorios con una probabilidad baja, esto llamado Tamaño de Paso
de Mutación en algunas referencias [2, 33]. La probabilidad de mutar una
variable es puesta para ser inversamente proporcional al número de variables
o dimensión del cromosoma [33, 34, 35]; aunque puede ser un porcentaje fijo
del número de descendientes y se recomienda que no sea mayor a 5 %.
La operación de mutación utilizada en este trabajo es la mutación de
parámetros binarios. La cual consiste en cambiar uno o más bits de un cromo-
soma; en este trabajo se modificará solo un bit. En la figura 2.4 se muestra un
ejemplo de esta mutación que es implementada de acuerdo con el algoritmo
que se describe a continuación [33]:

Obtener la descendencia del operador de cruza.

A cada cromosoma hijo se le otorga un número aleatorio entre 0 y 1.

Si el número asignado al cromosoma hijo es mayor al tamaño de paso


de mutación, al cromosoma no se le modificara ningún bit. En caso
2.2. ALGORITMOS EVOLUTIVOS 23

contrario se obtiene un número aleatorio entero U comprendido entre


1 y L. El número U será el bit que cambiará de valor.

Los cromosomas hijos (mutados o no) forman una nueva población para
ser utilizada por el operador de reinserción, si no existe tal operador
los cromosomas hijos sustituyen a los cromosomas padres.

Figura 2.4: Operación de mutación de parámetros binarios.

Como se observo en la figura 2.4, el operador de mutación actua sobre


el genotipo o cromosoma. Para mostrar un ejemplo de este operador con
circuitos analógicos, en la figura 2.5 se muestra como fenotipo un circuito
seguidor de voltaje, con su correspondiente cromosoma. Si a este cromosoma
se le realiza la operación de mutación uno de sus bits debe cambiar de ‘0’ a
‘1’ o de ‘1’ a ‘0’. En la figura 2.6 se observan 4 posibles circuitos si se realizara
la operación de mutación al circuito de la figura 2.5.
24 CAPÍTULO 2. MARCO TEÓRICO

Figura 2.5: Circuito VF descrito con su cromosoma.

Operador de reinserción

El operador de reinserción es el método por el cual se insertan los hijos en


la nueva población; por ejemplo, mediante la eliminación de los individuos
más débiles o al azar. Si el tamaño de los descendientes es menor que el
tamaño de la población original, los descendientes serán reinsertados dentro
de la población anterior. Sin embargo, si se quiere que todos los descendientes
sean reinsertados se buscara algún otro método de reinserción [33, 35]. Los
métodos de reinserción más utilizados son la reinserción global y la reinserción
local, para poblaciones locales. Ambas operaciones son basadas en algún
método de selección.
La operación utilizada en este trabajo será un tipo de reinserción global
conocida como reproducción elitista o elitismo [33, 35, 46]; que consiste en
producir igual o menos descendientes que el número de padres y remplazar
los peores padres con los hijos más aptos. En otros términos, los individuos
padres concursan con los hijos para que solo los mejores formen la próxima
2.2. ALGORITMOS EVOLUTIVOS 25

Figura 2.6: Circuitos resultantes de la operación de mutación al VF de la


figura 2.5.
26 CAPÍTULO 2. MARCO TEÓRICO

generación, esto ilustrado en la figura 2.7.

Figura 2.7: Operación de elitismo utilizada en esta tesis.

En esta tesis el operador de reinserción utilizado será el elitismo y es


implementada de acuerdo con el siguiente algoritmo [34, 35]:

Obtener la descendencia del operador de mutación, los N cromosomas


hijos.

Evaluarlos para encontrar su valor de aptitud (fitness).

A esta lista de N hijos agregarle los N cromosomas padres con su medida


de aptitud.

Ordenar a todos los 2N cromosomas (hijos y padres) de acuerdo a su


aptitud (fitness).

Elegir solo a los N cromosomas mejores para que estos sean la nueva
generación; estos serán los nuevos padres en la próxima generación.

2.2.3. Algoritmos Genéticos

Los GA son técnicas estocásticas de búsqueda basadas en los mecanismos


de selección natural y en la genética biológica [33, 35]. La modernización y
2.2. ALGORITMOS EVOLUTIVOS 27

simulación de la evolución con la PC es una de las ideas más atractivas en la


inteligencia artificial. Esta posibilidad fue planteada por primera vez durante
la década de 1950, tras la aparición de los primeros ordenadores, por algunos
investigadores como John von Neumann y Ulam. Sin embargo, no seria has-
ta la década de los años 60 cuando Fraser (1960), Fogel, Owens y Walsh
(1966) realizaron los primeros experimentos de simulación con poblaciones
pequeñas en las que tienen lugar mutaciones. Bagley introdujo en 1967 el
término algoritmo genético. En 1975 el investigador John Holland publicó el
libro Adaptation in Natural and Artificial Systems, una de las referencias más
importantes sobre los GAs desde el punto de vista teórico [34, 35].
Los GAs son métodos adaptivos que pueden ser utilizados en la búsqueda y
obtención de soluciones a problemas de optimización. Estos algoritmos están
basados en los procesos genéticos de los organismos biológicos, codificando
una posible solución a un problema a través de un código nombrado cromo-
soma.
Los GAs utilizan una analogı́a directa del fenómeno de evolución en la natu-
raleza. Comienzan con un conjunto inicial de soluciones aleatorias llamado
población inicial. Cada individuo en la población es llamado cromosoma y
representa una posible solución al problema.
Un cromosoma es una cadena de sı́mbolos llamados genes; que por lo general
son representados por una cadena de dı́gitos binarios. Los cromosomas evolu-
cionan a través de iteraciones llamadas generaciones. En cada generación los
cromosomas son evaluados, usando una medida de aptitud. A los más aptos
se les da la oportunidad de reproducirse mediante recombinaciones con otros
individuos de la población, produciendo descendientes con caracterı́sticas de
ambos padres [33, 34, 35, 37]. Los miembros menos adaptados poseen pocas
probabilidades de que sean seleccionados para la reproducción, por lo tanto
28 CAPÍTULO 2. MARCO TEÓRICO

sus caracterı́sticas tienden a desaparecer.


La siguiente población se forma usando una combinación de los operadores
de selección, cruza, mutación y/o elitismo [33, 34, 35, 36, 37]. Esta nue-
va generación debe contener una proporción más alta de las caracterı́sticas
poseı́das por los mejores miembros de la generación anterior. De esta forma,
a lo largo de varias generaciones, las mejores caracterı́sticas son difundidas
en la población mezclándose con otras. Favoreciendo la recombinación de los
individuos mejor adaptados, con esto es posible recorrer las áreas más prome-
tedoras del espacio de búsqueda. Si el GA ha sido diseñado correctamente,
la población convergerá a una solución óptima o casi-óptima al problema
[2, 33, 34, 35, 37].
Generalmente, los GAs son implementados siguiendo el ciclo mostrado en la
figura 2.8. donde se pueden apreciar los pasos descritos a continuación:

Se genera la población inicial de manera aleatoria.

Se evalúa la aptitud de todos los individuos de la población.

Se crea una nueva población mediante los operadores de selección,


cruza, mutación y/o elitismo.

Se itera hasta que se encuentra una solución satisfactoria.

El poder del GA proviene del hecho de que la técnica es robusta y puede


ser utilizada exitosamente en un amplio rango de problemas como: la op-
timización de funciones numéricas, transportación, localización, en la opti-
mización de la velocidad de herramientas y en algunos problemas que son
difı́ciles de resolver por otros métodos [2, 3, 4, 6, 33, 34, 35, 36, 37, 44, 45,
46, 59].
Cabe mencionar que los GAs no garantizan que encontrarán la solución ópti-
2.2. ALGORITMOS EVOLUTIVOS 29

Figura 2.8: Estructura general de los algoritmos genéticos.

ma al problema pero son generalmente buenos encontrando soluciones acep-


tables a problemas en corto tiempo.
Dado un individuo la función de evaluación le asignará un valor de aptitud, el
cual es proporcional a la utilidad o habilidad del individuo representado. En
muchos casos el desarrollo de una función de evaluación involucra hacer una
simulación; en otros casos la función puede estar basada en el rendimiento y
representar sólo una evaluación parcial del problema. Adicionalmente debe
ser rápida, ya que hay que aplicarla para cada individuo de cada población en
las generaciones sucesivas. Por lo cual, gran parte del tiempo de la ejecución
del GA se emplea en la función de evaluación.
Además existe un problema en los algoritmos genéticos debido a una mala
formulación del modelo, en el cual los genes de unos pocos individuos rela-
tivamente bien adaptados, pero no óptimos, puede rápidamente dominar la
30 CAPÍTULO 2. MARCO TEÓRICO

población, causando que converja a un mı́nimo o máximo local. Una vez


que esto ocurre, la habilidad del modelo para buscar mejores soluciones es
prácticamente eliminada, quedando sólo la mutación como vı́a para buscar
soluciones alternativas; y el GA se convierte en una búsqueda lenta y/o al
azar [33, 34, 35].

2.2.4. Estrategias Evolutivas

A pesar de su aparente similitud con los GAs, las ES son usadas


comúnmente en experimentos empı́ricos, difı́ciles de modelar matemática-
mente. Además, las ES están basadas en el principio de la causalidad fuerte,
el cual establece que causas similares, tienen efectos similares [33, 34].
Las ES fueron propuestas en 1963 en la Universidad Técnica de Berlı́n por
Ingo Rechenberg, Peter Bienert y Hans Paul Schwefel, como método de solu-
ción para el diseño óptimo del cuerpo de objetos colocados en un flujo de
aire, de tal forma que se redujera la resistencia al mı́nimo. Durante el de-
sarrollo del proyecto probaron técnicas ya conocidas y tradicionales como la
ola del gradiente, entre otras; sin embargo, éstas resultaron en vano, dada
la complejidad del problema. Fue Ingo Rechenberg, quien propuso probar
con cambios aleatorios en el conjunto de parámetros, que definı́an la forma
de los objetos, siguiendo el ejemplo de la mutación natural. Peter Bienert
construyó un experimentador automático, el cual trabajarı́a de acuerdo a las
reglas de mutación y selección. Por su parte, Hans-Paul Schwefel comenzó a
probar la eficiencia de los nuevos métodos, con la ayuda de una computadora,
principalmente porque existı́an muchas objeciones a éstas ‘estrategias aleato-
rias’. Para simular el proceso evolutivo en una computadora se requirió de
codificar las estructuras que se replicarı́an, definir las operaciones que afec-
2.2. ALGORITMOS EVOLUTIVOS 31

tarı́an a los individuos, una función de aptitud y un mecanismo de selección


[34]. La versión original (1+1) usaba un solo padre y con él, se generaba un
solo hijo. Este hijo se mantenı́a si era mejor que el padre, o de lo contrario se
eliminaba. En esta versión, un individuo nuevo es generado por el operador
de mutación.
Fue en 1973 cuando, en su tesis de doctorado, Ingo Rechenberg estableció las
bases teóricas para las ES, definió los conceptos de mutación y selección, y
agregó el nuevo concepto de población en una variante de las ES propuestas
inicialmente. Posteriormente, surgieron otras versiones para las ES propues-
tas por Schwefel, quien introdujo el uso de múltiples hijos en las variantes
[34].
Ası́, las ES fueron creadas como un método para resolver problemas de op-
timización técnica; y hasta hace relativamente poco sólo eran conocidas en
Ingenierı́a Civil como alternativa de soluciones estándares [34, 46]. Por lo
general donde se utilizan las ES es cuando no existe una solución analı́tica
para estos problemas y por lo tanto no existe un método de solución. La opti-
mización con ES se basa en la hipótesis cuya afirmación es que las leyes de la
herencia han sido desarrolladas para una adaptación genética rápida. Las ES
imitan los efectos de los procedimientos genéticos que actúan directamente
sobre el fenotipo, en contraste con los GAs que trabajan sobre el genotipo.
Existen algunos tipos de problemas que son adecuados para aplicar ES, por
ejemplo cuando el espacio de búsqueda es demasiado grande para ser explo-
rado a detalle [34]. Ya que las ES copian la evolución biológica, las aplica-
ciones de estas estrategias tienden a eliminar a los individuos débiles, y a
todas las soluciones similares a ellos (o sea, sus descendientes) en las etapas
tempranas de la simulación. De esta forma se restringe el espacio para en-
contrar una solución adecuada.
32 CAPÍTULO 2. MARCO TEÓRICO

2.2.5. Programación Genética

La programación genética es una clase de algoritmos parecida a los GAs


solo que estos no contienen el operador de cruza. En un algoritmo realiza-
do con GP los individuos de la población se reproducen asexualmente, esto
significa que un único individuo será capaz por si solo de tener descendencia
sin necesidad de la colaboración de otro individuo [34]. La ausencia del ope-
rador de recombinación conduce a que la única fuente de variabilidad de los
individuos sea aquella que resulta de las mutaciones.

Figura 2.9: Estructura general de los algoritmos que se basan en GP.

En los algoritmos evolutivos de este tipo es frecuente seleccionar a un


solo individuo y una vez seleccionado por su puntuación o fitness la nueva
generación; es decir, su descendencia se obtiene por simple copia o clonación
de su cromosoma, mutando una o más posiciones en los cromosomas de los
individuos de la nueva generación [34].
Un ejemplo llamativo de la GP es el de los biomorfos de Dawkins, uno de
2.2. ALGORITMOS EVOLUTIVOS 33

los algoritmos evolutivos más conocidos que es capaz de obtener organismos


artificiales en dos dimensiones. Este algoritmo fue introducido en el libro
El reloj ciego (1986), que rápidamente se convertirı́a en un clásico de la
divulgación cientı́fica. En resumen, en un GP las fases de reproducción y
mutación se repetirán iterativamente hasta que el algoritmo encuentre el
cromosoma que resuelva el problema, como se muestra en la figura 2.9.
34 CAPÍTULO 2. MARCO TEÓRICO

Esta hoja se dejo en blanco intencionalmente.


Capı́tulo 3

Método de sı́ntesis propuesto

3.1. Introducción

Existen trabajos previos acerca de herramientas de sı́ntesis de circuitos


y sistemas analógicos como se describió en el capı́tulo 2. En este capı́tulo se
presenta la propuesta de un algoritmo evolutivo para la sı́ntesis de circuitos
analógicos. Para realizar la codificación de los UGCs, CCs y CFOAs se uti-
lizará como base el elemento nullor [68, 69]. Ası́, en este capı́tulo se presenta
la descripción del nullor y sus propiedades.
Posteriormente se describe el proceso propuesto para la búsqueda de
topologı́as; donde se describe un GA genérico que será el pilar del méto-
do propuesto. La implementación de este GA se ha programado en MatLab
y se utilizaron algunas funciones de prueba para verificar su funcionamiento.
Las respuestas del GA a las funciones de prueba se muestran en este capı́tulo.
Para finalizar se muestran cada una de las codificaciones genéticas propuestas
para los distintos circuitos analógicos.

35
36 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

3.2. El elemento nullor


En [68] se encuentra una recopilación de metodologı́as de análisis, diseño
y sı́ntesis de circuitos analógicos usando nullors. Hanspeter Schmid [69] de-
mostró su utilidad para modelar el comportamiento ideal de varios disposi-
tivos activos, tales como: amplificador operacional (OPAMP), amplificador
operacional de transconductancia (OTA), current conveyor (CC), etc. El nu-
llor es un dispositivo ideal de dos puertos, compuesto por un elemento O
(nullator) y por un elemento P (norator); con cuatro variables asociadas. En
el puerto de entrada el voltaje y corriente del nullator y en el puerto de sali-
da el voltaje y la corriente del norator, como se muestra en la figura 3.1. El
voltaje y la corriente de nullator son siempre cero, mientras para el norator
el voltaje y la corriente son arbitrarios [30, 68, 69].

Figura 3.1: Nullor.

Las propiedades de los elementos O y P se pueden aprovechar para mode-


lar el comportamiento ideal de los bloques de ganancia unitaria. Por ejemplo,
para modelar el comportamiento ideal del VF se puede utilizar uno o más
elementos O como se muestra en la figura 3.2 [19, 21]; donde se demuestra
que el voltaje a la salida del VF (Vo) es igual al voltaje de entrada (Vi), por
las propiedades del nullator. Dado que el voltaje y la corriente del nullator
son igual a cero, el puente de cuatro nullators modela el comportamiento de
uno simple.
3.2. EL ELEMENTO NULLOR 37

Figura 3.2: Modelos de VFs usando (a) uno y (b) cuatro nullators.

Para modelar un CF se utilizan celdas genéricas formadas por uno, o más


norators [19, 21]. En estos circuitos las variables eléctricas son las corrientes.
Dado que la corriente que circula a través del norator siempre es la misma, se
cumple que la corriente de la salida (Io) es igual a la corriente de la entrada
(Ii).
El modelo de un transistor MOS utilizando el nullor se muestra en la figura
3.3. De esta manera, al agregar norators a los circuitos que estén represen-
tados por nullators y al agregar nullators a las topologı́as que estén repre-
sentadas por norators se forman pares O-P; cada par O-P puede sintetizar
un transistor MOS. Se observa en la figura 3.3 que el punto de unión O-P es
considerado como el source (S), la terminal libre del elemento O es el gate
(G) y la terminal libre del elemento P es el drain (D) del MOSFET.

Figura 3.3: Modelo del MOSFET usando el elemento nullor.


38 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

3.3. Algoritmo Genético realizado


3.3.1. Diagrama de Flujo

Uno de los objetivos principales de esta tesis es desarrollar un sistema


capaz de sintetizar topologı́as conocidas y nuevas de UGCs, CCs y CFOAs.
Para esto se desarrollo un programa basado en EAs. Aunque sean distintos
los objetivos de sı́ntesis para cada UGC, todos se encuentran siguiendo el
esquema mostrado en la figura 3.4.
El algoritmo inicia obteniendo los datos del usuario:

Variables del GA: Tamaño de población, Porcentaje de mutación,


Número máximo de generaciones y Mı́nimo error buscado.

Tipo de UGC a sintetizar: VF, CF, VM, CM.

Varibles deseadas: Ganancia, Ancho de banda, Impedancia de entrada


y/o salida.

Peso de los valores deseados en la función de evaluación.

Tipo de simulador: TOP-SPICE, H-SPICE, Tanner-SPICE.


Tipo de tecnologı́a:
• AMI Semiconductor: 0.35µm, 0.50µm.
• IBM Semiconductor: 0.18µm, 0.25µm, 0.35µm, 0.50µm.
• Taiwan Semiconductor (TSMC): 0.18µm, 0.25µm, 0.35µm.

Después de obtener los datos se realiza una elección de celda ideal. Este
consiste en describir el UGC por medio de elementos nullators y/o norators.
Por ejemplo para representar un CF existen varias celdas genéricas formadas
por uno o más norators. En la figura 3.5 se muestran todas estas posibilidades
con uno y dos nullators; las combinaciones con tres nullators se observan en
3.3. ALGORITMO GENÉTICO REALIZADO 39

Figura 3.4: Diagrama de Flujo del programa que sintetiza circuitos analógi-
cos.
40 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

la figura 3.6. Al utilizar cuatro nullators para describir un CF se encuentran


15 posibilidades diferentes (figura 3.7). Entonces el método de elección de
celda ideal se realiza con el fin de seleccionar cualquiera de las 23 posibles
descripciones ideales de CF; y no solo ocupar las tres clásicas: figura 3.5(a),
figura 3.5(b) y figura 3.7(l). Los circuitos que se representan con estas tres
celdas han sido estudiados por varios autores [8, 19, 21, 25]. Sin embargo,
existen 23 posibilidades de acomodar elementos norator que idealmente des-
criben un CF, las cuales no han sido estudiadas a fondo.
El método de elección de celda ideal tiene el mismo objetivo para los otros
tipos de UGC, explorar más posibilidades de circuitos útiles.

Figura 3.5: Modelos ideales de CFs usando uno y dos norators.

Figura 3.6: Modelos ideales de CFs usando tres norators.

Después de realizar la selección de celda ideal, se crean aleatoriamente


algunos individuos para generar una población inicial. Se decodifican los cro-
mosomas y se generan los netlist de los circuitos para su simulación en SPICE.
Se simulan los archivos en SPICE con la tecnologı́a selecionada. Posterior-
3.3. ALGORITMO GENÉTICO REALIZADO 41

Figura 3.7: Modelos ideales de CFs usando cuatro norators.

mente se evalúa a cada individuo, según su repuesta en SPICE y se le asigna


una medida de aptitud. Cada individuo y su medida de aptitud se guarda
en memoria. Entre mejor desempeño muestre el circuito, mejor es el valor
42 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

calificado al cromosoma.
Una vez calificados los individuos estos serán los padres para un GA que itera-
ra hasta un número máximo de generaciones o hasta encontrar una topologı́a
que pueda ser útil. Este GA realiza las operaciones de selección, cruza, mu-
tación y elitismo descritas en el capı́tulo 2. Cuando finaliza el GA entrega un
netlist del UGC, CC o CFOA buscado. Cabe mencionar que se espera que el
GA sintetize circuitos conocidos y nuevos.

3.3.2. Pruebas al GA realizado

En la figura 3.4 se muestra el esquema del EA a realizar, los bloques son


realizados por sub-programas. Algunos de estos son particulares para cada
UGC y otros sub-programas deben ser generales. Entendiendo por generales
que estos serán utilizados al sı́ntetizar cualquier UGC, como los operadores
genéticos de selección, cruza, mutación y elitismo. En conclusión, se deben
de desarrollar estos bloques y probarlos con funciones de test estándar para
confirmar su funcionamiento. Puesto que es importante tener la seguridad del
buen funcionamiento de los operadores genéticos y del GA que se utilizará.
Es por esta razón que se realizó un primer GA, obedeciendo a la figura 2.8.
En este se han programado las operaciones de selección, cruza, mutación y
elitismo que se utilizarán en el programa de la figura 3.4. MatLab le asigna
una calificación a cada individuo (fitness). El programa se detendrá cuando
se alcance el valor esperado por el usuario o se llegue a un número máximo
de iteraciones.
La medida de aptitud utilizada es la suma de la norma, como se observa en
la ecuación (3.1). Donde los valores esperados por el usuario son so1, so2,
etc.; y los valores evaluados del cromosoma son ev1, ev2, etc. El programa se
3.3. ALGORITMO GENÉTICO REALIZADO 43

detendrá cuando PTotal sea igual a cero (más una tolerancia de error) [33].

P T otal = |so1 − ev1| + |so2 − ev2| + |so3 − ev3| + · · · (3.1)

Las funciones de test sirven para evaluar, comparar, clasificar y probar


la eficiencia y efectividad del algoritmo. Existen varios tipos de funciones de
test para EA mono-objetivo y multi-objetivo, como las funciones de Binh,
Fonseca, Kursawe, Laumanns, Lis, Murata o Viennet, entre otras recopiladas
en [33]. La prueba de funcionamiento del GA consiste en la búsqueda de
puntos de solución de una o más ecuaciones.
Las ecuaciones utilizadas para evaluar el GA realizado son las descritas en
la Ec. (3.2), todas con un espacio de búsqueda delimitado entre x = [−1, 1],
y = [−1, 1]. Las graficas y los contornos de las ecuaciones se muestran en las
figuras 3.8, 3.9 y 3.10.

F 1(x, y) = x2 − 2xy + 6x + y 2 − 6y

F 2(x, y) = 10x2 + 30y 2 (3.2)

F 3(x, y) = 20 + 10x2 + y 2 − 10cos(2x) − 10cos(2y)

Figura 3.8: (a) Gráfica y (b) contorno de F1(x,y).

Cada ecuación tiene un espacio de búsqueda delimitado entre [−1, 1] de


2R. El tamaño de cromosoma elegido es de 34 bits, este se divide en dos
44 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Figura 3.9: (a) Gráfica y (b) contorno de F2(x,y).

Figura 3.10: (a) Gráfica y (b) contorno de F3(x,y).

números de 17 bits cada uno, variando en pasos simétricos de 0.00001526


(2/131072). Esto genera un espacio de búsqueda de poco más de 17 mil
millones de posibles soluciones (17,179,869,184) para cada función de prueba
a utilizar. Las descripciones de las funciones de prueba (FP) utilizadas se
muestran en el cuadro 3.1.
Las funciones de prueba FP1 a FP6 son mono-objetivo; es decir, el GA
busca la solución a una sola ecuación. Las funciones FP7 a FP13 son multi-
objetivo, el GA busca una solución que satisfaga a dos o más ecuaciones.
Las funciones de prueba buscan máximos, mı́nimos o valores particulares. En
la quinta columna del cuadro 3.1 se muestra el número de soluciones analı́ticas
a la función de prueba. Las FP con una sola solución comprueban que el EA
es capaz de encontrar esa solución y no se estanque en soluciones locales; el
3.3. ALGORITMO GENÉTICO REALIZADO 45

Cuadro 3.1: Funciones de prueba utilizadas.

Ecuaciones Punto a Resultado Número de Notas


encontrar aritmético soluciones
FP1 F1(x,y) mı́nimo -8 1
FP2 F1(x,y) máximo 16 1
FP3 F2(x,y) mı́nimo 0 1 El punto de solución exis-
te, pero no esta decodifi-
cado por los cromosomas.
(x,y)=(0,0)
FP4 F2(x,y) máximo 40 4
FP5 F3(x,y) mı́nimo 0 1 Contiene 8 mı́nimos locales,
ver figura 3.10.
FP6 F3(x,y) máximo 40.5 4
FP7 F1(x,y) máximo 16 1
F2(x,y) máximo 40
FP8 F1(x,y) máximo 16 0 El mejor punto es según la
ec. (3.2) esta cerca de:
F3(x,y) máximo 40.5 (x,y) = (0.5,-0.5)
FP9 F2(x,y) máximo 40 0 Existen 4 puntos a conver-
ger:
F3(x,y) mı́nimo 0 (x,y) = (±1, ±1)
FP10 F1(x,y) valor en 0 1 El punto de solución existe,
particular pero no esta decodificado
F2(x,y) mı́nimo 0 por los cromosomas.
F3(x,y) mı́nimo 0 (x,y)=(0,0)
FP11 F1(x,y) máximo 16 1 Verificar analı́ticamente
F2(x,y) máximo 40 el mejor punto (x,y)=(1,-1)
F3(x,y) mı́nimo 0 para la ec.(3.2) es demasia-
do complejo.
FP12 F1(x,y) máximo 16 ¿? Encontrar analı́ticamente
F2(x,y) máximo 40 el mejor punto (x,y) para
F3(x,y) máximo 40.5 la ec.(3.2) es demasiado
complejo.
FP13 F1(x,y) mı́nimo -8 ¿? Encontrar analı́ticamente
F2(x,y) mı́nimo 0 el mejor punto (x,y) para
F3(x,y) mı́nimo 0 la ec.(3.2) es demasiado
complejo.

GA ofrecerá una solución muy parecida a la ideal cuando el cromosoma no


lo puede decodificar a la solución óptima. Las FP con más de una solución
óptima, se utilizan para observar que el GA es capaz de encontrar a todas
46 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

estas. El conjunto de las mejores soluciones es conocido en investigación de


operaciones como ‘frente de Pareto’ [33, 34, 35]. El uso de EAs generalmente
es en problemas donde la solución analı́tica es muy compleja como en el caso
de FP11, FP12, y FP13; en estos casos se confı́a que el EA sea capaz de
encontrar una solución óptima o casi-óptima al problema [33].
Las pruebas fueron ejecutadas en una computadora marca eMachines modelo
M2352, con procesador Mobile AMD Athlon(tm) XP 3000+ a 524 MHz, con
448MB en RAM. El número máximo de generaciones fue de 150; el tamaño
de la población es de 40 individuos. Ası́, el número máximo de evaluaciones
es de 6000 (150x40). El error mı́nimo pedido fue 0 %, en todas las FP se
ejecutaron 10 veces por prueba.
Los resultados de las ejecuciones de las FP en el GA se muestran en el cuadro
3.2. Donde se observa el punto de solución deseado y el encontrado por el
GA, promedio de tiempo de cómputo y promedio de número de generaciones
realizadas para encontrar la solución.

En el cuadro 3.2 se observa que el GA logra encontar los puntos de óptimos


de solución para FP1, FP2, FP4,FP7,FP9 y F11. Mientras que para FP3,FP5
y FP10 encuentra los puntos más cercanos al óptimo, esto es porque el cro-
mosoma del punto (0,0) no existe en esta codificación. En FP6 el algoritmo
no encuentra los puntos (±0,5,±0,5), sin embargo sus respuestas son muy
cercanas a estos puntos; para lograr que el GA encuentre los puntos óptimos
vasta con aumentar el número de generaciones. Para las FP8, FP12 y FP13
se presentan en el cuadro 3.2 los puntos del mejor y peor caso, los otros
resultados son cercanos a esos puntos; lo que hace concluir que la solución
son los mejores puntos encontrados o esta próxima a ellos. La proximidad
en el valor para estos puntos es suficiente para concluir que el GA funciona
correctamente.
3.3. ALGORITMO GENÉTICO REALIZADO 47

Cuadro 3.2: Resultados de las pruebas al GA realizado.

Función Punto(s) de Punto(s) Promedio de Promedio de


de solución encontrados Tiempo de Generaciones
Prueba por el AG cómputo (seg) realizadas
FP1 (-1,1) (-1,1) 0.9634 60.5
FP2 (1,-1) (1,-1) 0.9022 55.7
FP3 (0,0) (±7.63, ±7.63) 1.7323 150
x10−6
FP4 (±1, ±1) (±1, ±1) 0.9682 58.7
FP5 (0,0) (±7.63, ±7.63) 1.6534 150
x10−6
FP6 (±0.5, ±0.5) mejor(-0.4990,-0.5030) 1.7284 150
peor (0.5024,0.4989)
FP7 (1,-1) (1,-1) 1.0734 63.4
FP8 --- mejor (0.5232,-0.5232) 1.7476 150
peor (0.5000,-0.5313)
FP9 (±1, ±1) (±1, ±1) 1.7164 150
FP10 (0,0) (±7.63, ±7.63) 1.6873 150
x10−6
FP11 (1,-1) (1,-1) 1.6513 150
FP12 --- mejor (0.5625,-1) 1.7014 150
peor (0.5000,-1)
FP13 --- mejor (-0.0147,0.0137) 1.6793 150
peor (7x10−6 ,0.0137)

3.3.3. Medida de aptitud para los UGC

La medida de aptitud en un EA es el resultado de la evaluación de un


individuo. Esta puede ser dada por algún método lineal, cuadrático, exponen-
cial, lógica difusa, etc. En este trabajo la evaluación es realizada por la suma
de la norma (valor absoluto), este tipo de estimación es suficiente para pro-
blemas de esta ı́ndole [33]. Cada circuito sintetizado se ejecutara en SPICE
para obtener su comportamiento en ganancia, ancho de banda, impedancia
de entrada y/o salida en AC. Dependiendo de las respuestas obtenidas se le
asignará al circuito una medida de aptitud.
48 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

La Ec. (3.3) es la medida de aptitud que se utilizará en este trabajo; donde


las variables P 1 a P 4 son los pesos que el usuario define, para darle prioridad
a algún parametro sobre los otros. Las funciones f (ev1) a f (ev4) se calculan
según las ecuaciones (3.4) a (3.7). En estas ecuaciones los valores espera-
dos por el usuario son: ganancia (gain), ancho de banda (BW ), impedancia
de entrada (Zin) e impedancia de salida (Zout). Los valores evaluados por
SPICE son ev1 a ev4. P T otal es la calificación dada al circuito, es decir,
P T otal es la medida de aptitud del individuo; el circuito mejor calificado es
el más cercano a cero.

P T otal = P 1 · f (ev1) + P 2 · f (ev2) + P 3 · f (ev3) + P 4 · f (ev4) (3.3)

f (ev1) = |gain − ev1| (3.4)

|BW −ev2|


 BW
ev2 < BW
0,01|BW −ev2|

ev2 < 10 · BW


f (ev2) = BW (3.5)
−ev2|


 0,1 + 0,001|BW
BW
ev2 < 100 · BW
−ev2|
0,2 + 0,0001|BW

ev2 < 1000 · BW

BW
|Z−ev3|
(
Z
ev3 < Z
f (ev3) = 0,1|Z−ev3| (3.6)
Z
ev3 ≥ Z

0,1|Z−ev4|
(
Z
ev4 < Z
f (ev4) = |Z−ev4| (3.7)
Z
ev4 ≥ Z
La Ec. (3.4) es la función que evalúa a la ganancia. La figura 3.11 muestra
la gráfica de esta ecuación cuando gain = 1. El circuito mejor calificado es
aquel que cumpla con ev1 = 1, ya que f (ev1) = 0. La figura 3.12 muestra
el comportamiento de la Ec. (3.5), donde el valor definido por el usuario es
BW = 10, 000.
La Ec. (3.6) califica a la impedancia que idealmente debe ser grande;
como es la Zin para un VF o la Zout para un CM. La figura 3.13 muestra
3.3. ALGORITMO GENÉTICO REALIZADO 49

Figura 3.11: Gráfica de la Ec. (3.4), con gain = 1.

Figura 3.12: Gráfica de la Ec. (3.5), donde BW = 104 .


50 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

a la Ec. (3.6), donde Z = 20KΩ. En forma inversa la Ec. (3.7) califica a la


impedancia que idealmente debe ser cero; como es la Zin para un VF o la
Zout para un CF. La figura 3.14 muestra a la gráfica de la Ec. (3.7), donde
Z = 250Ω. Como se observa la función castiga a las impedancias lejanas a la
ideal (Z = 250Ω); pero es más severa con las impedancias grandes.
Para mostrar el funcionamiento de la Ec. (3.3); se ejecuta esta evaluación
a los individuos mostrados en el cuadro 3.3. Este cuadro contiene 81 sujetos
(CFs) con diferentes valores de ganancia, ancho de banda e impedancias.
Cada una de las cuatro variables tiene tres posibles valores:

ganancia: 0.87, 0.91, 0.96.

ancho de banda: 10KHz, 100KHz, 1MHz.

impedancia de entrada: 70Ω, 100Ω, 150Ω.

impedancia de salida: 18.5KΩ, 20KΩ, 22KΩ.

Los resultados al ejecutar la Ec. (3.3) se muestran en la figura 3.15, donde


P 1 = P 2 = P 3 = P 4 = 0,25, y los valores buscados son: gain = 1, BW =
2M Hz, Zout = 25KΩ y Zin = 50Ω. Se observa que los mejores individuos
son: 41, 40, 14, 42, 13, 68, 15, 67 y 69, en ese orden. En el cuadro 3.3 el
individuo que contiene los mejores valores es el 41.
Al modificar en la función de evaluación el peso de las variables y los
valores a buscar, se obtiene otro tipo calificación para cada individuo. Por
ejemplo, en una segunda prueba los valores a buscar son: gain = 0,98, BW =
500KHz, Zout = 21KΩ y Zin = 80Ω; y los pesos P 1 = P 3 = P 4 = 0,25,
P 2 = 1, es decir el ancho de banda tiene mayor prioridad sobre los otros
valores. El resultado de la evaluación con la Ec. (3.3) se observa en la figura
3.16.
3.3. ALGORITMO GENÉTICO REALIZADO 51

Figura 3.13: Gráfica de la Ec. (3.6), donde Z = 20KΩ.

Figura 3.14: Gráfica de la Ec. (3.7), donde Z = 250Ω.


52 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Cuadro 3.3: Individuos de pueba para la Ec. (3.3). Valores de ganancia, ancho
de banda e impedancias de posibles circuitos CF.

No. ganancia BW ZIN ZOU T No. ganancia BW ZIN ZOU T


KHz Ω KΩ KHz Ω KΩ
1 0.91 100 100 20 42 0.87 1000 70 22
2 0.96 100 100 20 43 0.91 10 70 22
3 0.87 100 100 20 44 0.96 10 70 22
4 0.91 1000 100 20 45 0.87 10 70 22
5 0.96 1000 100 20 46 0.91 100 150 22
6 0.87 1000 100 20 47 0.96 100 150 22
7 0.91 10 100 20 48 0.87 100 150 22
8 0.96 10 100 20 49 0.91 1000 150 22
9 0.87 10 100 20 50 0.96 1000 150 22
10 0.91 100 70 20 51 0.87 1000 150 22
11 0.96 100 70 20 52 0.91 10 150 22
12 0.87 100 70 20 53 0.96 10 150 22
13 0.91 1000 70 20 54 0.87 10 150 22
14 0.96 1000 70 20 55 0.91 100 100 18.5
15 0.87 1000 70 20 56 0.96 100 100 18.5
16 0.91 10 70 20 57 0.87 100 100 18.5
17 0.96 10 70 20 58 0.91 1000 100 18.5
18 0.87 10 70 20 59 0.96 1000 100 18.5
19 0.91 100 150 20 60 0.87 1000 100 18.5
20 0.96 100 150 20 61 0.91 10 100 18.5
21 0.87 100 150 20 62 0.96 10 100 18.5
22 0.91 1000 150 20 63 0.87 10 100 18.5
23 0.96 1000 150 20 64 0.91 100 70 18.5
24 0.87 1000 150 20 65 0.96 100 70 18.5
25 0.91 10 150 20 66 0.87 100 70 18.5
26 0.96 10 150 20 67 0.91 1000 70 18.5
27 0.87 10 150 20 68 0.96 1000 70 18.5
28 0.91 100 100 22 69 0.87 1000 70 18.5
29 0.96 100 100 22 70 0.91 10 70 18.5
30 0.87 100 100 22 71 0.96 10 70 18.5
31 0.91 1000 100 22 72 0.87 10 70 18.5
32 0.96 1000 100 22 73 0.91 100 150 18.5
33 0.87 1000 100 22 74 0.96 100 150 18.5
34 0.91 10 100 22 75 0.87 1000 150 18.5
35 0.96 10 100 22 76 0.91 1000 150 18.5
36 0.87 10 100 22 77 0.96 1000 150 18.5
37 0.91 100 70 22 78 0.87 1000 150 18.5
38 0.96 100 70 22 79 0.91 10 150 18.5
39 0.87 100 70 22 80 0.96 10 150 18.5
40 0.91 1000 70 22 81 0.87 10 150 18.5
41 0.96 1000 70 22
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 53

Figura 3.15: Medida de aptitud de los CFs del cuadro 3.3, prueba 1.

Figura 3.16: Medida de aptitud de los CFs del cuadro 3.3, prueba 2.

3.4. Codificación genética de los circuitos


Uno de los objetivos principales de esta Tesis es proponer un código
genético para UGCs, CCs y CFOAs; que sea capaz de sintetizar topologı́as
54 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

conocidas y nuevas. Existen trabajos de circuitos electrónicos desarrollados


con EAs; estos utilizan algún tipo de codificación de los circuitos en un cro-
mosoma como se muestra en algunos trabajos [1, 2, 3, 4, 6, 7, 8]. Sin embargo,
estas descripciones se enfocan a optimizar ciertos parámetros de un circuito
en CD, CA y/o tiempo, por lo que sus codificaciones representan en la mayo-
rı́a de trabajos dimensiones de sus transistores y no cómo están realizadas
estas topologı́as [1, 2, 3, 4, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18]. Ası́, que esas
codificaciones no son útiles para trabajar en esta tesis y se tiene la necesidad
de realizar una codificación diferente a las ya mencionadas. En las siguientes
secciones se describe cada uno de los cromosomas propuestos para cada tipo
de circuito.

3.4.1. Genotipo y fenotipo de un VF

Partiendo del modelo ideal de un VF utilizando solo un elemento O (figura


3.2.(a)), se procede a la generación de un circuito hecho con transistores.
Primero, para propósito de sı́ntesis cada elemento O debe estar unido a un
elemento P. De esta manera, un elemento P puede agregarse a un elemento O
a la izquierda (nodo i), a la derecha (nodo j), o en paralelo (entre los nodos i
y j); como se ilustra en la figura 3.17 [21, 59]. Como puede inferirse, cada par
O-P se puede representar por un gen de 2 bits de longitud; esta codificación
crea el gen de pequeña señal (genSS), el cual se describe en el cuadro 3.4.
Cada par O-P se sintetiza por un MOSFET como se mostró en la figura
3.3. En este proceso se utiliza un gen de sı́ntesis del MOSFET (genSMos); el
cual consiste de un bit (a2) para describir el tipo de transistor. Ası́ cuando
genSMos es cero se sintetiza un N-MOS y cuando es uno se genera un P-MOS
(cuadro 3.5).
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 55

Figura 3.17: Adición de un elemento P a un elemento O: (a) en el nodo i, (b)


en el nodo j y (c) entre los nodos i y j.

Cuadro 3.4: Codificación del genSS a partir de la figura 3.17.

a0 a1 Unión Figura
0 0 Pi 3.17.(a)
0 1 Pj 3.17.(b)
1 0 Pij, punto de unión i. 3.17.(c)
1 1 Pji, punto de unión j. 3.17.(c)

Cuadro 3.5: Codificación del genSMos.

a2 Tipo de transistor
0 N-MOS
1 P-MOS

Al circuito se le agregan dos fuentes de voltaje nombradas Vdd y Vss


(positiva y negativa, respectivamente). Posteriormente se agregan fuentes de
corriente utilizando un gen de polarización (genBias); este contiene dos bits
(a3a4) por cada nullator que describe al VF. La combinación 00 significa
que el drain del MOSFET se conectara a Vdd mientras que el source se
conectará a una fuente de corriente conectada a Vss. El 01 significa que el
drain se conecta a Vss y el source a una fuente de corriente conectada a Vdd.
Las otras dos combinaciones (10 y 11) significan que tanto al drain como al
source se les conectaran fuentes de corriente a Vdd y a Vss; esto se resume
56 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

en el cuadro 3.6.

Cuadro 3.6: GenBias: Bits de asignación para agregar fuentes de corriente.

a3a4 Conexión
Drain Source
0 0 Vdd Iss
0 1 Vss Idd
1 0 Idd Iss
1 1 Iss Idd

Una vez que se han agregado fuentes de polarización de voltaje y corriente


al circuito cada fuente de corriente (Idd o Iss) se sintetiza por un espejo de
corriente (CM), utilizando el genCM. El tamaño del genCM depende de
cuantos tipos de espejo se tengan en una librerı́a, en este trabajo se utilizan
cuatro diferentes CM; por lo tanto el genCM consta de dos bits (b0b1). En
el cuadro 3.7 se muestra el código del genCM.

Cuadro 3.7: GenCM: Sı́ntesis de fuentes de corriente por CM.

b0b1 Espejo de Corriente


00 Simple
01 Cascode
10 Wilson
11 Wilson Modificado

En resumen, para codificar un VF modelado con un nullator a partir de


la figura 3.2.(a), se tiene un cromosoma (código) de 7 bits: a0a1a2a3a4b0b1;
divididos en cuatro diferentes genes: genSS, genSMos, genBias y genCM. Esto
significa que existen 27 = 128 diferentes topologı́as de circuitos que pueden
sintetizar un VF con la descripción dada. Sin embargo, algunas topologı́as no
son funcionales, ya que la entrada o la salida puede estar conectada a Vdd
o a Vss; asimismo, otras topologı́as no cumplirán con la especificación de un
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 57

VF (VOU T = VIN ).
Para sintetizar un VF de dos, tres o de cuatro MOSFETs, la representación
ideal es por medio del mismo número de nullators. Por lo tanto, el cromosoma
crece según el número de nullators que lo representan idealmente; esto se
muestra en el cuadro 3.8, donde: genMOS=genSS-genSMos-genBias.

Cuadro 3.8: Número de bits para cada cromosoma VF.

VF nullators cromosoma TOTAL


1 MOS 1 genM OS(1) − genCM 7 bits
2 MOS 2 genM OS(1) − genM OS(2) − genCM 12 bits
N MOS N genM OS(1) − · · · − genM OS(N ) − genCM 5N+2

El cuadro 3.8 muestra que se tienen 212 = 4, 096 diferentes topologı́as


posibles para realizar un VF partiendo de 2 nullators. Para sintetizar un VF
partiendo de 4 nullators se tienen 222 = 4, 194, 304 posibles topologı́as dis-
tintas. Para todas las descripciones de cromosomas de VF existirán ciertas
topologı́as que no tienen sentido ya que la entrada o la salida pueden estar
conectadas a Vdd o a Vss; y otras topologı́as no cumplan con el compor-
tamiento de un seguidor de voltaje. El EA que se realizó en este trabajo es
capáz de seleccionar las topologı́as que funcionan correctamente en AC.
A continuación, a manera de ejemplo, se realizara la sı́ntesis de un VF a
partir de su cromosoma. Se propone partir de un modelo ideal de puente de
4 nullators (figura 3.2.(b)) y sintetizar el cromosoma 336860, el valor de los
genes es el mostrado en el cuadro 3.9.
El modelo de pares O-P que se obtiene, según el cuadro 3.4, se muestra
en la figura 3.18; donde cada par O-P sintetizará un MOSFET. Para agregar
fuentes de corriente al circuito se obedece el cuadro 3.6. Por lo tanto para el
MOSFET M1 se conecta Idd al drain e Iss al source, de la misma manera M2;
para M3 y M4 se conecta Iss al drain e Idd al source. El circuito resultante se
58 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Cuadro 3.9: Codificación del cromosoma 336860.


Decimal 336860
Binario 0001010010001111011100
Cromosoma genMOS(1) genMOS(2) genMOS(3) genMOS(4) genCM
00010 10010 00111 10111 00
genSS 00 10 00 10
genSMos 0 0 1 1
genBias 10 10 11 11

muestra en la figura 3.19. Donde se observa que se pueden eliminar las fuentes
de corriente Idd3, Iss1, Idd4 e Iss2 ya que estas no polarizan al circuito. El
programa realizado para la sintesis de VFs detecta este tipo de situaciones y
toma la decisión de eliminar las fuentes sobrantes.

Figura 3.18: Modelo de pares O-P para el cromosoma 336860.

Los genSMos del cuadro 3.9 indican que los MOSFET sintetizados serán
N-M1, N-M2, P-M3 y P-M4 según el cuadro 3.5. Quitando las fuentes de co-
rriente sobrantes y sintetizando estos transistores MOS, el circuito realizado
se muestra en la figura 3.20.(a); como se puede observar este es el modelo ideal
de un VF conocido [21, 22, 25]. Para finalizar con el ejemplo falta cambiar
las fuentes de corriente ideales por espejos de corriente. El genCM es 00,
ası́ que se agregaran espejos de corriente simples y el circuito sintetizado por
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 59

Figura 3.19: Polarización de la figura 3.18 según los genBias del cuadro 3.9.

el cromosoma 336860 es el mostrado en la figura 3.20.(b).

Figura 3.20: (a) Modelo ideal de un VF conocido y (b)circuito VF represen-


tado por el cromosoma 336860.
60 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

3.4.2. Genotipo y fenotipo de un CF

Partiendo del modelo ideal de un CF utilizando solo un norator, se pro-


cede a generar un CF con MOSFETs. De manera similar a la codificación
del VF, cada elemento P debe estar unido a un elemento O para propósito
de sı́ntesis del transistor MOS. De esta manera, un elemento O puede agre-
garse a un elemento P a la izquierda (nodo i), a la derecha (nodo j), o en
paralelo (entre los nodos i y j); análogo a la figura 3.17. Cada par O-P se
puede representar por un gen de pequeña señal (genSS), el cual se describe
en el cuadro 3.4.
Cada par O-P se sintetiza por un MOSFET, en este paso se utiliza el gen de
sı́ntesis del MOSFET (genSMos), el cual es idéntico al descrito para el VF
en el cuadro 3.5.
El siguiente paso consiste en agregar fuentes de polarización. Se utiliza el
gen de polarización (genBias); el cual contiene dos bits (a3a4). En todas las
combinaciones tanto al drain como al source se les conectaran fuentes de
corriente a Vdd y a Vss llamadas Idd e Iss, respectivamente. Después a la
terminal gate del MOSFET se conectara una fuente de voltaje positiva (V+)
o negativa (V-); esto se resume en el cuadro 3.10. Cabe notar que la com-
puerta de los MOSFET siempre se conectará a una fuente de voltaje con el
fin de que el transistor trabaje en la región de saturación.

Cuadro 3.10: GenBias: gen de fuentes de polarización.

a3a4 Conexión
Drain Source Gate
0 0 Idd Iss V+
0 1 Iss Idd V+
1 0 Idd Iss V-
1 1 Iss Idd V-
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 61

Al igual que para la sı́ntesis de VFs, cada fuente de corriente se debe


sintetizar por un CM, utilizando el genCM. El genCM, como ya se ha men-
cionado, depende del número de tipos de espejos que contenga una librerı́a.
Tomando en cuenta que la librerı́a tiene los mismos espejos que en el caso de
los VFs, el código del genCM nuevamente es el mostrado el cuadro 3.7.
En resumen, para codificar un CF modelado con un solo norator a partir de
un solo nullator se tiene un cromosoma de 7 bits, divididos en cuatro dife-
rentes genes. Para sintetizar un CF de dos transistores MOS a partir de dos
o más norators el cromosoma crece proporcionalmete al número de norators.
Esto se observa en el cuadro 3.11, donde: genMOS=genSS-genSMos-genBias.

Cuadro 3.11: Número de bits para cada cromosoma CF.

CF norators cromosoma TOTAL


1 MOS 1 genM OS(1) − genCM 7 bits
2 MOS 2 genM OS(1) − genM OS(2) − genCM 12 bits
N MOS N genM OS(1) − · · · − genM OS(N ) − genCM 5N+2

Algunas topologı́as representadas por los cromosomas no cumplirán con la


especificación de un CF (IOU T = IIN ); estas no son prácticas para utilizarse
en circuitos. El EA realizado en esta tesis buscará seleccionar las topologı́as
que tengan una respuesta correspondiente a la de un CF. Esto se realizará por
medio de simulaciones en SPICE.
Se realizará la sı́ntesis de un CF a partir de su cromosoma, para ejemplificar
la codificación descrita. Se propone sintetizar el cromosoma 99324, a partir
de un modelo de puente de 4 norators (figura 3.7(l)); el valor de los genes es
el mostrado en el cuadro 3.12.
Realizando las sı́ntesis del cromosoma 99324 se obtienen el circuito de la
figura 3.21. Como se puede observar este es el modelo de un CF conocido
[21, 25]. Este circuito se obtiene después de decodificar el significado de los
62 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Cuadro 3.12: Codificación del cromosoma CF: 99324.


Decimal 99324
Binario 0000011000001111111100
Cromosoma genMOS(1) genMOS(2) genMOS(3) genMOS(4) genCM
00000 11000 00111 11111 00
genSS 00 11 00 11
genSMos 0 0 1 1
genBias 00 00 11 11

genes del cuadro 3.12; según los cuadros 3.4 (genSS), 3.5 (genSMos), 3.10
(genBias) y 3.7 (genCM).

Figura 3.21: Circuito CF que corresponde al cromosoma 99324.

3.4.3. Genotipo y fenotipo de un CM

Los espejos de corriente son bloques básicos, generalmente utilizados en


la polarización de circuitos analógicos. Los espejos de corriente actuales se
pueden modelar con celdas de dos, tres y cuatro norator, figura 3.22. Por
ejemplo con la celda (a) se puede sintetizar un espejo simple, con la celda (c)
se puede sintetizar un espejo Wilson y con la celda (d) se pueden sintetizar
los espejos Cascode y Wilson modificado. Los nodos A, B, C y D se utilizan
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 63

para agregar nullators y/o fuentes polarización. En estas celdas se tiene un


punto de referencia, este puede considerarse como tierra del circuito o un
voltaje de polarización positivo o negativo.

Figura 3.22: Celdas genéricas para formar espejos de corriente.

En este trabajo se realizó un solo cromosoma que puede sintetizar los


cuatro espejos mencionados. Partiendo del modelo ideal de un CM mostrado
en la figura 3.22.(d), se procede a insertar un elemento O a cada elemento
P. Este se agrega automáticamente al lado más cercano a tierra (GND) para
que cada par O-P se sintetize por un MOSFET tipo N. Esta sı́ntesis es para
asegurar que los MOSFET estarán en saturación ya que un MOS tipo P no
estarı́a en saturación. Ası́, que para el cromosoma de un CM no es necesario
un gen de pequeña señal (genSS) ni un gen de sı́ntesis del MOSFET (gen-
SMos) como en los anteriores cromosomas.
En todas las posibles combinaciones los nodos C y D se conectaran a fuentes
de corriente a Vdd (Idd) para polarizar al circuito. Cada terminal gate de los
transistores se puede conectar a los nodos A, B, C, D, un VBIAS , Vdd, o a un
nodo extra (NE). Se describe esta decodificación para el gate del transistor
64 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

M1, en el cuadro 3.13. Donde el NE es un nodo que se utilizara en bloques


extra, para realizar el CM con fuentes de desplazamiento de nivel. El código
del genBias para los otros tres MOS es idéntico al del cuadro 3.13.

Cuadro 3.13: GenBias: Bits de polarización del circuito CM.

a0a1a2 Gate M1
000 Nodo A
001 Nodo B
010 Nodo C
011 Nodo D
100 Vdd
101 VBIAS
110 NE1
111 NE2

Para que este cromosoma simule las celdas mostradas en la figura 3.22,
debe existir un gen que defina el nodo de entrada de señal (IIN ) y el nodo de
salida de señal (IOU T ). Este gen es nombrado como genIO, el cual se describe
en el cuadro 3.14. Donde los nodos E y F son nodos utilizados en una librerı́a
de bloques de transistores que pueden agregarse al CM con el fin de sintetizar
CMs con desplazamientos de nivel (figura 3.23).

Cuadro 3.14: GenIO, nodos de entrada y salida del CM.

a12a13a14 Entrada Salida


000 Nodo A Nodo B
001 Nodo A Nodo D
010 Nodo A Nodo E
011 Nodo A Nodo F
100 Nodo C Nodo B
101 Nodo C Nodo D
110 Nodo C Nodo E
111 Nodo C Nodo F
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 65

Figura 3.23: Circuitos extra para IOU T

Para finalizar la descripción del cromosoma de los CM se sintetiza el gen


de desplazamiento de nivel genN. El cual contiene una librerı́a de posibles
circuitos para unirse entre las conexiones de los transistores MOS del CM.
El tamaño del genN depende del tamaño de la librerı́a utilizada, para este
trabajo el genN es de 3 bits y su codificación se muestra en el cuadro 3.15.

En resumen el cromosoma realizado para la sı́ntesis de CM se muestra en


el cuadro 3.16. Como se observa el cromosoma a utilizar tiene 16 bits, este
es más grande que los utilizados en [59] por 4 bits, ampliando el espacio de
búsqueda. Pero como se mencionó anteriormente este cromosoma sustituye
a 4 realizados en [59], uno por cada celda mostrada en la figura 3.22. Esta
ventaja lleva a sólo realizar un algoritmo de sı́ntesis de CM y no uno por
cromosoma. Otra ventaja de esta descripción genética es que son sintetizables
espejos con desplazamientos de nivel que en [59] no eran sintetizables.

Como ejemplo de sı́ntesis se realizará el circuito CM descrito por el cro-


mosoma 1192, en el cuadro 3.17 se divide el cromosoma en genes. En la figura
3.24 se muestra la codificación donde todos los pares O-P serán sintetizados
por N-MOS; y la entrada y salida esta dada por el genIO. Según el genIO en
el cuadro 3.14 la entrada de señal (IIN ) será por el nodo C y la salida por el
66 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Cuadro 3.15: Descripción del genN.

genN MOS 1 MOS 2 MOS 3 MOS 4


a15a16a17

000

001

010

011

100

101 NG3=VBIAS

110 NG1=Nodo A NG2=Nodo A NG3=Nodo C

111 NG3=Nodo D

Cuadro 3.16: Cromosoma CM, dividido en 3 genes.

genBias genIO genN TOTAL


12 bits 3 bits 3 bits 16 bits
a0 a1...a11 a12 a13 a14 a15 a16 a17
cuadro 3.13 cuadro 3.14 cuadro 3.15

nodo D (IOU T ). El genN no sera utilizado ya que en la sı́ntesis del genBias


no se generó ningún nodo NE.
Utilizando el cuadro 3.14, se observa que el gate del transistor M1 se debe
3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 67

Cuadro 3.17: Codificación del cromosoma CM 1192.


Decimal 1192
Binario 000000010010101000
Cromosoma genBias genIO genN
000-000-010-010 1 0 1 0 0 0

Figura 3.24: Modelo de pares O-P para el CM según el genIO=101.

conectar al nodo A (000), de igual forma el gate M2 se conecta al nodo A


(000). El gate M3 se conecta al nodo C (010), igual que la terminal gate de M4
(010). Realizando las conexiones correspondientes se obtiene la figura 3.25.
Finalmente, al sintetizar los pares O-P por N-MOS se obtiene la figura 3.26;
como puede observarse es un CM conocido como espejo Cascode [25, 26].

Figura 3.25: Modelo de pares O-P para el cromosoma CM 1192.


68 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Figura 3.26: CM sintetizado con el cromosoma 1192, espejo Cascode.

3.4.4. Genotipo y fenotipo de un VM

La representación por nullators y norators de un VM ideal es la mostrada


en la figura 3.27 [26, 27]. De esta representación ideal se desprenden los tres
circuitos mostrados en la figura 3.28; donde en la figura 3.28.(a) se sinteti-
zará un MOSFET con el par O1-P1 y el otro nullator por si solo representa
un VF, este VF puede ser sintetizado con cualquier número de MOSFETs.
En las figuras 3.28.(b) y 3.28.(c) se ha agregado un norator en paralelo y en
serie, repectivamente. Este elemento P no afecta la descripción ideal del VM
y se utilizara para formar pares O-P, y estos a su vez sintetizaran MOSFETs.
Cada par O-P de la figura 3.28 sintetiza un MOSFET, en la figura 3.29 se
muestran los circuitos sintetizados; estos MOSFETs pueden ser tipo P o tipo
N.

Figura 3.27: Representación con nullator y norators de un VM ideal [26, 27].

Por lo descrito anteriormente, el VM debe ser representado por más de


3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 69

Figura 3.28: Representación de un VM ideal, utilizada en este trabajo.

Figura 3.29: VMs de la figura 3.28, sintetizando los nullors por MOSFETs.

un cromosoma, uno por cada descripción ideal mostrada en la figura 3.28. Es


necesario para los tres cromosomas tener un gen de sı́ntesis del CMOS (gen-
SMos), ya que este decidirá si se sintetiza un NMOS o un PMOS, para ello se
utilizará nuevamente la tabla 3.5. Es necesario un genBias que polarizará al
circuito, este gen esta codificado en la tabla 3.18. Un genBias se agrega al
70 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

cromosoma por cada resistencia R que tenga en su representación ideal; por


lo tanto para todos los VM de la figura 3.29 seran necesarios dos genBias.
Muchas topologı́as en la salida de un VM colocan el circuito mostrado en la
figura 3.30; por lo tanto, se ha decidido incluir un gen que decida si al VM se
le agrega el circuito de la figura 3.30 o no, este gen esta descrito en la tabla
3.19.

Figura 3.30: genIO de los VMs.


3.4. CODIFICACIÓN GENÉTICA DE LOS CIRCUITOS 71

Cuadro 3.18: genBias del VM.

0000 0001 0010 0011

0100 0101 0110 0111

1000 1001 1010 1011

1100 1101 1110 1111

N = nodo 1 o nodo 2
NA = opuesto del nodo 1 o 2
72 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Cuadro 3.19: Codificación del genIO.

genIO Descripción
0 Al circuito VM SI se le agregara la figura 3.30.
1 Al circuito VM NO se le agregara la figura 3.30.

En resumen para el cromosoma de un VM descrito por la figura 3.29.(a)


se tienen diez bits, divididos en cuatro diferentes genes. Mientras que para
los circuitos mostrados en las figuras 3.29.(b) y 3.29.(c) son necesarios 11
bits, divididos en cuatro diferentes genes. Estos cromosomas se muestran en
el cuadro 3.20.

Cuadro 3.20: Cromosoma de un VM.


Cromosoma VM Total Figura
genSMos genBias1 genBias2 genIO
1 bit 4 bits 4 bits 1 bit 10 bits 3.29.(a)
genSMos genBias1 genBias2 genIO
2 bits 4 bits 4 bits 1 bit 11 bits 3.29.(b)
genSMos genBias1 genBias2 genIO
2 bits 4 bits 4 bits 1 bit 11 bits 3.29.(c)
cuadro cuadro cuadro
3.5 3.18 3.19

Como ejemplo se sintetiza el cromosoma 53 de la figura 3.29.(a). Escrito


en binario es 0000110101, lo cual significa que el genSMos=0, genBias1=0001,
genBias2=1010 y genIO=1; utilizando los cuadros 3.5, 3.18 y 3.19, se obtiene
el circuito mostrado en la figura 3.31.(a). Este circuito es un VM conocido
[26, 27, 59]. La figura 3.31.(b) muestra al VM después de sustituir el VF ideal
por el mostrado en la figura 3.20.
3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS73

Figura 3.31: VM conocido, su cromosoma es 0000110101.

3.5. Genotipo y fenotipo de las uniones entre


dos UGCs

Los UGCs se pueden unir con el fin de realizar bloques con más puertos.
Las posibles uniones de estos bloques se pueden visualizar en la figura 3.32;
entre estas se puede observar la representación ideal de los CC. La repre-
sentación de los CCII-/+ son las mostradas en las figuras 3.32.(e) y 3.32.(f),
respectivamente; los CCII inversos (ICCII) son representados por las figuras
3.32.(g) y 3.32.(h). Combinando los circuitos mostrados en las figuras 3.32.(f)
y 3.32.(k) se obtiene la representación ideal de un CFOA: VF-CM-VF.

Para realizar los circuitos mostrados en la figura 3.32, lo más sencillo de


pensar es, anexar un cable entre la salida del primer UGC y la entrada del
segundo. Esta unión no es la mejor opción para todos los circuitos de la figura
3.32. Por lo tanto, las estrategı́as para realizar los circuitos representados en
la figura 3.32 deben ser diferentes de circuito a circuito. Las estrategias para
74 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Figura 3.32: Posibles uniones de los bloques de ganancia unitaria.

realizar las uniones de los UGC en este trabajo se han dividido en cinco
diferentes, estas serán descritas en las secciones siguientes y ordenadas por
su complejidad como:

Unión simple.

Duplicar salida.

Duplicar salida intermedia.

Creación del nodo Z.

Combinación de nullatos-norators.
3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS75

3.5.1. Unión simple

Como se mencionó anteriormente, lo más sencillo para realizar los cir-


cuitos mostrados en la figura 3.32 es anexar un cable entre la salida del
primer UGC y la entrada del segundo. Esta unión es la mejor opción en
los circuitos de la figuras 3.32.(b), (d), (i), (j), (k) y (l); sus funciones ca-
racterı́sticas se muestran en la Ec. (3.8). Los cromosomas que describen a
estos circuitos pueden ser implementandos uniendo los cromosomas realiza-
dos previamente; como se muestra en el cuadro 3.21. Para realizar este tipo
de circuitos se propone seleccionar los UGC que lo conforman y después solo
se une la entrada de uno con la salida del otro, como se muestra en la figura
3.32.

(b) V o1 = V in V o2 = −V in

(d) V o1 = −V in V o2 = V in

(i) Io = Iin V o = V in (3.8)

(j) Io = Iin V o = −V in

(k) Io = −Iin V o = V in

(l) Io = −Iin V o = −V in

Cuadro 3.21: Cromosoma de los circuitos de la figura 3.32, por unión simple.

Fig. Cromosoma Ver cuadros


(b) Cromosoma VF - Cromosoma VM 3.8 y 3.20
(d) Cromosoma VM - Cromosoma VM 3.20
(i) Cromosoma CF - Cromosoma VF 3.11 y 3.8
(j) Cromosoma CF - Cromosoma VM 3.11 y 3.20
(k) Cromosoma CM - Cromosoma VF 3.16 y 3.8
(l) Cromosoma CM - Cromosoma VM 3.16 y 3.20

Como ejemplo de esta ‘unión simple’ de UGC se sintetiza la figura


76 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

3.32.(k), esta une un CM con un VF. El circuito CMOS se observa en la


figura 3.33, donde el CM y el VF son los sintetizados previamente en las
figuras 3.20 y 3.26.

Figura 3.33: Ejemplo de la unión simple.

3.5.2. Duplicar salida

La unión nombrada ‘duplicar salida’ consiste en duplicar la circuiteria de


salida del UGC. Esta unión es la mejor opción en los circuitos de la figuras
3.32.(a), (c), (m) y (o), sus funciones caracterı́sticas se muestran en la Ec.
(3.9). Como puede observarse en la Ec. (3.9) se describe a los UGC con salidas
duales, positivas y negativas.

(a) V o2 = V o1 = V in

(c) V o2 = V o1 = −V in

(k) Io2 = Io1 = −Iin (3.9)

(m) Io2 = Io1 = Iin


3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS77

Los cromosomas que describen a estos circuitos son implementandos sin


modificar a los cromosomas realizados previamente, como se muestra en el
cuadro (3.22). La modificación no se realiza en los cromosomas pero si en el
programa ya que este duplicará la circuiterı́a de salida del UGC. Como ejem-
plo de esta sı́ntesis se observa en la figura 3.34 un circuito tipo figura 3.32.(c),
en la figura 3.35 un circuito que es representado por la figura 3.32.(a). Los
circuitos de las figuras 3.32.(k) y 3.32.(m) estan mostrados con MOSFETs
en las figuras 3.36 y 3.37.

Cuadro 3.22: Cromosomas de los circuitos donde se duplica la salida.

Fig. 3.32 Cromosoma Cuadros


(a) Cromosoma VF 3.8
(c) Cromosoma VM 3.20
(m) Cromosoma CF 3.11
(o) Cromosoma CM 3.16

Figura 3.34: VM con dos salidas.


78 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Figura 3.35: VF con dos salidas.

Figura 3.36: CF con dos salidas.


3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS79

Figura 3.37: CM con dos salidas.

3.5.3. Duplicar salida intermedia

La unión llamada ‘duplicar salida intermedia’ consiste en duplicar la cir-


cuiteria de salida del primer UGC para obtener la entrada al segundo UGC.
Esta unión es la mejor opción en los circuitos de la figuras 3.32.(n) y (p), sus
caracterı́sticas se muestran en la Ec. (3.10). Los cromosomas que describen a
estos circuitos son implementados uniendo los cromosomas realizados previ-
amente, como se muestra en el cuadro (3.23). Como ejemplo de esta sı́ntesis
se observa en la figura 3.38 un circuito tipo 3.32.(n) y en la figura 3.39 se
muestra un circuito que ejemplifica a la figura 3.32.(p).

(n) Io2 = −Io1 = −Iin

(p) Io2 = −Io1 = Iin (3.10)

Cuadro 3.23: Cromosoma de los circuitos de la figura 3.32.(n) y (p).

Fig. Cromosoma Cuadros


(n) Cromosoma CF - Cromosoma CM 3.11 y 3.16
(p) Cromosoma CM - Cromosoma CM 3.16
80 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Figura 3.38: Ejemplo de CF-CM figura 3.32.(n), al CF se le duplica la salida.

Figura 3.39: Ejemplo de CM-CM figura 3.32.(p), al primer CM se le duplica


la salida.
3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS81

3.5.4. Creación del nodo Z

La unión de UGCs nombrada ‘creación del nodo Z’ consiste en modificar


las fuentes de polarización del circuito VF o VM para obtener una salida en
corriente. Esta unión es la utilizada en la sı́ntesis de los circuitos de la figuras
3.32.(f) y (h), sus funciones caracterı́sticas se muestran en la Ec. (3.11). Como
puede observarse las Ec. (3.11) corresponden a los circuitos CCII+ y ICCII+.

(f ) V o = V in

Io = −Iin

(h) V o = −V in (3.11)

Io = −Iin

Los cromosomas que describen a los circuitos (I)CCII+ se realizan unien-


do los cromosomas realizados previamente, como se muestra en el cuadro
3.24. Donde en el genCM del VF (cuadro 3.8) sintetiza las fuentes de polari-
zación de la entrada y las fuentes de polarización de la salida son sintetizadas
por el cromosoma CM (cuadro 3.16).

Cuadro 3.24: Cromosoma de los circuitos CCII+ y ICCII+, por creación del
nodo Z.
Fig. Cromosomas CCII+ y ICCII+ Cuadros
3.32.(f) Cromosoma VF - Cromosoma CM 3.8 y 3.16
3.32.(h) Cromosoma VM - Cromosoma CM 3.20 y 3.16

Para realizar la codificación genética de un CCII+ primero se describe al


CC como un VF (figura 3.40.(a)); después se utiliza el cromosoma del CM
para sintetizar las fuentes de polarización de los MOSFETs de salida. Esto
se muestra en la figura 3.40.(b); en este ejemplo los MOSFETs de salida son
82 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

M2 y M4. En la figura 3.40.(b) se observa el CCII+ 336860-1192, donde el


nodo Z se creó utilizando el CM 1192 sintetizado en la figura 3.26.

Figura 3.40: (a) Circuito VF sintetizado en la fig. 3.20; (b) circuito CCII+
su cromosoma es 336860-1192.

3.5.5. Combinación de nullators-norators

La unión de UGCs llamada ‘combinación de nullators-norators’ consiste


en combinar los nullators que describen a un VF ideal con los norators que
definen a un CF ideal. Esta unión es la utilizada en la sı́ntesis de los circuitos
de la figuras 3.32.(e) y (g); sus funciones caracterı́sticas se muestran en la Ec.
(3.12). Como puede observarse estas ecuaciones corresponden a los circuitos
CCII- y ICCII-, respectivamente.
3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS83

(e) V o = V in

Io = Iin

(g) V o = −V in (3.12)

Io = Iin

Debe recordarse que en este trabajo un VF ideal es representado por un


bloque de nullators, de igual forma un CF ideal es representado por un bloque
de norators. De esta forma un CCII- debe de ser representado por la unión de
estos bloques ideales, como se observa en la figura 3.41.(a). Cada bloque es
realizado por varios elementos O o P; combinados de diferente forma como
se mostró en las figuras 3.5, 3.6 y 3.7.

Figura 3.41: (a) CCII- dividido en un bloque VF y un bloque CF; (b) CCII-
ideal, realizado con 4 nullators y 4 norators.

En la figura 3.41.(b) se observa un CCII- ideal realizado con 4 nullators


y 4 norators. Si cada uno de estos elementos O y P sintetizá un MOSFET
se obtiene un circuito con 8 MOSFETs, esto es un VF de 4 MOSFETs unido
con un cable a un CF de 4 MOSFETs. La unión ‘combinación de nullators-
norators’ consiste en combinar los nullators de salida que describen a un VF
84 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

ideal con los norators de entrada que definen a un CF ideal. Por lo tanto, en
la figura 3.41.(b) los 2 nullators de salida del VF se unen con los 2 norators
de la entrada del CF; cada unión sintetizara un MOSFET, y el CCII- que
se obtiene es un circuito realizado con 6 MOSFET. En la figura 3.42.(a) se
muestra un circuito VF realizado con 4 nullators; en la figura 3.42.(b) se
observa un circuito CF sintetizado con 4 norators. La unión de estos UGC
forma el CCII- mostrado en la figura 3.42.(c), algunos autores llaman a esta
unión superimposición de circuitos [18]; que consiste en unir circuitos por sus
elementos más parecidos.
Para describir a los cromosomas de los circuitos (I)CCII- primero se debe
recordar la descripción de los cromosomas VF y CF según los cuadros 3.8 y
3.11, donde genMOS=genSS-genSMos-genBias. Para realizar el cromosoma
del CCII- se divide en tres partes, primero la descripción de los norators
solos (si es que existen), después la descripción de los pares nullator-norator
formados (nodo X), y por último se codifican los norators solos (si es que
existen). Esto se muestra en el cuadro 3.25, donde genMOS=genSS-genSMos-
genBias; el genSS esta codificado por el cuadro 3.4, en los pares nullator-
norators formados no es necesario este gen. El genSMos esta codificado en
el cuadro 3.5. Para el genBias se utilizan los cuadros 3.6 (nullators y pares
O-P) y 3.10 (norators). El genCM sintetiza por un espejo de corriente (CM)
las fuentes de corriente Idd y Iss, según el cuadro 3.7.

Cuadro 3.25: Cromosoma CCII+, por combinación de nullatos-norators.

Cromosoma CCII+
nullators solos pares nullator-norator norator solos CM
genM OS(1) − genM OS(2) − · · · genM OS(1) − · · · genM OS(1) − · · · genCM
genMOS: genSS-genSMos-genBias genSMos-genBias genSS-genSMos-genBias genCM
cuadros: 3.4, 3.5, 3.6 3.5, 3.6 3.4, 3.5, 3.10 3.7
3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS85

Figura 3.42: (a) Circuito VF sintetizado en la fig. 3.20; (b) Circuito CF


sintetizado en la fig. 3.21; (c) CCII- obtenido por la unión de (a) y (b).

3.5.6. Genotipo y fenotipo de un CFOA

Un amplificador operacional retroalimentado en corriente (CFOA) puede


ser representado por un CCII+ en serie con un VF, como se muestra en la
figura 3.43 [19, 25, 32].
86 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Figura 3.43: Diagrama a bloques de un CFOA.

De la figura 3.43 se deduce que para realizar el cromosoma de un CFOA


se tienen que realizar dos uniones de UGC: VF-CM-VF. La unión VF-CM es
la llamada ‘creación del nodo Z’; y la unión CM-VF es la nombrada ‘unión
simple’, ambas descritas anteriormente. Por lo tanto el cromosoma de un
CFOA esta descrito por cromosomas VF y CM como se muestra en el cuadro
3.26, donde N y M son el número de nullators que describen idealmente al
primer y segundo VF. Como ejemplo de esta descripción en la figura 3.44
se observa el CFOA 336860-1192-336860. Realizado con la unión de dos VF
336860 (figura 3.20) y el CM 1192 (figura 3.26).

Cuadro 3.26: Cromosoma de un CFOA.


CFOA Cromosoma VF -Cromosoma CM- Cromosoma VF
Cuadro 3.8 3.11 3.8
No. bits 5N+2 16 5M+2
3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS87

Figura 3.44: CFOA 336860-1192-336860.


88 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO

Esta hoja se dejo en blanco intencionalmente.


Capı́tulo 4

Resultados

4.1. Introducción

El algoritmo propuesto para la sı́ntesis de bloques de ganancia unitaria


(capı́tulo 3) se implementó en MatLab. El programa desarrollado puede re-
alizar la sı́ntesis de las topologı́as de UGCs mostradas en el cuadro 4.1. Cabe
aclarar que el programa CFOA.m no busca una topologı́a, solo sintetiza un
CFOA preguntando el número de cromosomas del CM y los dos VF, encon-
trados previamente con CM.m y VF.m. El manual de usuario del programa
desarrollado se encuentra en el anexo C.
En este capı́tulo se muestran algunas topologı́as obtenidas con la he-
rramienta desarrollada. Para mostrar el funcionamiento del algoritmo genético,
se observa en la figura 4.1 la evaluación del mejor individuo en cada gene-
ración; como se ve la medida de evaluación tiende a acercarse más al cero
en cada generación, ya que cero es el valor ideal. En la figura 4.2 se mues-
tra el tiempo de ejecución del programa, cuantos segundos tomó al orde-
nador realizar cada generación y el tiempo total de la ejecución del programa,
aproximadamente 71 minutos para este ejemplo. Las figuras 4.1 y 4.2 se ob-
tuvieron en una ejecución del programa VF.m en una computadora minihp,
con procesador Atom(TM) a 1.6GHz y 1GB de RAM. El programa VF.m se

89
90 CAPÍTULO 4. RESULTADOS

Cuadro 4.1: Programas realizados en MatLab.

Nombre del UGC a Figura Ecuación


programa sintetizar caracterı́stica
VF.m VF 1.1.(a) Vout = Vin
CF.m CF 1.1.(b) Iout = Iin
VM.m VM 1.1.(c) Vout = −Vin
CM.m CM 1.1.(d) Iout = −Iin
VF2out.m VF-VF 3.32.(a) Vout2 = Vout1 = Vin
VM2out.m VM-VF 3.32.(c) Vout2 = Vout1 = −Vin
CF2out.m CF-CF 3.32.(m) Iout2 = Iout1 = Iin
CM2out.m CM-CF 3.32.(o) Iout2 = Iout1 = −Iin
CFD.m CF-CM 3.32.(n) Iout2 = −Iout1 = −Iin
CMD.m CM-CM 3.32.(p) Iout2 = −Iout1 = Iin
VF CM.m CCII+ 3.32.(f) Vout = Vin
(VF-CM) Iout = −Iin
VM CM.m ICCII+ 3.32.(h) Vout = −Vin
(VM-CM) Iout = −Iin
VF CF.m CCII- 3.32.(e) Vout = Vin
(VF-CF) Iout = Iin
VM CF.m ICCII- 3.32.(g) Vout = −Vin
(VM-CF) Iout = Iin
CFOA.m CFOA 3.43 VX = VY , IZ = −IX
(VF-CM-VF) VZ = VW

ejecutó con las siguientes especificaciones:


Θ Simulador: Tanner-SPICE.
Θ Tecnologı́a: 0.35µm AMI Semiconductor.
Θ Número de individuos por generación: 40.
Θ Porcentaje de mutación: 0.3.
Θ Número máximo de generaciones: 150.
Θ Ganancia (Vo/Vi) deseada: 1 (con peso de 1).
Θ Ancho de banda deseado: 1MHz (con peso de 0.5).
Θ Impedancia de entrada (Zin) deseada: 10KΩ (con peso de 0.5).
Θ Impedancia de salida (Zout) deseada: 250Ω (con peso de 0.5).
4.2. TOPOLOGÍAS DE VF GENERADAS 91

4.2. Topologı́as de VF generadas


Las topologı́as mostradas en las figuras 4.3 y 4.4 fueron obtenidas por el
EA realizado. El algoritmo (VF.m) se ejecuto con diferentes simuladores y
tecnologı́as para encontar esas topologı́as. Se observa en las figuras 4.3 y 4.4
que el programa VF.m encuentra VFs que equivalen a trayectorias capaciti-
vas, es decir, estos circuitos no harán copias de voltaje en DC, esto se debe a
que el GA no contempla como un objetivo ganancia en DC, al implementar
este objetivo en la evaluacion del circuito se espera que esta desventaja quede
corregida. El cuadro 4.2 se realizó para comparar las topologı́as encontradas;
en este cuadro se uso el simulador Tanner-SPICE y la tecnologı́a de 0.35µm
en todas las simulaciones. Con las siguientes dimensiones de los transistores:
L=1.2µm, WN=1.0µm y WP=4.4µm.

Cuadro 4.2: Respuesta en CA de los circuitos VF obtenidos.

Figura Gain BW ZIN ZOU T


4.3.(a) 0.943 10.7 MHz 108 KΩ 7.63 KΩ
4.3.(b) 1.001 9.13 MHz 110 KΩ 125 KΩ
4.3.(c) 0.971 25.0 MHz 15.1 KΩ 7.0 KΩ
4.3.(d) 0.958 24.8 MHz 24.7 KΩ 24.7 KΩ
4.4.(a) 1.000 13.6 MHz 47.9 KΩ 94.7 KΩ
4.4.(b) 0.758 33.7 MHz 40.2 KΩ 343 Ω
4.4.(c) 0.947 100. MHz 5.94 KΩ 4.82 KΩ
4.4.(d) 0.989 20.9 MHz 35.2 KΩ 35.0 MΩ
92 CAPÍTULO 4. RESULTADOS

Figura 4.1: Evaluación del mejor individuo.

Figura 4.2: Tiempo de ejecución del programa.


4.2. TOPOLOGÍAS DE VF GENERADAS 93

Figura 4.3: Algunos VFs obtenidos con el EA.


94 CAPÍTULO 4. RESULTADOS

Figura 4.4: Algunos VFs obtenidos con el EA.


4.3. TOPOLOGÍAS DE CF GENERADAS 95

4.3. Topologı́as de CF generadas


Las topologı́as mostradas en las figuras 4.5 y 4.6 fueron obtenidas por
el EA realizado. Se observa que los CFs encontrados simulan cables en AC,
esto es debido a que el GA encuentra ese tipo de respuesta como la mejor
opción. Para encontar topologı́as que realicen transconductancias como en la
figura 3.21 se debe de penalizar la generacion de cables que unan los MOS
de la entrada con los de la salida. El cuadro 4.3 se realizó para comparar las
topologı́as encontradas; en este cuadro se uso el simulador Tanner-SPICE y
la tecnologı́a de 0.35µm. Con las siguientes dimensiones de los transistores:
L=1.2µm, WN=1.0µm y WP=4.4µm.

Cuadro 4.3: Respuesta en CA de los circuitos CF obtenidos.

Figura Gain BW ZIN ZOU T


4.5.(a) 0.976 40.1 MHz 5.63 KΩ 5.95 KΩ
4.5.(b) 0.984 26.3 MHz 6.13 KΩ 21.3 KΩ
4.5.(c) 0.976 40.4 MHz 5.63 KΩ 5.95 KΩ
4.5.(d) 0.940 7.81 MHz 6.22 KΩ 21.7 KΩ
4.6.(a) 0.944 58.1 MHz 6.88 KΩ 91.7 KΩ
4.6.(b) 0.977 22.8 MHz 2.81 KΩ 2.97 KΩ
4.6.(c) 0.954 15.3 MHz 6.02 KΩ 128. KΩ
4.6.(d) 0.977 22.9 MHz 2.81 KΩ 2.97 KΩ
96 CAPÍTULO 4. RESULTADOS

Figura 4.5: Cuatro CFs obtenidos con el EA.


4.3. TOPOLOGÍAS DE CF GENERADAS 97

Figura 4.6: Ejemplo de CFs obtenidos con el EA.


98 CAPÍTULO 4. RESULTADOS

4.4. Topologı́as de CM generadas


Se ejecuto el algoritmo CM.m con diferentes simuladores y tecnologı́as
para encontar las topologı́as de las figuras 4.7 y 4.8. El GA encuentra CMs
funcionales como el espejo simple, cascode, wilson o como el mostrado en
la figura 4.7(d); sin embargo, también encuentra topologı́as no funcionales
como algunas de las figuras 4.7 y 4.8. Debe recordarse que el GA realizado
nos genera topologı́as que cumplen con una simulación en SPICE de una
especificación dada por el usuario; es decir, en la mayorı́a de los casos es
necesario que el diseñador modifique las topologı́as obtenidas por el programa
para realizar circuitos funcionales. El cuadro 4.4 se realizó para comparar
las topologı́as encontradas, en estos circuitos se uso el simulador Tanner-
SPICE y la tecnologı́a de 0.35µm en todas las simulaciones. Con las siguientes
dimensiones de los transistores: L=1.2µm y WN=12.0µm.

Cuadro 4.4: Respuesta en CA de los circuitos CM obtenidos.

Figura Gain BW ZIN ZOU T


4.7.(a) 0.80 540 MHz 4.08KΩ 6.86KΩ
4.7.(b) 1.06 218 MHz 680 KΩ 4.94 KΩ
4.7.(c) 0.98 10 GHz 1.17 GΩ –
4.7.(d) 1.00 245 MHz 6.18 KΩ 62.3 GΩ
4.7.(e) 0.72 56 MHz 4.23 KΩ 6.98 KΩ
4.7.(f) 0.96 253MHz 4.79 KΩ 6.29 KΩ
4.8.(a) 0.99 313 KHz 2.13 KΩ 61.9 GΩ
4.8.(b) 0.825 10.8 MHz 10.0 KΩ 448 KΩ
4.8.(c) 0.93 1.50 GHz – –
4.8.(d) 1.00 10 GHz – 442 MΩ
4.8.(e) 1.17 152 MHz 5.19 KΩ 5.90 KΩ
4.8.(f) 1.00 10 GHz – 4.35 MΩ
4.4. TOPOLOGÍAS DE CM GENERADAS 99

Figura 4.7: Algunos CMs obtenidos con el EA.


100 CAPÍTULO 4. RESULTADOS

Figura 4.8: Algunos CMs obtenidos con el EA.


4.5. TOPOLOGÍAS DE VM GENERADAS 101

4.5. Topologı́as de VM generadas


Las topologı́as mostradas en la figura 4.9 fueron obtenidas por el programa
VM.m. Estos cuatro circuitos ya han sido reportados, lo que deja sin aporte
de nuevas topologı́as a este programa (VM.m); sin embargo, el hecho de
que el GA encontró estas topologı́as significa que funciona adecuadamente.
El cuadro 4.5 se realizó para comparar las topologı́as de la figura 4.9. Para
comparar estos circuitos se uso el simulador Tanner-SPICE y la tecnologı́a
de 0.35µm en todas las simulaciones. Con las siguientes dimensiones de los
transistores: L=1.2µm, WN=1.0µm y WP=4.4µm.

Cuadro 4.5: Respuesta en CA de los circuitos VM obtenidos.

Figura Gain BW
4.9.(a) 0.906 1.61 GHz
4.9.(b) 0.906 1.61 GHz
4.9.(c) 1.920 5.0 MHz
4.9.(d) 1.15 1.07 GHz
102 CAPÍTULO 4. RESULTADOS

Figura 4.9: Algunos VMs obtenidos con el EA.


4.6. TOPOLOGÍAS DE CCII GENERADAS 103

4.6. Topologı́as de CCII generadas


Las topologı́as mostradas en las figuras 4.10, 4.11 y 4.12 fueron obtenidas
al combinar los UGCs encontrados por el EA realizado. El CCII+ de la figura
4.10 se obtiene al combinar el VF 196758 (figura 4.4.(a)), con el CM 69593766
(figura 4.7.(b))

Figura 4.10: CCII+ obtenidos de la combinación del VF 196758 y el CM


69593766.
104 CAPÍTULO 4. RESULTADOS

Figura 4.11: Dos CCII+s obtenidos con la combinación de UGC.


4.6. TOPOLOGÍAS DE CCII GENERADAS 105

Figura 4.12: CCII- obtenido con la combinación del VF 67599 y el CF


4610874.
106 CAPÍTULO 4. RESULTADOS

4.7. Topologı́as de CFOAs generadas


El algoritmo no realiza la busqueda de nuevos CFOAs, sólo combina las
topologı́as de VFs y CMs encontradas con los programas VF.m y CM.m. Por
lo tanto este programa (CFOA.m) sólo emula lo que un diseñador de CI harı́a
para unir tres UGCs. Tres CFOAs sintetizados de esta forma se observan en
las figuras 4.13 y 4.14. El CFOA de la figura 4.13 se obtiene al combinar el
VF 196758 (figura 4.4.(a)) con el CM 69593766 (figura 4.7.(b))

Figura 4.13: CFOA obtenido de la combinación del VF 196758 y el CM


69593766.
4.7. TOPOLOGÍAS DE CFOAS GENERADAS 107

Figura 4.14: Dos CFOAs obtenidos de la combinación de UGCs encontrados


con el EA.
108 CAPÍTULO 4. RESULTADOS

Esta hoja se dejo en blanco intencionalmente.


Capı́tulo 5

Conclusiones

5.1. Conclusiones
Se realizó un sistema automático para sintetizar topologı́as de circuitos
analógicos; este sistema utiliza algoritmos evolutivos realizados en MatLab.
Se muestra el esquema del algoritmo propuesto y como fue realizada la com-
probación de funcionamiento de éste, concluyendo que el GA funciona ade-
cuadamente.

Se comparan algunas herramientas de sı́ntesis con el método realizado en


esta Tesis. Además se describe brevemente el EA, resaltando las operaciones
genéticas y los tres tipos de EAs: algoritmos genéticos (GA), estrategias evo-
lutivas (ES) y programación genética (GP). Las operaciones genéticas apli-
cadas son selección, cruza, mutación y elitismo.

Se presentó una codificación binaria para representar topologı́as de cir-


cuitos analógicos: VFs, CFs, VMs y CMs. Al elemento principal de esta
codificación se le llama cromosoma, el cual está compuesto por la unión de
genes. Cada gen modela una parte del circuito analógico.

Los cromosomas de los VFs y los CFs son realizados por medio de

109
110 CAPÍTULO 5. CONCLUSIONES

cuatro genes:

• gen de pequeña señal (genSS): Para los VFs este gen agrega un
elemento P a cada elemento O de la representación ideal del VF,
generando pares O-P. Para los CFs agrega un elemento O a cada
elemento P.

• gen de sı́ntesis del MOS (genSMos): Cada par O-P es reemplazado


por un MOSFET, tipo P o N.

• gen de polarización (genBias): Genera la polarización del circuito,


agregando fuentes voltaje y de corriente.

• gen de sı́ntesis de espejos de corriente (genCM): Cada fuente de


corriente del circuito es reemplazada por un espejo de corriente.

Los cromosomas de los CMs son sintetizados por tres genes:

• gen de polarización (genBias): Genera la polarización del circuito,


seleccionando las conexiones internas de este.

• gen de entrada/salida (genIO): Elige a los nodos de entrada y


salida del CM.

• gen de desplazamiento de nivel (genN): Contiene una librerı́a de


posibles sub-circuitos para unirse entre las conexiones de los MOS-
FETs del CM.

Los cromosomas de los VMs son realizados por cuatro genes:

• gen de sı́ntesis del MOS (genSMos): Cada par O-P del VM ideal
es reemplazado por un MOSFET, tipo P o N.

• gen de polarización 1 (genBias1): Contiene una librerı́a de posibles


sub-circuitos para unirse a la conexión 1 de los VMs ideales (Figura
3.28).
5.1. CONCLUSIONES 111

• gen de polarización 2 (genBias2): Contiene una librerı́a de posibles


sub-circuitos para unirse a la conexión 2 de los VMs ideales (Figura
3.28).

• gen de salida (genIO): Elige el nodo de salida del VM.

El número de bits utilizado para cada cromosoma depende del número de


elementos nullor usados para modelar el comportamiento ideal del circuito
analógico, por lo tanto se pueden sintetizar topologı́as de UGCs represen-
tadas por celdad ideales que no han estudiado a fondo, ya que el número de
MOS puede ser cualquiera.

El algoritmo realiza automáticamente el netlist de circuitos analógicos y


su simulación en Tanner-SPICE, TOP-SPICE o H-SPICE. Las topologı́as
sintetizadas se simulan con tecnologı́a de CIs CMOS de:

AMI Semiconductor: 0.35µm, 0.50µm.

Taiwan Semiconductor: 0.18µm, 0.25µm, 0.35µm.

IBM Semiconductor: 0.18µm, 0.25µm, 0.35µm, 0.50µm.

Las simulaciones buscan caracterı́sticas en CA: ganancia, ancho de ban-


da e impedancias de entrada y/o salida; por lo tanto, el algoritmo genético
realizado es considerado del tipo multi-objetivo (MOGA).

Se propuso como evolucionar los cromosomas de los circuitos UGCs para


sintetizar otros circuitos con más terminales, compuestos por dos o más cel-
das de ganancia unitaria como CCs, ICCs y CFOAS, demostrando que el
sistema realizado no es cerrado, puede crecer.
112 CAPÍTULO 5. CONCLUSIONES

Se mostraron algunas topologı́as sintetizadas con el sistema realizado.

5.2. Ideas para trabajos a futuro


Los parámetros de evaluación para la selección de los circuitos (medida
de aptitud) pueden crecer, según alguna especificación en AC, DC y/o
tiempo y no limitarse a los cuatro mostrados en esta tesis.

Se puede cambiar el método de evaluación por algún otro, por ejemplo


una evaluación difusa serı́a ideal para este tipo de problemas.

Los operadores genéticos (selección, cruza y mutación) utilizados en


esta Tesis pueden ser cambiados por otro tipo de operadores, con el fin
de probar si se encuentran mejores resultados.

El programa realizado puede generar el netlist para tres diferentes si-


muladores (Tanner, TOP-SPICE y H-SPICE), pero el programa se
puede adaptar a otros simuladores.

Se puede ampliar este método para otros circuitos y dispositivos, por


ejemplo: OPAMPs,OTAs, filtros, etc. También se puede ampliar este
incluyendo elementos pasivos y dimensiones de los MOSFETs.
Apéndice A

Parámetros de simulación

Los parámetros de las tecnologı́as utilizadas en SPICE son:

A.1. Parámetros de 0.35µm, AMI Semicon-


ductor
T46W SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Sep 14/04
LOT: T46W WAF: 1102
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 8E-9
+XJ = 1E-7 NCH = 2.2E17 VTH0 = 0.4074928
+K1 = 0.4728294 K2 = 3.621074E-3 K3 = 70.0489524
+K3B = -10 W0 = 1.830495E-5 NLX = 2.193565E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.802594 DVT1 = 0.4276766 DVT2 = -0.3
+U0 = 361.3464355 UA = -9.67751E-10 UB = 2.889157E-18
+UC = 4.669186E-11 VSAT = 1.898742E5 A0 = 1.3381235
+AGS = 0.2592162 B0 = 2.220067E-6 B1 = 5E-6
+KETA = -9.077245E-3 A1 = 0 A2 = 0.3487525
+RDSW = 780.376869 PRWG = 0.0713836 PRWB = -7.21866E-3
+WR = 1 WINT = 1.389179E-7 LINT = 1.24319E-9
+DWG = -1.034792E-8 DWB = 9.824117E-9 VOFF = -0.0869274
+NFACTOR = 0.7366118 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 0.0346215
+ETAB = -7.988336E-3 DSUB = 0.3317286 PCLM = 1.9546403
+PDIBLC1 = 4.161735E-3 PDIBLC2 = 1.19743E-5 PDIBLCB = 0.1
+DROUT = 2.748338E-3 PSCBE1 = 7.42428E8 PSCBE2 = 1E-3
+PVAG = 0 DELTA = 0.01 RSH = 3.9
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 2.58E-10 CGSO = 2.58E-10

113
114 APÉNDICE A. PARÁMETROS DE SIMULACIÓN

+CGBO = 1E-12 CJ = 1.012513E-3 PB = 0.8


+MJ = 0.3510986 CJSW = 2.862666E-10 PBSW = 0.8
+MJSW = 0.1518459 CJSWG = 1.82E-10 PBSWG = 0.8
+MJSWG = 0.1518459 CF = 0 PVTH0 = -0.0100437
+PRDSW = -73.5674578 PK2 = 3.087074E-3 WKETA = 3.003636E-3
+LKETA = 2.647195E-3 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 8E-9
+XJ = 1E-7 NCH = 8.52E16 VTH0 = -0.6831778
+K1 = 0.3939412 K2 = 0.0308482 K3 = 0
+K3B = 15.35112 W0 = 1E-5 NLX = 1E-9
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 1.4617205 DVT1 = 0.3569339 DVT2 = -0.0368562
+U0 = 221.3795636 UA = 1.573901E-9 UB = 5E-18
+UC = 8.567678E-11 VSAT = 2E5 A0 = 1.999067
+AGS = 0.389467 B0 = 2.419633E-6 B1 = 5E-6
+KETA = -6.020293E-3 A1 = 4.394989E-5 A2 = 0.6320223
+RDSW = 4E3 PRWG = -0.2146377 PRWB = 0.1688991
+WR = 1 WINT = 1.569174E-7 LINT = 0
+DWG = -2.578547E-8 DWB = 9.89001E-9 VOFF = -0.1219424
+NFACTOR = 1.8063821 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 0.0518465
+ETAB = 4.735705E-3 DSUB = 0.4254421 PCLM = 2.7235598
+PDIBLC1 = 0 PDIBLC2 = 4.344554E-3 PDIBLCB = 4.528856E-3
+DROUT = 5.604876E-3 PSCBE1 = 8E10 PSCBE2 = 5.04016E-10
+PVAG = 4.6592572 DELTA = 0.01 RSH = 2.8
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 3.12E-10 CGSO = 3.12E-10
+CGBO = 1E-12 CJ = 9.916255E-4 PB = 0.8896731
+MJ = 0.392439 CJSW = 2.91776E-10 PBSW = 0.99
+MJSW = 0.1676363 CJSWG = 4.42E-11 PBSWG = 0.99
+MJSWG = 0.1676363 CF = 0 PVTH0 = 0.0107102
+PRDSW = -233.4720278 PK2 = 1.861393E-3 WKETA = -6.345721E-3
+LKETA = -0.0207051 )

A.2. Parámetros de 0.50µm, AMI Semicon-


ductor
T86J SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Aug 8/08
LOT: T86J WAF: 2102
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 1.39E-8
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = 0.6562322
+K1 = 0.8904346 K2 = -0.1045895 K3 = 31.9320563
+K3B = -10.0125815 W0 = 1E-8 NLX = 1E-9
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.7529817 DVT1 = 0.3375078 DVT2 = -0.499724
+U0 = 447.5504584 UA = 1E-13 UB = 1.31065E-18
A.2. PARÁMETROS DE 0.50µM, AMI SEMICONDUCTOR 115

+UC = 9.202046E-13 VSAT = 1.671922E5 A0 = 0.6240224


+AGS = 0.1301256 B0 = 2.256574E-6 B1 = 5E-6
+KETA = -3.285812E-3 A1 = 1.540623E-6 A2 = 0.3413547
+RDSW = 1.095284E3 PRWG = 0.10786 PRWB = 0.0373216
+WR = 1 WINT = 2.462847E-7 LINT = 9.17502E-8
+XL = 1E-7 XW = 0 DWG = -5.382937E-9
+DWB = 4.188989E-8 VOFF = 0 NFACTOR = 1.1244911
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 6.932245E-3 ETAB = -9.478768E-5
+DSUB = 0.2087655 PCLM = 2.8051185 PDIBLC1 = 2.346151E-4
+PDIBLC2 = 2.759558E-3 PDIBLCB = -1.174842E-3 DROUT = 9.934542E-3
+PSCBE1 = 6.108196E8 PSCBE2 = 1.386889E-4 PVAG = 0
+DELTA = 0.01 RSH = 86.1 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 3.01E-10 CGSO = 3.01E-10 CGBO = 1E-9
+CJ = 4.221106E-4 PB = 0.9216664 MJ = 0.4420501
+CJSW = 3.160903E-10 PBSW = 0.8 MJSW = 0.2026465
+CJSWG = 1.64E-10 PBSWG = 0.8 MJSWG = 0.2026465
+CF = 0 PVTH0 = 9.852567E-3 PRDSW = 465.0982961
+PK2 = -0.0752562 WKETA = -0.0145101 LKETA = -9.714755E-4 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 1.39E-8
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = -0.9152268
+K1 = 0.553472 K2 = 7.871921E-3 K3 = 72.4320928
+K3B = -0.7655174 W0 = 5.614819E-6 NLX = 2.93007E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 1.1733882 DVT1 = 0.2736195 DVT2 = -0.0650979
+U0 = 201.3603195 UA = 2.408572E-9 UB = 1E-21
+UC = -1E-10 VSAT = 9.184541E4 A0 = 0.9091574
+AGS = 0.0833041 B0 = -5.020555E-8 B1 = 1.918495E-7
+KETA = -4.865785E-3 A1 = 0 A2 = 0.5990723
+RDSW = 3E3 PRWG = -0.030185 PRWB = -0.0442888
+WR = 1 WINT = 3.003833E-7 LINT = 1.185079E-7
+XL = 1E-7 XW = 0 DWG = 2.56059E-9
+DWB = 9.498718E-10 VOFF = -0.0728639 NFACTOR = 0.9934114
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 4.875675E-4 ETAB = -0.1014434
+DSUB = 0.7615044 PCLM = 2.4304643 PDIBLC1 = 0.041127
+PDIBLC2 = 2.84767E-3 PDIBLCB = -0.0194741 DROUT = 0.2421531
+PSCBE1 = 1E8 PSCBE2 = 3.33117E-9 PVAG = 0.0102618
+DELTA = 0.01 RSH = 109.8 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 4.05E-10 CGSO = 4.05E-10 CGBO = 1E-9
+CJ = 7.302729E-4 PB = 0.99 MJ = 0.5003729
+CJSW = 2.506646E-10 PBSW = 0.9824582 MJSW = 0.4179581
+CJSWG = 6.4E-11 PBSWG = 0.9824582 MJSWG = 0.4179581
+CF = 0 PVTH0 = 5.98016E-3 PRDSW = 14.8598424
+PK2 = 3.73981E-3 WKETA = 6.38143E-3 LKETA = -5.131381E-3)
116 APÉNDICE A. PARÁMETROS DE SIMULACIÓN

A.3. Parámetros de 0.18µm, Taiwan Semi-


conductor (TSMC)
T77A SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Oct 17/07
LOT: T77A WAF: 3010
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 4.1E-9
+XJ = 1E-7 NCH = 2.3549E17 VTH0 = 0.3729594
+K1 = 0.5840975 K2 = 1.686187E-3 K3 = 1E-3
+K3B = 0.0296594 W0 = 1E-7 NLX = 1.542817E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 1.1680674 DVT1 = 0.4182499 DVT2 = 0.0268331
+U0 = 292.3966054 UA = -1.219746E-9 UB = 2.307456E-18
+UC = 6.953926E-11 VSAT = 1.704188E5 A0 = 1.8603725
+AGS = 0.4358979 B0 = 1.843628E-7 B1 = 5E-6
+KETA = -0.011523 A1 = 8.967934E-4 A2 = 0.3
+RDSW = 105.3073514 PRWG = 0.489299 PRWB = -0.2
+WR = 1 WINT = 0 LINT = 1.963253E-8
+XL = 0 XW = -1E-8 DWG = -5.54717E-9
+DWB = -1.072339E-8 VOFF = -0.0948017 NFACTOR = 2.1860065
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 1.925032E-3 ETAB = 6.028975E-5
+DSUB = 0.0193048 PCLM = 1.9022344 PDIBLC1 = 0.2550871
+PDIBLC2 = 1.417207E-3 PDIBLCB = -0.1 DROUT = 0.8645309
+PSCBE1 = 3.419362E10 PSCBE2 = 2.777738E-8 PVAG = 9.459578E-3
+DELTA = 0.01 RSH = 7 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 8.58E-10 CGSO = 8.58E-10 CGBO = 1E-12
+CJ = 9.465842E-4 PB = 0.8 MJ = 0.3722711
+CJSW = 1.90832E-10 PBSW = 0.8 MJSW = 0.1366398
+CJSWG = 3.3E-10 PBSWG = 0.8 MJSWG = 0.1366398
+CF = 0 PVTH0 = -4.904276E-3 PRDSW = -0.840458
+PK2 = 1.983844E-3 WKETA = -1.794821E-3 LKETA = -3.436309E-3
+PU0 = -3.6758958 PUA = -4.70421E-11 PUB = 8.241174E-24
+PVSAT = 1.61878E3 PETA0 = 1E-4 PKETA = -1.374594E-3 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 4.1E-9
+XJ = 1E-7 NCH = 4.1589E17 VTH0 = -0.3901812
+K1 = 0.5723512 K2 = 0.024177 K3 = 0.1578539
+K3B = 4.2732669 W0 = 1E-6 NLX = 1.121486E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.6119889 DVT1 = 0.2499582 DVT2 = 0.1
+U0 = 112.2285112 UA = 1.425392E-9 UB = 1.16772E-21
+UC = -1E-10 VSAT = 1.087139E5 A0 = 1.5950482
+AGS = 0.3203279 B0 = 4.957218E-7 B1 = 1.527303E-6
+KETA = 0.0275656 A1 = 0.3799265 A2 = 0.432073
+RDSW = 199.0599687 PRWG = 0.5 PRWB = -0.4953546
+WR = 1 WINT = 0 LINT = 2.940415E-8
+XL = 0 XW = -1E-8 DWG = -3.06329E-8
+DWB = -7.685822E-9 VOFF = -0.0937004 NFACTOR = 2
A.4. PARÁMETROS DE 0.25µM, TAIWAN SEMICONDUCTOR (TSMC)117

+CIT = 0 CDSC = 2.4E-4 CDSCD = 0


+CDSCB = 0 ETA0 = 1.291671E-4 ETAB = -2.161739E-4
+DSUB = 3.645549E-4 PCLM = 0.9284213 PDIBLC1 = 2.836414E-3
+PDIBLC2 = -8.750635E-6 PDIBLCB = -1E-3 DROUT = 1.827199E-4
+PSCBE1 = 8E10 PSCBE2 = 8.26364E-10 PVAG = 0.0202145
+DELTA = 0.01 RSH = 8.1 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 7.82E-10 CGSO = 7.82E-10 CGBO = 1E-12
+CJ = 1.169586E-3 PB = 0.8600389 MJ = 0.4153558
+CJSW = 2.172584E-10 PBSW = 0.8 MJSW = 0.3186705
+CJSWG = 4.22E-10 PBSWG = 0.8 MJSWG = 0.3186705
+CF = 0 PVTH0 = 1.231752E-3 PRDSW = 9.5225138
+PK2 = 1.102104E-3 WKETA = 0.0132876 LKETA = -2.410443E-3
+PU0 = -1.5247633 PUA = -5.27446E-11 PUB = 1E-21
+PVSAT = 50 PETA0 = 7.202744E-5 PKETA = -1.607078E-3 )

A.4. Parámetros de 0.25µm, Taiwan Semi-


conductor (TSMC)
T7CZ SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Feb 22/08
LOT: t7cz WAF: 4002
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 5.7E-9
+XJ = 1E-7 NCH = 2.3549E17 VTH0 = 0.3773132
+K1 = 0.4666921 K2 = 1.573176E-3 K3 = 1E-3
+K3B = 2.5895745 W0 = 1E-7 NLX = 1.689798E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.5858202 DVT1 = 0.7137904 DVT2 = -0.5
+U0 = 299.2752426 UA = -1.348885E-9 UB = 2.599223E-18
+UC = 3.914013E-11 VSAT = 1.326808E5 A0 = 1.6903065
+AGS = 0.3259201 B0 = -9.718698E-9 B1 = -9.965565E-8
+KETA = -5.277966E-3 A1 = 1.513887E-5 A2 = 0.4938152
+RDSW = 185.9342736 PRWG = 0.265936 PRWB = -0.2
+WR = 1 WINT = 0 LINT = 3.058404E-10
+XL = 0 XW = -4E-8 DWG = -1.468777E-8
+DWB = 6.177307E-9 VOFF = -0.0967134 NFACTOR = 1.5041374
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 6.166942E-3 ETAB = 4.961163E-4
+DSUB = 0.0429997 PCLM = 1.6343513 PDIBLC1 = 0.9894248
+PDIBLC2 = 2.371861E-3 PDIBLCB = -0.0707797 DROUT = 0.9990506
+PSCBE1 = 6.130234E10 PSCBE2 = 5E-10 PVAG = 6.152805E-3
+DELTA = 0.01 RSH = 3.5 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
118 APÉNDICE A. PARÁMETROS DE SIMULACIÓN

+CGDO = 5.35E-10 CGSO = 5.35E-10 CGBO = 1E-12


+CJ = 1.730342E-3 PB = 0.99 MJ = 0.4756955
+CJSW = 4.161282E-10 PBSW = 0.99 MJSW = 0.4333201
+CJSWG = 3.29E-10 PBSWG = 0.99 MJSWG = 0.4333201
+CF = 0 PVTH0 = -7.791496E-3 PRDSW = -10
+PK2 = 3.801008E-3 WKETA = 6.639766E-3 LKETA = -7.838284E-3 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 5.7E-9
+XJ = 1E-7 NCH = 4.1589E17 VTH0 = -0.5607522
+K1 = 0.640796 K2 = -6.023941E-5 K3 = 0.0991578
+K3B = 5.8853724 W0 = 1E-6 NLX = 8.215136E-9
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 2.1276376 DVT1 = 0.819465 DVT2 = -0.212058
+U0 = 104.556335 UA = 1.107353E-9 UB = 1.019377E-21
+UC = -1E-10 VSAT = 1.692264E5 A0 = 1.1481061
+AGS = 0.1807162 B0 = 7.892988E-8 B1 = -9.286804E-8
+KETA = 7.717259E-3 A1 = 0.0236274 A2 = 0.3
+RDSW = 1.324806E3 PRWG = 0.0659066 PRWB = -0.1489776
+WR = 1 WINT = 0 LINT = 2.847114E-8
+XL = 0 XW = -4E-8 DWG = -3.689602E-8
+DWB = -2.422345E-9 VOFF = -0.1362918 NFACTOR = 1.1350531
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 0.5475114 ETAB = -0.1820788
+DSUB = 1.4054827 PCLM = 1.3456606 PDIBLC1 = 0.0116021
+PDIBLC2 = -1E-5 PDIBLCB = -1E-3 DROUT = 0.1557741
+PSCBE1 = 8E10 PSCBE2 = 5.792633E-10 PVAG = 8.269154E-3
+DELTA = 0.01 RSH = 2.9 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 6.79E-10 CGSO = 6.79E-10 CGBO = 1E-12
+CJ = 1.892369E-3 PB = 0.9415247 MJ = 0.4726146
+CJSW = 3.537563E-10 PBSW = 0.7513518 MJSW = 0.3249701
+CJSWG = 2.5E-10 PBSWG = 0.7513518 MJSWG = 0.3249701
+CF = 0 PVTH0 = 6.489441E-3 PRDSW = 18.0910536
+PK2 = 2.033324E-3 WKETA = 0.0146664 LKETA = -7.364886E-3 )

A.5. Parámetros de 0.35µm, Taiwan Semi-


conductor (TSMC)
T83U SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: May 23/08
LOT: T83U WAF: 5001
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 7.7E-9
+XJ = 1E-7 NCH = 2.2E17 VTH0 = 0.465403
+K1 = 0.605685 K2 = 7.401855E-4 K3 = 100
+K3B = -9.9978452 W0 = 3.104982E-5 NLX = 2.718863E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 2.9399069 DVT1 = 0.8628462 DVT2 = -0.3
+U0 = 364.9848005 UA = -7.38738E-10 UB = 2.285693E-18
A.5. PARÁMETROS DE 0.35µM, TAIWAN SEMICONDUCTOR (TSMC)119

+UC = 3.664402E-11 VSAT = 1.566234E5 A0 = 1.1469517


+AGS = 0.1642206 B0 = 7.913741E-7 B1 = 5E-6
+KETA = 1.59443E-3 A1 = 0 A2 = 0.4470956
+RDSW = 957.4487567 PRWG = -0.075128 PRWB = -0.1078364
+WR = 1 WINT = 1.510787E-7 LINT = 0
+XL = -5E-8 XW = 1.5E-7 DWG = -5.692108E-9
+DWB = 5.225149E-9 VOFF = -0.0893518 NFACTOR = 1.3113023
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 1 ETAB = 0.0295297
+DSUB = 0.7823887 PCLM = 1.676311 PDIBLC1 = 1.547328E-4
+PDIBLC2 = 4.724954E-3 PDIBLCB = 0.0767737 DROUT = 3.365824E-4
+PSCBE1 = 7.16268E8 PSCBE2 = 1E-3 PVAG = 3.079663E-3
+DELTA = 0.01 RSH = 79.1 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 3.18E-10 CGSO = 3.18E-10 CGBO = 1E-12
+CJ = 9.324477E-4 PB = 0.8162386 MJ = 0.362829
+CJSW = 2.809158E-10 PBSW = 0.8 MJSW = 0.1824357
+CJSWG = 1.82E-10 PBSWG = 0.8 MJSWG = 0.1824357
+CF = 0 PVTH0 = -0.0279291 PRDSW = -98.8829593
+PK2 = 1.6222E-3 WKETA = -7.135466E-4 LKETA = 3.68571E-4 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 7.7E-9
+XJ = 1E-7 NCH = 8.52E16 VTH0 = -0.7104638
+K1 = 0.4314573 K2 = -0.0129797 K3 = 86.403366
+K3B = -4.9887168 W0 = 6.790634E-6 NLX = 1.01238E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.7043065 DVT1 = 0.7538793 DVT2 = -0.1364644
+U0 = 152.0101039 UA = 1.006463E-10 UB = 1.890539E-18
+UC = -1.74459E-11 VSAT = 2E5 A0 = 1.1765964
+AGS = 0.3405976 B0 = 2.107301E-6 B1 = 5E-6
+KETA = -6.90419E-3 A1 = 4.217794E-3 A2 = 0.9994396
+RDSW = 3.25395E3 PRWG = -0.0251462 PRWB = -0.0345874
+WR = 1 WINT = 1.513212E-7 LINT = 0
+XL = -5E-8 XW = 1.5E-7 DWG = -1.856889E-8
+DWB = 1.207799E-8 VOFF = -0.1270571 NFACTOR = 1.9223541
+CIT = 0 CDSC = 2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 = 0.0332936 ETAB = 3.097432E-3
+DSUB = 0.270751 PCLM = 5.2787472 PDIBLC1 = 1.57371E-3
+PDIBLC2 = -4.147325E-6 PDIBLCB = -1E-3 DROUT = 8.531668E-4
+PSCBE1 = 7.929595E10 PSCBE2 = 5.008484E-10 PVAG = 15
+DELTA = 0.01 RSH = 148.3 MOBMOD = 1
+PRT = 0 UTE = -1.5 KT1 = -0.11
+KT1L = 0 KT2 = 0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 = -5.6E-11 AT = 3.3E4
+WL = 0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW = 0 LWN = 1
+LWL = 0 CAPMOD = 2 XPART = 0.5
+CGDO = 3.61E-10 CGSO = 3.61E-10 CGBO = 1E-12
+CJ = 1.397166E-3 PB = 0.99 MJ = 0.5775057
+CJSW = 3.172123E-10 PBSW = 0.99 MJSW = 0.3575424
+CJSWG = 4.42E-11 PBSWG = 0.99 MJSWG = 0.3575424
+CF = 0 PVTH0 = 0.0166636 PRDSW = -89.3748363
+PK2 = 2.060693E-3 WKETA = 4.168039E-3 LKETA = -4.428159E-3 )
120 APÉNDICE A. PARÁMETROS DE SIMULACIÓN

A.6. Parámetros de 0.18µm, IBM Semicon-


ductor
T48W SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Nov 24/04
LOT: T48W WAF: 1001
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 4.5E-9
+XJ = 1E-7 NCH = 2.3549E17 VTH0 = 0.2996547
+K1 = 0.4856384 K2 = -1.286277E-3 K3 = 1E-3
+K3B = 6.5336462 W0 = 1E-7 NLX = 2.33038E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.5084664 DVT1 = 0.3284715 DVT2 = -0.254999
+U0 = 256.8438342 UA = -1.781605E-9 UB = 3.056852E-18
+UC = 5.926712E-11 VSAT = 1.125772E5 A0 = 2
+AGS = 0.4126701 B0 = 2.717631E-7 B1 = 5E-6
+KETA = -0.0153274 A1 = 2.526344E-4 A2 = 0.8496658
+RDSW = 105 PRWG = 0.4083755 PRWB = -0.2
+WR = 1 WINT = 1.73305E-10 LINT = 6.965779E-9
+DWG = 5.743223E-10 DWB = 2.501236E-8 VOFF = -0.0830387
+NFACTOR = 1.9532446 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 1.401733E-3
+ETAB = -1.842372E-6 DSUB = 3.613852E-3 PCLM = 1.2597524
+PDIBLC1 = 1 PDIBLC2 = 9.832679E-3 PDIBLCB = -0.1
+DROUT = 0.9721339 PSCBE1 = 6.277119E9 PSCBE2 = 5E-10
+PVAG = 0.4412268 DELTA = 0.01 RSH = 6.3
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 4.88E-10 CGSO = 4.88E-10
+CGBO = 1E-12 CJ = 8.405919E-4 PB = 0.8006956
+MJ = 0.5155273 CJSW = 2.236791E-10 PBSW = 0.8
+MJSW = 0.2172546 CJSWG = 3.3E-10 PBSWG = 0.8
+MJSWG = 0.2172546 CF = 0 PVTH0 = 1.86553E-3
+PRDSW = -5 PK2 = 1.544722E-6 WKETA = 2.846518E-3
+LKETA = -1.977883E-3 PU0 = 25.9785801 PUA = 1.477003E-10
+PUB = 0 PVSAT = 2.006318E3 PETA0 = -1E-4
+PKETA = -1.996966E-3 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 4.5E-9
+XJ = 1E-7 NCH = 4.1589E17 VTH0 = -0.3983536
+K1 = 0.5907658 K2 = 0.0112551 K3 = 0
+K3B = 20 W0 = 9.9999E-7 NLX = 2.834055E-8
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 1.1248497 DVT1 = 0.7302421 DVT2 = -0.3
+U0 = 100.760863 UA = 9.102011E-10 UB = 1E-21
+UC = -1E-10 VSAT = 1.628707E5 A0 = 1.4671452
+AGS = 0.3565835 B0 = 1.16212E-6 B1 = 2.390915E-6
+KETA = 0.0117436 A1 = 0.4468993 A2 = 0.3
+RDSW = 608.6993897 PRWG = 0.0792828 PRWB = -0.2503946
+WR = 1 WINT = 0 LINT = 3.024645E-8
+DWG = -2.833656E-8 DWB = -5.461534E-9 VOFF = -0.1053146
+NFACTOR = 1.4551122 CIT = 0 CDSC = 2.4E-4
A.7. PARÁMETROS DE 0.25µM, IBM SEMICONDUCTOR 121

+CDSCD = 0 CDSCB = 0 ETA0 = 0.0040464 +ETAB = -0.0932592 DSUB = 0.69974 PCLM = 1.4932427
+PDIBLC1 = 0 PDIBLC2 = 0.0210559 PDIBLCB = -1E-3
+DROUT = 5.465719E-4 PSCBE1 = 1.4019E10 PSCBE2 = 4.057116E-9
+PVAG = 0 DELTA = 0.01 RSH = 6
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0 +LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 4.34E-10 CGSO = 4.34E-10
+CGBO = 1E-12 CJ = 1.174298E-3 PB = 0.8276062
+MJ = 0.4115923 CJSW = 1.330245E-10 PBSW = 0.8027251
+MJSW = 0.1 CJSWG = 4.22E-10 PBSWG = 0.8027251
+MJSWG = 0.1 CF = 0 PVTH0 = -8.407096E-4
+PRDSW = -3.0260529 PK2 = 3.38646E-4 WKETA = 0.0335243
+LKETA = 3.732539E-3 PU0 = 0.3701405 PUA = 3.085225E-11
+PUB = 0 PVSAT = 49.8420442 PETA0 = 1.003159E-4
+PKETA = -2.007487E-3 )

A.7. Parámetros de 0.25µm, IBM Semicon-


ductor
T62P SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Aug 17/06
LOT: T62P WAF: 1005
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 6.3E-9
+XJ = 1E-7 NCH = 2.3549E17 VTH0 = 0.5883023
+K1 = 0.7913731 K2 = -1.188662E-4 K3 = 51.2752977
+K3B = -10 W0 = 1.524436E-5 NLX = 3.116783E-8
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 1.3569508 DVT1 = 0.9575597 DVT2 = -0.5
+U0 = 363.0993338 UA = -9.8777E-10 UB = 3.115273E-18
+UC = 9.548732E-11 VSAT = 1.236873E5 A0 = 1.2442517
+AGS = 0.2374961 B0 = 1.460754E-8 B1 = -1E-7
+KETA = 3.55036E-3 A1 = 4.992937E-4 A2 = 0.552179
+RDSW = 196.9345484 PRWG = 0.3563494 PRWB = -0.2
+WR = 1 WINT = 2.689564E-8 LINT = 4.005104E-8
+DWG = -1.098287E-8 DWB = -1.449662E-8 VOFF = -0.1261175
+NFACTOR = 1.7834578 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 1.977308E-3
+ETAB = 4.64591E-5 DSUB = 4.17007E-3 PCLM = 1.149956
+PDIBLC1 = 0.7432404 PDIBLC2 = 5.003847E-4 PDIBLCB = -0.0329796
+DROUT = 1 PSCBE1 = 3.886418E8 PSCBE2 = 1.590717E-6
+PVAG = 0.0100106 DELTA = 0.01 RSH = 5.8
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 5.77E-10 CGSO = 5.77E-10
+CGBO = 1E-9 CJ = 1.319071E-3 PB = 0.9229666
+MJ = 0.4874629 CJSW = 1E-10 PBSW = 0.8
122 APÉNDICE A. PARÁMETROS DE SIMULACIÓN

+MJSW = 0.5999831 CJSWG = 3.29E-10 PBSWG = 0.8


+MJSWG = 0.5999831 CF = 0 PVTH0 = -1.793115E-3
+PRDSW = -10 PK2 = -3.462569E-4 WKETA = -3.747892E-3
+LKETA = -0.0115491 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 6.3E-9
+XJ = 1E-7 NCH = 4.1589E17 VTH0 = -0.4836985
+K1 = 0.8838919 K2 = -0.017304 K3 = 0.0974071
+K3B = 16.603282 W0 = 1E-6 NLX = 8.590332E-9
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 2.3400296 DVT1 = 1 DVT2 = -0.3
+U0 = 117.1986463 UA = 1.215987E-9 UB = 1.409597E-21
+UC = -1E-10 VSAT = 5.065058E4 A0 = 1.0073379
+AGS = 0 B0 = 1.66516E-6 B1 = 5E-6
+KETA = -0.0166512 A1 = 0.2504935 A2 = 0.5677392
+RDSW = 1.327779E3 PRWG = -0.0406725 PRWB = -0.059236
+WR = 1 WINT = 0 LINT = 4.7552E-8
+DWG = -2.926016E-8 DWB = -1.106451E-8 VOFF = -0.1187911
+NFACTOR = 1.1594321 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 8.704569E-3
+ETAB = -0.0236377 DSUB = 0.4527694 PCLM = 0.7208713
+PDIBLC1 = 2.164585E-3 PDIBLC2 = 1.296132E-5 PDIBLCB = -6.762296E-4
+DROUT = 0.0272751 PSCBE1 = 7.77449E9 PSCBE2 = 1.939984E-9
+PVAG = 0 DELTA = 0.01 RSH = 5.1
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 5.07E-10 CGSO = 5.07E-10
+CGBO = 1E-9 CJ = 1.054616E-3 PB = 0.8664519
+MJ = 0.4213406 CJSW = 1E-10 PBSW = 0.8
+MJSW = 0.5999942 CJSWG = 2.5E-10 PBSWG = 0.8
+MJSWG = 0.5999942 CF = 0 PVTH0 = -6.465101E-4
+PRDSW = 31.5603045 PK2 = 1.885034E-3 WKETA = 4.119477E-3
+LKETA = -0.0208437 )

A.8. Parámetros de 0.35µm, IBM Semicon-


ductor
T83Z SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Jul 8/08
LOT: T83Z WAF: 1009
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 8E-9
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = 0.5349718
+K1 = 0.588755 K2 = 0.0254668 K3 = -3
+K3B = 1.6858089 W0 = 1.227498E-8 NLX = 8.642006E-8
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.761841 DVT1 = 0.4987073 DVT2 = -0.2316534
+U0 = 479.1497581 UA = 1E-13 UB = 2.353051E-18
+UC = 7.582383E-11 VSAT = 1.27075E5 A0 = 1.3248394
+AGS = 0.2242515 B0 = -5.311696E-8 B1 = 0
A.8. PARÁMETROS DE 0.35µM, IBM SEMICONDUCTOR 123

+KETA = -6.994863E-3 A1 = 1.184372E-4 A2 = 0.8678046


+RDSW = 907.3368938 PRWG = -1.04682E-11 PRWB = -0.0477616
+WR = 1 WINT = 7.928088E-8 LINT = 6.60445E-8
+DWG = -3.468893E-9 DWB = 4.473826E-9 VOFF = -0.15
+NFACTOR = 2.5 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 0.1266613
+ETAB = -0.0158833 DSUB = 0.7671483 PCLM = 0.5244762
+PDIBLC1 = 3.3302E-3 PDIBLC2 = 1.758025E-3 PDIBLCB = 0.1555155
+DROUT = 0.0436747 PSCBE1 = 4.19851E8 PSCBE2 = 1.1938E-5
+PVAG = 0.1158939 DELTA = 0.01 RSH = 4.9
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 3E-10 CGSO = 3E-10
+CGBO = 1E-10 CJ = 1.01656E-3 PB = 0.8
+MJ = 0.3550748 CJSW = 1.268097E-10 PBSW = 0.8315671
+MJSW = 0.1133079 CJSWG = 1.64E-10 PBSWG = 0.8315671
+MJSWG = 0.1133079 CF = 0 PVTH0 = -5.952237E-3
+PRDSW = -38.3128166 PK2 = -3.87392E-4 WKETA = 2.593342E-3
+LKETA = -0.0102902 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 8E-9
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = -0.4285512
+K1 = 0.924242 K2 = -0.023738 K3 = 0.0998258
+K3B = 3.2899638 W0 = 1E-8 NLX = 1E-9
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.5151769 DVT1 = 0.4419519 DVT2 = -0.2999229
+U0 = 115.1258843 UA = 1.225988E-9 UB = 1.560658E-21
+UC = -1E-10 VSAT = 1.308017E5 A0 = 0.9337807
+AGS = 0.1433303 B0 = 1.362185E-6 B1 = 5E-6
+KETA = 5.672277E-3 A1 = 0.0265845 A2 = 0.3
+RDSW = 2.638992E3 PRWG = -0.097254 PRWB = -0.2798661
+WR = 1 WINT = 6.932152E-8 LINT = 4.824682E-8
+DWG = -1.15594E-8 DWB = 5.681573E-10 VOFF = -0.0361606
+NFACTOR = 0.8753188 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 0.3791709
+ETAB = -0.1855246 DSUB = 1 PCLM = 1.1068997
+PDIBLC1 = 5.409427E-3 PDIBLC2 = 1.831529E-3 PDIBLCB = 7.871057E-3
+DROUT = 0.1340268 PSCBE1 = 8E10 PSCBE2 = 8.522193E-10
+PVAG = 0.0150018 DELTA = 0.01 RSH = 3.4
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 3E-10 CGSO = 3E-10
+CGBO = 1E-10 CJ = 8.416388E-4 PB = 0.7374487
+MJ = 0.3318444 CJSW = 8E-13 PBSW = 0.7500384
+MJSW = 0.91 CJSWG = 6.4E-11 PBSWG = 0.7500384
+MJSWG = 0.91 CF = 0 PVTH0 = 5.98016E-3
+PRDSW = 14.8598424 PK2 = 3.73981E-3 WKETA = -7.104992E-3
+LKETA = -0.0222588 )
124 APÉNDICE A. PARÁMETROS DE SIMULACIÓN

A.9. Parámetros de 0.50µm, IBM Semicon-


ductor
T65P SPICE BSIM3 VERSION 3.1 PARAMETERS
SPICE 3f5 Level 8, Star-HSPICE Level 49, UTMOST Level 8
DATE: Aug 11/06
LOT: T65P WAF: 2001
Temperature parameters=Default
.MODEL CMOSN NMOS ( LEVEL = 49
+VERSION = 3.1 TNOM = 27 TOX = 9.4E-9
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = 0.5937939
+K1 = 0.8559617 K2 = -0.0513295 K3 = -1.5882503
+K3B = 0.7791838 W0 = 1E-8 NLX = 1.701345E-7
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.7748499 DVT1 = 0.3435219 DVT2 = -0.2773813
+U0 = 440.213356 UA = 1.004424E-13 UB = 1.888848E-18
+UC = 5.204194E-11 VSAT = 1.474452E5 A0 = 0.7444561
+AGS = 0.1340889 B0 = 1.455423E-6 B1 = 5E-6
+KETA = 3.97852E-3 A1 = 1.625976E-4 A2 = 0.6451393
+RDSW = 1.392288E3 PRWG = 1.991091E-14 PRWB = -0.0841459
+WR = 1 WINT = 1.085578E-7 LINT = 8.790999E-8
+DWG = -1.196233E-8 DWB = -4.997169E-9 VOFF = -0.15
+NFACTOR = 2.5 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 0.1935584
+ETAB = -0.0481601 DSUB = 0.7649277 PCLM = 0.8375943
+PDIBLC1 = 1.63946E-3 PDIBLC2 = 5.174122E-3 PDIBLCB = -0.0143535
+DROUT = 0.0618671 PSCBE1 = 2.995561E8 PSCBE2 = 2.040162E-6
+PVAG = 1.766095E-3 DELTA = 0.01 RSH = 4.4
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 3.54E-10 CGSO = 3.54E-10
+CGBO = 7E-9 CJ = 8.707971E-4 PB = 0.8007133
+MJ = 0.3801167 CJSW = 1E-12 PBSW = 0.8
+MJSW = 0.9099502 CJSWG = 1.64E-10 PBSWG = 0.8
+MJSWG = 0.9099502 CF = 0 PVTH0 = 7.532778E-3
+PRDSW = -316.8520397 PK2 = -7.285099E-3 WKETA = -0.0138782
+LKETA = -0.0332824 )

.MODEL CMOSP PMOS ( LEVEL = 49


+VERSION = 3.1 TNOM = 27 TOX = 9.4E-9
+XJ = 1.5E-7 NCH = 1.7E17 VTH0 = -0.5626935
+K1 = 0.8590739 K2 = -0.1 K3 = 0
+K3B = 3.5926688 W0 = 1E-8 NLX = 1E-9
+DVT0W = 0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.7787218 DVT1 = 0.3815193 DVT2 = -0.3
+U0 = 141.0319298 UA = 1.972665E-9 UB = 2.574014E-21
+UC = -3.53236E-11 VSAT = 1.506598E5 A0 = 0.6779443
+AGS = 0.2104972 B0 = 1.491067E-6 B1 = 5E-6
+KETA = -0.0244694 A1 = 3.740238E-4 A2 = 0.4428035
+RDSW = 3E3 PRWG = -0.0587204 PRWB = -0.1484781
+WR = 1 WINT = 8.391004E-8 LINT = 1.085068E-7
+DWG = -1.537537E-8 DWB = 1.086087E-8 VOFF = -0.0361606
+NFACTOR = 0.8753188 CIT = 0 CDSC = 2.4E-4
+CDSCD = 0 CDSCB = 0 ETA0 = 0
+ETAB = -0.1187015 DSUB = 1 PCLM = 1.5568892
A.9. PARÁMETROS DE 0.50µM, IBM SEMICONDUCTOR 125

+PDIBLC1 = 0.0298699 PDIBLC2 = 3.253612E-3 PDIBLCB = -0.1


+DROUT = 0.2769531 PSCBE1 = 7.652872E9 PSCBE2 = 5.719075E-10
+PVAG = 0 DELTA = 0.01 RSH = 2.9
+MOBMOD = 1 PRT = 0 UTE = -1.5
+KT1 = -0.11 KT1L = 0 KT2 = 0.022
+UA1 = 4.31E-9 UB1 = -7.61E-18 UC1 = -5.6E-11
+AT = 3.3E4 WL = 0 WLN = 1
+WW = 0 WWN = 1 WWL = 0
+LL = 0 LLN = 1 LW = 0
+LWN = 1 LWL = 0 CAPMOD = 2
+XPART = 0.5 CGDO = 3.61E-10 CGSO = 3.61E-10
+CGBO = 7E-9 CJ = 9.64141E-4 PB = 0.8000055
+MJ = 0.2499898 CJSW = 8.001006E-13 PBSW = 0.5
+MJSW = 0.999 CJSWG = 6.4E-11 PBSWG = 0.5
+MJSWG = 0.999 CF = 0 PVTH0 = 5.98016E-3
+PRDSW = 14.8598424 PK2 = 3.73981E-3 WKETA = 5.45809E-3
+LKETA = -5.353868E-3)
126 APÉNDICE A. PARÁMETROS DE SIMULACIÓN

Esta hoja se dejo en blanco intencionalmente.


Apéndice B

Publicaciones

En este anexo se muestran las publicaciones que han sido desarrolladas


en este trabajo de Tesis.

B.1. Publicaciones en congresos


E. Tlelo-Cuautle, M.A. Duarte-Villaseñor. Automatic Synthesis of
CMOS Compatible CCII+s. IEEE NEWCAS-TAISA, Montreal, June
22-25, 2008.

B.2. Publicaciones en revistas


E. Tlelo-Cuautle, M.A. Duarte-Villaseñor, I. Guerra-Gómez. Automat-
ic synthesis of VFs and VMs by applying genetic algorithms. Circuits,
Systems and Signal Processing, Vol. 27, No. 3, pp. 391-403, June 2008.

E. Tlelo-Cuautle, D. Moro-Frı́as, C. Sánchez-López, M.A. Duarte-


Villaseñor. Synthesis of CCII-s by superimposing VFs and CFs through
genetic operations. IEICE Electronics Express, Vol. 5, No. 11, pp. 411-
417, June 2008.

E. Tlelo-Cuautle, I. Guerra-Gómez, M.A. Duarte-Villaseñor, Luis G.


De la Fraga, G. Flores-Becerra, G. Reyes-Salgado, C.A. Reyes-Garcı́a,
G. Rodrı́guez-Gómez. Applications of evolutionary algorithms in the
design automation of analog integrated circuits. Journal of Applied
Sciences, Vol. 10, pp. 1859-1872, July 2010.

127
128 APÉNDICE B. PUBLICACIONES

B.3. Publicaciones en capı́tulo de libro


E. Tlelo-Cuautle, I. Guerra-Gómez, C.A. Reyes-Garcı́a, M.A. Duarte-
Villaseñor. Synthesis of Analog Circuits by Genetic Algorithms and
their Optimization by Particle Swarm Optimization. In Intelligent Sys-
tems for Automated Learning and Adaptation: Emerging Trends and
Applications, IGI Global, 2010.

M.A. Duarte-Villaseñor, V.H. Carbajal-Gómez, E. Tlelo-Cuautle. De-


sign of current-feedback operational amplifiers and their application to
chaos-based secure communications. In Analog Circuits: Applications,
Design and Performance, NOVA Science Publishers, Inc., 2011.
Apéndice C

Manual de usuario

El software realizado se encuentra en la carpeta nombrada SBGU (Sı́nte-


sis de Bloques de Ganancia Unitaria). Esta debe estar dentro de la carpeta
work de Matlab.
Contenido de este manual:
1. Descripción de los archivos contenidos de la carpeta SBGU.

2. Antes de ejecutar el programa.

3. Ejecución del programa CM.

4. Ejecución del programa VF.

5. Ejecución del programa CF.

6. Ejecución del programa VM.

7. Notas extras.

C.1. Descripción de los archivos contenidos


de la carpeta SBGU
1. Programa inicial.m. Contiene las variables de ejecución del algoritmo:
Tamaño de la población, porcentaje de mutación, número máximo de
generaciones, error mı́nimo buscado. También en este se especifica que
simulador y tecnologı́a se utilizara y si se desea graficar las iteraciones
del algoritmo VS tiempo del PC o no.

2. Programas varCF.m, varCM.m, varVF.m y varVM.m. Estos contienen


los valores de la ganancia e impedancias deseadas por el usuario.

129
130 APÉNDICE C. MANUAL DE USUARIO

3. Programas CF.m, CM.m, VF.m y VM.m. Estos son los programas de


búsqueda de topologı́as, NO deben ser alterados por el usuario.
4. Carpeta tec. Esta carpeta contiene las tecnologı́as a usar:
AMI Semiconductor: 0.35µm, 0.50µm.
IBM Semiconductor: 0.18µm, 0.25µm, 0.35µm, 0.50µm.
Taiwan Semiconductor (TSMC): 0.18µm, 0.25µm, 0.35µm.

5. Carpeta funciones. Contiene las funciones y los subprogramas que uti-


lizan los programas de sı́ntesis de topologı́as.

6. Carpeta archivos. Contiene archivos que serán utilizados por SPICE.

7. Carpeta salidas. En esta se generaran los netlist para SPICE y sus


resultados de simulación, al finalizar la búsqueda el mejor individuo
esta con el nombre de CF1, CM1, VF1 o VM1 según el programa
ejecutado.

C.2. Antes de ejecutar el programa


1. Se coloca la carpeta SBGU en la carpeta work de matlab, ejemplo:
C:\MATLAB7\work\SBGU

2. Se abre el programa inicial.m, se elige el simulador a utilizar: Top-


SPICE, HSPICE o Tanner SPICE. Se elige la tecnologı́a a utilizar
por el simulador. Se declaran si se desea graficar las iteraciones o no. Si
se desea, se cambian las variables del algoritmo genético: el tamaño de
población, porcentaje de mutación, número máximo de generaciones y
el error mı́nimo buscado. Se guardan los cambios y se cierra el progra-
ma.
3. Se abre el archivo direcciones.m (el cual esta contenido en la carpeta
funciones).
Se escriben las direcciones de los SPICE a utilizar: TopSPICE,
Tanner SPICE y HSPICE.
Se escriben las direcciones de las tecnologı́as de simulación a usar
en su ordenador, ejemplo:
C:\MATLAB7\work\SBGU\tec\ami035.lib.
Se corrigen, si es necesario, las direcciones de los archivos.

Al finalizar se guardan los cambios y se cierra el archivo.


C.3. EJECUCIÓN DEL PROGRAMA CM. 131

C.3. Ejecución del programa CM.


1. Se abre el archivo varCM.m; en este se colocan los valores de la ganancia
e impedancias deseadas.

2. Se abre el Matlab y se escribe en el Command Window:


>> CM
Se oprime la tecla enter y el programa se ejecuta.

3. Al terminar de ejecutarse (después de unos 5 minutos) se muestra el


número de generaciones que realizo, el número del cromosoma del mejor
individuo y su error :
Generacion MejorIndividuo Error
Donde el número del cromosoma del mejor individuo esta dividido entre
1e6 (1000000), esto es con el fin de poder desplegarlo en la pantalla.

4. El netlist del mejor cromosoma se encuentra en la carpeta salida con


el nombre de: CM1. Se puede verificar que es la topologı́a encontrada
porque el archivo comienza con el número de cromosoma y este debe
de coincidir con el último valor de Generacion MejorIndividuo Error
desplegado en el Command Window.

C.4. Ejecución del programa VF.


1. Se abre el archivo varVF.m; en el se colocan los valores de la ganancia
e impedancias deseadas. Además, se selecciona el archivo que describe
cuantos y como son colocados los nullators para describir el VF ideal;
solo uno debe estar activo y los demás comentados con el signo % al
inicio de la lı́nea. Si todos están comentados el programa no correrá, si
más de uno esta activo el programa ejecutara el VF ideal descrito por la
lı́nea que este mas abajo. Se pueden identificar los archivos ideales de los
norators al leer los archivos: m1 n.m, m2 Pnn.m,. . . , m4 SPnnnn.m;
que están en la carpeta funciones.

2. Se abre el Matlab y se escribe en el Command Window:


>> VF
Se oprime la tecla enter y el programa se ejecuta.

3. Al terminar de ejecutarse se muestra el número de generaciones que


realizo, el número del cromosoma del mejor individuo y el error:
Generacion MejorIndividuo Error
132 APÉNDICE C. MANUAL DE USUARIO

Donde el número del cromosoma del mejor individuo esta dividido entre
1e6 (1000000), esto es con el fin de poder desplegarlo en la pantalla.

4. El netlist del mejor cromosoma se encuentra en la carpeta salida con


el nombre de: VF1. Se puede verificar que es la topologı́a encontrada
porque el archivo comienza con el número de cromosoma y este debe
de coincidir con el último valor de Generacion MejorIndividuo Error
desplegado en el Command Window.

C.5. Ejecución del programa CF.


1. Se abre el archivo varCF.m en este se colocan los valores de la ganancia
e impedancias deseadas. Además, se selecciona el archivo que describe
cuantos y como son colocados los norators para describir el CF ideal;
solo uno debe estar activo y los demás comentados con el signo % al
inicio de la lı́nea. Si todos están comentados el programa no correrá, si
más de uno esta activo el programa ejecutara el CF ideal descrito por la
lı́nea que este más abajo. Se pueden identificar los archivos ideales de los
norators al leer los archivos: m1 n.m, m2 Pnn.m,. . . , m4 SPnnnn.m;
que están en la carpeta funciones.

2. Se abre el Matlab y se escribe en el Command Window:


>> CF
Se oprime la tecla enter y el programa se ejecuta.

3. Al terminar de ejecutarse (después de unos 5 minutos) se muestra el


número de generaciones que realizo, el número del cromosoma del mejor
individuo y el error :
Generacion MejorIndividuo Error
Donde el número del cromosoma del mejor individuo esta dividido entre
1e6 (1000000), esto es con el fin de poder desplegarlo en la pantalla.

4. El netlist del mejor cromosoma se encuentra en la carpeta salida con


el nombre de: CF1. Se puede verificar que es la topologı́a encontrada
porque el archivo comienza con el número de cromosoma y este debe
de coincidir con el último valor de Generacion MejorIndividuo Error
desplegado en el Command Window.
C.6. EJECUCIÓN DEL PROGRAMA VM. 133

C.6. Ejecución del programa VM.


1. Se abre el archivo varVM.m; en el se colocan los valores de la ganancia
e impedancias deseadas. Además, se selecciona el archivo que describe
cuantos y como son colocados los nullators para describir el VM ideal;
solo uno debe estar activo y los demás comentados con el signo % al
inicio de la lı́nea. Si todos están comentados el programa no correrá, si
más de uno esta activo el programa ejecutara el VF ideal descrito por
la lı́nea que este más abajo.
2. Se abre el Matlab y se escribe en el Command Window:
>> VM
Se oprime la tecla enter y el programa se ejecuta.
3. Al terminar de ejecutarse se muestra el número de generaciones que
realizo, el número del cromosoma del mejor individuo y el error:
Generacion MejorIndividuo Error
Donde el número del cromosoma del mejor individuo esta dividido entre
1e6 (1000000), esto es con el fin de poder desplegarlo en la pantalla.
4. El netlist del mejor cromosoma se encuentra en la carpeta salida con
el nombre de: VM1. Se puede verificar que es la topologı́a encontrada
porque el archivo comienza con el número de cromosoma y este debe
de coincidir con el último valor de Generacion MejorIndividuo Error
desplegado en el Command Window.

C.7. Notas Extras


Si se desea hacer alguna(s) modificación(es) al programa se debe consi-
derar:
1. Los archivos que describen cómo están colócalos los nullators y norators
(m1 n.m, m2 Pnn.m,. . . , m4 SPnnnn.m) NO deben ser modificados.
Solo se abren para saber como es la descripción de nullators y norators
y se escoje la que se utilizara.
2. Al ejecutar el programa siempre borra todas las variables actuales del
Workspace y deja las de la nueva corrida. Ası́ que si se desea conservar
algunos datos se debe tener esto previsto, guardando los anteriores en
un archivo .mat.
3. Si se desea cambiar el valor de Vdd, el valor de la fuente de corriente de
polarización, las dimensiones W y L de los transistores o el valor de la
134 APÉNDICE C. MANUAL DE USUARIO

carga de la salida es necesario modificar los documentos de la carpeta


archivos. Esta carpeta contiene doce archivos como se muestra en el
cuadro C.1. Solo modifique el archivo del UGC a encontrar.

Cuadro C.1: Documentos de la carpeta archivos.

TANNER-SPICE TOP-SPICE H-SPICE


CM tanCM.sp topCM.cir hspCM.sp
VF tanVF.sp topVF.cir hspVF.sp
CF tanCF.sp topCF.cir hspCF.sp
VM tanVM.sp topVM.cir hspVM.sp
Índice de figuras

1.1. (a) VF, (b) CF, (c) VM, (d) CM, (e) CCII+, (f) CFOA. . . . 3

2.1. (a) todos los individuos, (b) se califican del mejor al peor, (c)
el método de selección forma las parejas que serán los padres
de la próxima generación. . . . . . . . . . . . . . . . . . . . . 18
2.2. Operador de cruza de punto sencillo. . . . . . . . . . . . . . . 20
2.3. Ejemplo de la cruza en circuitos CMOS. (a) y (b) padres, (c)
y (d) descendientes. . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4. Operación de mutación de parámetros binarios. . . . . . . . . 23
2.5. Circuito VF descrito con su cromosoma. . . . . . . . . . . . . 24
2.6. Circuitos resultantes de la operación de mutación al VF de la
figura 2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.7. Operación de elitismo utilizada en esta tesis. . . . . . . . . . . 26
2.8. Estructura general de los algoritmos genéticos. . . . . . . . . . 29
2.9. Estructura general de los algoritmos que se basan en GP. . . . 32

3.1. Nullor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2. Modelos de VFs usando (a) uno y (b) cuatro nullators. . . . . 37
3.3. Modelo del MOSFET usando el elemento nullor. . . . . . . . . 37
3.4. Diagrama de Flujo del programa que sintetiza circuitos analógi-
cos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5. Modelos ideales de CFs usando uno y dos norators. . . . . . . 40
3.6. Modelos ideales de CFs usando tres norators. . . . . . . . . . . 40
3.7. Modelos ideales de CFs usando cuatro norators. . . . . . . . . 41
3.8. (a) Gráfica y (b) contorno de F1(x,y). . . . . . . . . . . . . . . 43
3.9. (a) Gráfica y (b) contorno de F2(x,y). . . . . . . . . . . . . . . 44
3.10. (a) Gráfica y (b) contorno de F3(x,y). . . . . . . . . . . . . . . 44
3.11. Gráfica de la Ec. (3.4), con gain = 1. . . . . . . . . . . . . . . 49
3.12. Gráfica de la Ec. (3.5), donde BW = 104 . . . . . . . . . . . . . 49
3.13. Gráfica de la Ec. (3.6), donde Z = 20KΩ. . . . . . . . . . . . 51
3.14. Gráfica de la Ec. (3.7), donde Z = 250Ω. . . . . . . . . . . . . 51

135
136 ÍNDICE DE FIGURAS

3.15. Medida de aptitud de los CFs del cuadro 3.3, prueba 1. . . . . 53


3.16. Medida de aptitud de los CFs del cuadro 3.3, prueba 2. . . . . 53
3.17. Adición de un elemento P a un elemento O: (a) en el nodo i,
(b) en el nodo j y (c) entre los nodos i y j. . . . . . . . . . . . 55
3.18. Modelo de pares O-P para el cromosoma 336860. . . . . . . . 58
3.19. Polarización de la figura 3.18 según los genBias del cuadro 3.9. 59
3.20. (a) Modelo ideal de un VF conocido y (b)circuito VF repre-
sentado por el cromosoma 336860. . . . . . . . . . . . . . . . . 59
3.21. Circuito CF que corresponde al cromosoma 99324. . . . . . . . 62
3.22. Celdas genéricas para formar espejos de corriente. . . . . . . . 63
3.23. Circuitos extra para IOU T . . . . . . . . . . . . . . . . . . . . 65
3.24. Modelo de pares O-P para el CM según el genIO=101. . . . . 67
3.25. Modelo de pares O-P para el cromosoma CM 1192. . . . . . . 67
3.26. CM sintetizado con el cromosoma 1192, espejo Cascode. . . . 68
3.27. Representación con nullator y norators de un VM ideal [26, 27]. 68
3.28. Representación de un VM ideal, utilizada en este trabajo. . . . 69
3.29. VMs de la figura 3.28, sintetizando los nullors por MOSFETs. 69
3.30. genIO de los VMs. . . . . . . . . . . . . . . . . . . . . . . . . 70
3.31. VM conocido, su cromosoma es 0000110101. . . . . . . . . . . 73
3.32. Posibles uniones de los bloques de ganancia unitaria. . . . . . 74
3.33. Ejemplo de la unión simple. . . . . . . . . . . . . . . . . . . . 76
3.34. VM con dos salidas. . . . . . . . . . . . . . . . . . . . . . . . . 77
3.35. VF con dos salidas. . . . . . . . . . . . . . . . . . . . . . . . . 78
3.36. CF con dos salidas. . . . . . . . . . . . . . . . . . . . . . . . . 78
3.37. CM con dos salidas. . . . . . . . . . . . . . . . . . . . . . . . . 79
3.38. Ejemplo de CF-CM figura 3.32.(n), al CF se le duplica la salida. 80
3.39. Ejemplo de CM-CM figura 3.32.(p), al primer CM se le duplica
la salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.40. (a) Circuito VF sintetizado en la fig. 3.20; (b) circuito CCII+
su cromosoma es 336860-1192. . . . . . . . . . . . . . . . . . . 82
3.41. (a) CCII- dividido en un bloque VF y un bloque CF; (b) CCII-
ideal, realizado con 4 nullators y 4 norators. . . . . . . . . . . 83
3.42. (a) Circuito VF sintetizado en la fig. 3.20; (b) Circuito CF
sintetizado en la fig. 3.21; (c) CCII- obtenido por la unión de
(a) y (b). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.43. Diagrama a bloques de un CFOA. . . . . . . . . . . . . . . . . 86
3.44. CFOA 336860-1192-336860. . . . . . . . . . . . . . . . . . . . 87

4.1. Evaluación del mejor individuo. . . . . . . . . . . . . . . . . . 92


4.2. Tiempo de ejecución del programa. . . . . . . . . . . . . . . . 92
4.3. Algunos VFs obtenidos con el EA. . . . . . . . . . . . . . . . . 93
ÍNDICE DE FIGURAS 137

4.4. Algunos VFs obtenidos con el EA. . . . . . . . . . . . . . . . . 94


4.5. Cuatro CFs obtenidos con el EA. . . . . . . . . . . . . . . . . 96
4.6. Ejemplo de CFs obtenidos con el EA. . . . . . . . . . . . . . . 97
4.7. Algunos CMs obtenidos con el EA. . . . . . . . . . . . . . . . 99
4.8. Algunos CMs obtenidos con el EA. . . . . . . . . . . . . . . . 100
4.9. Algunos VMs obtenidos con el EA. . . . . . . . . . . . . . . . 102
4.10. CCII+ obtenidos de la combinación del VF 196758 y el CM
69593766. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.11. Dos CCII+s obtenidos con la combinación de UGC. . . . . . . 104
4.12. CCII- obtenido con la combinación del VF 67599 y el CF
4610874. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.13. CFOA obtenido de la combinación del VF 196758 y el CM
69593766. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.14. Dos CFOAs obtenidos de la combinación de UGCs encontra-
dos con el EA. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
138 ÍNDICE DE FIGURAS

Esta hoja se dejo en blanco intencionalmente.


Índice de cuadros

2.1. Trabajos de sı́ntesis de circuitos analógicos usando EAs. . . . . 9


2.2. Continuación del cuadro 2.1. . . . . . . . . . . . . . . . . . . . 10
2.3. Herramientas de generación de topologı́as. . . . . . . . . . . . 11
2.4. Continuación del cuadro 2.3. . . . . . . . . . . . . . . . . . . . 12

3.1. Funciones de prueba utilizadas. . . . . . . . . . . . . . . . . . 45


3.2. Resultados de las pruebas al GA realizado. . . . . . . . . . . . 47
3.3. Individuos de pueba para la Ec. (3.3). Valores de ganancia,
ancho de banda e impedancias de posibles circuitos CF. . . . . 52
3.4. Codificación del genSS a partir de la figura 3.17. . . . . . . . . 55
3.5. Codificación del genSMos. . . . . . . . . . . . . . . . . . . . . 55
3.6. GenBias: Bits de asignación para agregar fuentes de corriente. 56
3.7. GenCM: Sı́ntesis de fuentes de corriente por CM. . . . . . . . 56
3.8. Número de bits para cada cromosoma VF. . . . . . . . . . . . 57
3.9. Codificación del cromosoma 336860. . . . . . . . . . . . . . . . 58
3.10. GenBias: gen de fuentes de polarización. . . . . . . . . . . . . 60
3.11. Número de bits para cada cromosoma CF. . . . . . . . . . . . 61
3.12. Codificación del cromosoma CF: 99324. . . . . . . . . . . . . . 62
3.13. GenBias: Bits de polarización del circuito CM. . . . . . . . . . 64
3.14. GenIO, nodos de entrada y salida del CM. . . . . . . . . . . . 64
3.15. Descripción del genN. . . . . . . . . . . . . . . . . . . . . . . . 66
3.16. Cromosoma CM, dividido en 3 genes. . . . . . . . . . . . . . . 66
3.17. Codificación del cromosoma CM 1192. . . . . . . . . . . . . . 67
3.18. genBias del VM. . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.19. Codificación del genIO. . . . . . . . . . . . . . . . . . . . . . . 72
3.20. Cromosoma de un VM. . . . . . . . . . . . . . . . . . . . . . . 72
3.21. Cromosoma de los circuitos de la figura 3.32, por unión simple. 75
3.22. Cromosomas de los circuitos donde se duplica la salida. . . . . 77
3.23. Cromosoma de los circuitos de la figura 3.32.(n) y (p). . . . . 79
3.24. Cromosoma de los circuitos CCII+ y ICCII+, por creación del
nodo Z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

139
140 ÍNDICE DE CUADROS

3.25. Cromosoma CCII+, por combinación de nullatos-norators. . . 84


3.26. Cromosoma de un CFOA. . . . . . . . . . . . . . . . . . . . . 86

4.1. Programas realizados en MatLab. . . . . . . . . . . . . . . . . 90


4.2. Respuesta en CA de los circuitos VF obtenidos. . . . . . . . . 91
4.3. Respuesta en CA de los circuitos CF obtenidos. . . . . . . . . 95
4.4. Respuesta en CA de los circuitos CM obtenidos. . . . . . . . . 98
4.5. Respuesta en CA de los circuitos VM obtenidos. . . . . . . . . 101

C.1. Documentos de la carpeta archivos. . . . . . . . . . . . . . . . 134


Bibliografı́a

[1] Rutenbar Rob A, Georges G. E. Gielen, and Brian A. Antao. Computer-


Aided Design of Analog Integrated Circuits and Systems. IEEE Press.
USA. 2002.

[2] Salem Zebulum, Ricardo; Marco Aurelio C. Pacheco, y Marley Maria B.


R. Vellasco. Evolutionary Electronics, Automatic Design of Electronic
Circuits and Systems by Genetic Algorithms. Ed. CRC Press. USA.
2002.

[3] Martens, E. and G. Gielen. Classification of analog synthesis tools based


on their architecture selection mechanisms. Integration the VLSI jour-
nal, Elsevier, No.41, pp. 238-252. 2008.

[4] Mazumder, Pinaki; Elizabeth M. Rudnick. Genetic Algorithms for VLSI


Design, Layout & Test Automation. Ed. Prentice Hall PTR. USA. 1999.

[5] Rob A. Rutenbar, Georges G. E. Gielen, and Jaijeet Roychowdhury.


Hierarchical Modeling, Optimization, and Synthesis for System-Level
Analog and RF Designs. In Proceedings of the IEEE. Vol.95, No.3, pp.
640-669. March 2007.

[6] Mattiussi, Claudio. Evolutionary synthesis of analog networks. Doctoral


thesis. Laboratory of Intelligent Systems, Institute of System Engineer-
ing Ecole Polytechnique Federale de Lausanne (EPFL). 2005.

[7] Koza John R, Jones Lee W, Keane Martin A, Streeter Matthew J, Al-
Sakran Sameer H. Toward automated design of industrial-strength ana-
log circuits by means of genetic programming. In Genetic Programming
Theory and Practice II. Boston: Kluwer Academic Publishers Chapter
8, pp. 121-142. 2004.

[8] Masanori Natsui, Yoshiaki Tadokoro, Naofumi Homma, Takafumi Aoki,


and Tatsuo Higuchi. Synthesis of current mirrors based on evolution-

141
142 BIBLIOGRAFÍA

ary graph generation with transmigration capability. IEICE Electronics


Express. Vol.4, No.3, pp. 88-93. 2007.

[9] Gielen Georges. Design methodology and model generation of complex


analog blocks. In Analog Circuits Desing, Eds. Michiel Steyaert, Johan
H. Huijsing and Arthur H.M. van Roermund. Springer. 2006.

[10] Tathagato Rai Dastidar, P. P. Chakrabarti, and Partha Ray. A synthesis


system for analog circuits based on evolutionary search and topological
reuse. IEEE Transactions on Evolutionary Computation. Vol.9, No.2,
pp. 211-224. April 2005.

[11] Varum Aggarwal. Evolving Sinusoidal Oscillators Using Genetic Algo-


rithms. Proc. The 2003 NASA/DoD Conference on Evolvable Hardware.
Chicago, USA, pp. 67-76. 2003.

[12] Feng Wang,Yuanxiang Li, and Kangshun Li. Automated analog circuit
design using two-layer genetic programming. In Applied Mathematics
and Computation. Ed. ELSEVIER. Vol.185, No.2, pp. 1087-1097. Feb
2007.

[13] Shoou-Jinn Chang, Hao-Sheng Hou, and Yan-Kuin Su. Automated Pas-
sive Filter Synthesis Using a Novel Tree Representation and Genetic
Programming. IEEE transactions on Evolutionary Computation. Vol.10,
No.1, pp. 93-100. February 2006.

[14] Aggarwal Varun. Novel Canonic Current Mode DDCC Based SRCO
Synthesized Using a Genetic Algorithm. Analog Integrated Circuits Sig-
nal Processing, No.40, pp. 83-85. 2004.

[15] Rutenbar, R.A., L.R. Carley, P.C. Maulik, E.S. Ochotta, T. Mukherjee.
Synthesis and Layout for Analog and Mixed-Signal ICs in the ACA-
CIA System. Analog Circuit Desing, Eds. J.H. Huijsing, R.Y. Van de
Plassche, W.M.C. Sansen. Kluwer Academic Publishers, Netherlands,
pp. 127-146. 1996.

[16] Ochotta, E.S., Rob A. Runtenbar, L.R. Carley. Synthesis of High-


Performance Analog Circuits in ASTRX/OBLX. In DAC 94 Procedings
of the 31st annual Design Automation Conference. 1994.

[17] Grimbleby James B., Automatic analogue circuit synthesis using genetic
algorithms. IEEE Proc. Circuits Devices Syst., Vol.147, No.6, pp. 319-
323. Dec. 2000.
BIBLIOGRAFÍA 143

[18] Hajime Shibata, and Nobuo Fujii. Analog circuit synthesis by superim-
posing of sub-circuits. IEEE ISCAS, Vol.V, pp. 427-430. 2001.
[19] Torres-Papaqui L., Torres-Muñoz D. y Tlelo-Cuautle E. Synthesis of VFs
and CFs by Manipulation of Genetic Cells. Analog Integrated Circuits
and Signal Processing. Vol.46, No.2, pp. 99-102. 2006.
[20] Somaya Kayed, Ramy Iskander, Sami Moussa, and Hani F. Ragai. Ge-
netic algorithms based technology migration of 2nd generation current
conveyors. 2002.
[21] Tlelo-Cuautle, E. and, M.A. Duarte-Villaseñor, Evolutionary electron-
ics: automatic synthesis of analog circuits by GAs, in Success in Evo-
lutionary Computation, Series: Studies in Computational Intelligence,
Vol.92, Chapter 8, pp. 165-188, EDs. Ang Yang; Yin Shan; Lam Thu
Bui. Springer-Verlag, Berlin. 2008.
[22] Tlelo-Cuautle E., Torres-Muñoz D., and Torres-Papaqui L. On the com-
putational synthesis of CMOS voltage followers. IEICE Transactions on
Fundamentals of Electronics, Communications and Computer Sciences.
Vol.E88-A, No.12, pp. 3479-3484, 2005.
[23] Patt Boonyaporn and Varakorn Kasemsuwan. A High Performance Class
AB CMOS Rail to Rail Voltage Follower. IEEE ASIA-Pacific Conference
on ASIC 2002 (AP-ASIC), pp.161-163. 2002.
[24] Soliman, Ahmed M. Applications of voltage and current unity gain cells
in nodal admittance matrix expansion. In IEEE Circuits and Systems
Magazine. Vol.9, No.4, pp. 29-42. Dec. 2009.
[25] Palmesano, Giuseppe; Gaetano Palumbo, and Salvatore Pennisi. CMOS
Current Amplifiers. Kluwer Academic Publishers. USA, 1999.
[26] Awad I.A., and A. M. Soliman. On the Voltage Mirrors and the Current
Mirrors. Analog Integrated Circuits and Signal Processing. Vol.32, pp.
79-81. 2002.
[27] Inas A. Awad, and Ahmed M. Soliman. Inverting second generation
current conveyors: the missing building blocks, CMOS realizations and
applications. International Journal of Electronics. Vol.86, No.4, pp. 413-
432. April 1999.
[28] Hung-Yu Wang, Sheng-Hsiung Chang, Yuan-Long Jeang, Chun-Yueh
Huang. Rearrangement of mirror elements. Analog Integr Circ Sig Pro-
cess Vol 49, pp. 87-90. 2006.
144 BIBLIOGRAFÍA

[29] Sedra A. S., Roberts G. W., and Gohn F. The current conveyor: history,
progress and new result. IEE proceedings, Vol.137. No.2. pp. 78-86. April
1990.

[30] Saad, R.A., and Soliman, A.M. Use of Mirror Elements in the Active De-
vice Synthesis by Admittance Matrix Expansion. In IEEE Transactions
on Circuits and Systems I: Regular Papers, Vol.55, No.9, pp. 2726-2735.
Oct. 2008.

[31] Muhammed A. Ibrahim, and Hakan Kuntman. A CMOS realization of


Inverting second generation current conveyor positive. 5th Nordic Signal
Processing Symposium, October 4-7 2002.
www.norsig.no/norsig2002/Proceedings/papers/cr1055.pdf

[32] Peña Pérez, Aldo. Diseño de CFOAs y su aplicación en filtros. Tesis de


Maestrı́a en Ciencias. Instituto Nacional de Astrofı́sica óptica y Elec-
trónica. Tonantzintla, Puebla, México, 2006.

[33] Coello Coello C.A., Van Veldhuizen D.A. and, G.B. Lamont. Evolution-
ary Algorithms for Solving Multi-Objective Problems. Kluwer Academic
Publishers. USA. 2001.

[34] Lahoz-Beltrán, Rafael. Bioinformática. Simulación, vida artificial e in-


teligencia artificial. Ed. Dı́az de Santos. España, 2004.

[35] Engelbercht A.P. Fundamentals of computational swarm intelligence.


Wiley, University of Pretoria, South Africa.

[36] Lawrence Davis. Handbook of genetic algorithms. Ed. Van Nostrand


Reinhold. New York, 1991.

[37] Alfonso L. de Garay. Genética de poblaciones y evolución. Compor-


tamiento de los genes en las poblaciones y efectos de las fuerzas de la
evolución biológica. Ed. textos-uap. México, 1988.

[38] Gupta S.S., and Senani R. New voltage-model/current-mode universal


biquad filter using unity-gain cells. International Journal of Electronics,
Vol.93, No.11, pp. 760-775. November 2006.

[39] Senani R., and Gupta S.S. Novel sinusoidal oscillators using only unity-
gain voltage followers and current followers. IEICE Electronics Express,
Vol.1, No.13, pp. 404-409. 2004.
BIBLIOGRAFÍA 145

[40] Gupta S.S., and Senani R. New single resistance controlled oscillator
employing a reduced number of unity-gain cells. IEICE Electronics Ex-
press, Vol.1, No.16, pp. 507-512. 2004.

[41] Samir Ben Salem, Mourad Fakhfakh, Dorra Sellami Masmoudi, Mourad
Loulou, Patrick Loumeau, Nouri Masmoudi. A high performances
CMOS CCII and high frecuency applications. Analog Integr Circ Sing
Procees. Springer Science Business Media, LLC 2006.

[42] Kumar P., and Senani R. A systematic realization of current mode uni-
versal biquad filters. International Journal of Electronics, Vol.93, No.9,
pp. 623-636. September 2006.

[43] Cesare Valenti. A genetic algorithm for discrete tomography reconstruc-


tion. Genetic programming and evolvable machines, Springer. Vol.9,
No.1, pp.85-96. March 2009.

[44] Santos Gordillo, José ángel. Algoritmo genético para el cálculo de φ-


Tensores difusos. Tesis de Maestrı́a en Ciencias. Instituto Nacional de
Astrofı́sica, óptica y Electrónica. Tonantzintla, Puebla, México, 2003.

[45] Vázquez y Montiel, Sergio. Diseño de sistemas ópticos usando algorit-


mos genéticos. Tesis doctoral. Instituto Nacional de Astrofı́sica, óptica
y Electrónica. Tonantzintla, Puebla, México, 1996.

[46] Salazar Romero, Marcos Arturo. Obtención de la fase a partir de la fun-


ción de punto extendido utilizando un algoritmo genético. Tesis doctor-
al. Instituto Nacional de Astrofı́sica, óptica y Electrńica. Tonantzintla,
Puebla, México, 2005.

[47] Wim Kruiskamp, and Domine Leenaerts. DARWIN: CMOS opamp syn-
thesis by means of a genetic algorithm. In DAC 95, 32nd Conference on
Design Automation. pp. 433-438. 1994.

[48] Aida A. El-Sabban, Ramy Iskander, Hisham Haddara, and Hani F. Ra-
gai. GA-Based Analog Synthesis of CMOS Power Amplifiers in the 2.45
GHz Band. Mediterranean Microwave Symposium (MMS’03), Cairo,
Egypt, May 2003.

[49] Ramy Iskander, Mohamed Dessouky, Maie Aly, Mahmoud Magdy, No-
ha Hassan, Noha Soliman, and Sami Moussa. Synthesis of CMOS
Analog Cells Using AMIGO. Design Automation and Test in Europe
(DATE’03), Vol.02, No.2, pp. 20297-20302, March 2003.
146 BIBLIOGRAFÍA

[50] Shuguang Zhao, Licheng Jiao, Jianxun Zhao, and Yuping Wang. Evo-
lutionary Design of Analog Circuits with a Uniform-Design Based
Multi-Objective Adaptive Genetic Algorithm. Proceedings of the 2005
NASA/DoD Conference of Evolution Hardware (EH 05). 2005.

[51] Abhishek Somani, P. P. Chakrabarti, Amit Patra. Mixing Global and


Local competition in Genetic Optimization based Design Space Explo-
ration of Analog circuits. Proceedings of the Design, Automation and
Test in Europe Conference and Exhibition (DATE 05). 2005.

[52] Navid Azizi, and Khoman Phang. Automated Analog Cir-


cuit Design Using Genetic Algorithms. Department of Elec-
trical and Computer Engineering University of Toronto. 2001.
http://www.eecg.toronto.edu/∼kphang/papers/2001/navid GA.pdf

[53] Xuewen Xia, Yuanxiang Li, Weiqin Ying, and Lei Chen. Automated
Design Approach for Analog Circuit Using Genetic Algorithm. In ICCS
2007, Part IV, LNCS 4490, pp. 1124-1130. 2007.

[54] Trent McConaghy, Pieter Palmers, Georges Gielen, Michiel Steyaert.


Simultaneous Multi-Topology Multi-Objective Sizing Across Thousands
of Analog Circuit Topologies. In Proceedings of the 44th annual Design
Automation Conference. pp. 944-947. 2007.

[55] de Sa, Leonardo Bruno, and Antonio Mesquita. Synthesis of Voltage


Follower with Only CMOS Transistors Using Evolutionary Methods.
Second NASA/ESA Conference on Adaptive Hardware and Systems,
pp. 478-485. 2007.

[56] Das Angan, and Ranga Vemuri. ATLAS: An Adaptively formed Hierar-
chical Cell Library based Analog Synthesis Framework. In IEEE Inter-
national Symposium on Circuits and Systems, ISCAS, pp. 2542-2545.
May 2008.

[57] Jingsong He, Mingguo Liu, and Yunbi Chen. A novel real-coded scheme
for evolutionary analog circuit synthesis. In International Workshop on
Intelligent Systems and Applications, ISA 2009. 23-24 May 2009.

[58] Torres Soto Aurora, Ponce de León Sentı́ Eunice, Hernández Aguirre
Arturo, Torres Soto Marı́a, and Dı́az Dı́az Elva. A Robust Evolvable
System for the Synthesis of Analog Circuits. Computación y Sistemas.
Vol.13 No.4, pp.409-421. 2010.
BIBLIOGRAFÍA 147

[59] Duarte Villaseñor, Miguel Aurelio. Sı́ntesis automática de bloques de


ganancia unitaria utilizando algoritmos genéticos. Tesis de Maestrı́a en
Ciencias. Instituto Nacional de Astrofı́sica óptica y Electrónica. To-
nantzintla, Puebla, México, 2007.

[60] Ramensh Harjani, Rob A. Rutenbar, L. Richar Carley. OASYS: Aframe-


work for analog circuit synthesis. In Computer-Aided Design of Analog
Integrated Circuits and Systems. Eds. Rutenbar Rob A, Georges G. E.
Gielen, and Brian A. Antao. IEEE Press. USA, pp. 69-88. 2002.

[61] Paul Harvey, Mohamed I. Elmasry, Bosco Leung. STAIC: An interrac-


tive framework for synthesizing CMOS and BiCMOS analog circuits.
In IEEE Transactions on Computer-Aided Design of Analog Integrated
Circuits and Systems. No.11, pp.1402-1417. Nov 1992.

[62] Prabir C. Mavlik, L. Richard Carley, Rob Rutenbar. Integer program-


ming based topology selection of cell level analog circuit. In IEEE Trans-
actions on Computer-Aided Design of Analog Integrated Circuits and
Systems. No.4, pp.401-412. Apr 1995.

[63] Brian A. Antao, and Arthur J. Brodersen. ARCHGEN: automatic syn-


thesis of analog systems. In IEEE Transaction on Very Large Scale In-
tegration Systems. No.2, pp. 231-244. Jun 1995.

[64] Danica Stefanovic, Maher Kayal and Marc Pastre. PAD: A New Inter-
active Knowledge-Based Analog Design Approach. In Analog Integrated
Circuits and Signal Processing. Vol.42, No.3, pp. 291-299. 2005.

[65] Tlelo Cuautle, E., D. Torres Muñoz, L. Torres Papaqui, and A. Gaona
Hernández. Synthesis of CCII+s and CFOAs by manipulation of VFs
and CMs. IEEE International Behavioral Modeling and Simulation Con-
ference, BMAS 2005. 22-23 September 2005.

[66] Darwin Charles. El origen de las especies. Traducción Guadalupe


Meléndez. 2da. Edición, México, 1985.

[67] Salamanca Fabio. El olvidado monje del huerto, Gregor Johann Mendel.
Ed. PANGEA, México, 1988.

[68] Kumar P., and R. Senani. Bibliography on Nullors and Their Appli-
cations in Circuit Analysis, Synthesis and Design. Analog Integrated
Circuits and Signal Processing, Vol. 33, pp. 65-76. 2002.
148 BIBLIOGRAFÍA

[69] Hanspeter Schmid. Approximating the Universal Active Element. IEEE


Trans. On Circuits and Systems II. Vol.47, No.11, pp.1160-1169. 2000.
Extended abstract in English

Keywords: Electronic Design Automation, Evolutionary Algorithm, Ge-


netic Algorithm, nullor, circuit synthesis, voltage follower, current follower,
voltage mirror, current mirror, current conveyor, CFOA.

Chapter 1. Introduction
History
Currently, the key tools for handling complexity in the design process for
CMOS integrated circuits are generated by the industry of Electronic Design
Automation (EDA); Such tools can accelerate the design process [1, 2, 3, 4, 5].
In the process of IC design, EDA tools focus on automating many tasks that
are routine and repetitive in the analytic design.
In some cases the design of analog blocks can be identified, such as amplifiers,
voltage followers, current mirrors, among others. This blocks can be repeated
and synthesized automatically using EDA methodologies [1, 2, 3, 5]. Thus,
EDA tools increase productivity in the design of ICs, even in the circuit
blocks that are not repetitive. Though, the analog EDA has an important
role in the design process, analog design automation is more complex com-
pared to digital design automation, because the relationships among their
specifications are more complex.
Moreover, analog design requires experience, intuition and creativity; because
it works with a large number of parameters and some complex interactions
among them. Also, due to the huge variety of analog circuits the EDA de-
velopers are looking for a way to automate certain design tasks, as many as
possible [1, 2, 3, 4, 5, 6, 7, 8, 9].
In recent years several researchers have proposed some methods for analog cir-
cuit synthesis. For example in [1] the work is focused on the design of passive
circuits. Furthermore, in order to obtain new analog circuit topologies, novel
synthesis methodologies are very much needed. Recently, some effors have
been oriented to developing tools such as ACACIA [15] and ASTRX/OBLX

149
150 BIBLIOGRAFÍA

[16], works like Grimbleby [17] and Hajime Shibata with Nobuo Fuji [18]. In
this way, either to generate new circuits or to optimize them to find improve-
ments to circuit topologies or for sizing certain topologies EDA tools used
intelligent algorithms such as evolutionary algorithms (EA) [1, 2, 4, 5, 6, 7, 8,
10, 11, 12, 13, 14, 17, 18, 19, 20, 21]. Therefore, analog circuit design is very
adaptable to be performed by applying evolving techniques, as demonstrated
in various publications [1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21].
In this thesis, a new methodology for the binary genetic encoding of unity
gain cells (UGC) such as Voltage Followers (VFs) [19, 22, 23, 24], Current
Followers (CFs) [8, 24, 25] Voltage Mirrors (VMs) [24, 26, 27] and Current
Mirrors (CMs) [24, 25, 28], is introduced. These cells are further combined
among them for the synthesis of active devices having more terminals such
as Current Conveyors (CCs) [25, 29, 30], Inverse CC (ICCs) [25, 27, 30, 31]
and Current Feedback Operational Amplifiers (CFOAs) [25, 32]; whose char-
acteristic equations and symbols are shown in Figure 1.1.
The proposed synthesis approach described in this thesis is based on the
application of evolutionary algorithms (EA) mainly for generating UGCs,
CCs and CFOAs. EAs techniques are based on the mechanisms of natural
selection and biological genetics to operate on the principle of survival of the
fittest. So the EAs are able to generate new design solutions from a popu-
lation of existing solutions and discarding the solutions that have far below
the desired performances [2, 33, 34, 35, 36, 37].

Motivation
Analog circuits such as filters and oscillators have been evolved dur-
ing years [6, 7, 14, 25, 29, 31, 38, 39, 40, 41, 42]. This is because the
search for modifying one or more attributes of previous circuits is a progress
that has not stopped. Likewise analog circuit design has had an evolu-
tion in the circuit topologies: OPAMP, OTA, UGC, and CC, among others
[1, 2, 3, 4, 18, 19, 20, 21, 22, 25, 29, 31]. This is an evolution that continues
to this day, to find topologies with performances nearly close to ideal speci-
fications.
Some recent developments for analog circuits synthesis using intelligent sys-
tems; as for example in the work of Gielen and Rutenbar [1], Salem [2],
Mazumder [4], Mattiussi [6], including [7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20,
21]. They mostly are focused on the passive circuits design or circuits with
operational amplifiers.
At present, there is no generic automatic methods for analog circuit topolo-
gies design. In digital design basic cells are NAND, NOR, NOT, from which
one can generate more complex blocks. In analog design, this Thesis propos-
BIBLIOGRAFÍA 151

es to generate more complex blocks from unity gain cells (UGCs). Thus, the
proposed automatic system design is focused to synthesize devices such as
VFs, VMs, CFs and CMs. This processes will facilitate the search for new
analog circuit topologies with more terminals, such as CCs and CFOAs.
Some applications for UGCs are reported in [38, 39, 40]. There are also many
applications with CCs [29, 41, 42] and, CFOAs [32].

Objectives and Goals


The main objective of this thesis is the introduction of a genetic code
for the representation of analog circuits, such as UGCs. From these UGCs
is proposed the combination of genetic codes for the representation of more
terminal blocks such as CCs and CFOAs.
As secondary goals we have:

To propose a genetic code for representing UGCs topologies.

To develop an EA to generate known and emerging topologies of UGCs.


This requires:

• Development of algorithms of genetic operators: selection, crossover,


mutation and elitism for this type of circuit.
• Development of the algorithm of fitness for the EA, with the aim
of selecting functional topologies according to SPICE simulations.

To find new UGC topologies: VF, CF, VM and, CM.

To propose a genetic code for representing CCs, ICCs, and CFOAs


topologies.

To develop an EA to generate known and new CCs, ICCs, and CFOAs


topologies. Obtain new CCIIs, ICCIIs, and CFOAs topologies.

To develop an algorithm that can evolve UGCs circuits with more ter-
minals, such as CCs and CFOAs.

Chapter 2. Theory
Analog Circuit Synthesis Tools
There are several previous works on analog circuits synthesis tools, includ-
ing: IDAC, OPASYN, OASYS, O-ISAAC, STAIC, ARCHGEN, DARWIN,
152 BIBLIOGRAFÍA

AMGIE and ANACONDA collected in [1]. Some of these sized MOSFETs cir-
cuits [47]; others improve some parameter in the domains of DC, AC and/or
transient of certain circuit topologies [61], and others perform functions with
analog circuits [63].
There are works developed by applying EAs, where the topology is rep-
resented by a chromosome, as shown in the work of Salem [2], Mattiussi
[6] Leenaerts and Kruiskamp [47] and others [4, 5, 7, 8, 9]. However, these
descriptions are focused to optimize circuit parameters in DC, AC and/or
transient. So their encodings represent the size of transistors rather than
topologies [1, 2, 4, 6, 7, 8, 12, 13, 14, 17, 15, 16, 18]. Thus, there is the need
for the development of a different encoding to synthesize circuit topologies,
instead of sizing a fixed one. In this way, this Thesis introduces a binary ge-
netic encoding for the automatic synthesis of analog circuits to find already
known or new topologies.
The proposed synthesis method uses Evolutionary Algorithms, which are
search techniques based on the mechanisms of natural selection and biologi-
cal genetics. The principle of survival of the fittest is the backbone on which
EAs are developed. The EAs simulate the evolutionary process on a computer
in order to solve problems of learning, searching, sorting or optimization.

Analog Circuits Synthesis using EAs

The use of EAs not only focuses to do changes in biological individu-


als, but with these algorithms are suitable in different areas of knowledge,
such as Computing [33], Medicine [43], Math [44], Optics [45, 46], and others
[5, 34, 35]. Some of the works that exist on the analog circuits synthesis tools
are shown in Tables 2.1 and 2.2.
All algorithms shown in Tables 2.1 and 2.2 made analog circuits synthesis
and work through of some form or method of EA.

Topology Generation Tools

Among the works that exist on the analog circuits synthesis tools, are
the focus on the generation of topologies. Some of those works classified as
topology generators are shown in Tables 2.3 and 2.4.
BIBLIOGRAFÍA 153

Evolutionary Algorithms
One of the central paradigms of biology is the principle of evolution, by
which living things undergo change over time. As a result of these changes
are new species of deriving new ones and so on. Among other explanations,
the principle of natural selection proposed by Darwin, from his formulation
represents one of the most popular evolutionary mechanisms [66] whose sig-
nificance extends beyond the realm of biology. The simulation of the evolution
on the PC using the principle of natural selection has not only theoretical
but also practical interest in engineering [33, 34, 35, 36, 37].
Living organisms have a consummate skill in solving problems of adapta-
tion to their environment. Biological organisms obtain their coping skills,
performance and behavior through mechanisms such as evolution and nat-
ural selection [34, 36, 37]. According to the Darwinian model of evolution
of species, all life on our planet can be explained through a set of processes
acting on and within populations, individuals and species; such as: reproduc-
tion, inheritance, mutation, competition and selection of agencies [66].
Natural selection is the process where individuals better adapted to the envi-
ronment are more likely to produce offspring, those who are least able [66]. In
addition to Darwin’s theories are necessary approaches like Genetics mathe-
matics’ Mendel to understand how these processes help in natural selection
[67].
The principle of survival of the fittest is the backbone on which learning tech-
niques that respond to the generic name of Evolutionary Algorithms (EAs),
are developed [33]. The problems to be solved by EAs can fall into a variety of
disciplines including Biology, Engineering, Financial Services and Computer
Science [2, 35, 44, 45, 46].
The terms of Evolutionary Computation, Evolutionary Algorithms, Bio-
Inspired Algorithms, Natural Computing and Artificial Life are relatively
news and represent a major effort to bring researchers to follow the different
aspects of evolution [34].
Among the main EAs: Genetic Algorithms (GA), Evolution Strategies (ES)
and Genetic Programming (GP). They have in common that each rely on re-
production, random variation, competition and selection of individuals with-
in a population contending [34, 35]; which is itself the essence of evolution.
It is clear that evolution is an optimization process, which does not mean
perfection. Therefore, the application of EAs to a set of possible solutions
to a problem, should produce a good solution (or optimal) for this problem
[2, 33].
Some features of EAs are [33, 34, 35]:
They work with a set of solutions that represent solutions to the prob-
154 BIBLIOGRAFÍA

lem.

Seek the solution in a population of possible solutions rather than soli-


tary solutions.

They use an fitness function, do not use functions under this or any
other method or auxiliary knowledge.

They use probabilistic transition rules not deterministic.

They combine elements of stochastic search and direct which makes a


remarkable balance between exploration and advantage of the search
space.

Genotype and Phenotype


If a problem can be represented by a set of parameters (genes) and these
can be joined to form a value string; this string is called chromosome, and
this process is called encoding [33, 34].
It is common for individuals to be represented by chromosomes is made
with strings of binary digits, such a representation is called genotype; then
conversion is necessary to genotype values which belong to an individual.
The individual is called phenotype [33, 34, 35, 36, 37].
There are several issues related to the encoding of a problem to be taken into
account at the time of completion:

Should use the smallest representation of the parameters, typically use


a binary representation.

The variables that represent the parameters of the problem must be


discrete in order to represent strings of genes.

The most of the problems dealt with genetic algorithms are nonlinear
and often there are relationships between the variables that make up the
solutions. This is because the encoding can generate invalid genotypes,
they represent a solution that can not make (or should) physically.

The treatment of disabled genotypes must be taken into account in the


design of coding.

In this work we synthesize analog circuits where the genotypes are com-
posed of bits strings. The MOS transistor circuits are made phenotypes in
EAs.
BIBLIOGRAFÍA 155

Genetic Operators
Genetic operators are the different methods or operations that can be
performed on a population in an EA, these are divided into four categories:
Selection

Crossover

Mutation

Reinsertion or Elitism
The two processes that mainly contribute to the development are the
crossover and mutation operators. In the GA the main operator is the
crossover, while in the GP the principal genetic operator is mutation [34].

Selection Operator
The selection operator is the process in the election of members of the
current population to be used for crossover operator. Its aim is to give more
chances to select fittest members of the population. The first step is to as-
sign a measure of fitness to each individual, which can be performed by a
proportional allocation, or based on a ranking [34, 35].
In the allocation proportional fitness values become targets of a population
in a measure of fitness to know upper limit, this upper limit is determined by
the value of selective precision. This method generally uses a linear scaling
operation [33].
In the allocation of competence based on the ranking the population is eval-
uated according to their objective value. The assignment of fitness for each
individual solely depends on its ranking and not its current target value. The
fitness assignment based on the classification may be linear or not. In this
thesis the mapping is linear and not used to quadratic terms for the calcu-
lation. The algorithms for classification (linear and nonlinear) first order the
objective function values in descending or ascending. For example, the least
fit individual is placed in the top spot in the order of the list of target values
and the fittest individual is placed in position N, where N is the number
of individuals in the population. Thus, the fitness value is assigned to each
individual depending on their position in the order of the population [33].
Having assigned the fitness of individuals in the population comes to the
selection of parents; This can be done by any of the following methods
[33, 34, 35]:
Roulette-Wheel Selection.
156 BIBLIOGRAFÍA

Stochastic Universal Sampling.

Local Selection.

Truncation Selection.

Selection by Tournament.

These methods are described in [33], [34], and [35]. The development of
this Thesis is considering methods of roulette-wheel and truncation selec-
tions. Both showed similar results, so they chose the less time use the com-
puter, the method of truncation selection. The truncation selection method is
a method of artificial selection. Individuals in the selection by truncation are
sorted according to their fitness and only the best individuals are selected as
partners. Figure 2.1 illustrates the truncation method used in this work; of
the existing N individuals have to form N/2 pairs. The most highly qualified
individuals are selected to be paired up twice; while the worst performers are
not used in any couple.

Crossover Operator
The crossover combines the two parent chromosomes to form one or more
offspring. This is the most characteristic and important operator of GA, its
purpose is to accelerate the process of search or exploration of the best chro-
mosomes [33, 34, 35]. There are several variations depending on the number
of breakpoints to use or how to synthesize the chromosome. Depending on
the representation of variables in the chromosomes it is possible to apply the
following methods [33, 34]:
Recombination of real parameters:

Discrete crossover.

Intermediate crossover.

Linear crossover.

Extended linear crossover.

Recombination of binary parameters:

One-point crossover.

Multi-point crossover.

Uniform crossover.
BIBLIOGRAFÍA 157

Random crossover.

Crossover with Reduced Surrogate.


These operators are described in [33, 34, 35]. The operation of crossover
used in this work is called one-point crossover. By comparing the crossing of
multiple fixed points used previously [59] with the one-point crossover, the
latter question presents better results, this is due to the chromosome size is
small (22 bits). The one-point crossover is illustrated in Figure 2.2; where the
offsprings are formed with characteristics of both parents and the cut-point
is random.
The one-point crossover is implemented according to the algorithm described
below [34]:
Get the parent chromosome pairs, of a selection operator or random if
it is not implemented.

For each pair of chromosomes to get a whole random number U between


1 and chromosome size minus one (L-1). The number U is the cutoff in
the pair of chromosomes.

The offspring chromosome is formed with genes from the chromosome


parent1 who is placed before the cutoff and parent2 chromosome genes
that is located after the cutoff. Conversely one can generate an off-
spring2 if needed.

The offspring chromosomes form a new population to be used to the


new generation.
An example of this crossover with analog circuits is shown in Figure 2.3;
where the parents are the circuits (a) and (b) and the offspring result from
crossover the circuits (c) and (d). These circuits show that the chromosome
is formed by a portion of chromosome (a) and a portion of chromosome (b).

Mutation Operator
After of crossover operator the offspring experience the mutation opera-
tor. The mutation operator is the most characteristic of GP; but when used
much on the GA can become a slow and random search. The mutation is
responsible of random change in one or more genes in the chromosome of
an offspring. The representation of the variables will determine the mutation
method [33, 34, 35], so, two main methods are:
Binary mutation.
158 BIBLIOGRAFÍA

Real mutation.

The variables of the offspring are mutated with a low probability, this is
called Mutation Step Size in [2, 33]. The probability of mutating a variable
is set to be inversely proportional to the number of variables or chromosome
dimension [33, 34, 35]; although it may be a fixed percentage of the number
of offspring and it is recommended that not more than 5 %.
The mutation operator used to this work is the binary mutation. Which is
to change one or more bits of a chromosome; in this work only one bit is
modified. Figure 2.4 is an example of this mutation that is implemented
according to the algorithm described below [33]:

Get the offspring of crossover operator.

Each offspring chromosome gives a random number between 0 and 1.

If the number assigned to the offspring chromosome is greater than the


mutation step size, the chromosome will be not modified in any bit.
In another case get a whole random number U between 1 and L. The
number U is the bit that will change in value.

The offspring chromosomes (mutated or not) form a new population to


be used by the next generation.

As shown in Figure 2.4, the mutation operator acts on the genotype or


chromosome. To show an example of this operator with analog circuits, in
Figure 2.5 phenotype is shown as a voltage follower circuit, with the corre-
sponding chromosome. If this chromosome is mutated one of its bits should
change ‘0’ to ‘1’ or ‘1’ to ‘0’. Figure 2.6 show 4 different circuits if performed
mutation operator to the circuit of Figure 2.5.

Elitism Operator
The operator of rehabilitation is the method by which offsprings are in-
serted in the new population; for example, by eliminating the weakest in-
dividuals or random. If the size of the offspring is less than the original
population size, the offspring will be reinserted into the former new popula-
tion. However, if one want all the offsprings that are reinserted other method
of reintegration, may be applied [33, 35]. Rehabilitation methods common-
ly used are global reintegration and local reintegration. Both operations are
based on some method of selection.
The operation used in this work is a kind of global reintegration known as
elitist reproduction or elitism operator [33, 35, 46]; which produce the same
BIBLIOGRAFÍA 159

or fewer offsprings than the number of parents and replace the worst parents
with fittest offsprings. In other words, the parents are competing with off-
springs so that only the best form the next generation, Figure 2.7.
In this thesis the reinsertion operator will be the elitism operator and is
implemented according to the following algorithm [34, 35]:
Get the offspring of the mutation operator, the N chromosomes chil-
dren.
Find their fitness value.
List the N offspring chromosomes add the N parents chromosomes with
their fitness.
Sort all 2N chromosomes according to their fitness.
Choose only the best N chromosomes, these are the new parents in the
next generation.

Genetic Algorithms
The GA are stochastic search techniques based on the mechanisms of
natural selection and biological genetics [33, 35]. The modernization and
simulation of evolution with the PC is one of the most attractive ideas in
artificial intelligence. This possibility was first raised during the 1950’s, after
of the onset of the computers, researchers such as John Von Neumann and
Ulam. However, It was not until the decade of the 60’s when Fraser (1960),
Fogel, Owens and Walsh (1966) conducted the first simulation experiments
with small populations in which mutations occur. Bagley introduced in 1967
the term genetic algorithm. In 1975, the researcher John Holland published
his book Adaptation in Natural and Artificial Systems, one of the most im-
portant references on GAs from the theoretical point of view [34, 35].
GAs are adaptive methods that can be used to seek and to obtain solutions
and optimization problems. These algorithms are based on genetic processes
of biological organisms, encoding a possible solution to a problem through a
code named chromosome.
GAs use a direct analogy of the phenomenon of nature evolution. It begins
with an initial set of random solutions called initial population. Each individ-
ual in the population is called chromosome and represents a possible solution
to the problem.
A chromosome is a string of symbols called genes; usually are represented by
a binary string. The chromosomes evolve through iterations called genera-
tions. In each generation the chromosomes are evaluated using a measure of
160 BIBLIOGRAFÍA

fitness. At the fittest are given the opportunity to reproduce by recombining


with other individuals of the population, producing offspring with character-
istics of both parents [33, 34, 35, 37]. Least adapted members have little to
be selected for recombined, so their features tend to disappear.
The next population is formed using a combination of selection, crossover,
mutation and/or elitism operators [33, 34, 35, 36, 37]. This new generation
must contain a higher proportion of the characteristics possessed by the best
members of the previous generation. Thus, over several generations, the best
features are widespread in the population mixing with others. Favoring the
recombination of the best adapted individuals, it is possible to tour the most
promising areas into search space. If the GA is designed properly, the pop-
ulation will converge to an optimal solution or near-optimal to the problem
[2, 33, 34, 35, 37].
Generally, GAs are implemented following the cycle shown in Figure 2.8.
where one can see the steps listed below:

Initial population is generated randomly.

It evaluates the fitness of all individuals in the population.

A new population is created by selection, crossover, mutation and/or


elitism operators.

It is iterated until a satisfactory resolution.

The GA can be used successfully in a wide range of problems: opti-


mization of numerical functions, transportation, location, speed optimiza-
tion tools and some problems that are difficult to solve by other methods
[2, 3, 4, 6, 33, 34, 35, 36, 37, 44, 45, 46, 59].
It is worth mentioning that GAs do not guarantee to find the optimal solu-
tion to the problem but are generally good at finding acceptable solutions to
problems in a short time.
As an individual evaluation function assigns a fitness value, which is propor-
tional to the utility or ability of the individual depicted. In many cases the
development of an fitness function involves a simulation; in other cases the
function may be based on performance and represent only a partial evalu-
ation of the problem. Additionally it must be quick, because it is applied
for each individual in each population in successive generations. Therefore,
much of the time of the execution of the GA is used in the fitness function.
There is also a problem in genetic algorithms due to poor formulation of the
model, in which the genes of a few individuals, relatively well-adjusted, but
not optimal, can quickly dominate the population, causing it to converge to a
BIBLIOGRAFÍA 161

local minimum or maximum. Once this happens, the model’s ability to seek
better solutions is virtually eliminated, leaving only the mutation as a way
to find alternative solutions; and GA becomes slow search and/or random
[33, 34, 35].

Evolutionary Strategies
Despite its apparent similarity to the GAs, the ES are commonly used
in empirical experiments that are difficult to model mathematically. In addi-
tion, the ES is based on the principle of strong causality, which states that
similar causes have similar effects [33, 34].
The ES were proposed in 1963 at the Technical University of Berlin by Ingo
Rechenberg, and Hans Peter Bienert Paul Schwefel, as a method of solution
for the optimal design of the body of objects placed in an air flow, so as to
reduce resistance to a minimum. During the project tested and traditional
techniques already known as the wave of the gradient, among others; howev-
er, they were in vain, given the complexity of the problem. Ingo Rechenberg
was who set out to prove with random changes in the set of parameters defin-
ing the shape of objects, following the example of natural mutation. Peter
Bienert constructed a machine experimenter, which would work according to
the rules of mutation and selection. To simulate the evolutionary process on
a computer is required to encode the structures that would be replicating to
define the operations that affect to individuals, a fitness function and a se-
lection mechanism [34]. The original version (1+1) used a single father with
him, generating a single offspring. This child is kept if it was better than the
father, or else be eliminated. In this version, a new individual is generated
by the mutation operator.
In 1973, in his doctoral thesis, Ingo Rechenberg established the theoretical
basis for the ES, defined the concepts of mutation and selection, and added
the new concept of population in a variant of the ES originally proposed.
Subsequently, there were other versions for the ES proposed by Schwefel,
who introduced the use of multiple children in the variants [34].
Thus, the ES were created as a method to solve technical optimization prob-
lems; and until fairly recently were known only in Civil Engineering as an
alternative to standard solutions [34, 46]. Usually the ES is used when there
is no analytical solution for these problems and therefore there is no method
of solution. The ES optimization is based on the hypothesis whose claim is
that the laws of inheritance have been developed for rapid genetic adapta-
tion. The ES mimic the effects of genetic processes that act directly on the
phenotype, in contrast to GAs who work on the genotype.
162 BIBLIOGRAFÍA

There are some types of problems that are appropriate for applying ES, for
example when the search space is too large to be explored in detail [34].
Since ES copied biological evolution, the applications of these strategies aim
to eliminate weak individuals, and all similar solutions to them (or their de-
scendants) in the early stages of the simulation. This will restrict the space
to find a solution.

Genetic Programming
Genetic programming is a class of algorithms like GAs just that these do
not contain the crossover operator. In GP, the individuals of the population
are reproduced asexually. This means that a single individual will be able by
itself to have children without the assistance of another person [34]. The ab-
sence of the operator of recombination leads to the only source of variability
of individuals is one resulting from mutations.
In the evolutionary algorithms of this type is often to select a single indi-
vidual, and once selected by their fitness score or the new generation; that
are, their offspring obtained by simply copying or cloning of chromosomes,
mutating one or more positions in the chromosomes of individuals of the new
generation [34].
A striking example of the GP is the biomorphs Dawkins, one of the best
known evolutionary algorithms is able to obtain two-dimensional artificial
organisms. This algorithm was introduced in the book the blind clock (1986),
which quickly became a classic of popular science. In short, a GP stages of
reproduction and mutation is repeated iteratively until the algorithm finds
the chromosome that resolves the problem, as shown in Figure 2.9.

Chapter 3. Proposed Synthesis Method


Introduction
There are previous works about the analog circuits synthesis tools as
described in Chapter 2. This Chapter presents an Evolutionary Algorithm
for the analog circuits synthesis. To make the encoding of UGCs, CCs and
CFOAs the element nullor [68, 69], is used herein. Thus, this Chapter is a
description of nullor and their properties.
Subsequently it is described the proposed process for the search of topologies;
which describes a generic GA as the pillar of the proposed method. The
implementation of this GA was programmed in MatLab and used some test
BIBLIOGRAFÍA 163

functions to check its performance. GA responses to the test functions are


shown in this chapter. Finally, we show each one of the proposed genetic
encoding for different analog circuits.

Nullor
In [68] is presented a collection of analysis methodologies collection, ana-
log circuits design and synthesis using nullors. Hanspeter Schmid [69] proved
useful to model the ideal behavior of several active devices, such as Opera-
tional Amplifier (OPAMP), Operational Transconductance Amplifier (OTA),
Current Conveyor (CC), etc. The nullor is a two-port device consisting of an
element O (nullator) and an element P (norator) associated with four vari-
ables. In the input port voltage and current nullator and the output port
voltage and current norator, as shown in Figure 3.1. The voltage and current
in the nullator are always zero, while for the norator the voltage and current
are arbitrary [30, 68, 69].
The properties of the elements O and P can be exploited to model the ideal
behavior of the unity gain blocks. For example, to model the ideal behavior
of VF one can use one or more nullator elements as shown in Figure 3.2
[19, 21]; which shows that the output voltage VF (Vo) is equal to the input
voltage (Vi), by the properties of nullator.
To model a generic CF one or more norators, can be used [19, 21]. In these
circuits the electrical variables are currents. Since the current flowing through
a norator is always the same, it follows that the current (Io) is equal to the
input current (Ii).
The model of a MOS transistor using the nullor is shown in Figure 3.3. In
this way, adding norators to circuits that are represented by nullators leads
us to form the topologies that are represented by OP pairs; each pair OP
can synthesize a MOS transistor. Shown in Figure 3.3 the OP junction is
regarded as the source (S), the free end of element O is the gate (G) and the
free terminal P element is the drain (D) of the MOSFET.

Genetic Algorithm
Flowchart
One of the main objectives of this thesis is to develop a system capable
of synthesizing known and new UGCs, CCs and CFOAs topologies. For this
we developed a program based on EAs. Although the goals are different for
each UGC, all are following the schema shown in figure 3.4.
The algorithm starts by obtaining the user’s data:
164 BIBLIOGRAFÍA

Variables GA: population size, mutation rate, generations and maxin-


ima searched error.

UGC to synthesize: VF, CF, VM, CM.

Desired varible: Gain, bandwidth, input and/or output impedance.

Weight of the desired values in the evaluation function.

Type of simulator: TOP-SPICE, H-SPICE, Tanner-SPICE.

Type of technology:

• AMI Semiconductor: 0.35µm, 0.50µm.


• IBM Semiconductor: 0.18µm, 0.25µm, 0.35µm, 0.50µm.
• Taiwan Semiconductor (TSMC): 0.18µm, 0.25µm, 0.35µm.

After obtaining the data is an ideal choice cell. This is to describe the
UGC through nullators elements and/or norators. For example to represent a
generic CF there are several cells formed by one or more norators. Figure 3.5
shows all these possibilities with one and two nullators; combinations with
three nullators seen in Figure 3.6. To describe a CF are using four nullators
there are 15 different possibilities (Figure 3.7). Then the method of choice
for ideal cell is made to select any of the 23 possible descriptions ideals of
CF; and not just occupy the three classics: Figure 3.5 (a), Figure 3.5 (b),
and Figure 3.7 (l). The circuits represented by these three cells have been
studied by several authors [8, 19, 21, 25]. However, there are 23 possibilities
to accommodate norator that ideally describes a CF, which have not been
studied thoroughly.
The method of choice for ideal cell has the same goal for other types of UGC,
to explore possibilities of generating useful circuits.
After the selection of an ideal cell, some individuals are created randomly
to generate an initial population. Chromosomes are decoded to generate the
netlist for circuit simulation in SPICE; with select technology files. Then as-
sessed each individual, according to their response in SPICE and is assigned
a measure of fitness. As each individual and their fitness is kept in memory.
The better performance circuit, is best qualified to chromosome value.
Once these qualified individuals will be parents for a GA to iterate up to
a maximum number of generations or until a topology that can be useful.
The GA performs the operators of selection, crossover, mutation and elitism
described in Chapter 2. When finish the GA provides a UGC, CC and CFOA
netlist. It is noteworthy that the GA is expected to synthesize known and
BIBLIOGRAFÍA 165

novel circuits.

Testing the GA
Figure 3.4 shows the flowchart of the EA, the blocks are made by sub-
programs. Some of these are specific to each UGC and other sub-programs
must be comprehensived. To guarantee a good performance of the GA, one
need to test the blocks with standard test functions to confirm its operation.
Since it has been important to be sure the proper functioning of the genetic
operators and GA to be used. It is for this reason, a first GA, obeying figure
2.8.
The operations are scheduled selection, crossover, mutation and elitism to be
used in the program of Figure 3.4. MatLab assigned a rating to each individ-
ual (fitness). The program stops when it reaches the value expected by the
user or it reaches a maximum number of iterations.
The fitness measure is the sum of the standard, as is shown in equation (3.1).
Where the values expected by the user are so1, so2, etc., And assessed values
of the chromosome are ev1, ev2, etc. The program will stop when PTotal is
zero (plus a tolerance of error) [33].
The test functions are used to evaluate, compare, classify, and test the ef-
ficiency and effectiveness of the algorithm. There are several types of test
functions for EA mono-objective and multi-objective, as the functions of
Binh, Fonseca, Kursawe, Laumanns, Lis, Murata or Viennet, who are includ-
ing compiled in [33]. The test run of the GA is searching for solution points
or more equations.
The equations used to evaluate the GA are described in Eq (3.2), all with
a search space defined between x = [−1,1], y = [−1,1]. The graphics and
contours of the equations are shown in figures 3.8, 3.9 and 3.10.
Each equation has a search space bounded between [−1,1] of 2R. So the cho-
sen chromosome size is 34 bits, it splits into two 17-bit numbers each, varying
from 0.00001526 footwork (2/131072). This generates a search space of just
17,179,869,184 possible solutions for each test function to use. Descriptions
of test functions (FP) used are shown in Table 3.1.
The test functions FP1 to FP6 are mono-objective; i.e. the GA seeks to solve
a single equation. FP7 to FP13 functions are multi-objective, the GA seeks
a solution that satisfies two or more equations.
Seek testing functions maximum, minimum or particular values. In the fifth
column of Table 3.1 shows the number of analytical solutions to test function.
The FP solution with a single check shows that the EA will be able to find
such a solution and does not stagnate on local solutions; the GA will provide
166 BIBLIOGRAFÍA

a solution very similar to the ideal when the chromosome can not decode the
optimal solution. The FP with more than one optimal solution, are used to
observe that the GA is able to find all these. All the best solutions are known
as Pareto front [33, 34, 35]. The use of EA is usually in problems where the
analytical solution is very complex as in the case of FP11, FP12, and FP13;
In these cases it is hoped that the EA is able to find an optimal solution or
near-optimal to the problem [33].
The tests were executed on a computer model M2352 eMachines with Mo-
bile AMD Athlon XP3000+ to 524MHz with 448MB RAM. The maximum
number of generations was 150; population size is 40. Thus, the maximum
number of evaluations is 6000 (150x40). The minimum error was 0 % in all
FP were executed 10 times per test.
The results for the executions of the FP in the GA are shown in Table 3.2.
Where the point the solution is observed and found by the GA, average
computation time and average number of generations performed to find the
solution.
Table 3.2 shows that the GA manages to find the points of optimal solution
for FP1, FP2, FP4, FP7, FP9 and F11. While for FP3, FP5 and FP10 the
point are the most close to the optimum, this is because the chromosome of
the point (0.0) does not exist in this encoding. In FP6 the algorithm does
not find the points (±0,5, ±0,5), but their responses are very close to these
points; to ensure that the GA finds the optimal points only is increased the
number of generations. For FP8, FP12 and FP13 are presented in Table 3.2
points the best and worst case, the other results are closed to those points,
which makes the conclusion that the best solution is found or are the points
next to them. The closeness in value for these points is sufficient to conclude
that the GA is working properly.

Measurement of UGC fitness


The fitness in an EA is the result of the evaluation of an individual. This
can be given by any method linear, quadratic, exponential, fuzzy logic, etc.
In this work the evaluation is conducted by the sum of the norm (absolute
value), this type of estimate is sufficient for problems of this nature [33].
Each synthesized circuit will run in SPICE to get their behavior in AC gain,
bandwidth, input and/or output impedance. Depending on the answers given
to the circuit is assigned a measure of fitness.
Eq. (3.3) is a measure of fitness to be used in this work; where the variables P 1
to P 4 are the weights that the user defines, to give priority to any parameter
on the others. The functions f (ev1) to f (ev4) are calculated according to Eq.
BIBLIOGRAFÍA 167

(3.4) to (3.7). In these equations the values expected by the user are: gain,
bandwidth (BW ), input impedance (Zin) and output impedance (Zout).
The values are evaluated by SPICE ev1 to ev4. P T otal is the rating given
to the circuit, i.e. P T otal is the fitness of the individual; the best qualified
the circuit is the closest to zero.
Eq. (3.4) is the function that evaluates the gain. Figure 3.11 shows the graph
of this equation when gain = 1. The circuit best qualified is to ev1 = 1,
f (ev1) = 0. Figure 3.12 shows the behavior of Eq. (3.5), where the user-
defined value is BW = 10,000.
Eq. (3.6) describes the impedance that ideally should be large; such as the Zin
for VF or Zout for a CM. Figure 3.13 shown in Eq. (3.6), where Z = 20KΩ.
Eq. (3.7) describes the impedance ideally must be zero; such as the Zin
for VF or Zout for CF. Figure 3.14 shows the graph of the equation (3.7),
where Z = 250Ω. As looking at the function far from the ideal impedance
(Z = 250Ω) but is more severe with large impedances.
To show the operation of Eq. (3.3); running this assessment to individuals
listed in Table 3.3. This table contains 81 subjects (CFs) with different values
of gain, bandwidth and impedances. Each variables has three possible values:
Gain: 0.87, 0.91, 0.96.
Bandwidth: 10KHz, 100KHz, 1MHz.
Input impedance: 70Ω, 100Ω, 150Ω.
Output impedance: 18.5KΩ, 20KΩ, 22KΩ.
The results by running Eq. (3.3) are shown in Figure 3.15 where P 1 =
P 2 = P 3 = P 4 = 0,25, and the values sought are gain = 1, BW = 2M Hz,
Zout = 25KΩ and Zin = 50Ω. It is noted that the best individuals are: 41,
40, 14, 42, 13, 68, 15, 67 and 69, in that order. Table 3.3 lists the individual
containing the best value is 41.
By modifying the fitness function in the weight of the variables and values to
seek, are get another type rating for each individual. For example, in a second
test values to look for are: gain = 0,98, BW = 500KHz, Zout = 21KΩ and
Zin = 80Ω; and weights P 1 = P 3 = P 4 = 0,25, P 2 = 1, i.e. the bandwidth
has a higher priority over other values. The result of the evaluation equation
(3.3) are shown in Figure 3.16.

Genetic Encoding of Circuits


One of the main objectives of this thesis is to propose a genetic
code for UGCs, CCs and CFOAs; capable of synthesizing known and
168 BIBLIOGRAFÍA

new topologies. There are developed electronic circuits works with EA;
these use some kind of encoding circuits into a chromosome as shown in
[1, 2, 3, 4, 6, 7, 8]. However, these descriptions are focused on optimizing
parameters with a circuit in DC, AC and/or transient so their encodings
represented transistor size of its works and not how they made these topolo-
gies [1, 2, 3, 4, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18]. Thus, these encodings are
not useful to work in this thesis and have the need for a different encoding
to the above.

Genotype and Phenotype of a VF


Starting from the ideal model of VF using only one element O (Figure
3.2.(A)), the proposed algorithm proceeds to the generation of a circuit made
of transistors. First, for the purpose of synthesis every O element must be
coupled with a P element Thus, a P element can be added to an item or left
(node i), right (node j), or in parallel (between nodes i and j), as illustrated
in Figure 3.17 [21, 59]. As can be seen, each pair OP can be represented by
a gene of 2 bits in length; This creates the gene encoding the small-signal
(genSMos) which is described in Table 3.5.
Each pair OP is synthesized by a MOSFET as shown in Figure 3.3. This pro-
cess uses a gene MOSFET (genSMos) which consists of a bit (a2) to describe
the type of transistor. So when genSMos is zero it synthesize an N-MOS and
when it is one generates a P-MOS (Table 3.5).
The circuit will add two named sources Vdd and Vss voltage (positive and
negative, respectively). Subsequently current sources are added using a gene
of polarization (genBias) This contains two bits (a3a4) per nullator describing
the VF. The combination 00 means that the MOSFET drain was connected
to Vdd while the source is connected to a power source connected to Vss.
The 01 means that the drain is connected to Vss and the source to a power
source connected to Vdd. The other two combinations (10 and 11) mean
that both the source and the drain were connected to power supplies Vdd
and Vss, and this is summarized in Table 3.6.
Once added sources of bias voltage and current to the circuit each current
source (Idd and Iss) was synthesized by a current mirror (CM) using the
genCM. GenCM size depends on how many types of mirror are taken into
a bookstore, in this paper the proposed approach uses four different CM, so
the genCM consists of two bits (b0b1). Table 3.7 shown genCM code.
In short, to codify a VF modeled with one nullator from figure 3.2.(a), we
have a chromosome (code) of 7 bits: a0a1a2a3a4b0b1; divided into four dif-
ferent genes: genSMos, genSMos, genBias and genCM. This means that there
BIBLIOGRAFÍA 169

are 27 = 128 different circuit topologies that can synthesize a VF with the
description given. However, some topologies are not functional, as input or
output can be connected to Vdd or Vss; also other topologies not meet the
specification of a VF (VOU T = VIN ).
To synthesize a two, three or four MOSFETs, the ideal representation is
through the same number of nullators. Therefore, the chromosome grows as
the number of nullators that represent ideally, this is shown in Table 3.8
where: GenMOS=genSS-genSMos-genBias.
Table 3.8 shows that they have 212 = 4,096 different possible topologies for
a 2-based VF nullators. To synthesize VF consisting of 4 nullators we have
222 = 4, 194, 304 different possible topologies. For all the descriptions of cer-
tain chromosomes of VF topologies exist that make no sense because the
input or output may be connected to Vdd or Vss; and other topologies do
not comply with the behavior of a voltage follower. The EA carried out in
this paper is able to select topologies that work properly on AC.
Then, by way of example, the synthesis of a VF from its chromosome. It is
proposed to bridge an ideal model of 4 nullators (Figure 3.2.(b)) and synthe-
size the chromosome 336860, the value of the genes is shown in Table 3.9.
OP pair model is obtained from table 3.5 shown in Figure 3.18, where each
pair OP synthesize a MOSFET. To add power sources due to the circuit box
3.6. Therefore for the MOSFET M1 is connected to the drain Idd and Iss the
source, just as M2; for M3 and M4 is connected to the drain and Idd Iss the
source. The resulting circuit is shown in Figure 3.19. Which shows that it is
possible to delete the current sources Idd3, Iss1, Iss2, Idd4 as they do not
polarize the circuit. The program developed for the synthesis of VFs detect
such situations and the decision to eliminate the remaining sources.
Table 3.9 genSMos indicate that the synthesized OP pairs are N-MOSFET
M1-M2 N, P and P-M3-M4 as Table 3.5. Removing sources of excess co-
currents and synthesizing these MOS transistors, the circuit made are dis-
played in figure 3.20.(a); this is the ideal model of a VF-known [21, 22, 25].
To finish the example need to change ideal current mirrors. The genCM is
00, so they will add simple current mirrors and the circuit synthesized by
336860 chromosome is shown in Figure 3.20.(b).

Genotype and Phenotype of a CF


Starting from the ideal model of a CF using only norator, we proceed to
generate a CF MOSFETs. Similar to the VF encoding, each element P should
be attached to an item or for the purpose of synthesis of MOS transistor.
Thus, an O element is added to an element P to the left (node i), right (node
j), or in parallel (between nodes i and j) similar to the figure 3.17. Each pair
170 BIBLIOGRAFÍA

OP can be represented by a small gene signal (genSMos), which is described


in Table 3.5.
Each pair OP is synthesized by a MOSFET, this step uses the MOSFET gene
synthesis (genSMos) which is identical to that described for VF in Table 3.5.
The next step is to add sources of bias. Gene polarization (genBias) contains
two bits (a3a4). In all the combinations to both the drain and the source they
are connected to power sources and Vss Vdd Idd and Iss calls, respectively.
After the MOSFET gate terminal will be connected to a positive voltage
source (V +) or negative (V-), and this is summarized in Table 3.10. Note
that the gate of the MOSFET is always connected to a voltage source to the
transistor working in saturation region.
As for the synthesis of VFs, each power source must be synthesized by a CM,
using the genCM. The genCM depends on the number of types of mirrors
containing a library. Taking into account that the library has the same mir-
rors that in the case of VF, the code is again shown genCM Table 3.7.
In summary, to encode a single CF from a single norator it has a chromo-
some 7 bits, divided into four different genes. To synthesize a CF of two MOS
transistors from two or more chromosome the norators grow proportionally.
This is shown in Table 3.11 where: genMOS=genSS-genSMos-genBias.
Some topologies represented by the chromosomes do not comply with the
specification of a CF (IOU T = IIN ); these are not practical for use in circuits.
The EA conducted in this thesis aims to select topologies with a correspond-
ing response to a CF. This is done using SPICE simulations.
The synthesis of the chromosome 99324, from a 4-bridge model norators (Fig-
ure 3.7(l)); the value of the genes is shown in Table 3.12.
Performing the synthesis of the 99324 chromosome obtained the circuit of
Figure 3.21. This is the model of a known CF [21, 25]. This circuit is ob-
tained after decoding the meaning of the genes in Table 3.12, according to
the tables 3.5 (genSMos), 3.5 (genSMos), 3.10 (genBias), and 3.7 (genCM).

Genotype and Phenotype of a CM


The current mirrors are basic blocks, generally used in biasing analog cir-
cuits. The current mirrors can be modeled with two, three and four norator,
as shown in figure 3.22. For example with the cell (a) can synthesize a simple
mirror, with the cell (c) can be synthesized and Wilson mirror cell (d) can
be synthesized Cascode mirrors and Wilson changed. Nodes A, B, C and D
are used to add nullators and/or polarization sources. In these cells there is a
point of reference, this can be considered as circuit ground or a bias voltage
positive or negative.
In this work, a single chromosome that can synthesize the four mirrors is
BIBLIOGRAFÍA 171

proposed. Starting from the ideal model of a CM shown in Figure 3.22.(d)


is necessary to add an item to each element P. This is automatically added
to the side closest to ground (GND) for each pair OP is synthesized by an
N-type MOSFET This synthesis is to ensure that the MOSFET will be in
saturation and a P-type MOS would not be in saturation. So, for the chromo-
some of a CM does not require a small-signal gene (genSMos) or a MOSFET
synthesis gene (gene-SMOS) as in previous chromosomes.
In all possible combinations of nodes C and D were connected to power
sources to Vdd (Idd) to bias the circuit. Each terminal gate transistors can
be connected to nodes A, B, C, D, Va BIAS, Vdd, or an extra node (NE). We
describe this decoding for the gate of transistor M1, Table 3.13. Where NE
is a node that was used in extra blocks to perform CM sources displacement
level. GenBias code for the other three MOS is the same as in Table 3.13.
To simulate this chromosome cells shown in Figure 3.22 there must be a gene
that defines the signal input node (IIN ) and the signal output node (IOU T ).
This gene was named as a genIO, which is described in Table 3.14. Where the
nodes E and F are nodes used in a library of blocks of transistors that can
be added to CM to synthesize CMs with displacement level (Figure 3.23).
To end the description of the chromosome of the CM is synthesized gene level
shift genN. Which contains a library of possible circuits to be joined to the
connections of the MOS transistors CM. GenN size depends on the size of
the library used, GenN for this work is 3 bits and its encoding is shown in
Table 3.15.
In summary, the chromosome made for the synthesis of CM is shown in Ta-
ble 3.16. As shown the chromosome to be used is 16 bits, this is larger than
those used in [59] by 4 bits, expanding the search space. But as mentioned
previously this chromosome replaces 4 made in [59], one for each cell shown
in Figure 3.22. This advantage leads to only conduct a synthesis algorithm
of CM and not one per chromosome. Another advantage of this description
is that genetics are synthesizable level mirror movements in [59] were not
synthesizable.
As an example of circuit synthesis is carried out as described by the chro-
mosome CM 1192, in Table 3.17 divides the chromosome genes. Figure 3.24
shows the encoding where all pairs OP will be synthesized by N-MOS; and
the input and output is given by the genIO. According to the genIO in Table
3.14 signal input (IIN ) will be for the C and the output node by node D
(IOU T ). The genN not be used as in the synthesis of genBias not generated
any node NE.
Using Table 3.14, it is noted that the gate of transistor M1 must be connect-
ed to Node A (000), just as the gate M2 is connected to Node A (000). The
M3 gate connects to node C (010), like the gate terminal of M4 (010). Mak-
172 BIBLIOGRAFÍA

ing connections is obtained the figure 3.25. Finally, by synthesizing pairs of


N-MOS OP gives the figure 3.26; As can be seen is known as mirror Cascode
CM [25, 26].

Genotype and Phenotype of a VM

The representation of the VM is shown in Figure 3.27 [26, 27]. In this


ideal representation emerge the three circuits shown in Figure 3.28; where
in figure 3.28.(a) will synthesize a MOSFET with the pair O1-P1 and the
other nullator by itself represents a VF, the VF can be synthesized with any
number of MOSFETs. In Figures 3.28.(b) and 3.28.(c) has added a nora-
tor parallel and serial repectivamente. This element does not affect P ideal
description of the VM and is used to form pairs OP, and these in turn syn-
thesize MOSFETs. Each pair OP in Figure 3.28 synthesizes a MOSFET, in
figure 3.29 shows the synthesized circuits, these MOSFETs can be either P
or N type
As described above, the VM must be represented by more than one chromo-
some, one for each ideal description shown in Figure 3.28. It is necessary for
the three chromosomes to have a gene for synthesis of CMOS (gene-SMOS),
as this will decide whether to synthesize a NMOS or PMOS, this will again
use the table 3.5. GenBias is necessary to polarize the circuit, this gene is
encoded in Table 3.18. A genBias chromosome is added to each resistor R
that has at its ideal representation; therefore for every VM in Figure 3.29
genBias will need two.
Many topologies in the output of a VM put the circuit shown in Figure 3.30;
therefore, it was decided to include a gene that decides whether the VM is
added to the circuit of Figure 3.30 or not, this gene is described in Table
3.19.
In summary for a VM chromosome described by Figure 3.29.(a) one have
ten bits, divided into four different genes. As for the circuits shown in figures
3.29.(b) and 3.29.(c) needed 11 bits, divided into four different genes. These
chromosomes are shown in Table 3.20.
As an example chromosome 53 is summarized in Figure 3.29.(a). Written in
binary is 0000110101, which means that the genSMos = 0, genBias1 = 0001,
and genIO genBias2 = 1010 = 1, using tables 3.5, 3.18 and 3.19 we obtain
the circuit shown in Figure 3.31.(a). This circuit is a known VM [26, 27, 59].
Figure 3.31.(b) shows the VM after replacing the ideal of the VF shown in
Figure 3.20.
BIBLIOGRAFÍA 173

Genotype and Phenotype of Two UGCs


The UGCs can be interconnected or superimposed to make blocks hav-
ing more ports. The possible connections of these blocks can be viewed in
Figure 3.32; among these we can see the ideal representation of the CC. The
representation of the CCII-/+ are shown in figures 3.32.(e) and 3.32.(f), re-
spectively; the CCII inverse (ICCII) are represented by figures 3.32.(g) and
3.32.(h). Combining the circuits shown in figures 3.32.(f) and 3.32.(k) gives
the ideal representation of a CFOA: VF-CM-VF.
To make the circuit shown in Figure 3.32, the simplest of thinking is, attach
a cable from the output of the first UGC and the input of the second. This
union is not the best choice for all the circuits of Figure 3.32. Therefore,
the strategies for the circuits in figure 3.32 should be different from circuit
to circuit. Strategies to make the joints of the UGC in this work have been
divided into five different, these will be described in the following sections
and arranged by their complexity as:

Simple Union.

Double Output.

Double Intermediate Output.

Create Node Z.

Combination nullatos-norators.

Simple Union
As mentioned earlier, the easiest thing to make the circuit shown in Fig-
ure 3.32 is to attach a cable between the output of the first UGC and the
input of the second. This union is the best option in the circuits of figures
3.32.(b), (d) (i), (j) (k) and (l); ca-characteristics functions shown in Eq (3.8).
Chromosomes that describe these circuits can be implemented joining chro-
mosomes previously made; as shown in Table 3.21. To perform this type of
circuit is proposed to select the UGC that conform and then binds only one
input to the output of another, as shown in Figure 3.32.
As an example of this ’simple joint’ of UGC is summarized in Figure 3.32.(k)
This joins a CM with a VF. CMOS circuit shown in Figure 3.33, where the
CM and VF are summarized in figures previously 3.20 and 3.26.
174 BIBLIOGRAFÍA

Duplicate Output
The union named ‘double exit ’is to double the output circuitry of the
UGC. This union is the best option in the circuits of figures 3.32.(a), (c),
(m) and (o), their characteristic functions are shown in Eq (3.9). As shown
in Eq (3.9) describes the UGC with dual outputs, positive and negative.
Chromosomes that describe these circuits are implemented by chromosomes
previously made, as shown in the table (3.22). The amendment is not made
in the chromosomes but in the program as this will double the output cir-
cuitry of UGC. An example of this synthesis is shown in Figure 3.34 a circuit
type Figure 3.32.(c) in Figure 3.35 a circuit that is represented by the figure
3.32.(a). The circuits of Figure 3.32.(k) and 3.32.(m) with MOSFETs are
shown in figures 3.36 and 3.37.

Intermediate Output Double


The union called intermediate output double is to double the output cir-
cuitry of the first UGC to gain entry to the second UGC. This union is the
best option in the circuits of figures 3.32.(n) and (p) their characteristics are
shown in Eq (3.10). Chromosomes that describe these circuits are implement-
ed by connecting the chromosomes made previously, as shown in the table
(3.23). An example of this synthesis is shown in Figure 3.38 circuit type 3.32.
(N) and Figure 3.39 shows a circuit that exemplifies the figure 3.32.(p).

Creation Node Z
The union named UGCs Z node creation to amend the sources of bias or
VM VF circuit for a current output. This union is used in the synthesis of
the circuits of figures 3.32. (F) and (h) their characteristic functions shown in
Eq (3.11). As can be seen from the equation (3.11) correspond to the circuits
ICCII+ and CCII+.
The chromosomes which describe the circuit (I) CCII + chromosomes are
made by joining the previously made, as shown in Table 3.24. Where in the
genCM of VF (Table 3.8) summarizes the sources of polarization of the input
polarization and power output are synthesized by CM chromosome (Table
3.16).
To perform the genetic coding of a CCII + is first described the CC as a
VF (Figure 3.40.(a)); then used to synthesize CM Chromosome sources of
polarization of the output MOSFETs. This is shown in Figure 3.40.(b) in
this example the output MOSFETs are M2 and M4. Figure 3.40.(b) shows
the CCII+ 336860-1192, where the node Z is created by using the CM 1192
BIBLIOGRAFÍA 175

synthesized in figure 3.26.

Combining Nullators-Norators

The UGCs union called combination nullators-norators is to combine the


nullators describing an ideal with norators VF defining an ideal CF. This
union is used in the synthesis of the circuits of figures 3.32.(e) and (g); their
characteristic functions shown in Eq (3.12). As can be seen these equations
correspond to the circuits, and ICCII CCII-, respectively.
It must be remembered that an ideal VF is represented by a block of nulla-
tors, the same way an ideal CF is represented by a block of norators. Thus,
a CCII-must be represented by the union of these blocks ideal as shown in
Figure 3.41.(a). Each block is made of several components O or P; combined
in different ways as shown in figures 3.5, 3.6, and 3.7.
Figure 3.41.(b) shows an ideal CCII-nullators performed with 4 and 4 no-
rators. If each of these elements O and P synthesizes a MOSFET circuit is
obtained with 8 MOSFETs, this is a 4-VF MOSFETs with a cable attached
to a CF 4-MOSFETs. ‘Union-norators nullators combination’ is to combine
the nullators to norators. Therefore, in Figure 3.41.(b) output 2 VF nulla-
tors join the 2 norators CF input, each union synthesize a MOSFET, and
the CCII- is made with 6 MOSFET circuit. Figure 3.42.(a) shows a circuit
made with 4 nullators VF; figure 3.42.(b) shows a circuit synthesized with 4
norators CF. The union of these UGC is the CCII- shown in Figure 3.42.(c)
Some authors call this union superimposition circuit [18].
To describe the chromosomes of circuits (I) CCII, one must first recall the
description of the VF and CF chromosomes according to the tables 3.8
and 3.11 where GenMan = genSMos-genSMos-genBias. To realize the CCII-
chromosome is divided into three parts first description of the norators alone
(if any) After describing the nullator-norator pairs formed (node X) and final-
ly encode norators alone (if any). This is shown in Table 3.25, where genMOS
= genSS-genSMos-genBias; the genSMos is encoded by the table 3.5 in pairs
formed nullator-norators not need this gene. The genSMos is coded in Table
3.5. For the tables used genBias 3.6 (nullators and OP pairs) and 3.10 (nora-
tors). The genCM synthesized by a current mirror (CM) current sources Idd
and Iss, as Table 3.7.
176 BIBLIOGRAFÍA

Chapter 4. Results
Introduction
The proposed algorithm for the synthesis of unity gain cells (Chapter 3)
was implemented in MatLab. The developed program can perform synthesis
of UGCs topologies shown in Table 4.1. The program CFOA.m not looking
for a topology only synthesizes a single CFOA asking the number of chromo-
somes in the CM and the two VF previously found with CM.m and VF.m.
The program’s user manual is developed in Apendix C.
This chapter shows some topologies obtained with the developed tool. To
demonstrate the Genetic Algorithm, shown in Figure 4.1 best individual as-
sessment of each generation; and as far as is closed assessment when tends
to zero in each generation, since zero is the ideal value. Figure 4.2 shows
the runtime of the program few seconds took the computer to get each gen-
eration and the total time of execution of the program approximately 71
minutes for this example. Figures 4.1 and 4.2 were obtained from a program
execution VF.m on a computer minihp with Atom Processor at 1.6GHz and
1GB RAM. The program VF.m was run with the following specifications:
Θ Simulator: Tanner-SPICE.
Θ Technology: 0.35µm AMI Semiconductor.
Θ Number individuals by generations: 40.
Θ Percentage mutation: 0.3.
Θ Max generations: 150.
Θ Gain (Vo/Vi): 1 (with weight 1).
Θ Bandwidth: 1MHz (with weight 0.5).
Θ Input impedance (Zin): 10KΩ (with weight 0.5).
Θ Output impedance (Zout): 250Ω (with weight 0.5).

Topologies generated for the VF


The topologies shown in figures 4.3 and 4.4 were obtained by the EA. The
algorithm (VF.m) was run with various simulators and technologies to find
topologies. These are shown in figures 4.3 and 4.4 the program VF.m find
VFs equivalent to capacitive paths, i.e., these circuits do not make copies of
DC voltage, the GA does not provide a profit target DC gain, to implement
this objective in the evaluation of the circuit is expected that this drawback
will be corrected. Table 4.2 was conducted to compare the topologies found;
in this table was used the Tanner-SPICE simulator and technology of 0.35µm
in all simulations. With dimensions of transistors: L=1.2µm, WN=1.0µm and
BIBLIOGRAFÍA 177

WP=4.4µm.

Topologies generated for the CF


The topologies shown in figures 4.5 and 4.6 were obtained by the EA
done. It is noted that the simulated CFs found in AC cables, this is due to
the GA find this kind of response as the best option. To find itself performing
transconductance topologies as in Figure 3.21 should criminalize the genera-
tion of cables linking the MOS input with output. Table 4.3 was conducted
to compare the topologies found; in this table use the Tanner-SPICE simu-
lator and technology of 0.35µm. With dimensions of transistors: L=1.2µm,
WN=1.0µm and WP=4.4µm.

Topologies generated for the CM


Running the algorithm CM.m with different simulators and technologies
to find topologies of Figures 4.7 and 4.8. The GA finds functional CMs as
simple mirror, cascode, Wilson, or as shown in Figure 4.7.(d), althought
also It find non-functional topologies as some of the figures 4.7 and 4.8. It
must be remembered that the GA generates topologies ready to be simulated
in SPICE. Table 4.4 was maded to compare the topologies found, in these
circuits the GA use the Tanner-SPICE simulator and technology of 0.35µm
in all simulations. With dimensions of transistors: L=1.2µm, WN=12.0µm.

Topologies generated for the VM


The topologies shown in Figure 4.9 were obtained by the program VM.m.
These four circuits already have been reported, leaving without the addi-
tion of new topologies for this program (VM.m), so that the fact that the
GA found these topologies means that it works is properly. Table 4.5 was
conducted to compare the topologies of figure 4.9. To compare these cir-
cuits was used the Tanner-SPICE simulator and technology of 0.35µm in all
simulations. With dimensions of transistors: L = 1.2µm, WN=1.0µm and
WP=4.4µm.

Topologies generated for the CCII


The topologies shown in figures 4.10, 4.11 and 4.12 were obtained by
combining the UGCs found by the EA. The CCII+ of Figure 4.10 is obtained
by combining the VF 196758 (Figure 4.4.(a)), with 69593766 CM (Figure
4.7.(b))
178 BIBLIOGRAFÍA

Topologies generated for the CFOA


The algorithm does not search for new CFOAs, only combines VFs and
CMs topologies. Therefore this program (CFOA.m) only emulates a designer
IC to interconnect three UGCs. Three CFOAs synthesized in this way can
be seen in figures 4.13 and 4.14. The CFOA in Figure 4.13 is obtained by
combining the VF 196758 (Figure 4.4.(a)) with the CM 69593766 (Figure
4.7.(b))

Chapter 5. Conclusions
An automatic synthesis approach for analog circuit topologies using Evo-
lutionary Algorithms has been introduced and performed in MatLab. Is
shown the proposed algorithm and how it was done the trial run of it, con-
cluding that the GA works good.

Some synthesis tools were compared with the method in this thesis. Al-
so EA is briefly described, highlighting the genetic operators and the three
types of EAs: Genetic Algorithms (GA), Evolutionary Strategies (ES) and
Genetic Programming (GP). The genetic operators are selection, crossover,
mutation and elitism.

The main contribution is the introduction of a binary encoding to rep-


resent analog circuit topologies: VFs, CFs, VMs and CMs. The principal
element of this encoding is called chromosome, which is made by the union
of genes. Each gene models a part of the analog circuit.

The chromosomes of the VFs and CFs are made using four genes:

• Small-signal gene (genSS): For the VFs this gene adds an element
P to each element O of the ideal representation of VF, resulting
in OP pairs. For CFs adds an element O to each element P.
• Synthesis MOS gene (genSMos): Each OP pair is replaced by a
MOSFET, P or N.
• Bias gene (genBias): It generates the polarization of the circuit,
adding voltage and current sources.
• Synthesis of current mirrors gene (genCM): Each power supply
circuit is replaced by a current mirror.

The chromosomes of the CMs are synthesized by three genes:


BIBLIOGRAFÍA 179

• Bias gene (genBias): It generates the polarization of the circuit,


selecting the internal connections.
• Input/Output gene (genIO): It chooses to input and output nodes
of the CM.
• Displacement-level gene (GenN): It contains a library of possible
sub-circuits to join between the connections of the CM MOSFETs.

The chromosomes of the VMs are made by four genes:

• Synthesis MOS gene (genSMos): Each OP pair ideal of VM is


replaced by a MOSFET, P or N.
• Bias gene 1 (genBias1): It contains a library of possible sub-circuits
to join the port 1 of the VMs ideal (Figure 3.28).
• Bias gene 2 (genBias2): It contains a library of possible sub-circuits
to bind to port 2 of the ideal VMs (Figure 3.28).
• Output gene (genIO): It selects the output node of the VM.

The number of bits used to each chromosome depends on the number of


element nullors used to model. Therefore it is possible to synthesize UGCs
represented by cells that have not fully considered, due to that the number
of MOS can be anything.

The algorithm does automatically performs the analogic circuit netlists


and their simulation in Tanner-SPICE, TOP-SPICE or H-SPICE. Synthe-
sized topologies are simulated with CMOS IC technology:

AMI Semiconductor: 0.35µm, 0.50µm.

Taiwan Semiconductor: 0.18µm, 0.25µm, 0.35µm.

IBM Semiconductor: 0.18µm, 0.25µm, 0.35µm, 0.50µm.

The simulations seek features in AC: gain, bandwidth and input and/or
output impedance. Therefore, the proposed Genetic Algorithm is considered
multi-objetive (MOGA).

The chromosomes for UGCs circuits were evolved to synthesize other cir-
cuits with more terminals, consisting of two or more unity gain cells as CCs,
ICCs and CFOAs, demonstrating that the system is not closed, it can grow.
180 BIBLIOGRAFÍA

Ideas for future work


The evaluation parameters for the selection of circuits (fitness) can
grow, according to a specification in AC, DC and/or transient and
they are not just the four shown in this thesis.

One can change the method of evaluation, for example a fuzzy evalua-
tion will be ideal for this kind of problem.

Genetic operators (selection, crossover and mutation) used in this thesis


can be exchanged for other operators to try if one can find better results.

The program can generate the netlist performed for three different sim-
ulators (Tanner, TOP-SPICE and H-SPICE), but the program can be
adapted to other simulators.

One can extend this method to other circuits and devices, for example,
OPAMPs, OTAs, filters, etc. One can also expand it including passive
elements and dimensions of the CMOS.

También podría gustarte