Перейти к содержанию
    

Начинаю изучать FPGA (verilog)

2 minutes ago, iosifk said:

Что такое "32 PWM декодера"

Подозреваю, что приемник блока радиоуправления : ) 
В зависимости от положения органов управления меняется ШИМ. - Автор определяет "наполнение" ШИМ и в результате получает число.
 

14 minutes ago, HardRock said:

1 SPI Slave, 32 PWM генератора, 32 PWM декодера, 4 UART RX / TX с фиксированным рейтом. Коммутация между всем кроме SPI, он отдельно.

Циклон да, самый маленький  - EP4CE6E

 

Вообще "ни о чём". Еще и половина места должна остаться (как минимум). 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 минут назад, iosifk сказал:

Что такое "32 PWM декодера" не знаю

Функция обратно PWM генератору. На входе с физики PWM  - на выходе ширина пульса в память.

Что-то с ходу не получается придумать алгоритм для обхода всех  один автоматом чтобы это было эффективнее чем просто N отдельных генераторов.

 

Допустим с генерацией PWM, все активные выходы (их маппинг) помещается в вектор (это скорее всего синтезируется в мультиплексоры). На каждом клоке нужно пройти по списку активных генераторов и погасить / зажечь нужные выходы в зависимости от текущего каунтера и заданной ширины пульса. Экономия может быть только на счетчиках в каждом генераторе, но это минимально.

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

Да и в любом случае жрет место именно коммутация, к ней вопросы. Всё остальное - ничтожно мало.

Изменено пользователем HardRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, HardRock сказал:

Что-то с ходу не получается придумать алгоритм для обхода всех  один автоматом чтобы это было эффективнее чем просто N отдельных генераторов.

В памяти делаете "стек задач" на 32 позиции. + указатель на задачу + АЛУ + флаги + выходные триггера...

Автомат, по адресу указателя за 1-2 такта перегружает в память предыдущую задачу и одновременно выгружает следующую... Или это разносится по времени. Потом пару тактов для работы АЛУ и взведение выходного триггера, если есть условие. Ну и так по кругу. При частоте внутри ПЛИС - 50-100 Мгц, вполне можно сделать по 5-10 тактов на канал и получить ШИМ на 5-10 Мгц. Ну и с "На входе с физики PWM  - на выходе ширина пульса в память" - вполне аналогично. Сделаете привязку к частоте ПЛИС и далее аналогично сказанному выше... 

Что касается "жрет место именно коммутация,"   то тут вопрос стоит вполне аналогично. Если требования на задержки по коммутации не наносекундные, то и коммутатор делается на двух блоках памяти - память данных и память косвенного адреса. Я так лет 20 назад делал коммутатор ИКМ тракта 8 потоков по 32 байта в каждом - в такие же 8 выходных потоков...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...