¿Los múltiples chips que salen a un bus durante unos nanosegundos causarán daños?

5

Estoy trabajando en un diseño de CPU de fabricación casera, con la mezcla habitual de EEPROM paralelas, RAM estáticas y registros, de tres estados en un solo bus de 8 bits.

Mi / lógica de salida habilitada para tres chips deshabilitados en el databus es:

/Ken = /a
/Ren = /a nor /b
/Men = /a nor (/b nor /b)

¿Debo preocuparme por los pocos nano-segundos durante los cuales más de un pin / oe de chip será bajo, debido al diferente número de puertas?

¿Saldrá corriente de una salida alta de un chip a una salida baja de otro chip, por menos de 10 ns causará daño?

Si causara daños, ¿cómo se evitó esta situación en los años 70 y 80?

Actualización: Las fichas son:

pregunta fadedbee

5 respuestas

6

Hay varias formas de crear habilitaciones no superpuestas para dispositivos de bus. Quizás lo más simple es agregar la señal del reloj a sus ecuaciones. Entonces, solo se habilita un dispositivo a la vez mientras el reloj está alto y ningún dispositivo está habilitado mientras está bajo. (O viceversa, si está utilizando el flanco ascendente del reloj para capturar datos).

Normalmente, la función de habilitación de salida de la mayoría de los dispositivos es lo suficientemente rápida para que "perder" la mitad de cada ciclo de esta manera no cause un problema de tiempo. Pero si lo hace, una solución es modificar el ciclo de trabajo del reloj según sea necesario.

    
respondido por el Dave Tweed
6

Por lo general, la situación se evitó porque las salidas eran de colector abierto en lugar de triple estado, con una resistencia pullup a + 5 V completando el circuito. Si un dispositivo redujera la línea compartida a un nivel bajo y el otro se abre, la línea compartida se mantendrá baja. Si solo hubo un conflicto por un tiempo muy corto, esto no causaría ningún problema.

Para un ejemplo práctico de esto, el bus CAN se usa ampliamente en la industria (particularmente en automóviles) y funciona exactamente de esta manera. La salida de cada dispositivo es de colector abierto con un límite de corriente, y un dispositivo (y solo uno) contiene la resistencia de extracción. En un contexto industrial / automotriz en el que los dispositivos pueden salir mal, y los cables también pueden tener un cortocircuito alto o bajo, esto garantiza que la salida de ningún dispositivo pueda dañar a otro dispositivo, sin embargo, sale mal. Además, el controlador de bus CAN para cada dispositivo supervisa el bus para verificar que se encuentra en el estado esperado e informa de los errores del bus a la aplicación si encuentra un conflicto en el que otra persona está pisando los datos.

En la práctica, es poco probable que dañe las fichas. Sin embargo, dará picos instantáneos de corriente en las salidas donde el cortocircuito es alto y bajo, lo que hace cosas desagradables a las emisiones de EMC. Los diseñadores de los años 70 y 80 estaban mucho menos preocupados por la compatibilidad electromagnética (EMC), por lo que es probable que muchos circuitos salieran por la puerta exactamente con este problema.

    
respondido por el Graham
3
  

Si causara daños, ¿cómo se evitó esta situación en los años 70 y 80?

diseño manual que compensó el retraso.

Si esto causará daño depende de su tecnología, por lo que no se puede dar un consejo general; sin embargo, para que un transitorio de 10ns tenga efecto, su sistema necesita tener un ancho de banda > 100MHz, así que eso es algo que puedes evitar activamente.

    
respondido por el Marcus Müller
3

Si un dispositivo está diseñado para generar datos de la manera más rápida y fuerte posible cuando se afirma / OE, la contención del bus podría generar importantes corrientes de pico que podrían causar ruidos no deseados en los rieles de suministro, incluso si no causan daños físicos. Por otro lado, un dispositivo de este tipo puede ser capaz de conducir el bus a un estado válido en menos de medio ciclo de reloj, en cuyo caso, la conexión / OE con el reloj puede evitar dicha contención. Algunos otros dispositivos, sin embargo, no pueden conducir el autobús tan rápido y necesitarían tener más cerca de un ciclo completo para conducir el autobús. Sin embargo, los dispositivos que conducen el autobús más lentamente son menos propensos a pasar una corriente excesiva durante los períodos momentáneos de contención del dispositivo.

Una diferencia de un par de nanosegundos en cuando los dispositivos reciben señales de habilitación no es tan importante como el tiempo con el que los dispositivos responden a las señales de habilitación. Si un dispositivo tarda en liberar el bus de datos, puede ser necesario controlar su señal de activación de modo que se libere antes de tiempo para asegurar que para cuando otro dispositivo intente conducir el bus, el primer dispositivo haya dejado de conducirlo.

    
respondido por el supercat
2

Hay al menos 2 problemas aquí: sobretensiones térmicas y transitorios VDD.

Vamos a poner algunos números en esto. Suponga que los transistores tienen una extensión de silicio de 20 micrones por 20 micrones y 10 micrones de profundidad. El volumen, por lo tanto, es de 20 * 20 * 10, o 4,000 micrones cúbicos. Los bipolares de tecnología más antigua, con colectores bajo la región del emisor de base, tienen aproximadamente este tamaño. El calor específico del silicio es 1.6 picoJoules / cubicmicron / ° C. Nuestro dispositivo es 4,000 * 1.6pJ = 6.4 nanoJoules / ° C. ¿Cuánto aumento de temperatura podemos generar, en 10 nanosegundos de pico térmico?

Use 5 voltios y use 100 miliAmps (un pico bastante bueno, entre 2 transistores de conductor de bus opuestos). La potencia es de 0.5 vatios y la energía es de 0.5 nanoJoules por nanosegundo. En 10 nanosegundos, la energía es de 5 nanoJoules.

Ahora simplemente divida: 5nJ / 6.4nJ == 0.8 ° C de aumento. Supuestos distribuidos uniformemente dentro del volumen 20 * 20 * 10U. Dado que la mayoría del volumen bipolar es el colector enterrado, "uniforme" es un supuesto válido. Así 1 ° C es respuesta, por conductor de bus. Si hay 8 controladores en un paquete, ¿cambia el número de 1 ° C? No, porque las fuentes de calor están distribuidas en 8 regiones diferentes, y la ocurrencia transitoria es un ciclo de trabajo bajo.

Ahora para ese segundo problema: el timbre VDD. Los IC de los primeros conductores de bus tenían 8 circuitos, con solo un GND y un VDD. El colapso ferroviario fue un gran problema. ¿Por qué?

Suponga 10nS inductancia de GND + VDD. Supongamos que se cargan 8 cargas, 50 pF cada una, con un rendimiento de 10 ns. O 2 voltios / nanosegundo de velocidad de giro.

Dado que 1pF a 1v / ns necesita 1mA, nuestra salida única necesita 100mA. Las ocho salidas necesitan 800 mA. Suponga que las sobrecargas de carga aumentan de la corriente CERO a 800 mA, en la mitad del tiempo, o 5 ns. ¿Qué es el rebote del carril?

V = L * dI / dT = 10nH * 0.8amp / 5ns = 1.6 voltios. Por lo tanto, la GND se mueve hacia arriba en 0.8v y la VDD se mueve hacia abajo en 0.8v.

Como asumí un pulso de corriente triangular (subiendo y bajando en 5 ns), la tasa de carga es menor que la necesaria. Para cumplir con la temporización del pulso de carga completa, necesitamos duplicar las corrientes pico, y el rebote se convierte en 1.6 voltios tanto para GND como para VDD.

    
respondido por el analogsystemsrf

Lea otras preguntas en las etiquetas