Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Элементы проектирования устройств комбинаторной логики через поток данных (Dataflow design elements)

Методы программного проектирования цифровых устройств | Общая характеристика языка VHDL | Программные единицы языка VHDL | На потоке данных (Dataflow design data) | Project 8-bit Shift Register include component DFF |


Читайте также:
  1. A career in graphic design
  2. A Grand Design
  3. A Preliminary Note on Urban Design
  4. A) расходуемые элементы
  5. Aesthetics and other design principles overlap
  6. All-of-a-piece Urban Design
  7. Ambassador-Designate

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

Несколько видов конкурирующих VHDL операторов позволяют описать схему в терминах потока данных. Этот стиль описания назван описанием потока данных (dataflow description) или проектированием через поток данных(dataflow desig n ).

Такими операторами являются:

А) concurrent signal-assignment statement(Простой конкурирующий оператор назначения сигнала) имеющий конструкцию вида:

signal-name <= expressio n;

 

Тип выражения (expressio n) или его подтип в этом операторе должен быть идентичен типу с которым объявлен signal-name.

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

 

Example(concurrent signal-assignmen t) – Потоковая VHDL архитектура детектора простых чисел на базе простого конкурентного оператора назначения сигнала):

architecture prime2_arch of prime is

signal N3L_N0, N3L_N2L_N1, N2L_N1_N0, N2_N1L_N0: STD_LOGIC;

Begin

N3L_N0 <= not N(3) and N(0);

N3L_N2L_N1 <= not N(3) and not N(2) and N(1);

N2L_N1_N0 <= not N(2) and N(1) and N(0);

N2_N1L_N0 <= N(2) and not N(1) and N(0);

F <= N3L_N0 or N3L_N2L_N1 or N2L_N1_N0 or N2_N1L_N0;

end prime2_arch;

 

 

Б) conditional signal-assignment statement(конкурирующий условный оператор назначения сигнала) имеющий конструкцию вида:

signal-name <= expression when boolean-expression else

expression when boolean-expression else

expression when boolean-expression else

expressio n;

boolean-expression включают в себя:

Boolean operators: an d, o r, no t.

Relational operators: =, /= (not equal), >, > =, <, < =.

 

Комбинация заданных условий в одном операторе должна покрывать все возможные входные комбинации (The combined set of conditions in a single statement should cover all possible input combinations.).

 

Example (conditional signal-assignmen t) – Потоковая VHDL архитектура детектора простых чисел на базе условного конкурентного оператора назначения сигнала):

architecture prime3_arch of prime is

signal N3L_N0, N3L_N2L_N1, N2L_N1_N0, N2_N1L_N0: STD_LOGIC;

Begin

N3L_N0 <= ’1’ when N(3)=’0’ and N(0)=’1’ else ’0’;

N3L_N2L_N1 <= ’1’ when N(3)=’0’ and N(2)=’0’ and N(1)=’1’ else ’0’;

N2L_N1_N0 <= ’1’ when N(2)=’0’ and N(1)=’1’ and N(0)=’1’ else ’0’;

N2_N1L_N0 <= ’1’ when N(2)=’1’ and N(1)=’0’ and N(0)=’1’ else ’0’;

F <= N3L_N0 or N3L_N2L_N1 or N2L_N1_N0 or N2_N1L_N0;

end prime3_arch;

 

 

В) selected signal-assignment statement(селектирующий конкурентный оператор назначения сигнала) имеющий конструкцию вида:

 

with expression select

signal-name <= signal-value when choice s,

signal-value when choice s,

signal-value when choice s,

signal-value when other s;

 

choices (выбор) может быть отдельным значениемкакого- либо выражения (expression) или списком значений, разделенных вертикальными линиями (|).

choices ( выбор) для оператора в целом должен быть взаимоисключающим и включать все возможные переборы.

 

Example (select concurrent signal-assignmen t) - Потоковая VHDL архитектура детектора простых чисел на базе селектирующего конкурентного оператора назначения сигнала):

architecture prime4_arch of prime is

Begin

with N select

F <= '1' when "0001",

'1' when "0010",

'1' when "0011" | "0101" | "0111",

'1' when "1011" | "1101",

'0' when other s;

end prime4_arch;

 

Example – Поведенческое описание детектора простых чисел путем использования конкурирующего условного оператора назначения сигнала:

architecture prime5_arch of prime is

Begin

with CONV_INTEGER(N) select -- convert STD_LOGIC_VECTOR to INTEGER

F <= '1' when 1 | 2 | 3 | 5 | 7 | 11 | 13,

'0' when other s;

end prime5_arch;

 

 

2.3 Элементы поведенческого проектирования цифровых устройств последовательной логики (Behavioral design elements)

Ключевым элементом поведенческого описания VHDL проектов устройств последовательной (регистровой) логики является оператор process. Обычно оператор process имеет сложную структуру (тело), в состав которой включается семейство операторов языка VHDL, которые принято называть последовательными (sequential) операторами. Сам оператор process является оператором конкурентного типа. Он запускается на выполнение по принципу: запрос на обслуживание. Однако, все другие операторы содержащиеся в его теле выполнятся традиционным способом, т.е. строка за строкой.

 

Оператор process имеет следующий синтаксис:

process statement(Оператор process):

process (signal-name, signal-name, …, signal-nam e)

type declarations;

constant declarations;

variable declarations;

function definitions;

procedure definitions;

Begin

sequential-statement;

sequential –statement;

end proces s;

 

 

Оператор process может использоваться в разделе выполняемых операторов тела архитектуры, как и другие операторы конкурентного типа.

Оператор process может быть или запущенным или приостановленным (running or suspende d).

В Оператор process обычно имеется список сигналов, называемый списком чувствительности(sensitivity lis t ). Этот список определяет свойства оператора process по параметру: инициализация - запуск на выполнение (running). Оператор process изначально является приостановленным (suspende d). Когда любой сигнал, содержащийся в списке чувствительности, претерпевает изменение оператор process возобновляет выполнение (запускается на выполнение (running)), и стартует с первого оператора типа sequential содержащегося в его теле. Оператор process последовательно (строка за строкой) выполняет все оператора типа sequential содержащиеся в его теле и приостанавливается (suspende d), когда все операторы содержащиеся в его теле будут выполнены.

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

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

 

 


Дата добавления: 2015-11-14; просмотров: 30 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Типы программных объектов (Types)| Операторы последовательной (sequential ) логики, которые включаются в тело оператора process

mybiblioteka.su - 2015-2024 год. (0.011 сек.)