ROM oe/cs

ROM oe/cs

de Alexis Alfonso -
Número de respuestas: 4

Hola, en el teórico donde se introduce el tema OE y CS se presenta una rom como la de la imagen, para construir una rom de 2Kx16 a partir de roms de 1Kx8.

La duda que me queda es, la entrada CS de la rom construida, para funcionar como tal, ¿no depende del valor de entrada A10? porque es el valor que se eligió para habilitar las salidas de una o de otra rom conectándola a los OE respectivos, con la lógica de ANDs.

En otras palabras, si quisiera poner en cero la salida de la rom construida usando CS, no me basta con poner CS = 0 sino que además debo tener la precaución de que A10 tenga un valor lógico que habilite alguna de las 2 rom. Entonces, entiendo que el CS de rom final no funciona tal como se definió (independiente de las entradas).




Espero quede clara la duda.


Gracias   

En respuesta a Alexis Alfonso

Re: ROM oe/cs

de Gustavo Brown -
Alexis,
La rom de tu dibujo es de una ROM de 2Kx8
Antes que nada comentar que las entradas de dirección (A0..A10) tienen que tener todas algún valor lógico (0 o 1). No deberían tener tercer estado. Si fuese el caso es porque algo en el circuito está mal armado.

De todas maneras en general funcionaría bien puesto que la salida de cada ROM individual sigue las siguientes reglas (evaluarlas en el orden en que siguen aqui):
- Si la entrada OE vale 0, la salida es tercer estado
- Si la entrada OE vale 1:
- Si la entrada CS vale 0, la salida es todos 0
- Si la entrada CS vale 1, la salida es el contenido de memoria de la dirección dada por las entradas A0..A9
La entrada OE siempre tendrá un valor lógico (0 o 1) puesto que la misma está conectada a partir de la salida de un AND con lo cual nunca puede ser tercer estado.

Ahora mirando el circuito entero podemos ver que la entrada OE de las ROMs individuales están conectadas de tal forma que o bien ambas son 0 (cuando la entrada OE de la rom general vale 0), o bien una de ellas tendrá 0 y la otra 1 puesto que cada AND tiene como entrada a A10 o A10 negado

Saludos,
Gustavo
En respuesta a Alexis Alfonso

Re: ROM oe/cs

de Sergio De Cola -

Si la entrada CS de la ROM construida (de 2Kx8, no de 2Kx16) está en 0, estarán en 0 las salidas de ambas ROMs constituyentes (1Kx8) y por tanto la salida de la ROM construida estará en 0 independientemente de cual sea el valor de A10 (y siempre que el valor de OE sea 1). 

Si CS está en 1, la salida tendrá el valor de la salida que corresponda.

Esto corresponde a la definición de lo que hace la entrada CS.

Espero que haya quedado claro.

Saludos.

En respuesta a Sergio De Cola

Re: ROM oe/cs

de Alexis Alfonso -
Gracias por las respuestas. De todas formas no termino de entender algo.

¿Por qué las entradas de la rom construída (A0...A10) "tienen que tener todas algún valor lógico. No deberían tener tercer estado" ? ¿No podría ser, la nueva rom, parte de un circuito más general donde circunstancialmente reciba Z en sus entradas? De hecho, estamos construyendo una nueva rom que puede mandar Z a sus salidas, y esa rom podría ser usada para construir otras. O capaz no estoy entendiendo bien el tema.

Suponiendo entonces (tal vez equivocadamente) que la entrada A10 puede valer Z, entonces entiendo que ambas compuertas AND no tendrían definido un valor de salida, y por lo tanto la combinación de entradas (de la rom construída) CS = 0, OE = 1 no garantiza que la salida sea cero, cuando sí debería hacerlo.

Gracias y disculpas si doy vueltas sobre un asunto tal vez muy básico.
En respuesta a Alexis Alfonso

Re: ROM oe/cs

de Sergio De Cola -

El OE se usa para implementar el OR cableado, donde una de las salidas "unidas" estará habilitada y pondrá un valor lógico. Esto hace que, en principio, toda entrada a un circuito estará en un nivel lógico. 

Si esto no fuera así, una entrada unida a una salida que está en "tercer estado" adopta, generalmente, el nivel lógico 1, pero claramente sería una situación no deseable. Toda entrada debe tener un nivel lógico definido y lo anterior debería ser una excepción.

El ejemplo que mencionás  por mas que A10 estuviera en Z, al estar en 0 el CS, la salida de la AND estaría en 0 y por tanto en 0 la entrada de las ROMs usadas para construir la más grande. El problema puede darse con el OE=1, que no necesariamente generaría el OE=1 en la entrada de las ROMs y la salida no pasaría a un nivel lógico. En la práctica posiblemente funcione por lo dicho anteriormente que "Z" es tomado como "1".

Sin embargo volviendo a lo del comienzo, no debería darse que A10 esté en Z.

Saludos.

Sergio.