JBurt2
New Contributor
7 years agoI got the following warning 10240 inferred latch on a variable. Is this a problem? if so how do I fix it.
module SPI_OUTPUTS(input ReSet,
input SPI_CLK,SPI_CS,SPI_DIN,output SPI_DOUT,output reg [24:1] Outputs = 0);
reg [23:0] SPI_shift = 0; //SPI Shift Reg
reg Start = 0;
assign SPI_DOUT = (Start == 0) ? Outputs[24] : SPI_shift[23];
always @(posedge SPI_CLK or posedge SPI_CS or negedge ReSet) begin
if (ReSet == 0) begin
Outputs[24:1] <= 0;
SPI_shift[23:0] <= 0;
Start <= 0;
end else begin
if (SPI_CS == 1) begin //On Pos Edge of CS save spi_shift reg
if (Start)
Outputs[24:1] <= SPI_shift[23:0];
SPI_shift[23:0] <= 0;
Start <= 0;
end else begin
if (!Start)
SPI_shift[23:1] <= Outputs[23:1];
else
SPI_shift[23:1] <= SPI_shift[22:0];
SPI_shift[0] <= SPI_DIN;
Start <= 1;
end
end
end
endmodule