Оптимизация конструкции с использованием теоремы расширения Шеннона
Оптимизация конструкции с использованием теоремы расширения Шеннона

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

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

В результате получается следующая схема:

В этой схеме возникает ситуация, когда один из входных портов всегда равен 1 или 0. Инструмент дополнительно оптимизирует это во время логического синтеза, как показано на рисунке ниже.

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

Теорема расширения Шеннона особенно существенно улучшает логические циклы. Как показано на рисунке ниже, из-за существования циклов путь, отмеченный на рисунке красным, не работает правильно после его вставки в регистр конвейера.

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

Давайте рассмотрим случай: фрагмент кода, показанный на рисунке ниже. Обратите внимание, что строка 17 образует цикл обратной связи, и именно цикл обратной связи становится узким местом в производительности синхронизации. Этот путь имеет как таблицы поиска, так и DSP (реализующий операции умножения) и не содержит дополнительных регистров конвейера.

Основываясь на теореме расширения Шеннона, мы оптимизировали код до следующей формы. Обратите внимание, что в строках 13 и 14 кода добавлены две новые переменные, соответствующие ситуации, когда Internal_total больше целевого и меньше целевого значения соответственно, тем самым открывая. петля.

При сравнении двух вышеуказанных схем целевой чип — xcvp1502, тактовая частота — 400 МГц, используется Vivado2023.2. Окончательная производительность показана на рисунке ниже. Видно, что после использования теоремы о разложении Шеннона WNS увеличивается с исходного -0,719 до -0,210. Но все еще не достиг цели в 400 МГц. На этом этапе мы можем продолжить оптимизацию.

Поскольку в этот момент цикл уже открыт, мы можем вставить соответствующие регистры конвейера, как показано на рисунке ниже. Красный прямоугольник на рисунке представляет регистр конвейера. Это может еще больше улучшить WNS, и итоговое значение WNS равно 0,841, что означает, что эта часть пути может работать как минимум до 500 МГц.

Авторские права @ Технологическая станция FPGA

По вопросам перепечатки пишите в личное сообщение | Перепечатка разрешена только после получения разрешения.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода