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

Тема: I2S реклокер или FIFO

  1. #1 Показать/скрыть первое сообщение.
    Старый знакомый
    Автор темы
    Аватар для bbest
    Регистрация
    06.11.2011
    Сообщений
    843

    По умолчанию I2S реклокер или FIFO

    Всем привет!

    Нужно решить задачу: прием I2S с большим джитером и вывод jitter-free I2S. Погуглив нашел интересные варианты:
    * KALI https://volumio.com/allo-kali-i2s-re...e-gamechanger/
    * Mori https://www.diyaudio.com/community/t...locker.348074/
    * DIYINHK FIFO Reclock Jitter Eliminator https://www.diyinhk.com/shop/audio-k...annel-dac.html
    и т.д.
    Первый обещает джитер до 4pS. Кто прослушивал подобные устройства, какие сейчас самые перспективные, что может быть можно самому собрать?

    ---------- Сообщение добавлено 23:37 ---------- Предыдущее сообщение было 20:39 ----------

    Собственно вершина этого творчества скорее всего:
    https://github.com/iancanada/Documen...PiQ7Manual.pdf
    + основная ветка
    https://www.diyaudio.com/community/t...92465/page-655

  2. #61
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    39,180

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от bbest Посмотреть сообщение
    как же работает процесс в реальном времени, когда надо взять исходный поток I2S и провести операции FIFO,
    Что нужно для приема I2S и получения параллельного кода (если это нужно)? Сдвиговый регистр и немножко логики для его тактирования.
    Что нужно для FIFO? Память и регистры/счетчики.
    Фсё.

    Цитата Сообщение от bbest Посмотреть сообщение
    апсемплинг, наложение фильтров?
    Цифровые фильтры (а апсемплинг это тоже цифровой фильтр) - это набор умножений и сложений (МАС операций), делается аппаратно при наличии ресурсов.

    Цитата Сообщение от bbest Посмотреть сообщение
    Когда часть операций зависят друг от друга.
    C чего вдруг?!
    Последний раз редактировалось Alex; 22.12.2024 в 11:17.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  3. #62
    Старый знакомый
    Автор темы
    Аватар для bbest
    Регистрация
    06.11.2011
    Сообщений
    843

    По умолчанию Re: I2S реклокер или FIFO

    Alex, Алексе у тебя чисто еврейские ответы - вопросом на вопрос. Задача здесь пока предельно простая. Мне как новичку хотелось бы услышать примерный общий ответ как это в принципе решается на уровне плис.

    Я, как программист, так вижу решение (в разрезе потоков):
    * FIFO, 2 потока - один считывает I2S и записывает в буфер, второй считывает
    * после второго потока FIFO идет апсемплинг, это третий поток, он может работать только после результата выполнения 2 потока
    * четвертый поток фильтр, он берет результат третьего потока
    * пятый поток апсемплит до 1.5МГц и выдает на сдвиговые регистры

    Т.е. единственное место где можно потоки распараллелить это FIFO, для остальных потоков все операции будут последовательными.
    Последний раз редактировалось bbest; 22.12.2024 в 11:27.

  4. #63
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    39,180

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от bbest Посмотреть сообщение
    Alex, Алексе у тебя чисто еврейские ответы - вопросом на вопрос.
    Ну так, с кем поведешся, от того и наберешся

    Ты-ж вот постоянно несешь какую-то удифилитическую чушь, которую на помойках типа сссундука подхватил

    Цитата Сообщение от bbest Посмотреть сообщение
    Мне как новичку хотелось бы услышать примерный общий ответ как это в принцепе решается на уровне плис.
    Я выше ответил.
    Не мои проблемы, если не понимаешь.

    P.S. Ты вообще знаешь, что есть теорема, что абсолютно любую цифровую схему, сколь угодно большой сложности, можно построить используя лишь элементы 2-х входовые "Штрих Шеффера" - он-же 2NAND, он-же 2И-НЕ, он же 7400 или 155ЛА3, где аж четыре штуки "штриха" внутри.
    Вот к примеру: соединил у этого чипа две ножки между собой - и получил RS-триггер. Еще две ножки- получил второй триггер.

    (Вместо Штриха Шеффера, можно использовать "Стрелку Пирса"- , NOR, или ИЛИ-НЕ).

    На практике конечно так не делают, ибо оно не сильно оптимально получается, но в принципе, возможность такая есть.
    Последний раз редактировалось Alex; 22.12.2024 в 15:57.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

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

    По умолчанию Re: I2S реклокер или FIFO

    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

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

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от bbest Посмотреть сообщение
    Я, как программист, так вижу решение (в разрезе потоков):
    * FIFO, 2 потока - один считывает I2S и записывает в буфер, второй считывает
    * после второго потока FIFO идет апсемплинг, это третий поток, он может работать только после результата выполнения 2 потока
    * четвертый поток фильтр, он берет результат третьего потока
    * пятый поток апсемплит до 1.5МГц и выдает на сдвиговые регистры
    У вас, как у программиста, профессиональная деформация.
    Еще раз: внутри плис нет никаких процессоров, там простая логика: набор регистров и логических вентелей. Вы понимаете как работает регистр из D-триггеров?

    Логика в плисине разбира на ячейки. Каждая ячейка это D-триггер, на входе которого блок конфигурируемой логики ALU (набор вентелей).
    Алу - задает нужную логическую ф-ю: ("и", "или", сложение, вычитание и т.д.) по входу триггера. А триггер по синхроимпульсу (тактовому клоку) сохраняет ("защелкивает") результат ALU на свой выход.
    Каждый триггер имеет доступ к тактовому клоку, поэтому все триггеры работают одновременно и синхронно.
    Можно несколько групп триггеров затактировать разными клоками, тогда мы получим несколько схем, работающих асинхронно.
    Поэтому понятие "потоки" к плис не применимо. Там каждый триггер (каждая ячейка) работает своим потоком.

    Соот-но написание кода для плис - это описание соединений триггеров и логики, а не набор инструкций (как для процессора).
    Просто на обстрактном уровне описания оно может быть похоже на си-шный код, но смысл там совсем другой.

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

    По умолчанию Re: I2S реклокер или FIFO


    Offтопик:
    Да тут даже не пахнет программистом...гуманитарная удифилия в чистом виде.

  8. #67
    Завсегдатай Аватар для pyos
    Регистрация
    15.07.2006
    Возраст
    65
    Сообщений
    4,587

    По умолчанию Re: I2S реклокер или FIFO

    Михаил45, опередил.

  9. #68
    Завсегдатай Аватар для Pest
    Регистрация
    02.07.2009
    Адрес
    Архангельск
    Возраст
    37
    Сообщений
    2,239

    По умолчанию Re: I2S реклокер или FIFO

    Да что вы так накинулись, ведь можно сначала в большой Плис закодить целый процессор, а потом уже работать с его потоками.
    ( )

  10. #69
    Старый знакомый
    Автор темы
    Аватар для bbest
    Регистрация
    06.11.2011
    Сообщений
    843

    По умолчанию Re: I2S реклокер или FIFO

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Еще раз: внутри плис нет никаких процессоров, там простая логика: набор регистров и логических вентелей. Вы понимаете как работает регистр из D-триггеров?

    Логика в плисине разбира на ячейки. Каждая ячейка это D-триггер, на входе которого блок конфигурируемой логики ALU (набор вентелей).
    Алу - задает нужную логическую ф-ю: ("и", "или", сложение, вычитание и т.д.) по входу триггера. А триггер по синхроимпульсу (тактовому клоку) сохраняет ("защелкивает") результат ALU на свой выход.
    Каждый триггер имеет доступ к тактовому клоку, поэтому все триггеры работают одновременно и синхронно.
    Можно несколько групп триггеров затактировать разными клоками, тогда мы получим несколько схем, работающих асинхронно.
    Поэтому понятие "потоки" к плис не применимо. Там каждый триггер (каждая ячейка) работает своим потоком.

    Соот-но написание кода для плис - это описание соединений триггеров и логики, а не набор инструкций (как для процессора).
    Просто на обстрактном уровне описания оно может быть похоже на си-шный код, но смысл там совсем другой.
    Здесь речь не о процессорах и тем более об инструкциях вообще, писал о них больше для примера. На плис свои механизмы, но суть от этого не меняется.
    Исходя из твоего описания: в принцепе все (многие) вычисления в плис они асинхронные, у каждого свои клоки. По D-тригеру запускается вычисление в ALU и результат куда то записывается (регистры наверное). Так возвращаюсь к первому вопросу: как реализованы FIFO, апсемплинг, фильтрация?
    Опять сделаю очередное предположение, на примере FIFO:
    * часть тригеров принимает I2S (3-4 линии)
    * запысывает результаты в циклический буфер
    * другая порция тригеров запускает ALU которые считывают из циклического буффера
    * возможно сразу же идет апсэмплинг
    и т.д.
    Правильно?

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

    Цитата Сообщение от Delta213 Посмотреть сообщение
    Этот пример слишком низкоуровневый и он не очень интересен. В процессорах то же есть своя механика (конвееры, очереди предсказаний, инструкции и т.д.). Интересен более высокий уровень абстракций.

  11. #70
    Завсегдатай Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    47
    Сообщений
    1,093

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от bbest Посмотреть сообщение
    не надо уподобляться старым форумным говноедам и опускаться до оскорблений, им уже ни чего не поможет
    Здесь нет никакого оскорбления. Для того, чтобы писать для программируемой логики, нужно мыслить по-другому. Об этом речь.

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

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

  12. #71
    Завсегдатай Аватар для tomtit
    Регистрация
    23.06.2009
    Адрес
    пгт.Торонтовка
    Возраст
    66
    Сообщений
    1,041

    По умолчанию Re: I2S реклокер или FIFO

    Проект для ПЛИС - это в чистом виде принципиальная схема в текстовом виде и ничего больше. SPICE netlist - то же самое для аналога.

  13. #72
    Завсегдатай Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    47
    Сообщений
    1,093

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от tomtit Посмотреть сообщение
    Проект для ПЛИС - это в чистом виде принципиальная схема в текстовом виде и ничего больше
    Ну почему же, можно писать поведенческую модель, а синтезатор сделает принципиальную схему.
    Я, честно говоря, думал, что современные устройства так и пишутся.

    Up/ Например, я написал (давно уже) вот так:

    Код:
    architecture Clocks of ClocksGen is
    signal counter : std_logic_vector (9 downto 0) :=  B"0000000000"; 
    signal counter2: std_logic_vector (5 downto 0) :=  B"000000";
    
    begin
    ADCClk <= counter (3);
    SPDIFClk <= counter(2);
    counter2 <= counter (9 downto 4);
    
    process (Xtal45)
    begin
            if rising_edge(Xtal45) then
                    counter <= counter + 1;
                    if (counter2 = 0) then
                            SoC <= *1*;
                    elsif
                            (counter2 = 46) then
                            SoC <= *0*;
                    end if;
            end if; --rising_edge(Xtal45)
    end process;
    end Clocks;
    И оно будет работать именно так, от 0 до 45 импульса - на выходе единица, от 46 до 63 - на выходе 0.
    Как оно синтезируется - я заранее не представляю, но работать будет.

  14. #73
    Старый знакомый
    Автор темы
    Аватар для bbest
    Регистрация
    06.11.2011
    Сообщений
    843

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от antonluba Посмотреть сообщение
    Здесь нет никакого оскорбления. Для того, чтобы писать для программируемой логики, нужно мыслить по-другому. Об этом речь.

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

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

  15. #74
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    39,180

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от tomtit Посмотреть сообщение
    это в чистом виде принципиальная схема в текстовом виде
    Можно и не в текстовом, я для CPLD когда-то в МАХ+ именно схемы и рисовал.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  16. #75
    Завсегдатай Аватар для antonluba
    Регистрация
    12.12.2014
    Адрес
    Сочи, Коломна
    Возраст
    47
    Сообщений
    1,093

    По умолчанию Re: I2S реклокер или FIFO

    Крупные блоки можно посмотреть на opencores.org например

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

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от bbest Посмотреть сообщение
    dortonyan не надо уподобляться старым форумным говноедам и опускаться до оскорблений, им уже ни чего не поможет.
    Даже близко не пытался оскорбить (специально смайл поставил).
    Просто ну совсем нубские вопросы задаете. Полистайте что ли ДШ на любую плис и посмотри как там что внутри устроено. Там все описано с картинками и схемами.

    Цитата Сообщение от bbest Посмотреть сообщение
    Исходя из твоего описания: в принцепе все (многие) вычисления в плис они асинхронные, у каждого свои клоки. По D-тригеру запускается вычисление в ALU и результат куда то записывается (регистры наверное).
    Из моего описания этого не следует. ALU - это не какой-то процессорный модуль. Он не "запускается", - это просто набор логики.
    Например, это может быть 4-х входовый логический мультиплексор. Как мультиплексор может запускаться?
    Выход мультиплексора можно включить на вход триггера, а можно вывести куда либо еще, хоть на выходные пины.

    Цитата Сообщение от bbest Посмотреть сообщение
    * часть тригеров принимает I2S (3-4 линии)
    * запысывает результаты в циклический буфер
    * другая порция тригеров запускает ALU которые считывают из циклического буффера
    * возможно сразу же идет апсэмплинг
    и т.д.
    Правильно?
    Совсем коротко это выглядит примерно так:
    Данные из I2S загружаются в сдвиговый регистр (на триггерах). Потом в параллельном виде копируются в FIFO в виде массива регистров (который синтезатором заменяется выделенными блоками памяти).
    С выхода FIFO данные так же параллельно копируются в другой модуль.
    Кроме описания самой памяти FIFO нужно еще описать схему управления этим фифо: счетчики генерации адресов на запись и на чтение, а так же генераторы всяких вспомогательных сигналов, типа готовности данных.

    Цитата Сообщение от bbest Посмотреть сообщение
    Этот пример слишком низкоуровневый и он не очень интересен. В процессорах то же есть своя механика (конвееры, очереди предсказаний, инструкции и т.д.). Интересен более высокий уровень абстракций.
    С ПЛИС так не прокатит.
    Можно написать абстрактный код, но для этого все равно нужно понимать как работает схема на самом низком уровне.
    Ну или использовать уже готовые (кем-то написанные) модули, или библиотечные модули.
    Но опять же, для того чтобы правильно эти модули применить - все равно нужно разбираться как они работают, или по крайней мере - какой у них интерфейс ввода/вывода данных.

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

    Цитата Сообщение от bbest Посмотреть сообщение
    Так возвращаюсь к первому вопросу: как реализованы FIFO, апсемплинг, фильтрация?
    Я в своей ветке про ЦФ выкладывал описание, там в блок-схемах отображено устройство ЦФ.

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

    Цитата Сообщение от antonluba Посмотреть сообщение
    И оно будет работать именно так, от 0 до 45 импульса - на выходе единица, от 46 до 63 - на выходе 0.
    Как оно синтезируется - я заранее не представляю, но работать будет.
    Комбинаторную логику придумывать конечно не надо. Но в общих чертах нужно понимать как оно работает.
    Например, для вашего кода схема примерно такая: синхронный счетчик и триггер, в который синхронно пишется значение по значению счетчика.
    Т.е. в вашем примере все равно описана схема.

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

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от bbest Посмотреть сообщение
    Согласен, есть смысл погрузиться не много в тему.
    Вот и погружайся. https://forum.cxem.net/index.php?/to...ие-плис-в-dac/
    Для начала купи такую отладку:
    https://sl.aliexpress.ru/p?key=vZOsGtz
    программатор:
    https://sl.aliexpress.ru/p?key=T3OsG6H

    поморгай светодиодиками, сделай часы на 7 сегментниках, ну придумай еще чего, чисто для входа в тему.
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

  19. #78
    Старый знакомый Аватар для ass77
    Регистрация
    08.01.2015
    Сообщений
    904

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от Alex Посмотреть сообщение
    Можно и не в текстовом, я для CPLD когда-то в МАХ+ именно схемы и рисовал.
    Может быть коллеге и стоит с этого начать чтобы понять как ПЛИС работает. Открыть какой-нибудь Квартус, нарисовать схемку, погонять в симуляторе, потом тоже самое на верилоге. Глядишь и придет понимание.

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

    По умолчанию Re: I2S реклокер или FIFO

    Не надо схемы, тупиковый путь. Если он программер, то сразу писать на верилоге, тем более, что в квартусе есть прекрасный эмулятор, можно посмотреть что получается.
    https://marsohod.org/verilog
    Подчиненный перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство.
    Указ Петра I от 09.12.1709:

  21. #80
    Завсегдатай Аватар для pyos
    Регистрация
    15.07.2006
    Возраст
    65
    Сообщений
    4,587

    По умолчанию Re: I2S реклокер или FIFO

    Цитата Сообщение от tomtit Посмотреть сообщение
    Проект для ПЛИС - это в чистом виде принципиальная схема в текстовом виде и ничего больше. SPICE netlist - то же самое для аналога.
    Более того, простенькие проекты можно в графическом виде и рисовать, не оптимально, но наглядно.

    ---------- Сообщение добавлено 10:59 ---------- Предыдущее сообщение было 10:46 ----------

    Цитата Сообщение от Delta213 Посмотреть сообщение
    Если он программер
    Если!

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

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

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

Ваши права

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