CS-Swap / Progettazione-Sistemi-Digitali

Repository destinato alla condivisione di materiale e soluzioni per gli esercizi ed esami assegnati dal Prof. Massini Annalisaa in preparazione all'esame di Progettazione sistemi digitali
7 stars 0 forks source link

PSD #5 - 16 Gennaio 2024 #56

Open alem1105 opened 5 months ago

alem1105 commented 5 months ago

Adobe Scan 23 gen 2024 (4)_1

alem1105 commented 5 months ago

Al compito ho fatto cagare ma lo farei cosi':

module es(input logic x, clk, reset, output logic y);
    typedef enum [2:0] {A, B, C, D, E} stato
    stato attuale, prossimo

    always_ff @(posedge clk or posedge reset)
        if (reset) attuale <= A
        else attuale <= prossimo

    always_comb
        case (stato)
            A: if (x) prossimo = C else prossimo = B
            B: if (x) prossimo = C else prossimo = A
            C: if (x) prossimo = E else prossimo = D
            D: if (x) prossimo = A else prossimo = D
            E: if (x) prossimo = B else prossimo = E
            default: prossimo = A
        endcase

    assign y = if (state == C | state == D)
endmodule