Изучение VHDL



         

Изучение VHDLАтрибуты.


Язык VHDL предоставляет программисту широчайшие возможности для выражения того, чего он задумал. Один и тот же проект можно описать по-разному, но получить одинаковые результаты. Если характер этих различий выстраивается в некоторую систему, то говорят, что программа написана каким-то стилем.   

Ниже рассматриваются основные выработанные стили программирования на VHDL.

Входным блоком любого транслятора является синтаксический анализатор (parser). Его главная функция - определить, написан ли данный текст таким-то языком, или нет (мол, есть ли ошибки и где), и если да - то предоставить грамматический разбор. Ему безразлично то, что этот текст означает и его форма написания, т.е. его семантика и стилистика.  Собственно компиляция означает подстановку цепочек библиотечных компонентов вместо значимых операторов и выражений в соответствии с их семантикой. Стилистика программы VHDL различается только компиляторами-синтезаторами. И то только в том плане, что они отказываются компилировать программы, не соответствующие синтезируемому стилю. В частности, здесь устоялся характерный стиль описания регистров и блоков памяти.

Операторы процесса задают поведение сигналов в зависимости от собы­тий, происходящих во времени. Поэтому если архитектура включает только операторы процесса, то говорят, что такая архитектура описана поведен­ческим стилем.

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

Наконец, в архитектуре, описанной только операторами вставки компо­нента, непосредственно закодирована структура проектируемого устройства. Сами операторы отвечают структурным блокам, а сигналы, связанные с портами – линиям связи между этими блоками. Поэтому говорят, что такая архитектура описа­на структурным стилем.

Естественно, архитектуры, описанные различными стилями, могут иметь произ­вольное количество операторов generate и block. Часто встречаются архитектуры, описанные смешанным стилем.

В программах, предназначенных для синтеза, регистры и другие схемы с памятью можно описать только с помощью оператора процесса или вставкой компонента с памятью. Так как в архитектуре, описанной стилем потоков данных, нет операторов процессов, то такая архитектура описывает комби­национную схему. Исключением является случай, поддерживаемый некото­рыми компиляторами, когда регистр задается оператором block со сдержи­ваемыми операторами параллельного присваивания, выражение сдержива­ния которого является условием разрешения записи.

Хорошим стилем программирования считается, когда в иерархическом проекте объекты верхних уровней описываются только структурным стилем.

Стиль програм­мирования разработчиков может отличаться в соответствии с их вку­сами. Например, многие, особенно начинающие, предпочитают стиль потоков данных с применением операторов процесса только для опи­сания регистров. Такой стиль дает прямую аналогию между программой и логической схемой. Для  многих разработчиков этот стиль перекочевал из технологии программирования ПЛМ.

Автор больше склоняется к такому стилю написа­ния программ, когда исполь­зуется малое количество больших операторов процесса. При этом проект устройства представляется в воображении как параллельная система из специализированных процессорных элементов, соответствующих операторам процесса. Кроме того, так как число процессов мало, поведенческое моделирование проекта выполняется более ускоренно.

Но слишком большой и неструктурированный процесс может стать запутанным, а синтезированная по нему схема - неоптимальной (руководство по синтезатору иногда предупреждает об этом). В этом единственный недостаток такого стиля. В этом плане полезен совет из программирования на Си: - программный модуль должен быть не большим и не маленьким, а таким, чтобы помещался в поле зрения. Поэтому оптимальный по величине оператор процесса должен занимать не более 1 страницы текста.

Анатолий Сергиенко
E-mail: aser@comsys.ntu-kpi.kiev.ua


Содержание  Назад  Вперед