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

 
 
> Разработка собственного 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
Ответов
VslavX
сообщение Dec 8 2005, 18:35
Сообщение #2


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Реально делался тагет на EPM7160xxx-10 - на 33МГц вообще не было никаких проблем в 10 нс спокойно все проходило в рамках спецификации PCI (кажись, там tsu 10 нс) Причем регистры были не на "чистые" IRDY, FRAME, TRDY а на их комбинаторную функцию - обычный автомат состояний как и во многих готовых ядрах.

Недавно делал PCI 66 МГц на EP1K30xxx-2, вот там с IRDY и FRAME пришлось сильно помучиться - сделать их через dedicated input (с порезом уже изготовленныйх плат). Но в tsu 3 нс мне на данной FPGA влезть не удалось, удовлетворился tsu<4.5нс, благо шина короткая и целиком на плате, и второй агент имеет tval существенно лучший чем стандартные 6 нс. Могу также сказать, что очень много времени провел в FloorPlan с временнОй оптимизацией - time-driven compilation в Квартусе - ацтой полный. Для плотных и быстрых проектов sad.gif все равно много критических цепей приходится "прибивать" руками через assignments.

Если у Вас мастер (то есть надо рулить FRAME и IRDY), то вход можно сделать dedicated как и в тагете, а выход подавать с отдельной ножки обычного I/O.
Go to the top of the page
 
+Quote Post



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

 


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


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