1.- ¿Que es un ASIC?

Un Aplication Specific Integrate Circuit o circuito integrado de aplicación específica, mejor conocido como ASIC por sus siglas en ingles, es un circuito integrado configurable que ha sido diseñado para un propósito u aplicación específica para un producto electrónico específico.

Con los últimos avances en las tecnologías de miniaturización y las herramientas de diseño, la complejidad máxima, y por ende la funcionalidad, en un ASIC ha crecido desde 5.000 puertas lógicas a más de 100 millones. Los ASIC modernos a menudo incluyen otros elementos prediseñados tales como:

  • Procesadores de 32-bit.
  • Bloques de memoria RAM, ROM, EEPROM y memoria flash.
  • DSP.
  • Amplificadores analógicos.
  • Otros tipos de módulos caracterizados por el consumidor tales como interfases o codificadores.

Este tipo de ASIC frecuentemente es llamado Sistema en un Chip, o SoC por sus siglas en inglés. Los diseñadores de ASIC digitales usan lenguajes descriptores de hardware (HDL), tales como Verilog o VHDL, para describir la funcionalidad de estos dispositivos [1]. Los niveles de configuración de un ASIC pueden estar en el campo de lo físico (construcción del hardware) o a nivel lógico (configuración por software). Ello depende del subconjunto o tipo de ASIC que se emplee en la figura 1 podemos observar algunas vistas de un ASIC.


Figura 1: Vista interna de unos ASIC´s

2.- Historia del ASIC

Desde los años 70, se ha llevado a cabo el desarrollo de la micorelectrónica creando nuevas tecnologías evolutivas para lograrlo, pero no fue sino hasta 1980 que los ingenieros de la compañía Ferranti, comenzaron a explorar las ventajas del diseño de un IC configurable o adaptable para un sistema o aplicación en particular mas allá de usar circuitos integrados estándar [2]. La microelectrónica crea el paso en el cual la implementación de IC's estándar puede lograrse utilizando funciones lógicas con uno o mas IC's configurables. Como la tecnología VLSI (Very Low Scale Integration) hace posible la construcción de un sistema con muchos componentes mas pequeños se pueden combinar muchos IC's estándares dentro de un IC configurable.

Ferranti empresa de Ukrania [3], fue la primera en producir los primeros arreglos de compuertas. La adaptación del arreglo se produce cuando es cambiada la mascara de interconexión metálica. Las ULA (Uncommitted Logic Array) consideradas como uno de los primeros IC´ssemiconfigurables desarrolladas, en principio tenían unos cientos de compuertas para luego extender la gamma y hacer otros modelos que incluyen elementos de memoria RAM.

Tipos y construcción de los ASIC´s

Estos IC's están hechos sobre una oblea de silicio de algunos micrones de grosor, cada oblea mantiene unos cientos de IC's llamados muertos [4]. Los transistores y el cableado están hechos de muchas capas cuyo número está entre unas 10 y 15 todas distintas entre sí, dispuestas una sobre la otra e interconectadas según los requerimientos. Cada capa tiene un patrón que es definido utilizando una mascara similar a una diapositiva de fotografía. La primera mitad de las capas definen a los transistores y la segunda mitad a las interconexiones entre ellos.

Algunos de los tipos mas destacados de ASIC´s los cuales serán descritos más adelante son:


  • Completmente configurables.
  • Semiconfigurables.
  • Dispositivos programables.

4.- ASIC´s Semiconfigurables

Para el caso de los ASIC mas utilizados tenemos a los semiconfigurables. En estos las celdas lógicas ya han sido preconfiguradas y solo pueden alterarse las configuraciones de todas las máscaras de interconexión. Al utilizar este método, el trabajo del diseñador se hace mucho más fácil. Aun para esta clase de ASIC's existen dos subcategorias las cuales son:

  • ASIC's basados en celdas estándar.
  • ASIC's basados en arreglos de compuertas.

ASIC's basados en celdas estándar (Standard-Cell-Based ASICs).

En Japón es un termino conocido coloquialmente como CBIC pronunciado como "sea-bick". Utiliza celdas lógicas prediseñadas tales como compuestas AND, compuertas OR, multiplexores y flip-flop's, se les conoce como celdas estándar [4]. en la figura 2 puede un esquema de un CBIC y en la figura 3 un esquema real de un CBIC hecho con un programa de diseño para ASIC.

Figura 2: ejemplo esquema interno de un CBIC.


Figura 3: Vista de un CBIC hecho con un programa de diseño.

Las áreas de las CBIC conocidas como bloques flexibles están compuestos por columnas de celdas estándar como una pared de ladrillos. Las áreas de las celdas estándar pueden ser utilizadas en combinación con celdas mucho más grandes o quizás con microcontroladores o microprocesadores conocidos como megaceldas. Las megaceldas también son llamadas megafunciones, bloques completamente configurables, macros de nivel de sistemas (SLM's), bloques fijos, núcleos, o bloques de funcionalidad estándar (FSB's).

Los diseñadores de estos ASIC's solo definen el lugar de las celdas estándar y la interconectividad dentro de un CBIC. Sin embargo, la celda estándar puede ser ubicada en cualquier lugar de la pastilla de silicio; esto permite que todas las mascaras de un CBIC puedan ser configurables para un consumidor en particular. La ventaja de CIBIC es que los diseñadores ahorran tiempo y reducen el riesgo al utilizar librerías de celdas precaracterizadas y probadas, diseñadas utilizando las técnicas de una celda completamente configurable. Adicionalmente cada celda estándar puede ser optimizada individualmente. Durante el diseño de cada celda de la librería, cada transistor ha sido elegido para maximizar la velocidad y el área que ocupa en el IC. La desventaja es el tiempo o costo de diseño o la compra de la librería de celdas estándarizadas y el tiempo que requiere fabricar todas las capas del ASIC para el nuevo diseño.

El diseño de celdas estándar permite la automatización del proceso de ensamble de un ASIC. Grupos de estas celdas pueden acomodarse en forma de columnas, las columnas forman pilas verticales para formar a su vez bloques flexibles rectangulares. Puede interconectarse a otro bloque de celdas estándar de otro bloque o con otros bloques completamente configurables. Por ejemplo, puede desearse incluir una interfaz específica o un microcontrolador junto con algo de memoria. El bloque del microcontrolador puede ser una megacelda fija, a partir de los bloques puede generarse memoria utilizando un compilador de memoria y un controlador de memoria personalizado que puede construirse dentro de un bloque de celdas estándar.

ASIC's basdos en arreglos de compuertas (Gate Array).

En un ASIC's basado en arreglo de compuertas los transistores están predefinidos en una oblea de silicio. Los patrones de definición de los transistores de un arreglo de compuertas y el elementos mas pequeño es replicado para hacer la base del arreglo, así como los dibujos de la porcelana en el piso, a este diseño primario se le llama la celda primitiva. Solo la capa superior tiene definida las interconexiones entre los transistores. Para distinguir este tipo de arreglo de compuertas de otros tipos de arreglos de compuertas este frecuentemente es llamado mascara de arreglo de compuertas o MGA por sus siglas en ingles [4]. El diseñador elige de una librería de arreglo de compuertas celdas precaracterizadas o prediseñadas. Las celdas lógicas de la librería de arreglo de compuertas frecuentemente son llamadas macros. La razón de esto es que, el diseño layout de la celda base es el mismo para todas y la interconexión entre ellas es lo que puede configurarse libremente, el diseño de un ASIC con arreglo de compuertas se hecho en un programa de diseño se muestra en la figura 4.

Figura 4: vista del diseño de un ASIC con arreglo de compuertas.

Puede hacerse la difusión entre varias obleas de silicio de varios consumidores según sea necesario. Utilizando las obleas de silicio prefabricadas se reducen los tiempos de metalización requeridos para hacer un MGA. Algunos de los diferentes tipos de ASIC's basados en arreglo de compuertas existentes son:

  • Arreglo de compuertas acanalados.
  • Arreglo de compuertas sin acanalado.
  • Arreglo de compuertas estructurado.

Estos términos son dados a los ASIC's de acuerdo a su modalidad de construcción, por ejemplo, cuando los transistores están acomodados en un MGA dejando un espacio entre las columnas de transistores para cablear se refiere al primer termino, en caso de no existir dicho canal entonces se utilizan las columnas de transistores no utilizados para el enrutamiento conexiones lo cual corresponde al segundo tipo. En un modelo estructurado de diseño se pueden observar ambos modos de construcción juntos dentro de un bloque configurable.

En la figura 5 puede observarse un arreglo de compuertas acanalado donde solo las interconexiones pueden ser configuradas, la interconexión utiliza espacios predefinidos entre las columnas de las celdas base y el tiempo de construcción puede tomarse entre dos días y dos semanas.

Figura 5: Esquema de un arreglo de compuertas acanalado.

En la figura 6 puede observarse la distribución de un arreglo de compuertas sin canales, aqui solo algunas de las mascaras de interconexión pueden configurarse. La densidad lógica es mucho más alta para este tipo de construcción.


Ffigura 6: Esquema de un arreglo de compuertas no acanalado.

En la figura 7 puede observarse un arreglo de compuertas estructurado, también es conocido como "masterimage", combina algunas de las características de los CBIC's y los MGA's. Una de las desventajas de los MGA's es el diseño fijo de la celda base del arreglo de compuertas, esto hace que la implementación de memoria sea de gran dificultad e ineficiente. En un arreglo estructurado de compuertas puede destinarse un área dedicada a una función específica lo cual resulta más cómodo para el diseño de celdas de memoria. En este tipo de arreglos solo las interconexiones son configurables y los bloques configurables pueden ser integrados al diseño.


Figura 7: Arreglo de compuertas estructurado.

En este último tipo de arreglos puede incrementarse el desempeño de un CBIC pero a un menor costo comparado con un MGA. Una desventaja de un arreglo de compuertas empotrado o embebido es que la función del elemento embebido es fija, por ejemplo, en un arreglo de compuertas empotrado que contiene 32 Kb de memoria, pero solo son necesarios 16 Kb de memoria entonces se desperdicia la mitad de la memoria. En la figura 8 puede observarse un diseño de un ASIC con arreglo de compuertas optimizado hecho en un programa de diseño.


Figura 8: Diseño de un ASIC con arreglo de compuertas optimizado.

Los ASIC's basados en arreglo de compuertas y los basados en celdas utilizan celdas predefinidas, pero la diferencia es que en una celda estándar puede cambiarse el tamaño de los transistores para optimizar el desempeño y la velocidad, pero el tamaño de los componentes en un arreglo de compuertas es fijo. Esto puede resultar en una disyuntiva entre el área de un arreglo de compuertas en el silicio.

3.- Los ASIC´s Completamente Configurable

Un ASIC completamente configurable tiene probablemente todos los elementos lógicos configurables y adicionalmente todas sus capas son configurables. Un microprocesador es un ejemplo de un de un circuito integrado completamente configurable, en él los diseñadores invierten muchas horas de trabajo para configurar completamente una sección de no mas de una micra cuadrada.

En este tipo de ASIC's se pueden diseñar una o todas las celdas lógicas, la circuitería o layout especificamente para un ASIC [4]. Esto posibilidad permite al diseñador dejar de lado la facilidad de usar celdas probadas y precaracterizadas para todo o parte del diseño. Esto es de provecho solo en caso de que las celdas lógicas existentes en las librerías no tengan propiedades deseables tales como velocidad de cálculo o si la celda es muy grande y consume mucha energía, puede darse el caso de que simplemente ninguno de los diseños disponibles de las celdas de los archivos o librerías sirvan para el propósito deseado. Cada vez menos IC's completamente configurables son diseñados puesto que existen problemas con ciertas partes especiales del ASIC que son muy difíciles de manejar.

Históricamente la tecnología bipolar ha sido utilizada para la precisión en funciones analógicas. La razón fundamental de ello es que en todos los circuitos integrados el apareamiento de las características entre los componentes de distintos IC's es mala pero entre los componentes de un mismo IC's es excelente. Para mejorar la diferencia entre ellos se procesan obleas de silicio por lotes donde se producen varios miles de IC's al mismo tiempo con mínimas diferencias de apareamiento entre si.

El apareamiento entre los transistores es crucial para la operación de un circuito. Para el diseño de IC's se deben localizar pares de transistores uno junto al otro. La física del dispositivo dicta que un par de transistores bipolares podría siempre aparearse mucho más que los transistores de tecnología CMOS del mismo tamaño.

La tecnología bipolar es empleada para el diseño de los ASIC's completamente configurables analógicos porque proporciona mejor precisión. Aunque la realidad es otra, a pesar de las malas propiedades del uso de la tecnología CMOS para la electrónica analógica su empleo se ha incrementado, dos razones de ello son:

  • Es la tecnología mas disponible en el mercado para fabricar IC's, muchos ASIC's estan construidos en esta tecnología.
  • Permite mucho mayor nivel de integración ya que se requieren funciones analógicas y digitales dentro de un mismo IC.

Por este motivo lo diseñadores de ASIC's han encontrado maneras de implementar funciones analógicas utilizando tecnología CMOS con técnicas que aprovechan la exactitud de los diseños analógicos bipolares, la tecnología se denomina BiCMOS.

5.- Ruteos y Capas de Interconexión

En los ASIC's modernos se utilizan dos, tres o más niveles de capas de metal para interconexión, esto permite que los cables crucen diferentes capas en la misma forma en que utilizamos el cobre en diferentes capas de un circuito impreso. En un CMOS de dos niveles las conexiones a las entradas de una celda estándar y las salidas pueden hacerse utilizando el segundo nivel de metal de interconexión. En la tecnología de tres niveles las conexiones pueden ser para la misma celda lógica. De esta manera se puede hacer un enrutamiento mucho más sofisticado tomando la capa extra de metal de la capa, en la figura 9 se muestra un ejemplo de la distribución de capas de un ASIC de esta categoria.

Figura 9: Vista del perfil de un ASIC

Una conexión que requiere atravesar una columna de celdas estándar emplea una pieza de metal que es utilizada para pasar una señal a través de una celda o un espacio vacío de una celda, a esto se le llama "feedthrough" su ubicación puede observarse en la figura 10.

Figura 10: Ruteo de un CBIC através de una celda.

Los buses VDD y GND dentro de la celda estándar normalmente usan el nivel mas bajo de interconexión. El ancho de cada columna de celdas estándar, pueden ajustarse para que puedan alinearse utilizando espaciadores. Los buses de energía son interconectados a rieles verticales de energía adicionales que se encuentran en la segunda capa. Usualmente el diseñador puede controlar el número y el ancho de los rieles verticales de energía conectados a las celdas estándar durante el diseño físico del dispositivo. Un diagrama de distribución del esquema de energía de un CBIC puede verse en la figura 11.

Figura 11: Distribución de pistas para una celda.

Todas las mascaras de un CBIC pueden ser configuradas, estas pueden albergar megaceldas tales como SRAM, SCSI, decodificadores MPEG y ser ubicadas en el mismo IC junto con celdas estándar. Las megaceldas pueden ser suministradas mediante librerías de la compañía que fabrica el ASIC junto con modelos completos que son mucho mas avanzados y que están en prueba. Las librerías de ASIC también suministran compiladores para generar DRAM flexible SRAM o bloques de ROM.

Para lógica que opera sobre múltiples señales a través de un bus de datos el uso de celdas estándar puede no ser el estilo de diseño de ASIC más eficiente. Algunas librerías de ASIC's proveen compiladores de rutas de datos que automáticamente generan lógicas de rutas de datos. Una librería de ruta de datos típicamente contiene celdas tales como sumadores, substractores, multiplicadores y ALU's.

Las librerías de celdas estándar o arreglo de compuertas pueden contener cientos de celdas logicas diferentes, incluyendo funciones combinacionales con múltiples entradas, así como latches y flip-flops con diferentes combinaciones de reset, preset y opciones de reloj. Las librerías de las compañías de ASIC's, proveen a los diseñadores un libro de datos en formato electrónico con todas las descripciones funcionales junto con los diagramas de tiempo para cada elemento contenido en sus librerías.

6.- Dispositivos Lógicos Programables PLD´s

Son IC's estándar de la familia de ASIC´s que están disponibles en configuraciones estándar desde catálogos de partes y se venden en grandes volúmenes a muchos consumidores. Sin embargo, los PLD's pueden configurarse o programarse para crear partes configurables para una aplicación específica, los PLD's utilizan diferentes tecnologías para permitir la programación del dispositivo. Entre las principales características de los PLD's se puede destacar:

  • No poseen mascaras o capas ni celdas lógicas configurables.
  • Rápido diseño.
  • Un solo gran bloque de interconexiones programables.
  • Poseen una matriz de macroceldas lógicas que usualmente consiste de un arreglo programable lógico seguido por un flip-flop o latch.

7.- Field Programable Gate Arrays FPGA

Cuando la complegidad del arreglo de compuertas programable se incrementa entonces se le denomina al ASIC como FPGA, y esta es la unica diferencia entre los PLD´s y el FPGA, de hecho algunas de las compañias que fabrican ASIC´s FPGA denominan a sus productos PLD´s complejos [4]. El FPGA es uno de los más nuevos miembros de la familia de los ASIC´s, su importancia creció rápidamente reemplazando al uso de la familia TTL en los sistemas de microelectrónica. Algunas de las características de este tipo de ASIC´s son:

  • Ninguna de las máscaras son configurables por el consumidor.
  • Se emplea un metodo para programar las interconexiones y las celdas lógicas básicas.
  • El núcleo es un arreglo regular de celdas lógicas básicas que puede implementarse como una logica secuencial a base de flip-flop´s.
  • Una matriz de interconexiones programables rodea a las celdas lógicas.
  • Celdas programables rodean al núcleo del dispositivo.
  • El diseño solo tarda algunas horas.

8.- Pasos para el Diseño de un Sistema Utilizando un ASIC

En la figura 12 se muestra una secuencia lógica con los pasos para el diseño de un ASIC. Los pasos del 1-4 son parte del diseño lógico, los pasos del 5 - 9 son parte del diseño físico [4].

Figura12: Pasos involucrados en el diseño de un ASIC.

  1. Entrada del diseño: Un diseño es cargado en un sistema de diseño de ASIC's puede utilizarse un lenguaje de descripción de hardware HDL.
  2. Sintesis lógica: Usa un HDL (VHDL o Verilog) y una herramienta de síntesis lógica que produce una lista de redes la cual consiste en una descripción de las celdas lógicas y sus interconexiones.
  3. Partición del sistema: Divide un sistema en piezas detalladas del ASIC.
  4. Simulación prelayaut: chequea si el sistema funciona correctamente.
  5. Planeamiento de piso: Acomoda los bloques de la lista de redes de conexión en un chip.
  6. Ubicación: Decide la localización de las celdas en un bloque.
  7. Ruteo: Establece las conexiones entre las celdas y los bloques.
  8. Extracción: Determina la resistencia y la capacitancia de las interconexiones.
  9. Simulación Post-layout: en este paso se revisa si el diseño es capaz defuncionar con las cargas agregadas a las interconexiones

9.- Modología de Diseño de un ASIC´s

Una importante clasificación dentro de este contexto es la metodología empleada para el proceso de diseño de un ASIC [5]. A continuación tres categorías que lo describen.

  1. Diseño estático sincronizado: esta primera categoría está basada en sensibilidad de los flancos y los esquemas de bases te tiempo de fase simple. Todos los elementos de almacenamiento son sensibles a los flancos de una señal de reloj común. Si el reloj para, todo el sistema podría estar en estado estático indefinidamente, esta técnica de diseño es igualmente aplicada a los dispositivos programables los cuales son un complemento muy utilizado de los ASIC´s para muchos sistemas. Esta es una categoría importante porque la mayoría de los sistemas diseñados hoy en día están construidos bajo este estándar.
  2. Diseño multifásico estático: estos circuitos están basados sobre un sistema de detección de niveles multifásicos de reloj. Usualmente existen dos fases de reloj pero existen casos donde se emplean hasta cuatro fases. Estos diseños tienen latch´s en cascada los cuales son sensibles a los niveles de un reloj principal, estos funcionalmente son equivalentes a flip-flop´s sensibles a flancos, solo una simple modificación es requerida para hacer que el match sea sensible a los flancos. Niveles multifásicos son realmente deseables cuando el chip desarrollado es el corazón del sistema, tal como un microprocesador. Los ASIC´s son usualmente utilizados como chips auxiliares en un sistema.
  3. Diseño multifásico dinámico: estos circuitos dinámicos requieren que sus señales de reloj puedan ser prolongadas para mantener sus estados. Aquí se usa la técnica de propagación de los transistores, almacenamiento capacitivo y precarga de buses. Es la metodología más avanzada.

10.- Tendensias Económicas para el Uso de los ASIC´s

La figura 13 muestra una curva que muestra los costos asociados con el uso de cada uno de los principales tipos de ASIC´s respecto a la cantidad.

Figura13: Costos de los ASIC´s respecto a su número de producción.

La figura 14 refleja los costos de los ASIC´s respecto al numero de compuertas contenidas en un solo chip.

Figura 14: Costo de los ASIC´s en funcion del numero de compuertas.

11.- Tecnicas Inadecuadas para el Diseño con ASIC´s

A continuación se describen algunos de los circuitos o elementos que no son muy bien aceptados para ser incluidos en un ASIC.

Multiplicadores de frecuencia:

Una técnica ocacionalmente utilizada es un diseño lógico discreto para producir el doble de la frecuencia de reloj generando un pulso corto utilizando una linea de retardo y una compuerta OR exclusiva. Esta técnica no es muy deseada pero permitida en el diseño con ASIC´s cuando así se requiera. Solo se emplea en UARTS el cual requiere un diseño especial y procedimiento de pruebas. Las multiplicaciones de frecuencia suelen ser implementadas utilizando PLL´s externos. En la figura 15 puede verse un ejemplo de lo descrito anteriormente.

Figura 15: Multiplicador de frecuencia.

Lineas de retardo:

Las lineas de retardo son extermadamente sensibles a las variaciones de proceso tales como la temperatura. Consiste en multiples compuertas sucesivas que producen una latencia en la propagación de la señal. Esto no es necesario cuando se emplean técnicas de diséño sincrinizado. Cuando se utilizan arreglos de retardos las pruebas tienen una mayor dificultad. En la figura 16 puede verse una tipica linea de retardo.


Figura 16: Linea de retardo.

Monoestables:

Los diseños de moestables al igual que las lineas de retardo y los multiplicadores de frecuencia están bastante limitados en el diseño con ASIC´s su implementación generalmente se hace fuera del IC.


Figura 17: Monoestable

Osciladores sobre el chip:

Al igual que los circuitos monoestables y las lineas de retardo, estos son pñrocesos dependientes de la frecuencia, muchos constructores de ASIC´s, suministran estos osciladores como parches de libreria. Es preferible utilizar osciladores de tipo cristal.

Flip-flop RS:

La seria desventaja del uso de este flip-flop´s asíncronicos es que su estado de salida no puede garantizarse cuando ambas entradas van a estado alto. los glitches o ruidos pueden producir estados indeseables en las salidas, por ello su uso en el núcleo no es favorable y tampoco es requerido porque se dispone de este mismo elemento pero en version síncrona. En la figura 18 se muestra un ff RS.

Figura 18: Flip-flop RS formado asincronico.

flip-flop JK:

No son deseables porque su uso involucra un mayor uso que el uso de un tipo D en el ASIC, adicionalmente sus entradas asincronicas pueden causar otros problemas de inestabilidad en el sistema. Figura 19, flip-flop JK.


Figura 19: FF JK

Flip-flop implícito:

Un error de diseño podria ocurrir sin que el diseñador tenga cuidado de las consecuencias de la creación de un flip-flop implícito al conectar un lazo de realimentación en un circuito combinacional. El resultado es un flip-flop RS y deberia ser evitado.

Mal uso de los elementos de control:

Decodificadores y comparadores son puestos a funcionar en situaciones peligrosas. Esto se debe a las diferencias de longitudes entre las rutas de datos y consecuentes variaciones en los retardos de las compuertas desde sus entradas o sus salidas. Conectando a un decodificador o un comparador directamente a uçla entrada de un reloj o un borrado asincrónico, quizás esto puede hacerse al lachear data condicionalmente en un flanco de reloj, esto es un error de diseño con serias consecuencias. En la figura 20 se muestra uno de estos casos.

Figura 20: Mal uso de elementos.


Salida de un latch alimentando la señal de reloj de otro:

Convencionalmente los diseñadores tienen que intentar eliminar situaciones peligrosas y glitches al lachear las salidas de comparadote y decodificadores utilizando un flip-flop tipo D. sin embargo, la salida del flip-flop cambia durante el muestreo y el tiempo de mantenimiento del latch de muestreo. La data en la salida de la fuente del flip-flop es inválida porque este comenzó el muestreo en el punto de cambio y la salida del flip-flop es inválida debido a la violación del seteo y el muestreo. Otro problema es cuando la misma data es lacheada en dos pulsos de reloj consecutivos. El decodificador o comparador cambia de nivel bajo a alto por la primera condición de la data muestreada, como no hay cambio en la salida del decodificador entonces este no responde a la segunda petición. Figura 21 muestra el caso.


Figura 21: Salida de un latch a señal de reloj de otro.

Gated clock:

Cuando es controlada una señal de reloj por la petición de un latch mediante una compuerta crea una mala situación porque aparece un corto punto al término de dos peticiones condicionales debido al retardo del reloj a la salida Q y el tiempo del flip-flop tipo D. En la figura 22 puede observarse una señal de reloj controlada por una compuerta y la condición de otro elemento.

Figura 22: Gated Clock.

Flanco negativo del reloj:

Una forma de intentar evitar el problema es utilizando latch tipo D sensibles al flanco de bajada del reloj. Esto resuelve que el flip-flop tenga problemas de seteo y muestreo de la data pero no resuelve el problema de muestreo de dos condiciones.

Los tipo D sensibles al flanco de bajada del reloj tienen dos desventajas, ellos reducen a la mitad el periodo disponible del reloj y por lo tanto los circuito como los filtros digitales no pueden operar a la misma velocidad que un latch síncrono. También los flancos negativos producen un fenómeno llamado conformación de pulsos. Esto se debe a la baja movilidad de los transistores tipo P y pueden producir un retardo diferencial entre la respuesta a los flancos de subida y de bajada. en la figura 23 se observan los diagramas de tiempo y los ejemplos de elementos involucrados.

Figura 23: Problemas con flancos de bajada.

Borrado asíncrono usando pulsos de reset cortos:

Un intento para borrar asincrónicamente y condicionalmente en contra del estado del circuito, encuentra un problema similar al del clock Gated. De acuerdo con esto se producen desventajas en los borrados asíncronos de los Flip-flop´s RS.

Borrado asíncrono-pulsos de reset largos:

Para este caso la función de reset es derivada a un latch adicional, esto es un avance en la versión previa pero la desventaja es que el flip-flop es mantenido en estado de reset hasta que se cumple el próximo periodo del reloj dejándolo no disponible durante un periodo. A este fenómeno se le llama ciclo muerto.

Generador de reloj central:

Muchos diseños lógicos están basados en un generador central de pulsos de reloj. Este tiene como generador primario un reloj externo y genera un número de señales secundarias de fracciones de la velocidad del reloj primario por procesos de división. Aunque el generador de reloj puedo haber sido diseñado utilizando principios de diseño sincronizado, el generador de reloj central tiene una seria desventaja, las señales de reloj secundarias pueden estar muy sesgadas respecto a la primaria lo cual implica que la señal primaria no pueda ser utilizada. La figura 24 muestra el caso.

Figura 24:Generador de reloj central.

12.- Tecnicas para el Desarrollo de ASIC´s Sincronos

A continuación se mencionan algunas de las técnicas que se utilizan para resolver algunos de los problemas relacionados al diseño con ASIC´s

  • Uso de partes primitivas sincronicas.
  • Ff tupo D con borrado sincronico.
  • Flor-flop tipo E
  • Flip flor tipo T.
  • Ff RS sincronico
  • Ff tipo R
  • Generacion de estados
  • Ejecución incondicional de estados
  • Ejecución condicional de estados
  • Generador central de habilitación
  • Borrado sincronico
  • Eliminación de seg de reloj

13.- Empresas o Organizaciones Fabricantys de ASIC´s

Chartered

cPackets

Fujitsu

Freescale

IBM

Infineon Technologies

MHS Electronics

MOSIS

NVIDIA

NEC

Samsung

SMIC

Texas Instruments

TSMC

UMC

X-Fab