- •1Общие сведения о составе и назначении методического обеспечения
- •1.1Место учебной дисциплины в структуре основной образовательной программы образовательного модуля. Структура методического обеспечения учебного раздела
- •1.2Цели и задачи учебного раздела образовательного модуля. Формируемые компетенции
- •1.3Требования к результатам освоения учебного раздела образовательного модуля
- •2Теоретическая часть. Конспект лекций и методический материал для подготовки к лабораторным занятиям
- •2.1Интегральные устройства на основе цифровой электроники
- •2.1.1Предназначение и классификация программируемых логических интегральных схем (плис).
- •2.1.2Архитектуры плис.
- •2.1.3Основные характеристики плис.
- •2.1.4Проектирование плис с помощью графического редактора сапр Quartus II Web Edition и библиотека элементов сапр
- •2.1.5Иерархическое проектирование.
- •2.1.6Логические элементы
- •2.1.7Элементы с 3-м состоянием
- •2.1.8Триггеры d, t, rs, jk
- •2.1.9Счетчик Lpm-counter
- •2.1.10Временной дикриминатор
- •2.1.11Мультиплексор Lpm_mux
- •2.1.12Дешифратор Lpm_decode
- •2.1.13 Умножитель частоты altpll и последовательно-параллельный преобразователь altlvds
- •2.1.14 Регистр параллельный Lpm_ff и регистр сдвига Lpm_shiftreg
- •2.1.15Цифровые запоминающие устройства
- •2.1.16Оперативные запоминающие устройства (озу)
- •2.1.17Постоянные запоминающие устройства (пзу)
- •2.1.18 Flash-память
- •2.1.19Статическое озу Lpm_ram_io с совмещенным входом выходом данных, Lpm_ram_dq с раздельным входом и выходом данных, буфер fifo dcfifo
- •2.1.20Функциональные устройства цифровой электроники
- •3Лабораторный практикум
- •3.1Лабораторная работа №1. Моделирование и анализ работы цап в сапр «Multisim»
- •3.2Лабораторная работа №2. Моделирование и анализ работы ацп мгновенных значений напряжения, построенного по замкнутой схеме, в сапр «Multisim»
- •3.3Лабораторная работа №3. Проектирование цифровой электроники на основе логических элементов и триггеров в сапр Quartus II Web Edition
- •3.4Лабораторная работа №4. Проектирование цифровой электроники на основе цифровых счетчиков.
- •3.5Лабораторная работа №5. Иерархическое проектирование в сапр Quartus II Web Edition
- •3.6Лабораторная работа №6. Проектирование цифровой электроники на основе цифровых коммутаторов и преобразователей частоты
- •3.7Лабораторная работа №7. Проектирование цифровой электроники на основе элементов памяти
- •3.8Лабораторная работа №8. Проектирование устройства преобразования последовательного кода в параллельный
- •3.9Лабораторная работа №9. Проектирование устройства буферизации данных
- •4Подготовка к экзамену
- •Список рекомендованных источников
2.1.9Счетчик Lpm-counter
Счетчик – такое устройство, на выходах которого получается двоичный (двоично-десятичный) код, определяемый числом поступивших импульсов. Счетчики строятся на Т-триггерах.
Основной параметр счетчика – модуль счета – максимальное число единичных сигналов, которое может быть сосчитано счетчиком. Счетчики обозначают через СТ (от англ. counter).
Счетчики классифицируют:
1. По модулю счета:
- двоично-десятичные;
- двоичные;
- с произвольным постоянным модулем счета;
- с переменным модулем счета;
2. По направлению счета:
- суммирующие;
- вычитающие;
- реверсивные;
3. По способу формирования внутренних связей:
- с последовательным переносом;
- с параллельным переносом;
- с комбинированным переносом;
- кольцевые.
В суммирующем счетчике состояние счетчика (двоичный код на его выходах) с каждым импульсом увеличивается на единицу. Принцип построения и таблица истинности суммирующего счетчика приведены на рис. 4.38.
Рис. 4.38. Суммирующий счетчик
Временные диаграммы, иллюстрирующие работу счетчика, приведены на рис. 4.39. Через КСЧ обозначен модуль счета (коэффициент счета импульсов). Состояние левого триггера соответствует младшему разряду двоичного числа, а правого – старшему разряду. В исходном состоянии на всех триггерах установлены логические нули. Каждый триггер меняет свое состояние лишь в тот момент, когда на него действует отрицательный перепад напряжения. Таким образом, данный счетчик реализует суммирование входных импульсов. Из временных диаграмм видно, что частота каждого последующего импульса в два раза меньше, чем предыдущая, т. е. каждый триггер делит частоту входного сигнала на два, что и используется в делителях частоты.
Рис. 4.39. Временные диаграммы счетчика
В вычитающем счетчике состояние счетчика (двоичный код на его выходах) с каждым импульсом уменьшается на единицу. Принцип построения и таблица истинности вычитающего счетчика приведены на рис. 4.40. В чистом виде Т-триггеров в интегральном исполнении нет. Т-триггеры получаются путем преобразования D и JK-триггеров.
Рис. 4.40. Вычитающий счетчик
Как следует из таблиц на рис. 4.38 и 4.40, трехразрядный счетчик однозначно отображает число поступивших импульсов К=8.
Если количество триггеров в счетчике ограничено и равно n, а число поступающих импульсов не ограничено, то двоичный код, формируемый на выходах суммирующего счетчика, будет меняться от минимального значения (0) до максимального (2n – 1), повторяясь периодически через 2n импульсов.
При использовании вычитающего счетчика его состояние в пределах цикла будет уменьшаться от (2n–1) до нуля. Для однозначного фиксирования числа поступивших импульсов количество триггеров в счетчике должно быть равно:
,
где
– количество триггеров в счетчике,
– максимальное число импульсов,
поступающих на вход счетчика.
Рассмотрим счетчики К155ИЕ2 и К155ИЕ5. Условные графические обозначения счетчиков приведены на рис. 4.41.
Рис. 4.41. Счетчики: а) К155ИЕ5, б) К155ИЕ2
Счетчики построены следующим образом: в каждой ИС первый из триггеров имеет отдельный вход С1 и прямой выход, три остальных триггера соединены между собой так, что образуют делитель на 8 в ИС типа ИЕ5 и на 5 – в ИС типа ИЕ2. При соединении выхода первого триггера с входом С2 цепочки из трех триггеров образуются четырехразрядные счетчики, позволяющие производить деление частоты входного сигнала С1 соответственно на 16 и 10.
Рис. 4.42. Структура счетчика ИЕ5
Рис. 4.43. Структура счетчика ИЕ2
ИС имеют по два входа R0 установки в 0, объединенные по схеме "И". Сброс (установка в 0) триггеров производится при подаче уровней логической единицы на оба входа R0. ИС типа ИЕ2 имеет, кроме того, входы установки триггеров счетчика в состояние 9. При воздействии на оба эти входа логической 1 первый и четвертый триггеры переходят в единичное состояние, а остальные – в нулевое. Входы R0 и R9 изменяют состояние триггеров счетчика независимо от того, действует синхроимпульс или нет.
Наличие входов установки, объединенных по схеме "И", позволяет строить делители частоты с различными коэффициентами деления в пределах от 2 до 16 без использования дополнительных логических элементов.
Принцип построения делителя частоты на N следующий:
- число N представляется в двоичном коде (для примера возьмем N = 910 = 10012);
- определяются номера триггеров, которые необходимо установить в единичное состояние (третий и нулевой);
- выходы третьего и нулевого триггеров соединяются с входами R0.
В этом случае до прихода девятого импульса счетчик работает в обычном режиме подсчета входных импульсов (состояние счетчика увеличивается на 1 с каждым входным импульсом). Девятый импульс переводит счетчик в состояние 9, при котором на выходах третьего и нулевого триггеров формируются уровни логической 1. Эти выходы соединены с входами R0, поэтому происходит обнуление всех триггеров счетчика. Поэтому при непрерывной подаче входных импульсов счетчик работает в сокращенном цикле от 0 до 8 (девятое состояние появляется кратковременно на время обнуления триггеров.
При разработке измерительной аппаратуры, а также во многих других случаях желательно обеспечивать отображение информации в десятичной системе счисления. В этом случае наиболее удобно использовать счетчики типа ИЕ2 с коэффициентом деления 10 (декады). При их отсутствии возможно реализовать декады на счетчиках типа ИЕ4, ИЕ5 (рис. 4.44, а, б).
Рис. 4.44. Декады на ИМС: а) типа ИЕ4, б) ИЕ5
Временные графики работы декады на основе ИС типа ИЕ4, ИЕ5 представлены на рис. 4.44.
Рис. 4.44. Временные диаграммы работы декады
ИС позволяют наращивать разрядность счетчика и реализовывать как синхронный, так и асинхронный режимы работы счетчиков (рис. 4.45, 24.10).
Рис. 4.45. 12-разрядный асинхронный двоичный счетчик
При разработке схем следует учитывать, что максимальное время переключения синхронного счетчика определяется временем переключения одной ИС (если Q0 = Q1 = Q2 = Q3 = Q4 = Q5 = Q6 = Q7 = 1 все три ИС начинают переключаться одновременно), а в асинхронном счетчике суммой времен переключения ИС. Максимальное время переключения 12-разрядного счетчика в три раза больше времени переключения 4-разрядного.
Для построения синхронного счетчика в качестве примера используется микросхема К555ИЕ10.
Назначение входов ИС следующее:
- V1 – вход стробирования переноса;
- P1 – вход переноса;
- P2 – выход, на котором при условии, что счетчик находится в 15-м состоянии, формируется сигнал переноса в следующий счетчик;
- С – прямой динамический синхровход;
- R – инверсный статический вход обнуления;
- W – вход управления режимом работы счетчика.
Если W = 0, триггеры счетчика устанавливаются в состояние, определяемое входами D при поступлении синхроимпульса (по фронту).
Если W = 1 и V1 = P1 = 1, происходит счет количества синхроимпульсов.
Рис. 4.46. 12-разрядный синхронный двоичный счетчик
Специальные счетчики могут содержать входы изменения направления счета, они называются реверсивными. Реверсивные счетчики могут работать как в режиме сложения, так и в режиме вычитания. Для изменения режима работы необходимо подключать или прямой, или инверсный выход предыдущего триггера, входящего в счетчик, к Т-входу последующего.
Если за период времени T поступит К импульсов при работе счетчика в режиме суммирования и N импульсов при работе счетчика в режиме вычитания, то состояние счетчика будет равно K–N (при условии, что число импульсов K и N может однозначно подсчитываться счетчиком).
Число K–N может быть как положительным, так и отрицательным. При реализации устройств обработки часто необходимо знать знак числа, полученного при поступлении различного количества импульсов. Для этого необходимо образовать дополнительный выход – знаковый. Принцип построения знакового выхода будет рассмотрен после ознакомления со структурой реверсивных счетчиков.
Реверсивные счетчики разделяются на счетчики с общим входом cложения-вычитания "С" и с раздельными входами сложения "+1", вычитания "-1".
К реверсивным счетчикам с общим входом сложения - вычитания относятся счетчики типа ИЕ12, ИЕ13, ИЕ16, ИЕ17, а к реверсивным счетчикам с раздельным входом сложения - вычитания ИС типа ИЕ6, ИЕ7.Условные графические обозначения реверсивных счетчиков приведены на рис. 4.47, а, б, в, г.
Назначение входов счетчиков:
- D1 – D4 - двоичный код, подаваемый на эти входы, записывается в триггеры счетчика в режиме “установка”;
- W – вход управления работой счетчика: при W = 0 - установка триггеров счетчика в состояние, определяемое входами D; при W = 1 – счет входных импульсов;
- R – прямой вход обнуления, обнуление происходит при подаче на него «единицы»
- С – прямой динамический синхровход;
- «+1», «–1» – входы «+1» и «–1» служат для подачи счетных импульсов; «+1» – при суммировании; «–1» – при вычитании;
- «≥ 15» – на выходах переноса «15(9)» появляется “ноль”, если счетчик находится в состоянии 15(9) и поступит импульс на вход «+1»;
- «≤ 0» – на выходе переноса «< 0» появляется “ноль”, если счетчик находится в нулевом состоянии и поступит импульс на вход «–1»;
- P – выход переноса, Р = 1, когда на всех выходах счетчика уровень либо логической 1, либо логического нуля;
Рис. 4.47. Реверсивные счетчики: а) ИЕ6, б) ИЕ7, в) ИЕ12, г) ИЕ13
- PC – синхронный выход переноса, аналогичен выходу Р=1. Отличие в том, что Р = 1 появится только при С = 1;
- U – вход управления режимом работы счетчика, при U = 0 – режим суммирования, а при U = 1 – режим вычитания;
- E, RP – входы стробирования счета (E) и переноса (RP). При E = 1 блокируется поступление входных импульсов. При RP=1 блокируется выход переноса – Р = 0.
Счетчики типа ИЕ12, ИЕ13 – реверсивные счетчики с общим входом сложения/вычитания (U). Такие счетчики не имеют входа обнуления R, обнуление можно производить, подавая нулевые уровни на вход W и входы D1, D2, D4, D8.
Функциональная схема реверсивного счетчика с общим прямым входом сложения-вычитания представлена на рис. 4.48.
Рис. 4.48. Функциональная схема реверсивного счетчика с общим входом сложения/вычитания.
В такой схеме при U = 1 реализуется режим суммирования, так как на выходе цепочки ЛЭ «2И-2И-2ИЛИ», «И» сформируется логическая 1, если все триггеры, расположенные до нее, будут в единичном состоянии. Это вызовет переключение следующего триггера при подаче синхроимпульса. Например, состояние триггеров Q0 = 1, Q1 = 1, Q2 = 0. Все триггеры переключатся в противоположное состояние Q0 = 0, Q1 = 0, Q2 = 1, т.е. состояние счетчика изменилось с 3-го на 4-е.
При U = 0 переключение будет происходить, если все предыдущие триггеры находились в нулевом состоянии, что соответствует реализации режима вычитания. Для ИС типа ИЕ12, ИЕ13 вход сложения / вычитания инверсный.
ЛЭ 3 формирует сигнал переноса Р = 1, если в режиме суммирования все триггеры находятся в единичном состоянии и RP=0 , а также Р = 1 в режиме вычитания, если все триггеры находятся в нулевом состоянии и RP = 0. Эти два случая соответствуют переносу 1 в следующий разряд и заему 1.
ЛЭ 1, 2 реализуют параллельный перенос между триггерами. Максимальное время переключения равно сумме времен переключения ЛЭ "2И-2И-2ИЛИ", "И" и триггера.
Счетчики типа ИЕ6, ИЕ7 – реверсивные счетчики с раздельными входами «+1», «–1» и с синхронной предустановкой. При W = 1, R = 0 счетчик подсчитывает количество импульсов, поступающих на входы «+1» и «-1». При W = 0, R = 0 двоичный код со входов В по фронту импульса либо +1, либо –1 переписывается на выход.
Функциональная схема реверсивного счетчика с раздельными входами сложения - вычитания представлена на рис. 4.49. В этом случае состояние счетчика увеличивается на 1 с каждым импульсом, поступающим на вход «+1», и уменьшается на 1 с каждым импульсом, поступающим на вход «–1». При выполнении условий переключения импульс с входов «+1» или «–1» поступает на вход Т-триггера и вызывает его переключение. Импульсы должны быть короткими и нулевыми.
Рис. 4.49. Функциональная схема реверсивного счетчика с раздельными входами сложения / вычитания
Параллельный перенос реализуется сразу
в ЛЭ. Сигналы переноса
15 и заема
0 формируются раздельно. Длительность
импульсов переноса и заема определяется
соответственно длительностью импульсов,
поступающих на входы «+1» и «–1».
Для получения многоразрядных счетчиков на основе ИС типа ИЕ6, ИЕ7 (рис. 4.50) требуется объединить входы управления W каждой ИС, а также входы R. Выход переноса « 15» ( 9) предыдущей ИС соединить с входом «+1» последующей, а выход заема « 0» – со входом «–1».
При построении многоразрядных счетчиков на основе ИС типа ИЕ12, ИЕ13, ИЕ16, ИЕ17 (рис. 4.51) необходимо объединить соответствующие входы управления ИС, а выход переноса предыдущей ИС соединить с синхровходом С последующей.
Рис. 4.50. 8-разрядный реверсивный счетчик
Рис. 4.51. 8-разрядный реверсивный счетчик
Для счетчиков типа ИЕ12, ИЕ13 знаковый выход строится согласно рис. 4.52.
Число поступающих импульсов фиксируется счетчиком в дополнительном коде, т.е. QЗНАК = 1, если число отрицательное, и равно 0, если число положительное. Знаковый разряд фиксирует переход нулевого состояния в положительную или отрицательную сторону. При поступлении импульса на вход С, если счетчик находится в нулевом состоянии (Р = 1), U = 1 (режим сложения), на выходе ЛЭ DD2 появляется уровень логического 0, который устанавливает QЗНАК = 1 и QЗНАК= 0. При U = 0 аналогично произойдет установка QЗНАК = 1.
Рис. 4.52. Реверсивный счетчик со знаковым выходом
Наличие установочных входов D1, D2, D4, D8 позволяет реализовать счетчики с программируемым коэффициентом пересчета (рис. 4.53).
Коэффициент пересчета М задается согласно выражениям:
М = а + 2b + 4c + 8d + 16(e + 2f + 4g + 8h) для ИС типа ИЕ7, ИЕ13, ИЕ17;
М = а + 2b + 4c + 8d + 10(e + 2f + 4g + 8h) для ИС типа ИЕ6, ИЕ12, ИЕ16 путем выбора значений a, b, c, d, e, f, g, h, которые могут принимать значения 0 и 1. Полученная комбинация нулей и единиц подается на входы D1, D2, D4, D8.
Счетчики переводятся в режим вычитания. Выход переноса соединяется с входом установки исходного состояния по входам D.
Схемы работают следующим образом: когда
триггеры счетчиков находятся в нулевом
состоянии и поступает импульс с
генератора, происходит установка
исходного состояния по входам D.
После этого исходное состояние с каждым
импульсом уменьшается на единицу. Через
(М-1) входной импульс счетчик снова
примет нулевое состояние, а М-ый
импульс произведет установку исходного
состояния. Период повторения выходных
импульсов равен
,
где T1 – период повторения входных
импульсов.
Рис. 4.53. Счетчик с программируемым коэффициентом деления
Генератор линейного напряжения на основе реверсивных счетчиков (рис. 4.54) вырабатывает возрастающее напряжение при подключении генератора прямоугольных импульсов (ГИ) к входу «+1» и убывающее напряжение – к входу «–1».
В процессе работы двоичный код на выходах счетчика будет меняться по циклу от 0 до 15 (при подключении к входу «+1») или от 15 до 0 (при подключении к входу «–1»). При этом напряжение на выходе ЦАП будет изменяться скачками от U0ВЫХ до U1ВЫХ. Величина скачка dU определяется разрядностью счетчика.
Длительность линейного напряжения равна T = 2nT1, где T1 – период повторения входных импульсов.
Рис. 4.54. Генератор линейно изменяющегося напряжения
Если ступенчатое изменение напряжения не устраивает разработчика, то необходимо на выходе ЦАП поставить фильтр низких частот, который произведет сглаживание ступенек.
Счетчики-делители формируют на выходе один из каждых N входных импульсов. В интегральном исполнении счетчики-делители представлены ИС двух типов (ИЕ1 и ИЕ8). Однако, все счетчики с выходом переполнения могут быть использованы как делители.
Рис. 4.55. Принципиальная схема и временные диаграммы работы счетчика-делителя типа ИЕ1
ИС типа ИЕ1 – делитель на 10. Установка ее триггеров в нулевое состояние осуществляется одновременной подачей высокого уровня на входы 1 и 2, объединенные схемой "И". Счетные импульсы подаются на вход 8 или 9 (при этом на другом входе должен быть высокий уровень) или одновременно на оба входа. При этом на выходе ИС через каждые 10 входных импульсов формируются отрицательные импульсы такой же длительности, что и входные импульсы.
Счетчик Quartus II Lpm-counter (Рис. 4.56) является мегафункцией и следовательно изменяет свою конфигугацию. Он может использоваться в любом из выше описанных функциональных качествах.
Рис. 4.56. Счетчик Quartus II Lpm-counter
В таблице 4.2 описаны входы и выходы счетчика Lpm-counter, многие из них могут устанвливаться и удаляться при настройке. Кроме того, в правом верхнем углу на обозначении видны настройки параметров, например, счет по модулю 10 – modulus 10. Параметры настраиваются в процессе диалога при извлечении счетчика из библиотеки Quartus II.
Таблица 4.2а
Входы
Имя входа |
Функциональная необходимость |
Описание |
Коментарий |
data[] |
Нет |
Входная шина данных |
Число разрядов шины равно LPM_WIDTH |
clock |
Да |
Вход синхронизации записи по фронту импульса |
Для счетчика вход синхронизации является также тактовым или счетным входом. Фронт импульса на входе изменяет состояние счетчика на 1. |
clk_en |
Нет |
Сигнал разрешения тактирования по входу clock |
При отсутствии входа clk_en вход clock включен (иначе и быть не может !) |
cnt_en |
Нет |
Count Enable – счет разрешен |
При отсутствии входа cnt_en счет включен. Если отключить clk_en =0 входы sload, sset, sclr не будут действовать, а cnt_en=0 не отключает эти входы |
updown |
Нет |
Управляет направлением счета 1 – сложение, 0 – вычитание |
Параметр LPM_DIRECTION не должен быть использован, если используется вход updown |
cin |
Нет |
Вход переноса для подключения счетчика младших разрядов |
При отсутствии входа cin перенос равен 1, т.е. счет разрешен. При cin=0 счет запрешается. |
aclr |
Нет |
Асинхронный сброс счетчика в 0, если aclr=1 |
Если используются aclr и sclr, то aclr «перебивает» sclr |
aset |
Нет |
Асинхронная загрузка счетчика на LPM_AVALUE, если aset =1 |
Если используются aclr и aset, то aclr «перебивает» aset. Если LPM_AVALUE=<none> в счетчик записывается 1 во все разряды |
aload |
Нет |
Асинхронная загрузка счетчика на значение c шины data[], если aload =1 |
Если aload используется, то должна использоваться и шина data[] |
sclr |
Нет |
Cинхронный сброс счетчика в 0, если sclr=1 |
Если используются aclr и sclr, то aclr «перебивает» sclr |
sset |
Нет |
Cинхронная загрузка счетчика на LPM_AVALUE, если sset =1 |
Если используются aclr и aset, то aclr «перебивает» aset. Если LPM_AVALUE=<none> в счетчик записывается 1 во все разряды |
sload |
Нет |
Cинхронная загрузка счетчика на значение c шины data[], если sload =1 |
Если sload используется, то должна использоваться и шина data[] |
Таблица 4.2б
Выходы
Имя входа |
Функциональная необходимость |
Описание |
Коментарий |
q[] |
Да |
Выходная шина данных |
Число разрядов шины равно LPM_WIDTH |
eq[15..0] |
Нет |
Дешифратор шины q[] |
Двоичный дешифратор с активной 1. Если q[]=0, то eq[0]=1, остальные eq равны 0. Если q[]=1, то eq[1]=1. Если q[]=2, то eq[2]=1 и т.д. Если q[]>15, то eq[15..0]=0. Число разрядов при программировании ПЛИС в графическом редакторе не меняется |
cout |
Нет |
Выход переноса. |
Появляется при переполнении счетчика во время прямого и обратного счета. Может использоваться для подключения счетчика старших разрядов |
