[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 16 октября 2001 г. 01:11
В ответ на: Вопрос к IgorK. отправлено Elresearch 15 октября 2001 г. 17:43

А чем вы осцилл. синхронизируете? FRAME#?
Но вообще-то вопрос стоит неправильно. Падение FRAME# - вот стартовое событие. Был-был-был '1' - упал в '0' и на этом же такте, когда он упал, AD[] IDSEL CBE[] несут информацию об адресе и команде. А момент перехода в '1' - это момент завершения транзакции. И ни по каким косвенным признакам на AD[] и CBE[] вы начало транзакции не опознаете. Target FSM в общих чертах как работает - по RESET попали в Idle (кстати посмотрите вашу FSM на этот счет, может случайно по RESET все состояния не активны и она как-бы никуда перейти не может?), если FRAME# акт. (упал) переходим на проверку AD[] CBE[] IDSEL и если транзакция наша переходим в S_data если чужая то в Bus_busy и в одном из этих состояний находимся до поднятия FRAME#, т.е. до завершения своей или чужой транзакции, затем снова Idle (через состояние Turn Around если была своя транзакция), затем ждем очередной FRAME#. И он (FRAME#) управляет этими процессами. На AD[] CBE[] IDSEL - вспомогательная информация, но не наоборот.
Объявите/нарисуйте регистры для всех входных сигналов: FRAME# IRDY# IDSEL AD[] CBE[], пусть они в схеме приходят Только На Эти регистры и защелкиваются естес. просто CLK приходящим, полагаю, с GCLKPADx (если Xilinx). Т.е. CLK делается глобальным и не инвертируется. Далее работайте только с этими защелкнутыми версиями сигналов, добавив к именам (чтобы не запутаться) окончания _REG. Формируемые вами AD[] TRDY# STOP# DEVSEL# и PAR тоже должны оканчиваться регистрами и триггерами. Сигналы разрешения (OE) для AD[] PAR и TRDY# STOP# DEVSEL# тоже защелкиваются (кстати для трех последних OE один и тот же). Я хочу сказать что на PCI нельзя выводить никакую комбинаторную логику.
Выведите из кристалла Target FSM наружу (если макетка) и смотрите осциллом Idle BusBusy S_data TurnAr. Они должны подчиняться FRAME#, не 'зависать' и между ними не должно быть зазоров.

--IgorK

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru