Open mpuntous opened 4 weeks ago
Hola @mpuntous, El rom_dataout, como se indica en el diagrama del enunciado, viene de la ROM, y corresponde a una línea de 36 bits de largo, el excel no está de ninguna forma conectado al código de Vivado, este es una ayuda para ustedes para que puedan manejar las señales y formar su propio opcode. El flujo del código dado un archivo .txt de instrucciones vendría siendo así:
MOV A, 5
, tu MuxA debería escoger el registro A, tu MuxB debería escoger el literal y la ALU debería hacer la operación de MOV.Ustedes en VIvado deben poder manejar esas señales dada una instrucción. Con respecto al loadPC, esta es una señal que indica que debe hacerse un salto a otra instrucción, sin embargo, cuando se lee un salto condicional (ej: jump carry), este solo debe ejecutarse si las flags lo permiten, estas flags deben pasar de la ALU al registro Status a la Control Unit.
Y como funciona la señal INC A? ya que A y el 1 usan el mismo mux, no debería usar 2 ciclos?
No necesariamente, tú en tu assembler puedes manejar el caso del INC A como otra instrucción que hace lo mismo pero que es más fácil de ver (spoiler: ADD A, Lit con Lit = 1), de esta forma no necesitas hacer dos ciclos :).
El rom_dataout que va a la control_unit de que consiste? los 20 bits que salen de ahí son los del excel de señales? pero no encajan con la cantidad, los demas como funcionan? el opcode como se debe usar en la control_unit? y el loadPC viene ya como señal o se determina con las flags?