Depende de sus preferencias profesionales y su conjunto de habilidades, así como de la movilidad geográfica.
Las oportunidades de pasantías para estudiantes de posgrado (estudiantes de maestría / doctorado) en diseño digital VLSI y áreas relacionadas son buenas y bastante abundantes en los EE. UU., Y pagan muy bien (por ejemplo, US $ 30-US $ 40 por hora). Sin embargo, los estudiantes deben haber tomado al menos 2-3 clases de diseño VLSI, donde están expuestos al diseño físico (o diseño personalizado) y al diseño RTL. Supongo que la mayoría de los estudiantes de ingeniería eléctrica / informática habrían estado expuestos al diseño lógico. Deben poder desarrollar scripts (por ejemplo, en Perl / Tcl) para personalizar las herramientas / software VLSI CAD. Sin embargo, debido a la política de inmigración de los Estados Unidos o las políticas exteriores de varios países, eso no es aplicable a todos. Los estudiantes de pregrado pueden realizar pasantías en diseño / verificación de VLSI, o aspectos relacionados como el desarrollo de la biblioteca celular, si han tomado clases de diseño de VLSI. Una vez más, en los EE. UU., Tiene un número significativo de estudiantes universitarios inteligentes y trabajadores que pueden tomar clases de posgrado (por ejemplo, diseño asincrónico de VLSI) tan pronto como su tercer año (o incluso al final de su segundo año) en buenas universidades de investigación. Las universidades fuera de los EE. UU. Tienden a no ofrecer tantas clases avanzadas en sistemas integrados o diseño VLSI (por ejemplo, clases de codiseño de hardware / software y sistemas ciberfísicos), por lo que es comprensible si los estudiantes fuera de los EE. UU. No pueden / “no pueden” adquirir tales habilidades. Incluso si ofrecen tales clases, la cantidad de proyectos involucrados generalmente no es comparable a los de los Estados Unidos.
Las oportunidades de pasantía en sistemas integrados, especialmente para estudiantes de pregrado, varían mucho más que las del diseño de VLSI, ya que el conjunto de habilidades requerido depende en gran medida de la posición de pasantía. En consecuencia, el pago / estipendio también variaría considerablemente. Abarcan desde el desarrollo de aspectos del software integrado, pruebas de software, pruebas a nivel de placa / sistema, diseño de placa de circuito impreso (o diseño de hardware integrado), modelado a nivel de sistema (con UML / SystemC) y posterior implementación en RTL, y hardware / particionamiento de software. Dudo que pueda hacer mucho con el mapeo de aplicaciones (software) de software / programas bastante secuenciales en procesadores de múltiples / muchos núcleos (o plataformas de procesador de múltiples / muchos núcleos), a menos que tenga fuertes habilidades de ECE + CS y sea estudiando en universidades buenas y famosas, como los Institutos Indios de Tecnología, las buenas universidades técnicas en Europa (incluidas las de Portugal, España, Italia y Europa del Este), o el Technion. Vea la respuesta del usuario de Quora a Al contratar ingenieros de software / especialidades en informática para empresas estadounidenses, ¿qué universidades internacionales están a la par con MIT / Stanford? para obtener una lista de universidades o escuelas de ingeniería conocidas. Recuerde, si la gente no sabe acerca de la Universidad Nacional de Seúl, BME o la Universidad Politehnica de Bucarest, es porque ignoran las tendencias globales educativas, económicas y tecnológicas.
Las respuestas antes mencionadas indican claramente la falta de habilidades adecuadas en ingeniería informática (con respecto a un programa acreditado por ABET decente en ingeniería informática), que es necesario para carreras en sistemas integrados y diseño VLSI digital o de nivel de sistema. Esto no es una sorpresa dada la fuerte diferencia cultural (desde la perspectiva de la ingeniería eléctrica / informática y / o educación en informática) entre el sistema estadounidense y otros sistemas. Esto se refleja en la estructura de los programas de grado y los requisitos de graduación, como la amplitud y profundidad de los programas de grado y cómo enfatizan la importancia de un fuerte conocimiento teórico y fuertes habilidades prácticas.
Dado que el VLSI digital, y mucho menos el diseño de VLSI a nivel de sistema, se ha orientado al software, necesita fuertes habilidades de hardware y software en torno a la interfaz de hardware y software. Las herramientas / software de automatización de diseño electrónico (EDA) que se utilizan para diseñar circuitos y sistemas VLSI son guiados por script (por ejemplo, por scripts de Perl, Tcl o Python), y los archivos de diseño (y temporales) son administrados por software de control de revisión distribuido (por ejemplo, Git o Mercurial). Los diseños se verifican por verificación de regresión (compárelo con las pruebas de regresión en software) y se modelan a nivel de sistema con lenguajes de modelado / arquitectónicos como UML. La verificación formal, que se usa con frecuencia para verificar el software incorporado, también se usa para verificar los diseños digitales VLSI. Algunas personas están trabajando para verificar formalmente los sistemas analógicos y de señal mixta.
Cualquier programa decente de ingeniería eléctrica / informática (ECE) a nivel de pregrado o aquellos en comparación con los programas de pregrado ECE acreditados por ABET habrían expuesto a los estudiantes a una serie de clases de ciencias de la computación e ingeniería informática, para que puedan: desarrollar programas en C / C ++ / Java / Python; conocer las estructuras de datos básicos desde listas / colas y tablas hash / listas de salto hasta árboles y gráficos; escribir software del sistema en ensamblaje / C; y también diseñar e implementar un procesador simple (para su clase de organización informática). Por lo tanto, la observación antes mencionada sobre “incrustado es mucho más software del que a algunas personas realmente les importaría” es incorrecta.
Los sistemas integrados tienen tanto que ver con ECE como con CS o el desarrollo de software. Actualmente, muchas universidades y empresas están desarrollando sistemas embebidos cada vez más complejos, que incluyen hardware y software, así como redes de sistemas embebidos que interactúan con el entorno físico. Como en, están interesados en desarrollar productos en el espacio del sistema ciberfísico y para redes de sistemas integrados (o lo que algunos llaman redes de sistemas integrados). Para diseñar y desarrollar de manera efectiva soluciones para sistemas ciberfísicos y en red de sistemas integrados, debe tener una sólida formación en ECE y CS. Debe conocer los sistemas de control, ya que el sistema integrado debe interactuar con el entorno físico y exhibir un comportamiento estable. Idealmente, el sistema debería ser “inteligente” o exhibir propiedades de sistemas autónomos de computadora / ingeniería. Lo mismo para la red de sistemas embebidos. Dichos sistemas autónomos deberán exhibir propiedades de auto-X, como la autoorganización, la autoconfiguración y la auto optimización. Estos conceptos son conceptos que varias personas, como el presidente de EE. UU. Obama y Thomas Friedman, han explicado clara y simplemente en múltiples ocasiones con respecto a la red inteligente (o red eléctrica inteligente). Por lo tanto, si desea ser ingeniero / arquitecto de sistemas de sistemas ciberfísicos y / o sistemas embebidos, también necesita conocer aspectos del diseño analógico / RF y de señales mixtas. Después de todo, estás interactuando con el mundo físico, ¿verdad? Lo mismo para el procesamiento de señales.
Cualquiera de estos campos ofrece interesantes oportunidades de pasantía. Depende de cómo desee pasar su tiempo libre adquiriendo habilidades y experiencia en desarrollo de software, diseño de circuitos, diseño y verificación de sistemas y optimización matemática (para optimizar su sistema embebido o circuito VLSI).
Para explorar oportunidades en el diseño de VLSI, puede hacer lo siguiente. Si sabe cómo trabajar en el entorno UNIX, o al menos lo desea, puede instalar un montón de software gratuito EDA o VLSI CAD para que pueda diseñar circuitos VLSI. Comience con un sumador simple o un sumador de árbol más complicado a nivel lógico e implemente su diseño con Electric VLSI Design System o Magic. Realice la extracción del diseño y simule la netlist extraída en SPICE. Implemente un procesador simple en Verilog (preferido en los EE. UU.) O VHDL. Si puede hacer esto, habría adquirido habilidades básicas en el diseño de VLSI. Un diseño e implementaciones más esotéricos de los circuitos y sistemas VLSI mejorarían sus posibilidades de obtener una buena pasantía, pero son difíciles de adquirir en un corto período de tiempo. Por ejemplo, considere implementar la arquitectura VLSI de un procesador multimedia, incluido un decodificador MPEG (sí, puede implementar el algoritmo de decodificación MPEG como un circuito VLSI), diseñar circuitos / sistemas asíncronos (por ejemplo, un procesador asíncrono o globalmente asíncrono y localmente -Sinchronous network-on-chip), optimización del rendimiento y la potencia (p. Ej., Técnicas basadas en esfuerzo lógico y sincronización de reloj / potencia), y diseño de comprobabilidad (DFT) o autocomprobación incorporada (BIST). Supongo que se da cuenta de que los circuitos que implementan técnicas de codificación o aritmética de campo de Galois (por ejemplo, el decodificador Viterbi) requieren algunos conceptos “avanzados” en matemáticas, como los de álgebra abstracta. Después de todo, los investigadores que desarrollaron sumadores de árboles bien conocidos para la aritmética informática son científicos informáticos. Esto fue en la era dorada del diseño VLSI (finales de los 70 y principios de los 90) cuando no hay mucha diferencia entre las personas en ECE o CS y quienes trabajan en el diseño VLSI. Recuerde, los programas educativos en informática o ingeniería informática no eran tan comunes entonces.
En cuanto a los sistemas integrados, debe saber cómo diseñar un sistema informático simple, incluido un procesador, su conexión a varios dispositivos de E / S (según las necesidades de un sistema) e implementarlos en una placa de circuito impreso. Del mismo modo, debe poder escribir software de sistema simple para controlar esos dispositivos de E / S y procesar los datos adquiridos y transferir los datos procesados a los dispositivos de salida. Puede aprender cómo hacer esto en el descanso, si aún no ha completado proyectos que involucren estos en sus clases. A continuación, aprenda sobre el diseño a nivel de sistema o la arquitectura del sistema. Una clase sólida de ingeniería de software ayudaría mucho con respecto a esto. Debe conocer el lenguaje de restricción de objetos y UML, o al menos las lógicas temporales y predicadas para la verificación formal (especialmente la verificación de modelos). Finalmente, aprenda sobre el codiseño y la verificación conjunta de hardware / software, incluida la generación automática de código fuente (o síntesis de software), la síntesis de alto nivel (de C / C ++ / SystemC a Verilog / VHDL) y la partición de hardware / software. Eso debería ser suficiente para convertirse en un buen estudiante de ECE (o EECS) en sistemas embebidos y / o diseño VLSI.
Para obtener más información sobre la importancia de las habilidades de hardware y software en carreras relacionadas con áreas como el diseño VLSI, los sistemas integrados y la arquitectura de la computadora, consulte las publicaciones de mi junta: Ingeniería eléctrica + Ciencias de la computación (EECS).
Además, consulte Elección de un programa de posgrado en Diseño VLSI y áreas relacionadas: Cosas a considerar por Pasquale Ferrara en Ingeniería Eléctrica + Ciencias de la Computación (EECS)