Понятно. Попробовал сразу все заработало)). Частоту подал на clck_in 200Мгц , правильно ?
Код
spi_slave spi_uc(csn,datain,wr_rd,dataout,tx_rdy,rx_rdy,tx_err,rx_err,CLOCK,RESET,SDOUT_UC,SD
I_UC,CS_UC,SCLCK_UC);
//--------------------------------------------------------------------------//
//--------------------------------------------------------------------------//
always@(posedge CLOCK )
begin
if(RESET == 1)
begin
rxtxrdwr <= 8'd0;
adressreg <= 8'd0;
getadres <= 1'b0;
csn <= 1'b1;
wr_rd <= 1'b1;
for(initdatafor = 0; initdatafor < 8'd255;initdatafor = initdatafor + 8'd1)
begin
dataINuc[initdatafor] <= 8'd0;
dataOUTuc[initdatafor] <= 8'd0;
end
end
else begin
if(CS_UC == 1)
begin
getadres <= 1'b0;
end
if(tx_rdy || rx_rdy) begin
if(tx_rdy) begin
csn<= 1'b0;
wr_rd<= 1'b0;
rxtxrdwr <= 8'd1;
if(getadres == 1)
begin
datain <= 20;//dataOUTuc[adressreg];
end else
begin
datain <= 8'd0;
end
end
else if(rx_rdy) begin
csn<= 1'b0;
wr_rd<= 1'b1;
rxtxrdwr <= 8'd2;
if(getadres == 0)
begin
getadres <= 1'b1;
adressreg <= dataout;
end else
begin
dataINuc[adressreg] <= dataout;
end
end
end else
begin
if(rxtxrdwr == 1)begin
csn<= 1'b1;
wr_rd<= 1'b1;
rxtxrdwr <= 8'd0;
end else if(rxtxrdwr == 2)begin
csn<= 1'b1;
wr_rd<= 1'b1;
rxtxrdwr <= 8'd0;
end
end
end
end
//--------------------------------------------------------------------------//
Единственное почему то последний байт не доходит например отправляю с плис 20 в мк приходит 10 и тд.
Микроконтроллер вначале пробовал с mems датчиком что бы проверить правильность настройки spi интерфейса в микроконтроллере.