Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

VHDL lection

.pdf
Скачиваний:
41
Добавлен:
10.02.2015
Размер:
215.84 Кб
Скачать

Структура программы

<VHDL-программа>::= { {<объявление библиотеки>} {<объявление использования>} <первичный модуль>

}

{<вторичный модуль>}

<объявление библиотеки>::= library <имя библиотеки>;

<объявление использования>::=

use <имя библиотеки>.<имя пакета>.<имя модуля>;

Например:

Library IEEE;

Use IEEE.std_logic_1164.all;

Декларации сущностейй

<Декларация сущности>::= entity <имя проекта> is

[<объявление параметров настройки>] [<объявление портов>] [<раздел деклараций>]

[begin <раздел опреаторов>] end [entity] <имя проекта>;

<объявление параметров настройки>::= generic (<имя>:<тип> [:=<выражение>] {;<имя>:<тип> [:=<выражение>]});

<объявление портов>::=

port (<имя>:<режим> <тип> [:=<выражение>] {;<имя>:<режим> <тип> [:=<выражение>]};

<режим>::= in | out | inout

Архитектурные тела

<Архитектурное тело>::=

architecture <имя архитектуры> of <имя сущности> is <раздел деклараций>

begin

<раздел операторов>

end [architecture] <имя архитектуры>;

Архитектурные тела

Архитектурные тела представляют содержательное описание проекта. Архитектурное тело в некотором смысле подчинено соответствующей сущности. Различают структурные архитектурные тела (описывают проект в виде совокупности компонентов и их соединений), поведенческие архитектурные тела (описывающие проект как совокупность исполняемых действий) и смешанные тела.

Формальных признаков, по которым тело можно было бы отнести к тому или иному типу, не существует — речь идёт скорее не о чёткой классификации, а о стилях описания, для каждого из которых характерными являются определённые операторы и которые лучше отражают разные аспекты одного и того же объекта (структурный и поведенческий соответственно).

Синхронный D-триггер

T

D Q

CnQ

Синхронный D-триггер

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity D_trigger is port(

D : in STD_LOGIC;

C : in STD_LOGIC; Q : out STD_LOGIC; nQ : out STD_LOGIC

); end D_trigger;

Синхронный D-триггер

architecture D_trigger of D_trigger is begin

Q <= D after 10 ns; nQ <= not Q;

end D_trigger;

architecture D_trigger of D_trigger is signal State : STD_LOGIC;

begin

State <= D;

Q <= State after 10 ns;

nQ <= not State after 10 ns; end D_trigger;

Синхронный D-триггер

architecture D_trigger of D_trigger is signal State : STD_LOGIC;

begin

process (C) begin

if (C='1') then State <= D; end if;

end process;

Q <= State after 10 ns;

nQ <= not State after 10 ns; end D_trigger;

Синхронный D-триггер

D

 

&

 

&

 

 

S1

1 3

C

& &

S2

2 4

S3

Q

Q

S4

Синхронный D-триггер

architecture D_trigger2 of D_trigger is signal S1, S2, S3, S4 : STD_LOGIC; component na2

port(

X1 : in STD_LOGIC;

X2 : in STD_LOGIC; Y : out STD_LOGIC

);

end component na2; begin

na2_1: na2 port map (D, C, S1); na2_2: na2 port map (S1, C, S2); na2_3: na2 port map (S1, S4, S3); na2_4: na2 port map (S2, S3, S4); Q <= S3;

nQ <= S4; end D_trigger;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]