Estoy intentando leer de un bus SPI en modo estatico , es decir solo usando su CLK , CS ,MISO , MOSI.
Si uso "always @(posedge sclk) " puedo leer los bytes que se reciben.
El problema lo tengo cuando CS==1 , ahi deberia resetear los contadores y no recibir nada pero si uso "always @(posedge sclk , posedge cs)" se vuelve todo loco , sera porque los flipflops solo tienen una entrada de clk o no se.
Es con vivado para una placa cora Z7 que usa un Zynq-7000
Código: Seleccionar todo
//always @(posedge sclk , posedge cs) //
always @(posedge sclk) //
begin
if(cs == 1'd0) begin // CS ==0 leemos del bus usando su clk
si_reg <= {si_reg[6:0],sio[0]};
so_reg <= {so_reg[6:0],sio[1]};
if (spi_count == 3'd7) begin
spi_count <= 3'd0;
reg_spi_rec_flg1 <= 1'd1;
end else begin
spi_count <= spi_count + 3'd1;
reg_spi_rec_flg1 <= 1'd0;
end
end else begin // CS !=0 reset contadores y no leeemos
spi_count <= 3'd0;
si_reg <= 8'd0;
so_reg <= 8'd0;
reg_spi_rec_flg1 <= 1'd0;
end
end // always @(posedge sclk)