В процессе разработки программа принимает данные от МК по SPI, после в плис эти данные разбираются, обрабатываются и ПЛИС должен вернуть данные с датчика в МК в виде 5 байт.
Работа с датчиком описана в модуле Humidity, в данном модуле в регистр HYM побитно набираются данные. После завершения приема данных от датчика переводим данные в регистр HYM2. HYM2 передаем в модуль SPI. Далее, пока передача по SPI не активна, заносим данные в HYM_send. Который уже в процессе обмена по SPI возвращается в МК.
Проблема в том, что если помещаю в HYM2 константу - все работает идеально, процесс передачи мониторю ТТЛ-анализатором. Т.е. и ТТЛ и мк принимают все идеально верно.
Код
HYM2<=40'b1111010101010101010101010101010101010101;
Если отсылаю значение регистра, то приходят только первые 2 байта, хотя ТТЛ-анализатор исправно видит все байты, как и в первом случае.
Код
else if (FSDR_fallingedge==1 & id_gorb!=1 & shet>30 & shet<75)
begin
HYM <= {HYM[38:0], 1'b1}; //заносим 1
shet<=0;
end else if (FSDR_fallingedge==1 & id_gorb!=1 & shet>10 & shet<35)
begin
HYM <= {HYM[38:0], 1'b0}; //заносим 0
shet<=0;
end else if (shet>100) begin
shet<=0;
mstate<=3; //стейт в ожидание новой передачи
HYM2<=HYM;//40'b1111010101010101010101010101010101010101;
end