Код
always @(posedge clk, posedge rst) begin
if(rst) begin
lfsr_q <= {16{1'b1}};
end
else begin
lfsr_q <= crc_en ? lfsr_c : lfsr_q;
end
end // always
А сброс (rst) подается?
И здесь вообще говоря должен быть не только сброс при включении питания, поскольку так модуль отработает только один раз.
always @(posedge clk or posedge rst)
begin
if(rst) // power-up reset
lfsr_q[15:0] <= 16'hFFFF;
else
if (NEW_CRC)
lfsr_q[15:0] <= 16'hFFFF; // start new crc calculation
else
if (crc_en)
lfsr_q[15:0] <= lfsr_c[15:0];
end
И старайтесь указывать везде разрядности. Полезная привычка..