Моделирование времени. Обеспечение параллельности в работе устройств ВС в системе VHDLРефераты >> Программирование и компьютеры >> Моделирование времени. Обеспечение параллельности в работе устройств ВС в системе VHDL
Содержание
Введение
Воспроизведение объектов модельного времени (NOW)
Структура данных типа TIME
Средства обеспечения параллельности в работе ВС
Средства поведенческого описания ВС
Средства потокового описания ВС
Средства структурного описания ВС
Источники
Введение
Возрастающая степень интеграции ПЛИС, новые концепции проектирования (система на кристалле) накладывают свой отпечаток на способы описания проекта на ПЛИС.
Языки описания аппаратуры (Hardware Description Language), являются формальной записью, которая может быть использована на всех этапах разработки цифровых электронных систем. Это возможно вследствие того, что язык легко воспринимается как машиной, так и человеком. Он может использоваться на этапах проектирования, верификации, синтеза и тестирования аппаратуры так же, как и для передачи данных о проекте, модификации и сопровождения.
Одним из наиболее универсальных языков описания аппаратуры является VHDL, первый стандарт которого был разработан в 1983–1987 годах при спонсорстве минобороны США. На этом языке возможно как поведенческое, так структурное и потоковое описание цифровых схем.
Языки описания аппаратуры (Hardware Description Language), служат для формального описания дискретных устройств вычислительной техники и могут быть использованы на всех этапах разработки цифровых электронных систем.
VHDL может использоваться на этапах проектирования, верификации, синтеза и тестирования аппаратуры так же, как и для передачи данных о проекте, модификации и сопровождения.
VHDL поддерживает три различных стиля для описания аппаратных архитектур.
- Первый из них - структурное описание (structural description), в котором архитектура представляется в виде иерархии связанных компонентов.
- Второй - потоковое описание (data-flow description), в котором архитектура представляется в виде множества параллельных операций языка, каждая из которых может управляться логическими сигналами. Потоковое описание соответствует стилю описания, используемому в языках регистровых передач.
- И, наконец, поведенческое описание (behavioral description), в котором логические преобразования описываются последовательными программными предложениями, которые похожи на имеющиеся в любом современном языке программирования высокого уровня. Все три стиля могут совместно использоваться в одной VHDL программе.
Структурное и потоковое описание используется для проектирования цифровых схем, поведенческое - в основном для моделирования.
Если посмотреть на язык VHDL глазами программиста, то можно сказать, что он состоит как бы из двух компонент - общеалгоритмической и проблемно-ориентированной.
Проблемно-ориентированная компонента языка VHDL позволяет описывать цифровые системы в привычных разработчику понятиях и терминах. Сюда можно отнести:
1. понятие модельного времени (NOW) и параллелизма;
2. данные типа TIME, позволяющие указывать время задержки в физических единицах;
3. данные вида сигнал (signal),значение которых изменяется не мгновенно, как у обычных переменных, а с указанной задержкой, а также специальные операциии и функции над ними;
4. средства обьявления объектов (entity), их архитектур (architecture) и конфигураций (configuration).
Воспроизведение модельного времени (NOW)
Поведение VHDL - обьектов воспроизводится на ЭВМ и приходится учитывать особенности воспроизведения параллельных процессов на однопроцессорной ЭВМ. Особая роль в синхронизации процессов отводится механизму событийного воспроизведения модельного времени (NOW).
Выполнение модели состоит из фазы инициализации, за которой следует повторяющееся выполнение операторов процессов. В начале каждого цикла модельное время становится равным времени ближайшего запланированного события. Если оно достигло предельного значения time'high, моделирование завершается, если нет, - процессы, в которых запланированы события, становятся активными, планируют новые события, после чего они переходят в пассивную фазу, и начинается новый цикл.
Когда активные процессы исполняются, их операторы выполняются последовательно, один за другим, планируют новые события, пока каждый из процессов не попадает в свой оператор ожидания wait и не становится пассивным. События, как уже отмечалось, связаны с изменениями значений сигналов.
Когда процесс вырабатывает новое (будущее) значение сигнала, в терминологии VHDL это называется выработкой сообщения (transation). С сигналом может быть связано множество сообщений. Это множество называется драйвером сигнала (driver).
Таким образом драйвер сигнала - множество пар: будущее значение сигнала и время (множество планируемых событий в сигнале).
В VHDL реализуется двухстадийный механизм циклического событийного воспроизведения модельного времени.
На первой стадии событийно наращивается модельное время, изменяются значения всех сигналов, события в которых запланированы на данный момент.
На второй стадии все процессы, которые оказываются чувствительны к этим изменениям, активизируются (запускаются) и исполняются до тех пор, пока не попадают в свои операторы ожидания wait. После чего цикл повторяется.
Следующий пример иллюстрирует использование директивы NOW для определения времени выполнения такта (заканчивается строкой TACT:=NOW;):
signal TACT : TIME;
EXECUTE:process
Begin
…
TACT:=NOW;
Wait for 10 ns;
TACT:=NOW-TACT; --определение времени такта
…
end
VHDL реализует механизм воспроизведения модельного времени, состоящий из циклов. На первой стадии цикла вырабатываются новые значения сигналов. На второй стадии процессы реагируют на изменения сигналов и переходят в активную фазу. Эта стадия завершается, когда все процессы перейдут снова в состояние ожидания. После этого модельное время становится равным времени ближайшего запланированного события, и всё повторятся.
Особый случай представляет ситуация, когда в процессах отсутствуют операторы задержки. Для этого в VHDL предусмотрен механизм так называемой бесконечно малой дельта-задержки. В случае дельта-задержек новый цикл моделирования не связан с увеличением модельного времени.
Другая особенность VHDL-процессов связана с так называемыми разрешёнными resolved сигналами. Если несколько процессов изменяют один и тот же сигнал (сигнал имеет несколько драйверов), в описании объектов может указываться функция разрешения. Эта функция объединяет значения из разных драйверов и вырабатывает одно. Это позволяет, например, учесть особенности работы нескольких элементов на общую шину.
Средства VHDL для отображения поведения описываемых систем базируются на их представлении как совокупности параллельных взаимодействующих процессов. Процессы могут описываться в разных формах. Одна из форм включает заголовок - слово process и последовательность операторов, отображающих действия по переработке информации. Все операторы внутри процесса выполняются последовательно. Процесс может находиться в одном из двух состояний - либо пассивном, когда процесс ожидает прихода сигналов запуска или наступления соответствующего момента времени, либо активном - когда исполняется.