Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структурное описание



Структурное описание интерпретирует устройство как набор компонентов, связанных между собой сигналами. Грубо говоря - это таблица соединений (netlist). Рассмотрим простую схему управления (рис.1.8) и ее структурную модель.

Рис. 1.9. Устройство местного управления

entity ctr_lck is

port (data, mr, clk, din: in BIT; rdy, ctrla:out Bit);

end ctr_lck;

architecture str_view of ctr_lck is

component AND2 -- декларируется компонент AND2

port (x,y in BIT; z: out BIT);

end component;

component DFF -- декларируется компонент DFF

port (d, clock: in BIT; Q,NOTQ: out BIT);

end component;

component NOR2 -- декларируется компонент NOR2

port (a,b: in BIT; z: out BIT);

end component;

signal s1,s2: BIT;

begin

D1: DFF port map (data, clk, s1,s2); -- выражение 1

A1: AND2 port map (s2, din, ctrla); -- выражение 2

N1: NOR2 port map (s1, mr, rdy); -- выражение 3

end str_view;

Здесь декларируются три компонента: AND2, DFF и NOR2. В тело архитектуры экземпляры компонентов вводятся с помощью выражений 1, 2 и 3. Компоненты связаны между собой сигналами s1 и s2. В декларации называется имя компонента и его интерфейс, что очень схоже с декларацией интерфейса устройства. Выражение для экземпляра компонента должно в первую очередь дать имя экземпляру или ярлык. Например, D1 – это ярлык для экземпляра триггера DFF. Далее следует список связей (association list). Он устанавливает связь между портами компонента и портами и сигналами устройства. Существует два варианта связи: позиционный и поименный. В позиционном списке первый порт декларации (слева направо) компонента соответствует первому порту экземпляра компонента (слева направо), второй – второму и так далее. Именно такой вариант списка был использован в приведенном выше примере. Вместо этого можно было использовать поименный вариант списка связей, например, выражение 3 можно было бы записать так:

N1: NOR2 port map (a=>s1, b=> mr, z=>rdy);

Рассмотрим еще пример. На рис.1.2 была приведена схема полусумматора. Его структурная модель должна предстать как набор следующих компонентов: XOR на два входа (например, 7486 или отечественный аналог ЛП5) и AND на два входа (например, 7408 или отечественный аналог ЛИ1).

entity half_adder is

port(a, b: in BIT; sum, cur: out BIT);

end half_adder;

architecture h_a_str of half_adder is

component a_7486

port (a_2: in BIT;

a_3: in BIT;

a_1: out BIT);

end component;

component a_7408

port (a_2: in BIT;

a_3: in BIT;

a_1: out BIT);

end component;

begin

X1: a_7486 port map (a, b, sum);

A1: a_7408 port map (a, b, cur);

end h_a_str;

Названия компонентов и их портов приведены такими, какими они даны в библиотеке фирмы ALTERA – известного производителя программируемых логических схем.

Декларации компонентов, использованные в архитектуре h_a_str полусумматора half_adder, можно упаковать в отдельный файл, например, maxplus2.vhd:

package maxplus2 is

component a_7486

port (a_2: in BIT;

a_3: in BIT;

a_1: out BIT);

end component;

component a_7408

port (a_2: in BIT;

a_3: in BIT;

a_1: out BIT);

end maxplus2;

Файл maxplus2 при компиляции может быть помещен в библиотеку, например, с названием altera. Ссылка на библиотеку позволит не декларировать компоненты в архитектуре:

library altera;

use altera.maxplus2.all;

entity half_adder is

port(a, b: in BIT; sum, cur: out BIT);

end half_adder;

architecture h_a_str of half_adder is

begin

X1: a_7486 port map (a, b, sum);

A1: a_7408 port map (a, b, cur);

end h_a_str;





Дата публикования: 2015-03-29; Прочитано: 182 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...