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

 
 
> Разработка собственного PCI-контроллера, Использование регистрированных и не регистрированных сигналов
v_mirgorodsky
сообщение Dec 8 2005, 17:05
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Доброго времени суток smile.gif

Возникла необходимость разработки собственного PCI контроллера на FPGA. Есть несколько причин, по которым не подходят существующие решения и, надеемся, достаточно опыта для разработки собственного ядра.

В процессе проектирования ядра выяснилась необходимость работы с нерегистровыми сигналами шины PCI. При этом необходимость диктуется не столько эффективностью работы контроллера, как самой логикой формирования выходных сигналов по реакции на входные воздействия. Весь опыт предыдущей разработки говорит о ошибочности такого подхода, но похоже, для решения синхронизации передачи данных по шине другой альтернативы нет. Камнем преткновения стали сигналы FRAME и IRDY. Реально входная Target машина просто не успевает управлять логикой пользуясь регистровыми версиями этих сигналов maniac.gif

Существующий контроллер от PLDA, который мы исследовали для ознакомления не имел входных регистров на эти сигналы, однако имел множество примитивов типа LCELL на различных стадиях работы с этими сигналами. Как мы думаем, они использовались для устранения гонок на сигналах ohmy.gif

В первом приближении для использования нерегистровых версий сигналов для машин, логики и всего остального необходимо ограничить время распространения сигнала от пина до входа триггера через остальную логику. Выглядит так, что по стандарту PCI на сигналы накладываются жесткие ограничения на Setup. Таким образом, если время распространения сигнала плюс Setup триггера меньше времени Setup шины, то все должно быть шорошо cranky.gif

Есть ли у кого опыт написания собственных PCI ядер и кто как решал выше описанные проблемы? Какие есть мысли по данному поводу?

Хелп ас, плииииз, а то smile3046.gif


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
v_mirgorodsky
сообщение Dec 8 2005, 18:40
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Цитата(-Al- @ Dec 8 2005, 20:16) *
PCI шина - синхронная, таким образом ничто не мешает разбить весь процесс на такты.. на самом деле за 30нс (длительность одного такта на PCI при 33МГц) можно сделать все что угодно... вообще непонятно... в чем именно загвоздка? нрмально спроектированный PCI-автомат работает довольно шустро... мне свой Target удалось запустить на FLEX10K10 (в симуляторе граничная частота была ), а в конечном варианте на ACEX1K30-1 максимальная тактовая частота в симуляторе на PCI CLK составила 90МГц... может и не самый лучший вариант, но работает весьма стабильно даже на разогнанных системах где, например, PCI CLK ~ 42МГц (83МГц/2)


Если не использовать нерегистрированные FRAME и IRDY сигналы, то Target забирает у пользователя "лишние" данные. Фактически регистрированные данные необходимо выставить на внутреннюю шину за такт до того как они попадут на шину PCI, а регистрированная реакция мастера на эту фазу данных - IRDY будет готова для анализа еще на такт позже. Это было бы ничего, если ограничить количество фаз данных по PCI до одной и после каждой давать дисконнект, но в данном случае это приведет к резкому падению производительности. Дело скорее даже не в скорости, а в самом факте необходимости использования нерегистрированных версий сигналов, что раньше никогда не практиковалось.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post



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

 


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


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