LINUX.ORG.RU

История изменений

Исправление Zubok, (текущая версия) :

Уже подзабыл все.

counter == 30 * 1000 * 1000

Вот в этот момент (и только в этот) cpu у тебя читает данные. А они к этому моменту уже готовы? У тебя выставление адреса, выставление данных модулем led для чтения, само чтение и сигнал write одновременно происходят по posedge. Такая пока догадка без проверки. Ты хотя бы попробуй сначала сделать write <= 0 и выставление адреса, а на заднем фронте clock (negedge) данные считать из data, т. е. разведи по времени.

addr <= 16'hF010;
write <= 0;

и 

tmp <= ~data;

Исправление Zubok, :

Уже подзабыл все.

counter == 30 * 1000 * 1000

Вот в этот момент (и только в этот) cpu у тебя читает данные. А они к этому моменту уже готовы? У тебя выставление адреса, выставление данных для чтения, само чтение и сигнал write одновременно происходят по posedge. Такая пока догадка без проверки. Ты хотя бы попробуй сначала сделать write <= 0 и выставление адреса, а на заднем фронте clock (negedge) данные считать из data, т. е. разведи по времени.

addr <= 16'hF010;
write <= 0;

и 

tmp <= ~data;

Исправление Zubok, :

Уже подзабыл все.

counter == 30 * 1000 * 1000

Вот в этот момент (и только в этот) cpu у тебя читает данные. А они к этому моменту уже готовы? У тебя выставление адреса, выставление данных для чтения, само чтение и сигнал write одновременно происходят. Такая пока догадка без проверки. Ты хотя бы попробуй сначала сделать write <= 0 и выставление адреса, а на заднем фронте clock (negedge) данные считать из data, т. е. разведи по времени.

addr <= 16'hF010;
write <= 0;

и 

tmp <= ~data;

Исходная версия Zubok, :

Уже подзабыл все.

counter == 30 * 1000 * 1000

Вот в этот момент (и только в этот) cpu у тебя читает данные. А они к этому моменту уже готовы? У тебя выставление адреса, выставление данных для чтения, чтение и сигнал write одновременно происходят. Такая пока догадка без проверки. Ты хотя бы попробуй сначала сделать write <= 0 и выставление адреса, а на заднем фронте clock (negedge) данные считать из data, т. е. разведи по времени.

addr <= 16'hF010;
write <= 0;

и 

tmp <= ~data;