Страница 2 из 13 Первая 123412 ... Последняя
Показано с 21 по 40 из 243

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

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

    По умолчанию 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 
Просмотров:	217 
Размер:	26.8 Кб 
ID:	441608
    Можно также это слагаемое не удалять, а менять его величину (увеличивать сдвиг), двигая тем самым полюс NTF.
    [свернуть]

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

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

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

    С битностью решил. Но синхронизация сбивается раз в несколько секунд.

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

    С моим фифо нет синхры почему-то.

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

    На входе модуль спдиф, потом фифо. Их не менял.

    ---------- Сообщение добавлено 15:05 ---------- Предыдущее сообщение было 14:47 ----------

    Алексей, как сделать результирующий апсемплинг 128х? В DF2 выставил 32х. А в файле UPSAMPLE задал 4х OVS=2. Этого достаточно?

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

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

    Где-то что-то неправильно сконфигурировано. Принципиально модуль DF2 от DF1 ничем не отличается.
    Только для первого модуля нужна была синхронизация, а новому - не надо. На входе только должны быть параллельные данные, обновляемые синхронно с частотой входного семплирования.
    Дополнительные апсемплеры используются или только х32 режим?

  4. #23
    Частый гость Аватар для NikNet
    Регистрация
    16.06.2022
    Сообщений
    213

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


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

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Где-то что-то неправильно сконфигурировано. Принципиально модуль DF2 от DF1 ничем не отличается.
    Только для первого модуля нужна была синхронизация, а новому - не надо. На входе только должны быть параллельные данные, обновляемые синхронно с частотой входного семплирования.
    Сейчас так:
    Нажмите на изображение для увеличения. 

Название:	FIFO+DF2.jpg 
Просмотров:	166 
Размер:	604.6 Кб 
ID:	441316

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Дополнительные апсемплеры используются или только х32 режим?
    Выше задал вопрос про 128х.

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

    Ещё в CORE сделал замену:
    // UPSAMPLE = `DF2_UPSAMPLE_NONE,
    UPSAMPLE = `DF2_UPSAMPLE_x4,

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

    По какому фронту iLRC нужно менять данные на входах DL и DR?

    ---------- Сообщение добавлено 16:02 ---------- Предыдущее сообщение было 15:42 ----------

    Сделал инвертирование своего сигнала на входе iLRC и всё стало ок. Победа!!!

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Алексей, как сделать результирующий апсемплинг 128х? В DF2 выставил 32х. А в файле UPSAMPLE задал 4х OVS=2. Этого достаточно?
    Внутри файлов upsample (как и других) ничего менять нельзя.
    Все настройки задаются из головного модуля DF2.
    Для включения дополнительного апсемплинга параметр UPSAMPLE модуля DF2_FIR_CORE задается как `DF2_UPSAMPLE_x4. Цифровое значение можно найти в файле DEFINES.v
    Нажмите на изображение для увеличения. 

Название:	изображение_2023-09-19_161350019.png 
Просмотров:	92 
Размер:	43.9 Кб 
ID:	441320
    Параметры внутри модулей активны только если они не заданы снаружи (это параметры по умолчанию). В моем проекте все параметры выведены наружу, поэтому лазить внутрь файлов проекта не нужно.
    Нужно только задать параметры снаружи для DF2_FIR_CORE, SAI_INPUT и SAI_OUTPUT, как это сделано в файлах *EXAMPLE.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    По какому фронту iLRC нужно менять данные на входах DL и DR?
    Для модуля DF2_FIR_CORE пофигу в какой именно момент происходит обновление данных на входе. Главное чтобы это обновление было синхронно в обоих каналах и на частоте входной ЧД.

    ---------- Сообщение добавлено 16:27 ---------- Предыдущее сообщение было 16:06 ----------

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Сделал инвертирование своего сигнала на входе iLRC и всё стало ок. Победа!!!
    Мои поздравления!
    Но с полярностью LRC оно конечно не должно быть связано. Что-то там другое. Возможно на выходе модуля FIFO что-то несинхронно обновляется?
    Последний раз редактировалось dortonyan; 19.09.2023 в 16:17.

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

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

    Сделал вывод младшего разряда на пин. Там минимальная длительность уровня 700нсек. А это 32х всего. Так что cic не включился на 4х.
    Копаю дальше. И шум параллельно идет от дизера? Или мои косяки.

    ---------- Сообщение добавлено 17:00 ---------- Предыдущее сообщение было 16:37 ----------

    Шум исчез после вывода сигнала управления дизером и нойзшейпингом на внешний пин.

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

    Надо устраивать "перекур".

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

    Для этой переменной:
    // Ouput data width
    input[4:0] iODW, // output data width in bits

    для вывода 16-ти бит нужно задавать 16 или 15? Похоже, что надо 15.
    Последний раз редактировалось Turbo_man; 19.09.2023 в 17:54.

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Сделал вывод младшего разряда на пин. Там минимальная длительность уровня 700нсек. А это 32х всего. Так что cic не включился на 4х.
    Копаю дальше. И шум параллельно идет от дизера? Или мои косяки.
    Что-то я не понял про младший бит. Его длительность ЧД не характеризует.
    И как выводятся данные?
    х128 - это частота обновления на выходе FIR_CORE. Надо же еще написать модуль вывода, который выведет данные на таком оверсемплинге. Мои модули выше чем х32 не выводят.
    Про шум - смотря какой амплитуды и смотря какого порядка задан шейпер. Если около одного LSB, то дизер, наверное.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Шум исчез после вывода сигнала управления дизером и нойзшейпингом на внешний пин.
    А в проекте что было задано? Если в проекте стояли единицы, а на внешнем пине нуль, то конечно дизер отключится. Что тут удивительного?

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Для этой переменной:
    // Ouput data width
    input[4:0] iODW, // output data width in bits

    для вывода 16-ти бит нужно задавать 16 или 15?
    16 конечно.

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

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    В моем проекте все параметры выведены наружу, поэтому лазить внутрь файлов проекта не нужно.
    Нужно только задать параметры снаружи для DF2_FIR_CORE, SAI_INPUT и SAI_OUTPUT, как это сделано в файлах *EXAMPLE.
    Так не получится, т.к. у меня верхний уровень для DF2 это файл DF2_FIR_CORE.

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    16 конечно.
    Совсем я запутался. Стал думать, что N-1. Вернул 16.
    Цитата Сообщение от dortonyan Посмотреть сообщение
    х128 - это частота обновления на выходе FIR_CORE. Надо же еще написать модуль вывода, который выведет данные на таком оверсемплинге. Мои модули выше чем х32 не выводят.
    Это давно решено. 4 или 8 потоков по 16х/канал.

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Что-то я не понял про младший бит. Его длительность ЧД не характеризует.
    Как тогда убедиться в наличии потока 128х?

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Так не получится, т.к. у меня верхний уровень для DF2 это файл DF2_FIR_CORE.
    Ничего не понял. Нафига его делать верхним уровнем?
    У вас же на скрине FIR_CORE сделан модулем внутри какого-то проекта. Значит FIR_CORE - это НЕ верхний уровень. Верхний - это внутри которого все остальное.
    Там же над модулем табличка - в ней параметры и задавайте. А в самом верилоговском файле править ничего не надо.

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

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Там же над модулем табличка - в ней параметры и задавайте.
    Теперь понял. Изменения в самом файле DF2_FIR_CORE ничего не меняют. Править его бесполезно. Отчего???

    Про верхний уровень некорректно сформулировал. Конечно у меня верхний уровень это графический проект. Я для DF2 говорил, что его нет.
    Последний раз редактировалось Turbo_man; 19.09.2023 в 18:58.

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

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

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

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

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

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

    Смена UPSAMPLE с 0 на 2 увеличила число LE на 450. Ого!!!
    А NSHOR с 1 на 3 ещё добавила 250 LE.

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Как тогда убедиться в наличии потока 128х?
    Пойду теперь снова смотреть младший бит. OUTL[8]

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

    Цитата Сообщение от dortonyan Посмотреть сообщение
    А лучше перелазьте на верилог, меньше путаницы будет. И проще обмениваться модулями.
    Да и логику описывать проще.
    Я бы рад, но ещё не готов.

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Смена UPSAMPLE с 0 на 2 увеличила число LE на 450. Ого!!!
    А NSHOR с 1 на 3 ещё добавила 250 LE.
    Ну да. CIC 3-го порядка - штука ресурсоемкая. Как и шейпер.
    Единственное, что ресурсы CIC от частоты семплирования не зависят. Что х4, что х16 - логика та же самая.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Как тогда убедиться в наличии потока 128х?
    Для проверки работоспособности апсемплеров я их включал на пониженной частоте, вместо последних каскадов ЦФ. Т.е. задавал режим фильтра х4 и апсемплер х4. Суммарно х16 получается.
    Ну а вообще сигнал частоты семплирования есть в модуле DATA_READ, можно вывести оттуда, но надо лезть в модуль.

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Пойду теперь снова смотреть младший бит. OUTL[8]
    Так надежнее сгенерить синус килогерц 40..50 и посмотреть на ступеньку скопом.

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

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

    В младшем бите стало 175...180нс. Значит всё ок.
    Последний раз редактировалось Turbo_man; 19.09.2023 в 21:02.

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    В младшем бите стало 175...180нс. Значит всё ок.
    Возможно оно и раньше работало, просто из-за увеличенного порядка шейпера стал лучше виден шум.
    Для разрядности ЦАП примерно от 14..16 бит и больше, достаточно 1-го порядка шейпинга.

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

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

    Вроде всё устаканилось. Апсемплинг=128х и нойзшейпинг=3.
    Какой нойзшейпинг выбрать пока не могу понять.

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

    Хорошо выберу 1й порядок.

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

    Сейчас из потока 128х я беру только 64х (каждый 2й семпл) для 4-х потоков по 16х для 4-х TDA1541.

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

    Откуда можно вывести шину делителя 1024фс до 1фс? Есть там такой делитель?

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

    Т.к. у меня сейчас свой такой делитель, то пришлось инвертировать клок 1024фс, который идёт на мой делитель. Видимо разные задержки набегают в них. Поэтому синус 1кГц при переходе через 0 имел выброс. Сейчас нет его.

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Сейчас из потока 128х я беру только 64х (каждый 2й семпл) для 4-х потоков по 16х для 4-х TDA1541.
    А зачем так делать? Задайте апсемплинг х2. Будет суммарно х64.
    К тому же для х2 используется более экономичный FIR апсемплер, который ресурсов расходует раза в полтора меньше чем CIC.
    Шейпер да, на 16 битах первого порядка должно быть достаточно, максимум - второго.
    На 3-ем порядке я слушаю в 7бит режиме на х16 оверсемплинге. Причем напрямую с ЦАПа, т.е. с РГ в цифре.

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

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

    128х чтобы можно было подключить 8 потоков 16х на 8 тда-шек. Сейчас макет только из 4-х штук.

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

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

    Цитата Сообщение от Turbo_man Посмотреть сообщение
    Откуда можно вывести шину делителя 1024фс до 1фс? Есть там такой делитель?

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

    Т.к. у меня сейчас свой такой делитель, то пришлось инвертировать клок 1024фс, который идёт на мой делитель. Видимо разные задержки набегают в них. Поэтому синус 1кГц при переходе через 0 имел выброс. Сейчас нет его.
    А зачем он вам? Если нужно генерить импульс каждый 1024 такт, то для этого пишется 10-разрядный счетчик.

    Вообще, я не знаю что у вас там собрано, но если строить логику правильно, то фазы клока не должны ни на что влиять.
    Конкретно для FIR_CORE не имеет значения что какими фазами тактируется. Главное чтобы у него на входе данные обновлялись синхронно друг с другом и с постоянной частотой.
    То же самое касается модуля SAI_OUTPUT - ему пофиг как тактируется ядро, главное, чтобы у ядра на выходе было синхронное обновление данных (что и реализовано).
    Ядро и модуль вывода можно тактировать отдельно любой частотой и фазой, лишь бы эти клоки были синхронны друг относительно друга.

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

    Надежнее всего всю логику тактировать общим клоком по одному фронту.

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

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

    dortonyan, Алексей, небольшой вопрос.
    Написал модуль начального сброса и сброса при смене сеток частот для использования совместно с Вашим ЦФ в проекте с sm5865. Вроде по симуляции все нормально. Вопрос, не слишком ли я намудрил, может можно проще сделать?

    Скрытый текст


    Код:
    module resetDAC(
    input clk, 
    input oscsel,
    output rst_left, 
    output rst_right
    );
    
    reg prev_oscsel;
    reg rst_signal = 1;
    reg rst_init = 0;
    reg[7:0] cnt = 8*d0;
    
    assign rst_left = rst_signal;
    assign rst_right = rst_signal;
    
    always @(posedge clk) begin
            cnt <= cnt + 1;
            if ( rst_init == 0 )
               if ( cnt < 127 )
                    prev_oscsel <= ~oscsel;
               else begin
                    prev_oscsel <= oscsel;
                    rst_init <= 1;
               end
            else if ( cnt == 127 )
                 prev_oscsel <= oscsel;
    rst_signal <= ~(prev_oscsel ^ oscsel);
    end
    endmodule
    [свернуть]
    Последний раз редактировалось And$er; 21.09.2023 в 15:13.
    Александр.

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

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

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

Ваши права

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