ЦУМ / lbm1_20
.pdfФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра информационных радиосистем
ПРОЕКТИРОВАНИЕ АРИФМЕТИЧЕСКИХ УСТРОЙСТВ
ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ
СИСПОЛЬЗОВАНИЕМ САПР QUARTUS II
ИЕЕ БИБЛИОТЕКИ МЕГАФУНКЦИЙ
Методические указания к лабораторной работе № 20 по дисциплинам
"Цифровые устройства и микропроцессоры" (часть 1), "Вычислительная техника и информационные технологии"
для студентов специальностей 071900, 200700, 200800, 200900,201100
всех форм обучения
Нижний Новгород 2005
Составители: А.Д.Плужников, Н.Н.Потапов, А.А.Цветков.
УДК 621.374 (075.8)
Проектирование арифметических устройств цифровой обработки сигналов с использованием САПР Quartus II и ее библиотеки мегафункций: метод.
указания к лабораторной работе № 20 по дисциплинам "Цифровые устройства и микропроцессоры" (часть 1), "Вычислительная техника и информационные технологии" для студентов специальностей 071900, 200700, 200800, 200900, 201100 всех форм обучения / НГТУ; Сост.: А.Д.Плужников, Н.Н.Потапов, А.А.Цветков. Н.Новгород, 2005. 23 с.
Изложены краткие сведения о построении арифметических цифровых уз- лов (устройств), их применении в аппаратуре цифровой обработки сигналов. Рассмотрены вопросы использования библиотеки мегафункций системы авто- матизированного проектирования Quartus II. Сформулированы варианты зада- ния к лабораторной работе, требования к отчету, вопросы для самопроверки. Рекомендована дополнительная литература.
Научный редактор А.Г.Рындык
Редактор О.В.Пугина
Подп. к печ. 23.09.2005. Формат 60х841/16. Бумага |
Печать офсетная. |
||
Печ. л. 1,5. Уч.-изд. л. 1,4. Тираж 500. Заказ |
|
|
|
|
Нижегородский государственный технический университет. |
|
|
Типография НГТУ. 603600, Н.Новгород, ул. Минина, 24. |
|
|
|
2
1. Цель работы и подготовка к работе
Целью работы является приобретение начальных сведений о построении арифметических цифровых узлов (устройств), а также изучение некоторых воз- можностей использования библиотеки мегафункций системы автоматизирован- ного проектирования (САПР) Quartus II на примере проектирования фильтра цифровой обработки сигналов при реализации такого фильтра в структуре про- граммируемой логической интегральной схемы (ПЛИС).
Подготовка к работе осуществляется до прихода в лабораторию и включа- ет в себя изучение данных методических указаний и (если студенту этого не достаточно для прояснения изучаемого материала) рекомендованной в них ли- тературы, подготовку ответов на приводимые вопросы для самопроверки, со- ставление схемы проектируемого устройства (см. 5.2) и проработку контроль- ного примера для нее (см. 5.2 и 6.3) в соответствии со своим вариантом задания
(см. 5.1).
2.Краткие сведения об узлах арифметических устройств
2.1.Сумматоры
Сумматоры выполняют арифметическое (в противоположность логическо- му) сложение и вычитание чисел. Они входят в состав и специализированных аппаратных средств, и арифметико-логических устройств (АЛУ) – основных компонентов всех процессоров.
Входные сигналы, с помощью которых представляются числа для осуществ- ления арифметических операций над ними, и сами эти числа в дальнейшем на- зываем операндами. Если указанные сигналы представляют собой последова- тельный код, то операнды называются последовательными, а если параллель- ный код – параллельными. Сумматоры для последовательных операндов часто называют последовательными сумматорами, а для параллельных – параллель- ными. Сумматоры любого типа строятся на основе одноразрядного сумматора (элементарной суммирующей ячейки).
Одноразрядные и параллельные сумматоры реализуются как комбинаци- онные цепи. Последовательные сумматоры являются автоматами с памятью.
|
a |
SM |
s |
|
|
|
|||
|
i |
|
i |
|
|
bi |
|
|
|
|
|
|
|
|
|
ci-1 |
|
ci |
|
|
|
Рис. 1
2.1.1. Одноразрядный сумматор
Одноразрядный сумматор имеет три входа (рис. 1). На два из них (ai и bi ) подаются одноразрядные операн-
ды, т. е. некоторые i -е разряды двух складываемых мно- горазрядных двоичных чисел, а на третий (сi−1) – сигнал
переноса, полученный при сложении предыдущих (младших), т. е. (i −1) -х, разрядов. На выходе si сумма-
3
тора получается i -й разряд результата арифметического сложения величин ai , bi и сi−1, а на выходе ci – сигнал переноса, возникающего при этом сложении.
Значит, таблица истинности для одноразрядного сумматора имеет вид табл. 1.
Аналитические выражения для сигналов суммы и переноса имеют следующую форму:
si = ai bici−1 + aibi ci−1 + ai bi ci−1 + aibici−1,
ci = aibici−1 + ai bici−1 + aibi ci−1 + aibici−1.
Выражение для переноса можно упростить, учитывая, что ci =1, если ло-
гическая единица поступает хотя бы на два из трех входов сумматора: ci = aibi + aici−1 + bici−1.
Схема сумматора, соответствующая этим соотношениям, показана на рис. 2.
ai |
& |
1 |
|
|
|
Таблица 1 |
||
bi |
|
|
|
|
|
|||
|
|
ai |
bi ci−1 si |
ci |
||||
|
& |
ci |
||||||
ci−1 |
0 |
0 |
0 |
0 |
0 |
|||
|
||||||||
|
& |
|
0 |
0 |
1 |
1 |
0 |
|
|
& |
1 |
0 |
1 |
0 |
1 |
0 |
|
|
0 |
1 |
1 |
0 |
1 |
|||
|
|
|
||||||
|
|
|
1 |
0 |
0 |
1 |
0 |
|
|
& |
|
1 |
0 |
1 |
0 |
1 |
|
|
|
si |
1 |
1 |
0 |
0 |
1 |
|
|
& |
1 |
1 |
1 |
1 |
1 |
||
|
|
|||||||
|
& |
|
|
|
|
|
|
|
|
Рис. 2 |
|
|
|
|
|
|
|
2.1.2. Последовательный сумматор
Сумматор для последовательных операндов содержит один одноразрядный сумматор, обрабатывающий поочередно разряды операндов, начиная с млад- ших разрядов. Т. е. в каждом такте (периоде некоторой последовательности синхроимпульсов) суммируются соответствующие два разряда слагаемых. Так, вначале при сложении разрядов a0 и b0 , на двух выходах одноразрядного
4
сумматора появятся младший разряд результата и сигнал переноса, который необходимо сохранить в течение такта. В следующем такте этот сигнал перено- са должен складываться с разрядами a1 и b1, которые к данному времени по-
ступят на входы одноразрядного сумматора. И т. д. Тогда упрощенную схему сумматора для последовательных операндов можно представить, как показано на рис. 3. Кроме одноразрядного сумматора, она содержит D-триггер для хра- нения сигнала переноса, тактируемый фронтами положительных синхроим- пульсов clk .
На рис. 4 показаны временные диаграммы для схемы (рис. 3), соответст- вующие вычислению суммы 101 + 110 = 1011 или (в десятичной системе) 5 + 6 =11. Согласно данному примеру сигнал переноса, возникающий при сло- жении старших (n −1)-х разрядов n -разрядных операндов, является старшим
n-м разрядом (n + 1) -разрядного результата сложения. Аналогичное замечание
можно отнести и к другим рассматриваемым нами сумматорам.
Реальный последовательный сумматор должен дополнительно содержать три сдвиговых регистра, тактируемых импульсами clk : от двух регистров на
входы одноразрядного сумматора должны последовательно поступать разряды операндов, а в третий регистр будут последовательно записываться разряды ре- зультата суммирования. Кроме того, необходимо предусмотреть сброс триггера перед выполнением суммирования очередной пары операндов.
|
ai |
|
ai |
SM |
si |
|
si |
||||
|
bi |
|
|
||||||||
|
|
bi |
|
|
|
|
ci |
||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
ci−1 |
|
ci |
|
|
|
||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
T |
|
|
|
|
|
|
|
clk |
|
|
|
|
|
|
|
||
|
|
|
C |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clk |
|
|
|
|
|
|
|
|||
ai |
|
a0 |
a1 |
a2 |
|
|
t |
|||
|
|
|
t |
|||||||
bi |
|
b0 |
b1 |
b2 |
|
|
||||
|
|
|
t |
|||||||
сi |
|
c0 |
c1 |
c2 |
c3 |
|||||
|
t |
|||||||||
c |
i |
− |
|
c0 |
c |
1 |
c |
2 |
||
|
|
|||||||||
|
1 |
|
|
|
|
t |
||||
si |
s0 |
s1 |
s2 |
s3 |
||||||
|
||||||||||
t
Рис. 3 |
Рис. 4 |
Недостатком такого сумматора является большое время суммирования (n тактов для n -разрядных операндов). Достоинства: возможность последова- тельной (потоковой) обработки операндов и небольшие аппаратные затраты.
2.1.3. Параллельный сумматор с последовательным переносом
Данный сумматор строится как цепочка одноразрядных сумматоров, со- единенных последовательно по цепям переноса (рис. 5). На входы
5
a0, a1,K, an−1 и b0, b1,K, bn−1 подаются в параллельном коде соответст- вующие разряды операндов An и Bn ( n -разрядных двоичных чисел), а на вход
cin – сигнал переноса. Подача сигнала переноса на вход cin может потребо- ваться при наращивании разрядности сумматора (разрядности суммируемых операндов). n -разрядная сумма операндов Sn выдается на выходы
s0, s1,K, sn−1, а возникающий при суммировании сигнал переноса – на выход
cout .
Здесь время суммирования тоже пропорционально разрядности сумматора. Однако, в отличие от последовательного сумматора, при суммировании n - разрядных операндов оно превышает в n раз не длительность такта (парал- лельный сумматор с последовательным переносом не является тактируемым), а время задержки сигналов одноразрядным сумматором.
an−1 bn−1
a1 b1
a0 |
|
ai |
SM |
si |
|
|
|
|
|
ai |
SM |
si |
|
|
|
|
|
|
ai |
SM |
si |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
b0 |
|
b |
|
|
|
|
|
|
|
b |
|
|
|
|
|
|
|
|
b |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
c |
i |
|
c |
|
|
|
|
|
c |
i |
|
ci |
|
|
|
|
|
|
c |
i |
|
ci |
|
|
cout |
cin |
|
− |
|
|
|
|
|
|
− |
|
|
|
|
|
|
|
− |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
i |
1 |
|
i |
|
|
|
|
|
i |
1 |
|
|
|
|
|
|
|
i |
1 |
|
|
|
|
|||
|
|
|
|
|
|
s0 |
|
|
|
|
|
|
|
s1 |
|
|
|
|
|
|
|
|
sn−1 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Рис. 5
2.1.4. Сумматор с условным переносом
Один из вариантов схемы построения сумматора с условным переносом показан на рис. 6. Она содержит три многоразрядных сумматора, которые мо- гут быть построены, например, одним из описанных выше способов. Нижний из трех сумматоров (рис. 6) осуществляет сложение младших полей Aмл и
Bмл (групп младших разрядов) операндов An и Bn , вычисляя соответствую- щие сумму Sмл и сигнал переноса cмл . Два других сумматора складывают старшие поля ( Aст и Bст ) операндов, вычисляя сумму Sст и сигнал переноса cout : один из них при cмл =1, а другой при cмл = 0 . Причем все три суммато-
ра (рис. 6) работают одновременно. После получения результата суммирования
младших полей становится известным фактическое значение возникающего при этом сигнала переноса cмл . Данный сигнал переноса подается на адресные
6
входы двух мультиплексоров (один из которых является шинным) для выбора одного из двух результатов вычислений, выполненных двумя сумматорами старших полей. Одновременное выполнение суммирования младших и старших полей операндов позволяет уменьшить время суммирования.
Aст |
A |
SM |
S |
d0 |
MUX |
|
Bст |
B |
|
|
d1 |
2 : 1 |
cout |
|
|
|
||||
|
c − |
c |
a |
|
|
|
0 |
i |
1 |
i |
|
|
|
|
|
|
|
|
|
|
|
A |
SM |
S |
D0 |
MUX |
Sст |
|
B |
|
|
|||
|
|
|
D1 |
2 : 1 |
||
|
ci−1 |
ci |
|
|
||
1 |
a |
|
Sn |
|||
Aмл |
A |
SM |
S |
|
|
Sмл |
Bмл |
B |
|
|
cмл |
|
|
cin |
ci−1 |
ci |
|
|
||
|
|
|
|
Рис. 6 |
|
|
|
|
|
2.2. Умножители |
|
|
|
Рассмотрим структуру математических выражений, описывающих опера- |
||||||
цию умножения. |
|
|
|
|
|
|
Пусть имеются два целых положительных двоичных числа без знаков (т. е. |
||||||
без знаковых разрядов): Am = am−1 am−2Ka0 и Bn = bn−1bn−2Kb0 . Их пе- |
||||||
ремножение выполняется по известной схеме "умножения столбиком". Если числа четырехразрядные, т. е. m = n = 4, то эта схема принимает следующий-
вид:
|
|
|
|
× |
a3 |
a2 |
a1 |
a0 |
|
|
|
|
|
b3 |
b2 |
b1 |
b0 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
a3b0 a2b0 |
a1b0 |
a0b0 |
|
|
|
|
|
|
a3b1 |
a2b1 |
a1b1 |
a0b1 |
|
|
|
|
|
+ a3b2 a2b2 a1b2 |
a0b2 |
|
|
|
||
|
|
a3b3 a2b3 |
a1b3 |
a0b3 |
|
|
|
|
|
p7 |
p6 |
p5 |
p4 |
p3 |
p2 |
p1 |
p0 |
|
|
7
Произведение |
выражается |
(m + n) -разрядным |
числом |
Pm+n = pm+n−1 pm+n−2K p0. |
|
|
|
Члены вида aib j |
(частичные произведения), где i = 0, 1, K, |
(m −1) и |
|
j = 0, 1, K, (n −1) , можно вычислить одновременно с помощью достаточного
количества логических элементов И (конъюнкторов). Тогда время перемноже- ния в основном будет определяться временем суммирования частичных произ- ведений в (столбцах). Способ суммирования определяет тип умножителя. Ог- раничимся рассмотрением двух типов.
Заметим, что при умножении чисел со знаками (в прямых кодах) дополни- тельно осуществляется определение знакового разряда результата путем сум- мирования по модулю 2 знаковых разрядов сомножителей.
2.2.1. Матричные умножители
Матричные умножители являются комбинационными цепями и реализуют такой способ суммирования частичных произведений, который определяется упомянутой выше схемой "умножения столбиком". При этом структура умно- жителя для четырехразрядных операндов (без набора элементов, вычисляющих частичные произведения) включает в себя несколько одноразрядных суммато- ров с обозначением (рис. 7, а), где c – выход сигнала переноса, и имеет вид
(рис. 7, б).
|
|
|
|
|
входы |
|
|
|
|
|
|
a3b0 |
0 |
a2b0 |
0 |
a1b0 |
0 |
a0b0 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
SM |
|
|
|
|
|
a3b1 |
|
|
|
SM |
a2b |
1 SM |
a1b |
1 SM |
a0b1 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
c |
s |
|
|
|
|
|
|
|
a2b2 |
|
|
a1b2 |
|
|
a0b2 |
|
|
|||||||
|
|
а) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
a3b 2 |
SM |
|
SM |
SM |
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
a 0b3 |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
a3b3 |
|
SM |
a 2b |
3 SM |
a1b |
3 SM |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
SM |
|
SM |
SM |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
p7 p6 |
p5 |
p4 |
p3 |
p2 |
p1 |
p 0 |
б)
Рис. 7
8
При классификации матричные умножители подразделяют на множитель- ные блоки (МБ) и множительно-суммирующие блоки (МСБ). Причем умножи- тель (рис. 7, б) представляет собой МБ. В отличие от него, МСБ реализует опе- рацию Pm+n = Am× Bn + Cm + Dn , т. е. прибавляет к произведению два сла-
гаемых: одно разрядности m , совпадающей с разрядностью множимого, другое разрядности n , совпадающей с разрядностью множителя. Реализация такого
прибавления обеспечивает возможность наращивания размерности умножителя
(см. с. 95 в [1]).
Достоинством матричных умножителей является сравнительно малое вре- мя перемножения. Недостаток – аппаратная сложность (большое количество конъюнкторов и сумматоров). При построении МБ для чисел равной разрядно-
сти n требуется n2 конъюнкторов и n(n −1) одноразрядных сумматоров.
2.2.2. Масштабный умножитель
Масштабный умножитель является автоматом с памятью и реализует суммирование частичных произведений по следующему алгоритму. Один из операндов представляют в параллельном коде, а второй – в последовательном. Все биты параллельного операнда умножаются логически на старший бит по- следовательного операнда. Результат сохраняется в параллельном регистре. За- тем параллельный операнд умножается на второй (соседний со старшим) бит последовательного и результат умножения складывается с содержимым упомя- нутого регистра, сдвинутым по разрядной сетке на один бит влево. Процесс по- вторяется, пока не будут умножены все биты параллельного операнда на все биты последовательного. Рассмотрим, например, умножение двух четырехраз- рядных двоичных чисел 1010 ×1100 =1111000 или в десятичной системе 10 ×12 =120 . Пусть 10 будет последовательным операндом, а 12 – параллель- ным. В этом случае
1 1 0 0
0 0 0 0 + 1 1 0 0
0 0 0 0
1 1 1 1 0 0 0
Умножая 1100 на старший бит числа 1010, получим первую строку. Сдвиг этой строки влево эквивалентен сдвигу вправо последующих строк – результа- тов умножений на другие биты числа 1010. После выполнения этих умножений суммируем все строки с учетом сдвигов.
Схема описанного умножителя показана на рис. 8. Здесь Am – параллель- ный операнд, b j – очередной бит последовательного операнда Bn , Pm+n – ре-
зультат перемножения. Цепи синхронизации (тактирования) не показаны. Блок сдвига, изображенный штриховой линией, представляет собой определенное соединение выходов параллельного регистра RG со входами сумматора, реали-
9
зующее упомянутые выше сдвиги по разрядной сетке при суммировании. Для выполнения умножения чисел потребуется n тактов. Сумматор и регистр в схеме (рис. 8) должны быть (m + n) -разрядными. В итоге для реализации ум-
ножителя (рис. 8) требуются значительно меньшие аппаратные затраты по сравнению со схемой (рис. 7), однако время перемножения увеличивается.
am−1
&
|
|
|
|
|
|
|
|
|
|
|
|
<< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Am |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
a1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
A |
SM |
S |
|
|
|
RG |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
a0 |
|
|
|
|
|
|
|
|
|
|
|
Pm+n |
||||
|
|
& |
|
|
|
B |
|
|
|
|
|
|
|||||
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
bj |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 8
3. Краткие сведения о цифровой фильтрации сигналов
Рассмотренные арифметические устройства (сумматоры и умножители) широко применяются в аппаратуре цифровой обработки (фильтрации) сигна- лов.
3.1. Понятие о цифровых фильтрах
Цифровая фильтрация (цифровая обработка) сигналов предполагает их об- работку с помощью микропроцессорных систем или с помощью цифровых уз- лов, реализованных, например, на базе ПЛИС. Для этого сигналы должны быть представлены в цифровой форме, т. е. в виде последовательности чисел – по- следовательности отсчетов.
Цифровые фильтры можно подразделить на:
−рекурсивные фильтры;
−нерекурсивные (трансверсальные) фильтры.
В данной лабораторной работе изучается возможная реализация трансвер- сального фильтра. Алгоритм функционирования такого фильтра соответствует схеме (рис. 9). В ней ЭЗ – элемент задержки на один такт синхронизации, осу- ществляемой в любом реальном цифровом фильтре, а треугольниками обозна- чены умножители на весовые коэффициенты w1, w 2, ... , wn .
10
