Страница 8 из 10 Первая ... 678910 Последняя
Показано с 141 по 160 из 195

Тема: DF2 - Вторая версия DIY ЦФ

  1. #1 Показать/скрыть первое сообщение.
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию DF2 - Вторая версия DIY ЦФ

    Итак, обещанный проект нового ЦФ.
    Опыт прошлой ветки показал, что вопросы построения ЦФ сводятся к конкретному проекту. Поэтому решил создать отдельную.

    Исходная ветка с обсуждением различных реализаций ЦФ здесь.
    Ветка про ЦФ DF1 здесь.

    С момента публикации прошлой версии ЦФ прокачал скилл по верилогу, поэтому новый ЦФ выполнен проще, и с более сложной арифметикой. В частности добавлены опции шейпера и дополнительного апсемплера, что позволяет выводить данные в том числе на малоразрядные ЦАП, типа AK4499EX.
    Получив определенный опыт понял о чем писал Сергей Агеев (на счет реализации умножителей и многовходовых сумматоров на FPGA). Если правильно выбирать длину конвейера, то нет смысла изобретать оригинальную схему умножителя. Компилятор синтезирует лучше.
    То же самое касается описания сумматоров: использование многовходовых сумматоров оптимизируется лучше, чем ручная разбивка на двух-входовые.

    В отличие от предыдущего проекта, новый делался как заготовка для самостоятельного применения и доработки под свои задачи. Поэтому все режимы досконально не тестировались, и проект выкладывается "как есть" в версии альфа.
    В исходниках есть только пара примеров: для FPGA cyclone и lcmxo2.
    Описание содержит краткое перечисление основных параметров, а так же инструкцию по самостоятельной сборке проекта и генерации собственных коэф-тов в MatLab.
    Картинок много, текста мало. Все как мы любим.
    Утилита и ее исходник для автоматизированной конверсии коэф-тов в формат верилога прилагается.
    Так же прилагаются матлабовские модели всех каскадов фильтра, архив со сгенерированными коэф-тами фильтров, примененных в проекте и симулинк-модель. Для запуска симулинк-модели нужен матлаб версии r2018b.

    - 25.09.2023 - Добавил MatLab модель шейпера в симулинке. На этот раз версии r2013b. В 2018-ом матлабе че-то намудрили со спектроанализатором, и в нем амплитуда сигнала получается зависима от порядка шейпера, или от кратности оверсемплинга.

    - 27.09.2023 - Правка шейпера 3-го порядка

    Шейпер 3-го порядка в проекте выполнен по схеме:
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_132616551.png 
Просмотров:	72 
Размер:	17.0 Кб 
ID:	441606
    NTF шейпера на 1кГц сигнале:
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_132509846.png 
Просмотров:	64 
Размер:	29.1 Кб 
ID:	441605
    Данный шейпер оптимизирован для работы на невысокой частоте семплирования (х16..х32) и с разрядностью данных не менее 7..8 бит.
    На работы на более высоких ЧД при меньшей разрядности данных можно упростить коэф-т шейпера, улучшив SNR и сэкономив на логике. Для этого исключается слагаемое Gain3 (по схеме симулинка):
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_132931529.png 
Просмотров:	44 
Размер:	17.0 Кб 
ID:	441607
    В проекте это слагаемое находится в файле DATA_READ.v:
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_133349302.png 
Просмотров:	62 
Размер:	20.6 Кб 
ID:	441609
    Данное слагаемое отклоняет значение коэф-та от 3-х, создавая дополнительный полюс на NTF. После упрощения коэф-та NTF шейпера принимает вид классического модулятора 3-го порядка.
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-27_133125636.png 
Просмотров:	58 
Размер:	26.8 Кб 
ID:	441608
    Можно также это слагаемое не удалять, а менять его величину (увеличивать сдвиг), двигая тем самым полюс NTF.
    [свернуть]

    - 28.09.2023 - Отрефакторил модули DATA_READ и SAI_OUTPUT. Поправил описание.
    - 05.10.2023 - Поправил DF_CONTROL. Поправил описание.
    Вложения Вложения
    Последний раз редактировалось dortonyan; 05.10.2023 в 22:16.

  2. #141
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Разве с параллельным, не путаешь?
    Ты ошибся. Там последовательный, тоже COB.
    У меня если 4 цапа на скорости 16фс, то общий поток 64фс/канал. Но если 8 цапов/канал то 128фс.

  3. #142
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Разве с параллельным, не путаешь?
    Точно, путаю. Путаю с DAC729.

  4. #143
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    У меня по осциллографу видно, что нойзшейпинг 2го порядка шевелит 2 младших бита, а 3го - 3 бита.
    Так и должно быть?

  5. #144
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    У меня если 4 цапа на скорости 16фс, то общий поток 64фс. Но если 8 цапов то 128фс.
    В общем УВХ до х64 разогнать можно, снизить резисторы до 470 Ом, и ОУ применить типа LM6171. Для х128 оверсемплинга понадобится пара таких УВХ.
    Но это конечно получается совсем монструозно.

    Я бы лучше к 1540 вместо конвейера прикрутил УВХ и калибровку. Двоичные ЦАП калибровать удобно, и у 1540 разрядов немного. Но это лично моя ИМХа.

    ---------- Сообщение добавлено 19:40 ---------- Предыдущее сообщение было 19:39 ----------

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    У меня по осциллографу видно, что нойзшейпинг 2го порядка шевелит 2 младших бита, а 3го - 3 бита.
    Так и должно быть?
    Примерно да.

  6. #145
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    И почему-то 14-2 кажется благозвучнее 16-2. Может кажется? Любовь к искажениям.

    ---------- Сообщение добавлено 19:45 ---------- Предыдущее сообщение было 19:41 ----------

    Там ещё непонятки с числом LENMIN. Для 14 бит надо ставить 6, иначе у меня компилятор создаёт нерабочий проект. А для 16 бит LENMIN=8.
    Что меняет это число в проекте, если битность всё равно выше? Растолкуй подробнее.

    ---------- Сообщение добавлено 19:48 ---------- Предыдущее сообщение было 19:45 ----------

    Про деглитчер буду думать, хочется.

  7. #146
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Там ещё непонятки с числом LENMIN. Для 14 бит надо ставить 6, иначе у меня компилятор создаёт нерабочий проект. А для 16 бит LENMIN=8.
    Этот параметр задает необходимую дополниптельную аттенюацию. Чем сильнее шум - тем сильнее нужно ослаблять сигнал, чтобы шейпер не ушел в ограничение.
    LENMIN надо задавать на минимальную используемую разрядность. Если только 14 и 16, то значит 14. Если 8, 10, 14, 16, то - 8.
    Можно задавать и меньше, просто будет избыточная аттенюация.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    И почему-то 14-2 кажется благозвучнее 16-2. Может кажется? Любовь к искажениям.
    Возможно это просто оптиум для данного ЦАП, когда внеполосный шум еще небольшой, но при этом отсутствуют нелинейности младших бит.

  8. #147
    Завсегдатай Аватар для Михаил45
    Регистрация
    09.03.2007
    Адрес
    Санкт-Петербург
    Возраст
    62
    Сообщений
    2,060

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    И почему-то 14-2 кажется благозвучнее 16-2. Может кажется? Любовь к искажениям.

    ---------- Сообщение добавлено 19:45 ---------- Предыдущее сообщение было 19:41 ----------

    Там ещё непонятки с числом LENMIN. Для 14 бит надо ставить 6, иначе у меня компилятор создаёт нерабочий проект. А для 16 бит LENMIN=8.
    Что меняет это число в проекте, если битность всё равно выше? Растолкуй подробнее.

    ---------- Сообщение добавлено 19:48 ---------- Предыдущее сообщение было 19:45 ----------

    Про деглитчер буду думать, хочется.
    Коллеги уважаемые, сейчас у меня играет конвейер : режим 14-2. LENMIN = 14, .iODW( 14 ) , ресемплинг х16, тоесть , каждая тда1541 на х8. Компилирую режим х32. Играет, но при это симулируется 8 бит на семпл и 4 бита сдвиг. Чудеса? Получается, тда1541 могут 705,6 кГц?

  9. #148
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Играет, но при это симулируется 8 бит на семпл и 4 бита сдвиг. Чудеса?
    Надо спектр смотреть. Играть то оно играет, только вполне возможно, что 8 бит. А в младших 8 битах кусок другого семпла, но его плохо слышно.
    Если в симуляторе на фрейм 16 бит не помещается, то нечего даже пробовать.

  10. #149
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Михаил, так 705кГц это и есть 16фс. Давно про это тут пишу. Конечно работают. А при 8 битах на фрейм и 32фс тоже у меня работало.

  11. #150
    Завсегдатай Аватар для Михаил45
    Регистрация
    09.03.2007
    Адрес
    Санкт-Петербург
    Возраст
    62
    Сообщений
    2,060

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Володя, у меня 2 шт. в конвейере. При х16 нормальный режим для тда1541 - 352,8. Я и удивился, что х32 вдруг поет.

  12. #151
    Новичок Аватар для Montix
    Регистрация
    09.01.2022
    Сообщений
    37

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Алексей, твой ДФ просто находка для старых цап. Можно любой цеплять и адаптировать. Спасибо еще раз.
    А по поводу древних решений - не могу понять почему старые цап играют лучше новых, все время возвращаюсь от АК4490 к рсм1702, теперь тда1541.
    Лично у меня очень плохой опыт с DAC AK4490. Мне довелось послушать этот ЦАП в различных коммерческих продуктах, аранжировщике Yamaha. И я также создал свой собственный дизайн. Однако этот ЦАП всегда звучал плохо. Звуку всегда не хватало глубины, а ЦАП не мог передать пространство в высококачественных акустических записях. Параллельные ЦАП превосходно воспроизводят это пространство в записи. Я также попробовал AK4499 и обнаружил тот же недостаток. С тех пор я не доверяю АКМ. Современные ЦАПы АКМ на мой взгляд это мошенничество и маркетинг.
    Последний раз редактировалось Montix; 28.11.2023 в 05:49.

  13. #152
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Сейчас провел опыт: DW=27, AW=40.
    Звук пропал совсем (замьючен как бы). Может компилятор глючит? Возвращаю опять к дефолту AW=36 и звук снова на месте. Более ничего не меняю. LENMIN=14, NSHOR=1. UPSAMPLE=1

    ---------- Сообщение добавлено 21:39 ---------- Предыдущее сообщение было 21:38 ----------

    При DW=31 и AW=40 звук был.
    Последний раз редактировалось Turbo_man; 28.11.2023 в 22:10.

  14. #153
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Звук пропал совсем (замьючен как бы). Может компилятор глючит?
    А где меняете, в дефайнах сверху в файле DF2, или в каком-то отдельном модуле?

  15. #154
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    В табличке над графическим модулем DF2_FIR_CORE. Тут реагирует на изменения правильно.
    Раньше про это обсуждали.

  16. #155
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    В табличке над графическим модулем DF2_FIR_CORE. Тут реагирует на изменения правильно.
    Не помню как в вашем проекте, но в моем менять разрядности отдельно в ядре нельзя. У меня они меняются в дефайнах сверху в файле DF2. Т.к. изменяется разрядность еще и в модуле SAI_INPUT.
    Если из моего проекта используется только FIR_CORE, то тогда конечно достаточно задать разрядности только для него.

    ---------- Сообщение добавлено 22:39 ---------- Предыдущее сообщение было 22:25 ----------

    Или возможно ломается расчет из-за большой разницы в разрядностях, я все варианты не тестировал. Попробуйте задать разрядность данных чуть больше (на 1..2 бита), или разрядность аккумулятора чуть ниже.

  17. #156
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Хорошо, попробую не 40, а меньше. Поищу где появится звук.

    ---------- Сообщение добавлено 23:07 ---------- Предыдущее сообщение было 22:42 ----------

    При 27 и 38 нормально. 39 нет.

  18. #157
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    При 27 и 38 нормально. 39 нет.
    Понятно. Ну значит такое ограничение в моем описании расчета разрядностей в маке. Можно доработать конечно, но что-то лень. ) Может как-нить потом.

  19. #158
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Да это просто так был опыт. Ничего не нужно делать.

    ---------- Сообщение добавлено 23:18 ---------- Предыдущее сообщение было 23:15 ----------

    29 и 40 норм. Оставлю пока так.

  20. #159
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,050

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    29 и 40 норм. Оставлю пока так.
    Вообще, чисто из теоретических рассчетов (если я не ошибся) для получения максимальной погрешности не более 1LSB от 24-х бит, шина данных для данного ЦФ должна быть не менее 31..32 бит. А разрядность аккумулятора минимум на 8 бит больше разрядности шины данных.
    Детальных исследований по слышимости ограничения разрядности я не проводил. Поэтому если ресурсы позволяют, то чтобы не думалось можно тупо задать 32/40.

  21. #160
    Завсегдатай Аватар для Turbo_man
    Регистрация
    06.04.2010
    Адрес
    Moscow
    Сообщений
    5,548

    По умолчанию Re: DF2 - Вторая версия DIY ЦФ

    Получилось запустить DF2 и ФИФО на встроенном ОЗУ в конфигурации 4096х48бит.
    Но правда лишь с дефолтными установками битности DF2: DW=27 и AW=36(или 38, при 40 мьютится сигнал). Увеличение DW приводит к тому, что проект не помещается. Озу не лезет. Видимо организация битности озу кратна 9.

    ---------- Сообщение добавлено 18:41 ---------- Предыдущее сообщение было 18:37 ----------

    Как бы попроще вывести процент заполнености озу для индикации его использования. Сейчас сделал разрешение чтения фифо после переполнения записи, не зависимо от соотношения частот записи и чтения. Артефактов перепрыгивания ещё не встретил.

    ---------- Сообщение добавлено 18:45 ---------- Предыдущее сообщение было 18:41 ----------

    Ещё интересно бы написать фифо полностью на верилоге, чтобы потом и в Говине использовать.

    ---------- Сообщение добавлено 19:18 ---------- Предыдущее сообщение было 18:45 ----------

    Собираюсь мультиплексировать управляющим пином 3 бита индикации частоты Fs с декодером на 8 светодиодов и 3 старших разряда адресного счётчика записи в буфер ФИФО. Тогда будет индикация заполненности буфера фифо с дискретом 12.5%.

Страница 8 из 10 Первая ... 678910 Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •