Проектирование цифровых устройств с помощью языка описания аппаратуры VHDL. Бобрешов А.М - 8 стр.

UptoLike

Составители: 

8
Пример 1. Синхронный D-триггер, тактируемый передним фронтом
library IEEE;
use IEEE.std_logic_1164.all;
entity DFF is
port (DATA, CLK: in std_logic;
Q: out std_logic);
end DFF;
architecture DFF_ARCH of DFF is
begin
process (CLK)
begin
if CLK’event and CLK=’1’ then
Q<=DATA;
end if;
end process;
end DFF_ARCH;
Пример начинается с подключения пакета, называемого
std_logic_1164 и содержащего стандартные расширения языка VHDL.
Пакет представляет собой набор объявлений, схемотехнических
компонентов и подпрограмм, которые могут быть использованы в разных
проектах. В частности, в пакете std_logic_1164 размещено объявление
типов std_logic и std_logic_vector, которые, как будет показано ниже,
являются основными типами определения сигналов и
шин. Определения
пакетов содержатся в библиотеках. Соответственно, сначала требуется
подключить библиотеку с помощью конструкции library <имя
библиотеки>. Затем с помощью ключевого слова use можно подключить
необходимый пакет из библиотеки. Поскольку на практике пакеты могут
иметь много объявлений, в том числе вложенных пакетов, можно явно
указать, какие из объявлений необходимо включать в
проект. Для того
чтобы подключить все доступные объявления на указанном иерархическом
уровне, используется ключевое слово all. Например, запись use
IEEE.std_logic_1164.all означает, что необходимо подключить все
объявления пакета std_logic_1164, входящего в библиотеку IEEE. По
возможности следует избегать подключения лишних объявлений.
Например, конструкция use IEEE.all приведет к подключению всего
содержимого библиотеки IEEE. С одной стороны
, это приведет к
увеличению времени обработки проекта. С другой, поскольку разные
пакеты могут содержать объявления с одинаковыми именами, это может
привести к конфликтным ситуациям, что потребует в явном виде
указывать имена пакетов при использовании таких деклараций.
D
CLK
Q
                                   8
 Пример 1. Синхронный D-триггер, тактируемый передним фронтом
library IEEE;
use IEEE.std_logic_1164.all;

entity DFF is
  port (DATA, CLK: in std_logic;
  Q: out std_logic);
end DFF;

                                             D          Q
architecture DFF_ARCH of DFF is
begin
                                            CLK
process (CLK)
 begin
  if CLK’event and CLK=’1’ then
    Q<=DATA;
  end if;
 end process;
end DFF_ARCH;

      Пример начинается с подключения пакета, называемого
std_logic_1164 и содержащего стандартные расширения языка VHDL.
Пакет представляет собой набор объявлений, схемотехнических
компонентов и подпрограмм, которые могут быть использованы в разных
проектах. В частности, в пакете std_logic_1164 размещено объявление
типов std_logic и std_logic_vector, которые, как будет показано ниже,
являются основными типами определения сигналов и шин. Определения
пакетов содержатся в библиотеках. Соответственно, сначала требуется
подключить библиотеку с помощью конструкции library <имя
библиотеки>. Затем с помощью ключевого слова use можно подключить
необходимый пакет из библиотеки. Поскольку на практике пакеты могут
иметь много объявлений, в том числе вложенных пакетов, можно явно
указать, какие из объявлений необходимо включать в проект. Для того
чтобы подключить все доступные объявления на указанном иерархическом
уровне, используется ключевое слово all. Например, запись use
IEEE.std_logic_1164.all означает, что необходимо подключить все
объявления пакета std_logic_1164, входящего в библиотеку IEEE. По
возможности следует избегать подключения лишних объявлений.
Например, конструкция use IEEE.all приведет к подключению всего
содержимого библиотеки IEEE. С одной стороны, это приведет к
увеличению времени обработки проекта. С другой, поскольку разные
пакеты могут содержать объявления с одинаковыми именами, это может
привести к конфликтным ситуациям, что потребует в явном виде
указывать имена пакетов при использовании таких деклараций.