Line 371... |
Line 371... |
|
|
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.
|
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.
|
|
|
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.
|
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.
|
|
|
|
\section{Actualización tecnológica de los recursos educativos}
|
|
\label{sec:act-tec-rec-edu}
|
|
|
|
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.
|
|
|
|
\subsection{Análisis de contenidos en Ingeniería Electrónica e Ingeniería en Sistemas de Información }
|
|
|
|
En Ingeniería Electrónica, se introduce a
|
|
los alumnos a las tecnologías digitales de
|
|
procesamiento de información en materias
|
|
dictadas desde el primer año de cursado, a
|
|
saber: Informática I y II, Técnicas Digitales I, II y III.
|
|
|
|
El programa de Informática I de 1er año,
|
|
comienza por un pequeño despliegue de
|
|
conocimientos someros de arquitectura de
|
|
computadoras modernas, y continúa con la
|
|
enseñanza de la resolución algorítmica más
|
|
básica en programación, eligiendo primero
|
|
los diagramas de flujo, luego el
|
|
pseudocódigo, y por último el muy popular
|
|
lenguaje C, de medio y bajo nivel, por lo
|
|
que se pierde una gran cantidad de tiempo,
|
|
dada la repetición de temas con distintas
|
|
herramientas. Durante el 2o año en
|
|
Informática II, los alcances determinan una
|
|
ampliación de habilidades en C, tales como
|
|
las estructuras de datos entre otros temas, y
|
|
por último un corto (de vista) repaso de
|
|
conceptos de orientación a objetos, que no
|
|
llega a concretarse en mucha práctica con
|
|
C++.
|
|
|
|
En Técnicas Digitales I, de 3er año, se ven
|
|
los principios de lógica digital hasta diseño
|
|
secuencial, y se emplea en la parte práctica,
|
|
tecnología de baja escala de integración, los
|
|
muy conocidos y populares, TTL línea
|
|
7400 y CMOS línea 4000.
|
|
|
|
En Técnicas Digitales II, de 4o año, se
|
|
estudia no con mucho detalle, la clásica
|
|
arquitectura Intel X86.
|
|
|
|
En Técnicas Digitales III, de 5o año, se
|
|
tocan de oído los temas referidos al
|
|
desarrollo de sistemas de procesamiento
|
|
digital de señales, mediante programación
|
|
en C/C++ y Matlab® sobre DSPs
|
|
integrados o PCs con plataformas X86s.
|
|
|
|
En Ingeniería en Sistemas de Información,
|
|
debe tenerse en cuenta que la orientación no
|
|
es precisamente técnica, sino más bien
|
|
gerencial-administrativa; sin embargo, en
|
|
su base presenta suficientes materias de
|
|
contacto con Ingeniería Electrónica, y
|
|
sobre ellas discutiremos.
|
|
|
|
En Ingeniería en Sistemas de Información,
|
|
durante el último cuatrimestre del 1er año,
|
|
se dicta con mucho éxito la materia
|
|
Algoritmos y Estructuras de Datos (con
|
|
C/Java), que en contenido y extensión,
|
|
abarca prácticamente el total de las dos
|
|
Informáticas de Ingeniería Electrónica.
|
|
También en este cuatrimestre, se dicta la
|
|
materia Arquitectura de Computadoras, en
|
|
la que se ven temas varios de su correcto
|
|
nombre, sin pasar más abajo del nivel de
|
|
lógica digital y llegando hasta la
|
|
arquitectura de microprocesadores interna y
|
|
externa. En el 2o año, en la materia
|
|
Paradigmas de la Programación, se llegan
|
|
a ver entre otros, los paradigmas
|
|
concurrentes (con Ada), orientado a objetos
|
|
(Java/C++), funcional (Scheme/Lisp) y
|
|
lógico (Prolog).
|
|
|
|
\subsection{Propuesta de modificación de contenido}
|
|
|
|
Lo primero que se propone en este caso, es
|
|
unificar contenidos entre las materias de
|
|
programación de los primeros años de
|
|
ambas ingenierías, mas no tal vez su
|
|
dictado conjunto, para poder hacer énfasis
|
|
individuales sobre las especializaciones de
|
|
estos temas en cada carrera por aparte.
|
|
|
|
Así, nos quedaría una primera materia
|
|
Informática I dentro de Ingeniería
|
|
Electrónica, equivalente a Algoritmos y
|
|
Estructuras de Datos de Ingeniería en
|
|
Sistemas de Información, pero de duración
|
|
anual, lo cual puede ser una ventaja para la
|
|
maduración de los temas, aunque de carga
|
|
horaria equivalente similar, la mitad por
|
|
semana dado su doble extensión temporal
|
|
anual.
|
|
|
|
En el 2do. año en Ingeniería Electrónica, la
|
|
materia Informática II, también anual,
|
|
tendría tiempo suficiente para incluir
|
|
extensamente el paradigma orientado a
|
|
objetos con C++, muy importante para la
|
|
formación del ingeniero electrónico, y tan
|
|
importante como el anterior, incluir el
|
|
paradigma concurrente, enseñado mediante
|
|
ejemplos en VHDL con simuladores, para
|
|
de esta forma, preparar al alumno para las
|
|
técnicas digitales sobre FPGAs, sin tener
|
|
que comenzar desde cero con un lenguaje
|
|
de descripción de hardware, en el 3er año.
|
|
|
|
En cuanto a Ingeniería en Sistemas de
|
|
Información, en la materia Arquitectura de
|
|
Computadoras, se podría introducir
|
|
descripciones de microprocesadores y otros
|
|
circuitos en VHDL con simuladores,
|
|
facilitando la ampliación del paradigma
|
|
concurrente en VHDL/Ada del siguiente
|
|
año. Ya en Paradigmas de la
|
|
Programación del 2o año, podría emplearse
|
|
el lenguaje VHDL junto al Ada (dado que
|
|
este último es un antecesor del primero),
|
|
para unificar temas entre materias de los
|
|
dos niveles y compartir contenidos por un
|
|
lado, y por otro, para mostrar a los alumnos
|
|
plataformas de hardware (y no solo las
|
|
X86s) que se programan directamente con
|
|
ese paradigma, a la cual algunos tal vez
|
|
podrían dedicar esfuerzos en el futuro,
|
|
siendo también una forma de entablar
|
|
algunos puentes de unión entre estas dos
|
|
carreras parientes, aunque no cercanos.
|
|
|
|
Como segundo paso, convendría la
|
|
incorporación temprana en Técnicas
|
|
Digitales I, de temas de lógica
|
|
reconfigurable, y dado que VHDL ya se
|
|
habría visto con mediana intensidad durante
|
|
el año anterior, se puede concentrar la
|
|
atención en el diseño de hardware, y en la
|
|
descripción del mismo mediante estas
|
|
técnicas, algo ajenas al diseño discreto
|
|
convencional, del que se puede ver un poco,
|
|
tan solo para no dejar de lado, que aun hoy
|
|
una buena parte de la industria tiene
|
|
implantados con esta tecnología mucho de
|
|
su infraestructura, a la cual sin duda deberá
|
|
darse mantenimiento; sin embargo el
|
|
siguiente paso es la modernización de esa
|
|
misma infraestructura con estas nuevas
|
|
herramientas, para lo cual este cambio sería
|
|
instrumental.
|
|
|
|
Luego en Técnicas Digitales II, se puede
|
|
ver no solo la arquitectura X86, sino otras
|
|
variantes tan importantes en la industria
|
|
como ella, directamente en VHDL con
|
|
implementación sobre placas de trabajo
|
|
construidas alrededor de lógica
|
|
programable, con lo cual no se queda en
|
|
teoría el diseño ni de microprocesadores
|
|
(irrealizable con electrónica discreta salvo
|
|
en simulación) ni de arquitectura externa al
|
|
micro.
|
|
|
|
Finalmente en Técnicas Digitales III, todo
|
|
los temas referidos al procesamiento digital
|
|
de señales, se pueden aprender con VHDL
|
|
y arquitecturas construidas en FPGAs, dado
|
|
que son en muchos casos la elección
|
|
prioritaria, complementándolas con
|
|
tecnología DSP integrada o embebida en
|
|
FPGAs.
|
|
|
|
En la Figura \ref{fig:actualizacion-tecnicas}, podemos ver un esquema
|
|
sintético de la propuesta.
|
|
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.8\textwidth]{actualizacioncurricula}
|
|
\caption{Propuesta de modificación de contenido a las carreras de Ingeniería Electrónica e Ingeniería en Sistemas de Información.}
|
|
\label{fig:actualizacion-tecnicas}
|
|
\end{figure}
|
|
|
|
\subsection{Un atisbo de cambio en nuestra carrera}
|
|
|
|
En el CUDAR (Centro Universitario de
|
|
Desarrollo en Automación y Robótica),
|
|
decidimos colaborar con la incorporación
|
|
de estas modificaciones, en principio,
|
|
limitados a las materias de Técnicas
|
|
Digitales de Ingeniería Electrónica.
|
|
|
|
Se lo propusimos a los profesores titulares
|
|
de cada materia, sin la necesidad de
|
|
cambiar los programas, pero incorporando
|
|
las herramientas y el lenguaje VHDL en
|
|
las tres. Estuvieron de acuerdo y
|
|
propusieron un cambio mayor en los
|
|
contenidos, a lo que nosotros dimos
|
|
nuestro apoyo.
|
|
|
|
Para ello, el secretario de Ciencia y
|
|
Técnica de la Facultad Regional Córdoba,
|
|
instrumentaría un presupuesto, cuando sea
|
|
posible, para el equipamiento de
|
|
laboratorios con tecnología de lógica
|
|
programable, es decir con placas
|
|
experimentales y estaciones de trabajo con
|
|
software adecuado.
|
|
|
|
Además, para poder realizar esta
|
|
renovación, puede recurrirse a los
|
|
programas universitarios de empresas
|
|
como Xilinx \cite{XilinxUni} y Altera \cite{AlteraUni}, que donan
|
|
hardware y disponen de entornos de
|
|
desarrollo y simuladores gratuito.
|
|
|
|
Otra alternativa que evaluamos fue el
|
|
diseño en casa, de pequeñas placas de
|
|
trabajo construidas con CPLDs, aunque
|
|
nos topamos con la dificultad de la falta de
|
|
proveedores adecuados. Finalmente las
|
|
diseñamos y probamos, pero nos
|
|
encontramos que al querer conseguir
|
|
CPLDs y FPGAs de bajo precio nominal,
|
|
los distribuidores para Argentina de Xilinx
|
|
y Altera no dan gran importancia a los
|
|
programas universitarios de esas empresas,
|
|
generando además sobreprecios, aún
|
|
cuando los precios sean bajos
|
|
originalmente, con detalles como compra
|
|
de una cantidad mínima por componente,
|
|
gastos de envío entre Buenos Aires y el
|
|
interior con valores de transporte
|
|
internacional, etc.
|
|
|
|
\subsection{Resultados}
|
|
|
|
A partir del año 2006, colaboramos
|
|
activamente en la incorporación de temas
|
|
de lógica programable en el dictado de la
|
|
materia Técnicas Digitales I, a través del
|
|
titular de la cátedra y un profesor de
|
|
trabajos prácticos, ambos integrantes del
|
|
CUDAR, a los que asistimos con material
|
|
de lectura, prácticos y exposiciones
|
|
preparadas en filminas sobre la tecnología
|
|
interna de los dispositivos programables.
|
|
|
|
También hemos terminado con las etapas
|
|
de diseño y pruebas de un Kit de desarrollo
|
|
educativo con CPLD \cite{PaperKitCPLD}, que dejamos
|
|
disponible libremente para su construcción
|
|
por parte de los alumnos, y a partir de este
|
|
año se utilizará en la materia Técnicas
|
|
Digitales I como herramienta de trabajos
|
|
prácticos. Asimismo, el departamento
|
|
Ingeniería Electrónica ha dispuesto
|
|
incorporar este kit en el Laboratorio de
|
|
Técnicas Digitales, esfuerzo que está
|
|
siendo coordinado por nosotros desde el
|
|
CUDAR.
|
|
|
|
A propuesta nuestra también, a partir de
|
|
2007, dictaremos la materia electiva del 6to.
|
|
año de Ingeniería Electrónica, dedicada a
|
|
la lógica programable, y bautizada como
|
|
Técnicas Digitales IV.
|
|
|
% Aquí se podría poner algo sobre el paper "The Role of the Laboratory in Undergraduate Engineering Education".
|
% Aquí se podría poner algo sobre el paper "The Role of the Laboratory in Undergraduate Engineering Education".
|
|
|
|
|
%\begin{landscape}
|
%\begin{landscape}
|
|
|
Line 391... |
Line 664... |
% \end{figure}
|
% \end{figure}
|
|
|
|
|
% \end{landscape}
|
% \end{landscape}
|
|
|
No newline at end of file
|
No newline at end of file
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No newline at end of file
|
No newline at end of file
|