Страница 4 из 13 Первая ... 23456 ... Последняя
Показано с 61 по 80 из 243

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

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

    По умолчанию 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 
Просмотров:	227 
Размер:	17.0 Кб 
ID:	441606
    NTF шейпера на 1кГц сигнале:
    Нажмите на изображение для увеличения. 

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

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

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

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

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

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

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

    Спасибо. Без таких пояснений тяжеловато самому разбираться, знаний не хватает.

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

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Почти идентичны. Шина данных та же самая - 24 бита.
    Разница только в том, что для ядра DF1 нужен был синхронизирующий сигнал sai_out_load. Для DF2 он не нужен, соотв. выход в модуле sai_otuput просто не используется (никуда не подключается).
    Ну и параметр OVS_MAX для DF1 и DF2 отличается:
    Для DF1 это 2-х битный параметр, задающий оверсемплинг от 0 - х4 до 3 - х32.
    А для DF2 это 3-х битный параметр, задающий оверсемплинг от 0 - х1 до 5 - х32.
    Например, если нужен х16 оверсемплинг, то для ядра DF2 он задается 4, а для sai_output модуля DF1 - 3.
    Остальные параметры модуля sai_output с ядром ЦФ не связаны. Разрядности задаются независимо друг от друга. Например можно на 20бит ЦАП вывести 8 бит данные, или на 16 бит ЦАП вывести 10 бит данные.
    Разрядность ЦАП задается в модуле sai_output, а разрядность данных - параметрами ядра ЦФ.
    Алексей, то есть, связанные параметры я задаю примерно так:
    assign load = rload;
    assign d_left = QL;
    assign d_right = QR;
    assign clk = iCLK;
    assign clrn = iCLRn;
    с учетом, что в новом фильтре есть общий проводник (пример ты привет для ДФ1) , остальные параметры задаю просто через wire, все вспомогательные модули v добавляю к проекту ДФ2, включая переименованный configs.v

    Кстати, тогда задавать для sai_output оверсемплинг просто одинаковым числом в df2 и в sai_output? в ДФ1 и в примере ДФ2 одинаково : input[1:0] ovs_max (iOVS_MAX), а в ядре input[2:0] iOVS_MAX.
    Последний раз редактировалось Михаил45; 02.10.2023 в 12:17.

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

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

    Не очень понял про "связанные" параметры.
    Собрал для примера DF2 с модулем вывода из старого проекта. Сейчас там задан х16 оверсемплинг, 16 бит в конвейере. Более точно параметры можете задать самостоятельно, как в проекте DF1.
    Вложения Вложения

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

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

    "Связанные" я подразумевал те, которые выходят из DF2_core и входят в sai_out. Алексей спасибо, у тебя, конечно, профессиональный подход, недоступный уже для меня.

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

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Собрал для примера DF2 с модулем вывода из старого проекта.
    Спасибо, Алексей.

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

    В DF2.v есть 2 строки с нестыковками.

    output[2:0] oINOVS, // input sample rate indicate outputs: 1 - 44/48, 2 - 88/96, 3 - 176/192, 4 - 352/384, 5 - 705/768, 7 - error
    .......
    .oINOVS( wINOVS ), // Input sample rate indication 7 - error, 0 - 44/48, 1 - 88/96, 2 - 176/192, 3 - 352/384, 4 - 705/768

    чему верить?

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

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

    Верить дефайнам в файле DEFINES.v Там расписаны актуальные значения.

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

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

    Алексей спасибо еще раз. Запустил ДФ2 с конвейром от ДФ1. Разница на слух есть, при том, что и на первом и втором почему-то в режиме конвейера КНИ-0.01%-0.008%. Это много для тда1541. Вот что беспокоит. 2 -я в основном, довольно музыкальный чип 1541.

    Надо попросить Турбомена измерить его конвейер на этих цап.
    На ДФ1 такой же уровень искажения, дело в конвейере. Есть еще пара 1541а, но старенькие ( а может уже сдыхают), только нагреваются и идет сплошной треск, надо радиаторы вешать, измерить не успеваю.

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

    Накидаю на досуге печатку с одним tda1541а и выхлопом на ад844+ад845. С твоим ДФ2 послушаю. А конвейер на них пока прикрою.
    Последний раз редактировалось Михаил45; 03.10.2023 в 21:36.

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

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

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Есть еще пара 1541а, но старенькие ( а может уже сдыхают), только нагреваются и идет сплошной треск, надо радиаторы вешать, измерить не успеваю.
    Если микрухи не бракованные, то деградировать не должны. Там же схема полностью на биполярных ключах, и без каких-либо значимых токовых нагрузок.

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Надо попросить Турбомена измерить его конвейер на этих цап.
    Схема конвейера на линейность особо влиять не должна. Это эквивалент параллельного включения ЦАП, при котором нелинейности усредняются в корень из 2 раз на каждое удвоение чипов ЦАП.

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

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

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    КНИ-0.01%-0.008%. Это много для тда1541.
    Да, кажется многоватым. Постараюсь обмерить свои. Но быстро не обещаю.
    А ты нойзшейпинг с дизером включал?

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

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

    Володя, включал, может 0 надо точно выставлять? Так то слух не режет, особенно через лампу 6с4с. На выходных спаяю цапик на 1541а и сравню с конвейерным вариантом.
    Последний раз редактировалось Михаил45; 05.10.2023 в 10:39.

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

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

    Разобрались с Александром (And$er) с косяком в его сборке проекта DF2.
    Оказалось при задании типа ЦФ константой синтезатор квартуса так яростно оптимизирует, что может поломать функционал.
    Пришлось на этот случай добавить атрибуты на сигналы выбора ЦФ.
    Так же чуть исправил описание и мелкие правки в проекте. Выкинул удвоитель на триггере, т.к. не всегда работает, это надо отлаживать на каждом проекте индивидуально.

  13. #72
    Старый знакомый Аватар для And$er
    Регистрация
    29.09.2007
    Адрес
    г. Москва
    Возраст
    49
    Сообщений
    956

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

    Алексей, еще раз спасибо за помощь
    Александр.

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

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

    Спасибо за отличный проект

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

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

    Присоединяюсь

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

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

    Алексей привет. По какой причине дф2 может на принимать 192к\24 от хмос? 96\24 и ниже играет. (ДФ1 работает на всех форматах, как часы от этого хмос)

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

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Володя, включал, может 0 надо точно выставлять? Так то слух не режет, особенно через лампу 6с4с. На выходных спаяю цапик на 1541а и сравню с конвейерным вариантом.
    Искажения с дф1, дф2 порядка 0.01% в режиме х8, практически не зависят от мс. Без цф, чисто от аманерки с soxr по i2s искажения 0.003% в режиме х4. Вот такая загадка. Или особенность работы цф и 1541, 5141а. Причем в конвейере также как и одна.

    На слух есть незначительные различия. Но еле слышно, не режет уши. С ДФ2 порезче немного вроде.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	20231108_203142.jpg 
Просмотров:	94 
Размер:	4.47 Мб 
ID:	443635  
    Последний раз редактировалось Михаил45; 08.11.2023 в 22:09.

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

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

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Алексей привет. По какой причине дф2 может на принимать 192к\24 от хмос? 96\24 и ниже играет. (ДФ1 работает на всех форматах, как часы от этого хмос)
    Приветствую.
    С таким не сталкивался, прям щас у себя на столе проверил еще раз 192к, 384к - все работает. Надо смотреть осциллограммы от транспорта и моделить конкретный проект.
    Ну и симптомы бы поконкретнее, как оно не работает: шумит, трещит или вообще тихо? Какие осциллограммы при этом на выходе? Какая частота клока?

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Искажения с дф1, дф2 порядка 0.01% в режиме х8, практически не зависят от мс. Без цф, чисто от аманерки с soxr по i2s искажения 0.003% в режиме х4. Вот такая загадка.
    Возможно так и должно быть: с увеличением кратности искажения растут. Проверить несложно, можно задать тот же х4 оверсемплинг и в ЦФ.

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

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

    Понял. Буду проверять. С другой стороны, ДФ1 работает на 192\24.

    Все в порядке. Работает 192\24.
    Последний раз редактировалось Михаил45; 09.11.2023 в 18:22.

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

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

    Цитата Сообщение от dortonyan Посмотреть сообщение

    Возможно так и должно быть: с увеличением кратности искажения растут. Проверить несложно, можно задать тот же х4 оверсемплинг и в ЦФ.
    Алексей, есть мысль подключить 1541 по классической схеме i2s прямо от ДФ2. Помнится , ты выкладывал где-то преобразование 2 канала рсм в i2s?
    Последний раз редактировалось Михаил45; 10.11.2023 в 12:06.

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

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

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    Алексей, есть мысль подключить 1541 по классической схеме i2s прямо от ДФ2. Помнится , ты выкладывал где-то преобразование 2 канала рсм в i2s?
    Что-то не помню, наверное не я. Я выкладывал I2S to PCM.
    Да и зачем он вам? Если есть проблемы с линейностью, то смена интерфейса ничего не исправит.

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

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

    Если одна и та же платка tda1541 подключенная по i2s к аманерке с софтовым цф показвает лучшую линейность, чем подключенная к дф2, то где может быть источник нелинейности? Причем не только у меня, еще Анатоль обратил внимание.

Страница 4 из 13 Первая ... 23456 ... Последняя

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

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

Ваши права

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