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

LS-Sb90197

.pdf
Скачиваний:
1
Добавлен:
13.02.2021
Размер:
427.48 Кб
Скачать

сигналом на входе D, по фронту синхроимпульса на входе С. Переходы триггера приведены в табл. 1.7.

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.7

Режим работы

 

 

 

 

Входы

 

Выходы

 

 

k

 

 

k

Ck

Dk

Qk + 1

 

 

k + 1

 

S

R

Q

Асинхронная установка «1»

0

 

1

 

1

0

Асинхронная установка «0»

1

 

0

 

0

1

Неопределенность

0

 

0

 

1

1

Запись «1»

1

 

1

 

 

 

 

1

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись «0»

1

 

1

 

 

 

 

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Символ означает фронт синхроимпульса

ИС К155ТВ1 (рис. 1.16, б) – универсальный JK-триггер со структурой M-S, тактируемый срезом синхроимпульса. Триггер имеет инверсные асинхронные входы S и R для установки начального состояния триггера. Каждый из информационных входов J и K снабжен трехвходовым ЛЭ «И» (входная логика), поэтому у ИС три входа J (J1–J3) и три входа K (K1–K3). Триггер устанавливается в состояние, определяемое сигналами на входах J1– J3, по срезу синхроимпульса на входе С. Переходы триггера приведены в табл. 1.8.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.8

Режим работы

 

 

 

 

 

 

Входы

 

 

 

 

Выходы

 

 

k

 

 

k

 

Ck

 

J k

K k

Qk + 1

 

 

 

k + 1

 

S

R

Q

Асинхронная установка «1»

0

 

1

 

 

 

1

0

Асинхронная установка «0»

1

 

0

 

 

 

0

1

Неопределенность

0

 

0

 

 

 

1

1

Переключение

1

 

1

 

 

 

 

 

 

1

1

 

 

k

 

Qk

 

 

 

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись «1»

1

 

1

 

 

 

 

 

 

1

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись «0»

1

 

1

 

 

 

 

 

 

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Хранение

1

 

1

 

 

 

 

 

 

0

0

Qk

 

 

 

k

 

 

 

 

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Символ означает cрез синхроимпульса

В современных сериях цифровых ИС триггеры представлены достаточно широко и разнообразно.

2.ТЕХНОЛОГИИ ПРОЕКТИРОВАНИЯ ПЛИС

Ссередины 1990-х гг. в электронной промышленности особенно бурно развиваются ПК, сотовая и мобильная связь, высокоскоростные ЦУ передачи данных. Разработчики стремятся производить продукцию на основе увеличения функциональных возможностей, повышения технических характе-

21

ристик, снижения стоимости, потребляемой мощности и уменьшения размеров. Для реализации этого создаются высокоинтегрированные, сложные системы с небольшим числом ИС, малой площадью печатных плат и в кратчайшие сроки. Современные субмикронные технологии, производство печатных плат и новые технологии при изготовлении корпусов ИС позволяют решать задачи повышения степени интеграции и минимизации размеров электронных устройств. Однако для производителей электронной техники часто быстрый выход на рынок с готовым изделием при высоких технических характеристиках является более важным, чем все остальные факторы. Современные средства САПР позволяют решать и эту проблему, а ПЛИС и стандартные языки описания аппаратуры (Hardware Description Languages HDL) становятся ключевыми элементами в новых методологиях проектирования.

Полузаказные и заказные специализированные ИС (Application Specific Integrated Circuits – ASIC) также используются для обеспечения решаемых проблем, но ПЛИС обеспечивают дополнительную гибкость при проектировании и модификации аппаратуры, более быстрый выход на рынок и более низкие затраты.

Стандартные языки описания аппаратуры (VHDL и Verilog) очень удобны для проектирования электронных систем и ЦУ на основе ПЛИС, их популярность растет. При проектировании сложных (более 1000 затворов) ПЛИС инженеры уже не могут более использовать булевы уравнения или описания в виде логических схем, чтобы обеспечить быстрое и эффективное полное проектирование. Языки описания аппаратуры типа VHDL (Very high speed integrated circuit Hardware Description Language) обеспечивают высокоуровневое описание сложнейших ЦУ, позволяют выполнить проектирование значительно быстрее, поддерживают создание библиотек проектирования, в которых компоненты могут быть многократно использованы в последующих проектах. Кроме того, так как это стандартные языки, они обеспечивают совместимость кодов между средствами синтеза и моделирования, а также независимое от конкретного кристалла проектирование, с их помощью обеспечивается достаточно простое конвертирование проекта с ПЛИС в реализацию в виде полузаказной ИС или базового матричного кристалла (БМК).

Проектирование простейших ПЛИС (до 500 затворов) возможно с применением традиционных методологий проектирования на основе логического описания, синтеза на основе карт Карно и т. д., но для сложных проектов на основе ПЛИС или ASIC традиционные методологии проектирования уже

22

не применимы, так как требуют значительных затрат времени и сопровождаются большим числом ошибок. Схемные редакторы, используемые ранее и в настоящее время большинством проектировщиков, имеют много достоинств, например, они обеспечивают графический просмотр проекта, а если есть средства иерархического представления, то и модульность проекта. Однако для больших проектов они имеют много недостатков: управляющая логика функционирования схемы представлена с использованием традиционных подходов, схемное представление трудно хранить в формализованном виде и обслуживать, схемы сопровождаются описательной документацией на разных языках, трудно воспользоваться старыми проектами в новых разработках, так как схемные модели не предназначены для многоразового использования, сложна стыковка с другими системами САПР в процессе проектирования и верификации. Всегда считается, что более удобной методологией проектирования является та, которая увеличивает эффективность работы проектировщиков, имеет множество уровней представления проекта, наглядных и легко обслуживаемых, понятных или стандартных для промышленности и разных программных средств САПР, где модели могут быть многократно использованы и поддерживать иерархическое представление от схемного до системного уровня, могут быть использованы как для описания, так и для синтеза и моделирования. В настоящее время два языка удовлетворяют этим требованиям: VHDL и Verilog [6].

Теоретической базой при проектировании ЦУ являются: булева алгебра, двоичная арифметика и теория конечных автоматов. Функции в алгебре логики, как и их аргументы, могут принимать только два значения: 0 и 1. Функции могут быть представлены различными способами: словесным описанием (назначением, определением); таблицей истинности; аналитическим выражением с использованием базовых логических операций «И», «ИЛИ», «НЕ», определяемых аксиомами булевой алгебры; картой Карно; переключательной схемой; диаграммой Венна; геометрическим способом (гиперкубами); диаграммой двоичного решения.

2.1. Краткие сведения о языке описания аппаратуры

Язык VHDL является международным стандартом в области автоматизации проектирования ЦУ. Этот язык используется во многих современных САПР, ориентированных на разнообразную элементную базу (микросхемы малой и средней степеней интеграции, ПЛИС). В частности, он может быть использован в процессе работы с текстовыми редакторами САПР, такими как

Quartus II, Synplify, Active-HDL и др.

23

При описании аппаратуры на языке VHDL вводится понятие объект. Объектом называют проектируемое ЦУ. При использовании языка VHDL для проектирования ЦУ объект должен быть описан следующим образом:

описывается интерфейс (entity) объекта;

описывается архитектура (architecture) объекта.

Описание интерфейса представляет собой перечисление входов и выходов объекта (всего в целом, а не отдельных его составных частей), которые при этом называют портами объекта. Схема описания интерфейса на языке VHDL имеет следующий вид:

entity идентификатор_интерфейса is port(список портов с указанием их типов); end идентификатор_интерфейса;

Здесь (но не всегда) термин «идентификатор» обозначает имя, которое присваивается проектировщиком (пользователем САПР) данному описанию. Имена, присваиваемые проектировщиком, называют пользовательскими именами. Причем идентификатор интерфейса должен совпадать с именем проекта.

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

architecture идентификатор_архитектуры of идентификатор_интерфейса is -- декларация портов архитектуры

begin

...; -- тело архитектуры

end идентификатор_архитектуры;

Двумя смежными дефисами в языке VHDL отделяются комментарии. «Декларация портов архитектуры» является условным названием того

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

24

Тело архитектуры должно представлять собой описание проектируемого ЦУ на поведенческом и/или структурном уровне. При структурном описании потребуется указать совокупность компонентов (элементов, подсхем) и связей между ними. Естественно, некоторые компоненты ЦУ в структурном описании, в свою очередь, могут состоять из нескольких частей – компонентов более низкого уровня иерархии описания. Об этом говорят как о вхождении подсхем в схемы. Представляя отношение вхождения подсхем в схемы в виде графа, можно получить дерево (граф) иерархии описания всего ЦУ. Некоторые из компонентов объектов могут представлять собой макро- и мегафункции из библиотек некоторых САПР (например, Quartus II), допускающих использование языка VHDL для работы с ПЛИС.

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

2.2. Простейшие примеры описания схем КЦУ

Пример 1. Схему КЦУ на рис. 2.1, а можно описать следующим обра-

зом:

entity ANDOR is

--декларация входных портов и выходного порта,

--определение их типов как двоичных

port(e0, e1, e2: in bit; z: out bit); end ANDOR;

architecture EXAMPLE1 of ANDOR is begin

--назначение выходному сигналу (порту) z результата

--логического преобразования сигналов e0, e1, e2

z <= (not (e0 and e1) or e2); end EXAMPLE1;

В приведенном тексте тело архитектуры, очевидно, представляет собой поведенческое описание объекта – описание логического преобразования, составленного с использованием логических операций «И» (and), «ИЛИ» (or), «НЕ» (not).

Пример 2. Схему КЦУ на рис. 2.1, б можно описать следующим обра-

зом:

entity Cascade_Circuit is

port(x0, x1, x2, x3, x4: in bit; y: out bit); end Cascade_Circuit;

25

architecture example2 of Cascade_Circuit is

--декларация описанного ранее компонента,

--соответствующего схеме (рис. 2.1, а) component ANDOR

--декларация входных и выходного портов компонента,

--определение их типов как двоичных port(e0, e1, e2: in bit; z: out bit);

end component;

--декларация внутреннего сигнала f и определение его типа как двоичного signal f: bit;

begin

--метка (а1) и описание использования компонента ANDOR в качестве левой обведенной штриховой линией части схемы КЦУ (рис. 2.1, б), т. е. описание использования портов компонента ANDOR в качестве портов объекта (x0, x1, x2, x3, x4, y) и передачи внутреннего сигнала f между частями схемы КЦУ

a1 : ANDOR port map (x0, x1, x2, f);

--метка (а2) и описание использования компонента ANDOR в качестве правой обведенной штриховой линией части схемы КЦУ (рис. 2.1, б), т. е. описание использования портов компонента ANDOR в качестве портов объекта (x0, x1, x2, x3, x4, y) и передачи внутреннего сигнала f между частями схемы КЦУ

a2 : ANDOR port map (f, x3, x4, y); end example2;

Рис. 2.1. Схемы КЦУ на ЛЭ «И-НЕ», «ИЛИ» для примера 1 (а) и примера 2 (б)

Метки (здесь a1 и a2), являющиеся одним из частных случаев идентификаторов, в соответствии с синтаксисом VHDL отделяются двоеточиями. Причем отдельные версии языка VHDL предполагают обязательное использование меток, а для некоторых версий (в частности для версии, соответствующей текстовому редактору изучаемой САПР) использование меток возможно, но не обязательно. Метки тоже относят к пользовательским именам.

В приведенном тексте тело архитектуры, очевидно, представляет собой структурное описание объекта. Последний текст описания составлен с уче-

26

том того, что схема на рис. 2.1, б состоит из двух частей (обведенных штриховыми линиями), каждая из которых представляет собой схему на рис. 2.1, а, описанную ранее. При этом КЦУ на рис. 2.1, б описывается совокупностью двух приведенных ранее текстов, а не только последним из них. Заметим, что имя и декларация портов компонента (см. второй текст) должны полностью совпадать с соответствующими строками описания, сделанного ранее (см. первый текст).

В двух составленных текстах описаний идентификаторы интерфейса и архитектуры записаны по-разному (с использованием больших и малых букв). Это не является ошибкой: компилятор САПР воспримет одинаково большие и малые буквы в текстах VHDL.

2.3. Примеры разработки и исследования ПЦУ

Лабораторная работа по разработке и исследованию ЦУ должна включать в себя следующие основные этапы:

1)разработку кода программы описания работы требуемой схемы;

2)анализ временных диаграмм работы требуемой схемы с иллюстрацией всех возможных вариантов входных сигналов и взаимосвязи между входными и выходными сигналами;

3)разработку иерархического проекта с применением разработанной схемы (схема в виде «черного ящика») в текстовом редакторе;

4)разработку кода программы тестирования;

5)выводы о возможных вариантах реализации схемы с уменьшением сложности.

Ограничимся рассмотрением первых четырех этапов.

Пример 1. Рассмотрим D-триггер, тактируемый передним фронтом (Rising Edge Flip-Flop), без цепей асинхронного сброса (reset) или предустановки (preset).

1)Описание работы триггера на языке VHDL:

library IEEE;

use IEEE.std_logic_1164.all; entity dff_1 is

port(data, clk: in std_logic; q: out std_logic); end dff_1;

architecture behav of dff_1 is begin

process (clk) begin

if (clk'event and clk = '1') then

27

q <= data; end if;

end process; end behav;

2)Временные диаграммы работы триггера (рис. 2.2, а);

3)Схема в виде «черного ящика» (рис. 2.2, б);

Рис. 2.2. Временные диаграммы работы схемы (а) и схема в виде «черного ящика» (б)

4) код программы тестирования:

library ieee;

use ieee.std_logic_1164.all;

--подключение нужных библиотек entity dff_1_tb is

end dff_1_tb;

architecture TB_ARCHITECTURE of dff_1_tb is

--декларация компонентов тестируемой схемы component dff_1

port(data: in std_logic; clk: in std_logic; q: out std_logic); end component;

--подача всех входных сигналов на входы схемы signal data: std_logic;

signal clk: std_logic;

--получение выходного сигнала с выхода схемы signal q: std_logic;

--ввести нужный код

begin

--узел под тестирование схемы UUT : dff_1

port map (data => data, clk => clk, q => q);

end TB_ARCHITECTURE;

--ввести необходимые комбинации входных сигналов configuration TESTBENCH_FOR_dff_1 of dff_1_tb is for TB_ARCHITECTURE

for UUT : dff_1

use entity work.dff_1(behav);

28

end for;

end for;

end TESTBENCH_FOR_dff_1;

Пример 2. Рассмотрим триггер, тактируемый передним фронтом с асинхронной предустановкой (Rising Edge Flip-Flop with Asynchronous Preset).

1. Описание работы триггера на языке VHDL:

library IEEE;

use IEEE.std_logic_1164.all; entity dff_2 is

port(data, clk, preset: in std_logic; q: out std_logic); end dff_2;

architecture behav of dff_2 is begin

process (clk, preset) begin if (preset = '0') then

q <= '1';

elsif (clk'event and clk = '1') then q <= data;

end if;

end process; end behav;

2.Временные диаграммы работы триггера (рис. 2.3, а).

3.Схема в виде «черного ящика» (рис. 2.3, б).

Рис. 2.3. Временные диаграммы работы схемы (а) и схема в виде «черного ящика» (б)

4. Код программы тестирования:

library ieee;

use ieee.std_logic_1164.all; entity dff_2_tb is

end dff_2_tb;

architecture TB_ARCHITECTURE of dff_2_tb is component dff_2

port(data: in std_logic; clk: in std_logic; preset: in std_logic; q: out std_logic); end component;

signal data: std_logic;

29

signal clk: std_logic; signal preset: std_logic; signal q: std_logic; begin

UUT : dff_2

port map (data => data, clk => clk, preset => preset, q => q);

end TB_ARCHITECTURE;

configuration TESTBENCH_FOR_dff_2 of dff_2_tb is for TB_ARCHITECTURE

for UUT : dff_2

use entity work.dff_2(behav); end for;

end for;

end TESTBENCH_FOR_dff_2;

2.4.Порядок выполнения лабораторных работ

1.Разработать на языке VHDL/Verilog схему ЦУ, указанного преподава-

телем.

2.Исследовать работу и построить временные диаграммы (снять таблицу переходов) ЦУ.

3.Разработать схему подключения и выполнить анализ возможных вариантов реализации ЦУ с целью уменьшения сложности (числа вентилей).

2.5.Список лабораторных работ

1.Разработка и исследование логических элементов.

2.Разработка и исследование комбинационных устройств.

3.Разработка и исследование триггеров.

4.Разработка и исследование дешифраторов.

5.Разработка и исследование двоичных сумматоров.

6.Разработка и исследование цифровых компараторов.

7.Разработка и исследование мультиплексоров и демультиплексоров.

8.Разработка и исследование регистров.

9.Разработка и исследование счетчиков импульсов.

10.Разработка и исследование преобразователей сигналов.

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

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

30

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