Il est mon module:Ne pas bon module de registre à décalage rebouclés sur Verilog
module linear_feedback_shift_reg(clk, reset, data_out);
// PARAMETERS //
parameter REGISTER_WIDTH = 2; // width of initial and current states
parameter INIT_STATE = 0; // initialization state when reset process
parameter POLYNOMIAL = 3; // 0x11 -- x^2 + x + 1
parameter RESET_ACTIVE = 1; // reset process when reset port is RESET_ACTIVE
parameter CLK_ACTIVE = 1; // clk process when clk port is CLK_ACTIVE
// PORTS //
input wire clk;
input wire reset;
output reg data_out;
// VARIABLES //
reg [REGISTER_WIDTH - 1 : 0] polynomial;
reg [REGISTER_WIDTH - 1 : 0] current_state;
reg next_bit;
integer i;
// BEHAVIORAL
always @* begin
if(reset == RESET_ACTIVE) begin // reset process
current_state = INIT_STATE;
next_bit = 1'b0;
data_out = 1'b0;
polynomial = POLYNOMIAL;
end
else begin // clk process
if(clk == CLK_ACTIVE) begin
data_out = current_state[0];
next_bit = current_state[REGISTER_WIDTH - 1];
for(i = 0; i < REGISTER_WIDTH - 1; i = i + 1) begin
if(polynomial[i] == 1'b1) begin
next_bit = next_bit^current_state[i];
end
end
current_state = current_state >> 1;
current_state[REGISTER_WIDTH - 1] = next_bit;
end
end
end
endmodule
J'utilise Vivado 2017,1. Lorsque je lance la synthèse, le résultat est 0 LUT, 0 FF.
Liste des avertissements:
[Synth 8-3936] Trouvé registre interne non connecté 'polynomial_reg' et il est garni de '2' à des bits '1'.
[Synth 8-327] inférer de verrouillage pour la variable 'data_out_reg'
[Synth 8-327] verrou pour inférer variable 'current_state_reg'
[Synth 8-327] verrou pour inférer variable « polynomial_reg '
[Synth 8-3332] L'élément séquentiel (data_out_reg) est inutilisé et sera supprimé du module linear_feedback_shift_reg. [Synth 8-3332] L'élément séquentiel (current_state_reg [1]) est inutilisé et sera supprimé du module linear_feedback_shift_reg. [Synth 8-3332] L'élément séquentiel (current_state_reg [0]) est inutilisé et sera supprimé du module linear_feedback_shift_reg.
Quelle est l'erreur logique de mon module?
Vous calculez next_bit mais n'utilisez jamais. – Yahniukov
Ah oui! Merci d'avoir repéré l'erreur. J'ai mis à jour le code maintenant. –
Merci beaucoup pour l'aide – Yahniukov