Страница 4 из 5 Первая ... 2345 Последняя
Показано с 61 по 80 из 85

Тема: Экономичная реализация арифметики ЦОС в аудио

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

    По умолчанию Экономичная реализация арифметики ЦОС в аудио

    Просто FIR интерполятор - вещь достаточно банальная, а вот оптимизация ресурсов - задача более интересная.
    Поэтому новая ветка про оптимизацию. Предлагаю пообсуждать решения по оптимизации арифметики на FPGA и MCU для аудио ЦОС.
    Предыдущий проект со ссылками на другие ветки здесь.

    С появлением недорогих FPGA GoWin оптимизация вроде как особо и не нужна. Но в наших (отечественных) реалиях ассортимент и стоимость микросхем могут быть не самые лучшие.
    Ну а кроме того, у меня уже давно были мысли уместить ЦФ в LCMXO2-1200, т.к. это недорогая FPGA со встроенной флешью и в компактном исполнении: QFN-32 5x5mm. Что так же послужило поводом для нового проекта и стало целевой задачей при разработке.
    Несколько лет назад я прикидывал, что туда поместится только что-то совсем простое, вроде SM5842. Однако с опытом работы в верилоге получилось ужать арифметику настолько, что даже в такой скромный чип помещается нормальный полноценный апсемплер с шейпером.

    Кое что из стандартных приемов оптимизации уже описывал в проекте DF1.
    Теперь дополнил подробнее (документ во вложении ниже).
    Изначально мысль ужать ресурсы возникла из того обстоятельства, что в DF2 для первой ступени х2 интерполятора использовались каскады с максимально широкой полосой пропускания (максимально узкой переходной полосой). Сделал я это по аналогии со старыми микросхемами ЦФ, типа SM5847.
    Но потом подумал - а собственно нафига?
    В интегральных ЦФ первая ступень для любой входной частоты семплирования сделана максимально широкополосной чисто из соображений экономии: тупо используется одна и та же логика, просто на разной частоте.
    А на FPGA ситуация обратная: максимальная частота тактирования лимитирована, а добавить несколько наборов коэффициентов для разной входной частоты семплирования - не проблема.
    Частоты выше 20кГц все равно не слышно, поэтому переходную полосу можно сделать более пологой (сделать полосу пропускания для всех входных частот семплирования в районе 20кГц).
    Это не только укорачивает импульсную хар-ку фильтра, сохраняя преимущества Hi-Res контента, но и потенциально упрощает фильтрацию в аналоге: чем шире полоса пропускания, тем шире и ее отражение на частоте семплирования.
    А если так, то кол-во тактов, необходимых для обсчета фильтра резко уменьшается. На столько, что при тактировании частотой 1024Fs можно успеть обсчитать оба канала по очереди, что и стало основным нововведением в проекте DF3E. Т.е. в данном ЦФ блок многоступенчатого FIR апсемплера запускается вдвое чаще, чем в DF2.

    Правда одного сужения полосы первой ступени интерполятора оказалось недостаточно для поочередной обработки каналов.
    Поэтому для DF3E проекта были так же оптимизированы полуполосные каскады интерполяторов (сокращены до минимума). Из-за этого боковые лепестки в полосе задержания получились повыше, чем в DF2 проекте, но только на частотах кратных 705кГц, где они легко дофильтровываются аналоговым ФНЧ.
    Еще немного тактов удалось сэкономить оптимизацией алгоритма умножения центрального отвода полуполосных каскадов. В DF2 это умножение, как и остальные, выполнялось за два такта, а в DF3E - за один.

    Для упрощения модуля приема пакетов SPI обработка выполняется сразу по приему данных одного канала: приняли левый - запустили обработку, приняли правый - запустили обработку.
    Данное обстоятельство накладывает ограничение на входной I2S фрейм, в котором сигнал LRCK обязан иметь скважность 50%. Но я еще не сталкивался со случаями, когда данное условие не выполняется.
    Кроме того, обработка в остальных блоках так же выполнена последовательной, что позволило серьезно сэкономить еще и на шейпере и дополнительных амсемплерах. Кто пользовал DF2 сразу почувствует разницу.

    Что еще стоит отметить - добавлено округление с дизером в маке. Что позволило уменьшить разрядность шины данных до 22 бит, а так же - сделало входной аттенюатор фактически беспотерьным даже при малой разхрядности шины данных, и его теперь можно использовать как качественный цифровой РГ.
    Округление с дизером было и в самом первом проекте DF1, но теперь оно выполнено более аккуратно.
    Дизеры для мака и для округления выходных данных выполнены на LFSR со сдвигом на 16 тактов перед выборкой. Если использовать сдвиг на 2^N тактов, то длина генерации последовательности до повтора получается такая же, как и при сдвиге на один такт (т.к. 2^N всегда некратно максимальной длине последовательности LFSR).
    Так же, в ходе экспериментов с округлением на сигналах малой разрядности выяснил, что амплитуда дизера должна быть не менее +/-1 LSB, иначе получается модуляция шума, хотя на спектре следов квантования не видно.
    Для округления данных на выходе добавлена опция дизера с треугольным распределением. Шум которого на 3дБ ниже, чем с прямоугольным. Однако это имеет значение только для округления без шейпера.
    Наличие даже самого простого шейпера 1-го порядка исключает модуляцию шума и можно использовать самый простой шум с равномерным распределением минимальной амплитуды: +/-0.5LSB.

    Схему отработки переполнения наоборот упростил: убрал дополнительный аттенюатор перед шейпером.
    Теперь аттенюация отдана на откуп пользователю проекта, который должен сам решать - на сколько ослабить сигнал в случае вывода данных малой разрядности с шейпингом.

    Ну и отдельно стоит упомянуть про такую вещь, как асинхронное тактирование ядра в DF3E. Для этого выделен отдельный порт "CCLK".
    Типовая тактовая частота для данного проекта 1024Fs.
    Однако, в случае отсутствия тактовых генераторов на такую частоту, можно применить например 512Fs генераторы, а ядро фильтра (а так же ядро DSD дециматора) затактировать любой произвольной частотой, не обязательно кратной 1024Fs (например от встроенного в FPGA генератора).
    Это не только позволяет сохранить производительность при низкой частоте тактовых генераторов, но и при необходимости - поднять тактовую частоту и увеличить длину фильтров.
    Подняв частоту вдвое получим производительность DF2 (если конечно позволит быстродействие выбранной плисины).

    В архиве проект DF3E с исходниками, как обычно в альфа версии, т.к. протестировать весь накрученный функционал слишком трудоемко.
    В файле с примерами приведено два проекта:
    1. Вывода на параллельный ЦАП с возможность приема DSD битстрима.
    2. Вывод данных с соневского модулятора дифференциальными битстримами на PCM179x в моно-включении в режиме DSD.

    Помимо исходников в архиве есть графики частотных хар-к в разных режимах (включая хар-ки DSD дециматоров), диаграммы управляющих сигналов и данных, а так же доработанная утилита (и ее исходник) для преобразования коэф-тов, сгенерированным в матлабе.
    Модули вывода SAI_OUTPUT взяты с проекта DF2 с чисто косметическими доработками, поэтому его описание не делал.
    Вложения Вложения
    Последний раз редактировалось dortonyan; 26.02.2025 в 23:38.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Как я понял, использовать отдельно df3_core стало сложнее, т.к. шина данных там стала 22 бит и каналы идут последовательно по одной шине.

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

    Тогда мне надо бы как-то отрезать выходной формирователь sai_output. И получить две выходных параллельных шины по 12...24 бит.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Володя, так в ядре ДФ3 есть параллельный выход.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Как я понял, использовать отдельно df3_core стало сложнее, т.к. шина данных там стала 22 бит и каналы идут последовательно по одной шине.
    22 бита - это разрядность данных в шине. Разрядность шины физическая - 23 бита (один бит добавляется на переполнение).
    А разрядность на входе еще на 1 бит больше, т.е. 24 бита.
    Т.е. входная разрядность на 2 бита больше разрядности шины данных.
    На выходе разрядность всегда 24 бита, как и было в DF2.
    В общем-то в DF3E разрядности шины можно задавать и больше, как в DF2, просто нет смысла, т.к. в маке округление с дизером.
    Единственное усложнение, что данные передаются последовательно и в паре с синхросигналом. Но это только на входе. На выходе все так же как и в DF2 (точнее в DF3 есть еще и последовательный вывод "oQSD/oCHSD", но он опциональный, можно не использовать).

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

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

    Тогда мне надо бы как-то отрезать выходной формирователь sai_output.
    Владимир, еще учти, что этот модуль в принципе не поддерживает , не рассчитан на работу с цапами от ВВ типf рсм56, 1702 и так далее.
    Последний раз редактировалось Михаил45; 16.06.2025 в 15:44.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Михаил45, почему не поддерживает? И почему именно BB?
    Или имеется ввиду самый старый из проекта DF1?

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Алексей, именно из ДФ1 где конвейер. Я выше приводил тайминг для работы рсм1702. В sai_output ДФ1 такого не получить.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    По просьбам выкладываю ДФ3 для 1541, режим х8, Циклон 2.
    В этом архиве режим х4. Меняется легко.
    Вложения Вложения
    • Тип файла: 7z DF3E.7z (9.10 Мб, Просмотров: 10)
    Последний раз редактировалось Михаил45; 15.08.2025 в 13:19.

  9. #68
    Завсегдатай Аватар для Delta213
    Регистрация
    23.01.2006
    Адрес
    Астрахань
    Сообщений
    5,256

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Цитата Сообщение от Михаил45 Посмотреть сообщение
    По просьбам выкладываю ДФ3 для 1541

    Стесняюсь спросить поставил пулл апы на все входа, ругается на clki, не пойму почему?
    Error: Can*t place I/O pin clki at pin location 18 -- I/O pin uses weak pullup, which is not supported by this pin location
    Это сам 18 пин не может пулл ап поднять?
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Юра, это вход на плл мслк 512фс. Не нужны тут пулапы, неиспользованные пины циклона в тристейт. Все работает. Если угодно настройки : х8, шейпинг и прочее, что описано у Алексея.
    Почитай мануал на 2 циклон. Там все прописано.
    Последний раз редактировалось Михаил45; 15.08.2025 в 18:28.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    dortonyan, прошу помощи. Как бы выделить конвертор dsd->pcm в отдельный модуль. Остальное мне удобнее из DF2 использовать. Или тут ещё цф какой-то улучшенный?

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

    Как мне показалось, в этом проекте потерялась простота (модульность) исходников. Идеально было бы на каждый модуль проекта иметь 1 верилоговский файл. И один общий, где все модули между собой соединены. По типу блок-схемы.

    ---------- Сообщение добавлено 18:03 ---------- Предыдущее сообщение было 17:42 ----------

    Например, файл df3e_core.v содержит описание ДЕВЯТИ модулей. Для новичков читаемость таких исходников сильно снизилась. А что повысилось, ради чего это сделано? Глубокое ИМХО.
    Последний раз редактировалось Turbo_man; 20.08.2025 в 19:36.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Володя, ты из топ модуля просто исключаешь, что не нужно и все. Или свои добавляешь через include и параметры.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Как бы выделить конвертор dsd->pcm в отдельный модуль.
    DSD приемник в отдельном файле "DF3E_DSD.v". Если нужно - из него можно сделать отдельный графический модуль, выбрав "DSD_IN" модуль из этого файла.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Остальное мне удобнее из DF2 использовать. Или тут ещё цф какой-то улучшенный?
    ЦФ - он и в африке ЦФ. Просто в DF3E больше опций округления, и меньше ресурсов.
    В новом ЦФ данные каналов передаются по очереди с помощью дополнительного синхросигнала: если sync сменился в нуль - можно считывать (защелкивать) левый канал, если в единицу - можно считывать правый канал. В архиве есть картинка с диаграммами интерфейса "core_input_data_format.png".
    Для того, чтобы передать эти данные на вход DF2 нужно сначала (после перехода sync в нуль) защелкнуть левый канал в буферный регистр, а потом (после перехода sync в единицу) защелкнуть оба канала (левый из буфера и правый из модуля DSD_IN) в еще один буферный регистр левого и правого каналов. Выходы с этого регистра подаются на входы DF2. Все.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Как мне показалось, в этом проекте потерялась простота (модульность) исходников. Идеально было бы на каждый модуль проекта иметь 1 верилоговский файл. И один общий, где все модули между собой соединены. По типу блок-схемы.
    Модульность никуда не делась, просто модули теперь сгруппированы в файлы по функциональной принадлежности.
    Я наоборот так сделал для упрощения, чтобы минимизировать кол-во файлов исходников.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Например, файл df3e_core.v содержит описание ДЕВЯТИ модулей. Для новичков читаемость таких исходников сильно снизилась. А что повысилось, ради чего это сделано? Глубоко ИМХО.
    Это наоборот сделано для упрощения: ядро ЦФ теперь в одном файле, который легко подкинуть в любой проект.
    Новичкам (да и опытным) вообще нечего лазить внутрь модуля ядра (как и внутрь других модулей). Это просто абстрактный "черный ящик", у которого все параметры задаются снаружи.
    Берете этот "ящик", подаете ему нужные сигналы и все работает. Если есть вопросы по самим конфигурационным или синхро-сигналам - другое дело.
    Ну а кому интересно покопать "внутрянку" для самообучения - разберется и так.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Ладно, не буду бурчать. Только RTL Viewer в Quartus-е и спасает меня. Иначе бы мозг взорвался бы от этого ё...го верилога.


    Нажмите на изображение для увеличения. 

Название:	20250820_190140.jpg 
Просмотров:	12 
Размер:	1.68 Мб 
ID:	477076
    Последний раз редактировалось Turbo_man; 20.08.2025 в 19:45.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Ну не знаю, давно только ДФ3 работает , только с разными модулями вывода.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Я только сейчас стал вникать в проект. Раньше не было необходимости. Т.к. всем устраивает DF2.

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

    dortonyan, не серчай.
    Алексей, скажи, а при конвертации dsd2pcm можно задать усиление в выходном сигнале до +6дБ?

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Если нужно - из него можно сделать отдельный графический модуль, выбрав "DSD_IN" модуль из этого файла.
    Сделал. Но при при двойном клике по нему исходник не открывается. Аналогично и графический модуль DSD_DET.
    В DF2 таких проблем не было.

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

    Вероятно нужно самому разбивать исходники по файлам графических модулей.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    dortonyan, не серчай.
    Я и не думал. Просто такой пост получился.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Алексей, скажи, а при конвертации dsd2pcm можно задать усиление в выходном сигнале до +6дБ?
    Функционала такого не закладывал, если только допиливать внутри DSD_IN модуля.
    Обычно наоборот - задается аттенюация, чтобы исключить клипп при фильтрации, но это делается через коэффициенты.
    Можно так: уменьшить сдвиг на один бит rQL <= rACCL>>>(ACW-26); -> rQL <= rACCL>>>(ACW-27);
    И то же самое для правого канала: rQR <= rACCR>>>(ACW-27);
    Но это экспромт, такой код не проверял.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Вероятно нужно самому разбивать исходники по файлам графических модулей.
    Графическим интерфейсом не пользуюсь, поэтому как он там собирает - не подскажу.
    Может нужна просто более новая версия квартуса. Единственное, что моделить тогда придется в modelsim/questasim.

  18. #77
    Завсегдатай Аватар для ditter
    Регистрация
    04.07.2004
    Адрес
    RUS
    Возраст
    52
    Сообщений
    1,112

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио


    Offтопик:
    х.з. че там в это DF3 так или не так но оно у меня ни разу не прошло компиляцию.
    третий месяц колупаюсь с квартусом ища ответы на его мессаги про ошибки.
    особенно доставляют моменты когда выскакивает что эта функция недоступна в бесплатной версии.
    но у других то оно работает, может быть есть смысл сделать мануал для тех кто квартус первый раз видит, я х.з.


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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Речь про dsd/pcm автоопределитель вынес сюда:
    Цитата Сообщение от dortonyan Посмотреть сообщение
    Offтопик:

    У меня он криво работает (нестабильно), поэтому в примеры не стал включать. А при публикации просто забыл вырезать из исходников.
    А как же сейчас это работает?

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Функционала такого не закладывал, если только допиливать внутри DSD_IN модуля.
    Обычно наоборот - задается аттенюация, чтобы исключить клипп при фильтрации, но это делается через коэффициенты.
    Можно так: уменьшить сдвиг на один бит rQL <= rACCL>>>(ACW-26); -> rQL <= rACCL>>>(ACW-27);
    И то же самое для правого канала: rQR <= rACCR>>>(ACW-27);
    Но это экспромт, такой код не проверял.
    Вопрос возник из опыта работы в Foobar-e. Там при конвертации есть опция выбора усиления. Т.к. индекс модуляции в DSD обычно не выше 50%. Или путаю?

    ---------- Сообщение добавлено 21:27 ---------- Предыдущее сообщение было 20:45 ----------

    ditter, попробуй этот проект. Я там создал одновременно оба варианта DSD_IN и DSD_OUT.
    Там всё компилируется. Всего использовано 3522 LE.
    Вложения Вложения

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Цитата Сообщение от ditter Посмотреть сообщение
    Offтопик:
    х.з. че там в это DF3 так или не так но оно у меня ни разу не прошло компиляцию.
    третий месяц колупаюсь с квартусом ища ответы на его мессаги про ошибки.
    особенно доставляют моменты когда выскакивает что эта функция недоступна в бесплатной версии.
    но у других то оно работает, может быть есть смысл сделать мануал для тех кто квартус первый раз видит, я х.з.

    Скачай квартусвеб https://rutracker.org/forum/viewtopic.php?t=3723674, установи, скачай Дф3 из ветки. Должно заработать. Gowin версию я тоже выкладывал.

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

    По умолчанию Re: Экономичная реализация арифметики ЦОС в аудио

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    А как же сейчас это работает?
    Сейчас работает схема определения формата по соотношению частот BCK и LRCK, в случае если в DSD режиме на LRCK выводятся данные.
    Там кода немного, написано прямо в примере под заголовком "support processing". Просто это не универсальное решение.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Вопрос возник из опыта работы в Foobar-e. Там при конвертации есть опция выбора усиления. Т.к. индекс модуляции в DSD обычно не выше 50%. Или путаю?
    Возможно. Зачем так сделано в фубаре - не знаю.
    У меня гейн сделан с учетом индекса модуляции (т.е. единичный). Правда из-за CIC-дециматора гейн получился не ровно единица, а чуть меньше 127/128 вроде (уже не помню).
    А кроме того добавлена еще аттенюация на 1дБ для исключения переполнения.
    Т.е. громкость чуть ниже, чем в PCM режиме, но не на 6дБ.
    И, по хорошему, для PCM тоже нужно добавлять аттенюацию, хотя бы на децибел.

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

    ditter, качайте любой квартус версии web edition. Это бесплатное IDE. Главное чтобы в нем была поддержка выбранной FPGA (в разных версиях разные наборы поддерживаемых плисин).
    Ну а по ошибкам можно только подсказать, если знать что за они.
    На вскидку, могу только предположить, что вы при создании проекта добавили в него все файлы исходников. Так делать не надо.
    Нужно добавлять только файл "DF3E_EXAMPLES.v" (т.е. самый верхний по иерархии). И в свойствах проекта выбрать модуль верхнего уровня DF3E_DSD_IN или DF3E_DSD_OUT (смотря какой проект нужен).
    Последний раз редактировалось dortonyan; 20.08.2025 в 21:47.

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

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

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

Ваши права

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