PDA

Просмотр полной версии : DDS на ПЛИС Spartan 3



mokropolov84
14.11.2008, 10:29
Не давно начал рисовать схему DDS в ISE Web Pack. И столкнулся со следующими трудностями: блочная память в ПЛИСке XC3S200 (та, которая есть под рукой) - 216 кбит, а ПЗУ с таблицей синуса (2пи) будет весить при 17 разрядной шине адреса (фазы) и 12 разрядной функции (выход)- 1,573 Мбит. Краешком разума понимаю, что ПЗУ можно организовать с пи-таблицей (а то и с пи/2) :-). Но как это выглядит на практике - за гранью моего понимания. Может быть поделитесь своими мыслями? Буду очень благодарен.

Genadi Zawidowski
14.11.2008, 14:22
В четырёх квадрантах данные используются один и те же (четыре старших разряда адреса (угла) подаются не на память - а на управение преобразованием входных и выходных данных ПЗУ. То есть, таблица нужна для диапазона от 0 до пи/2.

Как крайняя мера - умегньшить разрядность адреса ПЗУ (меньше старших битов накопителя фазы использовать).

Не все значения угла требуют одинаковой заполненности значениями.
Мне кажется, намёки на это я встречал в литературе от qualcom или от TI.

Какие количества разрядов планируются использовать в узлах этой DDS?

khach
14.11.2008, 14:57
А зачем DDS самому изобретать, когда у xilinx есть DDS compiler - специально заточен под генерацию оптимизированного DDS ядра.

RU3GA
14.11.2008, 17:53
Не совсем понял саму суть темы --- зачем делать DDS на ПЛИС?
У них ведь цена одна и таже. Даже ПЛИС иногда дороже --- смысл чисто в "плане высокого искусства" ? :)

Nicky
14.11.2008, 17:57
Может это поможет.

Genadi Zawidowski
14.11.2008, 18:01
Кроме DDS туда ещё что-то может быть завёрнуто... бывают ПЛИС с пятой приёмкой... может там ещё перемножитель цифровой на выходе NCO стоит.

RU3GA
14.11.2008, 18:31
И чего даст этот перемножитель в смысле качества сигнала на выходе по отношению к готовому чипу-DDS ?
Не совсем понимаю...
Когда ребята делают НЧ DDS на простом PIC --- это ясно --- не хотят покупать дорогой и редкий DDS , а хотят , придя в магазин и купив ПИК за 50 рублей, получить неплохую "опору" для синтеза с ФАПЧ.
А смысл данной темы пока мне совсем не ясен...
ПЛИС отнюдь не дешев и отнюдь не валяется на каждом углу, отнюдь не так просто прошивается.
Зачем "надевать фрак на осминога" ?
Опять же говорю --- если это просто ради "высокого искусства" --- тогда речи нет --- здесь логика бессильна , как в "Черном квадрате" Малевича --- хочу пожелать только удачи в творчестве !

Nicky
14.11.2008, 19:06
Не знаю для чего это Мокрополову, а я туда еще запихнул бы
установку частоты с клавиатуры и выдачу информации на ЖК экран.

mokropolov84
14.11.2008, 19:13
Не совсем понял саму суть темы --- зачем делать DDS на ПЛИС?
У них ведь цена одна и таже. Даже ПЛИС иногда дороже --- смысл чисто в "плане высокого искусства" ? :)

В данном нельзя применить обычную DDS, поскольку требуется не просто получить частоту, а частоту и ее производную. Одновременное изменение этих параметров, скажем, в AD9854, невозможно. (можно изменить либо f, либо дельта f). Поэтому и нужно получить DDS на гибкой логике для большего карт-бланша.

Sergey_gh
14.11.2008, 22:18
Но как это выглядит на практике - за гранью моего понимания. Может быть поделитесь своими мыслями?

Есть способ это сделать используя минимум памяти. Сделал DDS c квадратурным выходом, с 18-и битными выходными данными и 32-ух разрядным аккумулятором фазы.

Используются 2 таблицы. sin 256x18 bit = 4608 bit и cos256x18 = 4608 bit, каждая от 0 до PI/4 = 1/8 периода.
Используется 2 встроенных умножителя для интерполятора.

Типовой SFDR получается такой - http://forum.cqham.ru/download.php?id=1641 7 ( http://forum.cqham.ru/viewtopic.php?t=1299 3&postdays=0&postorder=asc&&start=90 )

Напишите точнее требования -- попробую помочь.



А зачем DDS самому изобретать, когда у xilinx есть DDS compiler - специально заточен под генерацию оптимизированного DDS ядра.

Не оптимальный он.

khach
14.11.2008, 22:50
В данном нельзя применить обычную DDS, поскольку требуется не просто получить частоту, а частоту и ее производную. Одновременное изменение этих параметров, скажем, в AD9854, невозможно. (можно изменить либо f, либо дельта f). Поэтому и нужно получить DDS на гибкой логике для большего карт-бланша.
А прогрузить таблицу в память AD9953 иди AD9954 и потом только управлять загрузкой в ядро ДДСа? Не подумайте, что я против самописных ДДСов, просто хочется понять.
По поводу самодельного ДДСа- мы как то попробовали- шумит сильно после преобразования в аналоговый сигнал. Поэтому лучше его (DDS) оставлять внутри ПЛИС в цифровойм виде, и использовать для демодуляции в цифровом перемножителе например.
Может конечно разводка TxDAC была кривая...


Типовой SFDR получается такой
Это цифровой или уже с выхода TxDAC? И какова в этом случае тактовая частота (реальная и предельная по симулятору), есть ли пики пораженных частот от работы ПЛИС?

Genadi Zawidowski
15.11.2008, 00:43
И чего даст этот перемножитель в смысле качества сигнала на выходе по отношению к готовому чипу-DDS ?
Не совсем понимаю...
Когда ребята делают НЧ DDS на простом PIC --- это ясно --- не хотят покупать дорогой и редкий DDS , а хотят , придя в магазин и купив ПИК за 50 рублей, получить неплохую "опору" для синтеза с ФАПЧ.
А смысл данной темы пока мне совсем не ясен...
ПЛИС отнюдь не дешев и отнюдь не валяется на каждом углу, отнюдь не так просто прошивается.
Зачем "надевать фрак на осминога" ?
Опять же говорю --- если это просто ради "высокого искусства" --- тогда речи нет --- здесь логика бессильна , как в "Черном квадрате" Малевича --- хочу пожелать только удачи в творчестве !

Бывают применения, где не требуется преобразованный в аналоговую форму сгенерированный сигнал, где выход таблицы исользуется как значение для какой-либо последующей обработки.

Sergey_gh
15.11.2008, 01:30
Это цифровой или уже с выхода TxDAC? И какова в этом случае тактовая частота (реальная и предельная по симулятору), есть ли пики пораженных частот от работы ПЛИС?

Это, конечно, цифровой (почти 120 дБ SFDR !). Спектр получен моделированием синтезируемого verilog модуля в DSPBuilder (MATLAB). Проверялось в ALTERA EP2C8 на частоте 80 МГц. Синтезатор говорит, что можно запустить и на 150 МГц (speed grade = 8 -- самый медленный). Синтезировал и под 3-ий спартан (XC3S50 speed grade = 4) -- ~120 МГц.

RU3GA
15.11.2008, 02:14
Бывают применения, где не требуется преобразованный в аналоговую форму сгенерированный сигнал, где выход таблицы исользуется как значение для какой-либо последующей обработки.

Вот с этим --- согласен на все 100 %!
И это , пожалуй , единственное оправдание DDS на ПЛИС.
Но я не заметил , что автор ветки хоть бы намекнул об этом...
Мне кажется он об этом даже и не думал...

"Хочется странного?" (С) А. и Б. Стругацкие

Ну что ж --- у каждого --- свои приколы :)

Удачи !
RU3GA
Александр

Александр Вдовенко
15.11.2008, 23:14
Приветствую!

http://lib.tkk.fi/Diss/2000/isbn9512253186/isbn9512253186.pdf (размер файла около 5Мб) - c 50 cтраницы предлагаются разные способы компрессии синуса для DDS

------------------------------------------
С уважением
Александр

mokropolov84
16.11.2008, 09:26
Хочу расставить некоторые точки над ё. Ни в одной готовой DDS от Analdevice нельзя изменять одновременно частоту и производную несколько раз в секунду без разрыва фазы. А мое задание как раз и подразумевает изменение частоты (FTW) и производной (DTW) несколько раз в секунду без разрыва фазы. Максимально приближенный к этому - режим CHIRP. DTW в нем можно менять сколь угодно раз в секунду, а вот частоту установить можно только один раз в самом начале. Не пойдет. Хотя чисто в схемотехнике в DDS есть все возможности для этого и ограничений вроде быть не должно. Но они есть - и в datashite и на практике. Может быть нужная мне функция в AD9854 урезана, как представляющая военную тайну янки :-)

mokropolov84
17.11.2008, 11:23
Хочу сказать спасибо всем участникам темы, отдельную благодарность Александру Вдовенко за превосходную ссылку! :-) С английским всегда был порядок, думаю, теперь разберусь. Ну и финны, зависающие в барах, конечно, тоже молодцы, поскольку дали столь полное и обьективное описание DDS :-)