¿Cómo generar una señal de habilitación cuando un valor de bus está en un rango muy pequeño?

0

Estoy tratando de construir un sistema de una sola placa MC68010, y las primeras cuatro palabras de 16 bits (lo estoy tratando como un sistema de 23 bits con dirección de palabra) de la memoria deben leer un valor constante (00100000h 00007C00h) por lo que la CPU sabe dónde encontrar la ROM. ¿Hay una buena manera de determinar cuándo la dirección, codificada en 23 pines, está entre 0 y 3? Lo que quiero hacer es OR juntar 21 de las líneas de dirección, creando una señal de habilitación que solo está activa cuando la dirección está dentro del rango. ¿Es esta la mejor manera de lograr ese resultado? En caso afirmativo, ¿cómo lo hago de manera eficiente? Si no, ¿cuál es la mejor manera?

    
pregunta the_rover

2 respuestas

0

Resulta que esto es menos complicado de lo que esperaba.

Primero, un poco sobre el '010. Cuando se inicia, lee el puntero de pila inicial de la dirección 0, y lee el contador del programa inicial de la dirección 2. En la dirección 4 está el comienzo de la Tabla de vectores de interrupción. Sin embargo, esta tabla, que comienza con el '010, puede reubicarse en la memoria. Esto significa que incluso si el puntero de la IVT hace referencia a la ROM en el reinicio, se puede cambiar para que apunte a una ubicación de RAM. Olvidé esto y asumí que las primeras cuatro palabras de la memoria tendrían que ser ROM, y el área que comienza con la quinta palabra tendría que ser RAM para almacenar un IVT mutable. Esto llevaría a dificultades con la selección de chips, ya que las primeras cuatro direcciones seleccionarían un chip diferente a los siguientes miles. Pensé que tenía que hacer algunos trucos con los interruptores DIP y las compuertas / decodificadores O para hacer funcionar esta incómoda memoria.

En realidad no lo hago. Puedo poner mi ROM de 64 kilovatios al principio del espacio de direcciones y almacenar los valores de inicialización al comienzo de la ROM. Luego, puedo tener un programa que cambia el puntero de IVT predeterminado con uno correcto que hace referencia a la RAM. De esta manera, evito la fea ROM de cuatro palabras y el IVT permanece en la memoria RAM donde pertenece.

    
respondido por el the_rover
0

En general, esta función se denomina decodificador .

Usted tiene razón en que, para esta instancia en particular, la función equivalente se logra al ORAR los 21 bits de orden más alto.

Un chip decodificador más típico tendrá varias salidas, cada una de las cuales irá a un rango diferente de los bits de entrada. Además, los 21 bits más anchos no son AFAIK comúnmente disponibles como un solo chip, pero podrían construirse combinando algunos decodificadores más pequeños.

    
respondido por el The Photon

Lea otras preguntas en las etiquetas