Страница 9 из 9 Первая ... 789
Показано с 161 по 168 из 168

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

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

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

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

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

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

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

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

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

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

    Володя, так ты на говине запускаешь дф2 и конвейер?

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

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

    Пока никак. Только дф2 пока могу. Верилог держит.

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

    Сделал индикацию заполненности буфера фифо. После ресета сразу показывает 0. Переходит на 1 через 8 минут. Значит 64 минуты есть в запасе. Поток 192кГц. На потоке 48кГц полный буфер будет более 4 часов для моего случая разности частот. Отлично.
    Последний раз редактировалось Turbo_man; 01.12.2023 в 20:29.

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

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

    Понятно. Есть ли смысл переходить на этот пакет?

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

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

    Я буду учить верилог и переходить на Говин, если сдюжу.
    Главное там встроенное ОЗУ 64Мбит.
    И сам кристалл мощнее, чем Циклон4.

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Увеличение DW приводит к тому, что проект не помещается. Озу не лезет. Видимо организация битности озу кратна 9.
    Да, 27 бит потому и выбрано, что на два канала ровно три блока памяти по ширине (18х3 = 27х2).

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Сейчас сделал разрешение чтения фифо после переполнения записи, не зависимо от соотношения частот записи и чтения. Артефактов перепрыгивания ещё не встретил.
    Т.е. чтение стартует когда FIFO полностью заполнено? В таком случае работать будет без артефактов только если частота на чтение выше, чем на записи.
    Если разница частот не известна, то чтение надо разрешать когда FIFO заполнено на 50%.
    А лучше сначала замерить разницу, а по результату уже включать чтение: либо сразу, либо по заполнению ФИФО.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Ещё интересно бы написать фифо полностью на верилоге, чтобы потом и в Говине использовать.
    Можно в ветке обсудить варианты релизации. Че там, пара счетчиков адресов и блок памяти.
    Память описывается как массив слов с независимыми портами чтения и записи.

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

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

    А вообще для асинхронного источника я бы лучше поискал VCXO, хотя бы si514, или типа того. Тогда большой буфер не нужен. И задержка при включении воспроизведения меньше.

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

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

    Нет, работать будет в обоих случаях. Только счётчики будут расходиться в разных направлениях. И в худшем случае может потеряться первых 4096 семплов. Это не гуд, конечно. Пока лень исправлять. Чуть позже поправлю по разности частот.

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

    VCXO в источнике я уже делал. И управлял по коаксиалу напряжением частотой этого VCXO. В приёмнике ещё не делал. Si514 если найду, то попробую. Томтит так делал.

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

    Задержка при включении важна только для случая просмотра видео. Фифо мне больше нравится, да и кошернее так. Гены лучше можно использовать.

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

    Когда перейду на Говин и задействую 64Мбит (или часть от этого) озу, то индекс можно будет тупо на 50% ставить и не париться.

  8. #167
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    37
    Сообщений
    2,780

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Нет, работать будет в обоих случаях. Только счётчики будут расходиться в разных направлениях. И в худшем случае может потеряться первых 4096 семплов.
    А да, точно, запись просто перепрыгнет чтение и потеряет заполненный буфер.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    VCXO в источнике я уже делал. И управлял по коаксиалу напряжением частотой этого VCXO. В приёмнике ещё не делал. Si514 если найду, то попробую. Томтит так делал.
    Не ну ЦАП это же приемник, а источники могут быть разные.
    Конкретно 514 генератор сейчас может и не купить. Можно что-то аналогичное поискать.
    Хотя конечно это дефицит дефицитный. Из того что сейчас доступно в основном прожорливые силабсы с потреблением в сотню мА.
    У 514 еще управление по I2C, что на ПЛИС делать вообще нифига не удобно, лучше наверное поискать версию с управлением напряжением и регулировать через ЦАПик.
    Еще одно время в американских магазах продавали неплохие VCXO SIT3808, но сейчас уже нету.

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

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

    Переделал на начало чтения при пустом буфере записи. Так лучше 4096 семплов пустоты вставит, в худшем случае.

Страница 9 из 9 Первая ... 789

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

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

Ваши права

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