Προς το περιεχόμενο

Τestbench για dcache_lfsr


paranoid_gr

Προτεινόμενες αναρτήσεις

Δημοσ.

O κώδικας που υλοποιεί το lfsr της dcache είναι ο εξής.

module lsu_dcache_lfsr (/*AUTOARG*/

// Outputs

out,

// Inputs

advance, clk, se, si, so, reset

);

 

input advance;

 

input clk, se, si, so, reset;

 

output [1:0] out;

 

reg [4:0] q_next;

wire [4:0] q;

 

 

/*

always @ (posedge clk)

begin

out = $random;

end // always @ posedge

*/

 

// always @ (posedge clk)

// begin

// q[4:0] <= q_next[4:0];

// end

 

always @ (/*AUTOSENSE*/advance or q or reset)

begin

if (reset)

q_next = 5'b11111;

else if (advance)

begin

// lfsr -- stable at 000000, period of 63

q_next[1] = q[0];

q_next[2] = q[1];

q_next[3] = q[2];

q_next[4] = q[3];

q_next[0] = q[1] ^ q[4];

end

else

q_next = q;

end // always @ (...

 

assign out = {q[0], q[2]};

 

dff_s #(5) lfsr_reg(.din (q_next),

.q (q),

.clk (clk), .se(se), .si(), .so());

 

endmodule // lsu_dcache_lfsr

 

Έχω κάνει το testbench και το πρόβλημα μου είναι οτι q δεν παίρνει ποτέ τιμή με αποτέλεσμα αν δωσω στο advance τιμη το q_next μένει undefined και αμα δεν πάρει το q τιμή δεν μπορεί να πάρει τιμή και το οut.

 

Καμιά βοήθεια κανείς??

 

το testbench είναι σε verilog.

Δημοσ.

O κώδικας που υλοποιεί το lfsr της dcache είναι ο εξής.

 

 

Έχω κάνει το testbench και το πρόβλημα μου είναι οτι q δεν παίρνει ποτέ τιμή με αποτέλεσμα αν δωσω στο advance τιμη το q_next μένει undefined και αμα δεν πάρει το q τιμή δεν μπορεί να πάρει τιμή και το οut.

 

Καμιά βοήθεια κανείς??

 

το testbench είναι σε verilog.

 

Κάνε post το tb σου να δούμε τι γίνεται.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...