Тема 4. Изучение потокового стиля описания — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

Тема 4. Изучение потокового стиля описания

2018-01-05 231
Тема 4. Изучение потокового стиля описания 0.00 из 5.00 0 оценок
Заказать работу

Цель:исследование процесса моделирования схем

Теоретические сведения.

Электрические сигналы играют ключевую роль в действии электронных элементов. Фактически трудно вообразить прибор, который не посылает или не получает некоторые сигналы. По этой причине сигналы – наиболее существенные объекты любого электронного прибора. В языке VHDL сигналы играют важную роль в описании связи между узлами или блоками. В отличие от переменных в классических языках программирования VHDL-сигналы содержат информацию о прошлых, настоящих и будущих значениях. Эта информация называется историей сигнала. Она позволяет проводить анализ временных зависимостей внутри VHDL системы.

Описание объекта проекта на языке VHDL имеет типовую структуру и содержит две части:

объявление объекта (entitydeclaration) и

определение архитектуры (architecturedefinition)

В декларативной части (entitydeclaration) описывают связи объекта с внешним миром – входы и выходы объекта. Это, прежде всего, спецификация интерфейса описываемого объекта. В описании архитектуры (architecturedefinition) определяют функцию (поведение) либоструктуруобъекта. Рис.4.1 иллюстрируетэтотпринцип.

 

 

Рис. 4.1 – Графический вид структуры объекта проекта

 

В текстовом файле на языке VHDLобъявление объекта (entitydeclaration) и определение архитектуры (architecturedefinition) разделены, как это показано на рис. 4.2.

 

 

Рис. 4.2 – Общий вид файла программы на языке VHDL

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

В табл. 4.1 представлен синтаксис объявления объекта. Целью объявления объекта, помимо присвоения объекту имени, является определение сигналов внешнего интерфейса или портов (ports) в части объявления объекта, которая называется объявлением портов (portdeclaration).

Табл. 4.1 –Синтаксис объявления объекта на языке VHDL

entity entity-name is

port (signal-names: mode signal-type;

signal-names: mode signal-type;

...

signal-names: mode signal-type);

end entity-name;

Обратите внимание, что после заключительного signal-type нет точки с запятой; изменение порядка следования закрывающей скобки и точки с запятой после нее - типичная синтаксическая ошибка программиста, начинающего писать на языке VHDL.

Кроме ключевых слов entity, is, port и end, объявление объекта содержит следующие элементы:

 

entity-name выбираемоепользователемимяобъекта;
signal-names список выбираемых пользователем имен сигналов внешнего интерфейса, состоящий из одного имени или из большего числа имен, разделенных запятой;
Mode одно из четырех зарезервированных слов, определяющих направление передачи сигнала:
  in сигналнавходеобъекта;
  out сигнал на выходе объекта; заметьте, что значение такого сигнала нельзя «прочитать» внутри структуры объекта; он доступен только объектам, использующим данный объект;
  buffer сигнал на выходе объекта; в отличие от сигнала out его значение можно читать также внутри структуры данного объекта;
  inout сигнал, который может быть входным или выходным для данного объекта; обычно этот режим используется применительно к входам/выходам схем с тремя состояниями;
signal-type встроенный или определенный пользователем тип сигнала.

 

Каждому сигналу (а также переменной и константе) в программе на языке VHDL необходимо поставить в соответствие тип (type). Типом определяется множество или диапазон значений, которые может принимать данный элемент, и обычно имеется набор операторов (таких как сложение, логическое ИЛИ и т.д.), связываемых с данным типом.

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

- массивабитов,

- целогочисла.

В языке VHDL есть несколько предопределенных типов (predefinedtypes), которые поддерживают программы синтеза;они перечислены в табл. 4.2. В дальнейшем в пособии будут использованы только следующие предопределенные типы: bit, bit_vector и integer.

Табл. 4.2 – Предопределенные синтезируемые типы данных языка VHDL

bitboolean character

bit_vector integer

 

О правилах записи программы. Как и в других языках программирования, в языке VHDL пробелы и переходы с одной строки на другую в общем случае игнорируются, и для удобства чтения их можно вставлять как угодно.Комментарии начинаются с двух дефисов (--)и заканчиваются концом строки. В языке VHDL определено много специальных строк символов, называемых зарезервированными словами или ключевыми словами. В приведенном примере имеется несколько ключевых слов: entity, port, is, in, out, to, downto, range, end.Здесь и далее зарезервированные слова выделяются жирным шрифтом.Определяемые пользователем идентификаторы начинаются с буквы и содержат буквы, цифры и подчеркивания. Символ подчеркивания не может следовать за другим символом подчеркивания и не может быть последним символом идентификатора. В данном примере идентификаторами являются MUU_125, R, CLK, KOP, SNO, F, Y, P, CS, SKO, TPO. Зарезервированные слова и идентификаторы не чувствительны к регистру.

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

Внутренняя работа объекта задается его определением архитектуры (architecturedefinition), синтаксис которого в общем случае имеет вид, указанный в табл. 4.4.

 

Табл. 4.4 – Синтаксисопределенияархитектуры

architecture architecture-name of entity-name is

type declarations

signal declarations

constant declarations

function definitions

procedure definitions

component declarations

Begin

concurrent-statement

...

concurrent-statement

end architecture-name;

Имя объекта (entity-name) в этом определении должно быть таким же, какое раньше было присвоено объекту в объявлении объекта. Этим самым связывается декларативная и архитектурная части описания объекта.

Имя архитектуры (architecture-name) –это выбираемый пользователем идентификатор, обычно так или иначе связанный с именем объекта; при желании имя архитектуры может быть тем же самым, что и имя объекта.

У архитектуры могут быть также сигналы и другие объявления, являющиеся для нее локальными, подобно тому, как это имеет место в других языках высокого уровня.

В данном пособии нас будет интересовать только объявление сигнала (signaldeclaration). Объявление сигнала сообщает ту же самую информацию о сигнале, какую содержит объявление порта, за исключением того, что вид сигнала (in, out, buffer, inout) не задается:

 

signal signal-names: signal-type;

Параллельные операторы

В формате описания архитектуры объекта, секция параллельных операторов {concurrent_statement} содержит один или несколько параллельно выполняющихся операторов, с помощью которых задают зависимость выходных сигналов от входных.

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

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

Последовательность записи параллельных операторов в теле архитектурного описания значения не имеет. Порядок выполнения (или, как говорят обычно, в параллельных вычислениях – порядок срабатывания параллельных операторов) определяется не порядком текстуальной записи операторов между begin и end, а другими правилами. Основным принципом здесь является управление от потока изменений сигналов, входных для параллельного оператора. Изменение значения сигнала, являющегося входным для параллельного оператора, запускает срабатывание данного оператора (т.е. акт выполнения оператора).

Основным параллельным оператором является оператор сигнального присваивания (concurrentsignal-assignmentstatement). Его можно прочесть так: «Сигнал с именем signal-nameпринимает значение выражения expression». Присвоение значения сигналу задают составным оператором “<=”. Логические операторы and, or, nand, nor, xor, хnоr имеют одинаковое старшинство и выполняются слева направо в выражениях. В сложных логических выражениях порядок выполнения операторов регулируется скобками.

В листинге 4.2 представлена архитектура объекта для дешифратора, записанная в потоковой форме.

Листинг 4.2 – Потоковая архитектура для дешифратора

entity DECODER is

port (

A0,A1,E: in BIT;

D0,D1,D2,D3: out BIT

);

end DECODER;

 

architecture DECODER_arch of DECODER is

Begin

D0 <= not A0 andnot A1 and E;

D1 <= A0 and not A1 and E;

D2 <= not A0 and A1 and E;

D3 <= A0 and A1 and E;

end DECODER_arch;

Задание для самостоятельной работы

1. Построить потоковое описание схемы по алгебраическому представлению реализуемых комбинационной схемой функций из темы 3.

2. Осуществить вычисления, задаваемые этим описанием.

 


Поделиться с друзьями:

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.035 с.