Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Подключение к PCI (страница 2)

Версия для печати (настроить)
Страницы: 1 2

Новая тема | Написать ответ

Подписаться

Автор Тема:   Подключение к PCI
misyachniy
Member

Сообщений: 87
Откуда: Kyiv
Регистрация: Февраль 2002

написано 26 Августа 2004 11:13ИнфоПравкаОтветитьIP

Помучил народ на IXBT, а теперь сюда пиришел :-)
Во первых нужно очертить задачу по точнее.

Простейшее target устройство влезает в EPM3032.
Для того чтобы плата работала достаточно, отвечать по шине D15..0 на все конфигурационные запросы 0000.
Для спецификации PCI 2.1 требуется только уметь отвечать на запрос по поводу Vendor/Device ID.
Спецификация 2.2 требует еще регистры +01 +02 и +0B от начала конфигурационного пространства.

Таким образом с регистром базового адреса нужно 5*32 =160 макроблоков для PCI 2.2.
Так что в 256 должно влезть.

Если идет борьба за каждую копейку, то не нужно делать плату совместимую со стандартом 2.2 достаточно 2-х ID и базовый. Паритет не использовать.

Скорости 10 вполне хватает.
Тактирование чипа управляющего PCI происходит с частотой 66Мгц(период 15 наносекунд)
При записи в PCI устройство на одном фронте выставляются данные(значения бит), на следующем фронте выдается сигнал тактирования.
На сдедующем (третьем) фронте данные меняются(при работе без тактов ожидания).
То есть сигнал в правильно разведенной плате легко добегает в самый дальний уголок CPLD.
Я встречал реализации в которых, полубайт C/BE защелкивается в регистре

ADDRESS_LATCH rocess(CLK, pci_state)
begin
if (CLK'event and CLK = '1') then
if (pci_state = PCI_IDL) then
ADDR <= AD;
CMD <= CBE;
end if;
end if;
end process;

После того как данные защелкнулись их надо декодировать, и декодер должен открывать шину данных на запись или чтение.

То есть только после CLK по шине PCI начинается декодирование и открытие буферов.

Обычно нужно фиксировать только 4 значения передаваемые по шине PCI конфигурационные чтение/запись и
чтение/запись регистра или памяти.

Таким образом если:
1)Защелкивать не значение передаваемое по C/BE(и AD если несколько регистров используется) уже декодированые состояния сигналов чтения/записи.
2)Обращатся к плате только 32 разрядными словами (конфигурационные обращения и так 32 разрядное).

То 10 наносекун вполне приемлемая скороcть.

Я уже предлагал использовать PCI IDE контроллер.
У него есть базовый регистр. Один 16 разрядный регистр и несколько 8 разрядных уже оганизованы два сигнала CS и 3 ножки адреса.
Изучив стандарт ATA 3 или 4 можно собрать простенький контроллер на EPM3032 который будет открывать/переключать шинники для чтения записи.

Таким образом сэкономится время и деньги на разработку.
Так как ваша разработка, на сколько я понял, единичная.


NiM
Рё-нин

Сообщений: 355
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 26 Августа 2004 12:53ИнфоПравкаОтветитьIP

В отпуске был, однако. Долго не читал.
Полностью разделяю мнение коллеги misyachniy - если это одиночная разработка,
предолженый им вариант АБСОЛЮТНО оптимален в затратном плане.
Касательно же быстродействия - ЕЩЁ РАЗ НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ ВСЕМ НАЧИНАЮЩИМ
ПОЛЬЗОВАТЕЛЯМ СЕМЕЙСТВА MAX от Altera : проэктируйте с учётом особенностей и
возможностей РЕАЛЬНОЙ макроячейки, не позволяйте компиллятору синтетических ячеек -
если они у Вас есть - значит Вы сделали что-то, чего сами не понимаете.
Коротче - учите матчасть ! Алтеровские даташиты плохого не скажут.
P.S.
У меня работает PCI bus-master (33MHz) на EPM9320RC208-20 (!!!) и ничего,
вполне хватает быстродействия.

V-ctor
unregistered
написано 17 Ноября 2004 09:43  ПравкаОтветитьIP

Самый быстрый , но не самый дешевый вариант таргета например такой (реально работает) ADSP2185+EPM6064+PCI9052 (PCI9052 ~30$)
МК однозначно не подходит, это даже смешно обсуждать.
В принципе таргет можно самому написать и уложиться в EPM3xxx,но если нет большого опыта по плис, а времени с полгода нет, то нех пытаться.

NiM
Рё-нин

Сообщений: 419
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 17 Ноября 2004 19:05ИнфоПравкаОтветитьIP

PCI9052 - это колобаха от PLX или что-то в этом
духе ? Вещь хорошая, спору нет - только слегка в себе
В том плане, что ежели ваш backplan-device имеет немеряную
буферизацию или по сути своих обменов совершенно асинхронен
- то это действительно "лягушонка в коробчёнке".
А ежели буферизации нехватает, али какая продвинутая
синхронизация потребна (что между нами говоря, одно и тоже)
тогда нехорошо будет.
Кроме того, не знаю как в Unreg-ии, а у нас в Питере
просто так пойти и купить штучку PLX9054 не просто.
Кстати - не просветите, что такое EPM6064 ?
Или это опять "фифект фикции" и имеется в виду EPM7064S ?

Al-dr
Junior Member

Сообщений: 1
Откуда: Cankt-Peterburg
Регистрация: Декабрь 2004

написано 28 Декабря 2004 15:13ИнфоПравкаОтветитьIP

Ответьте новичку. Соседи делают по разному: кто использует специализированную м/сх, а кто- только начинает делать проект в Altere. Мне скорости должно хватить 10Мб/с, и хочу использовать target. До этого проектировал только в Max+plus2, с Quartus дело не имел. Мегафункции PCI для Flex10К (под Max9.6 или Max10.2)найти не могу, придется делать самому. Реально-ли за 3 месяца?

NiM
Рё-нин

Сообщений: 432
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 29 Декабря 2004 12:08ИнфоПравкаОтветитьIP

Если делать только target, запретить бурстовый режим, использовать только
prefetched mode для чтения|записи(т.е. режим обмена - всегда все 32 бита) и
печатная плата уже есть - да, реально.
В EPM7128STC100-15(10) таковой target вполне влезет.
Если плату нужно водить, следует добавить месячишко-другой.
Если хочется на слепыше - я бы не советовал

Al-dr
Junior Member

Сообщений: 2
Откуда: Cankt-Peterburg
Регистрация: Декабрь 2004

написано 29 Декабря 2004 12:39ИнфоПравкаОтветитьIP

Спасибо. А почему только prefetched mode? Как говорит программист, может потребоваться nonprefetched...

NiM
Рё-нин

Сообщений: 433
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 05 Января 2005 11:23ИнфоПравкаОтветитьIP

Жутко извиняюсь - добрался до сети только сегодня .
А только prefetched mode потому, что делать честную разблю(я?)довку
для побайтового(словного) маппирования - слишком дорогое удовольствие.
И толку с этого мало. Разьве что для реальной моды и IO-доступа.
Но я бы посоветовал маппировать на память - там проще блок выделить.
По-моему, Ваш программист делает пальцы веером,чтобы от(3.14)здеться.
Кто ему мешает маскировать лишние байты при чтении DW, хотел бы я знать ?
А какие могут быть проблемы при записи - этого я вообще не понимаю .

andrew_kv
Member

Сообщений: 33
Откуда: Таганрог, Россия
Регистрация: Январь 2004

написано 06 Января 2005 11:24ИнфоПравкаОтветитьIP

Где можно скачать PCI-мегафункцию? Подкиньте ссылку...

Al-dr
Junior Member

Сообщений: 3
Откуда: Cankt-Peterburg
Регистрация: Декабрь 2004

написано 06 Января 2005 19:37ИнфоПравкаОтветитьIP

Спасибо. Буду разбираться.

NiM
Рё-нин

Сообщений: 435
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 11 Января 2005 11:26ИнфоПравкаОтветитьIP

to andrew_kv : мега-функцию ЧЕГО и для КАКОГО семейства ?
На сегодняшний день существуют как минимум 2 мегафункции для FLEX(10k) и им подобных,
сиречь
ACEX,Cyclon,APEX - так называемые pci_a и pci_b. Первая - target, вторая - master.
Функции эти довольно тяжёлые, примерно по 500 LCELL. Они есть например на Альтеровском диске
с MAX+Plus II v10.2 (Web-edition 2001).
// Когда-то были мегафункции для 7000Е(S) ячеек так на 160 с гаком - но это только
target c элементами master-а, да и живьём не видел - сильно лицензионные были.//
Только размер директория с ними не кислый, метров 5(точно не помню, могу посмотреть).
Там ещё документация кой-какая, .scf-ы и т.п. Так что имеет смысл волочь целиком.
Если скажете размер своего "ящика" - могу нарезать на кусочки и послать. Но если есть
возможность - рекомендую найти сам диск. Там ещё много чего есть .

Al-dr
Junior Member

Сообщений: 4
Откуда: Cankt-Peterburg
Регистрация: Декабрь 2004

написано 11 Января 2005 12:43ИнфоПравкаОтветитьIP

Уважаемый NiM! Не кинете мне письмецо на apoi@vniira-ovd.com для беседы.

NiM
Рё-нин

Сообщений: 436
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 11 Января 2005 19:44ИнфоПравкаОтветитьIP

-A-Propose = my e-mail not visible, yet ?
Well, i'll try to introduce myself ?

NiM
Рё-нин

Сообщений: 447
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 31 Марта 2005 13:13ИнфоПравкаОтветитьIP

Вниманию заинтересованых лиц :
Буде администрация сайта не против, предполагаю выложить
на сайт PCI target без бурст-моды для MAX7000.
Исходная идея - только проэкт в MAX-е с .scf-ами,
поясняющими суть оного. Проэкт полностью открытый,
в .gdf-е. (Если потребно перевести в VHDL - обсуждаемо)
В качестве дополнения могу выложить gerber-файлы
для минимальной печатной платы - два слоя, кроме самой
алтерины (TQFP144) и разъёма под Backplan - интерфейс
(32 разряда данных + _W/R , etc) нихрена больше нет.

Ваши мнения, пожелания и комментарии приветствуются.

Al-dr
Junior Member

Сообщений: 7
Откуда: Cankt-Peterburg
Регистрация: Декабрь 2004

написано 04 Апреля 2005 12:18ИнфоПравкаОтветитьIP

Было-бы замечательно!

NiM
Рё-нин

Сообщений: 448
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 04 Апреля 2005 19:29ИнфоПравкаОтветитьIP

to Al-dr: А, это опять Вы !
Что именно было бы замечательно ? - круг вариантов очерчен.
Поясняю суть моего вопроса -
Вариант 1) по согласованию с администрацией сайта выкладывается на раз,
но , как Вы сами понимаете, без комментариев. Т.к. я не знаю, что в них
писать. А отвечать на туеву хучу писем с вопросами типа :
"А почему Вы сделали так а не эдак, и вообще пример из учебника
Фомина или как его там на VHDL показывает, что так делать ни в коем
случае нельзя, потому что от этого улучшается быстродействие, но
ухудшается переносимость ?" нет никакой возможности.
Однако и говорить "жрите что дают" не есть традиция open source.
Хотелось бы сузить круг возможных вопросов до дюжины-другой,
такого рода вариант позволит навалять коммнетарии дня за четыре.

Как я понимаю, у Вас возникли определённые вопросы и сложности -
давайте их сюда, глядишь так дюжину и наберём. Кстати, e-mail у меня
пока ещё не изменился, ежели в форуме спрашивать неудобно.

Весельчак У
Moderator

Сообщений: 6578
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 12 Апреля 2005 13:44ИнфоПравкаОтветитьIP

NiM
Можно высылать или мне, или сразу на info(at)skunksworks.net.
А вопросы, я думаю, надо сделать потом в виде FAQ.
Мне кажется, что VHDL будет интереснее.

NiM
Рё-нин

Сообщений: 455
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 12 Апреля 2005 16:36ИнфоПравкаОтветитьIP

Тогда уж AHDL. А то для 7000S и 7000A(B), не говоря
уже о 3000 .acf-ы существенно разные получаются.

Весельчак У
Moderator

Сообщений: 6579
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 13 Апреля 2005 02:12ИнфоПравкаОтветитьIP

NiM
Тогда уж AHDL.
Ещё лучше.

NiM
Рё-нин

Сообщений: 456
Откуда: ныне Санкт-Петербург
Регистрация: Март 2001

написано 13 Апреля 2005 13:23ИнфоПравкаОтветитьIP

Добре. Предложение господина У принято.
Завтра выложу проэкт по сценарию #1.
С минимальными текстовыми комментариями, типа что есть что.
Любителей A и протчих HDL прошу пока не беспокоиться .

P.S. Да, кстати - этот target под 33MHz standart edition.
И поддержки 66MHz в рамках данного проэкта мною не будет.

Весельчак У
Moderator

Сообщений: 6685
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 25 Мая 2005 02:06ИнфоПравкаОтветитьIP

NiM
И где?

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики
Страницы: 1 2

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика