Habiendo creado la CPU especificada en "Los elementos de los sistemas de computación", pensé que intentaría diseñar una CPU simple de 8 bits como un desafío divertido, con miras a implementarlo en un FPGA. Sin embargo, el libro anterior hace varias concesiones y me dejó algunas preguntas con respecto al diseño "real" de la CPU.
Digamos que tengo doce máquinas de estado diferentes (cada una para una instrucción diferente) que, en algún estado, necesitan manipular una línea de selección de registro de 2 bits en mi CPU para obtener datos en el registro correcto. ¿Cómo deben conectarse físicamente cada una de esas FSM a esas líneas de control? Pensé en simplemente usar un multiplexor, pero luego la pregunta es: ¿cómo puedo alimentar correctamente las líneas de selección de salida en ese MUX para controlar qué entrada se convierte en la salida? Entiendo bien cómo funciona un MUX en un escenario simple, pero las interconexiones se vuelven difíciles de entender una vez que lanzas un montón de máquinas estatales.
He leído Máquinas de estados finitos para CPU simples - que hace un buen trabajo al discutir el papel de las máquinas de estado y su funcionamiento básico en una CPU, pero no toca la implementación física.
En resumen, puedo crear FSM, una ALU, etc., pero estoy confundido sobre cómo las FSM necesarias para afectar las instrucciones se conectan físicamente a las líneas de control que realmente instruyen a la ALU / registros / etc.