Esercizio 3.1 – Progettare la logica di forwarding per la seguente sequenza:
add x1, x2, x3 add x4, x1, x5Indicare i segnali di forwarding da EX/MEM e MEM/WB verso ID/EX.
Soluzione (in breve):
module alu (
input [31:0] a, b,
input [2:0] alu_control,
output reg [31:0] result,
output zero
);
always @(*) begin
case(alu_control)
3'b000: result = a + b;
3'b001: result = a - b;
3'b010: result = a & b;
3'b011: result = a | b;
3'b100: result = a ^ b;
3'b101: result = a << b[4:0];
3'b110: result = a >> b[4:0];
3'b111: result = $signed(a) >>> b[4:0];
endcase
end
assign zero = (result == 0);
endmodule
Il libro “Struttura e Progetto dei Calcolatori” resta un capolavoro, ma assicurati di studiare l’edizione RISC-V. Dimentica il PDF piratato che si ferma al 2005. Cerca la versione aggiornata, prendi carta e penna (o un simulatore) e inizia a disegnare la tua datapath.
Il computer non è più una scatola nera. Con RISC-V, puoi costruirlo tu stesso, istruzione dopo istruzione. Esercizio 3
Hai già iniziato a progettare con RISC-V? Quale simulatore usi? Scrivimelo nei commenti!
Ecco una proposta di report dettagliato basato sul classico testo di architettura dei calcolatori (molto probabilmente riferito all'opera di David A. Patterson e John L. Hennessy, adattata al set di istruzioni RISC-V). Indicare i segnali di forwarding da EX/MEM e
Questo report è strutturato come una scheda di analisi e sintesi del contenuto del libro, ideale per un contesto accademico o professionale.