Duarte Vima
Duarte Vima
Duarte Vima
Por
Supervisada por:
©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.
i
Esta hoja se dejo en blanco intencionalmente.
ii
.
Dedicatorias
iii
Esta hoja se dejo en blanco intencionalmente.
iv
.
Agradecimientos
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.
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
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
B. Publicaciones 127
B.1. Publicaciones en congresos . . . . . . . . . . . . . . . . . . . . 127
B.2. Publicaciones en revistas . . . . . . . . . . . . . . . . . . . . . 127
B.3. Publicaciones en capı́tulo de libro . . . . . . . . . . . . . . . . 128
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
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.
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
Marco Teórico
7
8 CAPÍTULO 2. MARCO TEÓRICO
Las variables que representan los parámetros del problema deben ser
discretas para poder representar cadenas de genes.
Selección
Cruza o Recombinación
Mutación
Operador de selección
Selección local.
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
Recombinación Discreta.
Recombinación Intermedia.
Recombinación Lineal.
Cruza Uniforme.
Cruza Aleatoria.
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.
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
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.
Operador de reinserción
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.
3.1. Introducción
35
36 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO
Figura 3.2: Modelos de VFs usando (a) uno y (b) cuatro nullators.
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
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.
detendrá cuando PTotal sea igual a cero (más una tolerancia de error) [33].
F 1(x, y) = x2 − 2xy + 6x + y 2 − 6y
|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
Cuadro 3.3: Individuos de pueba para la Ec. (3.3). Valores de ganancia, ancho
de banda e impedancias de posibles circuitos CF.
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.
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)
a2 Tipo de transistor
0 N-MOS
1 P-MOS
en el cuadro 3.6.
a3a4 Conexión
Drain Source
0 0 Vdd Iss
0 1 Vss Idd
1 0 Idd Iss
1 1 Iss Idd
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.
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.
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.
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
genes del cuadro 3.12; según los cuadros 3.4 (genSS), 3.5 (genSMos), 3.10
(genBias) y 3.7 (genCM).
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).
000
001
010
011
100
101 NG3=VBIAS
111 NG3=Nodo D
Figura 3.29: VMs de la figura 3.28, sintetizando los nullors por MOSFETs.
N = nodo 1 o nodo 2
NA = opuesto del nodo 1 o 2
72 CAPÍTULO 3. MÉTODO DE SÍNTESIS PROPUESTO
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.
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.
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.
Combinación de nullatos-norators.
3.5. GENOTIPO Y FENOTIPO DE LAS UNIONES ENTRE DOS UGCS75
(b) V o1 = V in V o2 = −V in
(d) V o1 = −V in V o2 = V in
(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.
(a) V o2 = V o1 = V in
(c) V o2 = V o1 = −V in
(f ) V o = V in
Io = −Iin
(h) V o = −V in (3.11)
Io = −Iin
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
Figura 3.40: (a) Circuito VF sintetizado en la fig. 3.20; (b) circuito CCII+
su cromosoma es 336860-1192.
(e) V o = V in
Io = Iin
(g) V o = −V in (3.12)
Io = Iin
Figura 3.41: (a) CCII- dividido en un bloque VF y un bloque CF; (b) CCII-
ideal, realizado con 4 nullators y 4 norators.
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.
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
Resultados
4.1. Introducción
89
90 CAPÍTULO 4. RESULTADOS
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
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.
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 del VM ideal
es reemplazado por un MOSFET, tipo P o N.
Parámetros de simulación
113
114 APÉNDICE A. PARÁMETROS DE SIMULACIÓN
+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 )
Publicaciones
127
128 APÉNDICE B. PUBLICACIONES
Manual de usuario
7. Notas extras.
129
130 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.
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
139
140 ÍNDICE DE CUADROS
[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.
141
142 BIBLIOGRAFÍA
[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.
[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.
[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.
[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.
[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.
[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.
[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
[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.
[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
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].
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.
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.
They use an fitness function, do not use functions under this or any
other method or auxiliary knowledge.
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.
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
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.
One-point crossover.
Multi-point crossover.
Uniform crossover.
BIBLIOGRAFÍA 157
Random crossover.
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]:
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
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.
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
Type of technology:
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.
(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.
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.
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).
Simple Union.
Double 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.
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
Combining Nullators-Norators
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).
WP=4.4µm.
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 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 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
One can change the method of evaluation, for example a fuzzy evalua-
tion will be ideal for this kind of problem.
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.