En esta primera lección de la última semana del curso vamos a hablar de la implementación física de los sistemas digitales. El planteamiento es muy sencillo: A lo largo del curso hemos aprendido a dibujar preciosos esquemas lógicos con puertas lógicas, elementos de memoria y otros dispositivos como registros, contadores, etc, sobre el papel. Es decir, hemos acabado con unos, podíamos llamarlo, dibujos. Esto está muy bien, pero la pregunta es ¿cómo pasamos del esquema sobre papel al circuito real? Y esto se puede hacer de dos maneras. La forma tradicional es utilizar chips de media o pequeña escala de integración y placas de circuito impreso, y la segunda opción, más sofisticada, más compleja, pero que nos permitirá implementar realmente grandes circuitos es construir nuestro propio circuito integrado. La aproximación más tradicional, como hemos dicho, es utilizar chips más placas de circuito impreso. Lo que haríamos primero es identificar dentro de nuestro circuito cuáles son los elementos que necesitamos y buscar los chips correspondientes que contienen estos elementos. Por ejemplo aquí tenéis un chip que contiene 1, 2, 3, 4 puertas AND de 2 entradas, y aquí tenéis otro chip que contiene 3 puertas NOR de 3 entradas. El fabricante nos da en sus hojas de especificaciones lo que se llama el pin-out del circuito, nos explica las entradas y salidas de cada una de las puertas, a qué pines están conectados. Por ejemplo esta primera puerta está conectado al pin 1A su primera entrada, al pin 1B su segunda entrada, y la salida sale por el pin 1Y. Las entradas de esta primera puerta NOR son los pines, vienen por los pines 1A, 1B y 1C, y la salida aparece por el pin 1Y, de manera que si nosotros quisiésemos hacer esta conexión, por ejemplo, pues lo que tendríamos que hacer es conectar un cable que fuese desde la salida 1Y de este circuito hasta el pin 1A del siguiente chip. Todas estas conexiones las hacemos normalmente primero en lo que se llama una "protoboard" de laboratorio, y cuando ya sabemos que el circuito que tenemos montado aquí funciona es cuando se pasa a la placa de circuito impreso. Esta protoboard es una placa pensada para que sea fácil conectar los chips entre sí sin necesidad de ir haciendo soldaduras, para facilitar las pruebas múltiples que necesitaremos hacer hasta estar seguros que el circuito funciona como queremos. Normalmente pondríamos los chips, cablearíamos las entradas y las salidas, nos daría una placa como ésta que tenemos aquí por ejemplo, y sobre esta placa es sobre la que haríamos pruebas conectando aquí la alimentación hasta estar seguros de que el circuito funciona exactamente como queremos y entonces lo pasaríamos a una placa de circuito impreso, que es la que realmente se va a utilizar en los equipos. Aquí el problema es, bueno, ... aquí tenemos 1, 2, 3, 4, 5, 6 chips, tal vez tenemos del orden de unas 30 puertas lógicas, ¿qué pasa si el circuito que queremos construir es muy grande? ¿Qué pasa si el circuito que queremos construir contiene por ejemplo 1.000 puertas lógicas? ... Y esto no es un circuito exageradamente grande. Cuando digo 1.000 puertas lógicas me refiero evidentemente al equivalente a 1.000 puertas lógicas que estará distribuido entre puertas lógicas, elementos de memoria, registros de desplazamiento, contadores, etc, etc. El problema es qué pasa con los circuitos grandes. En este caso tenemos la segunda opción que es construirnos nuestro propio circuito integrado. Este es un circuito integrado. Si fuésemos capaces de levantar la tapa esta que cubre al circuito integrado, el encapsulado, lo que veríamos aquí, en el centro, sería algo como el dibujo o la foto digamos que tenemos aquí. En la parte central hay una pequeña pastilla de silicio que es la que realmente contiene el circuito. Todo el circuito está aquí. Además podríamos ver una serie de cables, aquí se ven bastante bien, aquí se ven también bien, y realmente hay cables alrededor de toda la pastilla de silicio, que están conectando las entradas y las salidas del circuito, las entradas y la salidas de la pastilla de silicio, con estos conectores que a su vez están conectados con los pines del circuito, del chip. De manera que ahora el problema es: Desde nuestro esquema, cómo conseguimos construir esta pastilla de silicio para que implemente el circuito que nosotros queremos. Y aquí la Microelectrónica viene a echarnos una mano. La Microelectrónica tiene como objetivo el diseño de circuitos electrónicos sobre un material semiconductor. En la gran mayoría de los casos, en el 95% de los casos este material semiconductor es silicio. Lo hace aplicando repetitivamente una serie de procesos de implantación iónica, grabado, deposición, etc, que por su naturaleza deben hacerse en salas blancas especiales donde está muy cuidada la pureza del aire, está muy cuidado el que no haya motas de polvo de unos tamaños mínimos. Y lo que se consigue con los circuitos integrados es densidades de integración de millones de transistores en un único chip. Como ejemplo, el procesador Intel Core i7-Quad tiene algo así como 730 millones de transistores. Si recordamos que una puerta NAND de dos entradas tiene cuatro transistores, y por ejemplo un latch D, un punto de memoria, tiene del orden de seis transistores, os daréis un poco cuenta de la complejidad que significa 700 millones de transistores. El diseñador de circuitos integrados lo que hace es a partir del esquema del circuito construir lo que se llama el "layout". El layout es un dibujo que lleva codificado todos los procesos que hay que hacer en los distintos puntos de la superficie de la pastilla de silicio para conseguir el circuito que nosotros queremos. A partir de este layout, repitiéndolo numerosas veces se construyen una serie de máscaras, que cada una de ellas se aplica sobre una oblea de silicio para realizar uno de estos procesos, para por ejemplo definir el área activa, definir las difusiones P, hacer el grabado, etc. Todo esto son procesos que, bueno, no vamos a entrar en ellos porque sería muy complejo. Al aplicar todo este proceso tecnológico a la oblea de silicio, acabamos teniendo el circuito que nosotros queremos repetido multitud de veces. Lo que se hace a continuación es cortar esta oblea para aislar cada uno de estos cuadraditos. Cada uno de ellos es una pastilla que contiene nuestro circuito. Una vez están aisladas se pasan a introducir en lo que se llama el encapsulado, en el chip en sí, dando como resultado el chip con el circuito integrado que nosotros queremos. De manera que ahora el planteamiento es: Desde el esquemático, cómo podemos construir este layout. Evidentemente insisto en que esto es un proceso complejo que no vamos a explicar aquí en simplemente una lección de una semana, pero para daros una idea, este es el layout de un inversor, que contiene, os recuerdo, dos transistores. Los transistores de hecho están aquí, éste es un transistor y éste es el otro transistor. El diseñador del circuito integrado tiene que dibujar todas estas formas geométricas para describir el layout de un inversor. Os lo adelanto, ... ¡evidentemente no lo hace a mano! Quiere decir que si, un circuito puede llegar a tener millones de transistores, o si queréis, pensando que nosotros nunca vamos a fabricar o a implementar un circuito equivalente al Intel i7-Quad Core que hemos visto, pues bien en vez de millones de transistores podemos pensar simplemente en cientos de miles de transistores, quiere decir que el diseñador del circuito integrado tendrá que dibujar millones de formas geométricas porque, fijaros los rectángulos que hay en este layout que solo contiene dos transistores. Millones de formas geométricas. Cada una de ellas, cada color en este layout, representa o bien distintos materiales o bien distintos procesos a realizar sobre la oblea que, además, cada una de estas formas geométricas deben cumplir una serie de reglas de diseño, por ejemplo, las formas geométricas que representan el transistor deben tener unos tamaños mínimos de anchura y de profundidad. Las pistas por ejemplo de metal, que serían estos rectángulos azules que vemos aquí, han de estar separadas por una distancia mínima, porque sino se corre el peligro de que durante el proceso queden interconectadas. Es decir, todas estas formas geométricas entre sí han de cumplir unas ciertas reglas de diseño; y además tendremos para asegurar que el circuito funciona correctamente, hay que calcular los parámetros eléctricos asociados a cada dispositivo. Dependiendo del tamaño de los transistores tendremos un paso de corriente mayor o menor por ejemplo. Bien, la cosa es cómo se gestiona todo este nivel de complejidad, cómo se puede trabajar con este nivel de complejidad. Y la respuesta es que se trabaja utilizando dos aproximaciones, utilizando lo que se llaman estrategias de implementación (de todas ellas veremos muy brevemente al menos la opción Standard Cells, los Gate Arrays y las FPGAs), y utilizando por supuesto herramientas de síntesis que nos van a automatizar gran parte de todo este proceso. Y esto es lo que vamos a ver en la próxima lección. Así que para acabar diremos que hemos visto que los circuitos digitales y otros que no son digitales pueden implementarse con chips de pequeña y media escala de integración más placas de circuito impreso y hemos visto sus limitaciones, básicamente el tamaño del circuito. Hemos visto que la Microelectrónica nos permite construir circuito de millares o millones de transistores en un único chip, que para ello el diseñador del circuito integrado debe definir el layout, y el layout de un circuito tiene una complejidad considerable. Para tratar con esta complejidad se utilizan diversas estrategias de implementación y herramientas de síntesis automática.