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

5 Счетчики

.pdf
Скачиваний:
50
Добавлен:
15.04.2015
Размер:
282.73 Кб
Скачать

Работа 5 . Счетчики

Задание 5.1. Асинхронные и синхронные счетчики. Создайте проект для моделирования и сравнительной оценки динамических параметров 4-разрядных асинхронного и синхронного счетчиков.

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

Асинхронный счетчик - цепочка триггеров, тактовый вход каждого из которых подключен к выходу предыдущего триггера. Сигнал на вход последнего триггера приходит лишь тогда, когда все предыдущие триггеры переключились. Устройства с асинхронными счетчиками не используют синхронизацию (Схема 1 на Рис. 5.1).

Рис.5.1. Асинхронный и синхронный счетчики

В синхронных счетчиках срабатывание всех триггеров происходит по фронту тактовых импульсов, которые одновременно подаются на входы «С» всех разрядов, а переключение определяют управляющие входы: D, J, K, или Т. Для устранения гонок и повышения быстродействия в схемах синхронных счетчиков используют цепи ускоренного переноса (Схема 2 на Рис. 5.1).

 

Создайте проект для исследования счет-

 

чиков (Рис. 5.1), подробно опишите работу

 

счетчиков и результаты временного моделиро-

 

вания, укажите численные значения задержки

Рис. 5.2. Моделирование счетчиков

сигналов на выходах триггеров относительно

фронтов синхроимпульсов. Объясните порядок

 

смены состояний триггеров.

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

 

клавише «Shift», и выбрать из меню «Group».

 

Задание 5.2. Реверсивный счетчик. Реверсивные счетчики изменяют на-

 

правление счета под воздействием управляющего сигнала или при смене точки по-

 

дачи входных импульсных сигналов.

 

Библиотечный элемент «4count» из библиотеки «mf» (Рис. 5.3)- это 4-

 

разрядный реверсивный счетчик с параллельной загрузкой. Назначение выводов:

Рис.5.3. 4count

A,B,C,D - входные данные; QA,QB,QC,QD – выходные данные; CIN входной пере-

нос; COUT - выходной перенос; LDN (Load Negative) сигнал, управляющий син-

Рис.5.4. LPM_Counter

хронной параллельной загрузкой входных данных, которая происходит по фронту синхроимпульса «СLK», при LDN = 0; SETN - асинхронная параллельная загрузка; CLRN - асинхронная очистка; DNUP - направление счета. Работа счетчика при различных комбинациях сигналов описана в Help /Old-Style Macrofunctions/Counters. Схема счетчика открывается двойным щелчком по символу.

Создайте проект для исследования универсального счетчика «4count». Разработайте тестовые сигналы для иллюстрации всех режимов работы счетчика.

Укажите различия временных диаграмм для режимов суммирования и вычитания, укажите, по какому перепаду (0-1, или 1-0) переключается следующий триггер счетчика в каждом случае. Используя результаты моделирования и Help, составьте подробное описание функционирования счетчика и назначения выводов. Опишите схему счетчика, тип счетчика (асинхронный, или синхронный), тип счетного триггера, построение цепей переноса.

Задание 5.3. Счетчик с программируемыми параметрами.

Функциональные блоки большой степени интеграции с возможностью

изменения параметров по желанию пользователя содержатся в биб-

лиотеке параметризированных модулей (Library of Parameterized Mod-

ules - LPM).

При вводе символа параметризируемого модуля отображается диа-

логовое окно настройки (Edit Ports/Parameters) с кнопкой Help. Символ

модуля отображается с окном введенных параметров, если включена

опция Show Parameters меню Options. Вызов окна настройки выполня-

ется щелчком правой кнопки манипулятора при установке курсора на

символ модуля. Окно настройки содержит два раздела: «Ports» и «Pa-

rameters».

Раздел «Ports» позволяет выбрать выводы модуля, которые будут

отображены и активны. Входы и выходы можно сделать инверсными.

На рис. 5.4 изображен символ счетчика LPM_Counter, для которого, с

целью оценки функциональных возможностей, все выводы указаны

как «Used». Для заданного проекта счетчика можно выбрать мини-

мальное количество выводов, и указать как «Used» порты «clock» и

«q[]».

Раздел окна настройки «Parameters» позволяет задать разрядность счетчика (LPM_WIDTH), направ-

ление счета «LPM_DIRECTION», и модуль счета «LPM_MODULUS».

Модуль счета М - максимальное количество состояний счетчика. Для n-разрядного счетчика модуль M=2n, а период повторения импульсов переполнения содержит 2n периодов входной частоты. В счетчиках с произвольным модулем счета исключается некоторая часть состояний.

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

Вариант

1

2

3

4

5

6

7

8

9

10

11

Направление

Выч.

Выч.

Выч.

Выч.

Выч.

Сум.

Сум.

Сум.

Сум.

Сум.

Сум.

счета

 

 

 

 

 

 

 

 

 

 

 

Модуль счета

5

5

6

6

7

7

9

9

10

10

11

Задание 5.4. Описание счетчиков на языке Verilog. Составьте поведенческое описание счетчика с параметрами предыдущего пункта (5.3), создайте символ, проведите сравнительную оценку быстродействия счетчиков: с программируемыми параметрами и созданного в виде описания на Verilog.

Поясним функциональные возможности поведенческого описания счетчиков и регистров на языке Verilog. В примере 5.1 приведено описание 4-разрядного счетчика, считающего в прямом направлении и имеющего входы разрешения счета сигналом en=1 и асинхронного сброса сигналом r=0. Сброс счетчика произойдет сразу же при появлении сигнала сброса r=0, по его отрицательному фронту (спаду), что указано в списке чувствительности оператора «always».

Пример 5.2 описывает счетчик с параллельной загрузкой и асинхронным сбросом. Параллельный код загрузки подается на входную шину «d», а загрузка происходит при сигнале l=1. При отсутствии режима загрузки (l=0) устанавливается режим прямого счета.

2

В примере 5.3 описан счетчик с произвольным модулем счета. Используется сброс счетчика при достижении максимального значения кода (m-1). Модуль счета, определяемый количеством состояний счетчика, с учетом нулевого состояния, равен m.

//Пример 5.1. суммирующий

//Пример 5.2 счетчик

//Пример 5.3 счетчик с произ-

// счетчик

// с параллельной загрузкой

//вольным модулем счета

module cnt1 (en, c, r, q);

module cnt2 (q, d, l, c, r);

module cnt3 (q, m, c);

input c,r, en;

input l, c, r;

input c;

output [3:0] q;

input [3:0] d;

input [3:0] m;

reg [3:0] q;

output [3:0] q;

output [3:0] q;

always @(posedge c or negedge r)

reg [3:0] q;

reg [3:0] q;

if(!r) q = 8'b0;

always @(posedge c or negedge r)

always @(posedge c)

else if(en) q =q +1;

if(!r)

q = 8'b0;

if(q==m-1) q = 8'b0;

endmodule

else

if(l) q = d; else q = q +1;

else q = q +1;

 

endmodule

endmodule

Задание 5.5. Синтез счетчика как конечного автомата. Проведите синтез реверсивного счет-

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

Вариант

1

2

3

4

5

6

7

8

9

10

11

12

 

 

 

 

 

 

 

 

 

 

 

 

 

Модуль

5

5

6

6

7

7

9

9

10

10

11

11

Триггер

JK

е

JK

е

JK

е

JK

T

JK

е

JK

е

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

q0

 

 

 

 

 

 

 

 

Рассмотрим этапы синтеза реверсивного счетчика на тригге-

 

 

 

 

 

 

 

 

 

Переход

 

j k

рах типа JK с модулем счета 3.

 

 

 

 

 

 

 

 

 

 

 

 

0→0

 

 

0 х

1. Необходимое число триггеров определяется из условия 2n

n

n

 

 

 

n

n

 

 

 

 

 

 

 

 

 

 

 

 

0→1

 

 

1 х

≥ M, где М – модуль счета, а n – количество триггеров. Для задан-

q2

 

n

 

 

q1

 

1→0

 

 

х 1

ного счетчика получим n=2. Изображаем таблицу переходов тригге-

 

 

 

 

 

 

1→1

 

 

х 0

ра.

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Кодирование состояния автомата. Исключаем одно лишнее

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

qN

 

qN+1

j1 k1

j0

k0

состояние, например, 11, как содержащее много единиц. Уменьше-

0

 

 

0 0

0 1

0 х

1 х

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

0

 

 

0

 

1

1

0

1 х

х 1

нения при его записи в СДНФ. Для состояний автомата выберем

0

 

 

1

 

0

0

0

х 1

0

х

коды: q0 – 00, q1 – 01, q2 – 10.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Граф автомата. Пусть направление счета определяет вход-

1

 

 

0 0

1 0

1 х

0 х

 

 

ной сигнал n, при n=1 – вычитание (от слова negative).

1

 

 

1 0

0 1

х 1

1 х

 

 

4. Таблица переходов автомата имеет столбцы: n – направле-

1

 

 

0 1

0 0

0 х

х 1

 

 

ние счета; qN, qN+1 – текущее и новое состояния; j1 , k1 и j0 k0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.5. К синтезу счетчика

управляющие сигналы триггеров старшего и младшего разрядов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Строка 1 записана следующим образом. Старший разряд q1

при изменении состояния из qN в qN+1 имеет переход 0 – 0, поэтому входные сигналы j1k1 этого триггера (в соответствии с таблицей переходов триггера) должны быть 0х. Для младшего разряда переход 0-1, а необходимые сигналы j0k0 равны 1х.

6. Логические уравнения для функций переходов. Рациональный выбор неопределенной координаты «х» позволяет упростить логические уравнения функций переходов. Для сигналов k1, k0 целесообразно выбрать х = 1, в результате эти сигналы становятся равными единице. Для сигналов j1, j0 необходимо выбрать х = 0, что уменьшит количество слагаемых в логических уравнениях. Логические уравнения для этих сигналов записываются в ДНФ с учетом данных в столбцах n и qN.

k1 k0 1; j1 n q1 q0 n q1 q0; j0 n q1 q0 n q1 q0;

3

С учетом логики работы jk-триггера сомножители qN , входящие в логическое выражение для jN можно приравнять единице. Действительно, для сигнала установки триггера в единицу нет необходимости учитывать его исходное нулевое состояние.

Уравнениям для составления схемы упрощаются. k1 k0 1; j1 n q0 n q0; j0 n q1 n q1; 7. Логические уравнения для функций переходов позволяют составить схему (Рис. 5.6).

Рис. 5.6. Схема синтезированного счетчика

8. Для тестирования автомата необходимо по графу составить таблицу смены состояний графа при всех комбинациях управляющих сигналов и выполнить анализ временных диаграмм (Рис. 5.7).

Рис. 5.7. Временные диаграммы работы синтезированного счетчика

Задание 5.6. Описание конечного автомата на языке Verilog. Создайте описание реверсивного счетчика с модулем счета, соответствующим предыдущему заданию как конечного автомата. Особенности представления счетчика как конечного автомата поясняет описание реверсивного счетчика с модулем счета 3. Память конечных автоматов строят на синхронных триггерах с динамическим управлением, которые срабатывают по фронту импульсов синхронизации, поэтому в основе описания конечных автоматов - последовательные операторы «case» и «if» c ключевым словом «always». В качестве селектора вариантов в операторе «case» выбирают состояния автомата «q», а зависимость переходов от входных сигналов описывают операторами «if».

//Пример 5.4. Автомат

always @ ( posedge c) case (q)

2'b10: if(n) q=2'b01;

module moore (c,n,q);

2'b00: if(n) q=2'b10;

else q=2'b00;

input c,n;

else q=2'b01;

endcase

output [1:0]q;

2'b01: if(n) q=2'b00;

endmodule

reg [1:0]q;

else q=2'b10;

 

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

1.Счетчики, области применения, признаки классификации.

2.Правилам организации связи между триггерами суммирующего и вычитающего счетчиков.

3.Работа двоичных счетчиков на D-триггерах - суммирующего и вычитающего.

4.Принцип создания тестовых сигналов при моделировании счетчиков.

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

6.Поясните особенности построения реверсивных счетчиков

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

8.Поясните принцип построения вычитающих асинхронных счетчиков.

9.Поясните принцип построения суммирующих синхронных счетчиков.

10.Поясните на примерах методы описания счетчиков на языке Verilog.

11.Синтез счетчика как конечного автомата.

12.Поясните на примерах метод описания конечных автоматов на языке Verilog.

4

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