Скрытые возможности VHDL [закрыто]

У меня была такая же проблема, я не хотел связываться с несколькими typedef в разных файлах, поэтому я решил ее с наследованием:

был:

class BurstBoss {

public:

    typedef std::pair<Ogre::ParticleSystem*, bool> ParticleSystem; // removed this with...

сделал:

class ParticleSystem : public std::pair<Ogre::ParticleSystem*, bool>
{

public:

    ParticleSystem(Ogre::ParticleSystem* system, bool enabled) : std::pair<Ogre::ParticleSystem*, bool>(system, enabled) {
    };
};

Работал как шарм. Конечно, мне пришлось изменить любые ссылки из

BurstBoss::ParticleSystem

на просто

ParticleSystem
10
задан J S 22 June 2009 в 06:21
поделиться

3 ответа

Лучшая особенность VHDL - то, что он используется для проектирования и реализации оборудования. :)

Возможность иметь несколько различных реализаций (архитектур) одного интерфейса и легко обмениваться ими.

То же самое и с ООП в C ++: вы можете определить один интерфейс и несколько реализаций. Это очень полезно в VHDL для создания моделей моделирования и синтеза для одного и того же устройства.

Параллелизм с низкими накладными расходами, присущий языковой модели. Это чем-то напоминает мне языки потока данных.

На самом деле существует библиотека SystemC для C ++, которая реализует семантику параллельного выполнения. Вы можете легко загрузить и попробовать это: http://www.systemc.org . Я работаю над синтезом C ++ - to-RTL. Так что я надеюсь, что через 4-5 лет вся разработка оборудования будет осуществляться с использованием SystemC и C ++.

5
ответ дан 3 December 2019 в 17:21
поделиться

Какие действительно полезные, но особенности эзотерического языка в VHDL

Во-первых, я не верю в теорию о том, что VHDL имеет «эзотерические» особенности. Однако распространенные «стили» VHDL, существующие в природе, чаще всего зависят от того, какое подмножество VHDL поддерживается аппаратными синтезаторами.

Уравнение в мире VHDL очень простое: если инструменты поддерживают подмножество языка, оно будет использовано. В противном случае эта функция, вероятно, будет использоваться недостаточно.

особенно при сравнении VHDL с другими (нормальными) языками программирования.

Обратите внимание, что VHDL не является языком программирования. Скорее, это язык для описания дискретных систем событий (со «случайным» последствием, что его можно использовать для описания цифрового оборудования). Я полагаю, что сравнение с языками программирования проистекает из того, что VHDL похож на некоторые реальные языки программирования.

Теперь перейдем к некоторым фактическим ответам на вопрос ОП.

Какие действительно полезные, но эзотерические языковые особенности в VHDL ...

Вот мой выбор, без определенного порядка.

  1. Архитектуры: Безусловно, возможность выбирать разные архитектуры для интерфейса самая полезная функция, которую имеет VHDL и которая используется постоянно.
  2. Генераторы: Используя генераторы, вы можете довольно легко описать сложные обычные аппаратные структуры. Подумайте о множителях, сумматорах, сложных конвейерах и тому подобном. К сожалению, многие инструменты портят сгенерированный вывод.
  3. Блоки: Дешевый способ разбить ваш дизайн на подблоки; не все инструменты поддерживают его.
  4. Разрешение сигнала: Скорее полезно при моделировании схем и т.п., но не для аппаратного синтеза.
  5. Атрибуты: Отличный способ прикрепить инструкции к симулятору / синтезатору, чтобы помочь ему найти лучший способ реализовать вашу схему. Хотя в большинстве случаев это можно сделать с помощью параметров командной строки для инструментов synthesizer / mapper / p & r, атрибуты кажутся гораздо более естественными, поскольку вся информация, необходимая для создания вашего аппаратного обеспечения, сосредоточена в одном месте.
2
ответ дан 3 December 2019 в 17:21
поделиться

Какие действительно полезные, но эзотерические языковые особенности в VHDL ...

Определяемые пользователем физические типы, такие как «угол», «напряжение», «коэффициент_температуры», где вы затем можете написать например temp <= 45 deg; или volt <= 3.3 V; .

7
ответ дан 3 December 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: