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

 
 
> Прошу оценить стоимость разработки, 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
 
Start new topic
Ответов
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
dmitry-tomsk
сообщение Jun 11 2016, 14:29
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 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
rloc
сообщение Jun 11 2016, 18:17
Сообщение #4


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

Группа: Свой
Сообщений: 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
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #6


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

Группа: Свой
Сообщений: 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
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 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
rloc
сообщение Jun 14 2016, 14:08
Сообщение #8


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

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



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

Вспомнил, sin/cos таблицу можно (нужно) расшарить на два параллельных DDC, без потери разрядности аккумулятора угла, с аппроксимацией и без. Что касается входного FIFO, по моим требованиям всегда хватало 16 тактовой глубины на распределенной памяти. А вот в старом софте, старше ISE 14.7, были ошибки, не позволяющие в vhdl реализовать ядро, работающее на полной скорости (V4 или V5 до 550 МГц), переходил на родной язык описания.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dmitry-tomsk   Прошу оценить стоимость разработки   Jun 10 2016, 18:00
|- - rloc   Цитата(dmitry-tomsk @ Jun 12 2016, 00...   Jun 12 2016, 10:19
||- - dmitry-tomsk   Цитата(rloc @ Jun 12 2016, 14:19) Хорошо ...   Jun 12 2016, 12:09
||- - rloc   Хорошо сделанная работа, со своей стороны мог бы р...   Jun 12 2016, 16:25
- - des00   5-7K   Jun 11 2016, 10:43
|- - des333   Цитата(des00 @ Jun 11 2016, 13:43) 5-7K А...   Jun 11 2016, 14:58
|- - des00   Цитата(des333 @ Jun 11 2016, 21:58) А, ес...   Jun 11 2016, 15:46
|- - dmitry-tomsk   Цитата(des00 @ Jun 11 2016, 18:46) NCO ил...   Jun 11 2016, 18:13
|- - dm.pogrebnoy   Цитата(des00 @ Jun 11 2016, 18:46) NCO ил...   Jun 11 2016, 22:00
- - des00   Цитата(dmitry-tomsk @ Jun 12 2016, 01...   Jun 13 2016, 05:02


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

 


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


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