[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено IgorK 10 октября 2001 г. 00:59
В ответ на: Ответ: (+) отправлено Олег К 09 октября 2001 г. 07:45

Обязательно нужно переделать логику формирования REQ#. GNT# вашей картой может быть получен внутри чужого цикла, который только начался (причем Исключительно Внутри - на чипсетах VIA Lite для AMD Athlon/Duron). И такая ситуация может зациклиться до бесконечности, т.е. гарантировано зависание. Получается - убран REQ# - практически через два такта убран GNT# (арбитр шины не следит за транзакциями) и на следующем такте передан другому master-y. И все это, повторяю, внутри чужой транзакции.
Summary. На то что где-то получен GNT# внимания обращать не нужно. REQ# остается активным до входа шины в состояние IDLE и выборки собственного FRAME# (при полученном GNT#). Это заставит арбитр удерживать GNT# для *вашей карты*. REQ# деактивируется при входе Master FSM в адресную фазу => На такте 'n' убран REQ#, на такте 'n+1' выставлен FRAME# - без зазора.
P.S. Состояние DEVSEL#=0, TRDY#=1 совершенно допустимо.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru