|
Q91 + modelsim ae 6.5 + avalon, непонятная проверка сигнала writedata |
|
|
|
Feb 8 2010, 15:12
|

Гуру
     
Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359

|
Есть самодельный компонент SOPC, который получает данные по Avalon-ST, записывает их в память (для простоты on-chip), читает оттуда и выдает на TFT. То что приходит по Avalon-ST пишется в FIFO, из которого данные и пишутся в память по Avalon-MM. Все это дело моделируем в modelsim. Он выдает следующее предупреждение: Цитата 525 ns: VFB_11_0_VWR_writedata did not heed wait!!! Смотрю чё там: Код //VFB_11_0/VWR waited last time, which is an e_register always @(posedge clk or negedge reset_n) begin if (reset_n == 0) active_and_waiting_last_time <= 0; else active_and_waiting_last_time <= VFB_11_0_VWR_waitrequest & (~VFB_11_0_VWR_read_n | ~VFB_11_0_VWR_write_n); end Код //VFB_11_0_VWR_address matches last port_name, which is an e_process always @(posedge clk) begin if (active_and_waiting_last_time & (VFB_11_0_VWR_address != VFB_11_0_VWR_address_last_time)) begin $write("%0d ns: VFB_11_0_VWR_address did not heed wait!!!", $time); $stop; end end Мне непонятно, о чем меня предупреждают? Что не так с сигналами записи?
Эскизы прикрепленных изображений
--------------------
Быть. torizin-liteha@yandex.ru
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Feb 9 2010, 05:44
|

Гуру
     
Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359

|
Цитата ну это авалон так работает, при любой операции нужно ждать свой wait_request, это для разделения полосы пропускания шины между устройствами. иначе одно устройство может забить весь канал. нужно просто еще одно условие в проверку добавить в операциях чтения/записи. так, как у вас сейчас сделано, вообще говоря неправильно - в момент записи в память все остальные операции блокируются, для систем реального времени это м.б. недопустимо. Безусловно, про wait_request я не забыл. Забыл, что схитрил для эксперимента: перевернул clk FIFO, с которого читаю данные для записи в мастера (т.к. первый байт иначе неверный, на рисунке между двумя курсорами). Хитро придуман тест...
Эскизы прикрепленных изображений
--------------------
Быть. torizin-liteha@yandex.ru
|
|
|
|
|
Feb 9 2010, 06:51
|

Гуру
     
Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359

|
Теперь перейдем к более сложной картинке. В предыдущей данные для записи менялись в неположенное время и это было хорошо заметно. Теперь та же ситуация с чтением: Цитата # Break in Module VFB_11_0_VRD_arbitrator at D:/altera/modelsim/VFB_11_test/sopc1.v line 368 2625 ns: ~VFB_11_0_VRD_read_n did not heed wait!!! Причем ошибка возникает только в месте, где курсор поставлен, соседние транзакции не ругаются.
Эскизы прикрепленных изображений
--------------------
Быть. torizin-liteha@yandex.ru
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|