Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Entity decod IS. Entity test IS. Entity Lab3 IS. Architecture structure of Lab3 IS. Entity tb IS. Architecture structure of tb IS




ENTITY decod IS

GENERIC ( num_outputs: INTEGER; -- число выходов

          DELAY: time);

PORT (input: IN INTEGER RANGE 0 TO num_terms-1;

                   output: OUT std_logic_vector ( 0 TO num_terms-1));

  END decod;

 

ENTITY or4 IS     

PORT (x1, x2, x3, x4: IN std_logic; y: OUT std_logic);

END or4;

 

ENTITY zero IS  

PORT (y: OUT std_logic);

END zero;

 

ENTITY test IS

PORT (stim_integer: OUT INTEGER RANGE 0 TO 7);

END test;

 

Декларации дешифратора в файле comp_lab3. Vhd подчинены два архитектурных тела, отражающие эту сущность с разных точек зрения. Обучающийся по заданию преподавателя должен определить архитектурное тело, используемое в его проекте, оформив соответствующим образом декларацию конфигурации.

Текст файла comp_lab3. Vhd приведен в листинге 3. 3. Это трафарет будущей программы. Обучающийся должен заместить фрагменты, выделенные курсивом, операторами для реализации многовыходной логической схемы в соответствии с индивидуальным заданием.

 

Листинг 3. 3 Трафарет программы описания многокомпонентного устройства

 

LIBRARY ieee;

USE ieee. std_logic_1164. ALL;

ENTITY lab3 IS

PORT (input: IN INTEGER RANGE 0 TO 7;

                 z1, z2, z3: OUT std_logic );

END lab3;

 

ARCHITECTURE structure OF lab3 IS

 

  CONSTANT num_terms: INTEGER : =8;

 

COMPONENT decod

GENERIC ( num_outputs: INTEGER; delay: time);

PORT (input: IN INTEGER RANGE 0 TO  num_terms-1;

                   output: OUT std_logic_vector (0 TO num_terms-1));

  END COMPONENT;

-- -----------------------------

-- Здесь следует разместить объявление

-- компонентов OR4 и Zero,

-- подобно таким же конструкциям декларации

 -- компонента decod

-- ---------------------------------

SIGNAL y: std_logic_vector(0 TO num_terms-1);

SIGNAL zero: std_logic:

 

 BEGIN

 

u1: decod

  GENERIC MAP (num_terms, 5 ns)

  PORT MAP (input, y);

-- --------------------------------------

--Здесь следует разместить операторы

-- вхождения и определить

-- подключение выходов (PORT MAP ) нескольких компонентов OR4 и zero,

-- ----------------------------------

END structure;

 

Текст файла tb_lab3. Vhd (листинг 3. 4) является заготовкой для создания модели тестирующей установки. Как уже ранее отмечалось, в подобных моделях раздел портов модуля высшей степени иерархии пуст.

Листинг 3. 4. Тестирование многокомпонентного устройства

 

LIBRARY ieee;

USE ieee. std_logic_1164. ALL;

 

ENTITY tb IS

END tb;

 

ARCHITECTURE structure OF tb IS

 

COMPONENT lab3 IS

PORT (input: IN INTEGER RANGE 0 TO 7;

                               z1, z2, z3: OUT std_logic );

END COMPONENT;

 

COMPONENT test IS

PORT (stim_integer: OUT INTEGER RANGE 0 TO 7);

END COMPONENT;

-------------------------------

-- Здесь следует разместить объявление связей модуля генератора теста

-- и логической схемы,  а также имена выходов устройства

-- ---------------------------------

BEGIN

-- --------------------------------------

-- Здесь следует разместить операторы

-- вхождения и определить подключение выходов компонентов

 -- ----------------------------------

END structure;

Рекомендуется придерживаться следующего порядка работы:

 

1. Создать в системе моделирования новый проект, включив в него файлы comp_Lab3. vhd и Lab3. vhd. Изменить текст программы Lab3. vhd так, чтобы реализовать три функции таблицы 2. 1 по заданию преподавателя.

2. Переоформить программу tb_lab2. vhd для реализации процедуры тестирования устройства lab3.

3. Выполнить компиляцию файлов проекта в порядке  их вхождения в иерархию проекта.

4. Выполнить моделирование в течение 1 – 3 циклов изменения тестового воздействия в пошаговом режиме. Наблюдать и записать порядок инициализации процессов (окна  process и source).

5. Выполнить моделирование узла в автоматическом режиме.

6. Наблюдать временную диаграмму процесса. В случае обнаружения отклонения результатов от ожидаемых повторить пп. 2 и 4.

7. Компилировать проект Lab3. VHD в САПР Quartus II фирмы Altera.

8. Выполнить функциональное и временное моделирование откомпилированного проекта.

9. Произвести «распиновку» проекта в соответствии с возможностями отладочной платы DE0 фирмы Terasic.

10. Выполнить компиляцию проекта и его загрузку в отладочную плату DE0.

11. Проверить функционирование проекта в реальной системе.

Отчет по теме должен содержать:

 

- Принципиальную схему устройства в соответствии с индивидуальным заданием. При этом необходимо отобразить в рисунках иерархичность фрагментов проекта и реально использованные в тексте имена фрагментов, узлов, цепей и т. д.

- Текст программы с его разбиением на разделы и их наименованием.

- Принципиальную схему системы тестирования со встроенным устройством в форме компонента.

- Текст программы тестирования с его разбиением на разделы и их наименованием.

- Последовательность активизации и дезактивизации процессов при пошаговом моделировании.

- Временные диаграммы результатов моделирования.

 

 3. 4. Контрольные вопросы

1. Каков типовой порядок разделов структурного архитектурного тела?

2. В каких случаях необходима декларация конфигурации, и какой смысл имеют элементы этого высказывания?

3. Определите составляющие декларации компонента и оператора вхождения?

4. Поясните условия исполнения оператора вхождения компонента?

Какова разница между позиционным сопоставлением и сопоставлением по имени списков соответствия.

 

4. Описание и синтез последовательностных схем

4. 1. Триггеры и регистровые схемы

 

Понятие последовательностной схемы в общем случае соответствует схеме, содержащей элементы, способные сохранять свое состояние до появления заранее определенных сигналов (обычно называемых управляющими ) независимо от изменения других сигналов, называемых информационными. В структурном отношении последовательностные схемы состоят из двух составляющих: комбинационной логической схемы и памяти, через которую реализуется обратная связь. К этому классу относятся простые триггера, регистры и счетчики различного назначения, модули оперативной памяти (в данном учебном пособии не рассматриваются), цифровые автоматы. В принципе любое последовательностное устройство можно рассматривать как цифровой автомат, но, учитывая ряд особенностей синтеза и широкую распространенность цифровых автоматов общего вида, они, обычно, рассматриваются особо (см. раздел 5). Известно, что практически любая комбинационная схема, имеющая обратные связи, начинает обладать свойством сохранения предшествующего состояния (памятью). Схемы с памятью (триггеры, регистры, счетчики и т. д. ) являются важнейшими представителями типовых средств цифровой техники. Подробнее о видах и принципах работы можно прочитать в литературе [6], [7].

Триггер по определению есть устройство с двумя устойчивыми состояниями (не считая переходных состояний). У триггеров чаще всего можно выделить два типа входных сигналов: управляющие и информационные. Изменение информационных сигналов в этом случае не вызывает каких либо изменений состояния триггеров. В практике наиболее часто используются следующие способы управления триггерами:

– асинхронное управление;

– статическое управление, или управление уровнем;

– динамическое управление, или управление фронтом;

– смешанные варианты.

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

В триггерах со статическим управлением при пассивном уровне сигнала на управляющем входе изменение состояния невозможно, а при активном уровне управления смена состояния входов может изменять выходное состояние при соответствующих изменениях информационных сигналов. Схемы с потенциальным управлением не допускают замыкание цепью обратной связи, если время задержки в цепи обратной связи меньше длительности разрешающего импульса. Практически это исключает возможность применения таких устройств, если следующее за моментом переключающего сигнала состояние является функцией от предыдущего состояния. Такие триггеры можно использовать для относительно длительного хранения промежуточных данных. Триггеры с динамическим управлением в этом смысле более универсальны – они способны принимать и сохранять состояния и тогда, когда новое состояние зависит от предыдущего.

При динамическом управлении изменение состояния триггера происходит только непосредственно после фронта или спада сигнала на тактирующем входе. Новое состояние определяется сигналами на информационных входах в момент изменения управляющего сигнала.

Если проектируется БИС на микросхеме типа «море вентилей» (в англоязычной литературе их обычно их называют ASIC), то триггеры с потенциальным управлением занимают значительно меньшую площадь и имеют большее быстродействие по сравнению с триггерами с динамическим управлением. Поэтому их и следует использовать, если, конечно, в проекте предусмотрено отсутствие ситуаций, когда следующее за моментом изменения переключающего сигнала состояние является функцией от предыдущего состояния. Иначе обстоит дело при ориентации на реализацию в ПЛИС. Для большинства ПЛИС именно триггер с динамическим управлением является неотъемлемой частью логической ячейки. Даже интерпретация комбинационной схемы сводится к включению цепи «в обход» обязательно присутствующего триггера. Реализация в этой схемотехнике потенциального управления неэффективна и нецелесообразна. Эти соображения следует учитывать при выборе способа описания последовательностного устройства.

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

Широко рекламируемым способом описания является описание с помощью параллельного оператораPROCESS, при этом управляющие сигналы включаются в список чувствительности или в выражения условий вложенного оператора ожидания WAIT, а информационные входы, которые сами по себе не изменяют состояние – не включаются. Состояние триггера после события на управляющем входе определяется его типом (функцией переходов и способом управления), предыдущим состоянием, сигналами на информационных входах, и задается оператором присвоения значения состоянию триггера, вложенным в этот процесс.

«Процессное» описание (листинг 4. 1) может использоваться не только для отображения RS-триггеров, а может совмещаться с объявлением других способов управления при моделировании и реализации комбинированных триггерных структур. При этом необходимо учитывать способ и последовательность описания управляющих сигналов в теле процесса, так как этим обеспечивается их совместимость и относительные приоритеты.

 

Листинг 4. 1 Описание триггера

ENTITY ff IS -- entity declaration

PORT (                          -- port statement

           R, S                 : IN std_logic;

Clk, Reset      : IN std_logic;

Load, D          : IN std_logic;

Q                      : BUFFER std_logic; _

);

END ff;

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...