|
FPGA на шине PCI, Сработает ли Plag&Play? |
|
|
|
 |
Ответов
|
Jul 8 2010, 14:05
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(vmp @ Jul 8 2010, 15:33)  Для PCI время документировано и составляет 1 секунду (точнее, сколько-то тактов PCICLK). Сейчас лень искать, но эта цифра приведена в спецификации. Так что если успеете за 1 секунду загрузить свою FPGA, то все будет в порядке. Для PCIe это время составляет 0.1 секунды. Учитывая немалый объем конфигурационных данных, даже для минимальной GX15 требуется поток данных в 50 Мбит/с. Альтера кстати предупреждает, что это время можно выдержать только при Passive Serial загрузке. Хочу добавить, что использовать ресет с PCI надо очень осторожно. Его длительность 1 ms (PCI 2.3, Table 7.4, page 234) Т.е. если уж очень нужно что-то сбрасывать в FPGA сбросом c PCI, то надо успеть сконфигурироваться за эту 1 ms, что достаточно суровое требование.
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Jul 9 2010, 05:59
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Methane @ Jul 9 2010, 05:10)  Вы писали? Конфигурироваться за 1мс не нужно. А это смотря в каком случае :-) Я не точно написал, но и Вы слишком категоричны. -- Предствьте себе что Вы 1) Включили питание на системной плате. 2) Просходит сброс, через 1 ms сброс снимается 3) Кофигурация FPGA заканчивается допустим, через 100 ms. Вопрос.... Как сбросом с PCI сбросить что-то в FPGA? При таком раскладе - никак. Естественно, что если будет происходить сброс с включенным питанием (hot reset) и FPGA уже законфигурирована- то сброс с PCI работать будет.
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Jul 9 2010, 13:38
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(sazh @ Jul 9 2010, 11:19)  А зачем Вам сброс на FPGA. Все регистры и так в ноль устанавливаются. Дело не в начальных значениях регистров. Нужно знать момент, с которого стартовать загрузку конфигурации FPGA. Цитата(Victor® @ Jul 9 2010, 11:24)  Нет, конфигурацию FPGA имеет смысл делать по включению питания. Я знаю, что у большинства ПК питание на слотах PCI не исчезает по завершению работы Windows. Как же тогда узнаем, когда юзер нажмет кнопку "ON" компьютера и надо будет грузить FPGA?
|
|
|
|
|
Jul 9 2010, 13:53
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Aprox @ Jul 9 2010, 16:38)  Дело не в начальных значениях регистров. Нужно знать момент, с которого стартовать загрузку конфигурации FPGA.
Я знаю, что у большинства ПК питание на слотах PCI не исчезает по завершению работы Windows. Как же тогда узнаем, когда юзер нажмет кнопку "ON" компьютера и надо будет грузить FPGA? Давайте определимся - какой режим загрузки используется? Если FPGA инициатор загрузки - то зачем знать "момент, с которого стартовать загрузку конфигурации FPGA." И кому надо это знать? Вообщем совсем непонятно, для чего Вы хотите использовать PCI_RST для старта конфигурирования FPGA. Включили питание - загрузилась FPGA. Не выключаете питание - конфигурация хранится в FPGA.
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Jul 9 2010, 18:34
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(Victor® @ Jul 9 2010, 17:53)  Давайте определимся - какой режим загрузки используется? Если FPGA инициатор загрузки - то зачем знать "момент, с которого стартовать загрузку конфигурации FPGA." И кому надо это знать? Вообщем совсем непонятно, для чего Вы хотите использовать PCI_RST для старта конфигурирования FPGA. Включили питание - загрузилась FPGA. Не выключаете питание - конфигурация хранится в FPGA. Давайте тогда конкретно. Вот, пришел юзер и нажимает кнопочку "ON" на компьютере При этом, совершенно неизвестно было ли отключено питание ПК, или не было. Ориентироваться на это - игра 50 на 50. Однако известно, что при нажатии "ON" у правильных материнок на PCI-слотах появится сигнал nRESET. Разве это не сигнал к загрузке конфигурации FPGA? Далее, более-менее надежным приемом от "зависаний" служит WatchDog. При его срабатывании тоже будет происходить reset-PCI, но питание - нет, останется постоянным. И как вы перезагрузите в этом случае зависшую FPGA? Цитата(Victor® @ Jul 9 2010, 17:53)  Давайте определимся - какой режим загрузки используется? Если FPGA инициатор загрузки - то зачем знать "момент, с которого стартовать загрузку конфигурации FPGA." И кому надо это знать? Я использую FPGA в комплекте с простым ARM-ом, который и грузит конфигурацию из своего flash. Пассивная загрузка. Вот, ARMу и надо знать, когда грузить FPGA. Самое простое- завести сигнал PCI-reset на nReset ARMa и он всгда будет стартовать приложение с загрузки FPGA. Как такое сделать с активной загрузкой из последовательной flash- я плохо представляю.
|
|
|
|
|
Jul 10 2010, 04:31
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 27-09-05
Пользователь №: 8 979

|
Цитата(Aprox @ Jul 10 2010, 00:34)  И как вы перезагрузите в этом случае зависшую FPGA? Это как? Часто у Вас ФПГА виснут? оО
--------------------
Ignoramus et Ignorabimus
|
|
|
|
|
Jul 10 2010, 08:12
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(ktod @ Jul 10 2010, 08:31)  Это как? Часто у Вас ФПГА виснут? оО Случается, например в старых, раздолбанных PCI-разьемах. Случайно покачаешь плату, тряханешь ПК, или юзер начнет подводящие кабели снаружи шевелить- вот вам и сбой алгоритма, или того хуже- слетает конфигурация FPGA. Hе только из-за разьемов возможны "зависания", но и от импульсных помех на внешних сигналах, например шарахнет рядом молния или включат электросварочный аппарат. В таких случаях бросок тока через клэмп-диоды вполне может сместить питание FPGA со всеми вытекающими. Думаю, много еще чего случается на практике, что приводит к "зависанию" FPGA. Я лично страхуюсь использованием WatchDog- программа на ПК, которая постоянно следит за активностью моего PCI-мастера. Как замолчал больше чем допустимо, - значит перегружаем FPGA. Но этот прием работает в старой конструкции, где PCI master/taget выполнен отдельно на матрице с жесткой прошивкой. Поэтому Plag&Play не требуется. А сейчас я хочу все узлы собрать в одной FPGA и просто ее перезагрузкой уже не обойдешься, надо чтобы она поучаствовала еще в Plag&Play. И тут два варианта -1. ресетить весь компьютер целиком, или -2 каким-то образом из виндов вызывать процедуру Plag&Play своей платы уже после загрузки FPGA. Последнее очень заманчиво, но как это делается- я не знаю. Цитата(Methane @ Jul 10 2010, 11:52)  Скажите, вы хоть немножко, хоть чуть чуть смотрели документацию на PCI? "Хоть немножко" смотрел. Но больше смотрю на реальный ПК и вижу- питание +3.3V на PCI разьемах при "выключении" ПК не пропадает. Например, светодиоды сетевых плат продолжают гореть. Как вы это обьясните?
|
|
|
|
|
Jul 13 2010, 08:46
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(Methane @ Jul 10 2010, 12:16)  Магией. Не читайте доки, магия пропадет. Мы наверное говорим о разном. Иначе трудно обьяснить, что вы действительно не в курсе такой особенности десктопов- при "завершении работы" питание на разьемах USB и PCI не исчезает, а ПК переходит в режим power_down. Неужели и вправду не знаете, что настоящее выключение ПК делается специальным тумблером, который сзади, рядом с силовым вводом? Что же касается темы данной ветки, то я уже понял следующее: -1. Использовать FPGA напрямую на шине PCI можно только для 32-бит и 33 MHz. В этом случае есть достаточный запас времени 1 сек для произведения конфигурации FPGA до наступления Plag&Play. -2. В качестве старта конфигурации использовать nRESET шины PCI -3. Конфигурация пассивная, от МСU. В этом случае перезапуск будет происходить и от nReset шины, и от вкл.питания. -4. В драйвере PCI предусмотреть команду принудительной конфигурации FPGA с восстановлением Config Area PCI.
|
|
|
|
|
Jul 13 2010, 02:06
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Aprox @ Jul 13 2010, 11:46)  Мы наверное говорим о разном. Иначе трудно обьяснить, что вы действительно не в курсе такой особенности десктопов- при "завершении работы" питание на разьемах USB и PCI не исчезает, а ПК переходит в режим power_down. Неужели и вправду не знаете, что настоящее выключение ПК делается специальным тумблером, который сзади, рядом с силовым вводом?
Что же касается темы данной ветки, то я уже понял следующее: -1. Использовать FPGA напрямую на шине PCI можно только для 32-бит и 33 MHz. В этом случае есть достаточный запас времени 1 сек для произведения конфигурации FPGA до наступления Plag&Play. -2. В качестве старта конфигурации использовать nRESET шины PCI -3. Конфигурация пассивная, от МСU. В этом случае перезапуск будет происходить и от nReset шины, и от вкл.питания. -4. В драйвере PCI предусмотреть команду принудительной конфигурации FPGA с восстановлением Config Area PCI. Это Вы себе пытаетесь доказать или еще кому-то? Откуда мантра -1.? ;-)
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Jul 13 2010, 10:42
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(Victor® @ Jul 13 2010, 14:06)  Это Вы себе пытаетесь доказать или еще кому-то? Это я приношу огромное спасибо всем тем, кто снабдил меня конкретными цифрами. Цитата Откуда мантра -1.? ;-) Вы сами не осилили, что ли? Это же очень просто. Вот исходные данные: -1. Берем самый простенький Циклон-3, который без опции Fast Hot Socketing. Имеем сразу 200 мСек на время POR. -2. Берем сжатый .ttf файл загрузки при использовании ресурсов на 50%. Это примерно 150Кбайт. -3. Берем средненький ARM9 c частотой 100МГц, его SPI больше, чем 5..8 Mbit/sec не потянет. Умножаем, делим.. и "мантра", как вы изволили выразиться, превращается в очевидность. Цитата(Victor® @ Jul 13 2010, 17:07)  А если ОДНОЙ причине соответсвует 10-100-1000 следствий? Которые проявляются случайным образом? Hе бывает, чтобы одна причина порождала 1000 следствий. Hаоборот- сколько угодно: множество причин- одно следствие. А как вы хотите- нет, не бывает никогда. Цитата(ViKo @ Jul 13 2010, 14:57)  А не лучше ли бороться и с причиной, и со следствиями? В меру своих возможностей и способностей. То, что вы пишете, хорошо и правильно, но для чего тогда в каждом процессоре стоит сторожевой таймер, например? Еще хочется спросить формалиста, зачем в зависших виндах предлагается перезапустить компьютер? Билл Гейтс плохо составил ТЗ? Hе предусмотрел всех возможностей?
|
|
|
|
|
Jul 13 2010, 11:12
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Aprox @ Jul 13 2010, 21:42)  Вы сами не осилили, что ли? Это же очень просто. Вот исходные данные: -1. Берем самый простенький Циклон-3, который без опции Fast Hot Socketing. Имеем сразу 200 мСек на время POR. -2. Берем сжатый .ttf файл загрузки при использовании ресурсов на 50%. Это примерно 150Кбайт. -3. Берем средненький ARM9 c частотой 100МГц, его SPI больше, чем 5..8 Mbit/sec не потянет. Как Вы изволили выразиться: "Использовать FPGA напрямую на шине PCI можно только для 32-бит и 33 MHz."Открою Вам страшную тайну, что "Использовать FPGA на PCI возможно не только для режима 32 бита /33 MHz" Не надо обобщать. Если в Вашем конкретном случае не удается сделать - это не значит, что сделать невозможно в принципе.
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
Сообщений в этой теме
Aprox FPGA на шине PCI Jul 8 2010, 09:53 Methane Цитата(Aprox @ Jul 8 2010, 12:53) Может, ... Jul 8 2010, 10:02 Aprox Цитата(Methane @ Jul 8 2010, 14:02) Играт... Jul 8 2010, 11:07  Methane Цитата(Aprox @ Jul 8 2010, 14:07) Да, я т... Jul 8 2010, 11:26 Methane Цитата(vmp @ Jul 8 2010, 15:33) Альтера к... Jul 8 2010, 13:46          Koluchiy Цитата(sazh @ Jul 9 2010, 11:19) А зачем ... Jul 9 2010, 09:12           sazh Цитата(Koluchiy @ Jul 9 2010, 12:12) А ес... Jul 9 2010, 09:37           Methane Цитата(Aprox @ Jul 9 2010, 16:38) Дело не... Jul 9 2010, 13:47             sazh Цитата(Aprox @ Jul 9 2010, 21:34) И как в... Jul 9 2010, 18:57              Aprox Цитата(sazh @ Jul 9 2010, 22:57) Нажав кн... Jul 10 2010, 07:29               Methane Цитата(Aprox @ Jul 10 2010, 10:29) Речь ш... Jul 10 2010, 07:52                     Victor® Цитата(Aprox @ Jul 14 2010, 01:29) Вы зна... Jul 16 2010, 06:30                      Aprox Цитата(Victor® @ Jul 16 2010, 10:30) Прим... Jul 16 2010, 07:35                       Victor® Цитата(Aprox @ Jul 16 2010, 10:35) Извини... Jul 16 2010, 07:46                        Aprox Цитата(Victor® @ Jul 16 2010, 11:46) Разм... Jul 16 2010, 14:16         Victor® Цитата(Aprox @ Jul 9 2010, 10:11) Получае... Jul 9 2010, 07:24  Aprox Цитата(Victor® @ Jul 8 2010, 18:05) Хочу ... Jul 8 2010, 17:25 Aprox Цитата(vmp @ Jul 8 2010, 16:33) Для PCI в... Jul 8 2010, 17:31  Victor® Цитата(Aprox @ Jul 8 2010, 20:31) Спасибо... Jul 8 2010, 18:17 NiOS Цитата(Aprox @ Jul 8 2010, 13:53) Может, ... Jul 8 2010, 12:36 ktod Простите, но это бред. Вы не там ищете проблему. е... Jul 10 2010, 12:22 Aprox Цитата(ktod @ Jul 10 2010, 16:22) Короче,... Jul 12 2010, 18:08 ViKo Цитата(ktod @ Jul 10 2010, 15:22) В любом... Jul 13 2010, 02:57  Victor® Цитата(ViKo @ Jul 13 2010, 05:57) А не лу... Jul 13 2010, 05:07
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|