реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Прошу оценить стоимость разработки, DDC
dmitry-tomsk
сообщение Jun 10 2016, 18:00
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Прошу оценить стоимость разработки цифрового приёмника (DDC) на VHDL без использования сторонних ip-ядер. Состав приёмника – NCO, комплексный смеситель, каскады дециматоров на КИХ фильтрах, управление по AXI шине. Приёмник умеет перестраивать все или выбранные фазы (смесителя и дециматоров) по синхросигналу. Также умеет перестраивать коэффициенты децимации на лету, по командам с axi. Работает на максимальной для выбранного кристалла частоте. К IP ядру прилагается gui для расчёта фильтров со встроенной мат. оптимизацией по критерию полоса/подавление.
Схема не классическая – CIC + корректор, а на основе КИХ с симметричной реализацией фильтров, в результате довольно компактный приёмник - при прореживании в 256 раз довольно двух каскадов, 6 умножителей, 700 триггеров, 500 LUT, 6 BRAM на 2 кбайт. АЧХ как на картинке.



Рад услышать любое мнение!



Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 11 2016, 09:53
Сообщение #2


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



По стоимости не подскажу. Напишите по пунктам ключевые особенности, чего нельзя реализовать (по ресурсам, быстродействию, структуре) с помощью стандартных средств и дополнительных программ (Matlab например). Для NCO Вы используете только табличное преобразование или есть алгоритмы аппроксимации? Сколько на него в отдельности уходит ресурсов? Какая разрядность NCO по фазе? Какие используются алгоритмы оптимизации при нахождении коэффициентов фильтра? Каким образом эти алгоритмы учитывают фиксированную разрядность коэффициентов?
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 11 2016, 10:43
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



5-7K


--------------------
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jun 11 2016, 14:29
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(rloc @ Jun 11 2016, 12:53) *
По стоимости не подскажу. Напишите по пунктам ключевые особенности, чего нельзя реализовать (по ресурсам, быстродействию, структуре) с помощью стандартных средств и дополнительных программ (Matlab например). Для NCO Вы используете только табличное преобразование или есть алгоритмы аппроксимации? Сколько на него в отдельности уходит ресурсов? Какая разрядность NCO по фазе? Какие используются алгоритмы оптимизации при нахождении коэффициентов фильтра? Каким образом эти алгоритмы учитывают фиксированную разрядность коэффициентов?

В Xilinx ip нет перестройки децимации/усиления на лету, например, нет синхронизации. NCO табличный, хотя раньше был с коррекцией в ряд Тейлора на 20 бит, за ненадобностью отвалился в пользу менее ресурсоёмкого.
Оптимизация идёт по эффективной шумовой полосе, затем по полосе пропускания/ослаблению в полосе запирания, там есть всегда точка оптимума для конечной разрядности умножителей. Фиксированная разрядность не учитывается, там КИХ, а не БИХ фильтры, особой нужды нет. Округление результата симметричное для простоты, хотя сейчас уже, как слышал, используют комплексное.

iprium что-то подобное продаёт за 3K евро в нетлистах, разработка с нуля, думаю дороже должна быть.
Go to the top of the page
 
+Quote Post
des333
сообщение Jun 11 2016, 14:58
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(des00 @ Jun 11 2016, 13:43) *
5-7K

А, если не секрет, сколько времени займёт такая разработка у специалиста с опытом?
Можно в ЛС.

Спасибо!


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 11 2016, 15:46
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(des333 @ Jun 11 2016, 21:58) *
А, если не секрет, сколько времени займёт такая разработка у специалиста с опытом?
Можно в ЛС.

Спасибо!

Мне сложно судить, т.к. в библиотеке разработок описанные вещи у меня есть. В целом подобный каркас "NCO, комплексный смеситель, каскады дециматоров на КИХ фильтрах" мне скидать часа 4. Если под "управление по AXI шине" понималась AXI Lite то еще часа 4 сделать мост для управления. Если полноценный AXI то это разбираться надо в его тонкостях.

Сложность вот в этом "Работает на максимальной для выбранного кристалла частоте" - это подразумевает по сути создание RPM макроса ну или широкое использование примитивов целевой ПЛИС. Может времени занять до 2-3 недель.

Вся фишка вот в этом " К IP ядру прилагается gui для расчёта фильтров со встроенной мат. оптимизацией по критерию полоса/подавление." Судя по картинке, софт работает и кодогенератором, а это сложнее. Вот такое сделать я не возьмусь. Т.к. под PC давно не пишу. Но думаю что месяц-два займет.

Цитата(dmitry-tomsk @ Jun 11 2016, 21:29) *
NCO табличный, хотя раньше был с коррекцией в ряд Тейлора на 20 бит, за ненадобностью отвалился в пользу менее ресурсоёмкого.

NCO или DDS ? Всегда считал что DDS = NCO + преобразователь синуса/косинуса


--------------------
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jun 11 2016, 18:13
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(des00 @ Jun 11 2016, 18:46) *
NCO или DDS ? Всегда считал что DDS = NCO + преобразователь синуса/косинуса

А мне казалось, что это одно и то же sm.gif
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 11 2016, 18:17
Сообщение #8


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(dmitry-tomsk @ Jun 11 2016, 18:29) *
нет синхронизации.

Сигналы готовности нельзя использовать для синхронизации? Или есть какие-то особенности?

Цитата(dmitry-tomsk @ Jun 11 2016, 18:29) *
Фиксированная разрядность не учитывается, там КИХ, а не БИХ фильтры, особой нужды нет.

Нет, речь конечно не о БИХ, а об алгоритме оптимизации целевой функции при нахождении коэффициентов КИХ фильтра. Понятно, что она будет сильно нелинейной, при ограничении разрядности.

Цитата(des00 @ Jun 11 2016, 19:46) *
Сложность вот в этом "Работает на максимальной для выбранного кристалла частоте" - это подразумевает по сути создание RPM макроса ну или широкое использование примитивов целевой ПЛИС.

Присоединяюсь к вопросу об оптимизации по максимальной частоте: примитивы, RPM или Hard Macros? На vhdl согласен, разработчик в области ЦОС должен иметь в запасе набор своих ядер, позволяющий реализовать приемник с каскадной децимацией.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jun 11 2016, 19:16
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(rloc @ Jun 11 2016, 22:17) *
Сигналы готовности нельзя использовать для синхронизации? Или есть какие-то особенности?


Нет, речь конечно не о БИХ, а об алгоритме оптимизации целевой функции при нахождении коэффициентов КИХ фильтра. Понятно, что она будет сильно нелинейной, при ограничении разрядности.


Присоединяюсь к вопросу об оптимизации по максимальной частоте: примитивы, RPM или Hard Macros? На vhdl согласен, разработчик в области ЦОС должен иметь в запасе набор своих ядер, позволяющий реализовать приемник с каскадной децимацией.


Под синхронизацией подразумевается сигнал, который устанавливает начальную фазу DDS и (или) перезапускает прореживание, то есть если прореживаем в 256 раз, 255 точек выкидываются, вот он и определяет с какой точки начинаем выкидывать лишнее, грубо говоря.
Для частоты сделано на примитивах, если каналов много и кристалл сильно заполнен добавляются area constraint, но не всегда обязательно.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 11 2016, 20:35
Сообщение #10


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(dmitry-tomsk @ Jun 11 2016, 23:16) *
Под синхронизацией подразумевается сигнал, который устанавливает начальную фазу DDS и (или) перезапускает прореживание

Для NCO достаточно сброса, для фильтра можно сделать пропуск нескольких отсчетов данных, чтобы подогнать фазу выходного сигнала под требуемую (чтобы избежать звона фильтра).

Цитата(dmitry-tomsk @ Jun 10 2016, 22:00) *
Схема не классическая – CIC + корректор, а на основе КИХ с симметричной реализацией фильтров, в результате довольно компактный приёмник - при прореживании в 256 раз довольно двух каскадов, 6 умножителей, 700 триггеров, 500 LUT, 6 BRAM на 2 кбайт.

На CIC давно никто не делает, КИХ - классика. Правильно ли я понимаю:
Аккумулятор фазы - на распределенной логике
1 BRAM - преобразователь из угла в sin/cos
2 DSP - квадратурный смеситель
4 BRAM - память на данные для двух фильтров
1 BRAM - память на коэфф. для двух фильтров
4 DSP - MAC в двух фильтрах
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jun 11 2016, 20:45
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(rloc @ Jun 12 2016, 00:35) *
Для NCO достаточно сброса, для фильтра можно сделать пропуск нескольких отсчетов данных, чтобы подогнать фазу выходного сигнала под требуемую (чтобы избежать звона фильтра).


На CIC давно никто не делает, КИХ - классика. Правильно ли я понимаю:
Аккумулятор фазы - на распределенной логике
1 BRAM - преобразователь из угла в sin/cos
2 DSP - квадратурный смеситель
4 BRAM - память на данные для двух фильтров
1 BRAM - память на коэфф. для двух фильтров
4 DSP - MAC в двух фильтрах

1 BRAM - таблица, 1 BRAM - входное FIFO, 2 BRAM - память данных с сим. выходом, 2 BRAM - память коэффициентов.
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Jun 11 2016, 22:00
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Цитата(des00 @ Jun 11 2016, 18:46) *
NCO или DDS ? Всегда считал что DDS = NCO + преобразователь синуса/косинуса


DDS = NCO + ЦАП
NCO = PA + PAC
где
PA - Phase Accumulator, PAC - Phase-to-Amplitude Convervter

Не претендую на истину, но вроде всегда так было.


--------------------
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 12 2016, 10:19
Сообщение #13


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(dmitry-tomsk @ Jun 12 2016, 00:45) *
1 BRAM - таблица, 1 BRAM - входное FIFO, 2 BRAM - память данных с сим. выходом, 2 BRAM - память коэффициентов.

Хорошо оптимизировано. Память коэффициентов под разные степени децимации? Чем определяется необходимость во входном FIFO? На усиление тратится отдельный такт в ущерб порядка? Какова необходимость в смене усиления на лету?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jun 12 2016, 12:09
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(rloc @ Jun 12 2016, 14:19) *
Хорошо оптимизировано. Память коэффициентов под разные степени децимации? Чем определяется необходимость во входном FIFO? На усиление тратится отдельный такт в ущерб порядка? Какова необходимость в смене усиления на лету?


Память коэффициентов грузится со второго порта для смены коэффициента децимации. FIFO потому что приёмник работает на своей частоте (макс для кристалла), а данные приходят с АЦП напрямую на частоте АЦП. То есть смена клокового домена + джиттер компенсатор. Сделано для удобства пользования.
Фильтр всегда усиливает в зависимости от коэффициента децимации, т.к. масштаб коэффициентов выбирается исходя из разрядности умножителей, так что нужен баррел шифтер для сдвига выхода при смене коэффициента децимации (у меня это называется изменением усиления фильтра).
Такт тратится только в Spartan-6 для симметричного округления, в S6 нет его поддержки в DSP слайсах.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 12 2016, 16:25
Сообщение #15


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Хорошо сделанная работа, со своей стороны мог бы рекомендовать потенциальному работодателю.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016