You are on page 1of 204

UNI VERSI DAD DE GRANADA

I NGENI ER A ELECTRNI CA

Departamento de Electrnica y Tecnologa de Computadores

DESARROLLO DE UN COPROCESADOR EN
PUNTO FLOTANTE PARA LA RESOLUCI N DE LA
ECUACI N DE POI SSON 1D EN ESTRUCTURAS SOI



Trabajo Fin de Carrera

Francisco Pasadas Cantos
Granada 2012

Directores:
Antonio Garca Ros Luis Parrilla Roure
Andrs Godoy Medina Carlos Sampedro Matarn


UNI VERSI DAD DE GRANADA
I NGENI ER A ELECTRNI CA


DESARROLLO DE UN COPROCESADOR EN
PUNTO FLOTANTE PARA LA RESOLUCI N DE LA
ECUACI N DE POI SSON 1D EN ESTRUCTURAS SOI

Trabajo Fin de Carrera

Francisco Pasadas Cantos

Tribunal:
D/Da
D/Da
D/Da

Calificacin:

Presentado en Granada a de de 2012
Evaluado en Granada a de de 2012



El Presidente El Vocal El Secretario

UNI VERSI DAD DE GRANADA
I NGENI ER A ELECTRNI CA


AUTORI ZACI N DE LECTURA DE TRABAJ O FI N DE CARRERA

D. Antonio Garca Ros, D. Andrs Godoy Medina, D. Luis
Parrilla Roure y D. Carlos Sampedro Matarn, profesores del
Departamento de Electrnica y Tecnologa de Computadores de la
Universidad de Granada, como directores del Trabajo Fin de Carrera
titulado Desarrollo de un coprocesador en punto flotante para la
resolucin de la ecuacin de Poisson 1D en estructuras SOI , y realizado
por el alumno D. Francisco Pasadas Cantos

CERTIFICAN:

Que el citado Trabajo Fin de Carrera, ha sido realizado y redactado
por dicho alumno y autorizan su presentacin.

Granada 2012




Fdo. Antonio Garca Ros Fdo. Luis Parrilla Roure



Fdo. Andrs Godoy Medina Fdo. Carlos Sampedro Matarn

UNI VERSI DAD DE GRANADA
I NGENI ER A ELECTRNI CA


AUTORI ZACI N DE DEPSI TO EN LA BI BLI OTECA

Yo, D. Francisco Pasadas Cantos con DNI 26046558R, autor del
Trabajo Fin de Carrera titulado Desarrollo de un coprocesador en punto
flotante para la resolucin de la ecuacin de Poisson 1D en estructuras
SOI realizado en la Universidad de Granada

AUTORIZO:

Al depsito de dicho Trabajo en la Biblioteca de la Universidad de
Granada, y de la visualizacin a travs de Internet.

Granada 2012



Fdo. Francisco Pasadas Cantos





UNI VERSI DAD DE GRANADA
I NGENI ER A ELECTRNI CA


RESUMEN
En el presente trabajo se desarrolla un coprocesador en punto flotante y simple
precisin para resolver la ecuacin de Poisson 1D en un transistor de doble puerta
sobre un sustrato de silicio orientado a un entorno de computacin grid. En primera
instancia, se describe la tecnologa que ha permitido la fabricacin de este dispositivo,
la tecnologa de silicio sobre aislante (SOI ). Seguidamente, se definen las
herramientas matemticas que describen el comportamiento de un dispositivo
electrnico. Se aplican dichas herramientas para obtener la ecuacin discreta de
Poisson 1D, de manera que pueda ser resuelta numricamente en un computador. La
resolucin de dicha ecuacin se orienta a un entorno de computacin grid mediante
una plataforma reconfigurable, por lo que se desarrolla la implementacin del
sistema en lenguaje de descripcin hardware (HDL), acompaado de un estudio de los
recursos necesarios en las FPGAs ms comunes en la actualidad.
Palabras clave: coprocesador, ecuacin de Poisson 1D, punto flotante, SOI

ABSTRACT
The aim of this project is to develop a single precision floating point coprocessor to
solve the 1D Poisson equation in a dual gate transistor on a silicon substrate oriented
grid computing environment. First, it is described silicon on insulator (SOI)
technology that allows the fabrication of this device. Next, it is defined the
mathematical tools that describes the behavior of an electronic device. These tools are
applied in order to obtain the 1D Poisson discrete equation, so that a computer is able
to solve it numerically. The resolution of this equation is oriented to a grid computing
environment using a reconfigurable platform, so the system is implemented in
hardware description language (HDL), accompanied by a study of the necessary
resources specified for the most common FPGAs.
Keywords: coprocessor, 1D Poisson equation, floating point, SOI








A mis padres y a mi abuela
























Hal l ar un cami no o me l o
abri r.
Anbal (247-183 a.C.)



Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI i



ndice general


ndice de Figuras vii
ndice de Tablas xiii
Abreviaturas y siglas xv
Prlogo xix

I FUNDAMENTOS 1

1 La Tecnologa SOI 3
1.1 Motivacin de la Tecnologa SOI .......................................................... 5
1.2 Obtencin de Obleas SOI...................................................................... 9
1.2.1 Tcnicas basadas en crecimiento epitaxial .............................. 9
1.2.2 Tcnicas basadas en recristalizacin ....................................... 11
1.2.3 Tcnicas basadas en implantacin inica ................................ 12
1.2.4 Tcnicas basadas en wafer bonding ......................................... 12
1.3 Ventajas de la Tecnologa SOI.............................................................. 15
1.4 Clasificacin de Dispositivos SOI ......................................................... 16
1.4.1 Dispositivos de una puerta ...................................................... 17
1.4.2 Dispositivos de doble puerta .................................................... 18
1.4.3 Dispositivos multipuerta ......................................................... 22
1.5 Conclusiones ......................................................................................... 24
ndice general
ii Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
2 Modelado de dispositivos semiconductores 25
2.1 Simulacin de dispositivos ................................................................... 25
2.2 Simuladores .......................................................................................... 27
2.3 Historia del modelado numrico........................................................... 28
2.4 Conclusiones ......................................................................................... 29

3 Ecuacin discreta de Poisson 1D 31
3.1 Discretizacin del espacio continuo ...................................................... 32
3.2 Diferencias finitas ................................................................................ 33
3.3 Condiciones de contorno ....................................................................... 36
3.4 Ecuacin discreta de Poisson 1D .......................................................... 37
3.4.1 Error iterativo .......................................................................... 38
3.5 Conclusiones ......................................................................................... 39

4 Aritmtica en punto flotante 41
4.1 Definicin numrica I EEE 754 ............................................................. 42
4.2 Aritmtica I EEE 754 ............................................................................ 43
4.2.1 Operacin de suma/resta .......................................................... 43
4.2.2 Operacin de multiplicacin/divisin ....................................... 44
4.2.3 Redondeo .................................................................................. 45
4.2.4 Desbordamiento ....................................................................... 46
4.2.5 Excepciones .............................................................................. 47
4.3 Conclusiones ......................................................................................... 48

5 Entorno de computacin grid 49
5.1 FPGAs .................................................................................................. 49
5.1.1 Historia .................................................................................... 50
5.1.2 Caractersticas ......................................................................... 52
5.1.3 Programacin ........................................................................... 53
5.1.4 Aplicaciones.............................................................................. 53
5.1.5 Tecnologa de la memoria de programacin ............................. 54
ndice general
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI iii
5.2 Computacin grid ................................................................................. 54
5.2.1 Historia .................................................................................... 55
5.2.2 Definicin y caractersticas ...................................................... 55
5.2.3 Ventajas y requisitos ................................................................ 56
5.2.4 Desventajas .............................................................................. 57
5.3 Conclusiones ......................................................................................... 58

II HERRAMIENTAS SOFTWARE 59

6 Herramientas software 61
6.1 Simulacin numrica ............................................................................ 61
6.1.1 MATLAB .................................................................................. 62
6.2 I mplementacin, simulacin digital y generacin de HDL .................. 64
6.2.1 Simulink ................................................................................... 64
6.2.2 Xilinx System Generator for DSP ............................................ 66
6.3 Sntesis de sistemas digitales en HDL ................................................. 69
6.3.1 Xilinx I SE Design Suite ........................................................... 69

III DESARROLLO DEL TRABAJ O Y RESULTADOS 71

7 Simulacin numrica 73
7.1 Simulacin numrica de la ecuacin discreta de Poisson 1D ............... 73
7.2 Aproximacin de la funcin exponencial .............................................. 78
7.2.1 Serie de Taylor ......................................................................... 80
7.2.2 Aproximacin lineal por tramos ............................................... 84
7.2.3 Aproximacin polinmica ptima por tramos .......................... 89
7.3 Conclusiones ......................................................................................... 93

8 Implementacin y simulacin del sistema digital 97
8.1 Circuito configuracin de memoria RAM ............................................. 98
8.2 Circuito zona de xido .......................................................................... 107
ndice general
iv Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
8.3 Circuito zona de semiconductor............................................................ 110
8.4 Circuito de parada, inicio y fin ............................................................. 115
8.5 Coprocesador para la resolucin de la ecuacin de Poisson 1D ............ 116
8.6 Conclusiones ......................................................................................... 121

9 Generacin, sntesis HDL y estimacin de consumo de
recursos 123
9.1 Arquitectura de una FPGA .................................................................. 123
9.2 Estimacin de consumo de recursos ..................................................... 125
9.2.1 Spartan 3 XC3S50 ................................................................. 125
9.2.2 Spartan 3 XC3S1000 ............................................................. 125
9.2.3 Virtex 4 XC4VFX12 ............................................................... 126
9.2.4 Virtex 4 XC4VFX100 ............................................................. 126

Conclusiones 127

IV APNDICES 129

A Programacin en MATLAB (I) 131
A.1 Simulacin numrica de la ecuacin discreta de Poisson 1D ............... 131
A.2 Serie de Taylor ..................................................................................... 132
A.3 Aproximacin lineal por tramos ........................................................... 133
A.4 Aproximacin polinmica ptima por tramos....................................... 136
A.4.1 Funcin mim ............................................................................ 138

B Xilinx Blockset 141
B.1 Addsub .................................................................................................. 141
B.2 Constant ............................................................................................... 143
B.3 Convert ................................................................................................. 144
B.4 Counter ................................................................................................. 145
B.5 Delay .................................................................................................... 146
ndice general
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI v
B.6 Down Sample........................................................................................ 147
B.7 Gateway I n ........................................................................................... 148
B.8 Gateway Out ........................................................................................ 149
B.9 Logical .................................................................................................. 149
B.10 MCode................................................................................................... 150
B.11 Mult ...................................................................................................... 151
B.12 Mux....................................................................................................... 152
B.13 Pause Simulation ................................................................................. 153
B.14 ROM ..................................................................................................... 153
B.15 Register ................................................................................................ 155
B.16 Reinterpret ........................................................................................... 155
B.17 Single Port RAM................................................................................... 156
B.18 System Generator ................................................................................. 157

C Programacin en MATLAB (II) 161
C.1 Mquina de estados finitos ControlFSM .............................................. 161
C.2 Mquina de estados finitos ControlFSM2 ............................................ 162
C.3 Mquina de estados finitos PauseFSM ................................................ 163
C.4 Mquina de estados finitos StartFSM ................................................. 164

Bibliografa 165



vi Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI vii



ndice de Figuras


1.1 Grfico de la Ley de Moore. Evolucin del nmero de transistores
por microprocesador a lo largo del tiempo ............................................ 4
1.2 Grfico de la Ley de Koomey. Evolucin de la eficiencia energtica de
diferentes microprocesadores a lo largo del tiempo ............................. 5
1.3 Aislamiento lateral mediante dixido de silicio entre transistores
NMOS y PMOS..................................................................................... 6
1.4 Transistores NMOS y PMOS fabricados sobre una oblea de
tecnologa SOI . En este caso, los canales de ambos dispositivos se
encuentran aislados entre s ................................................................ 6
1.5 Comparacin de potencia consumida y tensin de alimentacin
frente a tiempo de acceso entre la tecnologa convencional y la
tecnologa SOI ...................................................................................... 7
1.6 Comparacin de las predicciones realizadas por la ley de Moore con
el rendimiento obtenido con las tecnologas tradicionales y SOI ......... 8
1.7 Crecimiento epitaxial lateral de silicio mediante la tcnica ELOG ..... 10
1.8 Crecimiento epitaxial lateral de silicio mediante la tcnico LSPE ...... 11
1.9 Recristalizacin de silicio por medio de la tcnica Laser
Recrystallization ................................................................................... 11
1.10 Obtencin de una oblea SOI mediante la tcnica SIMOX .................... 12
1.11 Obtencin de obleas SOI mediante la tcnica ELTRAN ...................... 13
ndice de Figuras
viii Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
1.12 Obtencin de obleas SOI (UNI BOND) mediante la tcnica
SMART-CUT ........................................................................................ 14
1.13 Representacin esquemtica de un SGSOI .......................................... 17
1.14 Representacin de la seccin de dispositivos SGSOI : FD (izqda.) y
PD (dcha.) ............................................................................................. 17
1.15 Representacin de la seccin de un dispositivo VCBM ........................ 18
1.16 Representacin esquemtica de un DGSOI ......................................... 19
1.17 Representacin de la seccin de un DGSOI, dispositivo bajo estudio
en este trabajo ...................................................................................... 19
1.18 Dependencia de la densidad de carga con el espesor de la lmina de
Si en dispositivos de doble puerta. La inversin de volumen puede
observarse claramente para espesores inferiores a 10nm .................... 20
1.19 Comparacin de la dependencia de la movilidad electrnica con el
espesor de la lmina de Si en dispositivos SGSOI y DGSOI. Los
efectos de la inversin en volumen pueden observarse con claridad
suponiendo un aumento importante de la movilidad para espesores
inferiores a 10nm.................................................................................. 21
1.20 Representacin esquemtica de un trigate ........................................... 23
1.21 Representacin esquemtica de un -Gate (izqda.) y un -Gate
(dcha.) ................................................................................................... 23
1.22 Representacin esquemtica de un GAA (izqda.) y un G
4
FET (dcha.) . 24
4.1 Anatoma de un nmero en punto flotante simple precisin ............... 42
4.2 Representacin no uniforme de nmeros en punto flotante simple
precisin en la escala real .................................................................... 43
4.3 Rango de la escala real representable por el estndar I EEE 754
simple precisin .................................................................................... 43
4.4 Diagrama de flujo de la operacin suma/resta definida en el estndar
I EEE 754 .............................................................................................. 44
ndice de Figuras
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI ix
4.5 Diagrama de flujo de la operacin multiplicacin/divisin definida en
el estndar I EEE 754 ........................................................................... 45
5.1 Arquitectura interna de una FPGA...................................................... 51
5.2 Virtex-6, FPGA de Xilinx ..................................................................... 52
6.1 MATLAB, herramienta software utilizada en este trabajo para
simulacin numrica y presentacin de resultados.............................. 63
6.2 Simulink, herramienta software utilizada en este trabajo para
implementacin y simulacin de modelos ............................................ 66
6.3 System Generator for DSP, herramienta software utilizada en este
trabajo para implementacin de sistemas digitales y generacin de
cdigo HDL ........................................................................................... 68
6.4 Xilinx I SE Design Suite 13.4, herramienta software utilizada en este
trabajo para para la sntesis del sistema digital en HDL. ................... 70
7.1 Esquema de la estructura de un dispositivo DGSOI ............................ 73
7.2 Resultado de la simulacin numrica de la ecuacin discreta de
Poisson 1D realizada con MATLAB ..................................................... 76
7.3 Serie de Taylor. Error relativo en funcin del grado del polinomio de
Taylor ................................................................................................... 83
7.4 Divisin del rango de inters de la funcin exponencial en
2
bd
puntos equiespaciados ................................................................... 84
7.5 Formato a nivel de bit que presentarn todas las muestras de I(i) ... 86
7.6 Metodologa utilizada para detectar la direccin de memoria a la que
acudir dado un valor de I(i). Los valores de la funcin exponencial
evaluados en cada punto en los que se ha dividido el rango
corresponden a b(i), mientras que c(i) representa el valor de la
pendiente entre cada par de puntos ..................................................... 86
7.7 Aproximacin lineal por tramos. Error relativo en funcin del
tamao de la memoria ROM ................................................................ 89
ndice de Figuras
x Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
7.8 Aproximacin polinmica ptima por tramos. Error relativo en
funcin del tamao de la memoria ROM .............................................. 92
7.9 Aproximacin polinmica ptima por tramos. Error relativo en
funcin del grado del polinomio ............................................................ 93
7.10 Resultado de la simulacin numrica de la ecuacin discreta de
Poisson 1D tras aproximar la funcin exponencial mediante una
aproximacin polinmica por tramos, realizada con MATLAB ............ 95
8.1 Mecanismo para cambiar la direccin de memoria y poder obtener
durante el clculo de la muestra (i), la muestra siguiente (i +1) ... 99
8.2 Seales de control que permiten acceder a la muestra actual (i) a la
muestra siguiente (i +1) y realizar la escritura del resultado de la
muestra actual en la misma posicin de memoria ............................... 100
8.3 Captacin de muestras mediante biestables D habilitados por
seales de control ................................................................................. 101
8.4 Puerto de salida de la memoria RAM................................................... 101
8.5 Seales de control para habilitar los biestables de forma que capten
correspondientemente las muestras (i) y (i +1) .............................. 102
8.6 Salidas de los biestables D habilitados por seal de control. Se
observa como se ha realizado la captacin de las seales (i) y
(i +1) correctamente .......................................................................... 103
8.7 Seales de control ................................................................................. 103
8.8 Mquina de estados finitos implementada para la generacin de las
seales de control ................................................................................. 104
8.9 Circuito configuracin de memoria RAM ............................................. 105
8.10 Resultado obtenido tras iterar la funcin durante 10 ciclos.............. 106
8.11 Mquina de estados para tipo Mealy implementada para generar
seales de control ................................................................................. 107
8.12 Circuito zona de xido .......................................................................... 108
ndice de Figuras
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI xi
8.13 Seales de control generadas por la mquina de estados finitos
ControlFSM2 ........................................................................................ 109
8.14 Primera iteracin ejecutada del mtodo iterativo que resuelve la
ecuacin de Poisson 1D. La salida es constante a un valor de 0.5
para las muestras pertenecientes a la zona de semiconductor ............ 110
8.15 Circuito zona de semiconductor ........................................................... 112
8.16 Subsistema construido en el circuito zona de semiconductor que, a
partir de una direccin ROM, extrae los coeficientes del polinomio de
Taylor y realiza la evaluacin en el punto p =
v()
v
T
............................... 113
8.17 Primera iteracin ejecutada del mtodo iterativo que resuelve la
ecuacin de Poisson 1D. La salida es constante a un valor de 0.5
para las muestras pertenecientes a la zona de xido ........................... 114
8.18 Mquina de estados finitos tipo Mealy implementada para el circuito
de inicio y fin ........................................................................................ 116
8.19 Coprocesador para la resolucin de la ecuacin de Poisson 1D en
estructuras SOI .................................................................................... 118
8.20 Salida obtenida para un umbral de 10
-2
............................................... 119
8.21 Salida obtenida para un umbral de 10
-4
............................................... 119
8.22 Salida obtenida para un umbral de 10
-6
............................................... 120


xii Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI xiii



ndice de Tablas


4.1 Conjunto de tipos de nmeros representables por el estndar I EEE
754 simple precisin ............................................................................. 42
4.2 Empleo de bits de guarda para el proceso de redondeo especificado
en el estndar I EEE 754 ...................................................................... 46
6.1 Requisitos mnimos recomendados por el software de MATLAB en
funcin del SO ...................................................................................... 63
6.2 Requisitos mnimos recomendados por Xilinx I SE Design Suite 13.4
en funcin del SO ................................................................................. 68
7.1 Declaracin de constantes para la simulacin numrica ..................... 74
7.2 Declaracin de constantes de entrada para la simulacin numrica ... 75
7.3 Estudio del comportamiento del esquema numrico en funcin de sus
parmetros crticos ............................................................................... 77
7.4 Carga computacional y consumo de recursos adicional que implica
adoptar la serie de Taylor truncada como alternativa a la funcin
exponencial ........................................................................................... 81
7.5 Error de aproximacin cometido en funcin del orden del polinomio
de Taylor ............................................................................................... 82
7.6 Carga computacional y consumo de recursos de la tcnica de
aproximacin lineal por tramos ............................................................ 87
7.7 Error de aproximacin cometido en funcin de la colocacin del
punto binario ........................................................................................ 88
ndice de Tablas
xiv Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
7.8 Carga computacional y consumo de recursos de la tcnica de
aproximacin polinmica ptima por tramos ....................................... 91
7.9 Error de aproximacin cometido en funcin del tamao de la
memoria y del grado del polinomio ...................................................... 91
7.10 Comparacin de carga computacional, consumo de recursos y error
entre las tres tcnicas de aproximacin de la funcin exponencial
desarrolladas en este trabajo ............................................................... 94
8.1 Evaluacin del error de aproximacin introducido al adoptar la
tcnica de aproximacin de la funcin exponencial, aproximacin
polinmica ptima por tramos. Se comparan los resultados obtenidos
mediante la simulacin numrica en MATLAB y la simulacin
digital en Simulink ............................................................................... 121
9.1 Estimacin de recursos para una Spartan 3 XC3S50 .......................... 125
9.2 Estimacin de recursos para una Spartan 3 XC3S1000 ...................... 125
9.3 Estimacin de recursos para una Virtex 4 XC4VFX12 ........................ 126
9.4 Estimacin de recursos para una Virtex 4 XC4VFX100 ...................... 126

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI xv



Abreviaturas y siglas


1D Unidimensional
2D Bidimensional
ALU Arithmetic Logic Unit
API Application Programming Interface
ASIC Application-Specific Integrated Circuit
BJ T Bipolar J unction Transistor
BOX Buried Oxide
BTE Boltzmann Transport Equation
CERN European Organization for Nuclear Research
CLB Configurable Logic block
CPLD Complex Programmable Logic Device
CYNTHIA Cylindrical Thin-Pillar
DGSOI Double Gate Silicon on I nsulator
DSP Digital Signal Processor
DTMOS Dynamic Threshold MOS
EBR Electron Beam Recrystallization
EDA Electronic Design Automation
EDG European Data Grid
Abreviaturas y siglas
xvi Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
ELOG Epitaxial Lateral OverGrowth
ELTRAN Epitaxial Layer TRANsfer
EPROM Erasable Programmable Read-Only Memory
FD Fully Depleted
FPGA Field Programmable Gate Array
FPU Floating Point Unit
FPU Floating Point Unit
GAA Gate All Around
GPL General Public License
GUI Graphical User Interface
HDL Hardware Description Language
IDE I ntegrated Development Environment
IEEE Institute of Electrical and Electronics Engineers
IMPATT IMPact ionization Avalanche Transit Time
IOB I nput/Output Block
ISE I ntegrated Software Environment
J FET J unction Field-Effect Transistor
LAN Local Area Network
LDMOS Lateral Double-Diffused MOS
LIGBT Lateral Insulated Gate Bipolar Transistor
LR Laser Recrystallization
LSPE Lateral Solid Phase Epitaxy
LUT Look-Up Table
MATLAB MATrix LABoratory
MEMS Micro Electro-Mechanical Systems
Abreviaturas y siglas
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI xvii
MESFET MEtal Semiconductor Field Effect Transistor
MOSFET Metal-Oxide-Semiconductor Field-Effect Transistor
NTT Nippon Telegraph and Telephone
PAL Programmable Array Logic
PC Personal Computer
PD Partially Depleted
PDA Personal Digital Assistant
PLD Programmable Logic Device
PROM Programmable Read-Only Memory
RAM Random-Access Memory
RAW Read After Write
RBW Read Before Write
ROM Read-Only Memory
RTL Register Transfer Level
SAN Storage Area Network
SCE Short Channel Effects
SGSOI Single Gate Silicon On I nsulator
SIMOX Separation by IMplanted OXygen
SO Sistema Operativo
SOI Silicon on I nsulator
SOS Silicon on Sapphire
SPEAR Solid Phase Epitaxy and Regrowth
ULA Uncommitted Logic Array
UTB Ultra-Thin Body
VCBM Voltage-Controlled Bipolar MOS
Abreviaturas y siglas
xviii Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
VDMOS Vertical Double-Diffused MOS
VHDL VHSI C Hardware Description Language
VHSIC Very-High-Speed Integrated Circuits
VLSI Very Large Scale Integration
ZMR Zone Melting Recrystallization


Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI xix



Prlogo

En los ltimos 30 aos, la microelectrnica ha sufrido un desarrollo espectacular
gracias a la continua miniaturizacin de los dispositivos en aras de una mayor
integracin y velocidad. La ley de Moore [Moo65] y la ley de Koomey [Koo10] se han
ido cumpliendo de forma ms o menos exacta durante todo este perodo de tiempo al
duplicarse las prestaciones de los circuitos electrnicos cada dieciocho meses
aproximadamente. Actualmente, la ley de Moore est quedando relegada por la
actual tendencia denominada More than Moores Law (MtM), que centra en la
evolucin de la integracin del sistema en lugar de la densidad de transistores
[I TR11]. De esta forma, en la tecnologa actual, ciertas estructuras existentes en los
dispositivos se fabrican utilizando unas pocas capas atmicas de espesor y se espera
que esta tendencia se extienda a otras estructuras y dimensiones como pueden ser la
longitud y el espesor de canal.
Por tanto, dentro de unos aos la tecnologa se encontrar muy cerca de alcanzar
los lmites fsicos de la miniaturizacin. Sin embargo, este posible final de la hoja de
ruta, no significa necesariamente un estancamiento en la mejora de las prestaciones.
Durante todos estos aos el impulsor de la industria electrnica fue la integracin y
el escalado. A partir de ahora, la innovacin deber estar basada principalmente en
la introduccin de nuevas arquitecturas, nuevas tecnologas de fabricacin y en el uso
de conceptos de funcionamiento no convecionales para los dispositivos que formen los
sistemas de altas prestaciones futuros.
En este trabajo se propone el estudio de un dispositivo no convencional de doble
puerta fabricado en silicio sobre aislante (Silicon On Insulator, SOI ). Esta nueva
tecnologa de fabricacin permite fabricar estructuras de ms de una puerta sobre
sustratos de silicio. Para el estudio y caracterizacin de los transistores de doble
puerta basados en tecnologa SOI (Double Gate SOI, DGSOI ), se propone investigar el
comportamiento de la tensin a lo largo del canal mediante la discretizacin de la
ecuacin de Poisson en una dimensin.
Prlogo
xx Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Desde los inicios de la electrnica, el modelado matemtico de sus componentes
ha sido una parte bsica de su desarrollo, ya que permite experimentar su
comportamiento, mejorando tanto en el diseo de nuevos circuitos como en el
desarrollo de nuevos dispositivos.
Posteriormente, con la llegada de los ordenadores, la posibilidad de simular el
comportamiento de un dispositivo o circuito antes de su construccin, multiplic la
facilidad para iniciar nuevos proyectos y redujo el coste en la inversin necesaria para
su desarrollo, obtenindose resultados muy cercanos al comportamiento real del
dispositivo. Sin embargo, la utilizacin de este tipo de herramientas siempre ha
tenido un alto coste computacional que, pese al imparable avance de la informtica,
sigue requiriendo de sistemas de alto rendimiento.
Por todo esto, el objetivo del presente trabajo fin de carrera es evaluar la
viabilidad del uso de coprocesadores en punto flotante y simple precisin basados en
FPGAs (Field Programmable Gate Array) para la resolucin de la ecuacin de Poisson
1D en estructuras SOI . Adems, el objeto de dichos coprocesadores es su integracin
como nodos de procesamiento especfico dentro de una red de computacin grid.
El trabajo est estructurado de la siguiente forma:
PARTE I: FUNDAMENTOS
Captulo 1: En este primer captulo se presenta la tecnologa SOI necesaria para
la fabricacin de transistores de doble puerta basados en silicio. Tras introducir las
motivaciones que llevaron al desarrollo de esta tecnologa, se describen los distintos
procesos utilizados para obtener obleas SOI . A continuacin se hace una descripcin
de las principales ventajas con respecto a la tecnologa de silicio convencional y se
realiza una taxonoma de los dispositivos que pueden ser fabricados a partir de obleas
SOI .
Captulo 2: En este captulo se introduce el concepto de modelado de dispositivos
semiconductores y su motivacin. As, se describen las herramientas que permiten
modelar el comportamiento de un dispositivo dependiendo del parmetro que se
pretenda evaluar. Dichas herramientas se basan en el modelado numrico de
ecuaciones diferenciales parciales, por lo que al final de este captulo se describe la
historia y evolucin del dispositivo de modelado numrico.

Prlogo

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI xxi
Captulo 3: En este captulo se presenta la herramienta desarrollada en este
trabajo. As, se describe el mtodo numrico utilizado para resolver la ecuacin de
Poisson 1D. Para ello, se presenta el mtodo de diferencias finitas empleado en la
discretizacin de la ecuacin continua de Poisson 1D y las condiciones de contorno
evaluadas. Al final del captulo se encuentra un breve estudio del error del mtodo
numrico.
Captulo 4: A continuacin se describe el formato numrico empleado en el
trabajo, punto flotante y simple precisin. Para ello, se describe el estndar I EEE 754
para aritmtica en punto flotante incluyendo definicin numrica, aritmtica, tipo de
redondeo, tipo de desbordamiento y excepciones.
Captulo 5: Este captulo presenta la descripcin del entorno de ejecucin del
trabajo. El objetivo es resolver la ecuacin de Poisson 1D en una plataforma
reprogramable (FPGA) que pueda formar parte de una red de computacin grid. Para
ello, encontramos la definicin de ambos conceptos, una descripcin breve de su
historia, as como la justificacin de implementacin en el presente trabajo.

PARTE II: HERRAMIENTAS SOFTWARE
Captulo 6: En este captulo se describen las herramientas software utilizadas en
este trabajo. La primera de ellas, consiste en la herramienta utilizada para realizar
la simulacin numrica de la ecuacin discreta de Poisson 1D. En este caso se trata
de MATLAB, un software matemtico con lenguaje de programacin propio que
permite, entre otras funcionalidades, resolucin de problemas iterativos y
representaciones grficas para visualizacin de datos.
Seguidamente, se describen las dos herramientas utilizadas para obtener el
sistema en lenguaje de descripcin hardware (HDL). Por un lado se habla de
Simulink un entorno grfico que opera sobre MATLAB y que permite el desarrollo y
simulacin de sistemas dinmicos y embebidos. Por otro lado se encuentra Xilinx
System Generator for DSP, una herramienta que permite el diseo de sistemas
digitales mediante el modelado RTL operando sobre Simulink y MATLAB y la
generacin automtica de cdigo HDL.
Finalmente se presenta Xilinx ISE Design Suite, herramienta software que
permite la sntesis y el anlisis de sistemas implementados en HDL.
Prlogo
xxii Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
PARTE III: DESARROLLO DEL TRABAJ O Y RESULTADOS
Captulo 9: En este captulo se realiza la simulacin de un DGSOI mediante
MATLAB. El principal problema que presenta la ecuacin discreta de Poisson 1D es
su dependencia con la funcin exponencial. El estndar I EEE 754 que describe la
aritmtica en punto flotante no contempla operaciones no elementales, por lo que,
debe utilizarse una alternativa para la aproximacin de la funcin exponencial
continua. Se describen tres tcnicas para dicho clculo junto con un estudio
cuantitativo del error producido por dicha aproximacin y una evaluacin de la carga
computacional y consumo de recursos que implican la adopcin de dichas tcnicas.
Ser un compromiso entre estos factores lo que justificar la eleccin de una de estas
tcnicas. Finalmente, se realiza la simulacin de la ecuacin discreta de Poisson 1D
aplicando dicha tcnica de aproximacin de la funcin exponencial.
Captulo 10: Una vez detallada la ecuacin discreta y la aproximacin para la
funcin exponencial y simulado su comportamiento, se procede al diseo digital RTL
mediante Simulink y System Generator del sistema que implementa la resolucin a
dicha ecuacin. Para ello se divide el sistema global en subsistemas digitales con
funcionalidades especficas. As, se presenta la descripcin de cada circuito junto con
la simulacin de su funcionamiento y se proponen diferentes alternativas para
optimizar cada subsistema. A continuacin, los subsistemas se ensamblan en un
nico circuito digital que obtiene la simulacin de un DGSOI . Finalmente, se realiza
un estudio del error de los resultados obtenidos.
Captulo 11: Una vez construido el circuito digital que implementa la resolucin
de la ecuacin de Poisson 1D, se procede a la generacin del cdigo en lenguaje de
descripcin hardware. Mediante la herramienta Xilinx I SE Design Suite se procede a
la sntesis del sistema con dos sintetizadores diferentes: XST y Precision. A
continuacin, se definen detalladamente los recursos de los que se componen dichas
plataformas configurables, para, seguidamente, presentar un estudio sobre la
estimacin de consumo de estos recursos en varias FPGAs actuales.
Tras las conclusiones del trabajo se incluyen tres apndices. El primero y el
tercero incluyen los programas realizados en MATLAB para la simulacin numrica y
para la implementacin de mquinas de estado finito. En el segundo apndice se
describen los bloques utilizados en este trabajo del Xilinx Blockset que ofrece System
Generator en Simulink para la construccin de los diferentes circuitos.

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 1








Parte I
FUNDAMENTOS











2 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI



Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 3



Captulo 1

La Tecnologa SOI

La tecnologa de circuitos integrados tradicional est basada en el concepto,
introducido por Noyce [Noy77] y Kilby [Kil76] a finales de los aos 70, de que un
circuito formado por varios transistores puede realizarse sobre una misma pieza de
silicio (Si), aislando unos circuitos de los otros mediante: uniones PN polarizadas en
inversa, la utilizacin de xidos de campo o la introduccin de canales de parada. A
pesar de que la integracin en circuitos monolticos ha revolucionado la tecnologa y
el mundo que nos rodea en general, conforme la microelectrnica se ha ido
desarrollando, ha quedado clara la necesidad de incorporar nuevos mtodos para
aislar dispositivos vecinos dentro de un mismo chip. Entre los efectos perjudiciales
que podemos encontrar se encuentran la introduccin de capacidades parsitas extras
que disminuyen la velocidad de operacin de los circuitos o la reduccin de la
densidad de integracin. Asimismo, a altas temperaturas las corrientes de prdida
disminuyen el aislamiento entre los distintos dispositivos en un circuito integrado
[Sam06].
Actualmente, la industria semiconductora mantiene unas mximas conocidas
como ley de Moore y ley de Koomey. La ley de Moore, formulada por Gordon E. Moore
en 1965, predice que las prestaciones de los circuitos electrnicos, en trminos de
nmero de transistores por integrado, se duplica cada dieciocho meses. La ley de
Koomey, formulada por J onathan Koomey en 2010, predice que la eficiencia
energtica de los circuitos integrados se duplica cada dieciocho meses. Estas mejoras
se han venido haciendo a costa de construir los componentes que forman parte de los
circuitos integrados cada vez ms pequeos. Reducir el tamao de los transistores
permite incluir cada vez ms dispositivos en la misma rea de un circuito integrado y
permite que stos conmuten ms rpido al reducir la capacitancia de la compuerta.


4 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Sin embargo, al reducirse las dimensiones crticas de los dispositivos por debajo de un
umbral situado sobre 0.1 m, han aparecido problemas cuya solucin no ha resultado
trivial y ha puesto en duda la posibilidad de mantener esta tendencia a largo plazo,
que por otro lado, se ha mantenido desde mediados de los aos 70 del siglo XX.

Figura 1.1 Grfico de la Ley de Moore. Evolucin del nmero de transistores por microprocesador
a lo largo del tiempo.

La solucin a estos problemas ha pasado por un replanteamiento total de los
conceptos clsicos que han sido utilizados hasta ahora en todos los aspectos del
diseo. Por tanto, ha sido necesario optimizar todas y cada una de las reas que
intervienen en la fabricacin del producto final: la obtencin del sustrato sobre el que
se disea el circuito, optimizacin de dispositivos, creacin de nuevos circuitos,
invencin de nuevas arquitecturas para microprocesadores y replanteamiento de
encapsulados e interconexiones exteriores. Por otro lado, se ha buscado una cierta
compatibilidad con los procesos y tcnicas existentes de forma que se han mantenido
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 5
las distintas lneas de produccin que no han necesitado una agresiva reconversin,
pudindose adems haber aprovechado ciertos procesos actuales de forma que las
costosas salas blancas construidas durante siglo XX hayan podido ser amortizadas.

Figura 1.2 Grfico de la Ley de Koomey. Evolucin de la eficiencia energtica de diferentes
microprocesadores a lo largo del tiempo.


1.1 Motivacin de la Tecnologa SOI
Cuando confeccionados un circuito integrado es posible, y en algunos casos ventajoso,
realizar el aislamiento mediante dielctricos en vez de uniones en inversa (el
dielctrico ms usado es el dixido de silicio, SiO2) crendose las denominadas
trincheras que realizan un aislamiento lateral.
1.1 Motivacin de la Tecnologa SOI
6 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Figura 1.3 Aislamiento lateral mediante dixido de silicio entre transistores NMOS y PMOS.

Sin embargo, una reciente tecnologa desarrollada en las ltimas dcadas permite
crear obleas de silicio sobre las que se deposita una lmina de aislante (SiO2
normalmente) construyndose los dispositivos a partir de una capa de silicio
monocristalino colocada sobre esta capa de dielctrico, tal y como podemos observar
en la Figura 1.4:

Figura 1.4 Transistores NMOS y PMOS fabricados sobre una oblea de tecnologa SOI . En este caso, los
canales de ambos dispositivos se encuentran aislados entre s.

Aproximadamente desde 1998 las aplicaciones comerciales de los dispositivos
fabricados con SOI han crecido exponencialmente. De esta manera, I BM comenz a
utilizar la tecnologa SOI en el microprocesador de alta gama RS64-I V I star
PowerPC-AS en 2000. Otros ejemplos de microprocesadores construidos sobre la
tecnologa SOI son los AMD de 130 nm, 90 nm, 65 nm y 45 nm de un solo ncleo, dos,
cuatro e incluso seis ncleos, desde 2001. Sin embargo, Intel sigue construyendo sus
principales procesadores con tecnologa convencial. Pese a que desde 2010, varias
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 7
fuentes aseguraban que Intel podra cambiar a SOI , an no la han implantado como
principal tecnologa [Web00].
Tres han sido las razones principales para el desarrollo y el uso de la tecnologa
SOI buscando siempre un mejor comportamiento de los dispositivos all donde la
tecnologa convencial de Si es ms debil [CC03]:
I Durante las dcadas de los 70 y 80 del siglo XX y debido a la Guerra Fra,
exista una gran preocupacin por realizar circuitos resistentes a los efectos
de las radiaciones ionizantes que pudiesen operar en un hipottico escenario
de guerra nuclear. La tecnologa convencional muestra una conexin elctrica
implcita entre los dispositivos sobre el mismo sustrato, mientras que la
delgada capa de Si activo, que presenta la tecnologa SOI sobre el xido,
minimiza el impacto de la radiacin en las propiedades del dispositivo. En
efecto, la mayora de la carga generada por las radiaciones ionizantes es
detenida por el xido enterrado (Buried Oxide o BOX) de forma que la
corriente extra generada es muy pequea.
I I Los circuitos basados en tecnologa SOI presentan una menor capacidad de
puerta. Esta mejora ha provocado que muchas compaas se decidan por el
cambio a esta tecnologa. En aplicaciones digitales, por ejemplo, para una
misma tensin de alimentacin los circuitos SOI permiten mayores
velocidades de operacin. Visto desde otro punto de vista, circuitos operados
con menores tensiones pueden operar a la misma velocidad que sus
equivalentes fabricados con tecnologa tradicional de silicio, con la
consiguiente disminucin del consumo de potencia que ello supone.

Figura 1.5 Comparacin de potencia consumida y tensin de alimentacin frente a tiempo de acceso entre
la tecnologa convencional y la tecnologa SOI .
1.1 Motivacin de la Tecnologa SOI
8 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
I I I Finalmente, conforme se ha acercado a lo que se conoce como el final de la
hoja de ruta se ha hecho necesario el cambio de tecnologa. La razn principal
es que el comportamiento de los dispositivos con longitudes de puerta
inferiores a 25 nm no es el adecuado cuando son fabricados con tecnologa
CMOS convecional debido bsicamente a los efectos de canal corto (Short
Channel Effects o SCE), resultando stos cada vez ms difciles de controlar.

Figura 1.6 Comparacin de las predicciones realizadas por la ley de Moore con el rendimiento obtenido con
las tecnologas tradicionales y SOI .

El cambio de tecnologa no ha resultado tan crtico como se poda pensar en un
principio. Una vez superado el reto tecnolgico de crear lminas de Si cristalino sobre
un sustrato dielctrico, el diseo de los circuitos en s es bastante parecido al de la
tecnologa anterior. En la prctica no son necesarias grandes modificaciones en los
diseo para traducir un circuito de tecnologa convencional o bulk a otro SOI. De
hecho, muchas de las estructuras que se deban crear en los layouts para asegurar el
correcto aislamiento de los dispositivos y evitar efectos parsitos como corrientes de
fuga, fotocorrientes inducidas por radiacin o el latch-up, no son necesarias debido al
BOX y al aislamiento lateral dielctrico. As, los chips obtenidos resultan ms simples
en su diseo y compactos.
La tecnologa SOI permite una mayor variedad de estructuras que no eran
realizables en otras tecnologas. De esta manera, han aparecido gran cantidad de
nuevos dispositivos basados en diferentes conceptos, siendo posible integrar en un
mismo chip elementos tan diferentes como MOSFETs, MEMS o guas de onda
pticas. Adems, aparecen nuevos parmetros en el diseo que permiten mayor
control sobre las estructuras a realizar como pueden ser los espesores tanto de la
lmina de Si como del BOX.
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 9
1.2 Obtencin de Obleas SOI
El principal problema para la creacin de obleas SOI es que la lmina de silicio que se
encuentra sobre el xido debe ser monocristalina mientras que la capa aislante es
amorfa. No existe ningn mtodo de deposicin que permita obtener un material
monocristalino sobre un sustrato amorfo. Se han realizado numerosas
aproximaciones que, a pesar de haber ayudado a un mejor conocimiento de la
estructura y morfologa de las lminas de silicio, no han permitido desarrollar
tcnicas comerciales. El objetivo es obtener una fina capa monocristalina de silicio
sobre un aislante con [Gam03]:
Densidades de defectos tan pequeas como las obtenidas con las tcnicas de
crecimiento en volumen.
Espesor pequeo y muy uniforme en toda la superficie de la oblea.
Una interfase silicio-aislante de alta calidad.
Buenas caractersticas elctricas.
Muchas tcnicas han sido desarrolladas para producir una capa de silicio
monocristalino sobre un aislante [GGR
+
08]. Algunas estn basadas en el crecimiento
epitaxial de silicio sobre un sustrato cubierto de aislante (tcnicas epitaxiales). Otras
tcnicas se basan en la cristalizacin de una lmina delgada de polisilicio
previamente fundido y recrecimiento (tcnicas recristalizacin). Las obleas de silicio
sobre aislante pueden tambin producirse a partir de una oblea de silicio
convencional aislando una pequea capa del sustrato mediante la implantacin inica
creando as una capa de aislante enterrado (tcnicas de implantacin inica). No
obstante estos procedimiento no proporcionan regiones activas de calidad comparable
a las obleas de silicio puro y adems los costos son elevados. Actualmente las tcnicas
ms utilizadas son aquellas que pueden obtener obleas SOI mediante la unin de una
oblea de silicio depositada sobre un aislante y un sustrato mecnico (tcnicas wafer
bonding). Estas tcnicas proporcionan buenos resultados y mejoran la calidad a la vez
que reducen los costes. A continuacin se presentan las tcnicas ms usuales de
obtencin de obleas SOI [Col04][J aj04].

1.2.1 Tcnicas basadas en crecimiento epitaxial
SOS (Si l i con on Sapphi re): Heteroepitaxia de silicio sobre un sustrato de zafiro
(Al2O3) por descomposicin, generalmente del silano (SiH4). La ventaja del zafiro es
que es un excelente aislante elctrico, por lo que evita que las corrientes parsitas
1.2 Obtencin de obleas SOI
10 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
causadas por radiacin se propaguen a elementos cercanos del circuito. El zafiro y el
silicio presentan una distinta constante de red, por lo que nos encontramos con
numerosos defectos en la lmina de silicio prxima a la interfase. Para ello se realiza
una implantacin posterior de iones de silicio a baja energa, para no daar la
superficie, y una recristalizacin por epitaxia en fase slida de la parte amorfizada
por la implantacin, usando como semilla la parte superior de mejor calidad a alta
temperatura. Este proceso es conocido como SPEAR (Solid Phase Epitaxy and
Regrowth) [I mt06].
ELOG (Epi taxi al Lateral OverGrowth): La tcnica de recrecimiento epitaxial
lateral [Usu97] es una homoepitaxia que consiste en crecer silicio sobre un patrn de
ventanas abiertas fotolitogrficamente sobre un dielctrico (SiO2 o SiN4) crecido
previamente sobre un sustrato de silicio. El crecimiento comienza slo en el interior
de las ventanas, hasta que son rebasadas y se produce el crecimiento lateral. La
propagacin de las dislocaciones ascendente se detiene, generndose una capa de muy
baja densidad de defectos. La tcnica ELOG es utilizada para fabricar dispositivos
tridimensionales y de doble puerta [Nar03].

Figura 1.7 Crecimiento epitaxial lateral de silicio mediante la tcnica ELOG.

LSPE (L ateral Sol i d Phase Epi taxy): La tcnica de epitaxia lateral en fase slida
est basada en el crecimiento homoepitaxial lateral de silicio cristalino a travs de la
cristalizacin controlada de silicio amorfo (-Si). Se precisa de una semilla para
proporcionar la informacin necesaria sobre el cristal para el crecimiento. La delgada
capa de silicio amorfo puede o bien ser depositada u obtenerse amorfizando una capa
de polisilicio. Esta tcnica ha sido usada para fabricar MOSFETs de doble puerta.
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 11

Figura 1.8 Crecimiento epitaxial lateral de silicio mediante la tcnico LSPE.


1.2.2 Tcnicas basadas en recristalizacin
Un transistor MOS puede fabricarse en una capa de polisilicio de grano gordo
depositado sobre un sustrato de xido de silicio. Debido a las fronteras de los granos
nos encontramos una baja movilidad superficial y una alta tensin umbral. Estos
valores pueden mejorarse mediante la pasivacin de los enlaces de silicio con un
tratamiento con plasma de hidrgeno. Sin embargo, se requieren unas mejores
propiedades finales para el circuito integrado, de tal manera que se debe eliminar las
tensiones en la frontera con la capa de silicio. Este es el objetivo de las tcnicas de
recristalizacin basadas en: lser (LR, Laser Recrystal l i zati on), haz de electrones
(EBR, El ectron Beam Recrystal l i zati on) o fusin zonal (ZMR, Zone Mel ti ng
Recrystal l i zati on). Las tcnicas basadas en lser o haz de electrones son procesos
relativamente lentos, mientras que la tcnica fusin zonal utiliza luz incoherente o
una fuente cercana a infrarrojo.

Figura 1.9 Recristalizacin de silicio por medio de la tcnica Laser Recrystallization.

1.2 Obtencin de obleas SOI
12 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
1.2.3 Tcnicas basadas en implantacin inica
SIMOX (Separati on by I Mpl anted OXygen): Es la tcnica ms utiliza durante la
ltima dcada. La tcnica SI MOX fue desarrollada en 1978 por K. I zumi, M. Doken y
H. Ariyoshi del NTT [IDA78] y consiste en implantar una alta dosis de iones de
oxgeno sobre una oblea de silicio seguido de un recocido a alta temperatura
(annealing) formndose de esta manera una capa de xido enterrado (BOX). El
espesor de la capa de silicio se controla por la energa de la implantacin, mientras
que la dosis de iones de oxgeno controla el espesor del xido enterrado.

Figura 1.10 Obtencin de una oblea SOI mediante la tcnica SI MOX.


1.2.4 Tcnicas basadas en wafer bondi ng
ELTRAN (Epi taxi al Layer TRANsfer): Esta tcnica fue desarrollada por Canon en
1990 como una tcnica para la obtencin industrial de obleas SOI . En ella se combina
la formacin de silicio poroso, el crecimiento epitaxial y el wafer bonding consistente
en la unin hidroflica de dos obleas para obtener una sola. Es posible crear silicio
poroso haciendo pasar una corriente elctrica por una muestra del material inmerso
en cido fluorhdrico (HF). El grado de porosidad se puede controlar mediante la
corriente que se hace pasar durante la reaccin. Esta tcnica utiliza el hecho de que
el silicio poroso es mecnicamente dbil pero mantiene la estructura cristalina del
sustrato en el que se form. Mediante un recocido a elevadas temperaturas en
ambiente de hidrgeno se sellan los poros en la superficie de la oblea.

Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 13

Figura 1.11Obtencin de obleas SOI mediante la tcnica ELTRAN.

En primer lugar se crea una lmina de silicio poroso con dos grados diferentes de
porosidad. Esto se consigue variando la corriente que se hace pasar por la muestra
durante el proceso, de forma que aparece una zona mecnicamente ms dbil en la
frontera entre las dos zonas con porosidad diferente. Sobre este silicio poroso sellado
se crece epitaxialmente una lmina de silicio y a continuacin un xido trmico. En
este punto la oblea se une con otra que actuar como soporte mecnico. Puesto que se
produce una tensin muy fuerte en la interfase entre las dos lminas de diferente
porosidad, por ejemplo, un chorro de agua puede producir un corte limpio entre estas
dos interfases. El silicio poroso que permanece en la superficie de la oblea se elimina
quedando la superficie del silicio sobre aislante (SOI) que nuevamente se somete a un
proceso de recocido en un ambiente rico en hidrgeno. La oblea sobrante se puede
reutilizar nuevamente con el consiguiente ahorro de costes. La tecnologa ELTRAN se
ha empleado con xito en obleas de 300mm (12in) y se han conseguido espesores de
silicio inferiores a 30nm con una calidad comparable a otras ms gruesas. El proceso
de obtencin de una oblea SOI por el mtodo ELTRAN puede observarse en la
Figura 1.11.
SMART-CUT: Esta tcnica combina los procesos de implantacin inica y wafer
bonding para transferir una lmina delgada sobre otra oblea o un sustrato aislante.
El proceso, desarrollado en el CEA-LETI de Grenoble [Bru95], utiliza una
implantacin de protones a modo de escalpelo atmico que corta a travs de la red
cristalina. De esta forma es posible realizar una transferencia limpia y uniforme de
1.2 Obtencin de obleas SOI
14 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
una fina capa de Si a otro sustrato. Las obleas SOI fabricadas mediante este proceso
son denominadas UNI BOND. Este proceso ha demostrado ser uno de los ms eficaces
y, hoy en da, es el ms utilizado para la obtencin de obleas SOI para uso comercial.

Figura 1.12 Obtencin de obleas SOI (UNI BOND) mediante la tcnica SMART-CUT.

La Figura 1.12 muestra la secuencia de pasos seguida para fabricar obleas SOI
siguiendo la tcnica Smart-Cut. En primer lugar se parte de dos obleas de silicio
convencionales. Seguidamente se oxida trmicamente una de ellas con el espesor
deseado. Este xido se convertir posteriormente en el xido enterrado de los
dispositivos resultantes. El siguiente paso consiste en realizar una implantacin
inica de hidrgeno a travs del xido, de forma que se crea una zona de cristal
debilitada por el proceso. Despus de la implantacin, la oblea soporte y la oblea
semilla se limpian cuidadosamente para eliminar cualquier partcula o contaminante
y hacer las dos superficies hidroflicas. Las dos obleas se alinean y funden para
formar un nico cuerpo. A continuacin estas obleas se introducen en un horno que
produce la separacin entre obleas a lo largo del implante de hidrgeno que es la zona
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 15
ms frgil mecnicamente. La superficie de las obleas resultantes presenta una
rugosidad de unos pocos nanmetros. Un proceso posterior de pulido consigue la
misma rugosidad superficial que una oblea de silicio convencional. La oblea semilla
puede reutilizarse de nuevo reduciendo el costo final de la oblea SOI. Esta oblea
semilla es la que proporciona la lmina de silicio y por este motivo debe ser de gran
calidad mientras que la segunda oblea acta nicamente como soporte mecnico por
lo que no se necesita gran calidad. El hecho de definir el espesor de lmina de silicio
mediante la energa de implantacin permite un control mucho ms preciso del que
es posible conseguir con cualquier proceso mecnico o qumico. El espesor del xido
y/o de la lmina enterrada pueden ajustarse en el proceso Smart-Cut eligiendo la
energa de implante y el tiempo de oxidacin. Actualmente se utilizan nuevas
tcnicas para mejorar los resultados, por ejemplo el uso combinado de hidrgeno y
helio se ha demostrado ms eficaz en la separacin de las obleas.

Existen otros procesos basados en la tcnica del wafer bonding que permiten la
obtencin de lminas de silicio monocristalinas sobre sustratos de casi cualquier tipo.
De esta forma es posible obtener circuitos para ciertas aplicaciones en las que las
propiedades del soporte mecnico sean importantes, como puede ser el caso de
circuitos integrados sobre sustratos flexibles, vidrio o plsticos, permitiendo una
mejor integracin de los mismos en sistemas empotrados. La repeticin de estos
procesos sobre un mismo sustrato permite la integracin de circuitos no planares en
estructuras tridimensionales con el consiguiente aumento de la integracin.

1.3 Ventajas de la Tecnologa SOI
Como se ha mostrado en los apartados anteriores, a pesar de que la mayora de los
procesos de fabricacin para dispositivos SOI son compatibles con los estndar de la
industria semiconductora, el coste final del producto es un poco ms elevado que en el
caso de los basados en tecnologa convencional debido principalmente a que las obleas
deben ser preprocesadas para conseguir el sustrato deseado para cada tipo de
aplicacin. A pesar de todo, las ventajas de la tecnologa SOI sobre la bulk son
importantes con lo que el incremento en el gasto est en cierta medida justificado,
siendo en algunos casos la nica opcin para obtener ciertas estructuras o para
integrar ciertos componentes como se comentar ms adelante. Entre las principales
ventajas que se pueden enumerar se encuentran las siguientes [CC03]:
1.4 Clasificacin de dispositivos SOI
16 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Tecnologa completamente compatible con los procesos de fabricacin
tradicionales.
Reduccin del nmero de pasos en ellos.
Aumento, en algunos casos, del nivel de integracin debido a una
simplificacin en los layouts de los circuitos a fabricar.
Resistencia a las radiaciones ionizantes.
Menor tensin de alimentacin para una determinada velocidad de operacin.
Mayor velocidad de operacin para una determinada tensin de alimentacin.
Mayor control sobre los efectos de canal corto.
Reduccin de capacidades parsitas.
Mayor flexibilidad en las estructuras.
I ntegracin de diferentes tipos de estructuras en un mismo chip tales como
dispositivos de alta velocidad, de potencia, MEMS y elementos pticos.
Posibilidad de fabricar no slo dispositivos planares sino tambin
tridimensionales.
Fabricacin de circuitos integrados tridimensionales mediante la aplicacin
de sucesivos procesos de transferencia de lminas o pegado de obleas.

1.4 Clasificacin de Dispositivos SOI
El dispositivo ms utilizado en los circuitos basados en tecnologa SOI contina
siendo el MOSFET de puerta simple. Este hecho, unido a la compatibilidad en los
procesos de fabricacin, ha permitido la transferencia directa de la tecnologa CMOS
convencional para la fabricacin de circuitos basados en obleas SOI . Sin embargo, el
hecho de que exista un xido enterrado bajo la lmina de silicio y el desarrollo de las
nuevas tcnicas para la obtencin de estructuras SOI ha abierto la posibilidad de
realizar dispositivos cuya fabricacin resultaba imposible para la tecnologa CMOS
convencional. El gran esfuerzo realizado en este sentido ha dado como fruto la
aparicin de gran cantidad de nuevos dispositivos tanto bipolares como de efecto
campo que amplan el abanico de posibilidades a la hora de elegir el dispositivo
adecuado para cada aplicacin. La cantidad de configuraciones y principios de
operacin en los que estos dispositivos estn basados, hace imposible la realizacin de
una nica clasificacin. Por esta razn, en este trabajo, se utilizar el nmero de
puertas como elemento diferenciador principal de cada una de las familias de
dispositivos, pudindose encontrar ciertos solapamientos desde el punto de vista del
principio de operacin.
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 17
1.4.1 Dispositivos de una puerta
Los dispositivos de una puerta son los herederos directos de los MOSFET realizados
con tecnologa CMOS convencional, Figura XY.

Figura 1.13 Representacin esquemtica de un SGSOI .
En funcin de que exista o no una zona neutra debajo de la zona de canal se
puede hablar de dispositivos completamente deplexionados (Fully Depleted, FD) o
parcialmente deplexionados (Partially Depleted, PD).

Figura 1.14 Representacin de la seccin de dispositivos SGSOI : FD (izqda.) y PD (dcha.).
En el caso de un SGSOI PD el comportamiento resulta similar al de los MOSFETs
convencionales con las ventajas que aade el aislamiento total que introduce la capa
de xido enterrado. Sin embargo, la aparicin de una zona neutra puede traer ciertos
problemas: aparicin del denominado floating body que cambia la tensin umbral del
dispositivo dependiendo de la historia del mismo (proceso de histresis), los efectos
causados por el transistor bipolar parsito formado por las zonas de drenador, zona
neutra y fuente o el denominado kink effect para altas polarizaciones entre drenador
y fuente. Una forma de reducir estos efectos consiste en realizar una conexin entre
la puerta y el sustrato del transistor.
De esta forma se obtiene el denominado VCBM o DTMOS, cuyas principales
caractersticas son un aprovechamiento del transistor bipolar parsito y una
disminucin de la tensin umbral con la tensin de puerta aplicada obtenindose
comportamientos casi ideales en el rgimen subumbral y una drstica reduccin de
los efectos de floating body.
1.4 Clasificacin de dispositivos SOI
18 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Figura 1.15 Representacin de la seccin de un dispositivo VCBM.
Conforme se disminuye el espesor de la lmina de silicio, la zona neutra se va
reduciendo de forma que puede llegar a desaparecer. En ese momento el sustrato
pasa a estar completamente deplexionado, ocupando el canal toda la zona de silicio
situada entre el xido de puerta y el BOX y desapareciendo pues, los efectos
relacionados con el floating body. El comportamiento de estos dispositivos se acerca al
del caso ideal, sin embargo existe un problema desde el punto de vista prctico. La
carga en inversin depende no slo de la polarizacin sino tambin del espesor de la
lmina de silicio, de forma que las fluctuaciones aparecidas en sta inducen
variaciones en la tensin umbral. Este fenmeno resulta crtico en dispositivos
ultradelgados (UTB).
En el caso de aplicaciones de potencia existen estructuras especficas que
permiten la fabricacin de tales dispositivos sobre sustratos SOI . Entre ellos se
encuentran los denominados vertical double-diffused MOS (VDMOS), lateral double-
diffused MOS (LDMOS, con aplicaciones en RF) o los lateral insulated gate bipolar
transistor (LIGBT) entre otros. Del mismo modo es posible fabricar otros tipos de
dispositivos distintos de los MOSFET sobre sustratos SOI , como es el caso de
transistores bipolares (BJ T), J FETs o diodos, e incluso se pueden integrar en el
mismo chip elementos que no era posible combinar cuando eran fabricados con
tecnologa convencional. As, en un mismo chip fabricado en SOI es posible incluir
dispositivos de alta velocidad, dispositivos de potencia, elementos pticos (guas de
onda, sppliters...) e incluso elementos electromecnicos, los denominados MEMS.

1.4.2 Dispositivos de doble puerta
La utilizacin de sustratos SOI no slo permite mejorar las prestaciones de
estructuras convencionales, sino que tambin es posible introducir geometras cuya
fabricacin no era posible con la tecnologa CMOS convencional.
En algunos casos la idea ha sido tomada de la industria de los materiales I I I -V
para ser implementada en tecnologa SOI como son transistores basados en procesos
de transferencia en espacio real o lseres intersubbanda [LZ06].
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 19
En cualquier caso, estas geometras aportan una gran variedad de elementos que
permiten solventar diferentes problemas a los que se enfrenta la industria
semiconductora en la actualidad. El primero de ellos viene de la necesidad de
aumentar la cantidad de corriente transportada por un dispositivo sin perder el
control que la puerta ejerce sobre esa carga. La miniaturizacin de las estructuras
busca aumentar la corriente y, por tanto, la velocidad de conmutacin de los
dispositivos. Sin embargo, la disminucin de la longitud del canal produce los
denominados efectos de canal corto (SCE) que, bsicamente, consisten en la prdida
del control de la carga del canal por el terminal de puerta. Los dispositivos
multipuerta surgen de esa necesidad.
El primer dispositivo basado en este concepto que se propuso fue el XMOS
[SH84], tambin conocido como DGSOI (Double Gate SOI ). Podemos observarlo en la
Figura 1.16:

Figura 1.16 Representacin esquemtica de un DGSOI .
Este doble puerta, objeto de estudio en el presente trabajo, debe su nombre a la
semejanza de su geometra con la letra . Los transistores de efecto campo de doble
puerta fabricados en silicio sobre aislante estn actualmente considerados como una
seria alternativa a los MOSFETs convencionales ya que incrementan la capacidad de
integracin. La estructura de un DGSOI consiste, bsicamente, en un sndwich
formado por una lmina de silicio entre dos capas de xido. Podemos observar un
esquema 2D del DGSOI en la Figura 1.17:

Figura 1.17 Representacin de la seccin de un DGSOI , dispositivo bajo estudio en este trabajo.
1.4 Clasificacin de dispositivos SOI
20 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Un metal o una capa de polisilicio forma el contacto con cada xido. Cada uno
acta como electrodo de puerta frontal y trasera, que puede generar una regin de
inversin cerca de las interfaces silicio-xido, si una apropiada tensin es aplicada.
De esta manera tendramos dos MOSFETs compartiendo el sustrato, la fuente y el
drenador. A continuacin se describen una serie de conceptos importantes:
Short Channel Effects (SCEs): Los DGSOI s presentan mayor inmunidad a
los efectos de canal corto que los MOSFETs convencionales e incluso mayor
que los SGSOI FD. La razn reside en el hecho de que las dos puertas tienen
un control mayor conjunto de la carga. Esta caracterstica permite una
escalabilidad jams imaginada en tecnologa MOSFET convencional.
Autocalentamiento SOI: Los dispositivos SOI tambin sufren efectos de
calentamiento por la capa de xido enterrado. Esto provoca una elevacin
considerable de la temperatura dentro del dispositivo SOI , que modifica su
caracterstica de salida. El autocalentamiento se vuelve ms pronunciado a
medida que las dimensiones del dispositivo se reducen al rgimen de la
submicra debido a una mayor densidad de campo elctrico y a un menor
volumen de silicio disponible para disipar calor. Este efecto debe tenerse en
cuenta por los ingenieros y diseadores de tecnologa de dispositivos.
Inversin de volumen: Aparece en dispositivos en los que la lmina de
silicio es muy delgada [BCB
+
87]. Debido a la proximidad entre los xidos de
puerta existe una interaccin entre los dos canales que se crean al polarizar
ambas puertas. Los portadores en inversin dejan de encontrarse confinados
en las cercanas de las interfases de silicio con el xido, desplazndose el
centroide de la distribucin hacia el centro del canal (Figura 1.15):

Figura 1.18 Dependencia de la densidad de carga con el espesor de la lmina de Si en
dispositivos de doble puerta. La inversin de volumen puede observarse claramente para
espesores inferiores a 10nm.
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 21
De esta forma, el efecto de la rugosidad superficial es menos pronunciado
debido a la mayor distancia de los portadores a las zonas degradadas que
aparecen al crecer la lmina de xido. Como consecuencia, se produce un
aumento en la movilidad y, por tanto, en la corriente.
Efectos cunticos: La reduccin en las dimensiones de la estructura,
especialmente, en el espesor de la lmina de silicio, provoca que ciertos
fenmenos de naturaleza cuntica predominen a la hora de explicar el
comportamiento de estos dispositivos. Debido a la inversin del volumen, el
hecho de que los portadores se encuentren confinados, provoca una
cuantizacin de la energa en la direccin de confinamiento de forma que un
fenmeno cuntico conocido como modulacin inter-subbanda entra en juego
aumentando la ganancia en movilidad [GF01]. Como puede observarse en la
Figura 1.19 la movilidad aumenta conforme disminuye el espesor del canal ya
que los portadores se encuentran cada vez ms localizados en la direccin de
confinamiento. Se observa una brusca cada debida a un aumento de la
dispersin por fonones. Como consecuencia directa, y debido al principio de
incertidumbre, aparece una deslocalizacin en el espacio de momentos de
forma que existen ms modos disponibles para asistir los mecanismos por
fonones, aumentando la probabilidad de dispersin y reduciendo la movilidad
de forma significativa.

Figura 1.19 Comparacin de la dependencia de la movilidad electrnica con el espesor de la
lmina de Si en dispositivos SGSOI y DGSOI . Los efectos de la inversin en volumen pueden
observarse con claridad suponiendo un aumento importante de la movilidad
para espesores inferiores a 10nm.
Otro fenmeno puramente cuntico se ha observado en hilos cunticos con
canal ultra corto fabricados en SOI [NTH
+
94]. En ellos se ha encontrado una
dependencia escalonada de la conductancia con la tensin de puerta. Tras
1.4 Clasificacin de dispositivos SOI
22 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
corregir los datos obtenidos experimentalmente con los valores de resistencia
serie debidos al drenador y a la fuente, se comprob que este aumento se
produce en mltiplos de 4
q
2

,
como predice la frmula de Landauer para
fluctuaciones en la conductancia.
Desalineacin de la puerta superior e inferior: La complejidad en la
fabricacin de DGSOI s, en particular, de la fabricacin de las puertas
superior e inferior y su alineacin, es an una limitacin seria para el
desarrollo industrial de esta tecnologa planar. Aunque existen tecnologas
para la fabricacin de transistores de doble puerta autoalineadas (estructuras
FinFET o GAA descritas ms adelante) no est claro que tcnica utilizar para
fabricar DGSOI s. La desalineacin de puertas es muy crtico, pues el
rendimiento del dispositivo disminuye rpidamente debido a la superposicin
de capacitancias y/o prdida de corriente.
Finalmente las caractersticas ms importantes de un DGSOI se resumen en:
Ambas puertas se polarizan simultneamente.
El control de las dos puertas sobre el canal hace que los efectos de canal corto
sean mucho ms pequeos.
Mayor control sobre la carga.
Mayor movilidad y transconductancia.
Dificultad de fabricacin.

1.4.3 Dispositivos multipuerta
Una vez observada la mejora obtenida al aadir una segunda puerta al transistor, el
siguiente paso fue aumentar el nmero de puertas de forma que el control sobre la
carga en el canal fuera an mayor manteniendo la premisa de reducir los SCEs y
aumentar la corriente. De este modo aparecieron los dispositivos denominados
trigates en los que sobre una fina y estrecha isla de silicio cristalino se coloca una
puerta sobre tres de sus lados quedando el dispositivo completamente rodeado por
capas de xido, Figura 1.20.
Captulo 1. La Tecnologa SOI
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 23

Figura 1.20 Representacin esquemtica de un trigate.
Existen tambin versiones ms sofisticadas de estos dispositivos que se sitan
entre los de tres y cuatro puertas, entre ellos se encuentran los -Gate y los -Gate,
Figura 1.21.

Figura 1.21 Representacin esquemtica de un -Gate (izqda.) y un -Gate (dcha.).
En el primero de ellos la puerta penetra en la zona de xido enterrado
proporcionando un mayor control de la carga. En el segundo, la puerta adems de
penetrar en el BOX se extiende lateralmente bajo la lmina de silicio sin llegar a
cerrarse. Esta configuracin permite, en casos en los que el dispositivo sea lo
suficientemente estrecho, la aparicin de una puerta virtual bajo la isla de silicio
inducida por el campo creado en las extensiones inferiores de la puerta [Col04].
Finalmente, tambin se pueden conseguir dispositivos en los que la lmina de
silicio se encuentra completamente rodeada por estructuras destinadas al control de
la carga en su interior, son los denominados dispositivos de cuatro puertas. Una
estructura consiste en recubrir completamente la lmina de silicio cristalino con
puerta. Estas estructuras se reducen al concepto de hilos cunticos [BCBG95] cuando
el espesor y la profundidad del canal son lo suficientemente pequeas. En la Figura
1.22 se muestra el denominado gate-all-around MOSFET (GAA) consistente en un
dispositivo horizontal de seccin rectangular completamente rodeado por la puerta.
Tambin es posible realizar estos dispositivos de forma vertical haciendo crecer un
pilar de silicio. En el caso de que la seccin sea circular el transistor es conocido como
CYNTHI A (cyllindrical thin-pillar) y si es de seccin rectangular se obtiene el
denominado pillar surrounding-gate MOSFET. Otra opcin conoida como G
4
FET
1.5 Conclusiones
24 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
[CC03], consiste en un dispositivo con dos puertas MOS en los lados superior e
inferior y dos J FET en los laterales. Operado normalmente en acumulacin, las
puertas laterales controlan el ancho efectivo del canal pudindose obtener distintos
modos de operacin que van desde el de un hilo cuntico rodeado por regiones de
deplexin al de un dispositivo en fuerte acumulacin en funcin de la tensin aplicada
a cada una de las puertas.

Figura 1.22 Representacin esquemtica de un GAA (izqda.) y un G
4
FET (dcha.)

1.5 Conclusiones
En este captulo se han mostrado algunos aspectos importantes de la tecnologa SOI
que son tratados ms a fondo por distintos autores ([Col04],[CC03]). Su
compatibilidad con los procesos estndar de la industria semiconductora, su
flexibilidad a la hora de elegir la geometra adecuada para cada aplicacin y su
mejora en las prestaciones con respecto a la tecnologa convencional hacen que, cada
da ms, se est imponiendo el uso de sustratos SOI para aplicaciones de todo tipo.
Por tanto, es muy posible que los dispositivos SOI constituyan la base de la industria
semiconductora en un futuro no muy lejano, ya sea tal y como hoy se conoce o
combinada con las nuevas soluciones basadas en ingeniera de sustratos tales como el
uso de silicio tenso, la integracin tridimensional o tcnicas de mejora de la movilidad
de los portadores basadas en la optimizacin de la orientacin de los sustratos.

25 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI



Captulo 2

Modelado de dispositivos
semiconductores

La invencin de los dispositivos semiconductores es bastante reciente si se consideran
las escalas clsicas de tiempo en la vida humana. El transistor bipolar fue anunciado
en 1947 por J ohn Bardeen y Walter Brattain, su objetivo inicial era ser utilizado en
telefona como conmutador pero, posteriormente, se contempl la opcin de usarlo en
substitucin de las vlvulas de vaco. Ms adelante, en 1959, Dawon Kahng y Martin
M. Atalla en los laboratorios Bell inventaron el transistor de efecto de campo metal-
xido-semiconductor (MOSFET) basndose en el diseo patentado de J ulius Edagar
Lilienfeld en 1925. Desde entonces, el campo de los dispositivos semiconductores ha
crecido a una velocidad vertiginosa [Sel84].
El primer circuito integrado, el cual contena solo seis transistores, estuvo
disponible a principios de los aos sesenta, concretamente en 1958. Sin embargo,
desde ese momento ha tenido lugar una gran evolucin, por lo que hoy en da, tan solo
cincuenta aos despus, es posible la fabricacin de circuitos integrados con ms de
3000 millones de dispositivos en cada chip, de un tamao cientos de veces menor y a
una velocidad de conmutacin muchsimo ms rpida.

2.1 Simulacin de dispositivos
La simulacin se ha convertido en un campo muy importante para el estudio de
dispositivos semiconductores. La complejidad cada vez mayor de las estructuras, la
miniaturizacin de las dimensiones y la utilizacin de efectos ms complejos para
2.1 Simulacin de dispositivos
26 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
mejorar las prestaciones hacen necesario un tratamiento mucho ms riguroso de los
modelos que rigen el comportamiento de los dispositivos. Las aproximaciones
realizadas para los estudios tericos dejan de tener validez y el problema a resolver
deja de tener solucin analtica hacindose necesario el uso de mtodos numricos
que permitan alcanzar una solucin satisfactoria al problema [GGR
+
08].
A pesar de todo, existen diferentes niveles de aproximacin al problema debido a
que, para la resolucin, se necesita una gran cantidad de recursos en cuanto a
potencia de clculo y tiempo se refiere requirindose un compromiso entre exactitud y
precisin en la solucin y tiempo de simulacin. Los modelos que se pueden encontrar
en las distintas herramientas van desde los de ms simples de difusin y deriva a los
ms complejos y costosos en cuanto a requerimientos de clculo como pueden ser los
de balance de energa para la resolucin de la ecuacin de transporte de Boltzmann
(BTE). Asimismo la complejidad de la fsica puesta en juego hace necesario el uso de
cdigos de tipo Monte Carlo que resuelven de una manera estocstica la BTE y la
resolucin de la ecuacin de Schrdinger para tener en cuenta diferentes efectos
cunticos que cada da son ms importantes para explicar el comportamiento de
dispositivos con dimensiones submicra o nanomtricas.
Las herramientas de simulacin son ampliamente utilizadas en estudios de
escalado de dispositivos y optimizacin de tecnologas tanto existentes como
emergentes. Por tanto, la capacidad de estos programas de representar las
prestaciones actuales y de predecir las de futuras tecnologas y sus limitaciones es de
vital importancia ya que permite a las compaas ahorrar grandes cantidades de
dinero en los procesos de desarrollo antes de la fabricacin en masa de los distintos
componentes y a los centros de investigacin comprobar la viabilidad terica de
dispositivos basados en efectos fsicos novedosos con geometras diferentes a las
configuraciones estndar.
El tipo de simulador elegido para cada caso depender pues del problema a tratar,
de la precisin que se quiera conseguir en los clculos y de los efectos que se quieran
tener en cuenta. Al mismo tiempo existe una limitacin a la hora de elegir el mtodo
en funcin de los medios computacionales disponibles y el tiempo que pueda
dedicarse al estudio. Todos estos factores deben llevar a una solucin de compromiso
a decidir por el usuario.
Captulo 2. Modelado de dispositivos semiconductores
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 27
2.2 Simuladores
En primer lugar se debe considerar qu tipo de estructura va a ser simulada, de
forma que se pueda decidir qu formulacin de las ecuaciones puestas en juego es la
ms interesante pudindose elegir entre modelos uni, bi y tridimensionales.
Normalmente se intenta usar la descripcin que tenga en cuenta los efectos que
quieren ser simulados pero sin sobredimensionar el problema para no obtener un
cdigo excesivamente costoso en tiempo de computacin. As por ejemplo, una
simulacin monodimensional puede ser suficiente para estudiar una unin MOS en
equilibrio mientras que para el caso de un transistor MOSFET con tensin aplicada
entre drenador y fuente ser necesaria una simulacin, al menos, bidimensional para
el caso en que la longitud de canal sea pequea.
Otra decisin crtica que debe tomarse es la eleccin del modelo que describir el
comportamiento del sistema. En la mayora de los casos la distribucin del
potencial en el dispositivo viene descrita por la ecuacin de Poisson en cualquiera de
sus versiones:

2
I =
p
e

Ecuacin 2.1 Ecuacin de Poisson.
donde I es la tensin, p es la densidad volumtrica de carga y e es la permitividad
elctrica del medio.
Sin embargo, para estudiar el transporte de los portadores de carga existe
mucha ms flexibilidad a la hora de elegir modelo. La teora semi-clsica de
transporte est basada en la ecuacin de transporte de Boltzmann (BTE):
o
ot
+u

+
cF


k

=S(k
i
,k)
k
|
(r,k
i
,t)[1 (r,k,t)] S(k,k)
k
|
(r,k,t)[1 (r,k,t)]
Ecuacin 2.2 Ecuacin de transporte de Boltzmann.
donde r representa la posicin, k el momento, (k
i
,t) la funcin de distribucin (por
ejemplo la de Fermi-Dirac si se est en equilibrio), : la velocidad de grupo, E el campo
elctrico, S(k,k) la probabilidad de transicin entre dos estados con momento k y k y
1 (k
i
,t) la probabilidad de no ocupacin del estado con momento k.
2.3 Historia del modelado numrico
28 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
En el presente trabajo, se evala la simulacin monodimensional de un DGSOI en
equilibrio por lo que para obtener la distribucin de potencial se procede al desarrollo
numrico de la ecuacin de Poisson 1D:

2
I(x) =
p(x)
e

Ecuacin 2.3 Ecuacin de Poisson 1D.

2.3 Historia del modelado numrico
Gummel sugiri en 1964 el modelado numrico de los dispositivos semiconductores
basado en ecuaciones diferenciales parciales, las cuales describen todas las regiones
diferentes de un dispositivo de una manera unificada, a travs de un transistor
bipolar unidimensional [Sel84]. Este enfoque fue ms desarrollado y aplicado en la
teora de la unin PN por DeMari y diodos IMPATT (I MPact ionization Avalanche
Transit Time) por Scharfetter y Gummel.
La resolucin de ecuaciones diferenciales de Poisson 2D con aplicacin a la
estructura MOS fue publicada por primera vez por Loeb et al. y Schroeder y Muller
en 1968. Kennedy y OBrien investigaron en 1969 la unin del transistor de efecto de
campo mediante el uso de la ecuacin de Poisson 2D y una ecuacin de continuidad.
Mientras esto ocurra, Slotboom present un anlisis bidimensional del transistor
bipolar resuelto mediante la ecuacin de Poisson y ambas ecuaciones de continuidad.
Desde entonces, el modelado bidimensional se ha aplicado a casi todos los
dispositivos.
Adems, Reiser y Barnes desarrollaron el comportamiento transitorio del
transistor MOSFET y MESFET en dos dimensiones. Posteriormente, Cook y Frey
simularon estos dispositivos introduciendo ecuaciones ms sofisticadas en su modelo
fsico y matemtico, aadiendo ecuaciones de transporte de energa, tal y como
hicieron Moglestue y Pone, pero en este caso, introdujeron ecuaciones de partculas
para la simulacin.
Finalmente, se publicaron modelos estticos tridimensionales y se fueron
simulando dispositivos inusuales, o no estndar, como los basados en GaAs.
Actualmente contamos con una oferta de programas que pueden simular estructuras
semiconductoras arbitrarias.
Captulo 2. Modelado de dispositivos semiconductores
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 29

2.4 Conclusiones
En este captulo se ha descrito la importancia del modelado de dispositivos
semiconductores. La simulacin del comportamiento de un dispositivo permite
proporcionar informacin transcendental para los diseadores de tecnologa de
dispositivos, as como, comprobar la viabilidad terica de dispositivos bajo
investigacin.
Sin embargo, se ha visto que es necesario elegir bien el simulador, no
sobredimensionar el problema y evaluar correctamente un compromiso entre
precisin en la solucin y carga computacional, ya que existen diferentes niveles de
aproximacin para un problema determinado, pudiendo resultar la cantidad de
recursos de potencia de clculo inviables para un computador.
Situando el objetivo de este trabajo en investigar el comportamiento de la
distribucin de potencial en un DGSOI, se ha concluido que es preciso al desarrollo
numrico de la ecuacin de Poisson 1D, dada por la ecuacin 2.3.


30 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI


Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 31



Captulo 3

Ecuacin discreta de
Poisson 1D

Un dispositivo electrnico su comportamiento es descrito por una serie de ecuaciones
diferenciales, las cuales deben de resolverse para estudiar de forma detallada la
estructura que lo forma. En este trabajo, tal y como se detalla en el captulo anterior,
la ecuacin a desarrollar iterativamente es la ecuacin de Poisson 1D.
Mediante el teorema de divergencia se relaciona el flujo de un campo vectorial, en
este caso el flujo del campo elctrico (, [Vm]), a travs de una superficie cerrada (S,
[m
2
]) con la integral de su divergencia en el volumen (:, [m
3
]) delimitado por dicha
superficie. As, suponiendo una regin en el espacio en la que hay una distribucin de
carga, de densidad volumtrica p [Cm
-3
], mediante la ley de Gauss podemos
establecer una relacin local entre la divergencia del campo elctrico (E, [NC
-1
]) en un
punto cualquiera y la densidad de carga:

=_E

JS

S
=_(

)J:

=_
p
e
J:


Ecuacin 3.1 Teorema de la divergencia aplicado al 23flujo de campo elctrico.
Por clculo diferencial, al ser el rotacional del campo electrosttico nulo, dicho
campo puede ser descrito mediante el gradiente del potencial elctrico (I, [V]):
E

=I
Ecuacin 3.2 Relacin entre el campo elctrico y el potencial elctrico.
3.1 Discretizacin del espacio continuo
32 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Por tanto:
_(

)J:

=_[

(I) J:

=_VJ:

=_
p
e
J:

V=
p
e

Ecuacin 3.3 Ecuacin de Poisson.
Obteniendo de esta forma la ecuacin de Poisson (asumiendo que e es la
permitividad elctrica del medio [Fm
-1
] y se considera constante) que debe resolverse
numricamente para detallar el comportamiento del potencial elctrico en el
transistor DGSOI. En el caso monodimensional:
I(x) =
p(x)
e

Ecuacin 3.4 Ecuacin de Poisson 1D.
La expresin anterior est formulada en un espacio continuo, sin embargo, a la
hora de ser resuelta numricamente tanto las variables como los operadores que
entran en juego deben ser transformados a una formulacin discreta debido a la
incapacidad de los computadores de realizar clculos en el espacio continuo.

3.1 Discretizacin del espacio continuo
El problema de la discretizacin no resulta trivial y de l depende en buena medida
que con la simulacin se obtengan unos resultados aceptables o que no resulte
prohibitiva en trminos de tiempo de simulacin [Rav94][Sam06][GGR+08]. Existen
numerosas aproximaciones que pueden ser usadas para discretizar la ecuacin
diferencial parcial para obtener un problema numrico. Los esquemas de
discretizacin ms importantes se pueden clasificar en:
Diferencias finitas: El espacio continuo es sustituido por un mallado de
puntos.
Elementos finitos: El espacio es dividido en polgonos (normalmente
tringulos y rectngulos) de forma que la regin a estudio queda
completamente teselada por ellos.
Mtodos espectrales: Se basa en algoritmos de resolucin de ecuaciones a
travs de la transformada de Fourier.
Captulo 3. Ecuacin discreta de Poisson 1D
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 33
Para la discretizacin de la ecuacin continua de Poisson 1D se opta por el mtodo
de diferencias finitas debido a su relativa simplicidad. Un estudio detallado de la
discretizacin de las ecuaciones se puede consultar en [Sel84].

3.2 Diferencias finitas
La resolucin de la ecuacin propuesta por el mtodo de las diferencias finitas
requiere de dos pasos previos al del clculo de la solucin en s misma. En primer
lugar, se debe realizar una discretizacin del dominio del problema. En segundo
lugar, se debe reescribrir la ecuacin que describe el problema en su forma discreta.
Ambos procesos son de una gran importancia, ya que si cualquiera de ellos no se
realiza de forma cuidadosa y adecuada es posible que la solucin final no converja o
que lo haga a un punto distinto al de la solucin de la ecuacin a la que quiere
aproximar. Debido a que las magnitudes no cambian de igual manera en todo el
espacio simulado se deben tener en cuenta las zonas en las que, a priori, se van a
producir cambios importantes en el valor de alguna de las variables bajo estudio, de
forma que sus derivadas no tomen valores excesivamente grandes. Por otro lado, un
nmero excesivo de puntos lleva inevitablemente a tiempos de clculo que pueden
resultar inaceptables. Por tanto se debe tomar una solucin de compromiso a la hora
de elegir el nmero de puntos de forma que se tenga una resolucin espacial precisa
sin que esto conlleve un tiempo de clculo excesivo.
Una vez definido el espacio discreto en el que se va a trabajar se deben calcular
las expresiones discretizadas de las ecuaciones anteriores en los puntos interiores de
la estructura. En los puntos correspondientes a las fronteras se aplican una serie de
condiciones de contorno que, o bien fijan directamente el valor de la variable
(condiciones tipo Dirichlet) o fijan su derivada (como las condiciones tipo Neumann).
El mtodo de diferencias finitas est basado en el uso de series de Taylor
truncadas para realizar aproximaciones numricas a las derivadas. As:
u(x +x) =u(x) +x
ou
ox
+
x
2
2
o
2
u
ox
2
+
x
3
6
o
3
u
ox
3
+0(x
4
)
Ecuacin 3.5

3.2 Diferencias finitas
34 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
u(x x) =u(x) x
ou
ox
+
x
2
2
o
2
u
ox
2

x
3
6
o
3
u
ox
3
+0(x
4
)
Ecuacin 3.6
A partir de estas dos ecuaciones se puede obtener diferentes aproximaciones a la
primera derivada.
De la ecuacin 3.5 se tiene la aproximacin de diferencia hacia delante:
ou
ox
=
u(x +x) u(x)
x
+0(x)
Ecuacin 3.7 Aproximacin de diferencias hacia delante
De la ecuacin 3.6 se tiene la aproximacin de diferencia hacia atrs:
ou
ox
=
u(x) u(x x)
x
+0(x)
Ecuacin 3.8 Aproximacin de diferencias hacia atrs
Restando las ecuaciones 3.7 y 3.8 se tiene la aproximacin en diferencias
centrada:
ou
ox
=
u(x +x) u(x x)
2x
+0(x
2
)
Ecuacin 3.9 Aproximacin en diferencias centrada
Anlogamente, una aproximacin de la derivada segunda se puede obtener a
partir de la suma de las ecuaciones 3.5 y 3.6, tal que as:
o
2
u
ox
2
=
u(x +x) 2u(x) +u(x x)
x
2
+0(x
2
)
Ecuacin 3.10 Aproximacin de derivada segunda
los trminos 0(x) y 0(x
2
) indican el error de truncamiento que se comete en la
aproximacin. Cuanto mayor sea el orden del resto menor ser el error de
truncamiento. Estas aproximaciones son las ms utilizadas aunque es posible obtener
expresiones en las que se tengan en cuenta ms puntos.

Captulo 3. Ecuacin discreta de Poisson 1D
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 35
En general se pueden definir tres conceptos que nos indican si el esquema de
discretizacin es apropiado o no para el problema que se quiere resolver:
Estabilidad: El mtodo es estable si la solucin se mantiene acotada durante
el proceso iterativo.
Convergencia: El mtodo es convergente si la solucin numrica tiende a la
solucin real conforme el ancho de discretizacin tiende a cero.
Consistencia: El mtodo es consistente si el error de truncamiento tiende a
cero conforme el ancho de discretizacin tiende a cero.
Si un mtodo numrico es consistente, entonces la condicin de estabilidad es
necesaria y suficiente para alcanzar la convergencia. Por el contrario, un esquema
que es estable pero no consistente puede converger a una solucin de una ecuacin
diferente.
Numerosos errores son introducidos a la hora de discretizar una ecuacin
diferencial parcial y resolverla numricamente.
Error de truncamiento: error introducido por la aproximacin finita de las
derivadas.
Error de discretizacin: error causado por el remplazo de una ecuacin
continua por una discretizada.
Error de redondeo: el error computacional introducido por los algoritmos
digitales, causado por el nmero finito de dgitos utilizado en la
representacin numrica.
Finalmente, se discretiza la ecuacin monodimensional (1D) continua de Poisson
por el mtodo de diferencias finitas obteniendo:
o
2
I
ox
2
=
I(x +x) 2I(x) +I(x x)
x
2
=
p(x)
e

I(i +1) 2I(i) +I(i 1)
x
2
=
p(i)
e

Ecuacin 3.11 Ecuacin discreta de Poisson 1D.
3.3 Condiciones de contorno
36 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
3.3 Condiciones de contorno
Hasta ahora, se ha presentado el desarrollo discreto de la ecuacin de Poisson 1D en
los puntos del interior del canal. Para los puntos que forman los lmites de la
estructura es preciso calcular los valores de las distintas variables aplicando la
condicin de contorno correspondiente al tipo de frontera en cuestin.
Las condiciones de contorno tipo Dirichlet se aplican en las zonas de la frontera
donde el valor de la variable es conocido. Para el caso de la estructura objeto de este
estudio estas zonas corresponden con los contactos de puerta.
Los contactos de puerta se consideran de tipo metlico. El clculo del potencial se
realiza teniendo en cuenta la diferencia de funciones trabajo:
I I
b
I
u
=0
Ecuacin 3.12 Condicin para el potencial.
donde I
b
representa el built-in voltage y I
u
la tensin aplicada externamente al
contacto.
Para el caso de la concentracin de portadores, la suposicin de contacto hmico
implica considerar ste en equilibrio trmico que corresponde a velocidad de
recombinacin infinita:
np n

2
=0
n p C =0
C =N

+
N
A
-

Ecuacin 3.13 Condicin para la concentracin de portadores (I ).
Despejando se obtienen las condiciones para electrones y huecos:
n =
C
2
+4n

2
+C
2

p =
C
2
+4n

2
C
2

Ecuacin 3.14 Condicin para las concentracin de portadores (I I ).
Captulo 3. Ecuacin discreta de Poisson 1D
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 37
3.4 Ecuacin discreta de Poisson 1D
Finalmente en este captulo se recopila la informacin desarrollada anteriormente,
con el fin de construir la ecuacin en la que se basa el estudio del presente trabajo.
Consecuentemente, el canal del transistor se discretiza en N puntos equidistantes
una distancia igual al ancho de discretizacin o diferencial de longitud, x. El primer
punto I
g1
y el ltimo I
g2
, son las condiciones de contorno de nuestro sistema
numrico.
Expresando la densidad de carga volumtrica como la densidad neta de carga en
donde se incluye tanto la carga fija como los portadores mviles, se obtiene:
p(i) =_
0, cn lo rcgin Jc xiJo
q(N

+
N
A
-
n +p), cn lo rcgin Jc scmiconJuctor

Ecuacin 3.15 Densidad de carga volumtrica.
Se aproxima la ecuacin 3.15 teniendo en cuenta que el semiconductor es tipo P,
tal que as:
p(i) =_
0, cn lo rcgin Jc xiJo
q(N
A
-
n), cn lo rcgin Jc scmiconJuctor

Ecuacin 3.16 Densidad de carga volumtrica aproximada.
donde q es el valor absoluto de la carga del electrn [C], N
A
-
es la concentracin de
impurezas aceptadoras en el semiconductor [m
-3
] y n es la concentracin de electrones
[m
-3
] en estado estacionario y equilibrio trmico en el semiconductor tras aplicar una
diferencia de potencial I(i), tal y como describe la siguiente expresin:
n =n

c
v()
k1
=n

c
v()
v
T

Ecuacin 3.17 Concentracin de portadores minoritarios.
donde n

es la concentracin intrnseca de electrones del silicio [m


-3
], k es la constante
de Boltzmann [eV/K], I es la temperatura de trabajo [K] y I
1
es el denominado
voltaje trmico [V].
Centrando el clculo en la regin del semiconductor se concluye:
o
2
I
ox
2
=
p(i)
e
=
q(N
A
-
n)
e
=
q
e
(N
A
-
+n) =
q
e
_N
A
-
+n

c
v()
v
T _
3.4 Ecuacin discreta de Poisson 1D
38 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
o
2
I
ox
2
=
I(i +1) 2I(i) +I(i 1)
x
2
=
q
e
_N
A
-
+n

c
v()
v
T _

I(i) =
I(i +1) +I(i 1)
qx
2
e
_N
A
-
+n

c
v()
v
T _
2

Ecuacin 3.17 Ecuacin discreta de Poisson 1D en la regin de semiconductor.
Finalmente:
I(i) =
I(i +1) +I(i 1) _
0, cn lo rcgin Jc xiJo
x
2
q
e
0
e
S
_N
A
-
+n

c
v()
v
T _ , cn lo rcgin Jc scmiconJuctor
2

Ecuacin 3.18 Ecuacin discreta de Poisson 1D.
donde e
0
es la permitividad elctrica del vaco [Fm
-1
] y e
S
es la permitividad relativa
del silicio.

3.4.1 Error iterativo
La ecuacin discreta de Poisson 1D, expresin 3.18, debe ser iterativamente evaluada
para que, si el mtodo es convergente, su solucin aproximada tienda a su solucin
real. Por ello, se debe introducir una condicin de parada que indique cuando detener
el mtodo y estudiar la solucin, es decir, hay que calcular el error iterativo. Dicho
error, y por consiguiente el criterio de parada, puede ser interpretado de diferentes
formas.
Sea i el nmero de una muestra que se encuentra equiespaciada con la siguiente
por el ancho de discretizacin (i e 1,,N); y k el orden de la iteracin (k 1,2,3,)
las formas ms simples de calcular el error son:
Error absoluto para la iteracin k:
1
N
|I(i)
k
I(i)
k-1
|

<e max

(|I(i)
k
I(i)
k-1
|) <e
Ecuacin 3.19 Error absoluto medio. Ecuacin 3.20 Mximo error absoluto.
Captulo 3. Ecuacin discreta de Poisson 1D
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 39
Error relativo medio global o individual para la iteracin k, respectivamente:
1
N

|I(i)
k
I(i)
k-1
|
|I(i)
k
|

<e max

_
|I(i)
k
I(i)
k-1
|
|I(i)
k
|
_ <e
Ecuacin 3.21 Error relativo medio. Ecuacin 3.22 Mximo error relativo.
Centrando en todo momento el objetivo de realizar dicha resolucin numrica en
una FPGA y minimizar los recursos que pueda consumir el mtodo que ms interesa
elegir es el mtodo que emplee una menor computacin para su clculo. En ese caso,
el error iterativo va a ser calculado como el mximo error absoluto de todos los
valores de una misma iteracin y la inmediata anterior, tal y como expresa la
ecuacin 3.20.

3.5 Conclusiones
En el presente captulo se ha presentado la ecuacin continua que describe el
comportamiento de la tensin a lo largo del canal de un DGSOI. La resolucin de
dicha ecuacin no es, ni mucho menos, analtica, por lo que se precisa de un mtodo
numrico.
La incapacidad de los computadores de operar con una funcin continua obliga a
discretizar la funcin en una serie de puntos limitados. El mtodo de discretizacin
aplicado ha sido el mtodo de diferencias finitas, por su relativa simplicidad, basado
en el truncamiento de la serie de Taylor. Una vez aplicado el mtodo de diferencias
finitas, se calculan y aplican las condiciones de contorno para obtener la solucin
numrica al problema particular de este trabajo, para ello se han supuesto los
contactos del DGSOI metlicos.
Finalmente, se ha deducido la expresin que representa la solucin numrica de
la tensin a la lo largo del canal y se ha presentado el mecanismo de evaluacin del
mtodo iterativo, es decir, el estudio que se llevar a cabo del error del mismo.

40 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI



Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 41



Captulo 4

Aritmtica en punto flotante

Hacia 1957 comenz a popularizarse el hardware de punto flotante en el que una
unidad decimal de punto flotante estuvo disponible en el I BM 650, y pronto las series
I BM 704, 709, 7090, etc., ofrecieron hardware binario de punto flotante para simple y
doble precisin. Como consecuencia se comenz a disponer de numeracin en punto
flotante en gran parte de computadores, pero cada implementacin era diferente.
Sobre 1976 J ohn F. Palmer en I ntel comienza el desarrollo de una aritmtica de
punto flotante para toda la lnea de productos de I ntel. La aparicin del 8086 era
inminente, y se estaba contemplando la opcin de incorporar un coprocesador de
punto flotante, el 8087, para el 8086. El coprocesador era un chip adicional que
aceleraba una parte del trabajo del procesador, en este caso los clculos en punto
flotante. En aquellos tiempos las aritmticas de punto flotante eran ligeramente
diferentes entre los grandes computadores pero una verdadera anarqua entre los
microcomputadores, en los que era necesario albergar una docena de aritmticas
diversas en el firmware de la ROM o va software. Robert G. Stewart, un ingeniero de
la I EEE (I nstitute of Electrical and Electronics Engineers) trat de controlar esta
anarqua reinante y propuso que el I EEE disease un estndar aceptable de punto
flotante.
Las reuniones de este comit en referencia al punto flotante comenzaron a finales
de 1977 con multitud de borradores que provenan de innumerables fuentes y se
alargaron hasta 1985 cuando se hizo oficial el Standar I EEE-754 para punto flotante
binario, basado en el diseo inicial de I ntel, pero algo simplificado.

4.1 Definicin numrica I EEE 754
42 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
4.1 Definicin numrica IEEE 754
El estndar de la I EEE para aritmtica en punto flotante (I EEE 754) es el estndar
ms extendido para las computaciones en punto flotante [Kah97][Llo10]. Define
formatos para la representacin de nmeros en punto flotante (incluyendo el cero) y
valores desnormalizados, as como valores especiales como infinito y NaN (Not a
Number), con un conjunto de operaciones en punto flotante que trabaja sobre estos
valores. Tambin especifica cuatro modos de redondeo y cinco excepciones.
En el estndar I EEE 754, se definen varios formatos: simple precisin (32 bits),
doble precisin (64 bits), precisin simple extendida (mnimo 43 bits) y precisin doble
extendida (mnimo 79 bits). El formato que se implementar en este trabajo es la
representacin en simple precisin. Un nmero en punto flotante de precisin simple
se almacena en una palabra de 32 bits (4 bytes): 1 bit para el signo (s), 23 bits para la
mantisa (m) y 8 bits para el exponente (e), que se distribuyen de la siguiente forma:

Figura 4.1 Anatoma de un nmero en punto flotante simple precisin.
donde S es el bit de signo (0 = positivo s = +1; 1 = negativo s = -1) y
EXPONENTE es el campo para el exponente. El exponente es sesgado (biased), esto
significa que un valor constante, llamado sesgo, se resta del campo del exponente
para conseguir el valor real del exponente. En este caso el valor del sesgo es 127.
El conjunto de valores posibles pueden ser divididos en los siguientes:
TIPO DE NMERO EXPONENTE MANTISA
Cero 0 0 S =0 S =1
Nmeros desnormalizados 0 0 m =0,MANTI SA
Nmeros normalizados 1 254 cualquier valor m =1,MANTI SA
Infinito 255 0
S =0 +
S =1 -
Not a number (NaN) 255 0

Tabla 4.1 Conjunto de tipos de nmeros representables por el estndar I EEE 754 simple precisin.
Captulo 4. Aritmtica en punto flotante
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 43
As el valor de un nmero representado en punto flotante en el estndar I EEE
754 simple precisin tiene el valor:
: =s 2
c
m c =EXP0NENIE 127
Ecuacin 4.1 Valor decimal de un nmero en formato punto flotante I EEE 754 simple precisin.
Obsrvese que el formato punto flotante I EEE 754 simple precisin permite
representar los nmeros de la escala real no uniformemente, con un total de 2
32

nmeros representables, aumentando el espacio entre estos, tal que as:

Figura 4.2 Representacin no uniforme de nmeros en punto flotante simple precisin en la escala real.

A continuacin se observa un esquema del rango representable de la recta real y
las zonas de desbordamiento (overflow) que sern abordadas ms adelante:

Figura 4.3 Rango de la escala real representable por el estndar I EEE 754 simple precisin.


4.2 Aritmtica IEEE 754

4.2.1 Operacin de suma/resta
El algoritmo bsico para realizar la operacin de suma/resta de dos nmeros en el
estndar I EEE 754 es el siguiente:
a. Alinear los puntos decimales (desnormalizando a uno de los operandos de
forma tal que ambos exponentes sean iguales), para esto desplazar a la
derecha la mantisa con el exponente ms pequeo.
4.2 Aritmtica I EEE 754
44 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
b. Sumar/Restar las mantisas.
c. Normalizar el resultado, verificando el eventual desbordamiento en el
exponente.
d. Redondear el resultado al nmero correcto de dgitos significativos.

Figura 4.4 Diagrama de flujo de la operacin suma/resta definida en el estndar I EEE 754.


4.2.2 Operacin de multiplicacin/divisin
El algoritmo bsico para realizar la operacin de multiplicacin/divisin de dos
nmeros en el estndar I EEE 754 es el siguiente:
a. Sumar/Restar los exponentes, compensando el exceso (se debe restar/sumar
un exceso, 127, para obtener un resultado sesgado).
b. Multiplicar/Dividir las mantisas.
c. Normalizar el resultado y comprobar si se produjo desbordamiento.
d. Redondear la respuesta al nmero correcto de dgitos significativos.
e. Normalizar nuevamente en caso de ser necesario.
f. Determinar el signo del resultado.

Captulo 4. Aritmtica en punto flotante
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 45

Figura 4.5 Diagrama de flujo de la operacin multiplicacin/divisin definida en el estndar I EEE 754.


4.2.3 Redondeo
El estndar I EEE 754 exige que el resultado de las operaciones sea el mismo que se
obtendra si se realizasen con precisin absoluta y despus se redondease. Hay cuatro
modos de redondeo:
Redondeo a cero: truncamiento.
Redondeo al ms cercano: al par en caso de empate.
Redondeo a ms infinito: por exceso.
Redondeo a menos infinito: por defecto.
Estas modalidades de redondeo requieren el uso de bits adicionales de precisin
para las representaciones intermedias. Denominaremos bits de guarda a los bits de
precisin adicionales colocados a la derecha del bit menos significativo. Se utilizan
para la normalizacin y son fundamentales en el redondeo. El estndar I EEE 754
4.2 Aritmtica I EEE 754
46 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
contempla tres bits de guarda: guard (G), round (R) y sticky (S). Tngase en cuenta en
este punto, que la FPU (Floating Point Unit) debe ensancharse en tres bits.
Guard (G): Inmediatamente a la derecha de la mantisa, el bit G se emplea al
normalizar el resultado preliminar de las operaciones aritmticas, esto es,
antes de aplicar el redondeo.
Round (R): El bit R se emplea para redondear.
Sticky (S): El bit S se emplea para redondear y se calcula como una funcin
lgica OR de los bits descartados (los que no forman parte del resultado ni
tampoco de G ni R). Este bit permite obtener igual resultado al que se
obtendra redondeando el resultado intermedio computado con precisin
infinita.
La siguiente tabla resume el rol de los bits R y S en los distintos esquemas de
redondeo (donde p es el valor del dgito menos significativo):
REDONDEO RESULTADO POSITIVO RESULTADO NEGATIVO
Cero
El ms cercano
+1 LSB si [(R AND p)
OR (R AND S)]
+1 LSB si [(R AND p)
OR (R AND S)]
Ms infinito +1 LSB si (R OR S)
Menos infinito +1 LSB si (R OR S)

Tabla 4.2 Empleo de bits de guarda para el proceso de redondeo especificado en el estndar I EEE 754.
Cada mtodo de redondeo implica una mayor o menor complejidad hardware para
el bloque encargado de realizar una operacin aritmtica. Por otro lado, cada
modalidad de redondeo repercute en la precisin y exactitud del resultado de una
operacin aritmtica.

4.2.4 Desbordamiento
Los problemas que pueden surgir al realizar una operacin aritmtica en punto
flotante pueden ser:
Desbordamiento del exponente (overfl ow posi ti vo u overfl ow
negati vo): un exponente positivo que excede el valor mximo representable.
Captulo 4. Aritmtica en punto flotante
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 47
Desbordamiento a cero del exponente (underfl ow posi ti vo o
underfl ow negati vo): un exponente negativo que exceda el valor mximo
permitido. Esto quiere decir que el nmero es demasiado pequeo para ser
representado, y puede ser representado por cero.
Desbordamiento a cero de la mantisa: debido a que en la operacin de
suma y resta los exponentes se deben igualar, pueden perderse dgitos por
parte de la derecha de la mantisa, durante el proceso de alineacin de la
misma.
Desbordamiento de la mantisa: la suma de dos mantisas del mismo signo
puede producir un acarreo debido al bit ms significativo.

4.2.5 Excepciones
El estndar I EEE 754 define cinco tipos de excepciones que deben ser sealadas por
un bit de estado cuando sean detectadas:
Operacin invalida: Algunas operaciones aritmticas son invlidas y como
resultado obtenemos un NaN. Ejemplos:
Cualquier operacin con un NaN.
Suma o resta:
Multiplicacin: 0 x
Divisin: 0/ 0 or /
Divisin por cero: La divisin de cualquier nmero por cero provoca como
resultado infinito. La suma o multiplicacin de dos nmeros puede dar
tambin como resultado infinito. Por ello, para diferenciar estos dos casos, se
implement una excepcin de divisin por cero.
Inexacto: Esta excepcin se provoca cuando el resultado de una operacin
aritmtica no coincide con el real, es decir, cuando es necesario redondear.
Underflow: Dos eventos pueden causar la excepcin denominada underflow
o subdesbordamiento: antes o despus de redondear cuando el resultado se
encuentra entre 2
-127
, o, cuando el resultado es simplemente inexacto o se
produce una prdida de precisin al desnormalizar.
Overflow: Se produce cuando el resultado de una operacin aritmtica
excede el mximo valor que puede ser representado. No se seala cuando uno
de los operandos es infinito ni cuando se produce una divisin por cero.
4.3 Conclusiones
48 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
4.3 Conclusiones
En este captulo se ha presentado el formato que el I EEE propuso en 1985 para la
representacin numrica en punto flotante y con el que se han estandarizado todos
los computadores de este tipo de numeracin. La descripcin numrica detallada
incluye: definicin numrica, aritmtica, tipo de redondeo, tipo de desbordamiento y
excepciones.
El ttulo completo del estndar es I EEE Standard for Binary Floating-Point
Arithmetic (ANSI / I EEE Std 754-1985), y tambin es conocido por I EC 60559:1989,
Binary floating-point arithmetic for microprocessor systems (originalmente el nmero
de referencia era I EC 559:1989).


Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 49



Captulo 5

Entorno de computacin grid

El objetivo de este proyecto es ejecutar el sistema en una FPGA (Field Programmable
Gate Array) dentro de un entorno de computacin grid (grid computing). Se busca que
este sistema sea parte de una red permitiendo, as, utilizar de forma coordinada todo
tipo de recursos, como pueden ser el propio cmputo de la ecuacin de Poisson en una
estructura DGSOI , sin tener la necesidad de estar sujeto a un control centralizado.

5.1 FPGAs
Una FPGA es un dispositivo semiconductor que contiene bloques de lgica cuya
interconexin y funcionalidad puede ser configurada in situ mediante un lenguaje de
programacin especializado [Web01][Ric10]. La lgica programable puede reproducir
desde funciones tan sencillas como las llevadas a cabo por una puerta lgica o un
sistema combinacional hasta complejos sistemas en un chip.
Las FPGAs se utilizan en aplicaciones similares a los ASI Cs (Application-Specific
I ntegrated Circuit), sin embargo son ms lentas, tienen un mayor consumo de
potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las
FPGAs tienen las ventajas de ser reprogramables (lo que aade una enorme
flexibilidad al flujo de diseo), sus costes de desarrollo y adquisicin son mucho
menores para pequeas cantidades de dispositivos y el tiempo de desarrollo es
tambin menor.
Ciertos fabricantes cuentan con FPGAs que slo se pueden programar una vez,
por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los
5.1 FPGAs
50 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
ASI Cs y las FPGAs reprogramables. Histricamente las FPGAs surgen como una
evolucin de los conceptos desarrollados en las PAL (Programmable Array Logic) y los
CPLD (Complex Programmable Logic Device).

5.1.1 Historia
Las FPGAs fueron inventadas en el ao 1984 por Ross Freeman y Bernard
Vonderschmitt, co-fundadores de Xilinx, y surgen como una evolucin de los CPLDs.
Tanto los CPLDs como las FPGAs contienen un gran nmero de elementos lgicos
programables. Si se mide la densidad de los elementos lgicos programables en
puertas lgicas equivalentes (nmero de puertas NAND equivalentes que se podran
programar en un dispositivo) se podra decir que en un CPLD se hallaran del orden
de decenas de miles de puertas lgicas equivalentes y en una FPGA del orden de
cientos de miles hasta millones de ellas.
Aparte de las diferencias en densidad entre ambos tipos de dispositivos, la
diferencia fundamental entre las FPGAs y los CPLDs es su arquitectura. La
arquitectura de los CPLDs es ms rgida y consiste en una o ms sumas de productos
programables cuyos resultados van a parar a un nmero reducido de biestables
sncronos (tambin denominados flip-flops). La arquitectura de las FPGAs, por otro
lado, se basa en un gran nmero de pequeos bloques utilizados para reproducir
sencillas operaciones lgicas, que cuentan a su vez con biestables sncronos. La
enorme libertad disponible en la interconexin de dichos bloques confiere a las
FPGAs una gran flexibilidad.
Otra diferencia importante entre FPGAs y CPLDs es que en la mayora de las
FPGAs se pueden encontrar funciones de alto nivel (como sumadores y
multiplicadores) embebidas en la propia matriz de interconexiones, as como bloques
de memoria.
Captulo 5. Entorno de computacin grid
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 51

Figura 5.1 Arquitectura interna de una FPGA.
Las FPGA son el resultado de la convergencia de dos tecnologas diferentes, los
dispositivos lgicos programables o PLDs (Programmable Logic Devices) y los
circuitos integrados de aplicacin especfica o ASI Cs. La historia de los PLDs
comenz con los primeros dispositivos PROMs (Programmable Read-Only Memory) y
se les aadi versatilidad con los PALs (Programmable Array Logic) que permitieron
un mayor nmero de entradas y la inclusin de registros. Esos dispositivos han
continuado creciendo en tamao y potencia. Mientras, los ASI Cs siempre han sido
potentes dispositivos, pero su uso ha requerido tradicionalmente una considerable
inversin tanto de tiempo como de dinero. I ntentos de reducir esta carga han
provenido de la modularizacin de los elementos de los circuitos, como los ASI Cs
basados en celdas, y de la estandarizacin de las mscaras, tal como Ferranti fue
pionero con la ULA (Uncommitted Logic Array). El paso final era combinar las dos
estrategias con un mecanismo de interconexin que pudiese programarse utilizando
fusibles, antifusibles o celdas RAM, como los innovadores dispositivos Xilinx de
mediados de los 80. Los circuitos resultantes son similares en capacidad y
aplicaciones a los PLDs ms grandes, aunque hay diferencias puntuales que delatan
antepasados diferentes. Adems de en computacin reconfigurable, las FPGAs se
utilizan en controladores, codificadores, decodificadores y en el prototipado de
circuitos VLSI (Very Large Scale Integration) y microprocesadores a medida.
El primer fabricante de estos dispositivos fue Xilinx y los dispositivos de Xilinx se
mantienen como uno de los ms populares en compaas y grupos de investigacin.
Otros vendedores en este mercado son Atmel, Altera, AMD y Motorola.
5.1 FPGAs
52 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Figura 5.2 Sistema de desarrollo para Virtex-6, FPGA de Xilinx.

5.1.2 Caractersticas
Una jerarqua de interconexiones programables permite a los bloques lgicos de una
FPGA ser interconectados segn la necesidad del diseador del sistema, algo parecido
a un breadboard (placa de uso genrico reutilizable o semipermanente) programable.
Estos bloques lgicos e interconexiones pueden ser programados despus del proceso
de manufactura por el usuario/diseador, as que la FPGA puede desempear
cualquier funcin lgica necesaria.
Una tendencia reciente ha sido combinar los bloques lgicos e interconexiones de
las FPGAs con microprocesadores y perifricos relacionados para formar un sistema
programable en un chip (SoC, System on a Chip). Ejemplo de tales tecnologas
hbridas pueden ser encontradas en los dispositivos Virtex-I I PRO y Virtex-4 de
Xilinx, los cuales incluyen uno o ms procesadores PowerPC embebidos junto con la
lgica de la FPGA. Otra alternativa es hacer uso de ncleos de procesadores
implementados haciendo uso de la lgica de la FPGA. Esos ncleos incluyen los
procesadores MicroBlaze y PicoBlaze de Xilinx, Nios y Nios I I de Altera, y los
procesadores de cdigo abierto LatticeMicro32 y LatticeMicro8.
Muchas FPGAs modernas soportan la reconfiguracin parcial del sistema,
permitiendo que una parte del diseo sea reprogramada, mientras las dems partes
siguen funcionando. Este es el principio de la idea de la computacin reconfigurable, o
sistemas reconfigurables.
Captulo 5. Entorno de computacin grid
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 53
5.1.3 Programacin
La tarea del programador es definir la funcin lgica que realizar cada uno de los
CLBs (Configurable Logic Block), seleccionar el modo de trabajo de cada IOB
(I nput/ Output Block) e interconectarlos.
El diseador cuenta con la ayuda de entornos de desarrollo especializados en el
diseo de sistemas a implementarse en una FPGA. Un diseo puede ser capturado ya
sea como esquemtico, o haciendo uso de un lenguaje de programacin especial. Estos
lenguajes de programacin especiales son conocidos como HDL o Hardware
Description Language (lenguajes de descripcin de hardware). Los HDLs ms
utilizados son:
VHDL
Verilog
ABEL
En un intento de reducir la complejidad y el tiempo de desarrollo en fases de
prototipaje rpido, y para validar un diseo en HDL, existen varias propuestas y
niveles de abstraccin del diseo.

5.1.4 Aplicaciones
Cualquier circuito de aplicacin especfica puede ser implementado en una FPGA,
siempre y cuando sta disponga de los recursos necesarios. Las aplicaciones donde
ms comnmente se utilizan las FPGAs incluyen a los DSPs (Digital Signal
Processors, procesadores digital de seales), radio definido por software, sistemas
aeroespaciales y de defensa, prototipos de ASI Cs, sistemas de imgenes para
medicina, sistemas de visin para computadoras, reconocimiento de voz,
bioinformtica, emulacin de hardware de computadora, entre otras. Cabe notar que
su uso en otras reas es cada vez mayor, sobre todo en aquellas aplicaciones que
requieren un alto grado de paralelismo.
Existe cdigo fuente disponible (cores, bajo licencia GNU GPL) de sistemas como
microprocesadores, microcontroladores, filtros, mdulos de comunicaciones y
memorias, entre otros.

5.2 Computacin grid
54 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
5.1.5 Tecnologa de la memoria de programacin
Las FPGAs tambin se pueden diferenciar por utilizar diferentes tecnologas de
memoria:
Voltiles: Basadas en RAM. Su programacin se pierde al quitar la alimentacin.
Requieren una memoria externa no voltil para configurarlas al arrancar (antes o
durante el reset).
No Voltiles: Basadas en ROM. Hay de dos tipos, las reprogramables y las no
reprogramables.
Reprogramables: Basadas en EPROM o flash. stas se pueden borrar y volver
a reprogramar aunque con un lmite de unos 10.000 ciclos
No Reprogramables: Basadas en fusibles. Solo se pueden programar una vez,
lo que las hace poco recomendables para trabajos en laboratorios.

5.2 Computacin grid
La computacin grid o grid computing es una tecnologa innovadora que permite
utilizar de forma coordinada todo tipo de recursos, como pueden ser cmputo,
almacenamiento, aplicaciones especficas, etc., que no estn sujetos a un control
centralizado. En este sentido es una nueva forma de computacin distribuida, en la
cual los recursos pueden ser heterogneos (diferentes arquitecturas,
supercomputadores, clusters...) y se encuentran conectados mediante redes de rea
extensa (por ejemplo Internet). Desarrollado en mbitos cientficos a principios de los
aos 1990, su entrada al mercado comercial siguiendo la idea de la llamada Utility
computing supone una importante revolucin. Utility computing no es ms que el
suministro de recursos computacionales, como puede ser el procesamiento y
almacenamiento, como un servicio medido similar a las utilidades pblicas
tradicionales [San07][Web02].
El trmino grid se refiere a una infraestructura que permite la integracin y el
uso colectivo de computadores de alto rendimiento, redes y bases de datos que son
propiedad y estn administrados por diferentes instituciones. Puesto que la
colaboracin entre instituciones envuelve un intercambio de datos, o de tiempo de
computacin, el propsito del grid es facilitar la integracin de recursos
Captulo 5. Entorno de computacin grid
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 55
computacionales. Universidades, laboratorios de investigacin o empresas se asocian
para formar grid para lo cual utilizan algn tipo de software que implemente este
concepto.

5.2.1 Historia
Con el paso del tiempo, el desarrollo del hardware llev a la mejora y abaratamiento
de ste, dando paso a tecnologas que antes eran impensables emplear, debido a
costes o el bajo rendimiento que ofrecan, como lo eran los clusters. Los clusters
surgieron como una nueva alternativa muy recomendable en el campo de la
computacin, tanto paralela como distribuida. Consiste en unir un conjunto de
computadores personales o estaciones mediante una red (LAN, SAN, etc.). Su
principal ventaja es la mejor relacin de coste a rendimiento, sin embargo la gran
demanda tanto de computacin como de espacio y gestin de almacenamiento
requeridos por un gran nmero de aplicaciones que gestionan grandes cantidades de
datos y han de hacerlo de forma eficiente y sencilla, exige el uso de nuevas
tecnologas, como es el caso de la computacin grid o grid computing.

5.2.2 Definicin y caractersticas
Llamamos grid al sistema de computacin distribuido que permite compartir recursos
no centrados geogrficamente para resolver problemas de gran escala. Los recursos
compartidos pueden ser computadores (PC, estaciones de trabajo, PDAs, porttiles,
mviles, FPGAs, etc.), software, datos e informacin, instrumentos especiales (radio,
telescopios, etc.) o personas/colaboradores.
La computacin grid ofrece muchas ventajas frente a otras tecnologas
alternativas. La potencia que ofrecen multitud de computadores conectados en red
usando grid es prcticamente ilimitada, adems de que ofrece una perfecta
integracin de sistemas y dispositivos heterogneos, por lo que las conexiones entre
diferentes mquinas no generarn ningn problema. Se trata de una solucin
altamente escalable, potente y flexible, ya que evitarn problemas de falta de
recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de
modificar el nmero y caractersticas de sus componentes.
Estos recursos se distribuyen en la red de forma transparente pero guardando
unas pautas de seguridad y polticas de gestin de carcter tanto tcnico como
econmico. As pues, su objetivo ser el de compartir una serie de recursos en la red
5.2 Computacin grid
56 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
de manera uniforme, segura, transparente, eficiente y fiable, ofreciendo un nico
punto de acceso a un conjunto de recursos distribuidos geogrficamente en diferentes
dominios de administracin. Esto nos puede llevar a pensar que la computacin grid
permite la creacin de empresas virtuales.
As, podemos esperar que un sistema de computacin distribuido grid presente
las siguientes caractersticas:
Capacidad de balanceo de sistemas: no habra necesidad de calcular la
capacidad de los sistemas en funcin de los picos de trabajo, ya que la
capacidad se puede reasignar desde la granja de recursos a donde se necesite.
Alta disponibilidad: si un servidor falla, se reasignan los servicios en los
servidores restantes.
Reduccin de costes: con esta arquitectura los servicios son gestionados por
"granjas de recursos". Ya no es necesario disponer de "grandes servidores" y
podremos hacer uso de componentes de bajo coste. Cada sistema puede ser
configurado siguiendo el mismo patrn.
Como ejemplo, podemos citar el proyecto SETI @home que cuenta con miles de PC
repartidos por Internet que ceden tiempo de sus procesadores, ciclos de proceso
desocupados, para analizar seales buscando patrones inteligentes extraterrestres.
Sin embargo, su uso destaca tambin en los centros de investigacin desde finales del
1990 en proyectos que van desde Fsica de Partculas a Astrofsica o incluso Biologa.
En Europa con el apoyo de proyectos de CERN (Centro Europeo I nvestigacin
Nuclear) y el programa marco europeo se cre el software y red EDG (grid de datos
europea). El uso de la computacin grid en estos campos ha supuesto una mejora
exponencial en los ltimos aos.

5.2.3 Ventajas y requisitos
Resulta interesante comentar que grid supone un avance respecto al World Wide
Web. El World Wide Web proporciona un acceso transparente a informacin que est
almacenada en millones de ordenadores repartidos por todo el mundo. Frente a ello,
el grid es una infraestructura nueva que proporciona acceso transparente a potencia
de clculo y capacidad de almacenamiento distribuida por una organizacin o por
todo el mundo.
Captulo 5. Entorno de computacin grid
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 57
Analizando la computacin grid se detectan los requisitos que se deben cumplir.
Por un lado, los datos deben compartirse entre miles de usuarios con intereses
distintos. Por tanto, se deben enlazar los centros principales de supercomputacin, no
slo los PC. Adems, se debe asegurar que los datos sean accesibles en cualquier
lugar y en cualquier momento. Por otro lado, la computacin grid debe armonizar las
distintas polticas de gestin de muchos centros diferentes y, finalmente, debe
proporcionar seguridad.
Los beneficios que se obtienen, los podemos resumir en:
Proporciona un mecanismo de colaboracin transparente entre grupos
dispersos, tanto cientficos como comerciales.
Posibilita el funcionamiento de aplicaciones a gran escala.
Facilita el acceso a recursos distribuidos desde nuestros PC.
Todos estos objetivos y beneficios se engloban en la idea de "e-Ciencia".
Estos beneficios tendrn repercusin en muchos campos:
Medicina (imgenes, diagnosis y tratamiento).
Bioinformtica (estudios en genmica y protemica).
Nanotecnologa (diseo de nuevos materiales a escala molecular).
I ngeniera (diseo, simulacin, anlisis de fallos y acceso remoto a
instrumentos de control).
Recursos naturales y medio ambiente (previsin meteorolgica, observacin
del planeta, modelos y prediccin de sistemas complejos).
La tecnologa derivada del grid abre un enorme abanico de posibilidades para el
desarrollo de aplicaciones en muchos sectores. Por ejemplo: desarrollo cientfico y
tecnolgico, educacin, sanidad y administracin pblica.

5.2.4 Desventajas
No obstante, la computacin grid presenta algunos inconvenientes que deben
solucionarse. Estos problemas son:
Recursos heterogneos: la computacin grid debe ser capaz de poder manejar
cualquier tipo de recurso que maneje el sistema, si no resultar totalmente
intil.
5.3 Conclusiones
58 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Descubrimiento, seleccin, reserva, asignacin, gestin y monitorizacin de
recursos son procesos que deben controlarse externamente y que influyen en
el funcionamiento del grid.
Necesidad de desarrollo de aplicaciones para manejar el grid, as como
desarrollo de modelos eficientes de uso.
Comunicacin lenta y no uniforme.
Organizativos: dominios de administracin, modelo de explotacin y costes,
poltica de seguridad, etc.
Econmicos: precio de los recursos, oferta/demanda, etc.

5.3 Conclusiones
En definitiva, el empleo de una FPGA para la computacin de la ecuacin discreta de
Poisson como nodo de una red de computacin grid nos sita ante un paradigma de
computacin distribuida altamente verstil, escalable y que permite combinar la
potencia de muchos equipos para lograr una capacidad global prcticamente
ilimitada.
De este modo, en funcin de las necesidades, diferentes FPGAs podran tomar la
forma del circuito que fuera necesario en cada momento, consiguiendo crear una red
de computacin distribuida en punto flotante simple precisin con ncleos diferentes
y reconfigurables. Para que esto se pudiera llevar a cabo, se precisara de un circuito
diferente para cada ecuacin, de manera que se puedan resolver diferentes
ecuaciones propias de este tipo de dispositivos, as como para diferentes estructuras
tipo.
Sus principales inconvenientes provienen de la dificultad para sincronizar los
procesos de todos estos equipos, monitorizando recursos, asignando cargas de trabajo
y estableciendo polticas de seguridad informtica fiables.
Se trata de un paradigma computacional en fase de desarrollo actualmente que ya
ofrece servicios a muchos campos de investigacin y que en el futuro tendr una
mayor influencia si cabe en dichos campos, al gozar de una estructura evolucionada
respecto a la actual, con mayor robustez, mucho ms rpida en cuanto a la
comunicacin entre sus equipos y, obviamente, con una mayor capacidad
computacional de cada mquina debido a la evolucin en trminos de procesamiento y
de rendimiento del hardware.


Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 59








Parte II
HERRAMIENTAS
SOFTWARE











60 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI



Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 61



Captulo 6

Herramientas software

El comportamiento de la distribucin de potencial del dispositivo DGSOI viene
descrito por una ecuacin diferencial cuya solucin es necesaria para el estudio de la
estructura considerada. El objetivo de este trabajo, adems de conseguir obtener la
solucin, es ejecutar la computacin necesaria en una FPGA que sea parte de un
entorno de computacin grid. Para conseguir llegar al fin, son precisas numerosas
herramientas software. En el presente captulo se presentan las herramientas
especficas que han sido empleadas para realizar, entre otras, simulaciones
numricas, implementaciones esquemticas de circuitos digitales, simulaciones de
circuitos digitales, generacin de cdigo HDL y sntesis de proyectos digitales.

6.1 Simulacin numrica
La simulacin numrica es una herramienta eficaz en las ciencias aplicadas, para la
determinacin de soluciones y la prediccin del comportamiento de las mismas. Una
simulacin numrica difiere de un modelo matemtico en que el primero constituye
una representacin en cada instante del proceso a simular, mientras que el modelo
constituye una abstraccin matemtica de las ecuaciones fundamentales necesarias
para analizar dicho fenmeno [MTOB11]. La utilizacin de una simulacin numrica
para estudiar el ecuacin de Poisson 1D ha requerido una cuidadosa planificacin del
modelo matemtico a utilizar y de los algoritmos necesarios para resolver dicho
modelo. A continuacin, se presenta la herramienta software que ha permitido poder
realizar la simulacin numrica al comportamiento de la distribucin de potencial a
lo largo del canal de un DGSOI.

6.1 Simulacin numrica
62 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
6.1.1 MATLAB
MATLAB (MATrix LABoratory) es un software matemtico que ofrece un entorno de
desarrollo integrado (IDE) con un lenguaje de programacin propio (lenguaje M). Est
disponible para las plataformas Unix, Windows y Mac OS X.
Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la
representacin de datos y funciones, la implementacin de algoritmos, la creacin de
interfaces de usuario (GUI ) y la comunicacin con programas en otros lenguajes y con
otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas
adicionales que expanden sus prestaciones, como son, Simulink (plataforma de
simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI ). Adems,
se pueden ampliar las capacidades de MATLAB con las cajas de herramientas
(toolboxes); y las de Simulink con los paquetes de bloques (blocksets).
Es un software muy usado en universidades y centros de investigacin y
desarrollo. En los ltimos aos ha aumentado el nmero de prestaciones, como la
utilizada en la ltima fase de desarrollo de este proyecto, programar directamente
procesadores digitales de seal o crear cdigo VHDL. MATLAB abarca una amplia
gama de aplicaciones que incluyen procesamiento de seales e imgenes,
comunicaciones, diseo de sistemas de control, sistemas de prueba y medicin,
modelado y anlisis financiero y biologa computacional.
Sus principales caractersticas son:
Lenguaje de alto nivel para clculo tcnico.
Entorno de desarrollo para la gestin de cdigo, archivos y datos.
Herramientas interactivas para explotacin, diseo y resolucin de problemas
iterativos.
Funciones matemticas para lgebra lineal, estadstica, anlisis de Fourier,
filtraje, optimizacin e integracin numrica.
Funciones grficas bidimensionales y tridimensionales para visualizacin de
datos.
Herramientas para crear interfaces grficas de usuario personalizadas.
Funciones para integrar los algoritmos basados en MATLAB con aplicaciones
y lenguajes externos, tales como C/C++, FORTRAN, J ava, COM y Microsoft
Excel.
Captulo 6. Herramientas software
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 63

Figura 6.1 MATLAB, herramienta software utilizada en este trabajo para simulacin numrica
y presentacin de resultados.

Versin, instalacin y requisitos
La versin de MATLAB utilizada corresponde a la versin 7.12.0.635 (R2001a). En la
pgina oficial de la compaa http://www.mathworks.es/ se puede obtener ms
informacin sobre el software y su funcionalidad. Adems, es posible solicitar
software de prueba a travs de http://www.mathworks.es/products/matlab/tryit.html
Respecto a la instalacin y funcionamiento, MATLAB ofrece una amplia ayuda,
puede ser consultada en http://www.mathworks.es/help/techdoc/. Por ltimo, se
presentan los requisitos mnimos recomendados que precisa MATLAB para operar en
funcin del sistema operativo:
SISTEMA
OPERATIVO
VERSIN SO
MNIMA
PROCESADOR
ESPACIO EN
DISCO
RAM
Windows XP SP 3
Cualquier procesador
I ntel o AMD x86 que
soporte conjunto de
instrucciones SSE2
1 GB para el ncleo
de MATLAB, 3-4 GB
para una instalacin
tpica
1024
MB
6.2 I mplementacin, simulacin digital y generacin de HDL
64 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Mac OS X 10.7 (Lion)
Cualquier procesador
Mac basado en I ntel
con un I ntel Core 2 o
posterior
1 GB para el ncleo
de MATLAB, 3-4 GB
para una instalacin
tpica
1024
MB
Linux
Ubuntu 10.04
Red Hat 5.x
SUSE Linux 11.x
Debian 5.x
Cualquier procesador
I ntel o AMD x86 que
soporte conjunto de
instrucciones SSE2
1 GB para el ncleo
de MATLAB, 3-4 GB
para una instalacin
tpica
1024
MB

Tabla 6.1 Requisitos mnimos recomendados por el software de MATLAB en funcin del SO.

6.2 Implementacin, simulacin digital y
generacin de HDL
Una vez realizada la simulacin numrica, se precisan herramientas que permitan
un diseo de sistemas digitales y la simulacin de los mismos. Tal y como se explica
en el captulo 5, la programacin de una FPGA se realiza con un lenguaje de
descripcin hardware. En este trabajo, en lugar de disear y ensamblar el sistema
final mediante cdigo HDL se ha utilizado una alternativa diferente. Mediante dos
herramientas software que operan sobre MATLAB, se ha realizado un diseo RTL y a
partir de dicho esquemtico se ha generado el cdigo HDL. En este apartado se
describen las herramientas que nos han permitido esta metodologa de diseo.

6.2.1 Simulink
Simulink es un entorno para la simulacin multidominio y el diseo basado en
modelos para sistemas dinmicos y embebidos que opera sobre MATLAB. Presenta
un entorno grfico interactivo y un conjunto personalizable de bibliotecas de bloques
que permiten simular, implementar y probar una serie de sistemas variables con el
tiempo, incluido comunicaciones, controles y procesamiento de seales, vdeo e
imagen.
Simulink est integrado con MATLAB y ofrece acceso inmediato a una amplia
gama de herramientas que permiten desarrollar algoritmos, analizar y visualizar
simulaciones, crear series de procesado de lotes, personalizar el entorno de modelaje
Captulo 6. Herramientas software
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 65
y definir seales, parmetros y datos de pruebas. Es un entorno de programacin de
ms alto nivel de abstraccin que el lenguaje interpretado MATLAB (lenguaje M).
Simulink viene a ser una herramienta de simulacin de modelos o sistemas, con
cierto grado de abstraccin de los fenmenos fsicos involucrados en los mismos. Se
hace hincapi en el anlisis de sucesos, a travs de la concepcin de sistemas (cajas
negras que realizan alguna operacin).
Se emplea arduamente en Ingeniera Electrnica en temas relacionados con el
procesamiento digital de seales (DSP), involucrando temas especficos de ingeniera
biomdica, telecomunicaciones, control y robtica.
Sus funciones principales son:
Bibliotecas extensas y ampliables de bloques predefinidos.
Editor grfico interactivo para ensamblar y administrar diagramas de bloque
intuitivos.
Capacidad de gestionar diseos completos segmentando los modelos en
jerarquas de componentes de diseo.
Model Explorer para navegar, crear, configurar y buscar todas las seales,
parmetros, propiedades y cdigo generado asociados con el modelo.
I nterfaces de programacin de aplicaciones (API ) que permiten conectar con
otros programas de simulacin e incorporar cdigo escrito manualmente.
Embedded MATLAB: Bloques de funciones para implementar los algoritmos
de MATLAB en Simulink e implementaciones de sistemas empotrados.
Modos de simulacin (normal, acelerador y acelerador rpido) para ejecutar
simulaciones de forma interpretativa o a velocidades de cdigo C compilado
utilizando solucionadores de paso fijo o variable.
Depurador y perfilador grfico para examinar los resultados de simulacin y
diagnosticar el rendimiento y el comportamiento inesperado del diseo
Acceso completo a MATLAB para analizar y visualizar resultados,
personalizar el entorno de modelaje y definir seales, parmetros y datos de
prueba.
Herramientas de anlisis de modelos y diagnosis para garantizar la
coherencia de los modelos e identificar errores de modelaje.
6.2 I mplementacin, simulacin digital y generacin de HDL
66 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Figura 6.2 Simulink, herramienta software utilizada en este trabajo para implementacin
y simulacin de modelos.

Versin, instalacin y requisitos
Simulink requiere MATLAB para su funcionamiento. La versin utilizada en este
trabajo es la versin 7.7, incluida en la versin de MATLAB 7.12.0.635 (R2001a),
anteriormente explicada en el apartado 6.1.1. Por ende, la instalacin y requisitos los
encontramos en el apartado en cuestin.

6.2.2 Xilinx System Generator for DSP
System Generator for DSP es una herramienta de alto nivel de abstraccin para el
diseo de sistemas de gran rendimiento para FPGAs. Permite desarrollar sistemas
digitales para las FPGAs ms avanzadas del mercado. De esta manera, ofrece
modelado RTL (register transfer level) de sistemas en Simulink y MATLAB y
generacin automtica de lenguaje de descripcin hardware (VHDL o Verilog),
bitstream o anlisis temporal y de potencia, entre otros. RTL se refiere al diseo
abstracto con modelos de circuitos sncronos digitales en trminos de seales digitales
propagndose (datos) entre registros hardware y operaciones lgicas.
System Generator for DSP tambin es parte de Xilinx I SE Design Suite, de hecho
la herramienta es desarrollada por Xilinx, la mayor empresa en investigacin y
Captulo 6. Herramientas software
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 67
desarrollo de FPGAs. System Generator permite que desarrolladores con poca
experiencia en el diseo de sistemas para FPGAs puedan crear rpidamente una
implementacin de calidad para algoritmos DSP en una fraccin de tiempo de
desarrollo reducida, debido al diseo RTL y verificar dichos diseos desde Simulink.
Sus principales caractersticas pueden resumirse en:
Modelado DSP: Generacin y depuracin de sistemas DSP de alto
rendimiento con la librera de bloques de Xilinx en Simulink, que contiene
funciones para el procesamiento de seales (por ejemplo, filtros FI R o FFT),
correccin de errores (por ejemplo, decodificador de Viterbi,
codificador/decodificador Reed-Solomon), aritmtica, almacenaje en memorias
(por ejemplo, FI FO, RAM, ROM), y lgica digital.
I mplementacin en bit, punto fijo y punto flotante: System Generator puede
trabajar a nivel de bit, en punto fijo y/o en punto flotante con precisin
simple, doble o personalizada.
Generacin automtica de cdigo VHDL o Verilog desde Simulink: System
Generator permite que una vez finalizado el modelo, compilar el diseo en
una netlist HDL preparada para su procesamiento mediante una herramienta
de sntesis e implementada con herramientas de diseo fsico de Xilinx.
Adems, genera archivos de proyecto y archivos de restricciones para Xilinx
I SE Design Suite y un testbench VHDL para la verificacin funcional.
Co-simulacin hardware: Partes del diseo Simulink modelado con System
Generator for DSP pueden compilarse en un flujo de bits descargado en una
placa de desarrollo y asociarlo con un bloque en Simulink. Cuando se simula
un diseo de sistema en Simulink, los resultados de la parte compilada se
calculan en el hardware FPGA real, lo que a menudo supone una simulacin
bastante ms rpida a la hora de verificar el correcto funcionamiento del
hardware. Adems, admite la comunicacin Ethernet y J TAG entre
plataformas de hardware y Simulink.
Xilinx Power Analyzer (XPA) Integration: XPA permite a los diseadores
analizar requerimientos de potencia y experimentar modificaciones del diseo
para cumplir los objetivos de consumo de potencia.
Co-diseo hardware/software de sistemas embedidos: Generacin y
depuracin de co-procesadores DSP para MicroBlaze, nucleo procesador
software.
6.2 I mplementacin, simulacin digital y generacin de HDL
68 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Figura 6.3 System Generator for DSP, herramienta software utilizada en este trabajo para
implementacin de sistemas digitales y generacin de cdigo HDL.

Versin, instalacin y requisitos
La versin de Xilinx System Generator for DSP utilizada en el presente trabajo
corresponde a la versin 13.4. Dicha herramienta pertenece al fabricante Xilinx,
adems, para la sntesis y el anlisis del diseo en HDL generado por System
Generator se precisa de la herramienta que se presenta en el apartado siguiente,
Xilinx I SE Design Suite. Es por ello, por lo que se detalla a continuacin la
instalacin y requisitos de Xilinx I SE Design Suite 13.4 que incluye, entre otras
herramientas, System Generator, que adems es compatible con la versin de
MATLAB 7.12.0.635 (R2001a) y Simulink 7.7 explicados en los apartados 6.1.1 y
6.2.1, respectivamente.
En la pgina oficial de la compaa http://www.xilinx.com/ se puede obtener ms
informacin sobre el software y su funcionalidad. Adems, es posible adquirir la
versin Xilinx I SE Design Suite 13.4 e, incluso, solicitar software de prueba a travs
de http://www.xilinx.com/support/download/index.htm.
Respecto a la instalacin y funcionamiento, Xilinx ofrece una amplia ayuda que
puede ser consultada en www.xilinx.com/support/. Por ltimo, los requisitos mnimos
recomendados que precisa Xilinx I SE Design Suite 13.4 para operar en funcin del
sistema operativo son los siguientes:
SISTEMA
OPERATIVO
VERSIN SO
MNIMA
ESPACIO EN DISCO RAM
Windows XP Professional
15 GB para una
instalacin tpica
2048
MB
Mac

Linux
Red Hat 4.x
SUSE Linux 11.x
15 GB para una
instalacin tpica
2048
MB

Tabla 6.2 Requisitos mnimos recomendados por Xilinx I SE Design Suite 13.4 en funcin del SO
Captulo 6. Herramientas software
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 69
6.3 Sntesis de sistemas digitales en HDL
Actualmente cualquier proceso de ingeniera dispone de un soporte software que
asiste al ingeniero de aplicaciones o sistemas en el desarrollo de sistemas complejos.
Los sistemas electrnicos reconfigurables del tipo FPGA son un buen ejemplo de la
complejidad que se puede alcanzar, sta no sera abarcable sin la ayuda de un
entorno con herramientas que asistan en el proceso de diseo, simulacin, sntesis del
resultado y configuracin del hardware. En este apartado, se presenta la herramienta
utilizada para realizar el ltimo paso para la obtencin del resultado final: la sntesis
del sistema digital descrito en HDL.

6.3.1 Xilinx ISE Design Suite
Xilinx I SE es una herramienta software producida por Xilinx para la sntesis y el
anlisis de diseos en HDL, permitiendo as al desarrollador sintetizar (compilar)
sus diseos, realizar anlisis temporales, estudiar diagramas RTL, simular la
respuesta de un diseo frente a diferentes entradas y configurar la FPGA con el
programador.
Este software constituye un verdadero entorno EDA (Electronic Design
Automation). EDA se refiere a la categora de herramientas software dedicadas al
diseo de sistemas electrnicos que trabajan juntas en un flujo de diseo que los
diseadores utilizan para desarrollar y analizar dichos sistemas al completo.
A travs de la interfaz grfica de usuario ofrecida Xilinx I SE los diseos de
usuario se pueden introducir mediante diferentes formatos. Los ms utilizados son:
los esquemticos, los grafos de estados y las descripciones hardware en VHDL. Una
vez compilados los diseos se puede simular su comportamiento a nivel funcional o a
nivel temporal. A nivel funcional no tiene en cuenta los retardos provocados por el
hardware y a nivel temporal simula el diseo teniendo en cuenta cmo se va a
configurar el hardware.
Las caractersticas clave a destacar en Xilinx I SE Design Tools pueden son:
Diseo y sntesis compatible con Verilog y VHDL. Combina mltiples ficheros
en un nico netlist, agrupando los smbolos lgicos del netlist (puertas) en
componentes fsicos (slices e IOBs).
6.3 Sntesis de sistemas digitales en HDL
70 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Place-And-Route (PAR). Distribuye los componentes en el chip, los conecta y
genera informes con anlisis temporales.
Verificacin completa y depuracin.
Creacin de ficheros bit para configurar la FPGA.

Figura 6.4 Xilinx I SE Design Suite 13.4, herramienta software utilizada en este trabajo para para la
sntesis del sistema digital en HDL.

Versin, instalacin y requisitos
La versin utilizada de Xilinx I SE Design Suite en este trabajo es la versin 13.4. La
informacin relativa a la instalacin del software y los requisitos mnimos
recomendados para su correcto funcionamiento pueden encontrarse en el apartado
6.2.2.




Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 71








Parte III
DESARROLLO DEL TRABAJ O
Y RESULTADOS











72 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI





Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 73



Captulo 7

Simulacin numrica

En este captulo se procede a la simulacin numrica de la ecuacin discreta de
Poisson 1D obtenida en el captulo 3 mediante la discretizacin de la ecuacin
continua por el mtodo de las diferencias finitas. La herramienta software utilizada
es MATLAB, presentada en el captulo 6. Tras investigar cmo afectan las variables
crticas del mtodo numrico se presentan varias alternativas a un problema de
aproximacin que surge de la necesidad de ejecucin del sistema en una plataforma
reconfigurable mediante la representacin numrica basada en el formato I EEE 754.
Se pone fin al captulo realizando una simulacin numrica de la ecuacin discreta de
Poisson 1D una vez adoptada la solucin al problema anteriormente citado.

7.1 Simulacin numrica de la ecuacin
discreta de Poisson 1D
Sea la siguiente estructura el esquema de un transistor DGSOI , objeto de estudio del
presente trabajo:

Figura 7.1 Esquema de la estructura de un dispositivo DGSOI .
7.1 Simulacin numrica de la ecuacin discreta de Poisson 1D
74 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
En el captulo 3 se desarroll la ecuacin de Poisson 1D por el mtodo de
diferencias finitas, el resultado obtenido en la ecuacin 3.18 se recuerda a
continuacin:
I(i) =
I(i +1) +I(i 1) _
0, cn lo rcgin Jc xiJo
x
2
q
e
0
e
S
_N
A
-
+n

c
v()
v
T _ , cn lo rcgin Jc scmiconJuctor
2

Ecuacin 7.1 Ecuacin discreta de Poisson 1D.
En este apartado se realiza la simulacin numrica para estudiar la solucin que
proporciona la expresin 7.1 bajo diferentes condiciones iniciales y finales. Con la
ayuda de la herramienta MATLAB, se construye el sistema iterativo. El cdigo
implementado en MATLAB puede consultarse en el apndice A, apartado A.1.
En primer lugar, se encuentra la declaracin de las constantes:
Descripcin Nombre Valor
Concentracin intrnseca del silicio 300 K [cm
-3
] ni 1.5 10
10

Permitividad elctrica del vaco [F/cm] E0 8.854 10
-14

Permitividad elctrica relativa del silicio Esi 11.8
Constante de Boltzmann [eV/K] K 8.62 10
-5

Valor absoluto de la carga del electrn [C] q 1.6 10
-19

Temperatura [K] T 300
Tensin trmica [V] Vt KT

Tabla 7.1 Declaracin de constantes para la simulacin numrica.

A continuacin, se declaran una serie de constantes de entrada, es decir, variables
de valor constante que son definidas al iniciar el mtodo numrico y que pueden
variar su valor para experimentar diferentes condiciones iniciales. Estas variables
son (ntese que el valor que aparece para cada variable puede ser modificado para
obtener una solucin diferente):


Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 75
Descripcin Nombre Valor
Concentracin de impurezas en el semiconductor [cm
-3
] Na 10
18

Tensiones de puerta [V] Vg1, Vg2 1
Longitud del canal del transistor DGSOI [cm] x 10
-6

Nmero de puntos en los que discretizamos el canal points 100
Nmero de puntos correspondientes a xido Ox_points 20
Ancho de discretizacin [cm/punto] Ax x/points
Lmite de iteraciones limit 1000000
Umbral de error umbral 10
-6


Tabla 7.2 Declaracin de constantes de entrada para la simulacin numrica

Seguidamente, las variables del mtodo numrico son inicializadas. Estas son: el
contador de iteraciones, la solucin numrica anterior para realizar el clculo del
error y la solucin numrica. Reescribimos la ecuacin discreta de Poisson 1D tal y
como ha sido implementada en MATLAB (igual nomenclatura):
I(i) =
I(i +1) +I(i 1) rsI rs(i)
2

rsI =_
0, cn lo rcgin Jc xiJo
x
2
qN
A
-
e
0
e
S
, cn lo rcgin Jc scmiconJuctor

rs(i) =_
0, cn lo rcgin Jc xiJo
x
2
qn

c
v()
v
T
e
0
e
S
, cn lo rcgin Jc scmiconJuctor

Ecuacin 7.2 Ecuacin discreta de Poisson 1D (nomenclatura utilizada en MATLAB).
Considerando, en este caso, como condiciones iniciales y finales las recogidas en
las tablas 7.1 y 7.2 se procede a la simulacin numrica. Se recoge como salida las
representaciones tanto del comportamiento de la tensin a lo largo del canal (I), como
de la concentracin de electrones a lo largo del canal (n =n

c
v
v
T).
7.1 Simulacin numrica de la ecuacin discreta de Poisson 1D
76 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Figura 7.2 Resultado de la simulacin numrica de la ecuacin discreta de Poisson 1D realizada con
MATLAB

La salida obtenida tras iterar el mtodo numrico, tal y como puede observarse en
la Figura 7.2, es la solucin al problema numrico. No puede asegurarse, porque no es
objetivo de este trabajo realizar tal comprobacin, que el mtodo iterativo resulte
estable y consistente, y por tanto, convergente. Asumiendo que esto es cierto, puede
decirse que el error de truncamiento introducido por el mtodo de diferencias finitas,
as como, el error de redondeo por el hecho de utilizar la representacin en punto
flotante I EEE 754 simple precisin no evitan la convergencia del mtodo iterativo.
Por otro lado, y tal y como puede observarse en la Figura 1.18 del captulo 1,
destaca como al polarizar las dos puertas los electrones se confinan en las cercanas
de las interfases de silicio con el xido.
Los valores de tensin (en V) para cada uno de los puntos en los que se ha
discretizado el canal del dispositivo DGSOI son los siguientes:
1 0,9816405 0,9632810 0,9449216 0,9265622 0,9082029 0,8898436
0,8714844 0,8531252 0,8347661 0,8164071 0,7980481 0,7796893 0,7613305
0,7429717 0,7246131 0,7062545 0,6878960 0,6695375 0,6511792 0,6328208
0,6144626 0,6009117 0,5902137 0,5814073 0,5739509 0,5675102 0,5618649
0,5568619 0,5523911 0,5483705 0,5447376 0,5414436 0,5384500 0,5357256
0,5332451 0,5309879 0,5289365 0,5270765 0,5253958 0,5238841 0,5225329
0,5213348 0,5202836 0,5193742 0,5186022 0,5179641 0,5174570 0,5170787
0,5168275 0,5167025 0,5167030 0,5168290 0,5170811 0,5174603 0,5179684
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 77
0,5186073 0,5193800 0,5202901 0,5213419 0,5225405 0,5238921 0,5254040
0,5270848 0,5289447 0,5309961 0,5332533 0,5357335 0,5384575 0,5414508
0,5447444 0,5483769 0,5523969 0,5568671 0,5618694 0,5675140 0,5739540
0,5814100 0,5902160 0,6009137 0,6144643 0,6328226 0,6511810 0,6695395
0,6878980 0,7062565 0,7246152 0,7429738 0,7613326 0,7796913 0,7980502
0,8164091 0,8347680 0,8531270 0,8714860 0,8898450 0,9082041 0,9265632
0,9449223 0,9632815 0,9816408 1

A continuacin, se ejecuta la simulacin del sistema iterativo para diferentes
anchos de discretizacin, condiciones de contorno y umbral de error. El objetivo es
estudiar el comportamiento del mtodo iterativo en funcin de estas variables. Los
resultados obtenidos son los siguientes:
Ancho de
discretizacin
(Ax) [cm/punto]
Umbral
de error
Condiciones de
contorno
(Vg) [V]
Nmero de
iteraciones
Error
absoluto [V]
1e-8
1e-5
0.5 2988 9.9838e-6
0.75 1166 9.9540e-6
1 575 9.8944e-6
1e-6
0.5 4513 9.8348e-7
0.75 1511 9.5367e-7
1 841 9.5367e-7
1e-7
0.5 6021 8.9407e-8
0.75 1934 5.9605e-8
1 1147 5.9605e-8
5e-8
1e-5
0.5 6000 9.9838e-6
0.75 10450 9.9838e-6
1 5189 9.9540e-6
1e-6
0.5 57896 9.8348e-7
0.75 25228 9.5367e-7
1 11418 9.5367e-7
1e-7
0.5 96757 8.9407e-8
0.75 35398 5.9605e-8
1 19687 5.9605e-8






















7.2 Aproximacin de la funcin exponencial
78 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

1e-9
1e-5
0.5 6090 9.9838e-6
0.75 9100 9.9838e-6
1 11197 9.9540e-6
1e-6
0.5 111135 9.8348e-7
0.75 76615 9.8348e-7
1 26042 9.5367e-7
1e-7
0.5 308481 8.9407e-8
0.75 126965 5.9605e-8
1 65515 5.9605e-8

Tabla 7.3 Estudio del comportamiento del esquema numrico en funcin de sus parmetros crticos

En primer lugar, destacar que conforme el ancho de discretizacin se hace ms
pequeo, dicho de otra manera, conforme el canal es dividido en ms puntos, el coste
computacional incrementa para umbral de error o condiciones de contorno
constantes. Por otro lado, respecto al umbral de error, conforme es disminuido el
nmero de iteraciones aumenta, por lo que el coste computacional es mayor, para
unas condiciones de contorno y ancho de discretizacin constante. Sin embargo, el
mtodo numrico presenta un comportamiento dependiente de las condiciones de
contorno con el umbral de error. Como puede observarse en la tabla 7.3, para un
umbral de error de 10
-5
, conforme el valor de las condiciones de contorno es
aumentado el coste de computacin tambin aumenta y, por el contrario, para valores
menores del umbral de error, el comportamiento es inversamente proporcional.
Realizado este primer estudio sobre el comportamiento del mtodo iterativo, el
objetivo del trabajo es estudiar la viabilidad de encontrar una solucin. Por ello, se
persigue una solucin con precisin aceptable y bajo coste de computacin. De aqu en
adelante se utilizar un ancho de discretizacin de 10
-8
, unas condiciones de contorno
de 1V y un umbral de error de 10
-6
, cumpliendo dicha condicin de parada para 841
iteraciones y cuya salida es la observada en la Figura 7.2.

7.2 Aproximacin de la funcin exponencial
En el apartado anterior se ha observado que el mtodo numrico converge a la
solucin real del problema al discretizar la ecuacin de Poisson 1D por el mtodo de
diferencias finitas. Sin embargo, se detecta un importante problema al ejecutar la
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 79
ecuacin en una plataforma de clculo digital y es la computacin de la funcin
exponencial:
I(i) =
I(i +1) +I(i 1) _
0, cn lo rcgin Jc xiJo
x
2
q
e
0
e
S
_N
A
-
+n

c
v()
v
T _ , cn lo rcgin Jc scmiconJuctor
2

Ecuacin 7.3 La funcin exponencial es una operacin no elemental, que no puede ser computada por una
unidad en punto flotante.
En una FPGA se puede encontrar como ncleo para realizar las operaciones
aritmticas una FPU (Floating Point Unit), que no es ms que una ALU (Arithmetic
Logic Unit) capaz de trabajar con nmero en formato punto flotante y, en nuestro
caso, simple precisin. Dicho ncleo cuenta con las operaciones bsicas suma/resta y
multiplicacin/divisin. Es por ello, por lo que se debe idear una aproximacin de la
funcin exponencial continua. Para ello se estudian varias alternativas para
aproximar el valor de dicha funcin teniendo en cuenta que el rango donde puede
tomar valores est limitado:
c
v()
v
T
e _1,c
|max(v
g1
,v
g2
)|
v
T _
Ecuacin 7.4 Rango de inters de la funcin exponencial continua.
Cabe destacar que en este trabajo se suponen ambas puertas polarizadas con la
misma tensin y positivas, tal que as:
c
v()
v
T
e _1,c
v
g
v
T_
Ecuacin 7.5 Rango de inters de la funcin exponencial continua, teniendo en cuenta que ambas puertas
metlicas se encuentran polarizadas con la misma tensin.
Para cada una de las alternativas que se presentan a continuacin, se detallan
ventajas y desventajas de la aproximacin realizada en trminos de error cometido
por dicha aproximacin y carga computacional y consumo de recursos adicional.
Adems, se prestar especial atencin al error introducido al aplicar este proceso, ya
que el error puede deteriorar las caractersticas de estabilidad y consistencia del
esquema numrico, no garantizando, de esta manera, la convergencia a la solucin
real.

7.2 Aproximacin de la funcin exponencial
80 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
7.2.1 Serie de Taylor
La primera alternativa que se presenta para aproximar la funcin exponencial es
utilizar la serie de Taylor, ya que sta es infinitamente derivable en el intervalo de
inters:
g(i) =c
v()
v
T
I(i) |0,I
g
]
(x) =c
x
x _0,
I
g
I
1
_
Ecuacin 7.6 La funcin exponencial es infinitamente derivable en el rango de inters.
As, sea la funcin (x), infinitamente derivable y definida en un intervalo
x (o r,o +r), se define la serie de Taylor de dicha funcin como la siguiente suma:
(x) =

(n)
(o)
n!
(x o)
n

n=0

Ecuacin 7.7 Serie de Taylor de la funcin (x).
donde n! es el factorial de n y
(n)
(o) indica la n-sima derivada de en el punto o.
Para el caso de la funcin exponencial en el rango de inters:
(x) =

(n)
(o)
n!
(x o)
n

n=0
poro o =
I
g
2I
1

c
x
=c
u

(x o)
n
n!

n=0

Ecuacin 7.8 Serie de Taylor de la funcin exponencial en el rango de inters.
El siguiente paso es realizar un truncamiento de la serie de Taylor, tal y como se
realiz al aplicar el teorema de las diferencias finitas, teniendo en cuenta que, el
gasto computacional es directamente proporcional al grado del polinomio de Taylor
construido truncando la serie. Ntese que, suponiendo un polinomio de tercer grado,
en tal caso:
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 81
c
x
=c
u

(x o)
n
n!

n=0
b =(x o) c
x
=c
u

b
n
n!
3
n=0
=c
u
_1+b +
b
2
2
+
b
3
6
_
c
x
=c
u
_1+b _1+b _
1
2
+
b
6
]__
Ecuacin 7.9 Polinomio de Taylor de tercer orden de la funcin exponencial.
Puede generalizarse, por tanto, la carga computacional por muestra para un
polinomio de grado n.
EVALUACI N DE CARGA COMPUTACIONAL Y CONSUMO DE RECURSOS
Serie de Taylor

Eval uaci n por muestra de entrada de
F(|)
F
g

Nmero de ciclos n+1
Carga computacional
(por ciclo)
Operaciones suma 1
Operaciones producto 1
Carga computacional y
consumo de recursos
(adicional)
Funciones lgicas 0
Accesos a memoria 0
Tamao de memoria
(palabras)
-

Tabla 7.4 Carga computacional y consumo de recursos adicional que implica adoptar la serie de Taylor
truncada como alternativa a la funcin exponencial.

En el apndice A, apartado A.2 se encuentra el cdigo del programa realizado en
MATLAB para la simulacin de esta tcnica de aproximacin de la funcin
exponencial.
El grado del polinomio influye directamente en el nmero de iteraciones
necesarias para cumplir un umbral de error especificado. A continuacin, se realiza
un estudio cuantitativo del error absoluto y relativo de esta tcnica comparando la
solucin obtenida en el proceso iterativo aproximando la funcin exponencial y la
solucin obtenida en el proceso iterativo con la funcin exponencial en su forma
continua.
7.2 Aproximacin de la funcin exponencial
82 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Sea el error absoluto y error relativo tal que as:
e =
1
n
|I
cxponcncuI
(i) I
upoxmucn
(i)|
n
=0

Ecuacin 7.9 Error absoluto.

e =
1
n

|I
cxponcncuI
(i) I
upoxmucn
(i)|
I
cxponcncuI
(i)
n
=0

Ecuacin 7.10 Error relativo.
donde I
cxponcncuI
es la solucin obtenida por el mtodo iterativo utilizando la funcin
exponencial continua y I
upoxmucn
es la solucin obtenida por el mtodo iterativo
utilizando una tcnica de aproximacin de la funcin exponencial.
De esta manera, para evaluar la eficiencia de la presente tcnica, el mtodo
iterativo es simulado para diferentes valores del grado del polinomio de Taylor y se
estudia el compromiso entre carga computacional y consumo de recursos y precisin.
La siguiente tabla muestra los resultados obtenidos en las simulaciones:
EVALUACI N DE ERROR
Serie de Taylor
Orden del polinomio Iteraciones Error absoluto Error relativo
1 2236 8.799674e-2 1.487737e-1
2 1042 2.852437e-2 4.670283e-2
3 876 1.196746e-2 1.929008e-2
4 849 5.429900e-3 8.672036e-3
5 842 2.501106e-3 3.968732e-3
6 842 1.132046e-3 1.787529e-3
7 839 4.918768e-4 7.733625e-4
8 841 2.033675e-4 3.187789e-4
9 842 7.941910e-5 1.242969e-4
10 844 2.973980e-5 4.669533e-5

Tabla 7.5 Error de aproximacin cometido en funcin del orden del polinomio de Taylor.
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 83
Utilizando las mismas condiciones de contorno, umbral de error y ancho de
discretizacin y la funcin exponencial continua se experiment en el apartado 7.1
que era preciso iterar el mtodo 841 veces para cumplir la exigencia impuesta por el
umbral de error. Se puede concluir, segn los resultados que aparecen en la tabla 7.5,
que el grado del polinomio utilizado para aproximar la funcin exponencial influye
directamente en el nmero de iteraciones necesarias para alcanzar el umbral de error
impuesto. De esta manera, a partir de un polinomio de grado 5, y superiores, se
precisa prcticamente del mismo nmero de iteraciones que el mtodo necesit
utilizando la funcin exponencial continua.
Sin embargo, aunque se precisen las mismas iteraciones, s que puede observarse
que el error se reduce progresivamente conforme el grado del polinomio aumenta, es
decir, la solucin aproximada difiere menos a la solucin obtenida con la funcin
continua. As, el error absoluto y relativo junto con la carga computacional y consumo
de recursos son las variables principales a la hora de evaluar la eficiencia de cada
una de las tcnicas de aproximacin que son desarrolladas en este trabajo.

Figura 7.3 Serie de Taylor. Error relativo en funcin del grado del polinomio de Taylor.




1,00E-05
1,00E-04
1,00E-03
1,00E-02
1,00E-01
1,00E+00
1 2 3 4 5 6 7 8 9 10
E
r
r
o
r

r
e
l
a
t
i
v
o
Grado del polinomio
EVALUACIN DEL ERROR
Serie de Taylor
7.2 Aproximacin de la funcin exponencial
84 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
7.2.2 Aproximacin lineal por tramos
El fundamento principal de la esta tcnica de aproximacin de la funcin exponencial
reside en una divisin del rango de la funcin exponencial (
v()
v
T
j0,
v
g
v
T
[) en un nmero
limitado de puntos equiespaciados y almacenar el valor de la funcin exponencial
evaluada en dichos puntos. Dicho de otra forma, discretizar la funcin en un nmero
limitado de puntos equiespaciados. Si el punto en el que se pretende evaluar la
funcin exponencial no coincide exactamente con un punto en el que el rango es
dividido, el resultado final se aproxima a partir de la pendiente (aproximacin lineal)
de cada par de puntos. El valor de la pendiente ser tambin almacenado.
Los valores de la funcin exponencial evaluada en cada punto en los que el rango
es dividido, adems de la pendiente entre dicho punto y el inmediato, deben ser
almacenados en una memoria ROM. Para una buena optimizacin de los recursos
consumidos en una FPGA, el nmero de puntos en los que dividir el rango completo
se exige que sea 2
bd
, donde bJir es el nmero de bits utilizados para el
direccionamiento de la memoria ROM. As, sta tendra msizc =2
bd
posiciones,
siendo la direccin inicial 0 y la direccin final Jmox =msizc 1. Dicho esto, se
divide el rango de la funcin exponencial en msizc puntos equiespaciados, tal que as:

Figura 7.4 Divisin del rango de inters de la funcin exponencial en 2
hd|r
puntos equiespaciados
Los valores de
v()
v
T
que no coinciden exactamente con los puntos en los que el rango
de la exponencial ha sido dividido caern entre dos de ellos, llmense por ejemplo
A y B. Se utilizar el punto ms cercano al origen (A) para obtener de la ROM su valor
y la pendiente entre A y B. As, la diferencia entre el punto inicial (
v()
v
T
) y el utilizado
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 85
para la ROM (A) se multiplicar por la pendiente entre A y B y se sumar al valor de
la exponencial en A para obtener la aproximacin de la funcin exponencial. As, dado
un valor de
v()
v
T
, que cae entre dos puntos A y B, el valor de la funcin exponencial ser
aproximado tal que as:
A =
I
g
I
1
n
Jmox
B =
I
g
I
1
n +1
Jmox
n 0,1,,(Jmox 1)
c
v()
v
T
=c
A
+(I(i) A) (B A)
Ecuacin 7.11 Metodologa para la aproximacin de la funcin exponencial mediante la tcnica de
aproximacin lineal por tramos.
Tngase en cuenta que los valores de c
A
y (B A) se encuentran en una ROM tal
y como se ha comentado anteriormente.
Se ha obviado, hasta este punto, el principal problema de esta alternativa de
aproximacin de la funcin exponencial para un entorno digital. El problema reside
en que dada una muestra de I(i) cmo calcular el valor del punto al que acudir a la
memoria ROM. La solucin implementada en este trabajo se basa en acotar todas las
muestras del rango de I(i) en un rango en el que el formato punto flotante I EEE 754
simple precisin se comporte uniformemente, o dicho de otra forma, que la
representacin numrica presente el mismo exponente. Bsicamente se trata de
realizar un cambio de formato en la representacin de punto flotante a punto fijo.
Tal y como fue comentado en el captulo 4, I EEE 754 permite una representacin
de los nmeros en la escala real no uniforme (Figura 4.2). Dicho esto, conocido el
rango de las muestras de entrada (I(i) |0,I
g
]), basta con elegir un rango uniforme,
en este caso se ha elegido I(i) [0.5,1], porque presenta el mejor comportamiento
frente a carga computacional y precisin. Un rango uniforme inferior implicara
perder bits para realizar la aproximacin con la pendiente, como posteriormente
puede deducirse; y un rango uniforme superior implicara un posterior tratamiento
del resultado, es decir, aumentar la carga computacional. As, dada una muestra I(i),
I(i) se calcula de la siguiente manera:
I
i
(i) =
1
2
I(i)
I
g
+
1
2

Ecuacin 7.12 Clculo realizado a las muestras de entrada para acotarlas al rango [0.5,1]
7.2 Aproximacin de la funcin exponencial
86 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
En tal caso, todas las muestras de I(i) tendrn el siguiente formato:

Figura 7.5 Formato a nivel de bit que presentarn todas las muestras de F(|)
Aplicando el formato I EEE 754 para nmeros en punto flotante y simple precisin
estudiado en el apartado 4.1 del captulo 4, el valor de I(i) ser:
I(i) =s 2
c
m I(i) =
1
2
(1,HANIISA) _
1
2
,1_
c =EXP0NENIE 127 =1
Ecuacin 7.13 Valor decimal de las muestras I(i) calculado segn el estndar I EEE 754.
Dado un valor de I(i), todos presentaran el mismo bit de signo y los mismos bits
de exponente. Por tanto, los 9 primeros bits pueden ser obviados, disponiendo de un
nmero de 23 bits para obtener la direccin de memoria a la que acudir y el resto de
bits para realizar la aproximacin con la pendiente. La localizacin del punto de la
nueva representacin en punto fijo se fijar dependiendo del nmero de bits
utilizados para direccionar la memoria ROM (bJir), tal que la parte entera
representar la direccin de memoria y el resto (23 bJir) bits, formarn la parte
decimal y se utilizarn para aproximar el resultado. Un esquema de lo explicado
puede observarse a continuacin:

Figura 7.6 Metodologa utilizada para detectar la direccin de memoria a la que acudir dado un valor de
F(|). Los valores de la funcin exponencial evaluados en cada punto en los que se ha dividido el rango
corresponden a h(|), mientras que c(|) representa el valor de la pendiente entre cada par de puntos.
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 87
Ntese que la desventaja de este mtodo propuesto para el clculo de la direccin
ROM a la que acudir es la prdida de precisin en el proceso de aproximacin, ya que
el valor _
v()
v
g
A] que se multiplicar por la pendiente se representa con (23bJir)
bits. Adems, destaca el compromiso que se acaba de generar: utilizar un mayor
nmero de bits para la parte entera, es decir, para el direccionamiento de la memoria,
implica una memoria de mayor tamao, ms valores alojados de la exponencial
evaluada y menos bits para realizar la aproximacin; mientras que, utilizar un menor
nmero de bits para la parte entera implica un menor nmero de tramos y, por tanto,
menor nmero de valores de la exponencial alojados, un menor tamao de memoria
necesario y ms precisin para realizar la aproximacin. Al final de este apartado se
realiza un estudio cuantitativo sobre esta tcnica, determinando las consecuencias
derivadas en la localizacin del punto binario que separa las partes entera y decimal
comparando los resultados obtenidos con los hallados con la funcin exponencial
continua. Comentar que para separar dichas partes (direccin de memoria y
aproximacin) se utilizar la funcin AND lgica cuando se realice el diseo digital.
A continuacin, el gasto computacional por muestra de I(i) para una divisin del
rango en k puntos equiespaciados con el objetivo del clculo de c
v(i)
v
T puede
generalizarse como: un acceso a memoria que proporciona el valor de la exponencial y
la pendiente, dos operaciones suma, dos operaciones de producto y dos operaciones
lgicas AND.
EVALUACI N DE CARGA COMPUTACIONAL Y CONSUMO DE RECURSOS
Aproximacin lineal por tramos

Eval uaci n por muestra de entrada de
F(|)
F
g

Nmero de ciclos 1
Carga computacional
(por ciclo)
Operaciones suma 2
Operaciones producto 2
Carga computacional y
consumo de recursos
(adicional)
Funciones lgicas (AND) 2
Accesos a memoria 1
Tamao de memoria
(palabras)
2
k+1


Tabla 7.6 Carga computacional y consumo de recursos de la tcnica de aproximacin lineal por tramos.
7.2 Aproximacin de la funcin exponencial
88 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
En el apndice A, apartado A.3 puede consultarse el cdigo del programa
realizado en MATLAB para la simulacin de dicha tcnica de aproximacin de la
funcin exponencial.
En este caso la variable potencial de este mtodo es el nmero de bits utilizados
para direccionar la memoria ROM, es decir, el nmero de puntos equidistantes en los
que el rango de
v()
v
g
es dividido.
Los resultados obtenidos de las simulaciones son los que se encuentran en la
siguiente tabla:
EVALUACI N DE ERROR
Aproximacin lineal por tramos
Nmero de bits:
direccionamiento/aproximacin
Iteraciones
Error
absoluto
Error
relativo
4 / 19 1002 1.185820e-2 2.064393e-2
5 / 18 910 8.231611e-3 1.435589e-2
6 / 17 872 4.444581e-3 7.761523e-3
7 / 16 857 2.422049e-3 4.220351e-3
8 / 15 849 1.228726e-3 2.144411e-3
9 / 14 843 6.267317e-4 1.092854e-3
10 /13 845 3.153144e-4 5.501634e-4
11 / 12 843 1.584426e-4 2.763968e-4
12 / 11 841 7.901356e-5 1.377982e-4

Tabla 7.7 Error de aproximacin cometido en funcin de la colocacin del punto binario.
En la tabla 7.7 se observa que aumentar el nmero de bits para la parte entera
se traduce en un menor nmero de iteraciones para el mtodo numrico y un menor
error (Figura 7.7), ocasionado principalmente por disponer de un mayor nmero de
valores de la funcin exponencial evaluada. Aunque aumentar el nmero de bits para
la parte entera ocasione una posterior aproximacin con la pendiente entre cada par
de puntos con una menor precisin, se denota que el compromiso principal de esta
tcnica reside entre la precisin y el tamao de memoria ROM.
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 89
Ntese que a partir de utilizar 9 bits para el direccionamiento de memoria, es
decir, dividir el rango en 2
9
=512 puntos equidistantes, el nmero de iteraciones es
prcticamente el mismo que utilizar la funcin exponencial continua. De ah que, a
partir de este valor, conforme los bits para la parte entera aumentan el error
contina disminuyendo y el nmero de iteraciones permanece prcticamente
invariable.

Figura 7.7 Aproximacin lineal por tramos. Error relativo en funcin del tamao de la memoria ROM.

7.2.3 Aproximacin polinmica ptima por tramos
La tcnica de aproximacin de la funcin exponencial que se presenta a continuacin
se basa en una combinacin de las dos tcnicas explicadas anteriormente: serie de
Taylor y aproximacin lineal por tramos. La tcnica se basa en dividir el rango de las
muestras (
v()
v
T
j0,
v
g
v
T
[) en un nmero fijo de puntos equiespaciados, tal y como
representa la Figura 7.4. Cada par de puntos encierran en su interior un tramo de la
funcin exponencial, del cual se calcula la aproximacin polinmica ptima, es decir,
se obtiene el polinomio, de un grado determinado, que mejor aproxima dicho tramo
garantizando la continuidad de la funcin. Los coeficientes del polinomio en cuestin
son guardados en una memoria ROM, de manera que, dada una muestra de entrada
(
v()
v
T
), y de igual manera que en el apartado anterior (mediante un cambio de formato
1,00E-04
1,00E-03
1,00E-02
1,00E-01
1,00E+00
4 5 6 7 8 9 10 11 12
E
r
r
o
r

r
e
l
a
t
i
v
o
Nmero de bits de direccionamiento ROM
EVALUACIN DEL ERROR
Aproximacin lineal por tramos
7.2 Aproximacin de la funcin exponencial
90 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
a punto fijo), se obtiene la posicin de memoria a la que acudir, se extraen los
coeficientes y se calcula la aproximacin de la funcin exponencial (c
v(i)
v
T ) evaluando
dicho polinomio con el punto
v()
v
T
.
Para el clculo de los coeficientes del polinomio de cada tramo se utiliza la funcin
mim en MATLAB, basada en la funcin polyfit que proporciona un vector con los
coeficientes del polinomio ptimo, tratando de minimizar el error en cada uno de los
tramos y garantizando la continuidad de la funcin formada por dichos polinomios.
La implementacin de la funcin mim se encuentra en el apndice A, apartado A.4.1.
Ntese, en este caso, que la tcnica presenta dos variables potenciales que
influyen directamente en la eficiencia de la aproximacin de la funcin exponencial:
el grado del polinomio y el nmero de tramos en los que se divide el rango. Aumentar
el grado del polinomio, por un lado, mejora la aproximacin en cada tramo, pero
implica una mayor carga computacional durante la posterior evaluacin y exige un
mayor tamao de memoria ROM. Por otro lado, aumentar el nmero de tramos en los
que se divide el rango se traduce en una mejor aproximacin, sin embargo, el tamao
de la memoria aumenta exponencialmente.
Para determinar la direccin a la que acudir a memoria para cada muestra de
entrada se propone utilizar la tcnica basada en el cambio de formato de punto
flotante a punto fijo explicada en el apartado 7.2.2.
A continuacin se realiza el estudio general de la carga computacional. As, el
gasto computacional por muestra de I(i) para una divisin del rango en k puntos
equiespaciados y un grado del polinomio n, con el objetivo del clculo de c
v(i)
v
T , puede
aproximarse como: un acceso a memoria que proporciona los n +1 coeficientes del
polinomio, n +2 operaciones suma, n +1 operaciones producto y una operacin lgica
AND (tabla 7.8).
En el apndice A, apartado A.4 se encuentra el cdigo del programa realizado en
MATLAB para la simulacin de dicha tcnica de aproximacin de la funcin
exponencial disponible para consulta.
El mtodo numrico es iterado para diferentes tamaos de memoria (nmero de
bits utilizados para el direccionamiento de la ROM) y diferente grado del polinomio
estudiando en cada caso nmero de iteraciones y el error absoluto y relativo. Los
resultados se recogen en la tabla 7.9.
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 91
EVALUACI N DE CARGA COMPUTACIONAL Y CONSUMO DE RECURSOS
Aproximacin polinmica ptima por tramos

Eval uaci n por muestra de entrada de
F(|)
F
g

Nmero de ciclos n+1
Carga computacional
(por ciclo)
Operaciones suma 1
Operaciones producto 1
Carga computacional y
consumo de recursos
(adicional)
Funciones lgicas (AND) 1
Operaciones suma 1
Accesos a memoria 1
Tamao de memoria
(palabras)
(n+1)2
k


Tabla 7.8 Carga computacional y consumo de recursos de la tcnica de aproximacin polinmica ptima
por tramos.
EVALUACI N DE ERROR
Aproximacin polinmica ptima por tramos
Bits de
direccionamiento
Grado del
polinomio
Iteraciones
Error
absoluto
Error
relativo
4
1 1008 2.506076e-3 4.608837e-3
2 839 8.421377e-4 1.343949e-3
3 816 4.250851e-4 7.069203e-4
5
1 931 2.801185e-4 5.093390e-4
2 845 2.631060e-4 4.681396e-4
3 848 7.771336e-5 1.381421e-4
6
1 828 2.289163e-4 3.770703e-4
2 842 2.120289e-5 3.948343e-5
3 840 6.387631e-6 1.129793e-5
7
1 845 4.714961e-5 7.620643e-5
2 844 6.788502e-6 1.184155e-5
3 843 2.413988e-6 3.835172e-6

Tabla 7.9 Error de aproximacin cometido en funcin del tamao de la memoria y del grado del polinomio.
7.2 Aproximacin de la funcin exponencial
92 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Utilizando las mismas condiciones de contorno, umbral de error y ancho de
discretizacin y la funcin exponencial continua se obtuvo como resultado en el
apartado 7.1 que era preciso iterar el mtodo 841 veces para cumplir la exigencia
impuesta por el umbral de error. En la tabla 7.9 y en la Figura 7.8 se puede
experimentar que un aumento en el nmero de bits de direccionamiento equivale a
un descenso en el nmero de iteraciones que precisa el mtodo numrico. Llegado al
umbral heredado por la solucin con la exponencial continua, aunque el tamao de la
memoria se aumente, el nmero de iteraciones permanece en torno a 841. Sin
embargo, s que se consigue una mayor precisin, o lo que es lo mismo, menor error
de aproximacin, teniendo en cuenta que lleva implcito una mayor necesidad de
recursos en trminos de tamao de memoria.

Figura 7.8 Aproximacin polinmica ptima por tramos. Error relativo en funcin del tamao de la
memoria ROM.
Por otro lado, el grado del polinomio presenta un comportamiento similar al
experimentado por el nmero de bits de direccionamiento, vase Figura 7.9. Reduce
el nmero de iteraciones y el error conforme el grado del polinomio aumenta, sin
embargo, aumentarlo implica mayor tamao de la memoria y mayor gasto
computacional a la hora de evaluarlo. Es por ello, por lo que para la eleccin eficiente
de los parmetros relevantes de esta tcnica hay que realizar un compromiso entre
carga computacional y recursos necesarios y precisin.
1,00E-06
1,00E-05
1,00E-04
1,00E-03
1,00E-02
1,00E-01
1,00E+00
4 5 6 7
E
r
r
o
r

r
e
l
a
t
i
v
o
Nmero de bits de direccionamiento ROM
EVALUACIN DEL ERROR
Aproximacin lineal por tramos
Grado 1
Grado 2
Grado 3
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 93

Figura 7.9 Aproximacin polinmica ptima por tramos. Error relativo en funcin del grado del polinomio.

7.3 Conclusiones
En los apartados anteriores se han presentado tres tcnicas para aproximar el valor
de la funcin exponencial. Se ha desarrollado una investigacin sobre la carga
computacional y consumo de recursos de cada tcnica junto con un estudio acerca del
error absoluto y relativo respecto al resultado obtenido sin aproximar dicha funcin.
En este apartado se determinar la tcnica que mejor conviene para el objeto del
presente trabajo, de manera que, presente un buen compromiso entre carga
computacional, recursos consumidos y precisin. Dicha tcnica ser programada
posteriormente en System Generator for DSP para ser computada en una FPGA.
As, en primer lugar, como primera premisa se exige que la tcnica de
aproximacin presente una precisin aceptable. A continuacin, se fija como baremo
un error relativo menor de 10
-4
y se comparan los requerimientos mnimos de cada
una de las tcnicas.
Por un lado, la tcnica basada en la serie de Taylor precisara utilizar un
polinomio de grado 10, por lo que sera necesario 10 sumadores y 10 multiplicadores
(vanse tablas 7.4 y 7.5). Esta tcnica no presenta requerimientos acerca de memoria,
1,00E-06
1,00E-05
1,00E-04
1,00E-03
1,00E-02
1,00E-01
1,00E+00
1 2 3
E
r
r
o
r

r
e
l
a
t
i
v
o
Grado del polinomio
EVALUACIN DEL ERROR
Aproximacin lineal por tramos
4 bits
5 bits
6 bits
7 bits
7.3 Conclusiones
94 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
pero teniendo en cuenta que los multiplicadores en punto flotante son uno de los
bloques que mayor recursos consume en trminos de rea y mayor retardo introduce,
es preciso minimizar su uso.
Por otro lado, la tcnica basada en la aproximacin lineal por tramos precisara
ms de 12 bits de direccionamiento. Suponiendo el caso de 12 bits (vanse tablas 7.6 y
7.7), se precisara de una memoria de 2
13
polobros 4
bytcs
polobro
, =32 kBytcs.
Ntese que cuanto mayor es el tamao de la memoria ROM, mayor es el consumo
de recursos y mayor es el retardo. Adems, hay que aadir que seran necesarios dos
sumadores, dos multiplicadores y dos funciones lgicas AND adicionales.
EVALUACI N DE CARGA, CONSUMO DE RECURSOS Y ERROR
Comparativa de tcnicas

Serie de
Taylor
(grado 10)
Aproximacin
lineal por tramos
(12 bits)
Aproximacin
polinmica por tramos
(6 bits, grado 2)
Sumadores 10 2 4
Multiplicadores 10 2 3
Funciones
lgicas (AND)
0 2 1
Accesos a
memoria
0 1 1
Tamao de
memoria
0 8k palabras 192 palabras
Error relativo 4.669533e-5 1.377982e-4 3.948343e-5

Tabla 7.10 Comparacin de carga computacional, consumo de recursos y error entre las tres tcnicas de
aproximacin de la funcin exponencial desarrolladas en este trabajo.
Captulo 7. Simulacin numrica
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 95
Por ltimo, en el caso de utilizar la tcnica de aproximacin polinmica ptima
por tramos sera necesario utilizar 6 bits para el direccionamiento de la memoria
ROM y un polinomio de grado 2 (tabla 7.8). Los requerimientos que exige dicha
tcnica pueden observarse en la tabla 7.9, destaca, una memoria de tamao
3 2
6
polobros 4
bytcs
polobro
, =768 Bytcs. Adems de cuatro sumadores, tres
multiplicadores y una funcin lgica AND.
Vase la tabla 7.10 donde se recoge una comparacin entre las tres tcnicas, para
el caso propuesto. Analizando esta comparacin se puede concluir que la tcnica ms
eficiente es la aproximacin polinmica ptima por tramos, ya que ofrece el mejor
compromiso entre consumo de recursos y precisin. Por un lado, no exige tantos
multiplicadores y sumadores como la tcnica serie de Taylor y, por otro lado, la
exigencia de tamao de memoria es tambin mucho ms reducida que la tcnica de
aproximacin lineal por tramos. Por ello, esta tcnica ser la elegida para ser
implementada en lenguaje hardware y ser computada en una FPGA. Adems como
parmetros ms significativos se implementar esta tcnica para 6 bits de
direccionamiento ROM y un polinomio de grado 2.
Por ultimo se presenta la salida simulada en MATLAB (Figura 7.10) tras iterar el
mtodo numrico aplicando la tcnica de aproximacin de la funcin exponencial
denominada aproximacin polinmica ptima por tramos, para un direccionamiento
ROM de 6 bits y un polinomio de grado 2.

Figura 7.10 Resultado de la simulacin numrica de la ecuacin discreta de Poisson 1D tras aproximar la
funcin exponencial mediante una aproximacin polinmica por tramos, realizada con MATLAB.
7.3 Conclusiones
96 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Finalmente, se ofrecen los valores de la tensin (en V) en los puntos en los que ha
sido discretizado el canal del dispositivo DGSOI (de izquierda a derecha y de arriba
abajo):
1 0,9816405 0,9632810 0,9449215 0,9265621 0,9082028 0,8898435
0,8714842 0,8531250 0,8347659 0,8164068 0,7980479 0,7796890 0,7613301
0,7429714 0,7246127 0,7062541 0,6878955 0,6695371 0,6511786 0,6328202
0,6144620 0,6009179 0,5902314 0,5814297 0,5739806 0,5675451 0,5619070
0,5569043 0,5524337 0,5484148 0,5447842 0,5414902 0,5384964 0,5357724
0,5332933 0,5310379 0,5289857 0,5271236 0,5254403 0,5239260 0,5225722
0,5213718 0,5203189 0,5194079 0,5186346 0,5179955 0,5174876 0,5171088
0,5168573 0,5167320 0,5167325 0,5168588 0,5171112 0,5174909 0,5179995
0,5186392 0,5194131 0,5203248 0,5213784 0,5225792 0,5239333 0,5254479
0,5271314 0,5289937 0,5310458 0,5333011 0,5357801 0,5385037 0,5414972
0,5447908 0,5484209 0,5524393 0,5569093 0,5619115 0,5675489 0,5739840
0,5814325 0,5902336 0,6009198 0,6144637 0,6328220 0,6511804 0,6695389
0,6878974 0,7062560 0,7246147 0,7429734 0,7613322 0,7796910 0,7980499
0,8164088 0,8347678 0,8531268 0,8714858 0,8898448 0,9082040 0,9265631
0,9449223 0,9632815 0,9816408 1


Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 97



Captulo 8

Implementacin y simulacin
del sistema digital

El presente captulo tiene como objetivo implementar el coprocesador que resuelve la
ecuacin de Poisson 1D en un esquemtico de Simulink, con el fin de generar el
cdigo en lenguaje descripcin hardware de dicho esquemtico. Para ello, se recoge
toda la informacin generada en los captulos anteriores y con ayuda del paquete de
bloques (blockset) de System Generator for DSP de Xilinx y MATLAB, se procede al
desarrollo del sistema en Simulink y la simulacin funcional del mismo. Los bloques
utilizados del Xilinx Blockset en el desarrollo de este captulo son descritos en el
apndice B.
Para el diseo del coprocesador que implemente la resolucin de la ecuacin de
Poisson 1D en un dispositivo DGSOI se propone modular el problema en cuatro
subsistemas con funcionalidad independiente:
Circuito configuracin de memoria RAM: subsistema que se encarga del
control de la memoria RAM. I mplica el desarrollo de un mecanismo para
realizar coherentemente las operaciones de lectura y escritura.
Circuito zona de xido: subsistema que implementa la computacin que se
precisa realizar para las muestras que pertenezcan a la zona de xido.
Circuito zona de semiconductor: subsistema encargado de realizar el
clculo necesario para las muestras que corresponden a la zona de
semiconductor. Incluye la implementacin del algoritmo de aproximacin de
la funcin exponencial continua descrito en el apartado 6.2.
8.1 Circuito configuracin de memoria RAM
98 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Circuito de parada, inicio y fin: subsistema de control general que
implementa la condicin de parada para el mtodo numrico, de manera que,
si se cumple el umbral de error exigido, detenga la ejecucin. Tambin ofrece
un mecanismo para iniciar la marcha y notificar la finalizacin de la ejecucin
orientado al papel que desempea un nodo en una red de computacin grid.
A continuacin se describen paso a paso la construccin de cada uno de estos
circuitos, su funcionalidad y se incluye la simulacin digital de los mismos.

8.1 Circuito configuracin de memoria RAM
En la ecuacin discreta de Poisson 1D (ecuacin 3.18) desarrollada en el captulo 3,
cada muestra depende de la anterior y de la posterior. Es por ello, por lo que en
primera instancia, se desarrolla un circuito de ejemplo que sincroniza una operacin
simple en las que se encuentran involucradas una muestra dada, la inmediata
anterior y la inmediata posterior. Finalmente, el resultado es almacenado antes de
pasar a la computacin de la siguiente muestra. Este ejemplo refleja la configuracin
utilizada para obtener las muestras de la memoria RAM, as como, para
almacenarlas; este mecanismo ser el utilizado en el sistema final.
Como ejemplo se procede a realizar diez iteraciones de la siguiente funcin (i)
siendo (0) la condicin inicial:
(i) =(i) (i +1) +(i 1)
(0) =0
Ecuacin 8.1 Funcin ejemplo para la configuracin de la memoria RAM.

donde i es la direccin de memoria y (i) es el valor del dato almacenado en dicha
direccin.
Cabe destacar en este punto que, como posteriormente se estudiar, el sistema
global desarrollado consume 25 ciclos de reloj por muestra, es decir, se precisa ste
nmero de perodos de reloj desde que se decide realizar el clculo de una muestra
determinada hasta que el resultado de esa muestra se sobreescribe en su posicin
correspondiente en la memoria RAM. De esta manera, aunque la computacin de este
ejemplo no precise de tal cantidad de ciclos de reloj para obtener su cometido, se
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 99
simular que as lo es mediante un retardo para que el circuito de configuracin de la
memoria RAM sea el mismo que el implementado en el sistema final. Esto quiere
decir, que el contador que recorre las posiciones de memoria RAM tendr una
frecuencia de muestreo de 25 ciclos de reloj, de tal forma que se permita acceder al
valor de la muestra en una posicin determinada, realizar el cmputo necesario para
dicha muestra y escribir el resultado en la misma posicin dada.
Centrando el objetivo en la resolucin de la ecuacin 8.1, se observa que el
cmputo de una muestra determinada (i), precisa, adems de su propio valor; del
valor de la muestra anterior (i 1) y del valor de la muestra posterior (i +1). La
muestra anterior es conseguida mediante el bloqueo con un biestable tipo D y retardo
del resultado de la muestra anterior calculada, por lo que es evidente que dicho valor
no es necesario extraer de la RAM. Sin embargo, ntese que el nico modo de obtener
el valor de la muestra actual y futura es a travs de la memoria RAM mediante
sendas operaciones de lectura.
El objetivo es obtener en primer lugar, por un lado, el valor de una muestra
determinada (i) y posteriormente por otro, la muestra siguiente (i +1). Para el
cambio de direccin de memoria i i +1 se implementa un circuito gobernado por un
multiplexor, tal que as:

Figura 8.1 Mecanismo para cambiar la direccin de memoria y poder obtener durante el clculo de la
muestra (|), la muestra siguiente (| +1).

8.1 Circuito configuracin de memoria RAM
100 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Ntese que en la Figura 8.1 existen cuatro puertos de entrada sin conectar: el
puerto de seleccin de puerto de entrada del multiplexor (select input), el puerto de
datos de la RAM (data), el puerto de habilitar escritura en la RAM (write enable) y el
puerto de habilitar la RAM (RAM enable). De esta manera, el proceso consiste en
disear las seales de control (select input, write enable y RAM enable) para que
realicen de forma sincronizada, un acceso a la muestra inicial, un acceso a la muestra
siguiente y la escritura del resultado de la muestra inicial. Considerando que se
precisan 25 ciclos de reloj para llevar a cabo el cmputo de una muestra, se propone el
siguiente diseo para las seales de control:

Figura 8.2 Seales de control que permiten acceder a la muestra actual (|) a la muestra siguiente
(| +1) y realizar la escritura del resultado de la muestra actual en la misma posicin de memoria.

El proceso propuesto para la operacin de la memoria RAM es:
a. Ciclo 0 1: Operacin de lectura de la muestra (i).
b. Ciclo 1 2: Operacin de lectura de la muestra (i +1).
c. Ciclos 2 22: La memoria queda deshabilitada durante los ciclos en los que
se realiza el cmputo de la muestra (i).
d. Ciclo 22 23: Operacin de escritura del resultado de la muestra (i).
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 101
e. Ciclo 23 24: Ciclo que precisa la memoria RAM para llevar a cabo la
operacin de escritura con xito.
f. Ciclo 24 25: Ciclo de guarda.
Ntese que la seal que controla el multiplexor (select input) y la que
habilita/deshabilita la escritura en la RAM (write enable) es la misma seal pero con
diferente retardo.
En el puerto de salida de la memoria RAM obtenemos durante un ciclo de reloj la
muestra (i) y en el perodo posterior la muestra (i +1). Por medio de biestables
(flip flops) tipo D habilitados por seales de control (enable) se realiza la captacin de
la muestra deseada:

Figura 8.3 Captacin de muestras mediante biestables D habilitados por seales de control.

Suponiendo que la memoria RAM est cargada inicialmente con los siguientes
datos: (i) =i,i, la salida experimentada en el puerto de salida de la memoria RAM
para un total de 25 ciclos de reloj es:

Figura 8.4 Puerto de salida de la memoria RAM.

Teniendo en cuenta que la RAM presenta un retardo para el proceso de lectura y
otro para el de escritura, resumimos el proceso llevado a cabo:
8.1 Circuito configuracin de memoria RAM
102 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
a. 1 2: Resultado de la operacin de lectura de la muestra (i) =(1) =1.
b. 2 3: Resultado de la operacin de lectura de la muestra (i +1) =(2) =2.
c. 3 22: Cmputo para la muestra (1). La RAM aparece deshabilitada.
d. 22 23: Se ordena la operacin de escritura del resultado de la muestra (1).
e. 23 24: El valor que observamos durante este ciclo depende del modo de
escritura configurado. El mtodo de escritura configurado en este caso es read
before write, de ah que el valor que se observa corresponde al valor de (1)
previo a la computacin realizada.
g. 24 25: Ciclo de guarda.
La Figura 8.4 muestra la seal en el puerto de salida de RAM, a continuacin se
centra el objetivo en generar las seales de control que habilitan los biestables para
que cada uno de ellos capte adecuadamente la seal deseada, tal que as

Figura 8.5 Seales de control para habilitar los biestables de forma que capten correspondientemente las
muestras (|) y (| +1).
Como puede observarse en la Figura 8.6, se han conseguido capturar
coherentemente las dos muestras (i) y (i +1). El uso de biestables tipo D y seales
de control (enable) es la metodologa implementada para sincronizar los distintos
bloques y construir el sistema global.
Ntese que las seales de control descritas en la Figura 8.5, vuelven a ser la
misma versin pero con retardo diferente que la seal de control del multiplexor
(select input) o la seal para habilitar/deshabilitar la escritura en la RAM (write
enable) (Figura 8.2). El siguiente paso es construir una nica seal de control a la que
se aplicarn diferentes retardos segn la necesidad de sincronismo de cada bloque.
Para ello, se procede a crear una mquina de estados que genere cada 25 perodos de
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 103
reloj las diferentes seales de control (obviando las seales que sean la misma
versin que otra pero desfasada), estas seales pueden observarse en la Figura 8.7.

Figura 8.6 Salidas de los biestables D habilitados por seal de control. Se observa como se ha realizado la
captacin de las seales (|) y (| +1) correctamente.


Figura 8.7 Seales de control.
Para generar las seales observadas en la Figura 8.7, se ha implementado una
mquina de estados finitos tipo Moore (ControlFSM), es decir, una mquina de
estados donde la salida nicamente depende del estado en el que se encuentra,
Figura 8.8. Se ha utilizado un bloque MCode junto con un contador limitado al
nmero total de ciclos por muestra, es decir, la salida del contador se mantiene
acotada entre 0 y 24. El cdigo M de dicha mquina de estados finitos puede
consultarse en el apndice C, apartado C.1. Las salidas corresponden
8.1 Circuito configuracin de memoria RAM
104 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
respectivamente a la seal que habilita/deshabilita la memoria RAM (RAM enable) y
a la seal de control general (general control).

Figura 8.8 Mquina de estados finitos Moore implementada para la generacin de las seales de control.

Finalmente el subsistema creado en Simulink con la ayuda de System Generator
para realizar el estudio de la configuracin de la memoria RAM puede observarse en
la Figura 8.9. La solucin obtenida para la ecuacin 8.1, al iterar 10 veces la ecuacin
es la siguiente:
(i) =(i) (i +1) +(i 1)
Iolorcs iniciolcs cn RAH (i) =i i
(1) =(1) (2) +(0) (1) =1 2+0=2
(2) =(2) (3) +(1) (1) =2 3+2=6
y as sucesivamente.
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 105

F
i
g
u
r
a


8
.
9

C
i
r
c
u
i
t
o

c
o
n
f
i
g
u
r
a
c
i

n

d
e

m
e
m
o
r
i
a

R
A
M
.

8.1 Circuito configuracin de memoria RAM
106 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
El resultado obtenido con el sistema diseado tras simular durante 10 ciclos
completos de operacin (250 perodos de reloj) es el siguiente:
(i) ={2,8,20,40,70,112,168,240,330,440}

Figura 8.10 Resultado obtenido tras iterar la funcin durante 10 ciclos.
En conclusin, se ha desarrollado un pequeo ejemplo para mostrar la
configuracin llevada a cabo con la memoria RAM. A destacar el uso de seales de
control sincronizadas para habilitar la memoria RAM cuando se pretenda realizar
una operacin de lectura o escritura, as como el uso de biestables D junto con el uso
simultneo de seales de control para captar una muestra en un perodo
determinado.
Tngase en cuenta que las partes del circuito que no presentan datos tiles
podran ser desconectadas o deshabilitadas. Esto se refiere a que, por ejemplo, se
podra incluir una seal para habilitar/deshabilitar el bloque multiplicador para
reducir el consumo innecesario (vase Figura 8.9). Para ello se ha implementado un
mecanismo de bloqueo de los datos de entrada, de manera que al no cambiar los
estmulos de entrada no se generan transiciones en los nodos internos y por tanto se
reduce el consumo. Se han introducido bloques de retardo tras los biestables D, con el
objetivo de sincronizar las entradas a los elementos y, por tanto, bloquear los datos de
entrada.
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 107
8.2 Circuito zona de xido
En este apartado se construye el circuito que realiza el clculo en la zona del xido.
Por tanto, de acuerdo a las expresiones obtenidas en el captulo 3, la expresin a
resolver numricamente es la siguiente:
Zono Jc xiJo I(i) =
I(i +1) +I(i 1)
2

Ecuacin 8.2 Expresin para el cmputo de una muestra perteneciente a la zona de xido.
Se presentan dos principales problemas y son: el diseo de un mecanismo que
determine segn el ndice de una muestra dada la zona a la que corresponde el
cmputo, xido o semiconductor; y el desarrollo de un mecanismo que al realizar el
clculo de la muestra de ndice i =1, utilice la condicin inicial de contorno I(i 1) =
I
g1
=1; y, de forma similar, si se precisa realizar el clculo de la muestra de ndice
i =100, utilice la condicin final de contorno I(i +1) =I
g2
=1. El diagrama de
bloques en Simulink del subsistema propuesto puede observarse en la Figura 8.12.
Se ha implementado una mquina de estados finitos (ControlFSM2) que gobierna
tres multiplexores (output, A y B) encargados de conmutar estas seales. En dicha
mquina de estados, el contador principal (main counter) es conectado en el puerto de
entrada y segn el valor de dicho contador se emiten las seales de control
correspondientes que controlan sendos multiplexores (Figura 8.13). En este caso, se
ha optado por la implementacin de una mquina de estados tipo Mealy, es decir, en
este caso la salida no slo depende del estado en el que se encuentra la mquina de
estados, sino que tambin depende de la entrada (Figura 8.11) (Apndice C.2).

Figura 8.11 Mquina de estados para tipo Mealy implementada para generar seales de control.
8.2 Circuito zona de xido
108 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

F
i
g
u
r
a


8
.
1
2

C
i
r
c
u
i
t
o

z
o
n
a

d
e

x
i
d
o
.

Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 109

Figura 8.13 Seales de control generadas por la mquina de estados finitos ControlFSM2.

Adems, otros aspectos importantes a destacar en el diseo son:
1. Se implementa una memoria RAM de 102 posiciones, debido a que, el canal se
discretiza en 100 puntos. Se precisa, por tanto, de 7 bits para el
direccionamiento de la misma. As, la primera y la ltima posicin de
memoria corresponden a las condiciones de contorno inicial y final, en este
caso: I
g1
=I
g2
=I
g
=1 I. El resto de puntos se inicializan en RAM con un
valor:
I
g
2
,
=0.5 I.
2. El contador principal (main counter) corresponder a un contador limitado
con un rango de 0 a 99 con un perodo de muestreo de 25 ciclos de reloj,
implementado con un nmero en punto fijo sin signo de 7 bits de ancho, para
poder acceder todas las palabras de la memoria RAM.
3. Se utilizar la misma mquina de estados confeccionada en el apartado
anterior para la generacin de las seales de control (ControlFSM, apndice
C.1), por ello se precisar de un contador adicional (control counter) limitado
con un rango de 0 a 24 con un perodo de muestreo de 1 ciclo de reloj.
8.3 Circuito zona de semiconductor
110 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
4. Se utilizarn diversos bloques Delay para implementar retardo en las seales
de control para sincronizar correspondientemente los diferentes bloques del
sistema.
Finalmente, el subsistema es simulado un nmero ciclos suficiente para permitir
el cmputo de los 100 puntos en los que el canal es discretizado. El resultado puede
observarse en la Figura 8.14.

Figura 8.14 Primera iteracin ejecutada del mtodo iterativo que resuelve la ecuacin de Poisson 1D. La
salida es constante a un valor de 0.5 para las muestras pertenecientes a la zona de semiconductor.

8.3 Circuito zona de semiconductor
A continuacin, se realiza la implementacin del clculo numrico de la ecuacin
correspondiente a las muestras que se encuentran en la zona de semiconductor.
Recordamos la ecuacin deducida en el captulo 3:
Zono Jc scmiconJuctor I(i) =
I(i +1) +I(i 1)
x
2
q
e
0
e
S
_N
A
-
+n

c
v()
v
T _
2

Ecuacin 8.3 Expresin para el cmputo de una muestra perteneciente a la zona de semiconductor.
donde el valor de la exponencial es aproximado por el mtodo de aproximacin
polinmica ptima por tramos, con una memoria ROM de 2
6
palabras, es decir 6 bits
para su direccionamiento y un polinomio de grado 2. Los coeficientes de los
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 111
polinomios son calculados con la funcin mim (apndice A.4.1) para cada tramo y son
almacenados en bloques ROM que implementan memorias de solo lectura. El diseo
realizado en Simulink puede observarse en la Figura 8.15.
El circuito puede dividirse en cuatro etapas principales: una primera etapa que se
encarga de realizar una serie de clculos previos; una segunda etapa cuya funcin es
a partir de un valor de entrada en el rango [0.5,1] devolver como salida la direccin
de memoria ROM en el rango [0,63]; una tercera etapa que se encarga de realizar la
evaluacin del polinomio en el punto correspondiente; y la cuarta, y ltima etapa, que
se encarga de realizar una serie clculos posteriores con los que se concluye el clculo
para una muestra dada.
Durante la primera etapa se realiza una serie de clculos previos. Tal y como se
explica en el apartado 7.2.2, durante el proceso de aproximacin de la funcin
exponencial cada muestra corresponde a un tramo. Y cada tramo corresponde a una
direccin de memoria ROM de la que extraer los coeficientes del polinomio ptimo de
dicho tramo. De esta manera, el clculo de la direccin de memoria a la que acudir se
implementa mediante un cambio a formato punto fijo. Se precisa, en primer lugar,
realizar el siguiente clculo: I
i
(i) =
1
2
v()
v
g
+
1
2
. Posteriormente, el polinomio debe ser
evaluado en el punto, p =
v()
v
T
.
Para ello en esta primera etapa se obtiene el producto A =_
1
2v
g
] I(i) y, de esta
manera, calcular:
I
i
(i) =A +
1
2
p =A
2I
g
I
1

Ecuacin 8.4 Clculos previos llevados a cabo al comienzo del circuito que realiza el clculo de las
muestras que pertenecen a la zona semiconductora.
siendo
1
2v
g
,
1
2
y
2v
g
v
T
tres constantes. Como puede evidenciarse, se precisa para este
calculo previo de dos multiplicadores y un sumador.
8.3 Circuito zona de semiconductor
112 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

F
i
g
u
r
a


8
.
1
5

C
i
r
c
u
i
t
o

z
o
n
a

d
e

s
e
m
i
c
o
n
d
u
c
t
o
r
.

Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 113
En segundo lugar, tras realizar los clculos previos y, por tanto, obtenido el valor
I
i
(i) =
1
2
v()
v
g
+
1
2
, se obtiene el valor de la direccin ROM a la que acudir mediante un
cambio de formato a punto fijo y mediante una operacin lgica AND. Este proceso se
ha implementado con dos bloques Reinterpret, un bloque Convert y un bloque Logical
(apndice B).
La tercera etapa consiste en el siguiente subsistema que se desglosa:


Figura 8.16 Subsistema construido en el circuito zona de semiconductor que, a partir de una direccin
ROM, extrae los coeficientes del polinomio de Taylor y realiza la evaluacin en el punto p =
F(|)
F
T
.
Sean c
0
, c
1
y c
2
los coeficientes del polinomio ptimo del tramo dado por la
direccin ROM. La aproximacin de la funcin exponencial en el punto p =
v()
v
T
se
obtiene:
c
v()
v
T
=c
0
+p (c
1
+(c
2
p))
Ecuacin 8.5 Aproximacin de la funcin exponencial a partir de los coeficientes del polinomio de Taylor.
8.3 Circuito zona de semiconductor
114 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
El subsistema presenta dos puertos de entrada y un puerto de salida. Como
entrada: la direccin de memoria ROM de la que extraer los coeficientes del
polinomio, y el punto en el que debe evaluarse. En el puerto de salida se ofrece la
aproximacin obtenida para la funcin exponencial multiplicado por una constante
para obtener el valor:
rs =_
x
2
qn

e
0
e
S
_c
v()
v
T

Ecuacin 8.6 Valor obtenido de la tercera etapa del circuito zona de semiconductor.
Finalmente, en la cuarta y ltima etapa encontramos la operacin:
I(i) =
I(i +1) +I(i 1)
x
2
qN
A
-
e
0
e
S
rs
2

Ecuacin 8.7 Operacin realizada en la cuarta etapa. Corresponde al clculo de potencial de la muestra
perteneciente a la zona semiconductora.
donde el valor
x
2
qN
A
-
s
0
s
Si
se implementa mediante una constante.
En la Figura 8.17 se puede observar la salida experimentada tras simular el
circuito que se acaba de describir:

Figura 8.17 Primera iteracin ejecutada del mtodo iterativo que resuelve la ecuacin de Poisson 1D. La
salida es constante a un valor de 0.5 para las muestras pertenecientes a la zona de xido.
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 115
8.4 Circuito de parada, inicio y fin
En los apartados anteriores se han implementado los circuitos para el tratamiento de
la memoria RAM, el cmputo de una muestra perteneciente a la zona de xido y el
cmputo de una muestra perteneciente a la zona de semiconductor. Resta
implementar un mecanismo para detener el mtodo numrico al cumplirse un umbral
de error determinado (vase apartado 3.4.1). En tal caso, el resultado alojado en la
memoria RAM ser la solucin numrica de la tensin a lo largo del canal de un
DGSOI que satisface dicho umbral. El objetivo de este trabajo es aplicar el sistema
final desarrollado a un entorno de computacin grid, por lo que, adems se incluye un
mecanismo de inicio y fin de la ejecucin del sistema, de manera que, un bit inicia la
ejecucin y un bit es el encargado de notificar la detencin del mismo al llegar a una
solucin.
En primer lugar, el umbral de parada se basa en el mximo error absoluto de los
valores de las muestras de una misma iteracin. Para ello se implementa un
mecanismo mediante un bloque MCode. Se trata de un subsistema con tres puertos
de entrada correspondientes a: un contador que permite localizar el ndice de la
muestra que se pretende evaluar, el valor constante del umbral de parada, y el valor
del error absoluto de una muestra. De esta forma, la salida ser cero hasta que se
cumpla que todas las muestras de una misma iteracin presenten un error absoluto
menor o igual al umbral de error establecido. En tal caso la seal de salida
corresponder a un uno. El cdigo en lenguaje M puede observarse en el apndice C.3.
Si se recuerda, durante el proceso de descripcin del circuito de configuracin
para la memoria RAM (apartado 8.1), se incluy un ciclo de guarda tras la escritura
del resultado del clculo de una muestra determinada. Este ciclo de guarda permite
al circuito de parada detener la ejecucin justo en el ciclo en el que se termina la
escritura y, por tanto, an no se ha procedido al clculo de una muestra posterior.
Finalmente, para implementar un sistema para iniciar y detener la ejecucin se
desarrolla una mquina de estados finitos tipo Mealy con dos entradas y una salida.
Las entradas corresponden con el bit de inicio (start) y el bit de parada (stop). El bit
de parada se conectar a la salida del bloque descrito anteriormente para el
mecanismo de parada. As, cuando la solucin satisfaga un umbral de error
determinado, la salida de dicho bloque har que se detenga la ejecucin.
8.5 Coprocesador para la resolucin de la ecuacin de Poisson 1D
116 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
La salida de la mquina de estados (enable) corresponde a un bit que
habilita/deshabilita los contadores para iniciar/detener el funcionamiento global del
sistema. La mquina finita de estados construida puede analizarse en la Figura 8.18
y su implementacin en lenguaje M en el apndice C.4:

Figura 8.18 Mquina de estados finitos tipo Moore implementada para el circuito de inicio y fin.

8.5 Coprocesador para la resolucin de la
ecuacin de Poisson 1D
A continuacin, se construye el sistema completo a partir de los diversos subsistemas
descritos en los apartados anteriores. De esta manera, se incluye en el mismo diseo
el circuito de configuracin de memoria RAM, junto con los circuitos que realizan el
cmputo correspondiente al rea de xido y al rea de semiconductor, el mecanismo
para iniciar y detener la ejecucin con un bit, as como el circuito que implementa la
condicin de parada. El diseo en Simulink completo puede estudiarse en la Figura
8.19.
Cabe destacar algunas consideraciones sobre el sistema final:
Se ha aadido una nueva variable de salida, la concentracin de portadores
minoritarios:
n =_
0 zono Jc xiJo
n

c
v()
v
T
zono Jc scmiconJuctor

Para ello, tras aproximar el valor de la exponencial c
v(i)
v
T , se multiplica dicho
valor por la constante n

. Adems se precisa de un nuevo multiplexor de


salida gobernado de forma similar al multiplexor de salida para la tensin.
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 117
Se ha implementado la tcnica de bloqueo de entradas en todas las zonas del
circuito, para reducir el consumo de potencia.
Los puertos de entrada y salida disponibles son:
Puertos de entrada
Start: Bit para iniciar y mantener la ejecucin.
Memory Address: puerto de direccin de la memoria RAM. Si el
circuito no se encuentra en ejecucin, permite acceder directamente y
de forma simultnea al puerto de direccin de las memorias RAM que
almacenan los valores de tensin y de concentracin de portadores.
Puertos de salida
Stop: Bit que permanece con el valor uno mientras el sistema se
encuentra en ejecucin y genera el valor cero cuando la ejecucin se
detiene bien porque se ha alcanzado una solucin, bien porque se ha
detenido la ejecucin manualmente (el bit start se ha puesto a cero).
Tngase en cuenta que dicho bit es el bit para habilitar/deshabilitar
los contadores del circuito. Por ello un valor nulo, indica que el
circuito est detenido y viceversa.
RAM V ouput / RAM n output: puerto de salida de la memoria
RAM. Permite acceder correspondientemente y de forma directa al
puerto de salida de las memorias RAM que almacenan los valores de
tensin y de concentracin de portadores.
V / n: puerto de entrada de datos de la memoria RAM. Permite
acceder correspondientemente y de forma directa al puerto de entrada
de datos de las memorias RAM que almacenan los valores de tensin
y de concentracin de portadores. De esta forma, dichos puertos
ofrecern todas las muestras de salida a lo largo del proceso numrico.







8.5 Coprocesador para la resolucin de la ecuacin de Poisson 1D
118 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

F
i
g
u
r
a


8
.
1
9

C
o
p
r
o
c
e
s
a
d
o
r

p
a
r
a

l
a

r
e
s
o
l
u
c
i

n

d
e

l
a

e
c
u
a
c
i

n

d
e

P
o
i
s
s
o
n

1
D

e
n

e
s
t
r
u
c
t
u
r
a
s

S
O
I
.

Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 119
Para mostrar la ejecucin del sistema se realizan varias simulaciones para
distintos umbrales de error y as estudiar la evolucin del mtodo numrico.

Figura 8.20 Salida obtenida para un umbral de 10
-2
.

37500 ciclos
25 ciclos/ mucstro

1
100 mucstros
=15 itcrocioncs poro cumplir un umbrol Jc 10
-2


Figura 8.21 Salida obtenida para un umbral de 10
-4
.

69000 ciclos
25 ciclos/ mucstro

1
100 mucstros
=276 itcrocioncs poro cumplir un umbrol Jc 10
-4

8.5 Coprocesador para la resolucin de la ecuacin de Poisson 1D
120 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Figura 8.22 Salida obtenida para un umbral de 10
-6
.

2095000 ciclos
25 ciclos/ mucstro

1
100 mucstros
=838 itcrocioncs poro cumplir un umbrol Jc 10
-6


Los valores de la tensin (en V) en los puntos en los que hemos discretizado el
canal del DGSOI (de izquierda a derecha y de arriba abajo) obtenidos mediante la
simulacin digital del circuito son:
1 0,9816404 0,9632808 0,9449213 0,9265618 0,9082024 0,8898430
0,8714837 0,8531244 0,8347652 0,8164061 0,7980471 0,7796881 0,7613292
0,7429703 0,7246116 0,7062529 0,6878943 0,6695358 0,6511774 0,6328191
0,6144607 0,6009164 0,5902297 0,5814279 0,5739785 0,5675426 0,5619040
0,5569008 0,5524297 0,5484102 0,5447791 0,5414845 0,5384901 0,5357656
0,5332860 0,5310299 0,5289772 0,5271145 0,5254307 0,5239160 0,5225619
0,5213612 0,5203078 0,5193965 0,5186231 0,5179839 0,5174758 0,5170969
0,5168453 0,5167201 0,5167205 0,5168468 0,5170993 0,5174792 0,5179881
0,5186281 0,5194024 0,5203143 0,5213683 0,5225694 0,5239240 0,5254391
0,5271231 0,5289857 0,5310385 0,5332944 0,5357739 0,5384980 0,5414920
0,5447862 0,5484167 0,5524356 0,5569061 0,5619087 0,5675466 0,5739820
0,5814309 0,5902323 0,6009184 0,6144625 0,6328209 0,6511794 0,6695379
0,6878965 0,7062551 0,7246138 0,7429726 0,7613314 0,7796903 0,7980492
0,8164082 0,8347672 0,8531262 0,8714853 0,8898444 0,9082036 0,9265628
0,9449221 0,9632814 0,9816407 1
Captulo 8. I mplementacin y simulacin del sistema digital
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 121
8.6 Conclusiones
En el captulo 7 se realiz un estudio sobre el error entre la solucin obtenida
utilizando la funcin exponencial continua y la solucin obtenida con la funcin
exponencial aproximada mediante la aproximacin polinmica ptima utilizando un
polinomio de grado 2 y 6 bits para el direccionamiento, es decir dividiendo el rango de
la funcin exponencial en 2
6
puntos. A continuacin, calculamos el error entre la
solucin obtenida con la funcin exponencial continua (Figura 7.10) y la solucin
obtenida en el circuito implementado en Simulink (Figura 8.22):
EVALUACI N DE ERROR
Aproximacin polinmica ptima por tramos
6 bits de direccionamiento Polinomio de grado 2
Iteraciones Error absoluto Error relativo
Programa MATLAB
(apndice A.4)
842 2.120289e-5 3.948343e-5
Esquemtico Simulink
(Figura 8.19)
838 1.740105e-5 3.212245e-5

Tabla 8.1 Evaluacin del error de aproximacin introducido al adoptar la tcnica de aproximacin de la
funcin exponencial, aproximacin polinmica ptima por tramos. Se comparan los resultados obtenidos
mediante la simulacin numrica en MATLAB y la simulacin digital en Simulink.
El resultado obtenido tras simular el circuito en Simulink es similar a la
simulacin previa realizada en MATLAB, por lo que el error introducido por la
aproximacin de la funcin exponencial queda por debajo de 10
-4
tal y como se
coment en el captulo 7.
Destacan una serie de conclusiones del coprocesador construido en Simulink para
la implementacin de la resolucin de la ecuacin de Poisson 1D para un DGSOI:
1 Condiciones inicial y final: el sistema digital generado no presenta un acceso
directo a las condiciones inicial y final para poder modificar su valor. Si se desea
construir un coprocesador basado en diferentes condiciones inicial y final deben
modificarse los bloques que implementan estas constantes en el circuito (initial
condition Vg1 y final condition Vg2), as como las constantes que
8.6 Conclusiones
122 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
implementan los valores siendo
2v
g
v
T
y
1
2v
g
(constant 3 y constant 4,
respectivamente), los valores cargados inicialmente en la RAM tal y como se
explica en el apartado 8.2, y los coeficientes del polinomio ptimo alojados en las
memorias ROM.
2 Umbral de error: para modificar el valor del umbral de error que gobierna el
mtodo numrico hay que variar el valor de la constante denominada threshold.
Tampoco se ofrece una entrada de alto nivel para modificar este parmetro.
3 Discretizacin del canal: el canal se ha dividido en 102 puntos equiespaciados
y la posibilidad de modificar este parmetro reside en modificar los lmites de los
contadores y las condiciones impuestas en las mquinas de estados finitos
coherentemente. De igual manera, se podra cambiar la distribucin de puntos
pertenecientes a la zona de xido o semiconductor.
4 Bloqueo de entradas: se proporciona un circuito de control sincronizado para
implementar el bloqueo de entradas a lo largo de todas las etapas del circuito
para reducir el consumo de potencia, ya que al no cambiar los estmulos de
entrada, no se generan transiciones en los nodos internos y se reduce el
consumo.


Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 123



Captulo 9

Generacin, sntesis HDL y
estimacin de consumo de
recursos

Una vez creado el coprocesador en Simulink, se han realizado una serie de
simulaciones para comprobar que el resultado es el esperado. El siguiente paso es
realizar la generacin del cdigo en lenguaje de descripcin hardware (HDL) con la
ayuda de System Generator for DSP. Una vez obtenido el cdigo HDL realizamos el
proceso de sntesis mediante Xilinx ISE Design Suite con dos sintetizadores
diferentes: XST y Precision. El objetivo es desarrollar un estudio sobre la estimacin
de recursos necesarios para diferentes FPGAs bajo testeo y para cada sintetizador.

9.1 Arquitectura de una FPGA
Las FPGA estn conformadas por un conjunto de bloques lgicos configurables
(CLBs, Configurable Logic Blocks) rodeados por un permetro de bloques
programabes de entrada/salida (I OBs, programmable I nputo/ Output Blocks). Estos
elementos funcionales estn interconectados por una jerarqua de canales de
conexin, la que incluye una red de baja capacitancia para la distribucin de seales
de reloj de alta frecuencia. Adicionalmente una FPGA puede contar con bloques de
memoria RAM, cuyos anchos de buses son configurables y con bloques de
multiplicadores dedicados. Los elementos funcionales programables principales son
los siguientes:
9.1 Arquitectura de una FPGA
124 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Global buffer: por lo general las seales de E/S de la FPGA se suelen
acondicionar mediante buffers. Dichos buffers se instancian en la descripcin
hardware del diseo a partir de unas primitivas definidas en las libreras
proporcionadas por Xilinx. En este sistema digital se utiliza I BUFG que es un
buffer destinado a la seal de reloj de entrada.
IOBs: controlan el flujo de datos entre los pines de entrada/salida y la lgica
interna del dispositivo. Soportan flujo bidireccional ms operacin tri-estado y
un conjunto de estndares de voltaje e impedancia controlados de manera
digital.
CLBs: los bloques de lgica configurable son los recursos principales a partir
de los cuales se implementa lgica secuencial o combinacional. Cada CLB
contiene dos o cuatro (depende de la plataforma) slices.
Slices: existen dos tipos de slices: SLI CEL y SLI CEM. Ambos
contienen dos o cuatro generadores de funciones o tablas de verdad
(LUTs), 4 elementos de almacenamiento (latches o flip-flops),
multiplexores dedicados y lgica de acarreo. Estos elementos son
utilizados por los slices para implementar funciones lgicas,
aritmtica y memoria ROM. Los SLI CESM, adems, tienen dos
funciones aadidas: almacenamiento de datos en memoria RAM
distribuida y registros de desplazamiento.
LUTs: tablas de verdad o generadores de funciones basados en
tecnologa RAM.
Dffs or latches: elementos de almacenamiento que pueden ser
configurados como flip-flops tipo D, disparados por flanco, o
latches, disparados por nivel.
Block RAM: proveen almacenamiento de datos en bloques.
Block Multiplier: bloques de multiplicacin que aceptan dos nmeros
binarios en un formato determinado.
Slices DSP48E: las aplicaciones de procesamiento de seal digital usan
muchos multiplicadores binarios y acumuladores que suelen ser lentos,
consumir mucha potencia y mucho rea cuando se implementan usando los
recursos lgicos de la FPGA. Por ello, las FPGAs actuales cuentan con
elementos de procesamiento de seal digtal que vienen a ser slices DSP
dedicados, totalmente configurables y de bajo consumo que liberan recursos
lgicos de las operaciones DSP y aumentar el rendimiento en la ejecucin de
las mismas. En este trabajo no se utilizarn.

Captulo 9. Generacin, sntesis HDL y estimacin de consumo de recursos
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 125
9.2 Estimacin de consumo de recursos
Se procede a la generacin del cdigo HDL a partir del esquemtico que se muestra
en la Figura 8.19. Con la ayuda de Xilinx I SE Design Suite se realiza la sntesis tanto
con XST, como con Precision para estudiar la estimacin de recursos que precisa el
coprocesador desarrollado en este trabajo para las FPGAs ms actuales del mercado.

9.2.1 Spartan 3 XC3S50
ESTIMACIN DE RECURSOS CONSUMIDOS: Spartan 3 xc3s50-5pq208
XST Precision
Used Available Utilization Used Available Utilization
BUFG 1 8 12.50 % 1 8 12.50 %
IOBs 138 124 111.29 % 139 124 112.10 %
Slices 339 768 44,14 % 204 768 26.56 %
LUTs 517 1536 33.66 % 366 1536 23.83 %
Dffs or latches 574 1536 37.37 % 408 1908 21.38 %
Block RAMs - - - 0 4 0 %
DSP48Es - - - 0 4 0 %

Tabla 9.1 Estimacin de recursos para una Spartan 3 XC3S50.
9.2.2 Spartan 3 XC3S1000
ESTIMACIN DE RECURSOS CONSUMIDOS: Spartan 3 xc3s1000-4fg676
XST Precision
Used Available Utilization Used Available Utilization
BUFG 1 8 12.50 % 1 8 12.50 %
IOBs 138 391 35.29 % 139 391 35.55 %
Slices 339 7680 4.41 % 204 7680 2.66 %
LUTs 517 15360 3.36 % 366 15360 2.38 %
Dffs or latches 574 15360 3.74 % 408 16533 2.47 %
Block RAMs - - - 0 24 0 %
DSP48Es - - - 0 24 0 %

Tabla 9.2 Estimacin de recursos para una Spartan 3 XC3S1000.
9.2 Estimacin de consumo de recursos
126 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
9.2.3 Virtex 4 XC4VFX12
ESTIMACIN DE RECURSOS CONSUMIDOS: Virtex 4 xc4vfx12-11sf363
XST Precision
Used Available Utilization Used Available Utilization
BUFG 1 32 3.13 % 1 32 3.13 %
IOBs 138 240 57.5 % 139 240 57.92 %
Slices 338 5472 6.18 % 204 5472 3.73 %
LUTs 517 10944 4.72 % 350 10944 3.20 %
Dffs or latches 574 10944 5.24 % 408 10944 3.73 %
Block RAMs - - - 0 376 0 %
DSP48Es - - - 0 160 0 %

Tabla 9.3 Estimacin de recursos para una Virtex 4 XC4VFX12.
9.2.4 Virtex 4 XC4VFX100
ESTIMACIN DE RECURSOS CONSUMIDOS: Virtex 4 xc4vfx100-11ff1152
XST Precision
Used Available Utilization Used Available Utilization
BUFG 1 32 3.13 % 1 32 3.13 %
IOBs 138 576 23.96 % 139 576 24.13 %
Slices 338 42176 0.80 % 204 42176 0.48 %
LUTs 517 84352 0.61 % 350 84352 0.41 %
Dffs or latches 574 84352 0.68 % 408 84352 0.48 %
Block RAMs - - - 0 376 0 %
DSP48Es - - - 0 160 0 %

Tabla 9.4 Estimacin de recursos para una Virtex 4 XC4VFX100.

Como se desprende de las tablas 7.1 a 7.4, tanto para a partir de la serie Spartan
3, como para a partir de la serie Virtex 4, el coprocesador podra ejecutarse en estas
plataformas configurables. Aunque con la salvedad de que, tal y como puede verse en
la tabla 7.1, se observa una insuficiencia de IOBs para la plataforma XC3S50, la
versin menos potente de esta serie.


Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 127



Conclusiones

En este captulo se presentan las diferentes aportaciones y conclusiones obtenidas de
este trabajo as como las posibles futuras lneas de investigacin que servirn como
continuacin del mismo.

Principales aportaciones
1. Se ha desarrollado un coprocesador para la resolucin de la ecuacin de
Poisson 1D para un dispositivo de doble puerta en tecnologa SOI. Entre las
principales caractersticas que se encuentra la posibilidad de integrar dicho
coprocesador en una red de computacin grid.
2. Se han utilizado herramientas de alto nivel de abstraccin para el diseo de
sistemas de gran rendimiento para FPGAs. Han sido utilizadas las
herramientas software ms actuales del mercado, utilizando una metodologa
novedosa en el diseo de sistemas digitales mediante la generacin
automtica de lenguaje de descripcin hardware aportando numerosas
ventajas al trabajo realizado. Entre otras, destaca la facilidad que ofrece el
modelado RTL en trminos de diseo abstracto con modelos de circuitos, la
implementacin de sistemas de calidad en una fraccin de tiempo de
desarrollo reducida y la posibilidad de verificar dichos diseos mediante
simulaciones. Tambin permite que nuevas especificaciones no propuestas en
la descripcin inicial del proyecto, como la posibilidad de modificar las
condiciones inicial o final, o el nmero de puntos en los que se discretiza el
canal del transistor puedan ser fcilmente acometidas.
3. Para la funcin exponencial continua se han propuesto tres alternativas para
su aproximacin, aportando para cada una de ellas un estudio sobre la carga
computacional y consumo de recursos adicional que supone adoptarlas, as
como un estudio sobre el error de aproximacin de cada una. La tcnica
Conclusiones
128 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
finalmente implementada ha sido la tcnica de aproximacin mediante un
polinomio de Taylor y una divisin del rango de la funcin exponencial en
puntos equidistantes, al presentar mejor compromiso entre cmputo y error.
4. La implementacin del coprocesador como sistema digital mediante el diseo
RTL que permite Simulink y System Generator se ha llevado a cabo de forma
modular. As, el sistema global se ha dividido en cuatro circuitos
independientes, permitiendo realizar modificaciones en el diseo de forma
simple, orientado para futuras investigaciones.
5. Para mejorar el consumo de recursos se ha realizado el diseo del sistema
digital intentando minimizar el nmero de multiplicadores en punto flotante,
los bloques ms exigentes del coprocesador. Adems se ha implementado la
tcnica de bloqueo de datos mediante flip-flops tipo D y seal de habilitacin
para mejorar el consumo de potencia.
6. Para comprobar la viabilidad del coprocesador desarrollado, se ha realizado
una estimacin de recursos en trminos de recursos hardware que precisa el
coprocesador y los recursos disponibles para las series Spartan 3 y Virtex 4.
Se ha verificado que a partir de estas series la ejecucin del coprocesador para
el clculo de la ecuacin de Poisson 1D en punto flotante simple precisin es
viable.

Lneas futuras
La realizacin de este trabajo no ha supuesto un proyecto cerrado, tras los resultados
obtenidos se abre un abanico de posibles continuaciones de las lneas principales
propuestas, tanto en la mejora del diseo del coprocesador como en el estudio de
diferentes estructuras.
1. Comprobacin de los resultados obtenidos en las simulaciones. Ejecucin del
coprocesador en una FPGA.
2. Desarrollo y estudio de un coprocesador para la resolucin de la ecuacin de
Poisson 2D en estructuras SOI.
3. Desarrollo y estudio del coprocesador realizado en este trabajo aplicado a
diferentes estructuras de dispositivos.
4. Estudio y aplicacin de tcnicas de optimizacin del cdigo tales como la
paralelizacin de cdigo y procesamiento distribuido.

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 129








Parte IV
APNDICES













130 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI



Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 131



Apndice A

Programacin en MATLAB (I)

A.1 Simulacin numrica de la ecuacin
discreta de Poisson 1D
cl ear al l ;
cl ose al l ;

%%CONSTANTES

ni = si ngl e( 1. 5*10^10) ; %cm^- 3
E0 = si ngl e( 8. 854*10^( - 14) ) ; %F/ cm
Esi = si ngl e( 11. 8) ;
K = si ngl e( 8. 62*10^( - 5) ) ; %eV/ K
q = si ngl e( 1. 6*10^( - 19) ) ; %C
T = si ngl e( 300) ; %K
Vt = K*T; %V
I Vt = 1/ Vt ; %V^( - 1)

%%CONSTANTES DE ENTRADA

Na = si ngl e( 10^18) ; %cm^- 3
Vg1 = si ngl e( 1) ; %V
Vg2 = Vg1; %V
Vg = Vg1; %V
x = si ngl e( 10^- 6) ; %cm
poi nt s = si ngl e( 100) ; %punt os
Ox_poi nt s = si ngl e( 20) ; %punt os
Ax = x/ poi nt s; %cm/ punt o
l i mi t = si ngl e( 1000000) ;
umbr al = si ngl e( 10^( - 6) ) ;

%%I NI CI ALI ZACI N DE VARI ABLES

count = si ngl e( 0) ;
V = [ Vg1 0. 5*ones( 1, poi nt s) Vg2] ;
V_ol d = [ Vg1 1: poi nt s Vg2] ;
r hs = [ 1: poi nt s] ;
Apndice A. Programacin en MATLAB (I )
132 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

%%BUCLE PRI NCI PAL DEL PROGRAMA

whi l e ( max( abs( V_ol d- V) ) >umbr al ) && ( count <l i mi t )
V_ol d = V;
f or i =2: ( poi nt s+1)
%XI DO
i f i <=( Ox_poi nt s+1) | | i >( poi nt s- Ox_poi nt s+1)
r hsI = si ngl e( 0) ;
r hs( i - 1) = si ngl e( 0) ;
%SEMI CONDUCTOR
el se
r hsI = ( ( Ax^2) *q*Na) / ( E0*Esi ) ;
r hs( i - 1) = ( ( Ax^2*q*ni ) / ( E0*Esi ) ) *exp( V( i ) / Vt ) ;
end
V( i ) = ( V( i +1) +V( i - 1) - r hsI - r hs( i - 1) ) *0. 5;
end
count =count +1;
end
count
subpl ot ( 1, 2, 1) ;
st ai r s( 0: 101, V) ;
t i t l e( ' Tensi n ( V) [ V] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Tensi n ( V) ' ) ;
subpl ot ( 1, 2, 2) ;
st ai r s( 0: 99, ( ( E0*Esi ) / ( Ax^2*q) ) *r hs) ;
t i t l e( ' Concent r aci n de el ect r ones ( n=ni e^V^/ ^V^T) [ cm^-
^3] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Concent r aci n ( cm^- ^3) ' ) ;

A.2 Serie de Taylor
cl ear al l ;
cl ose al l ;

%%CONSTANTES

ni = si ngl e( 1. 5*10^10) ; %cm^- 3
E0 = si ngl e( 8. 854*10^( - 14) ) ; %F/ cm
Esi = si ngl e( 11. 8) ;
K = si ngl e( 8. 62*10^( - 5) ) ; %eV/ K
q = si ngl e( 1. 6*10^( - 19) ) ; %C
T = si ngl e( 300) ; %K
Vt = K*T; %V
I Vt = 1/ Vt ; %V^( - 1)

%%CONSTANTES DE ENTRADA

Na = si ngl e( 10^18) ; %cm^- 3
Vg1 = si ngl e( 1) ; %V
Vg2 = Vg1; %V
Vg = Vg1; %V
x = si ngl e( 10^- 6) ; %cm
poi nt s = si ngl e( 100) ; %punt os
Ox_poi nt s = si ngl e( 20) ; %punt os
Apndice A. Programacin en MATLAB (I )
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 133
Ax = x/ poi nt s; %cm/ punt o
l i mi t = si ngl e( 1000000) ;
umbr al = si ngl e( 10^( - 6) ) ;
gr ado = 5; %Gr ado del pol i nomi o de Tayl or
a=( Vg/ ( 2*Vt ) ) ; %Punt o cent r al del r ango de V( i )

%%I NI CI ALI ZACI N DE VARI ABLES

count = si ngl e( 0) ;
V = [ Vg1 0. 5*ones( 1, poi nt s) Vg2] ;
V_ol d = [ Vg1 1: poi nt s Vg2] ;
r hs = [ 1: poi nt s] ;


%%BUCLE PRI NCI PAL DEL PROGRAMA

whi l e ( max( abs( V_ol d- V) ) >umbr al ) && ( count <l i mi t )
V_ol d = V;
f or i =2: ( poi nt s+1)

%XI DO
i f i <=( Ox_poi nt s+1) | | i >( poi nt s- Ox_poi nt s+1)
r hsI = si ngl e( 0) ;
r hs( i - 1) = 0;
%SEMI CONDUCTOR
el se
r hsI = ( ( Ax^2) *q*Na) / ( E0*Esi ) ;
r hs( i - 1) = ( ( Ax^2*q*ni ) / ( E0*Esi ) ) *exp( a) *sum( ( ( ( V( i ) / Vt ) -
a) . ^( 0: gr ado) ) . / ( f act or i al ( 0: gr ado) ) ) ;
end
V( i ) = ( V( i +1) +V( i - 1) - r hsI - r hs( i - 1) ) *0. 5;
end
count =count +1;
end
count
subpl ot ( 1, 2, 1) ;
st ai r s( 0: 101, V) ;
t i t l e( ' Tensi n ( V) [ V] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Tensi n ( V) ' ) ;
subpl ot ( 1, 2, 2) ;
st ai r s ( 0: 99, ( ( E0*Esi ) / ( Ax^2*q) ) *r hs) ;
t i t l e( ' Concent r aci n de el ect r ones ( n=ni e^V^/ ^V^T) [ cm^-
^3] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Concent r aci n ( cm^- ^3) ' ) ;

A.3 Aproximacin lineal por tramos
cl ear al l ;
cl ose al l ;

%%CONSTANTES

ni = si ngl e( 1. 5*10^10) ; %cm^- 3
E0 = si ngl e( 8. 854*10^( - 14) ) ; %F/ cm
Esi = si ngl e( 11. 8) ;
Apndice A. Programacin en MATLAB (I )
134 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
K = si ngl e( 8. 62*10^( - 5) ) ; %eV/ K
q = si ngl e( 1. 6*10^( - 19) ) ; %C
T = si ngl e( 300) ; %K
Vt = K*T; %V
I Vt = 1/ Vt ; %V^( - 1)

%%CONSTANTES DE ENTRADA

Na = si ngl e( 10^18) ; %cm^- 3
Vg1 = si ngl e( 1) ; %V
Vg2 = Vg1; %V
Vg = Vg1; %V
x = si ngl e( 10^- 6) ; %cm
poi nt s = si ngl e( 100) ; %punt os
Ox_poi nt s = si ngl e( 20) ; %punt os
Ax = x/ poi nt s; %cm/ punt o
l i mi t = si ngl e( 1000000) ;
umbr al = si ngl e( 10^( - 6) ) ;


%%MEMORI A

%Memor i a de 2^( bdi r ) posi ci ones, por t ant o, cuent a con bdi r bi t s de
%di r ecci onami ent o.
%Cont amos con 23- ( bdi r ) bi t s par a r eal i zar l a apr oxi maci n l i neal con l a
%pendi ent e.
bdi r = si ngl e( 6) ; %bi t s de di r ecci onami ent o
bapr ox = si ngl e( 23) - bdi r ; %bi t s de apr oxi maci n
msi ze = 2^bdi r ; %t amao de l a memor i a
dmax = msi ze- 1; %di r ecci n mxi ma

%La memor i a se cr ea de maner a di nmi ca en f unci n de Vt y Vg
a = [ 0: ( Vg/ ( Vt *dmax) ) : Vg/ Vt ] ;
b = ( ( Ax^2*q*ni ) / ( E0*Esi ) ) *exp( a) ; %Vect or con l os val or es de l a
exponenci al
f or i = 1: ( msi ze- 1)
c( i ) =( b( i +1) - b( i ) ) ; %Vect or con l os val or es de l a pendi ent e
end

%%I NI CI ALI ZACI N DE VARI ABLES

count = si ngl e( 0) ;
V = [ Vg1 0. 5*ones( 1, poi nt s) Vg2] ;
V_ol d = [ Vg1 1: poi nt s Vg2] ;
r hs = [ 1: poi nt s] ;

%%BUCLE PRI NCI PAL DEL PROGRAMA

swi t ch bdi r
%4 bi t s de di r ecci onami ent o y 19 par a l a apr oxi maci n:
case 4
j = 7864320; %( 0x11110000000000000000000)
k = 524287; %( 0x00001111111111111111111)

%5 bi t s de di r ecci onami ent o y 18 par a l a apr oxi maci n:
case 5
j = 8126464; %( 0x11111000000000000000000)
k = 262143; %( 0x00000111111111111111111)
Apndice A. Programacin en MATLAB (I )
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 135
%6 bi t s de di r ecci onami ent o y 17 par a l a apr oxi maci n:
case 6
j = 8257536; %( 0x11111100000000000000000)
k = 131071; %( 0x00000011111111111111111)

%7 bi t s de di r ecci onami ent o y 16 par a l a apr oxi maci n:
case 7
j = 8323072; %( 0x11111110000000000000000)
k = 65535; %( 0x00000001111111111111111)

%8 bi t s de di r ecci onami ent o y 15 par a l a apr oxi maci n:
case 8
j = 8355840; %( 0x11111111000000000000000)
k = 32767; %( 0x00000000111111111111111)

%9 bi t s de di r ecci onami ent o y 14 par a l a apr oxi maci n:
case 9
j = 8372224; %( 0x11111111100000000000000)
k = 16383; %( 0x00000000011111111111111)

%10 bi t s de di r ecci onami ent o y 13 par a l a apr oxi maci n:
case 10
j = 8380416; %( 0x11111111110000000000000)
k = 8191; %( 0x00000000001111111111111)

%11 bi t s de di r ecci onami ent o y 12 par a l a apr oxi maci n:
case 11
j = 8384512; %( 0x11111111111000000000000)
k = 4095; %( 0x00000000000111111111111)

ot her wi se
di sp( ' Er r or : bdi r debe est ar compr endi da ent r e 4 y 11' ) ;
r et ur n;
end
whi l e ( max( abs( V_ol d- V) ) >umbr al ) && ( count <l i mi t )
V_ol d = V;
f or i =2: ( poi nt s+1)
%XI DO
i f i <=( Ox_poi nt s+1) | | i >( poi nt s- Ox_poi nt s+1)
r hsI = si ngl e( 0) ;
r hs( i - 1) = 0;
%SEMI CONDUCTOR
el se
r hsI = ( ( Ax^2) *q*Na) / ( E0*Esi ) ;
punt o = ( 0. 5*( V( i ) / Vg) ) +0. 5;
aux = bi t and( ui nt 32( j ) , ui nt 32( punt o*2^24) ) ;
di r ecci on = ( si ngl e( aux) *2^( - bapr ox) ) ;
aux2 = bi t and( ui nt 32( k) , ui nt 32( punt o*2^24) ) ;
apr oxi maci on = ( si ngl e( aux2) *2^( - bapr ox) ) ;
i f ( di r ecci on == msi ze)
r hs( i - 1) = b( di r ecci on) ;
el se
r hs( i - 1) = b( di r ecci on) +apr oxi maci on*c( di r ecci on) ;
end
end
V( i ) = ( V( i +1) +V( i - 1) - r hsI - r hs( i - 1) ) *0. 5;
end
count =count +1;
end
Apndice A. Programacin en MATLAB (I )
136 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
count
subpl ot ( 1, 2, 1) ;
st ai r s( 0: 101, V) ;
t i t l e( ' Tensi n ( V) [ V] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Tensi n ( V) ' ) ;
subpl ot ( 1, 2, 2) ;
st ai r s ( 0: 99, ( ( E0*Esi ) / ( Ax^2*q) ) *r hs) ;
t i t l e( ' Concent r aci n de el ect r ones ( n=ni e^V^/ ^V^T) [ cm^-
^3] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Concent r aci n ( cm^- ^3) ' ) ;


A.4 Aproximacin polinmica ptima por
tramos
cl ear al l ;
cl ose al l ;

%%CONSTANTES

ni = si ngl e( 1. 5*10^10) ; %cm^- 3
E0 = si ngl e( 8. 854*10^( - 14) ) ; %F/ cm
Esi = si ngl e( 11. 8) ;
K = si ngl e( 8. 62*10^( - 5) ) ; %eV/ K
q = si ngl e( 1. 6*10^( - 19) ) ; %C
T = si ngl e( 300) ; %K
Vt = K*T; %V
I Vt = 1/ Vt ; %V^( - 1)

%%CONSTANTES DE ENTRADA

Na = si ngl e( 10^18) ; %cm^- 3
Vg1 = si ngl e( 1) ; %V
Vg2 = Vg1; %V
Vg = Vg1; %V
x = si ngl e( 10^- 6) ; %cm
poi nt s = si ngl e( 100) ; %punt os
Ox_poi nt s = si ngl e( 20) ; %punt os
Ax = x/ poi nt s; %cm/ punt o
l i mi t = si ngl e( 1000000) ;
umbr al = si ngl e( 10^( - 6) ) ;
or den = si ngl e( 2) ; %Or den del pol i nomi o


%%MEMORI A

%Memor i a de 2^( bdi r ) posi ci ones, por t ant o, cuent a con ( bdi r ) bi t s de
%di r ecci onami ent o.
bdi r = si ngl e( 6) ; %bi t s de di r ecci onami ent o
msi ze = 2^bdi r ; %t amao de l a memor i a
dmax = msi ze- 1; %di r ecci n mxi ma

%La memor i a se cr ea de maner a di nmi ca en f unci n de Vt y Vg
a = [ 0: ( Vg/ ( Vt *dmax) ) : Vg/ Vt ] ;
b = [ ] ;
Apndice A. Programacin en MATLAB (I )
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 137
f or k=1: dmax
b=[ b; si ngl e( mi m( @exp, [ a( k) , a( k+1) ] , or den) ) ] ; %Coef i ci ent es del
pol i nomi o pt i mo de cada t r amo
end
b=[ b; b( dmax, : ) ] ;

%%I NI CI ALI ZACI N

count = si ngl e( 0) ;
V = [ Vg1 0. 5*ones( 1, poi nt s) Vg2] ;
V_ol d = [ Vg1 1: poi nt s Vg2] ;
r hs = [ 1: poi nt s] ;


%%BUCLE PRI NCI PAL DEL PROGRAMA

swi t ch bdi r

%4 bi t s de di r ecci onami ent o:
case 4
j = 7864320; %( 0x11110000000000000000000)

%5 bi t s de di r ecci onami ent o:
case 5
j = 8126464; %( 0x11111000000000000000000)

%6 bi t s de di r ecci onami ent o:
case 6
j = 8257536; %( 0x11111100000000000000000)

%7 bi t s de di r ecci onami ent o:
case 7
j = 8323072; %( 0x11111110000000000000000)

%8 bi t s de di r ecci onami ent o:
case 8
j = 8355840; %( 0x11111111000000000000000)

%9 bi t s de di r ecci onami ent o:
case 9
j = 8372224; %( 0x11111111100000000000000)

ot her wi se
di sp( ' Er r or : bdi r debe est ar compr endi da ent r e 4 y 9' ) ;
r et ur n;
end

whi l e ( max( abs( V_ol d- V) ) >umbr al ) && ( count <l i mi t )
V_ol d = V;
f or i =2: ( poi nt s+1)
%XI DO
i f i <=( Ox_poi nt s+1) | | i >( poi nt s- Ox_poi nt s+1)
r hsI = si ngl e( 0) ;
r hs( i - 1) = si ngl e( 0) ;
%SEMI CONDUCTOR
el se
r hsI = ( ( Ax^2) *q*Na) / ( E0*Esi ) ;
Apndice A. Programacin en MATLAB (I )
138 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
punt o = ( 0. 5*( V( i ) / Vg) ) +0. 5;
aux = bi t and( ui nt 32( j ) , ui nt 32( punt o*2^24) ) ;
di r ecci on = ( si ngl e( aux) *2^( - 23+bdi r ) ) ;
ent r ada = ( V( i ) / Vt ) ;
apr oxi maci on = b( di r ecci on, 1) ;
f or k=2: 1: or den+1
apr oxi maci on = apr oxi maci on*ent r ada+b( di r ecci on, k) ;
end
r hs( i - 1) = ( ( Ax^2*q*ni ) / ( E0*Esi ) ) *apr oxi maci on;
end
V( i ) = ( V( i +1) +V( i - 1) - r hsI - r hs( i - 1) ) *0. 5;
end
count =count +1;
end
count
subpl ot ( 1, 2, 1) ;
st ai r s( 0: 101, V) ;
t i t l e( ' Tensi n ( V) [ V] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Tensi n ( V) ' ) ;
subpl ot ( 1, 2, 2) ;
st ai r s ( 0: 99, ( ( E0*Esi ) / ( Ax^2*q) ) *r hs) ;
t i t l e( ' Concent r aci n de el ect r ones ( n=ni e^V^/ ^V^T) [ cm^-
^3] ' ) ; xl abel ( ' Punt o' ) ; yl abel ( ' Concent r aci n ( cm^- ^3) ' ) ;

7.2.4 Funcin mi m
f unct i on [ p, er r ] = mi m( f un, i nt er v, deg)
%MI M f i nd opt i mal ( mi ni max) pol ynomi al appr oxi mat i on.
%
%[ P, ERR] = MI M( FUN, I NTERV, DEG)
%Fi nds t he best pol ynomi al f i t of FUN ( use e. g. @l og)
%i n t he i nt er val I NTERV ( e. g. [ 0. 5 1] ) , pol ynomi al degr ee DEG.
%
%f or er r or f unct i on cal cul at i on
%
st 1 = ( i nt er v( 2) - i nt er v( 1) ) / ( deg*1000) ;
xi = [ i nt er v( 1) : st 1: i nt er v( 2) ] ;
%
%cr eat e i nt er medi at e poi nt s
%
st 2 = ( i nt er v( 2) - i nt er v( 1) ) / ( deg- 1) ;
x = [ i nt er v( 1) +st 2/ 2: st 2: i nt er v( 2) ] ;
%
%you can t r y t o modi f y st ep, nof i t er & df act
%
st ep = deg/ 20;
nof i t er = deg*15;
df act = . 8+deg/ 100;
f or i = 1: nof i t er
%
%f i t t i ng poi nt s: ends of i nt er val f i xed
%
xx = [ i nt er v( 1) x i nt er v( 2) ] ;
%
%per f or mf i t ( l agr ange)
%
Apndice A. Programacin en MATLAB (I )
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 139
p = pol yf i t ( xx, f eval ( f un, xx) , deg) ;

%er r or f unct i on

ee = abs( f eval ( f un, xi ) - pol yval ( p, xi ) ) ;

%pl ot er r or f unct i on ( not necessar y i f you
%want t o speed up)
%cl f
%pl ot ( xi , ee, ' l i newi dt h' , 2) ;
%yl abel ( ' Pol y Er r or ' ) , xl abel ( ' I nt er val ' ) , t i t l e( ' I nt er val endpoi nt s
f i xed: ' )
%pause( . 2) ;

f or j = 1: l engt h( x)
%i nt er val ar ound f i t t i ng poi nt
[ m, st ar t ] = mi n( abs( xi - xx( j ) ) ) ;
[ m, st op] = mi n( abs( xi - xx( j +2) ) ) ;
%f i nd l ocal er r or maxi mum
[ er r , i dx] = max( ee( st ar t : st op) ) ;
%move t o i t s di r ect i on
x( j ) = x( j ) +st ep*( xi ( i dx+st ar t - 1) - x( j ) ) ;
end;
st ep = st ep*df act ;
end;
%
%per f or mf i nal er r or anal ysi s
%
xx = [ i nt er v( 1) x i nt er v( 2) ] ;
p = pol yf i t ( xx, f eval ( f un, xx) , deg) ;
ee = abs( f eval ( f un, xi ) - pol yval ( p, xi ) ) ;
%
%er r or of f i nal appr oxi mat i on
%
er r = max( ee) ;

140 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 141



Apndice B

Xilinx Blockset

En este apndice se recogen los bloques utilizados durante el desarrollo del sistema
digital en Simulink. Estos bloques forman parte del Xilinx Blockset que proporciona
System Generator for DSP. Para cada bloque se proporciona una descripcin
detallada de su implementacin y de sus principales parmetros de configuracin.

B.1 Addsub
El bloque Xilinx AddSub implementa un sumador/restador. La
operacin puede ser fija (suma o resta) o cambiar dinmicamente
mediante una seal de control. Los principales parmetros de este
bloque son:

Operation: especifica la operacin que implementa el bloque. Puede ser: suma,
resta o suma/resta. Si se elige la opcin suma/resta, el bloque precisa de una seal
de entrada adicional de tipo booleano para indicar el tipo de operacin (0 suma, 1
resta).
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Provide carry-in port: si se selecciona, permite el acceso a un puerto de
entrada de acarreo.
Apndice B. Xilinx Blockset
142 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Provide carry-out port: permite disponer de un puerto de salida para el
acarreo.
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.
Precision: este parmetro permite especificar la precisin de salida. Puede ser
precisin completa (full) o una precisin determinada (user defined):
Full: el bloque utiliza la precisin suficiente para representar el resultado sin
error.
User defined: si no se precisa de precisin completa, esta opcin permite
especificar un nmero determinado de bits:
Fixed-point output type: especificar si el valor es con signo (signed,
2s comp) o sin signo (unsigned).
Number of bits: especifica el nmero de bits total del nmero en
punto fijo.
Binary point: especifica la posicin del punto binario.
Quantization: permite elegir el mtodo de aproximacin: truncamiento (truncate)
o redondeo (round).
Overflow: permite elegir el mecanismo de respuesta frente a un desbordamiento.
De esta manera, se puede elegir entre: wrap, es decir, descartar los bits a la
izquierda del bit ms significativo; saturate, saturar a los valores mximo o
mnimo que permite la representacin numrica que se emplea; o flag as error,
notificar el desbordamiento como un error en Simulink.
Use behavioral HDL (otherwise use core): el bloque es implementado
mediante una descripcin comportamental en HDL.
Implement using Fabric or DSP48: la lgica del ncleo puede ser
implementada en Fabric o en un DSP48, si est disponible en la FPGA.





Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 143
B.2 Constant
El bloque Xilinx Constant genera una constante que puede ser un valor
en punto fijo, punto flotante, un valor booleano o una instruccin
DSP48. Para el sistema digital de este trabajo, se utiliza este bloque
nicamente para generar valores numricos constantes o booleanos. Por ello este
bloque es similar al bloque de Simulink Constant, salvo que puede ser conectado
directamente a entradas de bloques Xilinx:
Constant value: especifica el valor de la constante. Si el tipo de dato constante es
declarado como punto fijo o punto flotante y no puede ser expresado el valor
numrico exacto, se redondea y satura segn sea necesario.
Output type: especifica el tipo de dato de salida. Puede ser: booleano, punto fijo o
punto flotante.
Fixed-point: si se elige que el dato de salida sea punto fijo, entonces hay
que determinar:
Arithmetic type: especificar si el valor es con signo (signed, 2s
comp) o sin signo (unsigned).
Number of bits: especifica el nmero de bits total del nmero en
punto fijo.
Binary point: especifica la posicin del punto binario.
Floating-point: si se elige que el dato de salida sea punto flotante, hay
que determinar:
Floating-point precision: especificar la precisin del nmero
expresado en punto flotante. Elegir entre: precisin simple (single,
32 bits), precisin doble (double, 64 bits) y personalizada (custom,
determinar el ancho del campo exponente, exponent width, y el
ancho de la parte fraccional, fraction width).
Boolean.
Sample period: permite asociar un perodo de muestreo a la seal de salida,
heredando este perodo los bloques posteriores con los que se comunica.




Apndice B. Xilinx Blockset
144 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
B.3 Convert
El bloque Xilinx Convert convierte una muestra de entrada dada, a un
nmero de un tipo aritmtico determinado. Por ejemplo, un nmero se
puede transformar en un valor con signo (complemento a dos) o sin signo.
Output type: especifica el tipo de dato de salida. Puede ser: booleano, punto fijo o
punto flotante.
Fixed-point: si se elige que la salida sea punto fijo, determinar:
Arithmetic type: especificar si el valor es con signo (signed, 2s
comp) o sin signo (unsigned).
Number of bits: especifica el nmero de bits en punto fijo.
Binary point: especifica la posicin del punto binario.
Floating-point: si se elige que la salida sea punto flotante, determinar:
Floating-point precision: especificar la precisin del nmero
expresado en punto flotante. Elegir entre: precisin simple (single,
32 bits), precisin doble (double, 64 bits) y personalizada (custom,
determinar el ancho del campo exponente, exponent width, y el
ancho de la parte fraccional, fraction width).
Boolean.
Boolean.
Quantization: permite elegir el mtodo de aproximacin: truncamiento (truncate)
o redondeo (round).
Overflow: permite elegir el mecanismo de respuesta frente a un desbordamiento.
De esta manera, se puede elegir entre: wrap, es decir, descartar los bits a la
izquierda del bit ms significativo; saturate, saturar a los valores mximo o
mnimo que permite la representacin numrica que se emplea; o flag as error,
notificar el desbordamiento como un error en Simulink.
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.

Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 145
B.4 Counter
El bloque Xilinx Counter implementa un contador de tipo limitado o
free running, con cuenta ascendente, descendente o mixta. La salida
del bloque Counter se expresa como un nmero en punto fijo, con signo
o sin signo. Los contadores tipo free running son los menos costosos en
trminos de hardware en una FPGA. Adems se permite que el valor del contador
pueda ser configurado a travs de un puerto de entrada.
La salida de un contador tipo free running ascendente es calculada de la siguiente
manera:
out(n) _
InitiolIoluc i n =0
Jin(n 1) i looJ(n 1) =1
(out(n 1) +Stcp)moJ 2
N
otcrwisc

donde N denota el nmero de bits del contador. Si el contador free running es
descendente, basta con remplazar la suma por una resta. Para el caso mixto, se
determina en funcin del valor de un puerto de entrada adicional (1 descendente, 0
ascendente).
Un contador limitado es bsicamente la combinacin de un contador free running
con un comparador. Cabe destacar que este tipo de contadores estn limitados a 64
bits de precisin de salida. La salida para un contador limitado ascendente es la
siguiente:
out(n) =_
InitiolIoluc i n =0 or out(n 1) =CountIimit
(out(n 1) +Stcp)moJ 2
N
otcrwisc

Counter type: especifica si el contador va a ser de tipo limitado o free running.
Count to value: determina el valor final del contador, es decir, el nmero en el
cual el contador limitado se resetea. El valor I nf representa la mayor salida
representable segn la precisin especificada en trminos de bits. No puede ser el
mismo valor que initial value.
Count direction: permite determinar si el contador es ascendente, descendente o
bien, se desea proporcionar un puerto de entrada adicional para elegir la direccin
del contador.
Initial value: especifica el valor inicial del contador.
Apndice B. Xilinx Blockset
146 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Step: especifica el valor de incremento o decremento.
Output type: especifica si el contador es con signo (signed, 2s comp) o sin signo
(unsigned).
Number of bits: especifica el nmero de bits total del nmero en punto
fijo.
Binary point: especifica la posicin del punto binario.
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Provide synchronous reset port: permite un puerto de entrada
opcional de reset (rst). Cuando la seal de reset se activa, el bloque vuelve
a su estado inicial. La seal de reset tiene preferencia sobre la seal
opcional para habilitar el bloque (enable).
Provide load port: permite proporcionar un puerto de entrada de carga,
para el caso de que el contador opera como un contador tipo free running.
Explicit sample period: permite o bien asociar un perodo de muestreo a la
seal de salida o bien heredarlo de algn puerto de entrada.
Use behavioral HDL (otherwise use core): el bloque es implementado
mediante una descripcin comportamental en HDL.
Implement using Fabric or DSP48: la lgica del ncleo puede ser
implementada en Fabric o en un DSP48, si est disponible en la FPGA.

B.5 Delay
El bloque Xilinx Delay implementa un retardo fijo de L ciclos. El valor
del retardo se representa en el bloque como z
-L
, que es la transformada
Z de la funcin de transferencia del bloque. Cualquier muestra o dato
proporcionado en el puerto de entrada del bloque, aparecer en la
salida tras L ciclos. La velocidad y el tipo de datos de salida sern heredados de la
entrada. Este bloque se usa principalmente para sincronizar los distintos retardos de
las diferentes etapas de un sistema digital. El bloque Delay se diferencia del bloque
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 147
Register en que dicho bloque permite una latencia de un ciclo y contiene un
parmetro para el valor inicial. El bloque Delay permite una latencia determinada
pero no un valor inicial determinado (el valor inicial es siempre cero).
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Provide synchronous reset port: permite un puerto de entrada
opcional de reset (rst). Cuando la seal de reset se activa, el bloque vuelve
a su estado inicial. La seal de reset tiene preferencia sobre la seal
opcional para habilitar el bloque (enable).
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.
Use behavioral HDL (otherwise use core): el bloque es implementado
mediante una descripcin comportamental en HDL.

B.6 Down Sample
El bloque Xilinx Down Sample permite reducir la frecuencia de
muestreo de la seal que se conecta en su puerto de entrada. Dicha
seal es muestreada a intervalos regulares, ya sea al inicio (primer
valor) o al final (ltimo valor) de un marco. El valor muestreado se
presenta en el puerto de salida y se mantiene su valor hasta que se obtenga el valor
de la siguiente muestra.
Samplig rate (number of input samples per ouput sample): debe ser un
entero mayor o igual a dos. Es la relacin entre el perodo de muestreo de salida y
el de entrada, y es bsicamente el divisor de la frecuencia de muestreo.
Sample: el bloque Down Sample puede muestrear o bien el valor inicial (first
value of frame) o el final (last value of frame). Este parmetro determinar cual de
los dos valores es muestreado.
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Apndice B. Xilinx Blockset
148 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.

B.7 Gateway In
El bloque Xilinx Gateway I n implementa las entradas del sistema
digital. Cada bloque define un puerto de entrada de alto nivel en el
diseo HDL que genere System Generator.
Output type: especifica el tipo de dato de salida. Puede ser: booleano, punto fijo o
punto flotante.
Fixed-point: si se elige que el dato de salida sea punto fijo, entonces hay
que determinar:
Arithmetic type: especificar si el valor es con signo (signed, 2s
comp) o sin signo (unsigned).
Number of bits: especifica el nmero de bits total del nmero en
punto fijo.
Binary point: especifica la posicin del punto binario.
Floating-point: si se elige que el dato de salida sea punto flotante, hay
que determinar:
Floating-point precision: especificar la precisin del nmero
expresado en punto flotante. Elegir entre: precisin simple (single,
32 bits), precisin doble (double, 64 bits) y personalizada (custom,
determinar el ancho del campo exponente, exponent width, y el
ancho de la parte fraccional, fraction width).
Boolean.
Quantization: permite elegir el mtodo de aproximacin: truncamiento (truncate)
o redondeo (round).
Overflow: permite elegir el mecanismo de respuesta frente a un desbordamiento.
De esta manera, se puede elegir entre: wrap, es decir, descartar los bits a la
izquierda del bit ms significativo; saturate, saturar a los valores mximo o
mnimo que permite la representacin numrica que se emplea; o flag as error,
notificar el desbordamiento como un error en Simulink.
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 149
Sample period: permite asociar un perodo de muestreo a la seal de salida,
heredando este perodo los bloques posteriores con los que se comunica.

B.8 Gateway Out
El bloque Xilinx Gateway Out implementa las entradas del sistema
digital. De acuerdo con su configuracin, el bloque Gateway Out puede
ser o bien un puerto de salida de alto nivel en el diseo HDL que
genere System Generator o bien ser usado simplemente como punto de testeo en
Simulink y, por tanto, ser obviado durante el proceso de generacin de cdigo HDL.
Output type: especifica el tipo de dato de salida. Puede ser: booleano, punto fijo o
punto flotante.
Propagate data type to output: si se elige, el dato de salida conserva el
formato numrico. En caso contrario la salida ser siempre en punto
flotante doble precisin.
Translate into output port: permite determinar si el puerto de salida es de
testeo, o es un puerto de alto nivel en el diseo HDL.

B.9 Logical
El bloque Xilinx Logical realiza operaciones lgicas bit a bit, para 2,
3 o 4 nmeros en punto fijo. Los operandos pueden ser rellenados con
ceros si es necesario para hacer coincidir el punto binario. En tal
caso, se realiza la operacin lgica y se entrega el resultado en el
puerto de salida.
Logical function: especifica una de las siguientes operaciones lgicas a nivel de
bit: AND, NAND, OR, NOR, XOR o XNOR.
Number of inputs: determina el nmero de entradas (2 1024).
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Apndice B. Xilinx Blockset
150 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.
Precision: este parmetro permite especificar la precisin de salida. Puede ser
precisin completa (full) o una precisin determinada (user defined):
Full: el bloque utiliza la precisin suficiente para representar el resultado sin
error.
User defined: si no se precisa de precisin completa, esta opcin permite
especificar un nmero determinado de bits:
Output type: especificar si el valor es con signo (signed, 2s comp) o
sin signo (unsigned).
Number of bits: especifica el nmero de bits total del nmero en
punto fijo.
Binary point: especifica la posicin del punto binario.
Align binary point: especifica que el bloque debe alinear los puntos binarios
automticamente. En caso de que no sea as, todas las entradas deben presentar
la misma posicin para el punto binario.

B.10 MCode
El bloque Xilinx MCode se utiliza para alojar una funcin
implementada en MATLAB y ser ejecutada en Simulink. El
principal parmetro del bloque es el que especifica el nombre de la
funcin en lenguaje M. El bloque ejecuta el cdigo para calcular las
salidas durante la simulacin. Este cdigo se traduce directamente a
su equivalente en VHDL/Verilog cuando el lenguaje hardware es generado.
La interfaz del bloque en Simulink se deriva de la definicin de la funcin en
MATLAB. As, cada parmetro de la funcin se traduce en un puerto de entrada, y
cada valor que la funcin devuelva en un puerto de salida. Los nombres y el orden de
los puertos corresponde al nombre y al orden de los parmetros y de los valores
devueltos.
El bloque MCode soporta un subconjunto de lenguaje MATLAB que es muy til
para implementar funciones aritmticas, mquinas de estados finitos y lgica de
control. System Generator for DSP proporciona una serie de ejemplos de cdigo
MATLAB para funciones digitales.
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 151
B.11 Mult
El bloque Xilinx Mult implementa un multiplicador. Genera el
producto de los datos que se alojan en sus dos puertos de entrada,
ofreciendo el resultado en su puerto de salida.

Precision: este parmetro permite especificar la precisin de salida. Puede ser
precisin completa (full) o una precisin determinada (user defined):
Full: el bloque utiliza la precisin suficiente para representar el resultado sin
error.
User defined: si no se precisa de precisin completa, esta opcin permite
especificar un nmero determinado de bits:
Output type: especificar si el valor es con signo (signed, 2s comp) o
sin signo (unsigned).
Number of bits: especifica el nmero de bits total del nmero en
punto fijo.
Binary point: especifica la posicin del punto binario.
Quantization: permite elegir el mtodo de aproximacin: truncamiento (truncate)
o redondeo (round).
Overflow: permite elegir el mecanismo de respuesta frente a un desbordamiento.
De esta manera, se puede elegir entre: wrap, es decir, descartar los bits a la
izquierda del bit ms significativo; saturate, saturar a los valores mximo o
mnimo que permite la representacin numrica que se emplea; o flag as error,
notificar el desbordamiento como un error en Simulink.
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.
Use behavioral HDL (otherwise use core): el bloque es implementado
mediante una descripcin comportamental en HDL.
Apndice B. Xilinx Blockset
152 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Core parametres: si no se utiliza una descripcin comportamental en HDL, se
pueden especificar los siguientes parmetros:
Optimize for: Permite elegir si se desea optimizar el diseo para
velocidad (speed) o para rea (rea).
Use embedded multipliers: Este campo especifica que si es posible, se
usen slice XtremeDSP (multiplicador embebido DSP48).
Test for optimum pipelining: Comprueba si la latencia del bloque es al
menos igual a la longitud optima del pipeline. Los valores de latencia que
pasan esta prueba implican que el ncleo producido estar optimizado
para la velocidad.

B.12 Mux

El bloque Xilinx Mux implementa un multiplexor. El bloque presenta
un puerto de entrada como selector (punto fijo sin signo) y un nmero
configurable de buses de entrada de datos, de 2 a 32.

Number of inputs: determina el nmero de entradas que se desea, comprendido
entre 2 y 32.
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.
Precision: este parmetro permite especificar la precisin de salida. Puede ser
precisin completa (full) o una precisin determinada (user defined):
Full: el bloque utiliza la precisin suficiente para representar el resultado sin
error.
User defined: si no se precisa de precisin completa, esta opcin permite
especificar un nmero determinado de bits:
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 153
Output type: especificar si el valor es con signo (signed, 2s comp) o
sin signo (unsigned).
Number of bits: especifica el nmero de bits total del nmero en
punto fijo.
Binary point: especifica la posicin del punto binario.
Quantization: permite elegir el mtodo de aproximacin: truncamiento (truncate)
o redondeo (round).
Overflow: permite elegir el mecanismo de respuesta frente a un desbordamiento.
De esta manera, se puede elegir entre: wrap, es decir, descartar los bits a la
izquierda del bit ms significativo; saturate, saturar a los valores mximo o
mnimo que permite la representacin numrica que se emplea; o flag as error,
notificar el desbordamiento como un error en Simulink.

B.13 Pause Simulation
El bloque Xilinx Pause Simulation pausa la simulacin cuando la
entrada al bloque es distinta de cero. Este bloque acepta cualquier
tipo de seal como entrada.

B.14 ROM
El bloque Xilinx ROM es una memoria de solo lectura de un nico
puerto. Los valores se almacenan por palabras y todas las palabras
comparten el mismo tipo de aritmtica, ancho y posicin del punto
binario. Cada palabra est asociada con una direccin. Cada
direccin puede ser cualquier nmero en punto fijo sin signo desde 0 hasta d-1, donde
d es el nmero de palabras que puede alojar la ROM. El contenido inicial de la ROM
se especifica en un parmetro del bloque. ste tiene un puerto de entrada para la
direccin de memoria y un puerto de salida para los datos. El puerto de direccin
debe ser un entero en punto fijo sin signo. El bloque ofrece dos posibilidades para su
implementacin, usando bien memoria distribuida o bloques de memoria.
Depth: especifica el nmero de palabras almacenadas; debe ser un entero
positivo.
Apndice B. Xilinx Blockset
154 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
Initial value vector: especifica el valor inicial alojado en la ROM. Cuando el
vector es mayor que el nmero mximo de palabras almacenadas en la ROM, los
ltimos elementos se descartan. Cuando la capacidad de la ROM es mayor que la
longitud del vector, a las palabras vacas se les asocia un cero. El vector de valores
iniciales se satura o redondea de acuerdo con la precisin especificada para la
ROM.
Memory type: determina la implementacin del bloque: memoria distribuida
(distributed memory) o bloques de memoria (block RAM).
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Provide reset port for output register: permite acceso al puerto de
reset disponible en el registro de salida del bloque ROM.
Initial value for output register: especifica el valor inicial para
el registro de salida. El valor inicial est saturado y redondeado de
acuerdo con la precisin especificada para la ROM.
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.
Output type: especifica el tipo de dato de salida. Puede ser: booleano, punto fijo o
punto flotante.
Fixed-point: si se elige que el dato de salida sea punto fijo, entonces hay
que determinar:
Arithmetic type: especificar si el valor es con signo (signed, 2s
comp) o sin signo (unsigned).
Number of bits: especifica el nmero de bits total del nmero en
punto fijo.
Binary point: especifica la posicin del punto binario.
Floating-point: si se elige que el dato de salida sea punto flotante, hay
que determinar:
Floating-point precision: especificar la precisin del nmero
expresado en punto flotante. Elegir entre: precisin simple (single,
32 bits), precisin doble (double, 64 bits) y personalizada (custom,
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 155
determinar el ancho del campo exponente, exponent width, y el
ancho de la parte fraccional, fraction width).
Boolean.
Boolean.

B.15 Register
El bloque Xilinx Register modela un biestable (o flip flop) tipo D,
presentando una latencia de un ciclo de reloj. El bloque ofrece un
puerto de entrada para los datos y una entrada de reset opcional. El
valor inicial a la salida es especificado mediante un parmetro. Los
datos que se recogen en el puerto de entrada aparecern a la salida tras un ciclo de
reloj. Este bloque se diferencia del bloque Delay porque proporciona un puerto
opcional de reset y porque se puede especificar un valor inicial.
Initial value: especifica el valor inicial en el registro.
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Provide synchronous reset port: permite un puerto de entrada
opcional de reset (rst). Cuando la seal de reset se activa, el bloque vuelve
a su estado inicial. La seal de reset tiene preferencia sobre la seal
opcional para habilitar el bloque (enable).
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.

B.16 Reinterpret
El bloque Xilinx Reinterpret fuerza un nuevo tipo de salida sin tener
en cuenta el valor numrico representado por la entrada. La
representacin binaria se mantiene inalterada, es por ello, por lo que
este bloque no consume recursos hardware. El nmero de bits a la salida ser
siempre el mismo nmero de bits de la entrada.
Apndice B. Xilinx Blockset
156 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
El bloque permite que datos sin signo puedan ser interpretados como datos con
signo, o, viceversa. Tambin permite la reinterpretacin de la escala de los datos,
permitiendo cambiar de posicin el punto binario en una palabra.
Force arithmetic type: permite forzar el tipo de aritmtica de salida entre: sin
signo (unsigned), con signo (signed) o punto flotante (floating-point)
Force binary point: da la opcin de fijar el punto binario en una posicin
determinada. El valor debe ser un entero comprendido entre cero y el nmero de
bits de la entrada.

B.17 Single Port RAM
El bloque Xilinx Single Port RAM implementa un memoria de acceso
aleatorio con un puerto de salida y tres puertos de entrada para la
direccin, los datos y la seal de control para habilitar la escritura.
Los valores en la RAM son almacenados por palabras, y todas las
palabras tienen el mismo tipo de aritmtica, ancho y posicin del punto binario.
La RAM de un solo puerto puede ser implementada o bien por bloques de
memoria o bien por recursos de memoria distribuida en la FPGA. Cada palabra de
datos est asociada a una direccin determinada que no es ms que un entero sin
signo en el rango de 0 a d-1, donde d denota el nmero de palabras que puede
almacenar la RAM. El contenido inicial de la RAM puede ser especificado en los
parmetros del bloque.
La seal que habilita la escritura es un booleano, as, cuando el valor a la entrada
de este puerto es un 1, el dato en el puerto de entrada es escrito en la direccin de
memoria que se indica en el puerto de direccin. La salida durante una operacin de
escritura depende del modo de escritura elegido. As, ste puede configurarse como:
leer tras escribir (RAW, read after write), leer antes de escribir (RBW, read before
write) o no realizar lectura durante la escritura (no read on write). Sin embargo,
cuando la seal que habilita la escritura es un 0, o lo que es lo mismo, durante una
operacin de lectura en el puerto de salida aparece el valor correspondiente a la
ubicacin especificada por el puerto de direccin.
Depth: especifica el nmero de palabras almacenadas; debe ser un entero
positivo.
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 157
Initial value vector: especifica el valor inicial alojado en la RAM. Cuando el
vector es mayor que el nmero mximo de palabras almacenadas en la RAM, los
ltimos elementos se descartan. Cuando la capacidad de la RAM es mayor que la
longitud del vector, las palabras vacas son rellenadas con ceros. El vector de
valores iniciales se satura o redondea de acuerdo con la precisin especificada para
la RAM.
Write mode: especifica el comportamiento de la memoria durante el proceso de
escritura. Este puede ser: leer tras escribir (RAW), leer antes de escribir (RBW) o
no realizar lectura durante la escritura. RBW indica que el valor de la salida es el
valor de la memoria antes de la operacin de escritura. RAW, sin embargo, indica
que el valor de la salida refleja el estado de la memoria tras la operacin de
escritura. Por ltimo, puede configurarse que el valor de la salida se mantenga
inalterado independientemente de los cambios en la direccin o el estado de la
memoria.
Memory type: determina la implementacin del bloque: memoria distribuida
(distributed memory) o bloques de memoria (block RAM).
Optional ports: permite proporcionar puertos de entrada adicional para el
control del bloque:
Provide enable port: permite un puerto de entrada opcional para activar
el bloque (enable).
Provide reset port for output register: permite acceso al puerto de
reset disponible en el registro de salida del bloque RAM.
Initial value for output register: especifica el valor inicial para
el registro de salida. El valor inicial est saturado y redondeado de
acuerdo con la precisin especificada para la RAM.
Latency: permite especificar la latencia, es decir, el nmero de ciclos de retardo.

B.18 System Generator
El bloque System Generator sirve como panel de control para controlar
los parmetros del sistema y de la simulacin. Tambin se utiliza para
generar el cdigo o el netlist. Todos los modelos de Simulink deben de
contener al menos un bloque System Generator, para especificar como
Apndice B. Xilinx Blockset
158 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
debe generarse el cdigo y como debe realizarse la simulacin del mismo. Sus
parmetros principales son:
Compilation: especifica el tipo de resultado de compilacin que se produce
cuando se invoca el generador de cdigo (p.e., HDL netlist, bitstream, etc.).
Part: define la FPGA que se va a usar.
Synthesis tool: especifica la herramienta que se usa para sintetizar el diseo.
Las posibilidades son Synplify y Synplify Pro de Synplicity y XST de Xilinx.
Hardware description language: especifica el lenguaje HDL a usar para la
compilacin del diseo. Las posiblidades son VHDL y Verilog.
Target directory: define donde System Generator debe escribir los resultados de
compilacin.
Project type: seleccionar el tipo de archivo de proyecto que se va a generar, ya
sea Project Navigator o PlanAhead.
Synthesis strategy file: si se selecciona el tipo de archivo de proyecto
PlanAhead, hay que elegir una estrategia de sintetizacin predefinida, como por
ejemplo, AreaReduction o PowerOptimization.
Implementation strategy file: si se selecciona el tipo de archivo de proyecto
PlanAhead, hay que elegir una estrategia de implementacin predefinida, como
por ejemplo, MapTiming o MapCoverArea.
Create testbench: permite crear un banco de pruebas o testbench HDL. De esta
manera se puede simular el testbench en un simulador HDL y comparar dicha
simulacin con los resultados proporcionados por Simulink.
Create interface document: System Generator crea un documento HTM que
describe cmo ha sido generado el netlist.
FPGA clock period (ns): define el perodo del reloj del sistema en nanosegundos.
Clock pin location: define la ubicacin del pin del reloj hardware.
Multirate implementation: ofrece diferentes opciones para impulsar el diseo
multifrecuencia.
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 159
Simulink system period (sec): define el perodo en Simulink, en unidades de
segundo. El perodo de Simulink debe ser el mximo comn divisor de los periodos
de muestreo que aparecen en el modelo. Estos periodos de muestreo se establecen
de forma explcita en cada bloque o se heredan de acuerdo a las reglas de
propagacin de Simulink.
Block icon display: Especifica el tipo de informacin que se mostrar en cada
bloque del modelo tras completar la compilacin.

160 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 161



Apndice C

Programacin en MATLAB (II)

C.1 Mquina de estados finitos Control FSM
%Mqui na de est ados f i ni t os par a gener ar l as seal es de cont r ol par a l a
%conf i gur aci n de l a memor i a RAM.
%ENTRADAS
% - Cont r ol Count er : cont ador l i mi t ado de 0 a 24 y de f r ecuenci a de
% muest r eo 1.
%SALI DAS
% - RamEnabl e: seal de cont r ol par a habi l i t ar l a memor i a RAM.
% - Gener al Cont r ol : seal de cont r ol gener al .

f unct i on [ RamEnabl e, Gener al Cont r ol ] = Cont r ol FSM( Cont r ol Count er )
per si st ent st at e, st at e = xl _st at e( 0, {xl Unsi gned, 2, 0}) ;
swi t ch st at e
case 0
i f ( Cont r ol Count er == 22)
st at e = 2;
el se
st at e = 1;
end
Gener al Cont r ol = f al se;
RamEnabl e = t r ue;
case 1
Gener al Cont r ol = t r ue;
RamEnabl e = t r ue
st at e = 2;
case 2
i f ( Cont r ol Count er == 21 | | Cont r ol Count er == 24)
st at e = 0;
end
Gener al Cont r ol = f al se;
RamEnabl e = f al se;
ot her wi se
st at e = 0;
Gener al Cont r ol = f al se;
RamEnabl e = f al se;
end
Apndice D. Simulaciones adicionales
162 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
C.2 Mquina de estados finitos Control FSM2
%Mqui na de est ados f i ni t os par a gener ar seal es de cont r ol .
%ENTRADAS
% - Mai nCount er : cont ador l i mi t ado de 0 a 99 y de f r ecuenci a de
% muest r eo 25.
%SALI DAS
% - Sel ect MuxA: seal de cont r ol del mul t i pl exor encar gado de
% det er mi nar l a condi ci n i ni ci al .
% - Sel ect MuxAB: seal de cont r ol del mul t i pl exor encar gado de
% det er mi nar l a condi ci n f i nal .
% - Sel ect Out put : seal de cont r ol del mul t i pl exor encar gado de
% i dent i f i car l a zona a l a que per t enece una muest r a det er mi nada.
f unct i on [ Sel ect MuxA, Sel ect MuxB, Sel ect Out put ] = Cont r ol FSM2( Mai nCount er )
per si st ent st at e, st at e = xl _st at e( 0, {xl Unsi gned, 1, 0}) ;
swi t ch st at e
case 0
i f Mai nCount er == 99
Sel ect Out put = f al se;
Sel ect MuxA = f al se;
Sel ect MuxB = t r ue;
el se
i f Mai nCount er == 0
Sel ect Out put = f al se;
Sel ect MuxA = t r ue;
Sel ect MuxB = f al se;
el se
i f Mai nCount er == 20
st at e = 1;
Sel ect Out put = t r ue;
Sel ect MuxA = f al se;
Sel ect MuxB = f al se;
el se
Sel ect Out put = f al se;
Sel ect MuxA = f al se;
Sel ect MuxB = f al se;
end
end
end
case 1
i f Mai nCount er == 80
st at e = 0;
Sel ect Out put = f al se;
Sel ect MuxA = f al se;
Sel ect MuxB = f al se;
el se
Sel ect Out put = t r ue;
Sel ect MuxA = f al se;
Sel ect MuxB = f al se;
end
ot her wi se
st at e = 0;
Sel ect Out put = f al se;
Sel ect MuxA = f al se;
Sel ect MuxB = f al se;
end
Apndice B. Xilinx Blockset
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 163
C.3 Mquina de estados finitos PauseFSM
%Mqui na de est ados par a det ener el mt odo i t er at i vo.
%ENTRADAS
% - count er : cont ador l i mi t ado de 1 a 2500 y de f r ecuenci a de
% muest r eo 1.
% - t hr eshol d: val or const ant e del umbr al de er r or .
% - er r or : er r or absol ut o de una muest r a det er mi nada.
%SALI DAS
% - st op: 0 mi ent r as count er no l l egue a 2497 cumpl i endose
% l a condi ci n i mpuest a por el umbr al . En caso cont r ar i o, 1.

f unct i on st op = PauseFSM( er r or , t hr eshol d, count er )
per si st ent st at e, st at e = xl _st at e( 0, {xl Unsi gned, 2, 0}) ;
swi t ch st at e
case 0
i f er r or <t hr eshol d && er r or >- t hr eshol d && count er == 1
st at e = 1;
end
st op = f al se;
case 1
i f er r or >t hr eshol d | | er r or <- t hr eshol d
st at e = 0;
el se
i f count er == 2497;
st at e = 2;
end
end
st op = f al se;
case 2
st op = t r ue;
ot her wi se
st at e = 0;
st op = f al se;
end









Apndice D. Simulaciones adicionales
164 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
C.4 Mquina de estados finitos StartFSM
%Mqui na de est ados Meal y par a i ni ci ar / det ener l a ej ecuci n
%ENTRADAS
% - st ar t : bi t que i ni ci a l a ej ecuci n ( st op debe est ar a 0) .
% - st op: bi t que det i ene l a ej ecuci n ( i ndependi ent ement e de st ar t ) .
%SALI DAS
% - enabl e: 1 si el si st ema est en ej ecuci n, 0 si se encuent r a
% det eni do.

f unct i on enabl e = St ar t FSM( st op, st ar t )
per si st ent st at e, st at e = xl _st at e( 0, {xl Unsi gned, 1, 0}) ;
swi t ch st at e
case 0
i f ( st ar t == t r ue && st op == f al se)
st at e = 1;
end
enabl e = f al se;
case 1
i f ( st ar t == f al se | | st op == t r ue)
st at e = 0;
end
enabl e = t r ue;
ot her wi se
st at e = 0;
enabl e = f al se;

Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 165



Bibliografa

[BGBG95] X. Baie, J .P. Colinge, V. Bayot, and E. Grivei. Quantum-wire effects in
thin and narrow soi mosfets. I n Proceedings of the IEEE I nternational
SOI Conference 1995, pages 66-67, Tucson, 1995.
[Bru95] M. Bruel. Silicon on insulator material technology. Elec. Lett.,
31(14):1201-1202, J uly 1995.
[CC03] G.K. Celler and S. Cristoloveanu. Frontiers of silicon-on-insulator. J .
Appl. Phys., 93(9):4955-4978, May 2003.
[Col04] J .P. Collinge. Silicon-On-Insulator Technology: Materials to VLSI.
Kluwer Academic Press, Boston, 3
rd
edition, 2004.
[Gam03] F. Gmiz. Tecnologa y dispositivos de silicio sobre aislante: presente y
futuro. February 2003.
[GF01] F.J . Gmiz and M.V. Fischetti. Monte carlo simulation of double-gate
silicon-on-insulator inversion layers: The role of volume inversion. J .
Appl. Phys., 89(10):5478-5487, May 2001.
[GGR
+
08] F. Gmiz, A. Godoy, A. Roldn, C. Sampedro, J .A. J imnez, J .B.
Roldn, J .E. Carceller, F. J imnez, P. Cartujo. Nuevas tecnologas en
los dispositivos electrnicos. 2008.
[I DA78] K. I zumi, M. Doken, and H. Ariyoshi. C.M.O.S. devices fabricated on
buried SiO2 layers formed by oxygen implantation into silicon.
Electronics Letters, 14:593-+, August 1978.
[I mt06] G. I mthurn. The history of Silicon-on-Sapphire. 2006.
[I TR11] I TRS. I nternational roadmap for the semiconductor industry, 2011.
Bibliografa
166 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI
[J aj04] V. J aju. Silicon-on-Insulator Technology. Spring 2004.
[Kah97] W. Kahan. I EEE Standard 754 for Binary Floating-Point Arithmetic.
Lecture notes. October 1997.
[Kil76] J .S. Kilby. Invention of the integrated circuit. I EEE Trans. Elec. Dev.,
23(7):648, 1976.
[Koo10] J . Koomey, S. Berard, M. Sanchez, H. Wong. I mplications of Historical
Trends in the Electrical Efficiency of Computing. Annals of the
History of Computing, I EEE, 33(3):46-54, March 2010.
[Llo10] V. Llombart. Ampliacin de estructura de computadores. 2010.
[LZ06] S. Luryi and A. Zaslavsky. Non-classic soi devices: Genuine or
copyright from iii-vs? I n Proceedings of EUROSOI 2006, Grenoble,
2006.
[Moo65] G. Moore. Cramming more components onto integrated circuits.
Electronics, 38(8), April 1965.
[MTOB11] Z. Milln, L. de la Torre, L. Oliva, M.C. Berenguer. Simulacin
numrica. Ecuacin de Poisson. August 2011.
[Nar03] F.B. Naranjo. Crecimiento, fabricacin y caracterizacin de diodos
electroluminiscentes basados en pozos cunticos de InGaN. 2003
[Noy77] R.N. Noyce. Large-scale integration What is yet to come. Science,
195:1102-1106, March 1977.
[NTH
+
94] Y. Nakajima, T. Takahashi, S. Horiguchi, K. Iwadate, H. Namatsu, K.
Kurihara, and M. Tabe. Fabrication of a silicon quantum wire
surrounded by silicon dioxide and its transport properties. App. Phys.
Lett., 65(22):1102-1106, November 1994.
[Rav94] U. Ravaioli. Advanced theory of semiconductors and semiconductors
devices numerical methods and simulation. Course notes, 1994.
[Ric10] S. Rico. Desarrollo de un coprocesador en punto fijo para la resolucin
de la ecuacin de Poisson en estructuras SOI orientado a grid
computing. Universidad de Granada. 2010.
Bibliografa
Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI 167
[Sam06] C. Sampedro. Estudio, caracterizacin y simulacin de transistores con
modulacin de la velocidad en silicio. November 2006.
[San07] H.Y. Snchez. Clustering y grid computing. September 2007.
[Sel84] S. Selberherr. Analysis and Simulation of Semiconductor Devices.
Springer-Verlag, Wien, 1984.
[SH84] T. Sekigawa and Y. Hayashi. Calculated threshold-voltage
characteristics of an xmos transistor having an additional bottom
gate. Solid-State Electronics, 27(8-9):827-828, 1984.
[Usu97] A.Usul, H. Sunakawa, A. Sakal, y A.A. Yamaguchi, J pn. J . Appl.
Phys. 36, L899. 1997.
[Web00] http://en.wikipedia.org/wiki/Silicon_on_insulator
[Web01] http://es.wikipedia.org/wiki/Field_Programmable_Gate_Array
[Web02] http://es.wikipedia.org/wiki/Utility_computing


168 Desarrollo de un coprocesador para la resolucin de la ecuacin de Poisson 1D en estructuras SOI

You might also like