Kopa писал(а):
Интерес может представлять, возможность в топологии например из 10 контроллеров решить задачу
Странный интерес. Сконструировать 4004 на дискретных транзисторах тоже, конечно, интересно, но это совсем другая задача.
Kopa писал(а):
Не лучше т.к. существующие компиляторы не позволят максимально использовать существующую аппаратуру.
Вы, конечно, извините, но мне почему-то кажется, что Вы не умеете использовать эти самые существующие компиляторы. У меня "почему-то" получается порядка 90-120% по скорости и весьма соизмеримо по объёму (в проектах от ~3кб объёмом). Парочку плохоложащихся на си случаев я знаю, но сильно сомневаюсь, что вы сможете их назвать.
chess писал(а):
Ситуация по затратам, как не крути, в пользу россыпи контроллеров сейчас
Плата с ФПГА уже есть, программируется 'за пять минут'. А пару десятков АВРок еще надо распаять и зашить каждого отдельно.
микроблейз-си и пикоблейз-ассемблнр тоже есть, пикоблейз вполне аналог для аврок, но быстрее раз в 20.
ArtemKAD писал(а):
На кой? По шине гоняется уже результат обработки картинки. Самой картинке там делать нечего. Кстати, для обработки картинки Spartan - самое оно .
А сама картинка откуда берется и как поступает в АВРки?
С второй мыслёй полностью согласен, но занафига тогда стадо АВРок распаивать?
ArtemKAD писал(а):
Р-р-р... Вы че, программно считаете времянку для каналов ? Не удивительно, что м32 для Вас не хватает...
пробовал разные варианты. вариант с массивом из 256 масок оказался оптимальным по джиттеру (ровно ноль), но при этом не хватало _аппаратных_ буферов УАРТа при скорости больше чем 19200. На спартане же этой проблемы нет как класса, ибо ШИМы там получаются аппаратными.
ArtemKAD писал(а):
Импульсы будут формироваться парами по одному на PB и PC. Начало импульса на нужном канале на обеих портах формируется в прерывании ICF1 (хоть сдвигом единички прочтенной из PORTx). Длительность устанавливается в OCR1a и OCR1b. В прерываниях OCR1a и OCR1b порты PB и PC DDR-ами переводятся в 3-е состояние
Рассмотрим худший случай. На одном порту надо ждать 127 единиц, на втором 128.
Где гарантии что между этими двумя моментами-прерываниями мы успеем принять байт из компорта?
ArtemKAD писал(а):
Возможные сложности - импульс 1мс делится не на 250 дискретов, а на 16000, что надо учесть в куске (в основном цикле) готовящем данные для PWM-ов.
А лимиты в каком виде хранить? массив из 16000 отсчетов в память не влезет.
ArtemKAD писал(а):
Хищник писал(а):Что интересно, внутри там все равно некая аппаратная структура,
Да. Эдакий крутейший 16 битный таймер-счетчик с тремя регистрами сравнения и возможностью аппаратно захватывать текущее значение по событию.
То есть, на 32 двигателя надо ставить 32 АВРки?
спасибо, неинтересно.
ArtemKAD писал(а):
Хищник писал(а):которую дикими усилиями пытается настраивать совершенно чуждое этой структуре процессорное ядро.
А вот этого как раз нет. Настройка там состоит в указании режима работы (12) , предделителя (0) и далее только до скольки считать.
После этой настройки таймер сам по достижению события дергает ядро за прерывания и сам по достижению, заданного в одном из регистров сравнения конца, сбрасывается в "0".
После чего надо РУКАМИ посмотреть номер текущего канала, прочитать маски портов, изменить маски портов, вывести байты в порты, рассчитать следующий момент. А вне прерываний надо предрассчитать все эти маски.
ArtemKAD писал(а):
ШИМ для AVR - это обычных три регистра, в первом лежит "коэффициент заполнения такой-то", во втором лежит "частота повторения такая-то" и в третьем - "тип ШИМа такой-то" . А еще иногда добавляют регистр в котором лежит "защитный интервал такой-то"
Всё прекрасно, пока на одной МЕГе делаем не больше ШИМов, чем иу нее их есть аппаратно. Получаем 32 корпуса на ШИМы, еще корпус-два на АЦПшки, пару мег на цифровой ввод, пару-пятерку мег на управление.. А смысл всего этого при наличии уже купленного спартана? Вы хоть примерно представляете что именно можно эффективно и комфортно сделать на спартане без большого количества тех действий, которые некоторые грубые люди называют 'пикоманством'?
<b>ps: с флеймом "pic VS spartan" я по возможности завязываю. Но по остальным вопросам, касающимся спартана, готов общаться.
1) 16 битных ядер 'под ключ' (то есть, с ассемблером, сями и прочими атрибутами) для спартанов не бывает?
2) Поигрался с пикоблейз. Есть у меня весьма обоснованные подозрения, что мне его хватит, при условии реализации всей переферии внутре спартана, но п1 таки интересен и актуален.
3) Никак не ожидал, что поднимется такой флейм, причем настолько далеко от начального вопроса про 16битные ядра для ПЛИС.
4) вопрос, скорее всего, к Хищнику: а если грубой силой нарастить разрядность пикоблейза до 16бит, по сути добавив одну команду 'загрузить 8бит константу во временный регистр', то это будет совсем порнография, или вполне сносное решение? Расширять шину команд до 18*1.5 или 18*2 бит - это как-то расточительно..
</b>