Pull to refresh
18
0
Марат Галимов @marat_galimov

User

Send message
А я в упор не понимаю как еще кроме как через PCI использовать FPGA-базированные решения.

Ну если у вас нет в вашем продукте (аппаратном комплексе / устройстве / приборе) ПК, т.е. ПК там не используется — то там и PCI не нужен по моему мнению.

Например у нашего устройства (медицинского прибора для точности) есть операторский ПК, он посылает команды одному блоку, тот в свою очередь делает то-то то-то, и раздает команды другим блокам в приборе. И вот от такого другого блока команды получаю я, делаю что мне положено с аналоговыми сильноточными блоками, возвращаю тому другому блоку отчеты, чтобы он в свою очередь делал то, что ему положено. Каждый блок — отдельное устройство, которое делает отдельный человек, т.е. каждый делает свою часть в приборе и не лезет в огород другого. Он даже может не знать, что там и как у другого, просто есть стандартные алгоритмы и протоколы обмена и шины (именно наши), которым мы должны соответствовать для согласования между блоками.

Ну так вот, если моя часть с ПК не общается, то мне там PCI по сути и не нужен. Хотя у вас наверное именно надо делать упор на PCI, так как ПК (или любые другие сервера, с PCI).

Можно питать как-то по-другому?

Вот могут ли брать питание эти отладочные платы (киты) c PCI — я не знаю, т.к. их ни разу не использовал в своих целях.

В своих целях обычно как питаю я:

1) Если использую кит, у него по любому адаптер питает (7.5 V, на дорогих мощных китах вроде 9V):


2) Если своя плата с FPGA, так как мне почему то покупают Altera Cyclone III (почему не знаю — мне кажется дешево и сердито). То под него используем либо:
а) Микросхема TPS75003 — импульсный регулятор на 3 напряжения питания (1.2V, 2.5V, 3.3V — именно они три нужны для питания Altera Cyclone III).

Но мне такой корпус припаивать интуитивно как-то тяжело, паяю не очень такие корпуса, может просто опыта мало, но мне не стыдно — так как в электронику и FPGA я пришел из программирования.

б) Либо можно питать раздельными линейными регуляторами напряжения:
FAN1112 (1.2V)
IRU1117-25 (2.5V)
1117-33 (3.3V)
Вот тут у меня как раз валяется маленькая питалочка, для полевых действий, проверки и отладки на ходу. Как раз там эти регуляторы напряжения.

Не ругайте за килограммы припоя и толстые провода, просто ею попользоваться когда кто-то брал, постоянно отрывал проводки.

Их паять приятно. Именно такие корпуса в основном стоят на китах Altera, только они там любят использовать ame1117 от Analog Microelectronics. Ну это у кого-чего есть, просто что мне покупают, то я и использую.

ну по USB может, и то я не знаю, хватит ли мощности.

Мне кажется не хватит.

У меня еще вопрос был — а что если я хочу несколько FPGA на одной плате? Есть такие отладочные платы или тут уже нужно руками все монтировать?

По поводу двух FPGA — китов не видел. Скорее всего придется проектировать кастомную плату руками. Хотя я на Алиэкспрессе и других аналогичных иногда такие монстро-девайсы нахожу — FPGA, микроконтроллер старый, как его там — тини вроде, что-то еще напихали. Потом видел в новостях, умельцы увеличили плату ардуино и пихнули туда Altera Cyclone II — говорят for educational tasks. Т.е. наверное и есть — просто мне не попадались.

Я правда в плане производительности не исследовал ничего, поэтому не знаю сколько какие FPGA реально «тянут».

Просто нам дороже 3000 рублей FPGA не покупают — вот обходимся Altera Cyclone III. Но учитывая то, что есть у Altera и за 50000 и за 60000 и за 70000 (я их не тестил, просто видел прайсы) — то страшно подумать, какая у них моща. Я особо математикой не нагружен и ничего не считаю — занимаю 30%-40% логики FPGA — да и то, это мои загоны по идеальной защите от ошибок и сбоев — куча обратных связей, куча проверок и тестов в процессе работы, все проверить и если, что-то где-то пошло не так резко все прервать и остановить все процессы, выдав заранее расписанные коды ошибок, чтобы потом их анализировать. Короче хочу делать такие системы / проги для ПК, чтобы если что-то грохнется, можно было сразу определить что и где и резко исправить. Меня за это ругают, говорят — ты слишком загоняешься. У некоторых коллег на аналогичной модели занимается лишь 20% логики и меньше.

Но учитывая, что в топовых монстрах логики в 30-40 раз более, то наверное двух FPGA'шные решения и не нужны получаются.

Также интересно подходят ли FPGA для математики. Судя по тому что читаю — вроде как не очень, но может вы посоветуете.

Конечно подходят!!! Для них мне кажется это самое оно и есть!!!

Вот вам две истории:

1) Первая история - На моей второй работе с советских времен занимались исследованием генераторов случайных чисел (ГСЧ). Сначала старики делали их на микросхемах К155 олдскульных, там куча патентов старых олдскульных есть — даже делали военным в вертолеты для системы свой-чужой. Но потом они устарели. Но у них появлялись толковые аспиранты — программисты, математики. Ну потом появился и FPGA' шник — он был один всего!!! (именно он вдохновил меня на работу с FPGA, а потом забил на это дело, сказал мне не заниматься херней и ушел работать программистом C++ к нефтянникам на зарплату ровно в 7-8 раз выше, чем в гос. секторе.). В итоге 27 кандидатских и 14 докторских за все время начиная с советского по этим самым ГСЧ (некоторые работы были полной чушью и ересью и х.з. как их пропустили в ВАК, но были и достойные).

Ну так вот, про молодежь — первая часть молодежи проводила исследования на персоналках, по генерации случайных чисел. Вторая часть на серверах HP. Третья часть была допущена на кластер Sun (супер дорогой и супермощный) — колдовала там на нем со своими экспериментами.

Ну так вот, что делал FPGA'шник. Его подразделение занималось ГСЧ на регистрах сдвига и сумматорах по модулю 2. Ну т.е. за счет гонок в автоматах (разности переключения триггеров) возникали случайные числа. Потом они стали прокачивать эти генераторы какими-то «сатанинско-математичискими полиномами формы Gn 2-го порядка в полях Галуа» — они мне объясняли как это считается — я не понял ничего из того, что они сказали.

Итог — они доказали, что на FPGA эта математически-сатанинская вещь считается быстрее!!! Чем на ПК и всяких таких делах, так как нет ОС, драйверов — все на триггерном state level'е.

Вот только я с ними работал не долго, так как я считал — что ГСЧ не весело и ушел в организацию, где производство и приближение к практике. В общем мне хотелось больших игр с FPGA нежели с генераторами. В итоге игр тоже не так много, типовые будничные задачи.

2) Вторая история — меня товарищ заставил сходить на лекцию к его другу, он только что вернулся из Швеции и читал лекции по Асинхронной криптографии и шифрованию. На первой лекции было 30 человек, на второй 15, на третьей 3 (я и две девочки с ВМК). Но девочек он просто привлекал, так как был привлекателен. Когда он им сказал, что женат — они перестали ходить.

Из его лекций — я не понял ни слова. Он писал на доске формулы, формулы, формулы и еще раз формулы. Если понять смысл этих формул — то можно обрести бессмертие или вызвать дьявола.

Ну так вот этот математик, на вопрос, как вскрыть такой ключ, сказал, что вроде как по моему в Швеции они что-то там вычисляли на FPGA по этим ключам и шифрованию (или в России считали — не помню сейчас точно).

Дополнительно:

И еще — в инете где-то читал статью, сейчас не нашел сходу. Там было про брудфорс генератор на ките c FPGA.

На конференции по Xilinx, Xilinx ребята говорили, что в шабашках по телекому, они используют Altera, так как на ней что-то легче разложить и посчитать.

Товарищ работает в конструкторском бюро. Там вся управляющая совокупность команд раскладывается в ряд Фурье, в таком виде доходит да беспилотника, потом обратно складывается в биты. Ну примерно как я понял, так и объяснил. А знаете на чем это они делают. Правильно — на FPGA. Правда вроде как для отладки, для финального образца вроде есть какие-то фабричные решения.

PS. Хотя, чтобы построить грамотные скоростные вычисления — это тоже надо хорошо продумать на уровне битов и регистров, нежели пытаться реализовать наскоком в лоб.
Да и вообще думаю, хорошо что вы мне написали. Никогда не думал об устройствах втыкаемых в PCI, ведь за счет этого можно попытаться сократить количество крупных кастомных блоков устройства. И скажем взять какой-то сервер в стойке с кучей PCI express и пихать туда кастномные PCI устройства, каждое из которых несет целевые функции. И попытаться сократить количество стоек с оборудованием с 6 — хотя-бы до 2-х (компьютерно-pci платовая и сильноточная). Но опять же в гос.секторе, на фиг никому ничего не надо: головной подход, зачем тратить бабки, людей и человеко часы, когда можно делать так как делаем.
А вы можете посоветовать насчет вариантов отладочных плат (или Altera или Xilinx, хотя я тяготею к первому) которые можно было бы использовать, например, для фид хэндлера (т.е. распаковка сетевых данных из сетевого протокола)?

Я тоже адепт Altera, но против Xilinx ничего плохого не имею. На какой-то конференции Xilinx ребята, которые там работают сказали за чашкой чая, что они берут шабашки по телекому и делают их на Altera, так как для этого она лучше подходит по их словам. А для чего-то лучше использовать Xilinx.

А по моему мнению, мне кажется, что Quartus Altera более дружелюбно-интерфейсный и интуитивно понятный, но это лишь мое мнение.

Ой простите, до меня только, что дошло, что вам нужна была отладочная плата, которая втыкается в PCI.
Сейчас набросаю модели:

Если большой PCI:
1) Раньше у Altera была Stratix PCI Development Board
(модель PCI Development Kit, Stratix Edition (ordering code PCI-BOARD/S25))
Но походу дела ее сняли с производства, потому-что что-то в прайсах ее не вижу.
2) Люблю Terasic платы с Altera FPGA — у них есть
PCI-X Development Board

Если PCI express:
У Altera их около 20 вариантов по разному бюджету — можете посмотреть список.

Основной вопрос, который интересует — это как после того как мы что-то получили на FPGA передать это быстренько на CPU? Какие вообще варианты существуют, является ли PCI боттлнеком, как все это делать без драйверов?

Если честно, то я не знаю, мне кажется там все равно какой-то драйвер будет ставиться на ОС для обмена инфой между ПК и платой. Если честно такими профильными вещами никогда потребности заниматься не было, даже не пробовал. Это лучше спросить на специализированных форумах Altera (alteraforum.com). Там комьюнити вообще очень приятное и отзывчивое.

У меня же если что-то забрать или передать рукописной проге на ПК — используют или USB или Ethernet. Да и то передаем мало, так если отладка идет, надо логи выдавать или графики построить какие-то на компе, для анализа проблем.
Хороший вопрос — попытаюсь ответить:

можно ли использовать отладочные платы (предпочтительно те, которые в PCI втыкаются) для «боевых действий»
Под боевыми действиями — я понимаю финальный образец. Конечно можно. Но вот мое начальство против. Говорит делайте все свое, кастомное и уникальное под каждого заказчика.
Или если хочешь FPGA использовать то обязательно после отладки правильно распаять отдельную плату, написать драйвер, и т.д.
Конечно необязательно, я бы и финальные образцы делал на каких-либо готовых отладочных платах от Altera или Xilinx. Но начальство требует делать свое и кастомное (что не всегда лучше, качественнее, быстрее и дешевле — а с учетом того, что кадры меняются, молодые, мои предшественники ушли, нагородив кучу косяков под чемоданное настроение, я пришел — то не всегда новая разработка идет гладко).
Нет каких-нть general-purpose решений которые просто воткнул в комп, запрограммировал и радуйся?
Мне некоторые люди на работе иногда говорят — на фиг мы делаем свое железо. Надо накупить с алиэкспресс дешевых 1000-рублевых андроид компьютеров и программировать на них, чтобы управление крупными сильноточными блоками шло с них. Быстро, готово, и из коробки. Ну такие маленькие 5 на 5 см коробочки, с Wi-Fi антенкой торчащей. Но начальство не одобряет.

А у меня идея была. Я работаю с одним блоком в составе оборудования и мой код в основном для управления именно этим блоком в общей совокупности. А идея какая — я насмотрелся на орды людей с ардуинами (дешевая игрушка с микроконтроллером и разъемами). В их философии у них есть платы расширения (они по моему их щитами или щелдами обзывают). Какие-мысли пошли у меня. Есть же процы для ПК с ножками вниз, которые втыкаются в разъем сокета. И я думал сделать свою платформу устройства, стандартизованную печатную плату — с кучей таких сокет разъемов, только вместо процов туда втыкаются другие платы, разные по назначению. Надо тебе новую FPGA помощнее, изготовил доп. плату воткнул в стандартизованные разъемы, надо доп периферию, разработал плату воткнул. Т.е. тем самым заложить возможность апгрейда путем перетыкания, а не разработкой нового устройства. Так как разводить плату в САПР, и спроектировать для меня очень тяжко получается, мне ближе писать код на Verilog'е.

И что, инициатива была обосрана выше стояшими и руки что-то опустились.
OMG… а почему FPGAшникам так мало?

Сугубо мое личное мнение, что в гос. секторе есть внегласное правило — чем дольше работаешь, тем больше зарплата.
Т.е. если я бы досидел там, лет до 50-60 может бы тоже получал больше. Нарастил связей, завел знакомств, не обязательно стал бы более передовым и квалифицированным. А всякого рода программированием там занимаются исключительно молодые.

Ведь это же программирование сравнимое с прикладным. Или нет?

Я FPGA занимаюсь около года и меня во всю гнобят истинные прикладные программисты. Как то работал с командой PHP'шников и один из них представил меня другим. Это наш новый коллега, он хоть и не программист, но все равно как-то связан с IT. Ну ни фига себе, порог вхождения в PHP весьма небольшой, а вот с электроникой и FPGA мне кажется начать тяжелее.

Но иностранцы утешают меня, что да, почему-то в РФ FPGA заниматься стремно, по сравнению с тем же PHP. Но они говорят, что у них FPGA специалисты — достаточно уважаемые люди. В телекоме на расхват требуются. Хотя я там не живу — подтвердить или опровергнуть тоже не могу.
В гос.секторе — уровня НИИ — в лаборатории, которая производит медицинское оборудование:

Олдскульным советским радиоэлектронщикам аналоговикам — 20-23 т.р.
Программистам PC/FPGA/микроконтроллер — 12-15 т.р.
Вот по поводу дизайна конечного радиотехнического устройства — тут нужно нанимать отдельного дизайнера. По поводу корпусов приборов. Я так думаю. Если инженер-радиоэлектронщик будет делать это сам, то он тупо возьмет корпус из металла, который продается, с типовыми панелями. И все это будет выглядеть как-то однообразно и похоже.

У нас дизайнера нет мы делаем так. А если крупногабаритные блоки, то берем стойки из металла фабричные, чем-то смахивающие на серверные шкафы.
у разработчиков железа плюс к этому еще несколько стеллажей с оборудованием

Опять же сказали верно — дополнительная трата 50000-100000 рублей.
Разработка железа, это очень дорогое удовольствие. Порог вхождения в 10-100 раз больше стоит, чем начать писать ПО.

Про порог вхождения вы верно сказали.

Вот вам ситуация. Мой начальник требует от меня реанимации какого-то кастомного единичного нерабочего устройства. Цена вопросов на глаз:
FPGA — 35000 рублей
ЦАПы — 8 штук — на 16000 рублей
Всякие обвязки — кондеры, резисторы, и т.д. — 10000 рублей
Всякие там шинные формирователи и прочее — еще 10000 рублей
Печатная плата — 30000 рублей
+ много чего еще не упомнил
— Итого: цена примерно 120000 рублей

Но ведь на этапе проектирования, да еще если человек новичок или учится, он может при проектировании внести координальные косяки, отсюда неработоспособный прибор, а отсюда деньги на ветер. Выпаивать что-то тоже не всегда хорошо, я бы даже сказал для супер-мелких заграничных микросхем это не есть хорошо — это было актуально раньше с большими навесными деталями. У такой разработки порог вхождения минимален.

Всякие ардуино девайсы я не рассматриваю. Как один мой знакомый программист говорит — я считаю, что ардуино это не тот девайс, который вы хотите использовать в шаттле Челленджер.

А если это все делать дома и за свой счет. Это очень дорого.

PS. По поводу неработающего устройства — с FPGA мне ко кайфу писать код на Verilog'е, а не разбираться в чужих косяках радиоэлектроники, которые заложили когда-то при проектировании. Да и как радиоэлектронщик я не силен, у меня нет той олдскульной суперподготовки в радиоэлектронике, как у моих взрослых советских коллег. Но зато они напрочь отказываются от каких-то новых state-of-art микросхемных технологий и бесятся от слова программирование.
Не обязательно в Москве. Я списываюсь с множеством радиоэлектронщиков, с которыми я познакомился именно на Хабре. Найти такую работу по их словам тяжело во многих регионах РФ, перечислять не буду. И по их словам — у всех есть основная работа, для кормления семьи и бытовых нужд. Не будем уточнять, какая у кого работа. На одной человек может заниматься электроникой, а на другой программировать, веб-разрабатывать, админить и т.д. Но сам сам факт, что это есть.

Как выживают мои советские коллеги — шабашками — они чинят телики, видики, дивидишники, и вообще все что угодно, от приборов для операции на глазах, до систем промышленной охраны. Так как те производители, у кого это оборудование на аутсорсинге, после истечения гарантийного срока, требуют за ремонты 70% от стоимости нового прибора.

Но если долго и упорно искать — я думаю можно ведь и найти.

А и самое главное, если выстреливают вакансии в других регионах, а у тебя уже семья и пара детей и все обжито, не каждый сможет быстро ретироваться и поехать куда-то. Для многих это тяжело психологически уезжать из родного города.
Хорошие специалисты как правило заняты, у свободных уровень знаний обычно довольно посредственный.

Это вечный замкнутый круг любой работы — чтобы «проскилловаться», повысить свой уровень, ты должен поработать на работе с реальными задачами под предметную область. А чтобы попасть на такую работу, ты уже должен быть «проскиллованный», конкурентоспособный и высококвалифицированный.

Причем в вакансиях с электроникой это правило работает вдвойне.
Причем это я сказал не к фразе:
Их программируют те, кто и раньше занимался всякой радиоэлектроникой.

А к фразе:
Дело в том, что сейчас никакой электроники почти не производится в России. Только самый необходимый минимум.
Как правило но не всегда. Я например шел по пути:
В детстве — Админка и сети (операционные системы и железки)
В молодости — Веб-разработка
В институте — Компьютерное моделирование
После — Программирование
Сейчас — Жизнь заставляет въезжать в электронику и брать в руки паяльник.

Хотя я пришел к выводу — что надо четко разделять труд.
Один отдел разработает устройство — со всеми FPGA и обвязками + переферия.
Другой отдел будет чисто программировать FPGA.

Мне например тяжело въезжать в законы Ома и всякие дела в контурах.
Советским инженерам — взрослым мужикам — тяжело въезжать в программирование.

Но на моей работе до разделения не дошли.
Вы абсолютно правы!!! С учетом того, что мы ничего по микросхемам не производим, то для предварительного прототипирования FPGA — самый лучший вариант. Но когда коллеги разобрали мне пару железок Ciscoи показали, что в них используются FPGA с завода, я понял, что кроме прототипирования их используют и в финальном производстве. Я например видел FPGA в кухонном комбайне.
По поводу вакансии — инженер-электронщик — было туго всегда. Я еще в институте учился, вакансий почти не было. Касательно FPGA — так это вообще мне кажется для РФ экзотика. Даже я смотрю на комментарии людей на Хабре: «Да на фиг оно нужно; Зачем на хабре статьи про FPGA; Это все бред, давайте заниматься нормальным программированием и т.д.» — и я понимаю, что все-таки наверное экзотика, но кое-где есть. Вакансий в РФ мало, но они есть — и конкуренция там серьезная по отбору как правило.

Даже тот, кто имеет дела с микроконтроллерами — он на 50-80% с большей вероятностью найдет работу. А если он программирует на каком-нибудь С# (не цепляйтесь к С#, сюда можно подставить Java, С++, PHP, Python, Ruby и т.д.) — то вероятность найти работу на 120% больше.

Но по поводу FPGA — иностранные коллеги и знакомые говорят, что у них это более распространено.
Попытаюсь ответить на Ваш вопрос:
Рынок разработки радиотехнических устройств немного хромает. Но я могу говорить за кастомные единичные устройства, производимые под конкретного заказчика.

1) Радиодетали (одним словом различные микросхемы), стоят дорого и производятся не в РФ. Мы их покупаем.
2) Производства печатных плат мы не делаем, мы его заказываем у фирм, которые занимаются их производством.
3) Если монтаж сложный, корпуса не спаяешь руками, или супер-мелкое расстояние между ножками, Мы опять заказываем монтаж.

Т.е. в основном мы уходим в минус, при производстве устройств. Но так как мы продаем целостное оборудование, то даже если в электронике мы уйдем в минус, то в других узлах и агрегатах мы уйдем в плюс. И в итоге плюсов больше и получается прибыль, хоть и не очень большая.

По поводу производства электроники миллионными сериями сказать затрудняюсь.
Тогда прошу вас меня извинить. Просто возможно я не так понял вашу фразу:
Гуманитариями называют людей, у которых нет определённых способностей, а не людей, которые обладают какими-то другими
А вас не затруднит дать ссылки или хотя бы названия книг по этим трем дисциплинам, которые читали вы сами. Одним словом директиву на правильное направление. Желательно не очень жесткие, чтобы не приходилось держать десять вкладок браузера и по дню разбирать каждую страницу. Так скажем уровня Getting Started.
Да, это звучит очень правильно. Но идет не то что в разрез с нашей действительностью, а я бы даже сказал с точностью до наоборот. Мне всегда немного не по себе, когда мои иностранные знакомые говорят, что у вас в России высшее образование есть у каждого второго жителя страны, когда у нас лишь у каждого 100го-150го жителя. Наверное у вас все очень умные, много разных специалистов везде. Высшее то оно высшее, но вот учился ли студент при этом или нет, вопрос риторический. Да и в состоянии ли дать эти знания учебное заведение — вопрос еще более философский.

Я постоянно перед сном думаю — если сократить в 3 раза количество учебных мест (как бюджетных, так и платных) и позволить учиться только тем, кто будет учиться и принесет родине пользу потом, а не пойдет с дипломом «авиа-конструктора» продавцом- консультантом в МВидео (так как чтобы там работать, нужно высшее образование). Или вообще отменить платные места, а бюджетников выбирать — ситуация нормализуется ???

Хотя как следствие может случиться, что отмена платных мест приведет к сокращению преподавательского состава. Молодые от снижения з/п уйдут программировать в фирму, а старики-которые программируют на пожелтевшем от старости бумажном листе останутся.
У меня сильно выражен bottom to top и очень плохо развит top to bottom.

Удивительно, но меня тоже всегда влекла медицина и IT сразу. Сейчас у меня работа связана с разработкой мед.оборудования и приходится много врубаться в медицину. Но «истинные медики» меня пытаются унижать и притыкать, мол куда тебе до нас дипломированных медицинских специалистов со своей электроникой-хренотроникой и программированием-шмограммированием.

Но при большом желании и консультации родителей (они у меня все врачи) — я могу разобраться в их ремесле при очень большом желании. А по поводу них не знаю.

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Registered
Activity