Стили программирования

Cодержание Следующая

Изучение VHDL

Стили программирования

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

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

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

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

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

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

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

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

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

Стиль программирования разработчиков может отличаться в соответствии с их вкусами.

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

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

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

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