ПОИСК Статьи Чертежи Таблицы Что такое расширенный из "Проектирование на ПЛИС архитектура, средства и методы " Еще один способ расширения возможностей языка / ++ заключается в добавлении в язык специальных ключевых слов и выражений. Этот метод пользуется большой популярностью, и в настоящее время во всем мире существует огромное количество различных вариантов языковых модификаций / ++ для разных сфер применения. Главным недостатком этого расширения, так же как и в предьщущем методе, является то, что средства моделирования для своей работы требуют применения собственных компиляторов, и если в исходном коде будут содержаться непонятные для них конструкции, это приведет к краху системы моделирования. Общее решение этих проблем заключается в том, что новые ключевые слова и выражения заключаются в стандартные директивы препроцессора fdef. Таким образом, препроцессор при необходимости может пропускать непонятные для него новые конструкции. Этот метод не отличается элегантностью, но он работает. [c.173] Допустим, что мы располагаем начальной моделью системы, описанной на чистом / ++. Первым делом необходимо расширить её, добавив выражения, описывающие систему формирования синхроимпульсов, а также описать с помощью выражений интерфейсы для определения контактов ввода/вывода. После этого с помощью соответствующего средства синтеза вы можете создать реализацию своего устройства. Поскольку / ++ по своей природе является языком последовательного выполнения, полученная в результате процедуры синтеза аппаратная реализация может оказаться чрезвычайно медленной и неэффективной, если только в ней не будут реализованы принципы параллелизма. [c.174] По умолчанию каждый символ = рассматривается средствами синтеза как один период тактового сигнала. Следовательно, если приведенный выше код рассматривать в том виде, как он приведён, система синтеза будет генерировать аппаратное обеспечение следующим образом на первом такте в регистр а будет загружаться число 6, на следующем такте в регистр Ь будет зафужено число 2, на следующем такте в регистр с загрузится число 9 и так далее. Другими словами, с точки зрения стандартов аппаратного обеспечения, такое устройство будет чрезвычайно медленным. [c.174] В этом случае ключевое слово parallel указывает средствам синтеза, что следующие за ним выражения могут выполняться одновременно, а ключевое слово sequential подразумевает, что последующие выражения должны реализовываться поочередно. Конечно, эти выражения размещаются в соответствии с потребностями. [c.175] Возможно также, что необходимо будет добавить в код конструкции share , чтобы обеспечить общий доступ к ресурсам, выражение hannel , чтобы обеспечить совместное использование сигналов между выражениями, а также другие ключевые слова. [c.175] Как отмечалось ранее, средства моделирования и другие утилиты проектирования, не подцерживающие новых ключевых слов и выражений, прекращают свою работу, если встречают их в исходном коде. Одно из решений заключается в охвате этих выражений с помощью директив ifdef, которые позволяют при необходимости отказаться от их использования. Однако это значит, что средства синтеза и моделирования будут по-разному смотреть на схему, что не очень хорошо. Другое решение заключается в использовании патентованных систем моделирования, но они могут быть менее мощными или несовместимыми с имеющимися у пользователя технологиями моделирования. [c.175] Вернуться к основной статье