OpenCores
URL https://opencores.org/ocsvn/phr/phr/trunk

Subversion Repositories phr

[/] [phr/] [trunk/] [doc/] [informe-tesis/] [phd-thesis-template-master/] [Chapter2/] [chapter2.tex] - Blame information for rev 304

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 216 guanucolui
%*****************************************************************************************
2 125 guanucolui
%*********************************** Second Chapter **************************************
3
%*****************************************************************************************
4
 
5 299 guanucolui
\chapter{Conceptos Teóricos}
6
\label{chap:conceptos-teo}
7 125 guanucolui
 
8
\ifpdf
9
    \graphicspath{{Chapter2/Figs/Raster/}{Chapter2/Figs/PDF/}{Chapter2/Figs/}}
10
\else
11
    \graphicspath{{Chapter2/Figs/Vector/}{Chapter2/Figs/}}
12
\fi
13
 
14 208 guanucolui
%La \emph{electrónica} ha revolucionado del siglo XX y sigue siendo un impacto en el siglo XXI. El nacimiento y subsecuente crecimiento de la industria de la computación, la creación del teléfono móvil y la \emph{digitalización} de los servicios de televisión y radio son ejemplos de grandes logros tecnológicos que la electrónica ha ofrecido. En las décadas de 1970 y 1980, los sistemas electrónicos se encontraban compuestos de componentes estándares como microprocesadores y varios circuitos integrados (\textsl{Integrated Circuits}, ICs), todo esto sobre una placa de circuitos impresos (\textsl{Print Circuit Boards}, PCBs. Como el nivel de integración creció, el proceso de fabricación de los PCBs se convirtió cada vez más complejo. Esto se debió al incremento de transistores y pines de entrada/salida que implicó el uso de placas multi-capas, logrando desarrollar placas con hasta 20 capas. Así, la probabilidad de conexiones de componentes en forma incorrecta aumentó, particularmente la posibilidad de diseñar con éxitos y probar un sistema en forma funcional antes de ingresar a un proceso de producción.
15
 
16 127 guanucolui
\section{Dispositivos Lógicos Programables}
17 208 guanucolui
\label{sec:fund-pld}
18 125 guanucolui
 
19 302 guanucolui
Los \emph{Dispositivos Lógicos Programables} (PLDs) fueron introducidos a medidos de 1970s. La idea era construir circuitos lógicos combinacionales que fueran \emph{programables}. Contrariamente a los microprocesadores, los cuales pueden \emph{correr} un programa sobre un hardware \emph{fijo}, la programabilidad de los PLDs hace referencia a niveles de \emph{hardware}. En otras palabras, un PLD es un chip de \emph{propósitos generales} cuyo \emph{hardware} puede ser reconfigurado dependiendo de especificaciones particulares del programador\cite{RefPLDs1}.
20 125 guanucolui
 
21 128 guanucolui
EL primer PLD se llamaba PAL (\textsl{Programmable Array Logic}). Estos dispositivos disponían solo de compuertas lógicas (no tenían flip-flop), por lo que solo permitía la implementación de circuitos \emph{combinacionales}. Para salvar este problema, Los \emph{\textsl{registered}} PLDs  fueron lanzados pocos después, los cuales incluían un flip-flop por cada salida del circuito. Con esta versión de los PAL, se podría implementar funciones \emph{secuenciales} simples.
22 125 guanucolui
 
23 128 guanucolui
En el comienzo de 1980s, se agregaba más circuitos lógicos adicionales a la salida  de los PLD. Este circuito de salida se lo identificaba como celda, llamado también \emph{Microcelda}, que contenía (además de flip-flop) compuertas lógicas y multiplexores. Por otra parte, la celda era reprogramable, permitiendo varios modos de operación. Además, se podía proveer una señal de retorno (\textsl{feedback}) desde la salida del circuito a la lógico principal de la PAL, lo que le daba mayor flexibilidad a estos dispositivos reprogramables. Esta nueva estructura era llamada \emph{\textsl{generic PAL}} o GAL. Una arquitectura de dispositivo similar fue conocido como PALCE (\textsl{PAL CMOS Electrically erasable/programmable}).
24
 
25
Todos estos chips (PAL, \textsl{registered} PLD, y GAL/PALCE) son ahora categorizados como SPLDs (\textsl{Simple} PLDs). Los dispositivos  GAL/PALCE son los únicos fabricados aún en una encapsulado independiente.
26
 
27
Luego, varios dispositivos GAL fueron fabricados en un solo chip, usando un esquema de direccionamiento más sofisticado, mayor tecnología en su fabricación, y varias características adicionales (como soporte JTAG e interfaces para varios estándares lógicos). Esta nueva propuesta se la conoció como CPLD (\textsl{Complex} PLD). Los CPLDs son actualmente muy populares debido a su alta densidad, funcionalidad, y bajo costo.
28
 
29
Finalmente, a mediados de 1980s, las FPGA (\textsl{Field Programmable Gate Array}) fueron introducidos al mercado de los IC. Las FPGAs diferían de los CPLDs en su arquitectura. tecnología, recursos internos, y costo. Estos dispositivos tenían como principal objetivo su implementación en diseños de gran requerimientos en recursos de hardware como así también un alto rendimiento.
30
 
31
Un pequeño resumen de los diferentes dispositivos PLDs se puede observar en la Tabla \ref{tab:evo-plds}.
32
 
33
\begin{table}[h]
34 127 guanucolui
  \centering
35 208 guanucolui
  \begin{tabular}[h]{|c|ll|}
36 128 guanucolui
    \hline
37
    \multirow{5}{*}{PLDs} & \multirow{3}{*}{Sample PLD (SPLD)} & \multicolumn{1}{|l|}{PAL} \\
38 208 guanucolui
                          &                                    & \multicolumn{1}{|l|}{Registered PAL} \\
39
                          &                                    & \multicolumn{1}{|l|}{GAL} \\ \cline{2-3}
40
                          & Complex PLD (CPLD)                 &                           \\ \cline{2-3}
41
                          & FPGA                               &                           \\
42 128 guanucolui
    \hline
43
  \end{tabular}
44 208 guanucolui
  \caption{Evolución de los PLDs.}
45 128 guanucolui
  \label{tab:evo-plds}
46
\end{table}
47 125 guanucolui
 
48 128 guanucolui
Por último, todos los PLDs (\textsl{simple} o \textsl{complex}) son no volátiles. Estos puede ser OTP (\textsl{One-Time Programmable}), en la que pequeños fusibles electrónicos son usados para la reprogramación, de igual forma que las EEPROM o memorias Flash. Las FPGAs, por otra lado, son en su mayoría volátiles. Para estas últimas se deben usar dispositivos externos para cargar las conexiones.
49 125 guanucolui
 
50 208 guanucolui
%Actualmente los dispositivos más utilizados son los CPLDs y FPGAs. De estas dos tecnología, se optó por trabajar con las FPGAs pues, como bien se dijo antes, cuentan con mayor recursos de \textsl{hardware} que los CPLDs. Lo que permitirá dar un mayor margen a los desarrollos digitales que se quieran implementar. Se detallará con mayor profundidad la tecnología y estructura de las FPGAs.
51 125 guanucolui
 
52 208 guanucolui
\section{SPLDs}
53
\label{sec:fund-pld-spld}
54 127 guanucolui
 
55 208 guanucolui
Como se mencionó anteriormente, los dispositivos  PAL, PLA y GAL se clasifican como los \textsl{Simple} PLD (SPLDs). Una descripción de las arquitecturas de cada uno de estos dispositivos se presenta a continuación.
56
 
57
\subsection{PALs}
58
\label{sec:fund-pld-spld-pal}
59
 
60
Los \textsl{Programmable Array Logic} (PAL) son introducidos por Monolithic Memories Inc. a mediados de 1970. Su arquitectura básica se ilustra en la Figura \ref{fig:pal-arch}, donde se representa con un pequeño círculo las conexiones programables. Como puede verse, el  circuito esta compuesto de un arreglo de compuertas AND \emph{programables}, seguido por un arreglo \emph{fijo} de compuertas OR.
61
 
62
La implementación de la Figura \ref{fig:pal-arch} se basa en que cualquier función combinacional puede ser representada como una Suma de Productos (SOP); es decir, si $a_1$, $a_2$, $\cdots$, $a_N$ son las entradas lógicas, entonces cualquier salida combinacional $x$ puede ser compuesta como
63
\begin{equation}
64
  \label{eq:sop}
65
  x = m_1 + m_2 + \cdots + m_M \text{ ,}
66
\end{equation}
67
donde $m_i = f_1\left(a_1,a_2,\cdots,a_N\right)$ son los términos mínimos de la función $x$. Por ejemplo
68
\begin{equation}
69
  \label{eq:sop-2}
70
  x = a_1\bar{a}_2 + a_2a_3\bar{a}_4 + \bar{a}_1\bar{a}_2a_3a_4\bar{a}_5
71
\end{equation}
72
 
73
Por lo tanto, el producto (términos mínimos) puede ser obtenido por medio de las compuertas AND, cuya salidas están conectadas a una compuerta OR para calcular su suma.
74
 
75
\begin{figure}
76
  \centering
77
  \includegraphics[width=0.5\textwidth]{PAL}
78
  \caption{Arquitectura básica de una PAL.}
79
  \label{fig:pal-arch}
80
\end{figure}
81
 
82
La principal limitación de esta arquitectura es el hecho de que solo permite la implementación de funciones combinacionales solamente. Para solucionar este problema, las \textsl{registered} PALs fueron lanzadas a fines de la década de 1970s. Estas incluían un flip-flop en cada salida (luego de la compuerta OR en la Figura \ref{fig:pal-arch}), de esta manera permitió la implementación de funciones secuenciales (aunque muy simples).
83
 
84
La primeras tecnologías empleadas en la fabricación de los dispositivos PALs fue bipolar, con una tensión de alimentación de 5V y un consumo de corriente al rededor de 200mA. La máxima frecuencia rondaba los 100Mhz, y las celdas programables eran de PROM (\textsl{fuse links}) o EPROM (con un tiemp de borrado de 20min. UV).
85
 
86
\subsection{PLAs}
87
\label{sec:fund-pld-spld-pla}
88
 
89
Los PLA (\textsl{Programmable Logic Array}) fueron introducidos a mediados de 1970s (por Signetics Inc.). La arquitectura básica de un PLA se ilustra simbólicamente en la Figura \ref{fig:pla-arch}. Si comparamos esta arquitectura con la Figura \ref{fig:pal-arch}, se observa que la única diferencia fundamental entre estos es que mientras una PAL tiene compuertas AND programables y otras compuertas OR fijas, en el caso de las PLA \emph{ambas} (las compuertas AND y OR) son programables. De esta manera se logra una ventaja en la flexibilidad del diseño. Sin embargo, se presentan elevados tiempos de retardos en los nodos de conexión internos que reducen la velocidad de funcionamiento del circuito.
90
 
91
\begin{figure}
92
  \centering
93 216 guanucolui
  \includegraphics[width=0.5\textwidth]{PLA}
94 208 guanucolui
  \caption{Arquitectura básica de una PLA.}
95
  \label{fig:pla-arch}
96
\end{figure}
97
 
98
La tecnología que se empleó en la fabricación de las PLAs fue la misma que en el caso de las PALs. Aunque las PLAs se encuentran obsoletas actualmente, estos han reaparecido como parte de las arquitecturas de las primeras familias de los CPLDs de baja potencia, como por ejemplo la familia de los \emph{CoolRunner} (de Xilinx Inc.).
99
 
100
\subsection{GALs}
101
\label{sec:fund-pld-spld-gal}
102
 
103
La arquitectura de las GAL (\textsl{Generic} PAL) fueron introducidas por Lattice Inc. en los comienzos de 1980s. Este contenía varias mejoras sobre los primeros dispositivos PALs:
104
\begin{enumerate}
105
\item Se construyeron sealidas más sofisticadas de las celdas (\emph{Macrocell}), las que incluían, además de flip-flop, varias compuertas y multiplexores.
106
\item Las Macrocell eran programables, permitiendo varios modos de operación.
107
\item Una señal de ``retorno'' desde la salida a la Marocell al arreglo reprogramable se incluyó, confiriendo al circuito mayor versatilidad.
108
\item Se utilizaron EEPROM en lugar de la PROM o EPROM.
109
\end{enumerate}
110
Como se mencionó, la GAL es el único SPLD que todavía es fabricado en un encapsulado estándar. Además, éste también sirvió como parte en la construcción de la mayoría de los CPLDs.
111
 
112
La Figura \ref{fig:gal-arch} muestra un ejemplo de un dispositivo GAL, el GAL16V8. Este circuito cuenta con 16 entradas y 8 salidas, en un \textsl{package} de 20 pines. En cada salida hay una Macrocell (luego de la compuerta OR), que contiene, además del flip-flop, compuertas lógicas y multiplexores. Las interconexiones programables son representadas por pequeños círculos. Una señal de realimentación desde la Macrocell al arreglo programable puede también ser observado. Notar que esta arquitectura se asemeja directamente a la de la PAL (Figura \ref{fig:pal-arch}), excepto por la presencia de una macrocell en cada salida y la señal de realimentación.
113
 
114
\begin{figure}
115
  \centering
116
  \includegraphics[width=0.9\textwidth]{GAL}
117
  \caption{Dispositivo GAL 16V8.}
118
  \label{fig:gal-arch}
119
\end{figure}
120
 
121
Actualmente los dispositivos GALs usan tecnología CMOS, alimentados a 3.3V, tecnología EEPROM o Flash, y alcanzan frecuencias máximas que rondan los 250Mhz. Varias compañías fabrican estos dispositivos (Lattice, Atmel, Texas Instruments, etc.).
122
 
123
\section{CPLDs}
124
\label{sec:fund-pld-cpld}
125
 
126
La estructura fundamental en la arquitectura de los CPLDs se ilustra en la Figura \ref{fig:cpld-arch}. Como se puede ver, este consiste en varios PLDs (en general del tipo GAL) con una matriz de \textsl{switches} programables usadas para conectarlos todos juntos a al bloque de entrada y salida. Además, los CPLDs contiene normalmente otras características, como soporte JTAG e interfaz a otros estándares lógicos (1.8V, 2.5V, 5V, etc.).
127
 
128
\begin{figure}
129
  \centering
130
  \includegraphics[width=0.4\textwidth]{CPLD}
131
  \caption{Arquitectura básica de un CPLD.}
132
  \label{fig:cpld-arch}
133
\end{figure}
134
 
135
Son varias las compañías que fabrican CPLDs, entre las más reconocidas tenemos Xilinx, Altera, Lattice, Atmel, Cypress, etc. En las Tablas \ref{tab:char-cpld-xilinx} y \ref{tab:char-cpld-altera} se disponen de las características de dos CPLDs, Xilinx y Altera. Como puede verse, más ade 500 Macrocells y más de 10000 compuertas pueden encontrarse en estos dispositivos.
136
 
137
\begin{table}%[h]
138
  \centering
139
  {\footnotesize
140
    \begin{tabular}[c]{|m{0.2\textwidth}|m{0.2\textwidth}|m{0.2\textwidth}|m{0.2\textwidth}|}%{|l|l|l|l|}
141
      \hline
142
      Familia & \textbf{XC9500 (XVm, XL)} & \textbf{CoolRunner XPLA3} & \textbf{CoolRunner II} \\
143
      \hline
144
      Macrocell & 36 -- 288 & 32 -- 512 & 32 -- 512 \\
145
      \hline
146
      \textsl{System gates} & 800 -- 6,400 & 750 -- 12,000 & 750 -- 12,000 \\
147
      \hline
148
      Pines I/O & 34 --192 & 36 -- 260 & 33 -- 270 \\
149
      \hline
150
      Frec. máxima interna & 222 Mhz & 213 Mhz & 350 Mhz \\
151
      \hline
152
      \multirow{2}{*}{\textsl{Building Block}} & GAL 54V18 (XV, XL) & Bloques PLA & Bloques PLA \\
153
      & GAL 36V18 (--) & & \\
154
      \hline
155
      Voltaje & 2.5 V (XV), 3.3 V (XL), 5 V & 3.3 V & 1.8 V \\
156
      \hline
157
      Interconexiones & Flash & EEPROM & \\
158
      \hline
159
      Tecnología & 0.35 $\mu$ CMOS & 0.35 $\mu$ CMOS & 0.18 $\mu$ CMOS \\
160
      \hline
161
      Corriente estática & 11 -- 500 mA & < 0.1 mA & 22 $\mu$A -- 1 mA \\
162
      \hline
163
    \end{tabular}
164
  } % END \footnotesize{} segmentation
165
  \caption{Características de los CPLDs de Xilinx.}
166
  \label{tab:char-cpld-xilinx}
167
\end{table}
168
 
169
\begin{table}%[h]
170
  \centering
171
  {\footnotesize
172
    \begin{tabular}[c]{|m{0.2\textwidth}|m{0.2\textwidth}|m{0.2\textwidth}|m{0.2\textwidth}|}%{|l|l|l|l|}
173
      \hline
174
      Familia & \textbf{MAX7000 (B, AE, S)} & \textbf{MAX3000 (A)} & \textbf{MAX II (G)} \\
175
      \hline
176
      \multirow{2}{*}{Macrocell /} & 32 -- 512 macrocells & 32 -- 512 macrocells & 192 -- 1,700 macrocells \\
177
      LUTs & & & 240 -- 2,210 LUTs \\
178
      \hline
179
      \textsl{System gates} & 600 -- 10,000 & 600 -- 10,000 & \\
180
      \hline
181
      Pines I/O & 32 --512 & 34 -- 208 & 80 -- 272 \\
182
      \hline
183
      Frec. máxima interna & 303 Mhz & 227 Mhz & 304 Mhz \\
184
      \hline
185
      Voltaje & 2.5 V (B), 3.3 V (AE), 5 V (S) & 3.3 V & 1.8 V (G), 2.5 V, 3.3 V \\
186
      \hline
187
      Interconexiones & EEPROM & EEPROM & Flash + SRAM \\
188
      \hline
189
      \multirow{2}{*}{Tecnología} & 0.22 $\mu$ CMOS EEPROM & 0.3 $\mu$ & 0.18 $\mu$ \\
190
      & 4 capas de metal (7000 B) & 4 capas de metal & 6 capas de metal \\
191
      \hline
192
      Corriente estática & 9 -- 450 mA & 9 -- 150 mA & 2 --50 mA \\
193
      \hline
194
    \end{tabular}
195
  } % END \footnotesize{} segmentation
196
  \caption{Características de los CPLDs de Altera.}
197
  \label{tab:char-cpld-altera}
198
\end{table}
199
 
200
\section{FPGAs}
201
\label{sec:fund-pld-fpga}
202
 
203 128 guanucolui
Las FPGAs fueron introducidas al mercado por la empresa Xilinx Inc. a mediados de 1980s. Estos dispositivos se diferencian de los CPLDs en su arquitectura, tecnología de almacenamiento, funcionalidades integradas, y costo, y además están orientadas a la implementación de altos rendimientos y grandes tamaños en lo que se refiere a recursos de hardware.
204 127 guanucolui
 
205 128 guanucolui
La arquitectura básica de una FPGA se ilustra en la Figura \ref{fig:fpga-arch}. Esta consiste de una matriz de \emph{CLBs} (\textsl{Configurable Logic Blocks}), interconectados por un arreglo de matrices de conmutadores (\emph{\textsl{Switch Matrix}}). Para caracterizar con más detalle estos dispositivo se debe recurrir a la información de los fabricantes, donde además se puede disponer de un interfaz JTAG a diversos niveles lógicos, otra funcionalidad como memorias SRAM, multiplicadores de clock (PLL o DLL), interfaz PCI, etc. Algunos chips también incluyen bloques dedicados como multiplicadores, DPSs, y microprocesadores.
206 127 guanucolui
 
207 128 guanucolui
\begin{figure}
208
  \centering
209
  \includegraphics[width=0.4\textwidth]{fpga_arch}
210 208 guanucolui
  \caption{Arquitectura básica de una FPGA.}
211 128 guanucolui
  \label{fig:fpga-arch}
212
\end{figure}
213 127 guanucolui
 
214 128 guanucolui
Las FPGAs puede ser muy sofisticadas. La fabricación de chips con una tecnología CMOS de 90 nm., con nueve capas ed cobre y mas de 1000 pines de I/O, se encuentran actualmente disponible en el mercado. Algunos ejemplos de los empaquetados (\textsl{package}) de las FPGAs son ilustrados en la Figura \ref{fig:pkg-fpga}, en los cuales se puede apreciar uno de los \textsl{package} más pequeños (Fig. \ref{fig:pgk-fpga-vq100}) con 100 pines, un \textsl{package} de tamaño mediano (Fig. \ref{fig:pgk-fpga-csg324}) de 324 pines, y uno de los grandes \textsl{package} con 1156 pines (Fig. \ref{fig:pgk-fpga-ffg1156}.
215 127 guanucolui
 
216 128 guanucolui
\begin{figure}
217
  \centering
218
  \subfloat[\footnotesize{\textsl{Package} VQ100}]{\label{fig:pgk-fpga-vq100}\includegraphics[width=0.25\textwidth]{pkg100}}
219
  \qquad
220
  \subfloat[\footnotesize{\textsl{Package} CSG324}]{\label{fig:pgk-fpga-csg324}\includegraphics[width=0.25\textwidth]{pkg356}}
221
 \qquad
222
  \subfloat[\footnotesize{\textsl{Package} FFG1156}]{\label{fig:pgk-fpga-ffg1156}\includegraphics[width=0.25\textwidth]{pkg1156}}
223
  \caption{Diferentes \textsl{package} de las FPGAs comerciales.}
224
  \label{fig:pkg-fpga}
225 125 guanucolui
\end{figure}
226
 
227 208 guanucolui
Varias compañías fabrican FPGAs, como Xilinx., Actel, Altera, QuickLogic, Atmel, etc. Ejemplo de dos fabricantes (Xilinx y Actel) se disponen en las Tablas \ref{tab:char-fpga-xilinx} y \ref{tab:char-fpga-actel}. Como puede verse, estos dispositivos pueden contener miles de flip-flops y varios millones de compuertas lógicas.
228 125 guanucolui
 
229 208 guanucolui
\begin{table}%[h]
230 128 guanucolui
  \centering
231
  {\footnotesize
232
    \begin{tabular}[c]{|m{0.1\textwidth}|m{0.1\textwidth}|m{0.1\textwidth}|m{0.1\textwidth}|m{0.1\textwidth}|m{0.1\textwidth}|m{0.1\textwidth}|m{0.1\textwidth}|}
233
      \hline
234 208 guanucolui
      Familia & \textbf{Virtex II Pro} & \textbf{Virtex II} & \textbf{Virtex E} & \textbf{Virtex} & \textbf{Spartan 3} & \textbf{Spartan IIE} & \textbf{Spartan II} \\
235 128 guanucolui
      \hline
236
      CLBs & 352 -- 11.024 & 64 -- 11.648 & 384 -- 16.224 & 384 -- 6.144 & 192 -- 8.320 & 384 -- 3.456 & 96 -- 1.176 \\
237
      \hline
238
      Celdas Lógicas & 3.168 -- 125.136 & 576 -- 104.882 & 1.728 -- 73.008 & 1.728 -- 27.648 & 1.728 -- 74.880 & 1.728 -- 15.552 & 432 -- 5.292 \\
239
      \hline
240
      \textsl{System gates} &  & 40k -- 8M & 72k -- 4M &  58k -- 1.1M & 50k -- 5M &  23k -- 600k & 15k -- 200k \\
241
      \hline
242
      Pines de I/O & 204 -- 1200 & 88 -- 1108 & 176 -- 804 & 180 -- 512 &  124 -- 784 & 182 -- 514 & 86 -- 284 \\
243
      \hline
244
      Flip-flops & 2.816 -- 88.192 & 512 -- 93.184 & 1.392 -- 64.896 & 1.392 -- 24.576 & 1.536 -- 66.560 & 1.536 -- 13.824 & 384 -- 4.704 \\
245
      \hline
246
      Frec. máxima interna & 547 MHz &  420 MHz &  240 MHz & 200 MHz &  326 MHz & 200 MHz & 200 MHz \\
247
      \hline
248
      Voltaje & 1.5 V & 1.5 V & 1.8 V & 2.5 V & 1.2 V & 1.8 V & 2.5 V \\
249
      \hline
250
      Inter\-conexiones & SRAM &  SRAM &  SRAM &  SRAM &  SRAM &  SRAM &  SRAM \\
251
      \hline
252
      \multirow{3}{*}{Tecnología} & 0.13 $\mu$m & .15 $\mu$m & 0.18 $\mu$m & 0.22 $\mu$m & 0.09 $\mu$m & & \\
253
      & 9 capas de cobre & 8 capas de metal & 6 capas de metal & 5 capas de metal & 8 capas de metal & & \\
254
      & CMOS & CMOS & CMOS & CMOS &CMOS & & \\
255
      \hline
256
      SRAM bits (Bloques de RAM) & 216k -- 8M & 72k -- 3M & 64k -- 832k & 32k -- 128k & 72k -- 1.8M & 32k -- 288k & 16k -- 56k \\
257
      \hline
258
    \end{tabular}
259
  } % END \footnotesize{} segmentation
260
  \caption{Características de FPGAs fabricadas por Xilinx.}
261 208 guanucolui
  \label{tab:char-fpga-xilinx}
262 128 guanucolui
\end{table}
263 125 guanucolui
 
264 208 guanucolui
\begin{table}%[h]
265 128 guanucolui
  \centering
266
  {\footnotesize
267
    \begin{tabular}[c]{|m{0.13\textwidth}|m{0.13\textwidth}|m{0.13\textwidth}|m{0.13\textwidth}|m{0.13\textwidth}|m{0.13\textwidth}|}
268
      \hline
269 208 guanucolui
      Familia & \textbf{Accelerator} & \textbf{ProASIC} & \textbf{MX} & \textbf{SX} & \textbf{eX} \\
270 128 guanucolui
      \hline
271
      Módulos lógicos & 2.016 -- 32.256 & 5.376 -- 56.320 & 295 -- 2.438 & 768 -- 6.036 & 192 -- 768 \\
272
      \hline
273
      \textsl{System gates} & 125k -- 2M & 75k -- 1M & 3k -- 54k & 12k -- 108k & 3k -- 12k \\
274
      \hline
275
      Pines de I/O & 168 -- 684 & 204 -- 712 &  57 -- 202 &  130 -- 360 & 84 -- 132 \\
276
      \hline
277
      Flip-flops & 1.344 -- 21.504 & 5.376 -- 26.880 & 147 -- 1.822 & 512 -- 4.024 & 128 -- 512 \\
278
      \hline
279
      Frec. máxima interna & 500 MHz &  250 MHz &  250 MHz & 350 MHz &  350 MHz \\
280
      \hline
281
      Voltaje & 1.5 V & 2.5 V, 3.3 V & 3.3 V, 5 V & 2.5 V, 3.3 V, 5 V & 2.5 V, 3.3 V, 5 V \\
282
      \hline
283
      Inter\-conexiones & \textsl{Antifuse} &  \textsl{Flash} &  \textsl{Antifuse} & \textsl{Antifuse} & \textsl{Antifuse}\\
284
      \hline
285
      \multirow{3}{*}{Tecnología} & 0.15 $\mu$m & .22 $\mu$m & 0.45 $\mu$m & 0.22 $\mu$m & 0.22 $\mu$m \\
286
      & 7 capas de metal & 4 capas de metal & 3 capas de metal &  &  \\
287
      & CMOS & CMOS & CMOS & CMOS &CMOS \\
288
      \hline
289
      SRAM bits & 29 k -- 339 k & 14 k -- 198 k & 2.56 k & n.a. & n.a. \\
290
      \hline
291
    \end{tabular}
292
  } % END \footnotesize{} segmentation
293
  \caption{Características de FPGAs fabricadas por Actel.}
294 208 guanucolui
  \label{tab:char-fpga-actel}
295 128 guanucolui
\end{table}
296 125 guanucolui
 
297 128 guanucolui
Nótese que todas las FPGAs de Xilinx usan SRAM para almacenar las interconexiones, por lo que son reprogramables, pero volátiles (es así que requieren de una ROM externa). en cambio, las FPGAs de Actel son no-volátiles (estos usan fusibles electrónicos), pero no son reprogramables (excepto una familia, la cual usa memoria \textsl{Flash}). Ya que cada enfoque tiene sus propias ventajas y desventajas, la aplicación real dictará cual arquitectura de chip es la apropiada.
298 125 guanucolui
 
299 128 guanucolui
\nomenclature[z-pal]{PAL}{\textsl{Programmable Array Logic}}         % first letter Z is for Acronyms
300
\nomenclature[z-ff]{FF}{flip-flop, circuito que tiene dos estados estables y puede ser usado para almacenar información}
301
\nomenclature[z-palce]{PALCE}{\textsl{PAL CMOS Electrically erasable/programmable}}
302
\nomenclature[z-cpld]{CPLD}{\textsl{Complex Programmable Logic Device}}
303
\nomenclature[z-fpga]{FPGA}{\textsl{Field Programmable Gate Array}}
304
\nomenclature[z-eeprom]{EEPROM}{\textsl{Electrically Erasable Programmable Read-Only Memory}}
305
\nomenclature[z-clb]{CLB}{\textsl{Configurable Logic Block}}
306
\nomenclature[z-sram]{SRAM}{\textsl{Static-RAM}}
307
\nomenclature[z-pll]{PLL}{\textsl{Phase-Locked Loop}}
308
\nomenclature[z-dll]{DLL}{\textsl{Delay-Locked Loop}}
309
\nomenclature[z-pci]{PCI}{\textsl{Peripheral Component Interconnect}}
310
\nomenclature[z-dsp]{DSP}{\textsl{Digital Signal Processor}}
311
 
312
 
313 208 guanucolui
\section{Lenguajes Descriptivos de \textsl{Hardware}}
314
\label{sec:fund-hdl}
315 128 guanucolui
 
316 302 guanucolui
La forma tradicional de diseñar circuitos digitales es dibujar diagramas lógicos que contengan compuertas (SSI) y funciones lógicos (MSI). Sin embargo, a fines de 1980s y comienzo de 1990s este proceso de diseño presentaba limitaciones como así algunos problemas. \emph{¿Como se puede dibujar diagramas esquemáticos que contienen cientos de miles o millones de compuertas?} Con la disponibilidad de los dispositivos lógicos programables para reemplazar sistemas donde se utilizaban integrados como los TTL, un nuevo enfoque para el diseño digital fue necesario. Las herramientas asistidas por computadoras son esenciales para diseñar circuitos digitales en la actualidad. Es claro que en las últimas décadas los ingenieros digitales de hoy diseñan sistemas digitales mediante la utilización de \textsl{software}! Esto es un importante cambio de paradigma del tradicional método empleado para el diseño de sistemas digitales\cite{Intro-Digital-Design}.
317 249 guanucolui
 
318
Actualmente los diseñadores digitales usan \emph{Lenguajes Descriptivos de \textsl{Hardware}} (HDLs) para diseñar sistemas digitales. Los lenguajes más utilizados son \emph{VHDL} y \emph{Verilog}. Ambos lenguajes descriptivos permiten al usuario diseñar sistemas digitales mediante la escritura de código que describen el comportamiento de un circuito digital. Este código puede ser utilizado tanto para \emph{simular} la operación del circuito y \emph{sintetizar} también implementarse dicho circuito en un CPLD, una FPGA o en un circuito integrado de aplicaciones específica (ASCI).
319
 
320
\subsection{VHDL}
321
\label{sec:fund-hdl-vhdl}
322
 
323 253 guanucolui
El lenguaje VHDL surgió como parte de un programa norteamericano denominado \textsl{Very High Speed Integrated Circuits} (VHSIC), a comienzos de 1980. En el desarrollo de la ejecución de este programa surgió la necesidad de contar con un lenguaje que permita describir la estructura y funciones para los circuitos integrados (ICs). Es así que el VHSIC \textsl{Hardware Description Language} (VHDL) fue desarrollado. Luego la IEEE adoptaría como un lennguaje estándar en los Estados Unidos.
324 249 guanucolui
 
325 253 guanucolui
VHDL fue diseñado para cubrir necesidades el proceso de diseño. Primero, este lenguaje permite la descripción de la estructura de un diseño, de esta forma se puede descomponer en sub-diseños, y a la vez como estos sub-diseños se interconectan entre sí. Segundo, VHDL permite la especificación de la función de los diseños usando las formas del lenguaje de programación similares a otros lenguajes familiares. Tercero, permite a un diseño ser simulado antes de ser fabricado, por lo que los diseñadores puede rápidamente compara alternativas y probar correciones sin el retardo y espera de los prototipos en \textsl{hardware}.
326 249 guanucolui
 
327
\subsection{Verilog}
328
\label{sec:fund-hdl-verilog}
329
 
330 256 guanucolui
Verilog esta basado en el lenguaje de programación C en la estructura de la sintaxis pero la manera en la que se comporta es diferentes pues es un lenguaje descriptivo. Este formato permitió una rápida aceptación por parte de los diseñadores de \textsl{hardware}.
331 253 guanucolui
 
332 256 guanucolui
Con el incremento en el éxito de VHDL, Cadence decidió hacer el lenguaje abierto y disponible para estandarización. Cadence transfirió Verilog al dominio público a través de Open Verilog International, actualmente conocida como Accellera. Verilog fue después enviado a la IEEE que lo convirtió en el estándar IEEE 1364-1995, habitualmente referido como Verilog 95.
333
 
334
 
335 249 guanucolui
\nomenclature[z-ssi]{SSI}{\textsl{Small Scale Integration}}         % first letter Z is for Acronyms
336
\nomenclature[z-msi]{MSI}{\textsl{Medium Scale Integration}}         % first letter Z is for Acronyms
337 304 guanucolui
\nomenclature[z-ieee]{IEEE}{\textsl{Institute of Electrical and Electronics Engineers}}         % first letter Z is for Acronyms
338 249 guanucolui
 
339 208 guanucolui
\section{Diseño de sistemas digitales}
340
\label{sec:fund-sist-digitales}
341 125 guanucolui
 
342 256 guanucolui
En el proceso de enseñanza de los sistemas digitales se requiere de recursos físicos que complementen el contenido teórico. En la carrera de ingeniería electrónica de nuestra casa de estudio, las técnicas digitales se clasifican en cuatro niveles:
343
 
344
\begin{description}
345
 
346
\item[Técnicas Digitales I] el contenido comprende conceptos desde el Álgebra de Boole, funciones lógicas, sistema de numeración, codificadores/decodificadores, circuitos secuenciales, manejo de lenguajes descriptivos de \textsl{hardware}.
347
 
348
\item[Técnicas Digitales  II ] Métodos de discretización, convertidores AD/DA, microprocesadores, microcontroladores.
349
 
350
\item[Técnicas Digitales III] Instrumentación virtual, adquisición y acondicionamiento de señales (DAQ), redes de computadoras, DSP, sistemas lineales (convolución, correlación/autocorrelación y Fourier), interpolación/decimación (ventanas: rectangular, Hanning, Hamming, Blackman, Kaiser), filtros digitales.
351
 
352
\item[Técnicas Digitales IV] Arquitecturas de lógicas programables, sistemas de diseño para PLDs, procesado y mecanismos de simulación del lenguajes VHDL, síntesis, modelado con VHDL.
353
\end{description}
354
 
355
 
356
La tecnología lógica programable (PLD) es desarrollada en dos de las cuatro cátedras del área de \emph{técnicas digitales}. A mediados de la década del 2000, se comenzó a introducir fuertemente la posibilidad de implementar los diseños digitales sobre dispositivos PLD. Lo que ha requerido la capacitación de los docentes sobre esta tecnología. El Centro Universitario de Desarrollo en Automoción y Robótica fue quién innovó sobre la formación de recursos humanos para la transferencia de conocimientos y desarrollos para los laboratorios. Tal es así la inserción y actualización del área que la cátedra electiva \emph{Técnicas Digitales IV} surgió no hace más de cuatro años. Estos recursos tecnológicos fueron paulatinamente incluidos en las cátedras.
357
 
358
 
359 208 guanucolui
\section{Influencia de la Programabilidad}
360
\label{sec:infl-program}
361 125 guanucolui
 
362 304 guanucolui
En muchos textos la ley de Moore es usada para destacar la evolución de la tecnología de silicio en la industria de los dispositivos semiconductores. Poro hay otro interesante punto de vista particularmente para los dispositivos PLDs, la \emph{onda de Makimoto} que fue publicada por primera vez en Enero de 1991 por la revista \textsl{Electronics Weekly} \cite{FPGA-based-imple-of-sps}. Este concepto se basa en la observación de Tsugio Makimoto quién notó que la tecnología se desplazaba entre la \emph{estandarización} y la \emph{personalización} (véase la Figura \ref{fig:makimoto-wave}). En el comienzo de la década de 1960s, un número de componentes estándares fueron desarrollados, llamados series lógicas 7400 (por Texas Instruments). Estos dispositivos servían para crear diversas aplicaciones digitales. Entrada la década de 1970s, la época de los dispositivos personalizados (LSI, siglas en inglés de \textsl{Low-Scape Integration}) comenzó a desarrollarse donde los chips eran creados para aplicaciones específicas como ser una calculadora. El chip fue incrementando su nivel de integración y así fue que nació el termino integración a media escala (MSI, siglas en inglés de \textsl{Medium-Scale Integration}). La evolución de los microprocesadores en la década de 1970s llevó a la estandarización de chips que fueran usados para un amplio rango de aplicaciones. Es entonces que en 1980s nació el ASIC (\textsl{Application-Specific Integrated Circuit}) donde el diseñador podría superar la limitación de la secuencialidad de los microprocesadores, quienes poseían varias limitaciones en aplicaciones en DSP (\textsl{Digital Signal Processing}) donde se requería un mayor nivel de cálculos. La aparición de la FPGA como un dispositivo con la capacidad de proporcionar recursos lógicos necesarios para conectar varios componentes entre sí llevo a que se conviertan en dispositivos populares.
363 125 guanucolui
 
364 216 guanucolui
\begin{figure}
365
  \centering
366
  \includegraphics[width=0.8\textwidth]{makimoto-wave}
367
  \caption{Onda de Makimoto.}
368 221 guanucolui
  \label{fig:makimoto-wave}
369 216 guanucolui
\end{figure}
370 125 guanucolui
 
371 304 guanucolui
Se podría considerar la existencia de dos épocas de la \emph{programabilidad} donde la \emph{primera} época ocurre con la aparición del microprocesador en la década de 1970s, aquí los programadores desarrollaban soluciones programables basados sobre dispositivos (\textsl{hardware}) fijos. El gran reto de la esta época fue el entorno de \textsl{software} ya que los desarrolladores trabajaban con lenguajes \textsl{assembly} e incluso cuando los compiladores y ensambladores surgieron para el lenguaje C, pues se obtenían mejores rendimientos con la codificación manual. Se comenzaron a obtener librerías que proporcionaban funciones básicas, permitiendo al diseñador concentrarse en la programación de la aplicación. Estas funciones actualmente son fácilmente accedidas desde los compiladores y ensambladores comerciales/libres. Actualmente hay una gran demanda de lenguajes de programación de alto-nivel como C y Java. Tal es así la abstracción del lenguaje que incluso entornos de desarrollos de alto nivel como UML están siendo implementados.
372 125 guanucolui
 
373 244 guanucolui
La \emph{segunda} época de la programabilidad se encuentra marcada por las FPGAs. En la Figura \ref{fig:makimoto-wave}, Makimoto indica que el campo de la programabilidad se estandariza para su fabricación y la personalización del diseño se encuentra en la capa de aplicación de un desarrollo con las tecnologías mencionadas. Esto puede ser considerado como lo que ofrece la programabilidad de \textsl{hardware} en el dominio del \textsl{software} donde el \textsl{hardware} permanece fijo. Esto es un reto fundamental como la mayoría de las herramientas de programación de computadora que trabajan sobre el principio de una plataforma de \textsl{hardware} fijo, lo que permite realizar optimizaciones ya que hay una orientación clara sobre la manera de mejorar el rendimiento de una representación algorítmica. Con las FPGAs, el usuario tiene plena libertad para definir la arquitectura que mejor se adapte a la aplicación. Sin embargo, esto presenta un problema en el que cada solución debe ser \emph{hecha a mano} y todos los diseñadores de \textsl{hardware} conocen los problemas en el diseño y verificación.
374 221 guanucolui
 
375 249 guanucolui
Algunas de las tendencias en las dos épocas tienen similitudes. En los primeros días, el modo esquemático (\textsl{schematic capture}) fue usado para diseñar los primeros circuitos que era sinónimo con el nivel \textsl{assembly} en programación. Los lenguajes de descripción de \textsl{hardware} como el VHDL y Verilog emergieron ya que podrían ser utilizados para producir un nivel de abstracción más alto con el objetivo de contar con una herramienta basada en C como son SystemC y CataultC de Mentor Graphics como un entorno único de programación. Inicialmente como con los lenguajes de programación de \textsl{software}, había una desconfianza en la calidad de los resultados que producía el código con este nuevo enfoque. Sin embargo, con el fin de mejorar los costos de desarrollo, las herramientas de síntesis que eran equivalentes a la evolución de los compiladores de \textsl{software} eficientes para los lenguaje de alto-nivel, y también la evolución de las funciones de librería, estableció un alto grado de confianza que posteriormente llevó al uso de los lenguajes descriptivos de \textsl{hardware} (HDLs) sean comnues para la implementación en FPGA. En efecto, el surgimiento de los IP-cores refleja la evolución de librerías como son funciones programables de entradas/salidas para el flujo del \textsl{software} donde funciones comunes fueron reutilizadas donde los desarrolladores confiaban en la calidad de los resultados que producían estas librerías, especialmente en lo que las presiones para producir más código en el mismo lapso de tiempo crecieron con la evolución tecnológica. Los primeros IP-cores surgieron a partir de funciones de librerías básicas en el procesamiento de señales complejas y funciones de comunicación la mayoría de estos suministrados por los proveedores de FPGA y diversos repositorios web de IP-cores.
376 244 guanucolui
 
377 304 guanucolui
 
378
 
379
\nomenclature[z-asic]{ASIC}{\textsl{Application-Specific Integrated Circuit}}         % first letter Z is for Acronyms
380
\nomenclature[z-uml]{UML}{\textsl{Unified Modeling Language}}
381
 
382 300 guanucolui
\section{Actualización tecnológica de los recursos educativos}
383
\label{sec:act-tec-rec-edu}
384 208 guanucolui
 
385 300 guanucolui
Los anteriores conceptos alientan a la búsqueda, por parte de las instituciones académicas, de nuevas herramientas y materiales educativos que permitan a los estudiantes manipular nuevas tecnologías. Esto demanda por parte de las autoridades académicas que permitan la incorporación/modificación de las cátedras a fines. En la publicación \emph{``Actualización de la currícula - Incorporación de la lógica programable en ingenieria''} se plantea este reto \cite{PaperCayuela}. En esta publicación se propone modificar ligeramente el contenido de ciertas materias de las carreras de Ingeniería Electrónica e Ingeniería en Sistemas de Información, de la Universidad Tecnológica Nacional, para adecuarlas a la renovación tecnológica de la electrónica de consumo actual, que si bien aún no ha inundado Argentina, al punto de hacer absolutamente obsoletas las técnicas digitales discreta y de integración moderada, y las metodologías de diseño de sistemas, no va a pasar demasiado antes de que sea necesario un cambio radical en la industria, en el mercado de consumo masivo, y si seguimos a este ritmo, en última instancia en la educación técnica y tecnológica de nivel terciario-universitario.
386 208 guanucolui
 
387 300 guanucolui
\subsection{Análisis de contenidos en Ingeniería Electrónica e Ingeniería en Sistemas de Información }
388 208 guanucolui
 
389 300 guanucolui
En Ingeniería Electrónica, se introduce a
390
los alumnos a las tecnologías digitales de
391
procesamiento de información en materias
392
dictadas desde el primer año de cursado, a
393
saber: Informática I y II, Técnicas Digitales I, II y III.
394 208 guanucolui
 
395 300 guanucolui
El programa de Informática I de 1er año,
396
comienza por un pequeño despliegue de
397
conocimientos someros de arquitectura de
398
computadoras modernas, y continúa con la
399
enseñanza de la resolución algorítmica más
400
básica en programación, eligiendo primero
401
los diagramas de flujo, luego el
402
pseudocódigo, y por último el muy popular
403
lenguaje C, de medio y bajo nivel, por lo
404
que se pierde una gran cantidad de tiempo,
405
dada la repetición de temas con distintas
406 304 guanucolui
herramientas. Durante el 2do. año en
407 300 guanucolui
Informática II, los alcances determinan una
408
ampliación de habilidades en C, tales como
409
las estructuras de datos entre otros temas, y
410
por último un corto (de vista) repaso de
411
conceptos de orientación a objetos, que no
412
llega a concretarse en mucha práctica con
413
C++.
414 208 guanucolui
 
415 300 guanucolui
En Técnicas Digitales I, de 3er año, se ven
416
los principios de lógica digital hasta diseño
417
secuencial, y se emplea en la parte práctica,
418
tecnología de baja escala de integración, los
419
muy conocidos y populares, TTL línea
420
7400 y CMOS línea 4000.
421 208 guanucolui
 
422 300 guanucolui
En Técnicas Digitales II, de 4o año, se
423
estudia no con mucho detalle, la clásica
424
arquitectura Intel X86.
425
 
426
En Técnicas Digitales III, de 5o año, se
427
tocan de oído los temas referidos al
428
desarrollo de sistemas de procesamiento
429
digital de señales, mediante programación
430 304 guanucolui
en C/C++ y Matlab sobre DSPs
431 300 guanucolui
integrados o PCs con plataformas X86s.
432
 
433
En Ingeniería en Sistemas de Información,
434
debe tenerse en cuenta que la orientación no
435
es precisamente técnica, sino más bien
436
gerencial-administrativa; sin embargo, en
437
su base presenta suficientes materias de
438
contacto con Ingeniería Electrónica, y
439
sobre ellas discutiremos.
440
 
441
En Ingeniería en Sistemas de Información,
442
durante el último cuatrimestre del 1er año,
443
se dicta con mucho éxito la materia
444
Algoritmos y Estructuras de Datos (con
445
C/Java), que en contenido y extensión,
446
abarca prácticamente el total de las dos
447
Informáticas de Ingeniería Electrónica.
448
También en este cuatrimestre, se dicta la
449
materia Arquitectura de Computadoras, en
450
la que se ven temas varios de su correcto
451
nombre, sin pasar más abajo del nivel de
452
lógica digital y llegando hasta la
453
arquitectura de microprocesadores interna y
454 304 guanucolui
externa. En el 2do. año, en la materia
455 300 guanucolui
Paradigmas de la Programación, se llegan
456
a ver entre otros, los paradigmas
457
concurrentes (con Ada), orientado a objetos
458
(Java/C++), funcional (Scheme/Lisp) y
459
lógico (Prolog).
460
 
461
\subsection{Propuesta de modificación de contenido}
462
 
463
Lo primero que se propone en este caso, es
464
unificar contenidos entre las materias de
465
programación de los primeros años de
466
ambas ingenierías, mas no tal vez su
467
dictado conjunto, para poder hacer énfasis
468
individuales sobre las especializaciones de
469
estos temas en cada carrera por aparte.
470
 
471
Así, nos quedaría una primera materia
472
Informática I dentro de Ingeniería
473
Electrónica, equivalente a Algoritmos y
474
Estructuras de Datos de Ingeniería en
475
Sistemas de Información, pero de duración
476
anual, lo cual puede ser una ventaja para la
477
maduración de los temas, aunque de carga
478
horaria equivalente similar, la mitad por
479
semana dado su doble extensión temporal
480
anual.
481
 
482
En el 2do. año en Ingeniería Electrónica, la
483
materia Informática II, también anual,
484
tendría tiempo suficiente para incluir
485
extensamente el paradigma orientado a
486
objetos con C++, muy importante para la
487
formación del ingeniero electrónico, y tan
488
importante como el anterior, incluir el
489
paradigma concurrente, enseñado mediante
490
ejemplos en VHDL con simuladores, para
491
de esta forma, preparar al alumno para las
492
técnicas digitales sobre FPGAs, sin tener
493
que comenzar desde cero con un lenguaje
494
de descripción de hardware, en el 3er año.
495
 
496
En cuanto a Ingeniería en Sistemas de
497
Información, en la materia Arquitectura de
498
Computadoras, se podría introducir
499
descripciones de microprocesadores y otros
500
circuitos en VHDL con simuladores,
501
facilitando la ampliación del paradigma
502
concurrente en VHDL/Ada del siguiente
503
año. Ya en Paradigmas de la
504 304 guanucolui
Programación del 2do. año, podría emplearse
505 300 guanucolui
el lenguaje VHDL junto al Ada (dado que
506
este último es un antecesor del primero),
507
para unificar temas entre materias de los
508
dos niveles y compartir contenidos por un
509
lado, y por otro, para mostrar a los alumnos
510
plataformas de hardware (y no solo las
511
X86s) que se programan directamente con
512
ese paradigma, a la cual algunos tal vez
513
podrían dedicar esfuerzos en el futuro,
514
siendo también una forma de entablar
515
algunos puentes de unión entre estas dos
516
carreras parientes, aunque no cercanos.
517
 
518
Como segundo paso, convendría la
519
incorporación temprana en Técnicas
520
Digitales I, de temas de lógica
521
reconfigurable, y dado que VHDL ya se
522
habría visto con mediana intensidad durante
523
el año anterior, se puede concentrar la
524
atención en el diseño de hardware, y en la
525
descripción del mismo mediante estas
526
técnicas, algo ajenas al diseño discreto
527
convencional, del que se puede ver un poco,
528
tan solo para no dejar de lado, que aun hoy
529
una buena parte de la industria tiene
530
implantados con esta tecnología mucho de
531
su infraestructura, a la cual sin duda deberá
532
darse mantenimiento; sin embargo el
533
siguiente paso es la modernización de esa
534
misma infraestructura con estas nuevas
535
herramientas, para lo cual este cambio sería
536
instrumental.
537
 
538
Luego en Técnicas Digitales II, se puede
539
ver no solo la arquitectura X86, sino otras
540
variantes tan importantes en la industria
541
como ella, directamente en VHDL con
542
implementación sobre placas de trabajo
543
construidas      alrededor       de    lógica
544
programable, con lo cual no se queda en
545
teoría el diseño ni de microprocesadores
546
(irrealizable con electrónica discreta salvo
547
en simulación) ni de arquitectura externa al
548
micro.
549
 
550
Finalmente en Técnicas Digitales III, todo
551
los temas referidos al procesamiento digital
552
de señales, se pueden aprender con VHDL
553
y arquitecturas construidas en FPGAs, dado
554
que son en muchos casos la elección
555
prioritaria,     complementándolas       con
556
tecnología DSP integrada o embebida en
557
FPGAs.
558
 
559
En la Figura \ref{fig:actualizacion-tecnicas}, podemos ver un esquema
560
sintético de la propuesta.
561
 
562
\begin{figure}
563
  \centering
564
  \includegraphics[width=0.8\textwidth]{actualizacioncurricula}
565
  \caption{Propuesta de modificación de contenido a las carreras de Ingeniería Electrónica e Ingeniería en Sistemas de Información.}
566
  \label{fig:actualizacion-tecnicas}
567
\end{figure}
568
 
569
\subsection{Un atisbo de cambio en nuestra carrera}
570
 
571
En el CUDAR (Centro Universitario de
572
Desarrollo en Automación y Robótica),
573
decidimos colaborar con la incorporación
574
de estas modificaciones, en principio,
575
limitados a las materias de Técnicas
576
Digitales de Ingeniería Electrónica.
577
 
578
Se lo propusimos a los profesores titulares
579
de cada materia, sin la necesidad de
580
cambiar los programas, pero incorporando
581
las herramientas y el lenguaje VHDL en
582
las tres. Estuvieron de acuerdo y
583
propusieron un cambio mayor en los
584
contenidos, a lo que nosotros dimos
585
nuestro apoyo.
586
 
587
Para ello, el secretario de Ciencia y
588
Técnica de la Facultad Regional Córdoba,
589
instrumentaría un presupuesto, cuando sea
590
posible, para el equipamiento de
591
laboratorios con tecnología de lógica
592
programable, es decir con placas
593
experimentales y estaciones de trabajo con
594
software adecuado.
595
 
596
Además, para poder realizar esta
597
renovación, puede recurrirse a los
598
programas universitarios de empresas
599
como Xilinx \cite{XilinxUni} y Altera \cite{AlteraUni}, que donan
600
hardware y disponen de entornos de
601
desarrollo y simuladores gratuito.
602
 
603
Otra alternativa que evaluamos fue el
604
diseño en casa, de pequeñas placas de
605
trabajo construidas con CPLDs, aunque
606
nos topamos con la dificultad de la falta de
607
proveedores adecuados. Finalmente las
608
diseñamos y probamos, pero nos
609
encontramos que al querer conseguir
610
CPLDs y FPGAs de bajo precio nominal,
611
los distribuidores para Argentina de Xilinx
612
y Altera no dan gran importancia a los
613
programas universitarios de esas empresas,
614
generando además sobreprecios, aún
615
cuando      los    precios    sean    bajos
616
originalmente, con detalles como compra
617
de una cantidad mínima por componente,
618
gastos de envío entre Buenos Aires y el
619
interior con valores de transporte
620
internacional, etc.
621
 
622
\subsection{Resultados}
623
 
624
A partir del año 2006, colaboramos
625
activamente en la incorporación de temas
626
de lógica programable en el dictado de la
627
materia Técnicas Digitales I, a través del
628
titular de la cátedra y un profesor de
629
trabajos prácticos, ambos integrantes del
630
CUDAR, a los que asistimos con material
631
de lectura, prácticos y exposiciones
632
preparadas en filminas sobre la tecnología
633
interna de los dispositivos programables.
634
 
635
También hemos terminado con las etapas
636
de diseño y pruebas de un Kit de desarrollo
637
educativo con CPLD \cite{PaperKitCPLD}, que dejamos
638
disponible libremente para su construcción
639
por parte de los alumnos, y a partir de este
640
año se utilizará en la materia Técnicas
641
Digitales I como herramienta de trabajos
642
prácticos. Asimismo, el departamento
643
Ingeniería Electrónica ha dispuesto
644
incorporar este kit en el Laboratorio de
645
Técnicas Digitales, esfuerzo que está
646
siendo coordinado por nosotros desde el
647
CUDAR.
648
 
649
A propuesta nuestra también, a partir de
650
2007, dictaremos la materia electiva del 6to.
651
año de Ingeniería Electrónica, dedicada a
652
la lógica programable, y bautizada como
653
Técnicas Digitales IV.
654
 
655
% Aquí se podría poner algo sobre el paper "The Role of the Laboratory in Undergraduate Engineering Education".
656
 
657
 
658
 %\begin{landscape}
659
 
660
 % \section*{Subplots}
661
 % I can cite Wall-E (see Fig.~\ref{fig:WallE}) and Minions in despicable me (Fig.~\ref{fig:Minnion}) or I can cite the whole figure as Fig.~\ref{fig:animations}
662
 
663
 % \begin{figure}
664
 %   \centering
665
 %   \subfloat[A Tom and Jerry]{\label{fig:TomJerry}\includegraphics[width=0.3\textwidth]{TomandJerry}}
666
 %   \subfloat[A Wall-E]{\label{fig:WallE}\includegraphics[width=0.3\textwidth]{WallE}}
667
 %   \subfloat[A Minion]{\label{fig:Minnion}\includegraphics[width=0.3\textwidth]{minion}}
668
 %   \caption{Best Animations}
669
 %   \label{fig:animations}
670
 % \end{figure}
671
 
672
 
673
 % \end{landscape}
674
 
675
 
676
 
677
 
678
 
679
 
680
 
681
 
682
 
683
 
684
 
685
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.