реклама на сайте
подробности

 
 
> SOPC модуль - чтение из sdram, что-то я застопорился
RHnd
сообщение Nov 30 2007, 16:18
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Учу свой переферийный модуль побайтово читать данные из памяти. Задача, вроде, тривиальная, однако где-то я застопорился.
Итак, код выглядит примерно так:
Код
assign master_write=1'b0;
assign master_writedata=32'd0;
assign master_byteenable=4'b1111;

always @(posedge clk) begin
    if (State==FirstState) begin//установка запроса
           master_address<=Addr;
           master_read<=1'b1;
           State<=SecondState;
    end
    else begin //ожидание снятия waitrequest и чтение данных
           if (!master_waitrequest) begin
               master_read<=0;
               Data<=master_readdata[7:0];
               Addr<=Addr+32'd1;
               State<=FirstState;
           end
    end
end


Смотрел сигналтабом, что выставляется на шинах - вроде, все правильно. Выставился адрес, выставился запрос на чтение. Выставился waitrequest. По сбросу waitrequest сбросился и запрос чтения. Но вот данные, выставленные на master_readdata, меня расстраивают. Первый байт читается правильно, а далее читается какой-то совершенно другой байт (каждый раз один и тот же), причем этого второго (как и последующих) байта в памяти по данному адресу и рядом нет (проверял дебагером ниоса). Компонент в сопсе создан, вроде, без ошибок. Адреса, выставляемые по версии сигнал таба, совпадают с адресами из дебагера ниоса. Кеша данных в системе нет, да и все равно первый байт читается верно.
Подскажите, где может быть загвоздка. help.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01905 секунд с 7
ELECTRONIX ©2004-2016