Студопедия

Главная страница Случайная страница

Разделы сайта

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






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






A B CIN SUM COUT
         
         
         
         
         
         
         
         

library ieee;

 

entity xoor2 is

port (P1, P2: in bit;

PZ: out bit);

end xoor2;

architecture xoor2 of xoor2 is

begin

PZ< =P1 xor P2;

end xoor2;

 

entity aand2 is

port (P1, P2: in bit;

PZ: out bit);

end aand2;

architecture aand2 of aand2 is

begin

PZ< =P1 and P2;

end aand2;

 

entity oor3 is

port (P1, P2, P3: in bit;

PZ: out bit);

end oor3;

architecture oor3 of oor3 is

begin

PZ< =P1 or P2 or P3;

end oor3;

Интерфейсная часть программы

 

entity FA is

port(a, b, cin: in bit;

sum, cout: out bit);

end FA;

Структурный стиль

 

architecture FA_struct of FA is

 

--объявление компонентов:

 

component xoor2

port(p1, p2: in bit;

pz: out bit);

end component;

 

component aand2

port(p1, p2: in bit;

pz: out bit);

end component;

 

component oor3

port(p1, p2, p3: in bit;

pz: out bit);

end component;

 

--объявление внутренних сигналов:

signal s1: bit;

signal ab: bit;

signal acin: bit;

signal bcin: bit;

 

begin --операторы

x1: xoor2 port map(a, b, s1);

x2: xoor2 port map(s1, cin, sum);

a1: aand2 port map(a, b, ab);

a2: aand2 port map(a, cin, acin);

a3: aand2 port map(b, cin, bcin);

o1: oor3 port map(ab, acin, bcin, cout);

end FA_struct;

Поведенческий стиль.

 

--ТЕЛО ПРОГРАММЫ

 

architecture FA_behavior of FA is

begin

p_cout: process (a, b, cin) --для выходного переноса

variable t1, t2, t3: bit; --объявление

--внутренних

--переменных

begin --операторы

t1: =a and b;

t2: =b and cin;

t3: =a and cin;

cout< =t1 or t2 or t3;

end process;

 

p_sum: process (a, b, cin) --для суммы

variable s1: bit; --объявление

--внутренних

--переменных

 

begin --операторы

s1: =a xor b;

sum< =s1 xor cin;

end process;

end FA_behavior;

 

 

Потоковый стиль.

 

--ТЕЛО ПРОГРАММЫ

 

architecture FA_dataflow of FA is

begin

cout< =(a and b) or (a and cin) or (b and cin);

sum< =(a xor b) xor cin;

end FA_dataflow;

 

Смешанный стиль.

 

--программа, описывающая логику работы

--полного сумматора в

--смешанном стиле

 

library ieee;

 

--ОПИСАНИЕ КОМПОНЕНТОВ

 

entity xoor2 is

port(P1, P2: in bit;

PZ: out bit);

end xoor2;

architecture xoor2 of xoor2 is

begin

PZ< =P1 xor P2;

end xoor2;

 

--интерфейсная часть

 

entity FA is

port(a, b, cin: in bit;

sum, cout: out bit);

end FA;

 

--тело программы

 

architecture FA_mixed of FA is

 

--объявление компонентов:

 

component xoor2

port(p1, p2: in bit;

pz: out bit);

end component;

 

signal s1: bit; --внутренний сигнал

begin

x1: xoor2 port map(a, b, s1); --структурный стиль

 

process(a, b, cin)--поведенческий стиль

variable t1, t2, t3: bit; --локальные

--переменные

begin

t1: =a and b;

t2: =a and cin;

t3: =b and cin;

cout< =t1 or t2 or t3;

end process;

 

sum< =s1 xor cin; --потоковый

end FA_mixed;

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.