paranoid_gr Δημοσ. 1 Απριλίου 2011 Δημοσ. 1 Απριλίου 2011 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.
Dr.Fuzzy Δημοσ. 1 Απριλίου 2011 Δημοσ. 1 Απριλίου 2011 O κώδικας που υλοποιεί το lfsr της dcache είναι ο εξής. Έχω κάνει το testbench και το πρόβλημα μου είναι οτι q δεν παίρνει ποτέ τιμή με αποτέλεσμα αν δωσω στο advance τιμη το q_next μένει undefined και αμα δεν πάρει το q τιμή δεν μπορεί να πάρει τιμή και το οut. Καμιά βοήθεια κανείς?? το testbench είναι σε verilog. Κάνε post το tb σου να δούμε τι γίνεται.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.