Вы находитесь на странице: 1из 151

АППАРАТНЫЕ СРЕДСТВА

ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ

Часть 2

Лекции для магистров направления 210400.68 «Радиотехника» магистерская программа


«Системы цифровой обработки сигналов в радиолокации, связи и управлении»

1
Лекции
Лекции «Аппаратные
«Аппаратные средства
средства ЦОС» Copyright ©
ЦОС» Copyright ©Кузин
Кузин А.А.
А.А. 2013-14
2013-14
Литература
1. Справочник по радиоэлектронным системам. В 2-х томах. Т.1. Захаров В.Н., Кривицкий Б.Х., Мамаев Н.С. и др.; Под ред. Б.Х.
Кривицкого – М.: Энергия, 1979 –352 c., ил.
2. Miles Murdocca PRINCIPLES OF COMPUTER ARCHITECTURE An Integrated Approach http://www.cs.rutgers.edu/~murdocca/
3. Сверхбольшие интегральные схемы и современная обработка сигналов: Пер. с англ./Под ред. С. Гуна, Х. Уайтхауса, Т.
Кайлата. – М.: Радио и связь, 1989.– 472 с.
4. Труды института инженеров по электротехнике и радиоэлектронике. Тематический выпуск ЦИФРОВАЯ ОБРАБОТКА
СИГНАЛОВ. ТИИЭР т. 63, №4 апрель 1975. – М.: Мир, 1975 –195 с.
5. Steven W. Smith The Scientist and Engineer's Guide to Digital Signal Processing, California Technical Publishing, San Diego,
California. 1999.
6. Оппенгейм А.В., Шафер Р.В. Цифровая обработка сигналов: Пер. с англ./ Под ред. С.Я.Шаца.– М.: Связь, 1979.– 416с.
7. Хемминг Р.В. Цифровые фильтры: Пер. с англ./ Под ред. А.М.Трахтмана. – М.: Сов. радио, 1980.– 224 с., ил.
8. Сергиенко А.Б. Цифровая обработка сигналов: – СПб.: Питер, 2002.–608с.:ил.
9. Стешенко В. Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС. Chip News,1999, №8–10, 2000, № 1, 3–5.
10. Стешенко В. Б. Школа схемотехнического проектирования устройств обработки сигналов. Компоненты и технологии, № 3–6,
2000
11. http://www.andraka.com/files/crdcsrvy.pdf
12. Application Note 73 (Implementing FIR Filters in FLEX Device) v.1.01. Altera Corporation, 1998
13. LogiCore Digital Down Converter v1.0. Xilinx Inc., 2002
14. LogiCore Cascaded Integrator-Comb (CIC) Filter v2.0. Xilinx Inc., 2001
15. LogiCore Distributed Arithmetic FIR Filter v7.0. Xilinx Inc., 2002
16. LogiCore MAC FIR v2.0. Xilinx Inc., 2002
17. LogiCore CORDIC v1.1. Xilinx Inc., 2002
18. AD6620. 65 MSPS Digital Receive Signal Processor. Analog Devices, Inc., 1998
19. GC4016 Multi-Standard Quad DDC Chip Data Sheet. Rev.1.0. Graychip, Inc., 2001
20. CORDIC Core Specification. Rev.0.3 http://www.opencores.org, 2001
21. A Technical Tutorial on Digital Signal Syntesis. Analog Devices, Inc. 1999
22. High Speed Design Techniques. Section 6 in ANALOG DEVICES TECHNICAL REFERENCE BOOKS. Analog Devices, Inc. 1996
23. А.И.Солонина, Д.А.Улахович, С.М.Арбузов, Е.Б.Соловьева. Основы цифровой обработки сигналов. СПб, БХВ-Петербург, 2005

2
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Программируемые логические
интегральные схемы (ПЛИС)

Структура и особенности применения

3
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Система цифровой обработки
Частота дискретизации
100..200 МГц 10..20 МГц 1..2 МГц

Аналоговая часть

потребители / источники
аналоговые системы

АЦП
АЦП Специализиро-
Специализиро- Цифровой
Цифровой

информации
Универсальная
Универсальная
ванный
ванный сигнальный
сигнальный управляющая
управляющая
вычислитель
вычислитель процессор
процессор ЭВМ
ЭВМ
ЦАП
ЦАП СВ
СВ ЦСП
ЦСП

управление

106..107 MOPS до 104 MOPS ?


Производительность обработки

Для
Для реализации
реализации СВ СВ оптимально
оптимально использование
использование микросхем
микросхем программируемой
программируемой логики
логики или
или ПЛИС
ПЛИС
(программируемые
(программируемые логические интегральные схемы). Привлекательность данной технологии заключается вв
логические интегральные схемы). Привлекательность данной технологии заключается
предоставляемой
предоставляемой конечному
конечному пользователю
пользователю возможности
возможности быстрого
быстрого создания
создания цифровых
цифровых устройств
устройств сс произвольной
произвольной
внутренней
внутренней структурой. В ПЛИС используются соединения, коммутируемые программируемыми ключами. Для
структурой. В ПЛИС используются соединения, коммутируемые программируемыми ключами. Для задания
задания
этих соединений в ПЛИС существует теневая (конфигурационная) память, хранящая таблицу соединений.
этих соединений в ПЛИС существует теневая (конфигурационная) память, хранящая таблицу соединений.
ВВ настоящее
настоящеевремя
время наиболее
наиболее распространенные
распространенные серии
серии ПЛИС
ПЛИСимеют
имеют следующую
следующую архитектуру:
архитектуру:
•• CPLD
CPLD (Complex Programmable Logic Device) устройства, использующие
(Complex Programmable Logic Device) устройства, использующие для для хранения
хранения конфигурации
конфигурации
энергонезависимую память (Flash или EEPROM);
энергонезависимую память (Flash или EEPROM);
•• FPGA
FPGA (Field
(Field Programmable
Programmable GateGate Array)
Array) устройства,
устройства, использующие
использующие для
для хранения
хранения конфигурации
конфигурации энергозависимую
энергозависимую
память, которая требует инициализации после включения питания.
память, которая требует инициализации после включения питания.

4
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Общая структура CPLD

GCLK1
(глобальные)
выделенные

управления

GCLK2
сигналы

GOE
GCLR

Логический
Логический Логический
Логический

ввода/вывода
ввода/вывода

блок блок

ввода/вывода
ввода/вывода

блок 36 36 блок
ЛБ ЛБ

соединений
ЛБ ЛБ

программируемых соединений
16
16 макроячеек 16
16 макроячеек
Блок

Блок
БВВ

БВВ
макроячеек макроячеек
Блок

Блок
БВВ

БВВ
внешние двунаправленные контакты

внешние двунаправленные контакты


16 16

2..16 2..16

Матрица программируемых
МПС
МПС
Логический
Логический Логический
Логический

ввода/вывода
ввода/вывода

блок блок

ввода/вывода
ввода/вывода

блок 36 36 блок
ЛБ
ЛБ ЛБ
ЛБ
Матрица

16
16 макроячеек 16
16 макроячеек
Блок

Блок
БВВ

БВВ
макроячеек макроячеек
Блок

Блок
БВВ

БВВ
16 16

2..16 2..16

5
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Макроячейка CPLD

матрица И

программируемый
программи- мультиплексор
руемые программируемый выход
перемычки инвертор макроячейки
на МПС
=1
=1 MX
MX
ИЛИ
ИЛИ D/T Q
C

x0 x0 x 1 x1 x35 x35

x0 x1 x35 GCLK

входы макроячейки от МПС GCLR

6
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структура CPLD (Timing Closure Floorplan)

7
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Блок
Блок Блок
Блок Блок
Блок

сигналы
ввода/вывода ввода/вывода ввода/вывода

GOE
ввода/вывода ввода/вывода ввода/вывода

GCLR
GCLKn
GCLK0

выделенные
(глобальные)
БВВ
БВВ БВВ
БВВ БВВ
БВВ

Логический
Логический Логический
Логический Логический
Логический
блок
блок блок
блок блок
блок
ЛБ
ЛБ ЛБ
ЛБ ЛБ
ЛБ

Блок
Блок

БВВ
БВВ

Блок
Блок

БВВ
БВВ

ввода/вывода
ввода/вывода

ввода/вывода
ввода/вывода

Логический
Логический Логический
Логический Логический
Логический
блок
блок блок
блок блок
блок
ЛБ
ЛБ ЛБ
ЛБ ЛБ
ЛБ

Блок
Блок

БВВ
БВВ

Блок
Блок

БВВ
БВВ

Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14


ввода/вывода
ввода/вывода

ввода/вывода
ввода/вывода

Блок
Блок

БВВ
БВВ

Блок
Блок

БВВ
БВВ
Общая структура FPGA

ввода/вывода
ввода/вывода

ввода/вывода
ввода/вывода

Логический
Логический Логический
Логический Логический
Логический
блок
блок блок
блок блок
блок
ЛБ
ЛБ ЛБ
ЛБ ЛБ
ЛБ
Блок
Блок

БВВ
БВВ

Блок
Блок

БВВ
БВВ

ввода/вывода
ввода/вывода

ввода/вывода
ввода/вывода

Блок
Блок Блок
Блок Блок
Блок
ввода/вывода
ввода/вывода ввода/вывода
ввода/вывода ввода/вывода
ввода/вывода
БВВ
БВВ БВВ
БВВ БВВ
БВВ
контакты

8
двунаправленные
Логический элемент FPGA

вход переноса вход каскадирования


вход каскадирования от предыдущего ЛЭ от предыдущего ЛЭ
от предыдущего ЛЭ (CARRY IN) (CASCADE IN)
(CASCADE IN)
входы ЛЭ от внутренних

PRN PRN
межсоединений ЛБ

X0

входы ЛЭ от внутренних
MX
MX MX
MX
ИЛИ

ИЛИ
И // ИЛИ

И // ИЛИ
межсоединений ЛБ
X1 S S
выход X0 выход
X2 LUT
LUT D Q ЛЭ LUT
LUT D Q ЛЭ
C C
X3 X1
И

И
R R
CLK
LUT
LUT
CLRN
CLK
выход CLRN
каскадирования на
выход переноса выход
следующий ЛЭ
на следующий ЛЭ каскадирования на
(CASCADE OUT)
(CARRY OUT) следующий ЛЭ
(CASCADE OUT)

Нормальный режим Арифметический режим

9
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Общая структура FPGA (Chip Planner)

10
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Логическая ячейка FPGA (Resource Property Editor)

11
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Блок ввода-вывода FPGA (Resource Property Editor)

12
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Реализация логических функций в FPGA и CPLD

Таблица истинности описания функции Логическая функция в СДНФ


эквивалентны
Номер
набора
x 2 x1 x 0 y y = x2 x1 x0 ∨ x2 x1 x0 ∨ x2 x1 x0 ∨ x2 x1 x0
0 0 0 0 1
1 0 0 1 0 реализация
в CPLD
2 0 1 0 1
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0 x2 x2 x1 x1 x0 x0
6 1 1 0 0
7 1 1 1 1 x 2 x1 x0 11
реализация x 2 x1 x0
в FPGA
x 2 x1 x0
запись таблицы истинности
непосредственно в LUT FPGA, x 2 x1 x0
содержимое Y записывается в
ячейку памяти по адресу X

13
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Основной элемент памяти CPLD/FPGA – D-триггер
Основные временные соотношения D-триггера
C (Clock, CLK) – вход тактовых 1 2 3 4 5 6 7 8
(синхронизирующих) CLK
импульсов PRN
D
D (Data) – информационный D Q
вход (вход данных), E E
синхронный C
PRN 4а 5а
– вход разрешения
CLRN
E (Enable)
тактирования, CLRN
синхронный, Q
H-активный
PRN (PReset) – вход предустановки,
асинхронный, L-активный
tCQ01 tRQ tSQ tCQ10
CLRN (CLeaR) – вход сброса, асинхронный, L-
безразличные состояния
активный tSU tH tSU tH сигналов
Q – выход триггера
CLK

Таблица переходов D-триггера D


C E D PRN CLRN Q(n) E
 0 X 1 1 Q(n-1)
Q
 1 0 1 1 0
 1 1 1 1 1 tCQ01 – время задержки переключения выхода из 0 в 1 относительно
X X X 0 1 1 переднего фронта сигнала синхронизации CLK
tCQ10 – время задержки переключения выхода из 1 в 0 относительно
X X X 1 0 0 переднего фронта сигнала синхронизации CLK
tRQ – время задержки переключения выхода в 0 относительно
асинхронного сигнала сброса CLRN
tSQ – время задержки переключения выхода в 1 относительно
асинхронного сигнала установки PRN
tSU – время предустановки (SetUp) управляющего сигнала
относительно фронта синхронизации CLK
tH – время удержания (Hold) управляющего сигнала относительно
фронта синхронизации CLK

14
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Арифметические блоки
устройств ЦОС

15
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Одноразрядный полный сумматор

Таблица истинности
Реализация
Входы Выходы
a b cin sum cout a =1 a ⊕ b =1 a ⊕ b ⊕ cin
b sum
0 0 0 0 0 cin
0 0 1 1 0 a&b
&
0 1 0 1 0
0 1 1 0 1 & a & cin 1 a&b ∨ a&cin ∨ b&cin
cout
1 0 0 1 0
b & cin
1 0 1 0 1 &
1 1 0 0 1 Схемная
1 1 1 1 1
На VHDL

Логические функции выходов -- Full Adder


LIBRARY ieee;
sum = a ⊕ b ⊕ cin USE ieee.std_logic_1164.ALL;
cout = a&b ∨ a&cin ∨ b&cin ENTITY adder IS
PORT ( a, b, cin : IN STD_LOGIC;
cout,sum : OUT STD_LOGIC);
Графические обозначения END adder;
architecture struct of adder is
a sum cin sum begin
b a sum <= a xor b xor cin;
cin cout b cout cout <= (a and b) or (a and cin) or (b and cin);
end struct;

16
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Многоразрядный параллельный сумматор
Схемная и VHDL реализации многоразрядного --
-- 32-bit
32-bit Full
Full Adder
Adder
параллельного сумматора с последовательным LIBRARY
LIBRARY ieee;
ieee;
переносом USE
USE ieee.std_logic_1164.ALL;
ieee.std_logic_1164.ALL;
entity
entity add_32
add_32 isis
generic(N:
generic(N: natural:=32);
natural:=32);
Лог. 0 port(
port( A,
A, BB :: IN
IN STD_LOGIC_VECTOR(N-1
STD_LOGIC_VECTOR(N-1 DOWNTO
DOWNTO 0);
cin sum sum[0] 0);
sum
sum : OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0);
: OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0);
A[0] a cout
cout :: OUT
OUT STD_LOGIC);
STD_LOGIC);
B[0] b cout end add_32;
end add_32;
architecture
architecture struct
struct ofof add_32
add_32 is
is
component
component
adder
adder
cin sum sum[1] PORT
PORT (( a,
a, b,
b, cin
cin :: IN
IN STD_LOGIC;
STD_LOGIC;
A[1] a cout,
cout, sum : OUT STD_LOGIC);
sum : OUT STD_LOGIC);
b cout end
end component;
component;
B[1]
component
component
add
add
PORT
PORT (( a,
a, bb :: IN
IN STD_LOGIC;
STD_LOGIC;
cin sum sum[2] cout,
cout, sum :: OUT
sum OUT STD_LOGIC);
STD_LOGIC);
A[2] a end component;
end component;
signal
signal cc
cc :: STD_LOGIC_VECTOR(0
STD_LOGIC_VECTOR(0 to to N-1);
N-1);
B[2] b cout
begin
begin
adder32:
adder32: for
for ii in
in 00 to
to N-1
N-1 generate
generate
first_bit:
first_bit:
if(i=0)
if(i=0) generate
generate
fistr_cell:
fistr_cell: add add
port
port map( A(i), B(i),
map( A(i), B(i), cc(i),
cc(i), sum(i));
sum(i));
cin sum sum[N-1] end generate first_bit;
end generate first_bit;
a middle_bit:
middle_bit:
A[N-1] if(i>0)
b cout if(i>0) generate
generate
B[N-1] cout middle_cell:
middle_cell: adder
adder
port
port map(A(i),B(i),cc(i-1),cc(i),
map(A(i),B(i),cc(i-1),cc(i), sum(i));
sum(i));
end
end generate
generate middle_bit;
middle_bit;
Логические функции выходов end
end generate
generate adder32;
adder32;
sum[i] = a[i] ⊕ b[i] ⊕ c[i] cout
cout <=
<= cc(N-1);
cc(N-1);
end
end struct;
struct;
c[i+1] = a[i]&b[i] ∨ a[i]&c[i] ∨ b[i]&c[i],
c[0] = 0, cout = c[i+1]
17
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Многоразрядный последовательный сумматор
Последовательный
Последовательный сумматор
сумматор
Пример
Пример сложения
сложения Источник данных в Комбинационный сумматор
последовательном коде PRN
A = 0 01011(+11) =1 =1 sum[i] S[i]
A[N-1 ..0] D Q
B = 1 11001 (–7)
C
A+B = 1 0 00100 (+4) A[i] a[i] CLRN
Регистр
Регистр сдвига
сдвига вправо
вправо &
Возникающий при сложении перенос Регистр
Регистр сдвига
сдвига вправо
вправо B[i] PRN
учитывается в дополнительном такте b[i] & 1 c[i+1]
(расширение знакового разряда), все Load D Q
последующие переносы
B[N-1 ..0] Bit0 C
отбрасываются
& c[i] &
CLRN

CLK

CLK
Load Серым цветом выделена
загрузка регистров сдвига
A 001011

B 111001 Расширение знакового разряда –


дополнительный такт
Знаковый
Bit0 разряд

a[i] a[0] a[1] a[2] a[3] a[4] a[4]

b[i] b[0] b[1] b[2] b[3] b[4] b[4]


Знаковый
c[i] с[0] = 0 с[1] с[2] с[3] с[4] с[5] разряд суммы

S[i] S[0] S[1] S[2] S[3] S[4] S[5]

18
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Варианты многоразрядных сумматоров

Аккумулятор (накапливающий сумматор) Устройство сложения / вычитания

Расширение
Расширение Сумматор
знакового
знакового разряда
разряда n+k
Сумматор Регистр
out[n+k]
A+B
out[n+1] A+B RG X
in[n]
in[n-1]
out[n]
out[n-1]
A
S Управляемый
X±Y
n+k Управляемый
in[2]
in[1]
out[2]
out[1] A S D Q инвертор
инвертор S
in[n] =1 out[n]
Y
ai n n+k B
SE
SE B C in[2] =1 out[2]
in[1] =1 out[1]
R SUB
CLK
Сигнал управления
CIN
RESET
операцией
N-1
S = Σ ai k = [log2 N],
i=0 Для чисел в дополнительном коде
где [.] – операция округления
до большего целого
–Y = Y + 1
независимо от знака числа
Временная диаграмма
CLK SUB Вход A Вход B Вход CIN Выход S
RESET 0 X Y 0 X+Y
1 X Y 1 X + (Y+1) = X – Y
ai a0 a1 a2

S 0 a0 a0+ a1 a0+ a1+ a2 a0+ a1+... +aN-1

19
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножение чисел без знака

X = xn-1, xn-2, ... x0, Y = yn-1, yn-2, ... y0, где xi, yi – двоичные цифры
n–1 n–1
Произведение X × Y = M = m2n-1, m2n-2, ... mn-1, ... m0 = Σ P ×2 =Σ
i=0 i
(x , x , ... x0) × yi × 2i, где 2i – вес разряда yi
i
i = 0 n-1 n-2

Частичное произведение Pi = pn-1, pn-2, ... p0 = (xn-1, xn-2, ... x0) × yi = xn-1yi, xn-2yi, ... x0yi, где xjyi – элементарные произведения

Элементарное произведение pi = xj×yi вычисляется двухвходовым логическим элементом И,


для одноразрядных двоичных чисел арифметическое и логическое умножение эквивалентны xj×yi ≡ xj & yi
Алгоритм умножения "столбиком" для положительных чисел
xxn-1
n-1
xxn-2
n-2
...
... xx22 xx11 xx00 X
×
yyn-1
n-1
yyn-2
n-2
...
... yy22 yy11 yy00 Y

xxn-1 yy xxn-2 yy ...


... xx22yy00 xx11yy00 xx00yy00 P020
n-1 00 n-2 00
+ P121
xxn-1 yy
n-1 11
xxn-2 yy
n-2 11
...
... xx22yy11 xx11yy11 xx00yy11
+ P222
xxn-1 yy
n-1 22
xxn-2yy
n-2 22
...
... xx22yy22 xx11yy22 xx00yy22
+
...
... ...
... ...
... ...
... ...
... ...
... ...
+
xxn-1 yyn-1 xxn-2 yyn-1 ...
... xx22yyn-1 xx11yyn-1 xx00yyn-1 Pn-12n-1
n-1 n-1 n-2 n-1 n-1 n-1 n-1

m
m2n-1 m
m2n-2 m
m2n-3 ...
... ...
... m
mnn m
mn-1 ...
... m
m33 m
m22 m
m11 m
m00 M
2n-1 2n-2 2n-3 n-1

20
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структура умножителя для чисел без знака

x4y0 0 x3y0 0 x2y0 0 x1y0 0 x0y0


B cin
x4y1 x3y1 x2y1 x1y1 x0y1
 A    

cout S
полный сумматор x4y2 x3y2 x2y2 x1y2 x0y2
   

x4y3 x3y3 x2y3 x1y3 x0y3


   

x4y4 x3y4 x2y4 x1y4 x0y4


   

0
   

m9 m8 m7 m6 m5 m4 m3 m2 m1 m0

21
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножение чисел со знаком

Для чисел со знаком в дополнительном коде X = xn-1, xn-2, ... , x1, x0 = xn-1×(–2n-1) + xn-2×2n-2 + ... + x1×21 + x0×20
Знаковый разряд числа имеет вес –2n-1

Алгоритм умножения "столбиком" для чисел со знаком


xxn-1
n-1
xxn-2
n-2
...
... xx22 xx11 xx00 X
×
yyn-1
n-1
yyn-2
n-2
...
... yy22 yy11 yy00 Y

xxn-1 yy xxn-1 yy ...


... xxn-1 yy xxn-1 yy xxn-1 yy xxn-1 yy xxn-2 yy ...
... xx22yy00 xx11yy00 xx00yy00 P020
n-1 00 n-1 00 n-1 00 n-1 00 n-1 00 n-1 00 n-2 00
+
xxn-1yy xxn-1yy ...
... xxn-1 yy xxn-1 yy xxn-1 yy xxn-2yy ...
... xx22yy11 xx11yy11 xx00yy11 P121
n-1 11 n-1 11 n-1 11 n-1 11 n-1 11 n-2 11
+
xxn-1 yy xxn-1 yy ...
... xxn-1 yy xxn-1 yy xxn-2 yy ...
... xx22yy22 xx11yy22 xx00yy22 P222
n-1 22 n-1 22 n-1 22 n-1 22 n-2 22

+
...
... ...
... ...
... ...
... ...
... ...
... ...
... ...
... ...

xxn-1 yyn-1 xxn-1 yyn-1 xxn-2yyn-1 ...
... xx22yyn-1 xx11yyn-1 xx00yyn-1 Pn-12n-1
n-1 n-1 n-1 n-1 n-2 n-1 n-1 n-1 n-1

m
m2n-1 m
m2n-2 m
m2n-3 ...
... ...
... m
mnn m
mn-1 ...
... m
m33 m
m22 m
m11 m
m00 M
2n-1 2n-2 2n-3 n-1

22
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структура умножителя для чисел со знаком

B cin x3y0 x2y0 x1y0 x0 y0


0 0 0 0 0 0 0
++ A
x3y1 x2y1 x1y1 x0y1
++ ++ ++ ++ ++ ++ ++
cout S
A + B + Cin
x3y2 x2y2 x1y2 x0y2
B cin ++ ++ ++ ++ ++ ++
–– A
x3y3 x2y3 x1y3 x0y3
cout S –– –– –– –– ––
A – B + Cin

B cin 0
––
–– ––
–– ––
–– ––
––
––
–– A

cout m7 m6 m5 m4 m3 m2 m1 m0
S
A – B – Cin

23
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Примеры умножения чисел со знаком

aa == –3
–3 == 1101
110122 aa == –3
–3 == 1101
110122
bb == –7
–7 == 1001
100122 bb == +7
+7 == 0111
011122

11 11 00 11 11 11 00 11
 
11 00 00 11 00 11 11 11

11 11 11 11 11 11 00 11 P0 11 11 11 11 11 11 00 11 P0
+ +
00 00 00 00 00 00 00 P1 11 11 11 11 11 00 11 P1
+ +
00 00 00 00 00 00 P2 11 11 11 11 00 11 P2
– –
11 11 11 00 11 P3 00 00 00 00 00 P3

00 00 00 11 00 11 00 11 M 11 11 11 00 11 00 11 11 M

M
M == 00010101
0001010122 == +21
+21 M
M == 11101011
1110101122 == –21
–21

24
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель с деревом сумматоров

25
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель с деревом сумматоров (структура)

x[7..0] y7 y6 y5 y4 y3 y2 y1 y0 x[7..0] yn

&
& && &
& &
& && &
& && &
& x6 x5 x4 x3 x2 x1 x0
P7 8 P6 8 P5 8 P4 8 P3 8 P2 8 P1 8 P0 8
& & & & & & & &
<< 1 SE1 << 1 SE1 << 1 SE1 << 1 SE1
p7 p6 p 5 p 4 p3 p2 p 1 p 0
9 9 9 9 9 9 9 9
Вычитание
Вычитание ((9+1 бит))
9+1 бит Сложение
Сложение ((9+1 бит))
9+1 бит Сложение
Сложение ((9+1 бит))
9+1 бит Сложение
Сложение ((9+1 бит))
9+1 бит Pn
–– PP77×2
×2 ++ P
P66×2
11
×2 00
PP55×2
×2 ++ P
11
P44×2
×2 00
P
P33×2
×2 ++ P
P22×2
11
×2 00
P
P11×2
×211 ++ P
P00×2
×200
формирование частичных
10 10 10 10 произведений
<< 2 SE2 << 2 SE2
12 12 12 12 – сдвиг влево на
Сложение << n
Сложение ((12 бит))
12 бит Сложение
Сложение ((12 бит))
12 бит n разрядов
(–
(– P
P77×2
×211 ++ P
P66×2
×200)×2
)×222 ++ (P
(P55×2
×211 ++ P
P44×2
×200)) == (P
(P33×2
×211 ++ P
P22×2
×200)×2
)×222 ++ (P
(P11×2
×211 ++ P
P00×2
×200)) ==
SE n – расширение
–– P
P77×2
×233 ++ PP66×2
×222 ++ PP55×2
×211 ++ P
P44×2
×200 == P
P33×2
×233 ++ PP22×2
×222 ++ PP11×2
×211 ++ P
P00×2
×200 знакового разряда
12 12 на n бит
<< 4 SE4 – устройство
сложения / вычитания
16 16
Сложение
Сложение ((16 бит))
16 бит
(–
(– PP77×2
×233 ++ PP66×2
×222 ++ PP55×2
×211 ++ PP44×2
×200)×2
)×244 ++ (P
(P33×2
×233 ++ PP22×2
×222 ++ PP11×2
×211 ++ P
P00×2
×200)) ==
== –– P
P77×2
×277 ++ PP66×2
×266 ++ PP55×2
×255 ++ PP44×2
×244 ++ PP33×2
×233 ++ PP22×2
×222 ++ PP11×2
×211 ++ P
P00×2
×200 == M
M
16

26
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Конвейерный умножитель

x[7..0] y7 y6 y5 y4 y3 y2 y1 y0
Уровень 1 –
&
& && &
& &
& && &
& && &
& формирование
частичных произведений
Рг
Рг ((88)) Рг
Рг ((88)) Рг
Рг ((88)) Рг
Рг ((88)) Рг
Рг ((88)) Рг
Рг ((88)) Рг
Рг ((88)) Рг
Рг ((88))
P7 8 P6 8 P5 8 P4 8 P3 8 P2 8 P1 8 P0 8
<< 1 SE1 << 1 SE1 << 1 SE1 << 1 SE1 Уровень 2 –
9 9 9 9 9 9 9 9 сумматоры первой
ступени
Вычитание
Вычитание ((9+1 бит))
9+1 бит Сложение
Сложение ((9+1 бит))
9+1 бит Сложение
Сложение ((9+1 бит))
9+1 бит Сложение
Сложение ((9+1 бит))
9+1 бит

Регистр
Регистр ((10 бит))
10 бит Регистр
Регистр ((10 бит))
10 бит Регистр
Регистр ((10 бит))
10 бит Регистр
Регистр ((10 бит))
10 бит
10 10 10 10
<< 2 SE2 << 2 SE2 Уровень 3 –
12 12 12 12 сумматоры второй
Сложение ступени
Сложение ((12 бит))
12 бит Сложение
Сложение ((12 бит))
12 бит

Регистр
Регистр ((12 бит))
12 бит Регистр
Регистр ((12 бит))
12 бит
12 12
<< 4 SE4
16 16 Уровень 4 –
Сложение
Сложение ((16 бит))
16 бит сумматоры третьей
(–
(– PP77×2
×233 ++ PP66×2
×222 ++ PP55×2
×211 ++ PP44×2
×200)×2
)×244 ++ (P
(P33×2
×233 ++ PP22×2
×222 ++ P
P11×2
×211 ++ PP00×2
×200)) == ступени
== –– PP77×2
×277 ++ PP66×2
×266 ++ PP55×2
×255 ++ PP44×2
×244 ++ P
P33×2
×233 ++ PP22×2
×222 ++ P
P11×2
×211 ++ P
P00×2
×200 == MM

Регистр
Регистр ((16 бит))
16 бит
16
Количество ступеней суммирования S = [log2 N], где [.] – операция
M округления до большего целого, N – разрядность множителя y.

27
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель с масштабирующим аккумулятором
Множимое a = –3 = 11012 Множитель b = –3 = 11012
11 11 00 11

11 11 00 11
00 00 00 00 00 установка начального состояния аккумулятора
+ 11 11 11 00 11 частичное произведение P0 с расширением знака
1
11 11 11 00 11 сумма аккумулятора и P0 с расширением знака
сдвиг аккумулятора вправо с расширением знака
11 11 11 11 00 11 разряд произведения M0
+
Итерации

2 00 00 00 00 00 частичное произведение P1 с расширением знака


11 11 11 11 00 сумма аккумулятора и P1 с расширением знака
сдвиг аккумулятора вправо с расширением знака
11 11 11 11 11 00 разряд произведения M1
3
+ 11 11 11 00 11 частичное произведение P2 с расширением знака
11 11 11 00 00 сумма аккумулятора и P2 с расширением знака
сдвиг аккумулятора вправо с расширением знака
11 11 11 11 00 00 разряд произведения M2
4
– 11 11 11 00 11 частичное произведение P3 с расширением знака
00 00 00 00 11 разность аккумулятора и P3 с расширением знака

Произведение M = a x b = 000010012 = +9

28
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель с масштабирующим аккумулятором

регистр X
X Y

формирование
RG
RG SR
SR
частичных
произведений P сдвиговый
регистр Y
&
&

комбинационный
сумматор/вычитатель
сдвиг сдвиговый
слож./выч. вправо регистр
 ++
управление

регистр
аккумулятора >>1 SR
SR
сброс
RG
RG
МАСШТАБИРУЮЩИЙ
АККУМУЛЯТОР

выход результата

29
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Управление масштабирующим аккумулятором

входной комбинационный входной комбинационный


операнд сумматор/вычитатель операнд сумматор/вычитатель
сдвиг сдвиговый nRS сдвиг сдвиговый

управление
вправо регистр &
& вправо регистр
сброс
Add_Sub Add_Sub
 ++  ++
управление

слож./выч. слож./выч.
>>1 SR
SR >>1 SR
SR
nRS
RG
RG RG
RG
сброс

регистр регистр
аккумулятора выход результата аккумулятора выход результата

N x TCLK + 2 N x TCLK
CLK CLK

nRS nRS

Xin X(0) X(1) X(2) X(3) Xin X(0) X(1) X(2) X(3) Y(0) Y(1)

Add_Sub Add_Sub

MACC 0 +X(0) +X(1) +X(2) – X(3) MACC – Z(3) X(0) +X(1) +X(2) – X(3) Y(0)

30
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель на константу (принцип построения)

Вариант 1 Вариант 2
X = xk-1, xk-2, ..., xk/2, xk/2-1, ..., x0 X = xk-1, xk-2, ..., xk/2, xk/2-1, ..., x0 =
= (xk-1, xk-2, ..., xk/2) × 2k/2 + (xk/2-1, ..., x0) × 20 =
X
= X1 × 2k/2 + X0 × 20
k
X Пример
X1 k X0 Разрядность константы n
ROM
ROM k/2 k/2
k = 16, n = 16
ROM
ROM 11 ROM
ROM 00 Объем памяти ROM 0
k+n
k/2+n k/2+n V0 = 28 x 24 = 768 Байт

Y = X × Const << k/2 SE k/2 Объем памяти ROM 1


V1 = 28 x 24 = 768 Байт
Пример ++ Общий объем памяти
Разрядность константы n V = 1536 Байт
k+n
k = 16, n = 16
Замечание.
Объем памяти ROM Память ROM 1 учитывает
V = 216 x 32 = 256 КБайт Y = X × Const
знак операнда X1

31
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель на константу (ROM на LUT)

LUT4
LUT4 LUT6
LUT6
A3 A5
A2 D[m-1] A4
OUT D[m-1]
A1 A3 OUT
A2
A0 A1
A0

LUT4 LUT6
LUT6
LUT4
A3 A5
D[1] A4
A2 OUT A3 D[1]
OUT
A1 A2
A0 A1
A0

LUT4
LUT4 LUT6
LUT6
A3 A3 A5 A5
D[0] D[m-1 .. 0] A4 A4
A2 A2 OUT D[0] D[m-1 .. 0]
A3 A3 OUT
A1 A1 A2 A2
A0 A0 A1 A1
A0 A0
LUT4m – эквивалент ROM LUT6m – эквивалент ROM
с организацией 16 х m с организацией 64 х m

32
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель на константу (структура)

X3 X2 X1 X0 Для операндов произвольной


x15 x14 x13 x12 x11 x10 x9 x8 x 7 x6 x 5 x4 x3 x2 x 1 x 0 разрядности
X = xn-1, xn-2, ... , x1, x0 и
Y = yk-1, yk-2, ... , y1, y0, где
A3 A2 A1 A0 A3 A2 A1 A0 A3 A2 A1 A0 A3 A2 A1 A0 Y – константа, потребуется
LUT
LUT B
B LUT
LUT A
A LUT
LUT A
A LUT
LUT A
A [n/4] таблиц LUT с организацией
16 × (k+4) и [log2 (n/4)] ступеней
k+4 k+4 k+4 k+4 суммирования.
[.] – операция округления до большего
<< 4 SE 4 << 4 SE 4 целого.
k+8 k+8 k+8 k+8 Пример
Разрядность операнда X равна 16
++ ++ (n=16).
k+8 k+8 Операнд разбивается на 4 группы
по 4 разряда X0, X1, X2, X3.
<< 8 SE 8 Группы X0, X1 и X2 – числа без
k+16 k+16 знака, группа X3 – число со
знаком (учитывается вес
++ знакового разряда x15).
k+16 Разряды каждой группы являются
адресами таблиц LUT.
Y = X × Const Для групп X0, X1 и X2
используются таблицы LUT A, для
группы X3 – таблица LUT B.
33
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель на константу (содержимое LUT)

ТАБЛИЦА LUT A ТАБЛИЦА LUT B


(адрес – число без знака) (адрес – число со знаком)
АДРЕС СОДЕРЖИМОЕ АДРЕС СОДЕРЖИМОЕ
код значение ЯЧЕЙКИ код значение ЯЧЕЙКИ
0000 +0 +0 × Const 0000 +0 +0 × Const
0001 +1 +1 × Const 0001 +1 +1 × Const
0010 +2 +2 × Const 0010 +2 +2 × Const
0011 +3 +3 × Const 0011 +3 +3 × Const
0100 +4 +4 × Const 0100 +4 +4 × Const
0101 +5 +5 × Const 0101 +5 +5 × Const
0110 +6 +6 × Const 0110 +6 +6 × Const
0111 +7 +7 × Const 0111 +7 +7 × Const
1000 +8 +8 × Const 1000 –8 – 8 × Const
1001 +9 +9 × Const 1001 –7 – 7 × Const
1010 +10 +10 × Const 1010 –6 – 6 × Const
1011 +11 +11 × Const 1011 –5 – 5 × Const
1100 +12 +12 × Const 1100 –4 – 4 × Const
1101 +13 +13 × Const 1101 –3 – 3 × Const
1110 +14 +14 × Const 1110 –2 – 2 × Const
1111 +15 +15 × Const 1111 –1 – 1 × Const

34
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель на константу (пример 1)

Const = 2047 (7FFh) X = 32570 (7F3Ah)

ТАБЛИЦА LUT A ТАБЛИЦА LUT B 44 FF FF 66 1010 (LUT A)


(адрес – число без знака) (адрес – число со знаком) +
11 77 FF DD 0011 (LUT A)
СОДЕРЖИМОЕ СОДЕРЖИМОЕ +
АДРЕС АДРЕС 77 77 FF 11 1111 (LUT A)
ЯЧЕЙКИ (hex) ЯЧЕЙКИ (hex) +
0000 0000 0000 0000 33 77 FF 99 0111 (LUT B)
0001 07FF 0001 07FF
33 FF 99 55 00 C
C 66
0010 0FFE 0010 0FFE
0011 17FD 0011 17FD 3F950C6h = 66670790 = 32570 × 2047
0100 1FFC 0100 1FFC
0101 27FB 0101 27FB
0110 2FFA 0110 2FFA X = –30192 (8A10h)
0111 37F9 0111 37F9
1000 3FF8 1000 C008 00 00 00 00 0000 (LUT A)
1001 47F7 1001 C807 + 0001 (LUT A)
00 77 FF FF
1010 4FF6 1010 D006 +
1011 57F5 1011 D805 44 FF FF 66 1010 (LUT A)
1100 5FF4 1100 E004
+ 1000 (LUT B)
C
C 00 00 88
1101 67F3 1101 E803
1110 6FF2 1110 F002 C
C 55 00 FF 55 FF 00
1111 77F1 1111 F801 C50F5F0h = –61803024 = –30192 × 2047

35
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Умножитель на константу (пример 2)

Const = –47 (FD1h) X = 32570 (7F3Ah)

ТАБЛИЦА LUT A ТАБЛИЦА LUT B FF FFFF FF EE 22 A


A 1010 (LUT A)
(адрес – число без знака) (адрес – число со знаком) + 0011 (LUT A)
FF FFFF FF 77 33
СОДЕРЖИМОЕ СОДЕРЖИМОЕ +
АДРЕС АДРЕС FF FFDD 33 FF 1111 (LUT A)
ЯЧЕЙКИ (hex) ЯЧЕЙКИ (hex) +
0000 0000 0000 0000 FF E
E BB 77 0111 (LUT B)
0001 FFD1 0001 FFD1
FF E
E 88 A
A 44 55 A
A
0010 FFA2 0010 FFA2
0011 FF73 0011 FF73 FE8A45Ah = –1530790 = 32570 × (– 47)
0100 FF44 0100 FF44
0101 FF15 0101 FF15
0110 FEE6 0110 FEE6 X = –30192 (8A10h)
0111 FEB7 0111 FEB7
1000 FE88 1000 0178 00 00 00 00 00 00 00 0000 (LUT A)
1001 FE59 1001 0149 + 0001 (LUT A)
FF FF FF FF D
D 11
1010 FE2A 1010 011A +
1011 FDFB 1011 00EB FF FF EE 22 AA 1010 (LUT A)
1100 FDCC 1100 00BC
+ 1000 (LUT B)
00 11 77 88
1101 FD9D 1101 008D
1110 FD6E 1110 005E 00 11 55 A
A 77 55 00
1111 FD3F 1111 002F 1419024h = –61803024 = –30192 × (–47)

36
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Устройство деления (алгоритм)
Для выполнения деления используется алгоритм с восстановлением остатка, позволяющий
получить одновременно частное и остаток. Операция выполняется над двоичными
положительными числами с фиксированной точкой. В случае чисел со знаком ввиду сложности
алгоритма, рекомендуется исходные операнды сделать положительными, а результат деления
откорректировать в зависимости от знака исходных операндов. Алгоритм содержит n итераций
(по количеству разрядов делимого X), каждая из которых включает несколько шагов.
Начальная установка
Приравниваем частичный остаток X'(0) = X
Итерация 1 (i=1)
Шаг 1. Определяем, содержится ли число Y×2n-1-i в частичном остатке X'(i-1), для чего
выполняем операцию вычитания X'(i-1) – Y×2n-1-i и анализируем знак полученной разности.
Если результат положителен (знаковый разряд 0 – число содержится в частичном остатке),
записываем цифру частного Qn-1=1. Если результат вычитания отрицателен (знаковый разряд 1 –
число в частичном остатке не содержится), записываем цифру частного Qn-1=0.
Шаг2. Если разность X'(i-1) – Y×2n-1-i положительна, формируем новый частичный остаток,
равный этой разности X'(i) = X'(i-1) – Y×2n-1-i. Если разность отрицательна, то
X'(i) = X'(i-1) – Y×2n-1-i + Y×2n-1-i = X'(i-1). Этот шаг называется восстановлением остатка
(то, что вычли, снова прибавили).
Итерации 2...n. Повторяются шаги 1 и 2, формируется последняя цифра частного Q0 и остаток
операции деления R = X'(n-1).
37
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Устройство деления (выполнение операции)

дополнительные разряды

Делимое X 00 00 00 00 11 11 11 00 00 11 11 Делитель Y

00 00 00 00 11 11 11 00 00 11 00 Q – частное
Итерация 1 –
00 00 11 11
11 11 00 11
Восстановление остатка +
00 00 11 11
00 00 00 00 11 11 11
Итерация 2 –
00 00 11 11
11 11 11 00
Восстановление остатка +
00 00 11 11
00 00 00 11 11 11
Итерация 3 –
00 00 11 11
00 00 00 00 11
Итерация 4 –
00 00 11 11
11 11 11 00
Восстановление остатка + 00 00 11 11
00 00 00 11 R – остаток

38
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Устройство деления (структура)

3 2 1
X

Регистр делимого X
Регистр R 0 0 0 0 1 1 1
(сдвиг влево)
4 3 2 1

Регистр
Y
Q
делителя Y R 11
0 0 1 1
4 3 2 1

B3 B2 B1 B0 A3 A2 A1 A0
S3 S2 S1 S0
Вычитатель
S=A–B 3 2 1

A2 A1 A0 B2 B1 B0
Мультиплексор
восстановления остатка
упр M2 M1 M0 M=A (УПР = 0), M=B (УПР = 1)

3 2 1 Частичные остатки

39
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Устройство деления (пример)
Y R X
0 0 1 1 0 0 0 0 1 1 1 Исходное состояние

0 0 1 1
Результат вычитания 1 1 0 1
Восстановление остатка 0 0 0 0
Сдвиг влево 0 0 0 1 1 1 0 После итерации 1

0 0 1 1
Результат вычитания 1 1 1 0
Восстановление остатка 0 0 0 1
Сдвиг влево 0 0 1 1 1 0 0 После итерации 2

0 0 1 1
Результат вычитания 0 0 0 0
Сдвиг влево 0 0 0 1 0 0 1 После итерации 3

0 0 1 1
Результат вычитания 1 1 1 0
Восстановление остатка 0 0 0 1
Сдвиг влево 0 0 1 0 0 1 0 После итерации 4
R Q

40
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Вычислительные блоки
цифровых фильтров

41
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Общая структура КИХ-фильтра

Уравнения линия задержки


k – порядок фильтра;

Регистр

Регистр

Регистр

Регистр

Регистр
Регистр

Регистр

Регистр

Регистр

Регистр
N = k+1 – размерность x(n)
импульсной
характеристики
Сверточная сумма
x(n) x(n-1) x(n-2) x(n-k+1) x(n-k)

h(0) h(1) h(2) h(k-1) h(k)


Векторная форма
Y=X×H
Вектор – строка задержан-
ных отсчетов сигнала
X = [ x(n) x(n-1) ... x(n-k) ]

Вектор – столбец
коэффициентов фильтра векторный умножитель
h(0)
h(1) КИХ-ФИЛЬТР
H= h(2)
...
h(k) y(n)

42
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Симметрия коэффициентов N - четное

N=8

Регистр

Регистр

Регистр

Регистр
Регистр

Регистр

Регистр

Регистр
h(0) = ±h(7), h(1) = ±h(6), h(2) = ±h(5), h(3) = ±h(4)

x(n-m-1)
x(n-k+1)

x(n-k+2)
x(n-k)
y(7) = h(0)*x(7) + h(1)*x(6) + h(2)*x(5) + h(3)*x(4) +

Регистр

Регистр

Регистр

Регистр
Регистр

Регистр

Регистр

Регистр
+ h(4)*x(3) + h(5)*x(2) + h(6)*x(1) + h(7)*x(0) = x(n)
= h(0)*x(7) + h(1)*x(6) + h(2)*x(5) + h(3)*x(4) +
± h(3)*x(3) ± h(2)*x(2) ± h(1)*x(1) ± h(0)*x(0) =
= h(0)*[x(7)±x(0)] + h(1)*[x(6)±x(1)] +

x(n-m)
x(n-1)

x(n-2)
x(n)
+ h(2)*[x(5)±x(2)] + h(3)*[x(4)±x(3)]

N произвольное ЧЕТНОЕ
h(0) = ±h(N-1), ...,
h(m) = ±h(N-m-1), ..., h(0) h(1) h(2) h(m)
h(N/2-1) = ±h(N/2)

y(N-1) = h(0)*[x(N-1)±x(0)] + h(1)*[x(N-2)±x(1)] +


+...+
+ h(m)*[x(N-m-1)±x(m)] +
+...+
+ h(N/2-1)*[x(N/2)±x(N/2-1)]

y(n)

43
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Симметрия коэффициентов N - нечетное

N=7

Регистр

Регистр

Регистр
Регистр

Регистр

Регистр
h(0) = ±h(6), h(1) = ±h(5), h(2) = ±h(4), h(3)

x(n-k+1)

x(n-k+2)
x(n-k)
y(7) = h(0)*x(6) + h(1)*x(5) + h(2)*x(4) + h(3)*x(3) +

Регистр

Регистр

Регистр

Регистр
Регистр

Регистр

Регистр

Регистр
+ h(4)*x(2) + h(5)*x(1) + h(6)*x(0) = x(n)
= h(0)*x(6) + h(1)*x(6) + h(2)*x(4) + h(3)*x(3) +
± h(3)*x(2) ± h(2)*x(1) ± h(1)*x(0) =
= h(0)*[x(6)±x(0)] + h(1)*[x(5)±x(1)] +

x(n-m)
x(n-1)

x(n-2)
x(n)
+ h(2)*[x(4)±x(2)] + h(3)*[x(3)]

N произвольное НЕЧЕТНОЕ
h(0) = ±h(N-1), ..., h(m) = ±h(N-m-1), ..., h( (N-1)/2 )

y(N-1) = h(0)*[x(N-1)±x(0)] + h(1)*[x(N-2)±x(1)] + h(0) h(1) h(2) h(m)


+...+
+ h(m)*[x(N-m-1)±x(m)] +
+...+
+ h( (N-1)/2 )*[x( (N-1)/2 )]

y(n)

44
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Векторный умножитель – распределенная арифметика
Симметрия коэффициентов фильтра
s(0) = x(n)±x(n-k); s(1) = x(n-1)±x(n-k+1); s(2) = x(n-2)±x(n-k+2); s(3) = x(n-3)±x(n-k+3);

Векторный умножитель с размерностью вектора 4


y(n)= s(0)×h(0) + s(1)×h(1) + s(2)×h(2) + s(3)×h(3)
Распределенная (поразрядная или битовая) арифметика
si(n) – i-й двоичный разряд операнда n
y(n) = [ –sm-1(0)×2m-1 + sm-2(0)×2m-2 + ... + s1(0)×21 + s0(0)×20 ] × h(0) +
+ [ –sm-1(1)×2m-1 + sm-2(1)×2m-2 + ... + s1(1)×21 + s0(1)×20 ] × h(1) +
+ [ –sm-1(2)×2m-1 + sm-2(2)×2m-2 + ... + s1(2)×21 + s0(2)×20 ] × h(2) +
+ [ –sm-1(3)×2m-1 + sm-2(3)×2m-2 + ... + s1(3)×21 + s0(3)×20 ] × h(3)
y(n) = – [ sm-1(0)×h(0) + sm-1(1)×h(1) + sm-1(2)×h(2) + sm-1(3)×h(3) ] × 2m-1 +
+ [ sm-2(0)×h(0) + sm-2(1)×h(1) + sm-2(2)×h(2) + sm-2(3)×h(3) ] × 2m-2 +
+...+
+ [ s1(0)×h(0) + s1(1)×h(1) + s1(2)×h(2) + s1(3)×h(3) ] × 21 +
+ [ s0(0)×h(0) + s0(1)×h(1) + s0(2)×h(2) + s0(3)×h(3) ] × 20
Примечание. Выражение в [.] вычисляется с помощью таблицы LUT.

45
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Содержимое LUT векторного умножителя фильтра
Вычисляется выражение
LUT = [ sm(0)×h(0) + sm(1)×h(1) + sm(2)×h(2) + sm(3)×h(3) ],
где sm(n) – m-й двоичный разряд операнда n

№ Разряд (адрес LUT)


ячейки s (3) s (2) s (1) s (0) СОДЕРЖИМОЕ ЯЧЕЙКИ
m m m m
0 0 0 0 0 0×h(3) + 0×h(2) + 0×h(1) + 0×h(0) = 0
1 0 0 0 1 0×h(3) + 0×h(2) + 0×h(1) + 1×h(0) = h(0)
2 0 0 1 0 0×h(3) + 0×h(2) + 1×h(1) + 0×h(0) = h(1)
3 0 0 1 1 0×h(3) + 0×h(2) + 1×h(1) + 1×h(0) = h(1) + h(0)
4 0 1 0 0 0×h(3) + 1×h(2) + 0×h(1) + 0×h(0) = h(2)
5 0 1 0 1 0×h(3) + 1×h(2) + 0×h(1) + 1×h(0) = h(2) + h(0)
6 0 1 1 0 0×h(3) + 1×h(2) + 1×h(1) + 0×h(0) = h(2) + h(1)
7 0 1 1 1 0×h(3) + 1×h(2) + 1×h(1) + 1×h(0) = h(2) + h(1) + h(0)
8 1 0 0 0 1×h(3) + 0×h(2) + 0×h(1) + 0×h(0) = h(3)
9 1 0 0 1 1×h(3) + 0×h(2) + 0×h(1) + 1×h(0) = h(3) + h(0)
10 1 0 1 0 1×h(3) + 0×h(2) + 1×h(1) + 0×h(0) = h(3) + h(1)
11 1 0 1 1 1×h(3) + 0×h(2) + 1×h(1) + 1×h(0) = h(3) + h(1) + h(0)
12 1 1 0 0 1×h(3) + 1×h(2) + 0×h(1) + 0×h(0) = h(3) + h(2)
13 1 1 0 1 1×h(3) + 1×h(2) + 0×h(1) + 1×h(0) = h(3) + h(2) + h(0)
14 1 1 1 0 1×h(3) + 1×h(2) + 1×h(1) + 0×h(0) = h(3) + h(2) + h(1)
15 1 1 1 1 1×h(3) + 1×h(2) + 1×h(1) + 1×h(0) = h(3) + h(2) + h(1) + h(0)

46
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Векторный умножитель – параллельная распределенная арифметика

S
S15..0
15..0
(3)
(3) S
S15..0
15..0
(2)
(2) S
S15..0
15..0
(1)
(1) S
S15..0
15..0
(0)
(0)

16 s15..12(3..0) 16 s11..8(3..0) 16 s7..4(3..0) 16 s3..0(3..0)

4 s15(3..0) 4 s14(3..0) 4 s13(3..0) 4 s12(3..0)


LUT
LUT LUT
LUT LUT
LUT
LUT LUT LUT LUT LUT
LUT LUT
LUT LUT
LUT
q q q q

<< 1 SE1 << 1 SE1


– + + + + + + + + + + + + + + +
<< 2 SE2 << 2 SE2 << 2 SE2 << 2 SE2
+ + + + + + + +

<<
<< 44 SE4
SE4 <<
<< 44 SE4
SE4
++ ++ ++ ++
Векторный умножитель <<
<< 88 SE8
SE8
размерности 4
++ ++
VMUL4

y(n)

47
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
КИХ-фильтр – параллельная распределенная арифметика

RG
RG RG
RG RG
RG RG
RG
x(n)
RG
RG RG
RG RG
RG RG
RG RG
RG

++ ++ ++ ++ ++ ++ ++ ++

s(3)
s(1)

s(2)
s(0)

VMUL4
VMUL4
Tap_8p Tap_8p Tap_8p Tap_Np

++ ++ ++ ++

++ ++

y(n)

48
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
КИХ-фильтр – последовательная распределенная арифметика

x(n-k)
Tap_8
Tap_8 Tap_8
Tap_8 Tap_8
Tap_8 Tap_8
Tap_8

Tap_8

Tap_8
Tap_8

Tap_8
x(n) выход
выход выход
выход выход
выход выход
выход
LUT
LUT LUT
LUT LUT
LUT LUT
LUT

++ ++ ++ ++ ++ ++ ++ ++

++ ++ ++ ++
масштабирующий
параллельные аккумулятор MACC
m‑разрядные
++ ++
сумматоры

 ++ >>1 SR
SR
управление
RG
RG

выход результата

49
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Последовательная распределенная арифметика – TAP_8s

x(n-k-4) x(n-k)
SR
SR SR
SR SR
SR SR
SR

x(n) x(n-4)
SR
SR SR
SR SR
SR SR
SR

SSum
SSum SSum
SSum SSum
SSum SSum
SSum

A0 A1 A2 A3
LUT4m
LUT4m

Tap_8s m

на параллельные сумматоры

50
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Последовательная распределенная арифметика – примеры TAP_Ns

x(n-7) x(n-6)
SR SR SR SR SR SR SR

x(n) x(n-3) x(n) x(n-3)


SR SR SR SR SR SR

SSum SSum SSum DFF SSum SSum SSum

A0 A1 A2 A3 A0 A1 A2 A3
LUT4m LUT4m
Tap_7s m Tap_6s m

на параллельные сумматоры на параллельные сумматоры

x(n-3) x(n-2)
SR SR SR

x(n) x(n-1) x(n) x(n-1)


SR SR

SSum DFF SSum

A0 A1 A2 A3 A0 A1 A2 A3
LUT4m LUT4m
Tap_3s m Tap_2s m

на параллельные сумматоры на параллельные сумматоры

51
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Потоки данных фильтра – последовательно-параллельная обработка

CLK Конвейер
SR
SR SR
SR SR
SR SR
SR 1
EN
Уровень 0
X(n) k SR SR SR SR 1
PSR
PSR SR SR SR SR
LOAD 1 1 1 1 1 1 1 1 1 A
BIT0 Уровень 1
SSum
SSum SSum
SSum SSum
SSum SSum
SSum
1 1 1 1 B

LUT4m
LUT4m LUT4m Уровень 2

m m C

(1) Σ(1) Уровень 3


(1)
m+1 m+1 D

(2)
(2) Уровень 4

m+2 E
ADD_SUB
MACC
MACC Уровень 5
MAC_RST
m+2 k
m+k+2
– одноразрядные данные – тактовый сигнал (Clock)
F
– многоразрядные данные – управляющие сигналы

52
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Потоки данных фильтра и сигналы управления
CLK

X X(0) X(1) X(2)

A x0(0) x1(0) x2(0) x3(0) x3(0) x0(1) x1(1) x2(1) x3(1) x3(1)

B bit0(0) bit1(0) bit2(0) bit3(0) bit4(0) bit0(1) bit1(1) bit2(1) bit3(1) bit4(1)

C bit0(0) bit1(0) bit2(0) bit3(0) bit4(0) bit0(1) bit1(1) bit2(1) bit3(1)

D bit0(0) bit1(0) bit2(0) bit3(0) bit4(0) bit0(1) bit1(1) bit2(1)

E bit0(0) bit1(0) bit2(0) bit3(0) bit4(0) bit0(1) bit1(1)

F y0(0) y1(0) y2(0) y3(0) y4(0) y0(1)

EN

LOAD

BIT0

ADD_SUB

MAC_RST

READY

53
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
КИХ-фильтр на основе циклического буфера – структура

сумматор по постоянная память


модулю N коэффициентов h

ROM
ROM
CT
CT
22 A[..] Q[..]
аккумулятор

CT
CT
11
RAM
RAM RG
RG выход
+1 результата
A[..] Q[..] D[..] Q[..]
x(n)
D[..]
WR SR

WR
D
D D
D
линия задержки
(циклический буфер) отсчетов x

54
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
КИХ-фильтр на основе циклического буфера – работа
Таблица Адресация памяти для случая N = 5
Запись Номер такта считывания (CT2)
Время 0 1 2 3 4
Адрес ROM 0 1 2 3 4
Содержимое ROM h(4) h(3) h(2) h(1) h(0)
Адрес RAM 0 1 2 3 4 0
n
Содержимое RAM x(n) 0 0 0 0 x(n)
Адрес RAM 1 2 3 4 0 1
n+1
Содержимое RAM x(n+1) 0 0 0 x(n) x(n+1)
Адрес RAM 2 3 4 0 1 2
n+2
Содержимое RAM x(n+2) 0 0 x(n) x(n+1) x(n+2)
Адрес RAM 3 4 0 1 2 3
n+3
Содержимое RAM x(n+3) 0 x(n) x(n+1) x(n+2) x(n+3)
Адрес RAM 4 0 1 2 3 4
n+4
Содержимое RAM x(n+4) x(n) x(n+1) x(n+2) x(n+3) x(n+4)
Адрес RAM 0 1 2 3 4 0
n+5
Содержимое RAM x(n+5) x(n+1) x(n+2) x(n+3) x(n+4) x(n+5)
Адрес RAM 1 2 3 4 0 1
n+6
Содержимое RAM x(n+6) x(n+2) x(n+3) x(n+4) x(n+5) x(n+6)
...
55
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
КИХ-фильтр на основе циклического буфера – диаграмма

1 2 3 4 5 6 7 8 9 10 11 12 13 14

CLK

D[..] RAM = x(n) x[n] xxxxx x[n+1] xxxxx x[n+2]

WR

A[..] ROM = CT 2 0 1 2 3 4 0 1 2 3 4 0

Q[..] ROM h[1] h[0] h[4] h[4] h[3] h[2] h[1] h[0] h[4] h[3] h[2] h[1]

CT 1 0 1 2

A[..] RAM 0 1 2 3 4 0 1 2 3 4 0 1 2

Q[..] RAM x[n-2] x[n-1] x[n] x[n-4] x[n-3] x[n-2] x[n-1] x[n] x[n+1] x[n-3] x[n-2] x[n-1] x[n] x[n+1]

Y[n] p2 p3 y[n-1] p0 p1 p2 p3 y[n] p0 p1 p2 p3

56
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный децимирующий фильтр (спектры)

|S(f)| |S(f)|

11

f f
0 fs1/4 fs1/2 3fs1/4 fs1 0 fs1/4 fs1/2 3fs1/4 fs1

|H(f)|

22

f
0 fs1/4 fs1/2 3fs1/4 fs1

|S(f)|

33

f
0 fs1/4 fs1/2 3fs1/4 fs1

|S(f)| |S(f)|
наложение
спектров 44

f f
0 fs2/2 fs2 0 fs2/2 fs2

57
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный децимирующий фильтр (уравнения)
Коэффициент децимации R = 3
y(n+ 0) = h(0)*x(n+ 0) + h(1)*x(n - 1) + h(2)*x(n - 2) + h(3)*x(n - 3) + h(4)*x(n - 4) + h(5)*x(n - 5) + h(6)*x(n - 6) + ...
y(n+ 3) = h(0)*x(n+ 3) + h(1)*x(n+ 2) + h(2)*x(n+ 1) + h(3)*x(n+ 0) + h(4)*x(n - 1) + h(5)*x(n - 2) + h(6)*x(n - 3) + ...
y(n+ 6) = h(0)*x(n+ 6) + h(1)*x(n+ 5) + h(2)*x(n+ 4) + h(3)*x(n+ 3) + h(4)*x(n+ 2) + h(5)*x(n+ 1) + h(6)*x(n+ 0) + ...
y(n+ 9) = h(0)*x(n+ 9) + h(1)*x(n+ 8) + h(2)*x(n+ 7) + h(3)*x(n+ 6) + h(4)*x(n+ 5) + h(5)*x(n+ 4) + h(6)*x(n+ 3) + ...
y(n+12) = h(0)*x(n+12) + h(1)*x(n+11) + h(2)*x(n+10) + h(3)*x(n+ 9) + h(4)*x(n+ 8) + h(5)*x(n+ 7) + h(6)*x(n+ 6) + ...
y(n+15) = h(0)*x(n+15) + h(1)*x(n+14) + h(2)*x(n+13) + h(3)*x(n+12) + h(4)*x(n+11) + h(5)*x(n+10) + h(6)*x(n+ 9) + ...
y(n+18) = h(0)*x(n+18) + h(1)*x(n+17) + h(2)*x(n+16) + h(3)*x(n+15) + h(4)*x(n+14) + h(5)*x(n+13) + h(6)*x(n+12) + ...
y(n+21) = h(0)*x(n+21) + h(1)*x(n+20) + h(2)*x(n+19) + h(3)*x(n+18) + h(4)*x(n+17) + h(5)*x(n+16) + h(6)*x(n+15) + ...
SubFilter2
SubFilter1
SubFilter0

Коэффициент децимации R = 4
y(n+ 0) = h(0)*x(n+ 0) + h(1)*x(n - 1) + h(2)*x(n - 2) + h(3)*x(n - 3) + h(4)*x(n - 4) + h(5)*x(n - 5) + h(6)*x(n - 6) + ...
y(n+ 4) = h(0)*x(n+ 4) + h(1)*x(n+ 3) + h(2)*x(n+ 2) + h(3)*x(n+ 1) + h(4)*x(n+ 0) + h(5)*x(n - 1) + h(6)*x(n - 2) + ...
y(n+ 8) = h(0)*x(n+ 8) + h(1)*x(n+ 7) + h(2)*x(n+ 6) + h(3)*x(n+ 5) + h(4)*x(n+ 4) + h(5)*x(n+ 3) + h(6)*x(n+ 2) + ...
y(n+12) = h(0)*x(n+12) + h(1)*x(n+11) + h(2)*x(n+10) + h(3)*x(n+ 9) + h(4)*x(n+ 8) + h(5)*x(n+ 7) + h(6)*x(n+ 6) + ...
y(n+16) = h(0)*x(n+16) + h(1)*x(n+15) + h(2)*x(n+14) + h(3)*x(n+13) + h(4)*x(n+12) + h(5)*x(n+11) + h(6)*x(n+10) + ...
y(n+20) = h(0)*x(n+20) + h(1)*x(n+19) + h(2)*x(n+18) + h(3)*x(n+17) + h(4)*x(n+16) + h(5)*x(n+15) + h(6)*x(n+14) + ...
y(n+24) = h(0)*x(n+24) + h(1)*x(n+23) + h(2)*x(n+22) + h(3)*x(n+21) + h(4)*x(n+20) + h(5)*x(n+19) + h(6)*x(n+18) + ...
y(n+28) = h(0)*x(n+28) + h(1)*x(n+27) + h(2)*x(n+26) + h(3)*x(n+25) + h(4)*x(n+24) + h(5)*x(n+23) + h(6)*x(n+22) + ...
SubFilter3
SubFilter2
SubFilter1
SubFilter0

58
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный децимирующий фильтр (структуры)

x(n)
SubFilter0
SubFilter0 [[ hh00 hh33 hh66 ...
... ]]

x(n-1)

SubFilter1
SubFilter1 [[ hh11 hh44 hh77 ...
... ]]
 y(k)
RG
RG RG
RG x(n-2) RG
RG
x(n) SubFilter2
SubFilter2 [[ hh22 hh55 hh88 ...
... ]]

CLK :: 33

x(n)
SubFilter0
SubFilter0 [[ hh00 hh44 hh88 ...
... ]]

x(n-1)

SubFilter1
SubFilter1 [[ hh11 hh55 hh99 ...
... ]]

x(n-2)
 y(k)
SubFilter2
SubFilter2 [[ hh22 hh66 hh1010 ...
... ]]
RG
RG RG
RG RG
RG x(n-3)

x(n) SubFilter3
SubFilter3 [[ hh33 hh77 hh1111 ...
... ]]

CLK :: 44

59
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный интерполирующий фильтр (спектры)
|S(f)|
Спектр исходного
дискретного сигнала с
11
частотой
f дискретизации fs
0 fs/2 fs

|S(f)|
Спектр сигнала после
дополнения нулями
22
(три нуля между каждой
f парой отсчетов, M=4)
0 fs 2fs 3fs 4fs

|H(f)|
Частотная
характеристика
33
интерполирующего
f фильтра
0 fs/2 fs 2fs 3fs 7fs/2 4fs

|S(f)|
Спектр выходного
сигнала после
44
интерполяции с M=4
f (частота 4fs)
0 fs/2 fs 2fs 3fs 7fs/2 4fs

60
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный интерполирующий фильтр (уравнения)
Коэффициент интерполяции M = 3
y(k+ 0) = h(0)*x(n+0) + h(1)*0 + h(2)*0 + h(3)*x(n - 1) + h(4)*0 + h(5)*0 + h(6)*x(n - 2) + h(7)*0 + h(8)*0 + h(9)*x(n - 3) + ...
y(k+ 1) = h(0)*0 + h(1)*x(n+0) + h(2)*0 + h(3)*0 + h(4)*x(n - 1) + h(5)*0 + h(6)*0 + h(7)*x(n - 2) + h(8)*0 + h(9)*0 + ...
y(k+ 2) = h(0)*0 + h(1)*0 + h(2)*x(n+0) + h(3)*0 + h(4)*0 + h(5)*x(n - 1) + h(6)*0 + h(7)*0 + h(8)*x(n - 2) + h(9)*0 + ...
y(k+ 3) = h(0)*x(n+1) + h(1)*0 + h(2)*0 + h(3)*x(n+0) + h(4)*0 + h(5)*0 + h(6)*x(n - 1) + h(7)*0 + h(8)*0 + h(9)*x(n - 2) + ...
y(k+ 4) = h(0)*0 + h(1)*x(n+1) + h(2)*0 + h(3)*0 + h(4)*x(n+0) + h(5)*0 + h(6)*0 + h(7)*x(n - 1) + h(8)*0 + h(9)*0 + ...
y(k+ 5) = h(0)*0 + h(1)*0 + h(2)*x(n+1) + h(3)*0 + h(4)*0 + h(5)*x(n+0) + h(6)*0 + h(7)*0 + h(8)*x(n - 1) + h(9)*0 + ...
y(k+ 6) = h(0)*x(n+2) + h(1)*0 + h(2)*0 + h(3)*x(n+1) + h(4)*0 + h(5)*0 + h(6)*x(n+0) + h(7)*0 + h(8)*0 + h(9)*x(n - 1) + ...
y(k+ 7) = h(0)*0 + h(1)*x(n+2) + h(2)*0 + h(3)*0 + h(4)*x(n+1) + h(5)*0 + h(6)*0 + h(7)*x(n + 0) + h(8)*0 + h(9)*0 + ...
y(k+ 8) = h(0)*0 + h(1)*0 + h(2)*x(n+2) + h(3)*0 + h(4)*0 + h(5)*x(n+1) + h(6)*0 + h(7)*0 + h(8)*x(n+0) + h(9)*0 + ...
y(k+ 9) = h(0)*x(n+3) + h(1)*0 + h(2)*0 + h(3)*x(n+2) + h(4)*0 + h(5)*0 + h(6)*x(n+1) + h(7)*0 + h(8)*0 + h(9)*x(n+0) + ...

y(k+ 0) = h(0)*x(n+0) + h(3)*x(n - 1) + h(6)*x(n - 2) + h( 9)*x(n - 3) + h(12)*x(n - 4) + ... SubFilter0


y(k+ 1) = h(1)*x(n+0) + h(4)*x(n - 1) + h(7)*x(n - 2) + h(10)*x(n- 3) + h(13)*x(n - 4) + ... SubFilter1
y(k+ 2) = h(2)*x(n+0) + h(5)*x(n - 1) + h(8)*x(n - 2) + h(11)*x(n- 3) + h(14)*x(n - 4) + ... SubFilter2
y(k+ 3) = h(0)*x(n+1) + h(3)*x(n+ 0) + h(6)*x(n - 1) + h( 9)*x(n - 2) + h(12)*x(n - 3) + ...
y(k+ 4) = h(1)*x(n+1) + h(4)*x(n+ 0) + h(7)*x(n - 1) + h(10)*x(n- 2) + h(13)*x(n - 3) + ...
y(k+ 5) = h(2)*x(n+1) + h(5)*x(n+ 0) + h(8)*x(n - 1) + h(11)*x(n- 2) + h(14)*x(n - 3) + ...
y(k+ 6) = h(0)*x(n+2) + h(3)*x(n+ 1) + h(6)*x(n+ 0) + h( 9)*x(n - 1) + h(12)*x(n - 2) + ...
y(k+ 7) = h(1)*x(n+2) + h(4)*x(n+ 1) + h(7)*x(n+ 0) + h(10)*x(n- 1) + h(13)*x(n - 2) + ...
y(k+ 8) = h(2)*x(n+2) + h(5)*x(n+ 1) + h(8)*x(n+ 0) + h(11)*x(n- 1) + h(14)*x(n - 2) + ...
y(k+ 9) = h(0)*x(n+3) + h(3)*x(n+ 2) + h(6)*x(n+ 1) + h( 9)*x(n+ 0) + h(12)*x(n - 1) + ...

61
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный интерполирующий фильтр (уравнения)
Коэффициент интерполяции M = 4
y(k+ 0) = h(0)*x(n+0) + h(1)*0 + h(2)*0 + h(3)*0 + h(4)*x(n - 1) + h(5)*0 + h(6)*0 + h(7)*0 + h(8)*x(n - 2) + h(9)*0 + ...
y(k+ 1) = h(0)*0 + h(1)*x(n+0) + h(2)*0 + h(3)*0 + h(4)*0 + h(5)*x(n - 1) + h(6)*0 + h(7)*0 + h(8)*0 + h(9)*x(n - 2) + ...
y(k+ 2) = h(0)*0 + h(1)*0 + h(2)*x(n+0) + h(3)*0 + h(4)*0 + h(5)*0 + h(6)*x(n - 1) + h(7)*0 + h(8)*0 + h(9)*0 + ...
y(k+ 3) = h(0)*0 + h(1)*0 + h(2)*0 + h(3)*x(n+0) + h(4)*0 + h(5)*0 + h(6)*0 + h(7)*x(n - 1) + h(8)*0 + h(9)*0 + ...
y(k+ 4) = h(0)*x(n+1) + h(1)*0 + h(2)*0 + h(3)*0 + h(4)*x(n+0) + h(5)*0 + h(6)*0 + h(7)*0 + h(8)*x(n-1) + h(9)*0 + ...
y(k+ 5) = h(0)*0 + h(1)*x(n+1) + h(2)*0 + h(3)*0 + h(4)*0 + h(5)*x(n+0) + h(6)*0 + h(7)*0 + h(8)*0 + h(9)*x(n - 1) + ...
y(k+ 6) = h(0)*0 + h(1)*0 + h(2)*x(n+1) + h(3)*0 + h(4)*0 + h(5)*0 + h(6)*x(n+0) + h(7)*0 + h(8)*0 + h(9)*0 + ...
y(k+ 7) = h(0)*0 + h(1)*0 + h(2)*0 + h(3)*x(n+1) + h(4)*0 + h(5)*0 + h(6)*0 + h(7)*x(n+0) + h(8)*0 + h(9)*0 + ...
y(k+ 8) = h(0)*x(n+2) + h(1)*0 + h(2)*0 + h(3)*0 + h(4)*x(n+1) + h(5)*0 + h(6)*0 + h(7)*0 + h(8)*x(n+0) + h(9)*0 + ...
y(k+ 9) = h(0)*0 + h(1)*x(n+2) + h(2)*0 + h(3)*0 + h(4)*0 + h(5)*x(n+1) + h(6)*0 + h(7)*0 + h(8)*0 + h(9)*x(n+0) + ...

y(k+ 0) = h(0)*x(n+0) + h(4)*x(n - 1) + h( 8)*x(n - 2) + h(12)*x(n - 3) + h(16)*x(n - 4) + ... SubFilter0


y(k+ 1) = h(1)*x(n+0) + h(5)*x(n - 1) + h( 9)*x(n - 2) + h(13)*x(n - 3) + h(17)*x(n - 4) + ... SubFilter1
y(k+ 2) = h(2)*x(n+0) + h(6)*x(n - 1) + h(10)*x(n- 2) + h(14)*x(n - 3) + h(18)*x(n - 4) + ... SubFilter2
y(k+ 3) = h(3)*x(n+0) + h(7)*x(n - 1) + h(11)*x(n- 2) + h(15)*x(n - 3) + h(19)*x(n - 4) + ... SubFilter3
y(k+ 4) = h(0)*x(n+1) + h(4)*x(n+ 0) + h( 8)*x(n - 1) + h(12)*x(n - 2) + h(16)*x(n - 3) + ...
y(k+ 5) = h(1)*x(n+1) + h(5)*x(n+ 0) + h( 9)*x(n - 1) + h(13)*x(n - 2) + h(17)*x(n - 3) + ...
y(k+ 6) = h(2)*x(n+1) + h(6)*x(n+ 0) + h(10)*x(n- 1) + h(14)*x(n - 2) + h(18)*x(n - 3) + ...
y(k+ 7) = h(3)*x(n+1) + h(7)*x(n+ 0) + h(11)*x(n- 1) + h(15)*x(n - 2) + h(19)*x(n - 3) + ...
y(k+ 8) = h(0)*x(n+2) + h(4)*x(n+ 1) + h( 8)*x(n+ 0) + h(12)*x(n - 1) + h(16)*x(n - 2) + ...
y(k+ 9) = h(1)*x(n+2) + h(5)*x(n+ 1) + h( 9)*x(n+ 0) + h(13)*x(n - 1) + h(17)*x(n - 2) + ...

62
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный интерполирующий фильтр (структуры)
y(k)
SubFilter0
SubFilter0 [[ hh00 hh33 hh66 ...
... ]]

y(k+1)
SubFilter1
SubFilter1 [[ hh11 hh44 hh77 ...
... ]]
MX
MX MX
MX
y(k+2) RG
RG RG
RG RG
RG
x(n) SubFilter2
SubFilter2 [[ hh22 hh55 hh88 ...
... ]] y(k)

:: 33
LOAD/SHIFT
CLK

y(k)
SubFilter0
SubFilter0 [[ hh00 hh44 hh88 ...
... ]]

y(k+1)
SubFilter1
SubFilter1 [[ hh11 hh55 hh99 ...
... ]]

y(k+2)
SubFilter2
SubFilter2 [[ hh22 hh66 hh10
10
...
... ]]
MX
MX MX
MX MX
MX
y(k+3) RG
RG RG
RG RG
RG RG
RG
x(n) SubFilter3
SubFilter3 [[ hh33 hh77 hh1111 ...
... ]] y(k)

:: 44
LOAD/SHIFT
CLK

63
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный фильтр передискретизации M=3, R=2, M/R = 1.5

z(m)
SubFilter0
SubFilter0 [[ hh00 hh33 hh66 ...
... ]]

z(m+1)
SubFilter1
SubFilter1 [[ hh11 hh44 hh77 ...
... ]] MX
MX RG
RG y(k)

z(m+2)
x(n) SubFilter2
SubFilter2 [[ hh22 hh55 hh88 ...
... ]]
3×f0 / 2
CT
CT 33
CLK ×× 33 :: 22
f0 M 3×f0 R

f0

X x(0) x(1) x(2)

3f0

Z z(0) z(1) z(2) z(3) z(4) z(5) z(6) z(7)

3f0/2

Y y(0) = z(0) y(1) = z(2) y(2) = z(4) y(3) = z(6)

64
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазный фильтр передискретизации M=2, R=5, M/R = 0.4
z(m)
SubFilter0
SubFilter0 [[ hh00 hh22 hh44 ...
... ]]

MX
MX RG
RG y(k)

z(m+1)
x(n) SubFilter2
SubFilter2 [[ hh11 hh33 hh55 ...
... ]]
2×f0 / 5
CT
CT 22
CLK ×× 22 :: 55
f0 M 2×f0 R

f0

X x(0) x(1) x(2) x(3) x(4) x(5)

2f0

Z z(0) z(1) z(2) z(3) z(4) z(5) z(6) z(7) z(8) z(9) z(10) z(11)

2f0/5

Y y(0) = z(0) y(1) = z(5) y(2) = z(10)

65
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полифазные фильтры передискретизации (преобразования спектров)

M = 3, R = 2, M/R = 1.5 M = 2, R = 5, M/R = 0.4


S(f) S(f)
11 11
f0 f f0 f
S(f) S(f)
22 22
3f0 f 2f0 f
HI(f) HI(f)
33 33
3f0 f 2f0 f
S(f) S(f)
44 44
3f0 f 2f0 f
HD(f) HD(f)
55 55
3f0/2 3f0 f 2f0/5 2f0 f
S(f) S(f)
66 66
3f0/2 3f0 f 2f0/5 2f0 f

Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14 66


Фильтр с прямоугольным окном (уравнения)

Уравнение фильтра

соответствует передаточной функции

Частотная характеристика

FS
содержит N–1 нулей на частотах i ,
N
где FS – частота дискретизации,
i = 1 ... N – 1

67
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Фильтр с прямоугольным окном (структуры)

НЕРЕКУРСИВНАЯ РЕАЛИЗАЦИЯ РЕКУРСИВНАЯ РЕАЛИЗАЦИЯ

y(n) = x(n) + x(n – 1) + ... + x(n – (N-1)) y(N-1) = x(N-1)+x(N-2)+ ... +x(1)+x(0)
y(N) = x(N)+x(N-1)+ ... +x(2)+x(1) = x(N) + y(N-1) – x(0)
y(N+1) = x(N+1)+x(N)+ ... +x(3)+x(2) = x(N+1)+y(N) – x(1)
линия задержки
y(n) = x(n) + y(n-1) – x(n-N)
Регистр

Регистр

Регистр

Регистр

Регистр
Регистр

Регистр

Регистр

Регистр

Регистр
x(n)

Регистр
Регистр
y(n-1)
x(n) x(n-1) x(n-2) x(n-k+1) x(n-k)

k = N –1 x(n)

y(n)

Регистр

Регистр

Регистр

Регистр
Регистр

Регистр

Регистр

Регистр
x(n)
x(n-N)
y(n)
Reset

68
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Программируемый фильтр с прямоугольным окном

двухпортовая память
(Simple Dual-Port)
x[n] аккумулятор

RAM
RAM
RG
RG D[..] MX
MX +
N
N AW[..] RG
RG
WR  y[n-1]
D[..] Q[..]
CT
CT выход
AR[..] Q[..] результата
RD SR

управление

69
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структурные элементы CIC-фильтров
а) Идеальный интегратор б) Идеальный дифференциатор
Разностное уравнение Разностное уравнение
y
[
n
]y
[
n
1
]
x
[
n] y
[
n
]
x[
n
]
x
[
nM]
Функция передачи x(n) Функция передачи x(n)

1 y(n) H
(z
)
1z M
y(n)
H
I(z) 1 
C


1 z
z –1 z –M

I C

в) Дифференциатор с прореживанием
Разностное уравнение
y[
n ] x[n]x[n RM
] x(n) x(n) y(n)
Функция передачи
R y(n) R
H(
z
)1

zRM  C
CR
z –M

70
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структура децимирующего CIC-фильтра
Функция передачи N‑каскадного децимирующего фильтра с прореживанием R и дифференциальной
задержкой M

w(n) z(k)
x(n) R y(k)
I I I C C C

w(n) z(k)
x(n) R
  
RG
RG

RG

   y(k)

RG

RG

RG
Рис.1

RG RG RG
w(n) z(k)
x(n) R y(k)
I I I C C C

Рис.2 Конвейерные регистры

71
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Компенсация переполнения в CIC-дециматоре

4 (01002)
5 (01012) 3 (00112)

6 (01102) 2 (00102)

7 (01112) 1 (00012)

–8 (10002) 0 (00002)

–7 (10012) –1 (11112)

–6 (10102) –2 (11102)

–5 (10112) –3 (11012)
–4 (11002)

72
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Разрядность и усиление CIC-фильтра

Разрядность операций CIC-фильтра и его коэффициент усиления определяются формулами

Пример 1

Для
B0 = 12; N = 5; R = 24; M = 2

получаем

Bmax = 40; G = 0.94922


где Bmax – максимальная разрядность операций;

B0 – разрядность входных отсчетов; Пример 2

N – число каскадов; Для


R – коэффициент децимации; B0 = 12; N = 2; R = 24; M = 2
M – параметр дифференциальной задержки;
получаем
G – коэффициент усиления;
Bmax = 24; G = 0.5625
[.] – операция округления до большего целого.

73
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структурные
неоднородности ПЛИС –
память и DSP блоки

74
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Память ПЛИС (ROM Memory Mode)

address[..] – шина адреса


address[..] q[..] inclock – сигнал тактовой частоты входа
inclocken – разрешение входного тактирования

inclock outclock q[..] – шина выходных данных


inclocken outclocken outclock – сигнал тактовой частоты выхода
outclocken – разрешение выходного тактирования

inclock = outclock = clock, inclocken = outclocken = '1'

clock

address[..] A0 A1 A2 A3 A4 A5 A6 A7 ××× ×××


× ×

q[..] ××× Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
×

75
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Память ПЛИС (Single-Port Memory Mode)

data[..] – шина входных данных


address[..] – шина адреса
data[..] q[..] wren – сигнал разрешения записи
address[..]
wren inclock – сигнал тактовой частоты входа
inclock outclock inclocken – разрешение входного тактирования
inclocken outclocken q[..] – шина выходных данных
outclock – сигнал тактовой частоты выхода
outclocken – разрешение выходного тактирования

inclock = outclock = clock, inclocken = outclocken = '1'

clock

wren

address[..] A0 A1 A2 A3 A4 A5 A6 A7 ×××× ××××

data[..] D0 D1 ×××× ×××× D4 ×××× ×××× ×××× ×××× ××××

q[..] ×××× D0 D1 Q2 Q3 D4 Q5 Q6 Q7

76
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Память ПЛИС (Simple Dual-Port Memory Mode)

data[..] q[..]
wraddress[..] rdaddress[..]
порт порт
wren rden
записи чтения
wrclock rdclock
wrclocken rdclocken

data[..] – шина входных данных q[..] – шина выходных данных

wraddress[..] – шина адреса записи rdaddress[..] – шина адреса чтения

wren – сигнал разрешения записи rden – сигнал разрешения записи

wrclock – сигнал тактовой частоты записи rdclock – сигнал тактовой частоты записи

wrclocken – сигнал разрешения тактовой rdclocken – сигнал разрешения тактовой


частоты записи частоты чтения

77
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Память ПЛИС (Simple Dual-Port Memory Mode) – диаграммы

wrclocken = '1' ЗАПИСЬ


ЗАПИСЬ

wrclock

wren

wraddress[..] AW0 AW1 AW2 AW3 AW4 AW5 AW6 AW7 ×××× ××××

data[..] D0 D1 ×××× ×××× D4 ×××× ×××× ×××× ×××× ××××

rdclocken = '1' ЧТЕНИЕ


ЧТЕНИЕ

rdclock

rden

rdaddress[..] AR0 AR1 AR2 AR3 AR4 AR5 AR6

q[..] ×××× Q0 Q1 Q1 Q1 Q4

78
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Память ПЛИС (True Dual-Port Memory Mode)

data_a[..] data_b[..]
address_a[..] address_b[..]
wren_a wren_b
порт А порт В
clock_a clock_b
enable_a enable_b
q_a[..] q_b[..]

data_a[..] – шина входных данных data_b[..] – шина входных данных

address_a[..] – шина адреса address_b[..] – шина адреса

wren_a – сигнал разрешения записи wren_b – сигнал разрешения записи

clock_a – сигнал тактовой частоты clock_b – сигнал тактовой частоты

enable_a – сигнал разрешения тактирования enable_b – сигнал разрешения тактирования

q_a[..] – шина выходных данных q_b[..] – шина выходных данных

79
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Память ПЛИС (True Dual-Port Memory Mode) – диаграммы
enable_a = '1' ПОРТ
ПОРТ А
А

clock_a

wren_a

address_a[..] A0 A1 A2 A3 A4 A5 A6 A7 ×××× ××××

data_a[..] D0 D1 ×××× ×××× D4 ×××× ×××× ×××× ×××× ××××

q_a[..] ×××× D0 D1 Q2 Q3 D4 Q5 Q6 Q7

enable_b = '1' ПОРТ


ПОРТ B
B

clock_b

wren_b

address_b[..] A0 A1 A2 A3 A4 ×××× ××××

data_b[..] D0 ×××× D2 ×××× ×××× ×××× ××××

q_b[..] ×××× D0 Q1 D2 Q3 Q4

80
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
DSP-блоки ПЛИС
от предыдущего DSP-блока

18
MX
MX RG
RG
18
MX
MX RG
RG
× RG
RG

18
+
MX
MX RG
RG
18
MX
MX RG
RG
× RG
RG

18
+ MX
MX RG
RG
MX
MX RG
RG
18
MX
MX RG
RG
× RG
RG

18
+
MX
MX RG
RG
18
MX
MX RG
RG
× RG
RG

Блок умножителей Блок сумматоров

на следующий DSP-блок

81
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Пример мегафункций DSP-блоков ПЛИС

82
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Использование RAM и DSP блоков (FIR)

x(n) RG DSP блок 1 x(n) RG DSP блок 1


h(0) RG h(0) RG

RG x(n-1) RG
h(1) RG h(1) RG

RG x(n-2) RG
h(2) RG h(2) RG

RG x(n-3) RG
h(3) RG h(3) RG
y(n) y(n)

RG DSP блок 2 x(n-4) RG DSP блок 2


h(4) RG h(4) RG

RG x(n-5) RG
h(5) RG h(5) RG

RG x(n-6) RG
h(6) RG h(6) RG

RG x(n-7) RG
h(7) RG h(7) RG

83
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Использование RAM и DSP блоков (TDM FIR)
A B C D E F G H J K

x(n)
RG RG

RG ROM RG
RG
RG y(n)
RG RG

RG ROM RG
RG
RG
RG RG TT

RG ROM RG

RG RG
CLK ROM RG
RG
DSP блок
2xCLK

N Выход DSP блока Операция Выход


0 y0 = x(n-1)h(1) + x(n-3)h(3) + x(n-5)h(5) + x(n-7)h(7) Запись в RG T –
1 y1 = x(n)h(0) + x(n-2)h(2) + x(n-4)h(4) + x(n-6)h(6) Результат y(n) = y0+y1
2 y2 = x(n)h(1) + x(n-2)h(3) + x(n-4)h(5) + x(n-6)h(7) Запись в RG T –
3 y3 = x(n+1)h(0) + x(n-1)h(2) + x(n-3)h(4) + x(n-5)h(6) Результат y(n+1) = y2+y3
4 y4 = x(n+1)h(1) + x(n-1)h(3) + x(n-3)h(5) + x(n-5)h(7) Запись в RG T –
5 y5 = x(n+2)h(0) + x(n)h(2) + x(n-2)h(4) + x(n-4)h(6) Результат y(n+2) = y4+y5

84
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Использование RAM и DSP блоков (TDM FIR - диаграммы)
0 1 2 3 4 5 6 7 8 9 10 11 12 13

2xCLK

CLK

A x(n) x(n+1) x(n+2) x(n+3) x(n+4) x(n+5) x(n+6)

B x(n-1) x(n) x(n+1) x(n+2) x(n+3) x(n+4) x(n+5)

C h(1,3,5,7) h(0,2,4,6) h(1,3,5,7) h(0,2,4,6) h(1,3,5,7) h(0,2,4,6) h(1,3,5,7) h(0,2,4,6) h(1,3,5,7) h(0,2,4,6) h(1,3,5,7) h(0,2,4,6) h(1,3,5,7)

D x(n-1),h(1) x(n),h(0) x(n),h(1) x(n+1),h(0) x(n+1),h(1) x(n+2),h(0) x(n+2),h(1) x(n+3),h(0) x(n+3),h(1) x(n+4),h(0) x(n+4),h(1) x(n+5),h(0)

E x(n-1)*h(1) x(n)*h(0) x(n)*h(1) x(n+1)*h(0) x(n+1)*h(1) x(n+2)*h(0) x(n+2)*h(1) x(n+3)*h(0) x(n+3)*h(1) x(n+4)*h(0) x(n+4)*h(1)

F y0 y1 y2 y3 y4 y5 y6 y7 y8 y9

G y0 y1 y2 y3 y4 y5 y6 y7 y8

H y0 y2 y4 y6

J y(n) – y(n+1) – y(n+2) – y(n+3) –

K y(n) – y(n+1) – y(n+2) – y(n+3)

85
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Использование RAM и DSP блоков (интерполятор)

CLK
x(n) RG DSP блок 1
h(3), h(2), h(1), h(0)
ROM RG

RG
h(7), h(6), h(5), h(4)
ROM RG

RG
h(11), h(10), h(9), h(8)
ROM RG

RG
h(15), h(14), h(13), h(12)
ROM RG
RG
RG y(n)
RG DSP блок 2
h(19), h(18), h(17), h(16)
ROM RG

RG
h(23), h(22), h(21), h(20)
ROM RG

RG
h(27), h(26), h(25), h(24)
ROM RG

RG
h(31), h(30), h(29), h(28)
4xCLK ROM RG 4xCLK

86
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Использование RAM и DSP блоков (дециматор)

x(n)
RG

RG

RG

RG

RG
RG
RG

RG ROM RG
RG
RG
RG ROM RG
RG
RG RG
RG y(n)
RG
RG TT
RG

RG ROM RG

RG RG
RG ROM RG
RG
DSP блок
RG

CLK

CLK/4

87
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Использование RAM и DSP блоков (комплексный Tap-2 FIR)

Re x(n) DSP блок 1


RG
RG Re x(n) × Re h(0) – Im x(n) × Im h(0)
Im x(n)
RG
RG Re y(n)
RG
Re h(0)
RG Re x(n) × Im h(0) + Im x(n) × Re h(0)

RG
Im h(0)
RG

Re x(n-1) DSP блок 2


RG
RG Re x(n-1) × Re h(1) – Im x(n-1) × Im h(1)
Im x(n-1)
RG
RG Im y(n)
RG
Re h(1)
RG Re x(n-1) × Im h(1) + Im x(n-1) × Re h(1)

RG
Im h(1)
RG

88
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровой синтез
сигналов

89
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровой синтезатор сигналов (DDS) – структура

регистр
1 2 3 4

амплитуда
 амплитуда
приращения

Преобразование
Преобразование

аналог
Преобразование
 аналог
Преобразование
фазы

аккумулятор
аккумулятор

Аналоговый
Аналоговый
Фазовый
Фазовый


фильтр
фильтр
RG
RG выход

цифра 
фаза 
f0

цифра
фаза
Опорный
Опорный DDS
генератор
генератор fS

cos (n)
N N N P (n) Таблица
Таблица
 RG
RG sin
sin // cos
cos sin (n)
фазовый
аккумулятор 0 S

90
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровой синтезатор сигналов (DDS) – диаграммы

1 2

1 1

T1 T2

2 2

3 3

4 4

91
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровой синтезатор сигналов (DDS) – формулы
Разрядность фазового аккумулятора
Пример
Сформировать синусоидальный сигнал f0
частотой 17 325 761 Гц с точностью 0,5 Гц.
Частота опорного генератора fS равна 100 МГц
Точность установки частоты
Разрядность фазового аккумулятора

Код приращения фазы

Код приращения фазы

Значение выходной частоты

Точное значение выходной частоты

Обозначения:
fS – частота опорного генератора;
f0 – выходная (формируемая) частота; Ошибка выходной частоты
Δf – точность установки частоты;
N – разрядность фазового аккумулятора; 0,1692 Гц
Δθ – код приращения фазы.
92
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровой синтезатор сигналов (DDS) – фильтрация

ПП
0 ЗЧ

f0 = 10 МГц dB
fS = 30 МГц f0 fS 2fS

ПП = 10 МГц –60
0 10 20 30 40 50 60 70 80 МГц

ПП
0 ЗЧ

f0 = 10 МГц dB
fS = 60 МГц f0 fS

ПП = 40 МГц –60
0 10 20 30 40 50 60 70 80 МГц

93
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровые модуляторы (слайд 1)
Гармонический сигнал
, где

круговая частота и начальная фаза

Сигнал с модуляцией по амплитуде , где

– код полной фазы колебания

Структура АМ-модулятора

RG cos (n) SАМ(n)


RG (n) Таблица
Таблица
 sin
sin // cos
cos sin (n)
ФА
0 DDS A(n)

94
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровые модуляторы (слайд 2)

Частотная модуляция

Структура ЧМ-модулятора

RG cos (n)
RG (n) Таблица
Таблица
(n)
sin cos sin (n)
sin // cos
ФА
DDS
0

Фазовая модуляция
Структура ФМ-модулятора

cos (n)
RG
RG (n) Таблица
Таблица

sin cos sin (n)
sin // cos
ФА
DDS
0(n)
95
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровые модуляторы (слайд 3)
Изменение частоты ЛЧМ-сигнала Начальный и конечный коды приращения фазы
f

Дискретная длительность ЛЧМ-импульса

0 t0 t1 t0 t1 t Код приращения частоты

Полная фаза DDS для

Структура ЛЧМ-модулятора

cos (n)
RG
RG d·n (n) RG
RG (n) Таблица
Таблица
d
sin cos sin (n)
sin // cos
ЧА ФА
ΔН 0 DDS
R

96
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровые модуляторы (слайд 4)
Исходные данные:
начальная и конечная частота ЛЧМ-сигнала
системная частота
длительность сигнала
разрядность фазового аккумулятора

Расчет

Точные значения начальной и конечной частоты

Отклонения частот от заданных

97
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Цифровые модуляторы (слайд 5)
Модуляция несущей частоты одновременно по амплитуде и фазе

эквивалентна амплитудной модуляции ее квадратурных компонент квадратурными


компонентами модулирующего сигнала

Структура QAM-модулятора
I(n) Интерполятор
Интерполятор

Таблица cos (n)


Таблица
RG
RG (n) sin + SQAM(n)
sin // cos
cos

ФА
sin (n) –
0 DDS

Q(n) Интерполятор
Интерполятор

98
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Вычислители ЦОС с
переносом спектра

99
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Квадратурная дискретизация узкополосных сигналов (вариант 1)

Аналоговая часть
Смеситель
I(n)
ФНЧ АЦП
s(t)

Q(n)
ФНЧ АЦП

sin ω0t cos ω0t fД


Квадратурный
гетеродин Генератор

Недостатки Достоинства
•Трудно реализуемый квадратурный гетеродин •Низкая частота дискретизации в АЦП
•Трудно реализуемый смеситель с высокой
идентичностью каналов
•Аналоговые ФНЧ должны иметь абсолютно одинаковые
характеристики, что недостижимо

100
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Квадратурная дискретизация узкополосных сигналов (вариант 2)

A B C D

Смеситель
I(n)
ФНЧ
s(t) ПФ АЦП cos ω0t
Q(n)
ФНЧ
sin ω0t

Генератор DDS

Недостатки Достоинства
•Высокая частота дискретизации в АЦП •Высокая точность и стабильность
квадратурного гетеродина (DDS)
•Абсолютная идентичность каналов
смесителя и ФНЧ

101
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Квадратурная дискретизация – спектры

S(f)

A
–fД –fД/2 –f0 0 f0 fД/2 fД f

S(f)

B
–fД –fД/2 –f0 0 f0 fД/2 fД f
S(f)

АЧХ ФНЧ
C
–fД –fД/2 –f0 0 f0 fД/2 fД f

S(f)

D
–fД –fД/3 0 fД/3 fД f

102
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Квадратурная дискретизация – субдискретизация

S(f)

A
–f0 0 f0 f

S(f)

B
–f0 –fД f0–2fД –f0+fД 0 f0–fД –f0+2fД fД f0 f
S(f)

АЧХ ФНЧ

C
–f0 –fД 0 fД f0 f
S(f)

D
–f0 –fД –fД/4 0 fД/4 fД f0 f

103
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Субдискретизация (слайд 1)
Полоса сигнала
S(f) ΔF
Средняя частота сигнала (несущая)

0 fmin f0 fmax f

Узкополосный сигнал или иногда

Условие неперекрывающихся при дискретизации копий спектров

Для узкополосных сигналов (обобщенная теорема Котельникова)

где q имеет смысл НОМЕРА ДИАПАЗОНА ЧАСТОТ и может принимать только целые значения

,где – операция округления до целого, не превосходящего x

Для – теорема Котельникова

104
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Субдискретизация (слайд 2)

Если несущая частота одной из копий спектра


j

гетеродин смесителя, формирующий опорный сигнал

сильно упрощается (исключаются умножители).


g(n) = 1 + 0·j
g(n+1) = 0 + 1·j
Частоту дискретизации g(n+2) = –1 + 0·j
g(n+3) = 0 – 1·j
будем называть "оптимальной". Новая центральная g(n+4) = 1 + 0·j
частота копии спектра для диапазона частот номер q g(n+5) = 0 + 1·j
...

Условие: частота не должна быть иррациональным числом

105
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Пример выбора частоты дискретизации
Исходные данные Получаем
Определяем количество допустимых диапазонов частот дискретизации

Строим таблицу для q = 1 ... 5

q fД (МГц) f0' (МГц) fДопт=4 f0' (МГц)

1 154 ... ∞ 70 280 допустимо

2 77 ... 126 23 1/3 93 1/3 иррациональное число

3 51.333 ... 63 14 56 оптимально

оптимально (инверсия
4 38.5 ... 42 10 40
спектра)

5 30.8 ... 31.5 7 7/ 9 31 1/9 иррациональное число

Получаем две "оптимальных" частоты дискретизации 40 и 56 МГц.


106
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Пример выбора частоты дискретизации – спектры

14
S(f) 10

– +

–70 0 70 f

S(f)

– +

–70 –56 –42 –14 0 14 42 56 70 f

S(f)

+ –

–70 –50 –40 30 0 10 30 40 50 70 f

107
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Многокаскадный децимирующий фильтр

дБ дБ
0 0

–15 –15

–30 –30

–45 –45

–60 –60

–75 –75

–90 –90
0 fД/2 f 0 fД/R/2 fД/R f
fД/R/4

ОЧЕНЬ БОЛЬШОЙ ПОРЯДОК ФИЛЬТРА


дБ
0
ФНЧ –30

CIC CFIR PFIR –60

:R :2 :2 –90

–120

–150

–180
0 fД/R/2 fД/R f

108
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Требования к стабильности частоты дискретизации

Шум, вызванный нестабильностью Изменение отношения сигнал/шум (SNR) и эффективного


фронта такта дискретизации количества разрядов АЦП (ENOB) в зависимости от
(джиттером) джиттера (ta)

109
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Специальные
вычисления в ЦОС

110
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Арифметические основы CORDIC (слайд 1)
Алгоритм координатного вращения (COordinat Rotation DIgital Computer) CORDIC

y
x 1, y 1

x0, y0

111
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Арифметические основы CORDIC (слайд 2)

y x n, y n
x 1 , y1
xn+1, yn+1
zn+1
n

x 0, y 0

112
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Арифметические основы CORDIC (слайд 3)

Ряд сходится для

при соответствующем выборе угла поворота Sn

113
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Арифметические основы CORDIC (слайд 4)
Подставляя

получим

где

Это позволяет исключить масштабирование на каждой итерации


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

Величина называется радиусом вращения

114
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Арифметические основы CORDIC (слайд 5)
Последовательность Sn определяет направление поворота вектора на
каждой итерации. Значения этой последовательности определяются в ходе
вычислений, поэтому алгоритм CORDIC называют алгоритмом с
динамическим выбором направления вращения.
Формы алгоритма
ПРЯМАЯ (z → 0) ИНВЕРСНАЯ (y → 0)

Параметр m определяет тип функции CORDIC, а εn – набор (обычно таблица)


заранее вычисленных констант, определяемых типом функции.
115
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Функции алгоритма CORDIC
Тригонометрические: Гиперболические:

Линейные: ; ; ; ;

Преобразования алгоритма в общем виде

116
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Применение алгоритма CORDIC (слайд 1)
Тригонометрические функции
Прямая форма

Частные случаи прямой формы

Инверсная форма

Частные случаи инверсной формы

117
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Применение алгоритма CORDIC (слайд 2)
Гиперболические функции
Прямая форма

Частные случаи прямой формы

Инверсная форма

Частные случаи инверсной формы

118
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Применение алгоритма CORDIC (слайд 3)
Линейные функции
Прямая форма

Частный случай прямой формы

Инверсная форма

Частный случай инверсной формы

119
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структура вычислителя CORDIC (ядро – CORE)

MX
MX RG
RG
x0 xn
+
>>i
>>i +/–
канал X

>>i
>>i +/–
y0 +
MX
MX RG
RG
yn
канал Y

MX
MX RG
RG
z0 zn
+

канал Z
ROM
ROM ε +/–

sign(zi ) i
MX
MX CT
CT
управление sign(yi )

120
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Структура вычислителя CORDIC (блок аппаратного сдвига)

A B C
MX
MX MX
MX MX
MX MX
MX
>>8
>>8 1 >>4
>>4 1 >>2
>>2 1 >>1
>>1 1
16 16
X Y

0 0 0 0

23 22 21 20

1 0 1 1
i = 1110 = 10112
Примеры арифметического сдвига вправо
i = 10112 i = 00102 i = 00002

X 1110 0000 1111 01012 1110 0000 1111 01012 1110 0000 1111 01012
A 1111 1111 1110 00002 1110 0000 1111 01012 1110 0000 1111 01012
B 1111 1111 1110 00002 1110 0000 1111 01012 1110 0000 1111 01012
C 1111 1111 1111 10002 1111 1000 0011 11012 1110 0000 1111 01012
Y 1111 1111 1111 11002 1111 1000 0011 11012 1110 0000 1111 01012

121
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Содержимое ROM ядра CORDIC
Таблица
Содержимое постоянной N Арктангенс(рад) Dec Hex
памяти арктангенсов ROM 0 0.7853981634 8192 0x2000
вычисляется заранее любым
1 0.4636476090 4836 0x12E4
доступным методом. При
2 0.2449786631 2555 0x09FB
переходе к конечной
разрядной сетке значение 3 0.1243549945 1297 0x0511
арктангенса умножается на 4 0.0624188100 0651 0x028B
коэффициент, который равен 5 0.0312398334 0325 0x0145
2k-1, где k – выбранная 6 0.0156237286 0162 0x00A2
разрядность. Множитель 7 0.0078123411 0081 0x0051
учитывает знак числа. 8 0.0039062301 0040 0x0028
Пример содержимого ROM 9 0.0019531225 0020 0x0014
для 16-разрядного 10 0.0009765622 0010 0x000A
представления арктангенса 11 0.0004882812 0005 0x0005
приведен в таблице. В этом 12 0.0002441406 0002 0x0002
случае угол величиной π 13 0.0001220703 0001 0x0001
радиан соответствует коду 14 0.0000610352 0000 0x0000
215=32768. 15 0.0000305176 0000 0x0000

122
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Полная структура вычислителя CORDIC

X x0 xn X'
Пред
Пред Пост
Пост
Y y0 CORDIC
CORDIC yn Y'
обработка
обработка обработка
обработка
Core
Core
Z zz 
 [–/2;/2]
[–/2;/2] z0 zn  KK Z'

Отображение исходного вектора Вращение вектора. При необходимости,


в правую координатную Для тригонометрических коррекция результатов
полуплоскость (коррекция Z), в функций следует вычислений
соответствии с областью учитывать радиус
сходимости ряда θ, ограниченной вращения P≈1.64676, что
интервалом ± π/2. требует дополнительного
разряда в
арифметических блоках.

123
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Предобработка CORDIC
Прямая форма

Вариант 1 Вариант 2 Вариант 3

y y
x0,y0
x,y
x
z0
π/2
θ
θ
x,y π/2
x z0
x0,y0

124
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Предобработка CORDIC
Инверсная форма

Вариант 1 Вариант 2 Вариант 3

y y
x0,y0

x
π/2
z0
x,y z0 z
x0,y0
z
x π/2
x,y

125
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Точность вычислений CORDIC

126
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
CORDIC Пример 1. Перевод полярных координат в декартовы (1)
Таблица
Исходные данные:
n zn xn yn sn
0 -10922 16367 0 -1
1 -2730 16367 -16367 -1
Переход в 16‑разрядную сетку: 2 2106 8183 -24550 1
3 -449 14321 -22505 -1
4 848 11507 -24295 1
5 197 13026 -23576 1
6 -128 13763 -23169 -1
7 34 13400 -23384 1
Инициализация вычислений: 8 -47 13583 -23280 -1
9 -7 13492 -23333 -1
10 13 13446 -23359 1
Значения переменных на итерациях 11 3 13469 -23346 1
алгоритма показаны в таблице, 12 -2 13481 -23340 -1
процесс вычислений управляется по 13 0 13475 -23343 1
знаку переменной z (прямая форма). 14 -1 13478 -23342 -1
15 -1 13476 -23342 -1
127
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
CORDIC Пример 1. Перевод полярных координат в декартовы (2)

Интерпретация результатов:

Проверка:

Вычислительная ошибка:

Графическое представление поворота вектора

128
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
CORDIC Пример 2. Перевод декартовых координат в полярные (1)
Таблица
Исходные данные:
n yn xn zn sn
0 8028 16220 0 1
1 -8192 24248 8192 -1
Переход в 16‑разрядную сетку: 2 3932 28344 3356 1
3 -3154 29327 5911 -1
4 511 29722 4614 1
5 -1346 29753 5265 -1
6 -417 29796 4940 -1
7 48 29803 4778 1
Инициализация вычислений:
8 -184 29803 4859 -1
9 -68 29804 4819 -1
10 -10 29805 4799 -1
Значения переменных на итерациях 11 19 29806 4789 1
алгоритма показаны в таблице, 12 5 29806 4794 1
управление сумматорами – по знаку 13 -2 29806 4796 -1
переменной y (инверсная форма). 14 1 29807 4795 1
15 0 29807 4795 1
129
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
CORDIC Пример 2. Перевод декартовых координат в полярные (2)

Интерпретация результатов:

Проверка:

Вычислительная ошибка:

Графическое представление поворота вектора

0.000116 радиан = 0.00667 градуса = 0.4 минуты

130
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Синхронизация и
управление в вычислителях
устройств ЦОС

131
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Управляющие (конечные) автоматы

входные Арифметическое
Арифметическое выходные
X[n..1] КС1 D[k..1] М Q[k..1] КС2 Y[m..1]
данные (операционное)
(операционное) данные КС1 М КС2
устройство
устройство
(f) CLK (S) (g)
Load АУ
АУ Ready

внутренние
сигналы
управления

M = {S, X, Y, f, g},
Устройство
Устройство управления
управления где S – множество состояний автомата (S0...Sk-1);
(управляющий
(управляющий автомат)
автомат)
X – множество входных векторов (сигналов);
УУ Y – множество выходных векторов (сигналов);
f – функция переходов;
g – функция выходов.
Q – текущее состояние автомата (Q принадлежит S);
CLK D – следующее состояние автомата (D принадлежит S);
D = f(X,Q);
Reset Y = g(Q) для автомата Мура и
Y = g(X,Q) для автомата Мили

132
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Управляющий автомат – исходные данные

Исходными данными для проектирования управляющего автомата является временная


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

1 2 3 4 5 6

CLK

Start Зона нечувствительности к запуску

cond

cout1

cout0

State s0 s1 s2 s3/s5 s4/s6 s0

133
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Управляющий автомат – граф и функция выходов

Граф управляющего автомата Определение функции выходов

Вершины графа – состояния управляющего Для каждого выхода cout0 и cout1


автомата, пути – переходы между состояниями задаются их значения в каждом из
(условные или безусловные). состояний s0 – s6 управляющего автомата
Граф управляющего автомата строится с помощью State Tool и (функция State Maсhine Table редактора Quartus II)
Transition Tool соответствующего редактора Quartus II.

134
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Управляющий автомат – VHDL код
LIBRARY
LIBRARY ieee;
ieee; 1 PROCESS
PROCESS (fstate,start,cond)
(fstate,start,cond) 2 WHEN
WHEN s3s3 =>
=> 3
USE
USE ieee.std_logic_1164.all;
ieee.std_logic_1164.all; BEGIN
BEGIN reg_fstate
reg_fstate <=
<= s4;
s4;
CASE
CASE fstate
fstate IS
IS cout1 <= '1';
cout1 <= '1';
ENTITY
ENTITY SM2 SM2 IS IS cout0
cout0 <=
<= '0';
'0';
PORT
PORT ( ( WHEN
WHEN s0 s0 =>
=>
reset
reset :: ININ STD_LOGIC
STD_LOGIC :=:= '0';
'0'; IF
IF ((start
((start == '0'))
'0')) THEN
THEN WHEN
WHEN s4s4 =>
=>
clock : IN STD_LOGIC;
clock : IN STD_LOGIC; reg_fstate
reg_fstate <= s0;
<= s0; reg_fstate
reg_fstate <=
<= s0;
s0;
start
start :: IN
IN STD_LOGIC
STD_LOGIC :=
:= '0';
'0'; ELSE
ELSE cout1
cout1 <=
<= '0';
'0';
cond : IN STD_LOGIC :=
cond : IN STD_LOGIC := '0'; '0'; reg_fstate
reg_fstate <= <= s1;
s1; cout0
cout0 <=
<= '1';
'1';
cout0
cout0 :: OUTOUT STD_LOGIC;
STD_LOGIC; END
END IF;IF;
cout1 : OUT STD_LOGIC
cout1 : OUT STD_LOGIC cout1
cout1 <= <= '0';
'0'; WHEN
WHEN s5s5 =>
=>
);); cout0
cout0 <= <= '0';
'0'; reg_fstate
reg_fstate <=
<= s6;
s6;
END
END SM2;SM2; cout1 <= '0';
cout1 <= '0';
WHEN
WHEN s1s1 =>
=> cout0
cout0 <=
<= '1';
'1';
ARCHITECTURE
ARCHITECTURE BEHAVIOR
BEHAVIOR OF OF SM2
SM2 IS
IS reg_fstate
reg_fstate <=
<= s2;
s2;
TYPE
TYPE type_fstate
type_fstate IS IS (s0,s1,s2,s3,s4,s5,s6);
(s0,s1,s2,s3,s4,s5,s6); cout1
cout1 <=
<= '1';
'1'; WHEN
WHEN s6s6 =>
=>
SIGNAL
SIGNAL fstate
fstate :: type_fstate;
type_fstate; cout0
cout0 <=
<= '1';
'1'; reg_fstate
reg_fstate <=
<= s0;
s0;
SIGNAL
SIGNAL reg_fstate
reg_fstate :: type_fstate;
type_fstate; cout1
cout1 <=
<= '1';
'1';
WHEN
WHEN s2 s2 =>
=> cout0
cout0 <=
<= '0';
'0';
BEGIN
BEGIN IF
IF ((cond
((cond == '1'))
'1')) THEN
THEN
PROCESS
PROCESS (clock,reset,reg_fstate)
(clock,reset,reg_fstate) reg_fstate
reg_fstate <= s5;
<= s5; WHEN
WHEN OTHERS
OTHERS => =>
BEGIN
BEGIN ELSE
ELSE cout0
cout0 <=
<= 'X';
'X';
IF
IF (reset='1')
(reset='1') THEN
THEN reg_fstate
reg_fstate <= <= s3;
s3; cout1
cout1 <=
<= 'X';
'X';
fstate
fstate <=
<= s0;
s0; END
END IF;IF; report
report "Reach
"Reach undefined
undefined state";
state";
ELSIF
ELSIF (clock='1'
(clock='1' AND
AND clock'event)
clock'event) THEN
THEN cout1
cout1 <= <= '1';
'1'; END CASE;
END CASE;
fstate
fstate <=
<= reg_fstate;
reg_fstate; cout0
cout0 <= <= '1';
'1'; END
END PROCESS;
PROCESS;
END
END IF;IF; END BEHAVIOR;
END BEHAVIOR;
END
END PROCESS;
PROCESS;

135
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Управляющий автомат – результат симуляции

Моделирование работы управляющего автомата в симуляторе


Quartus II при входном сигнале условия cond = 0

Моделирование работы управляющего автомата в симуляторе


Quartus II при входном сигнале условия cond = 1

136
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Пример управляющего автомата (УА) ЦФ с РА (вариант 1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

CLK

START

STATE s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s0

EN

LOAD

BIT0

ADD_SUB

MAC_RST

READY

START=0

RESET=1 START=1
s0
s0 s1
s1 s2
s2 s3
s3 s4
s4 s5
s5

s11
s11 s10
s10 s9
s9 s8
s8 s7
s7 s6
s6

137
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Пример УА ЦФ с РА (вариант 2)

КОНВЕЙЕР
Уровень 0 Уровень 1 Уровень 2 Уровень 3 Уровень 4 Уровень 5
Регистры
Регистры Последова-
Последова- Табличные
Табличные Параллель-
Параллель- Параллель-
Параллель- Масштаби-
Масштаби-
сдвига
сдвига тельные
тельные умножители
умножители ные
ные ные
ные рующий
рующий
SR
SR сумматоры
сумматоры LUT
LUT сумматоры
сумматоры сумматоры
сумматоры аккумулятор
аккумулятор
SSum
SSum Sum
Sum Sum
Sum MACC
MACC

EN LOAD BIT0 ADD_SUB MAC_RST

Logic 1 Logic 2 Logic 3

D D D D D D D D D D D D D D D
START
D
D D
D D
D D
D D
D

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11
START
D
D D
D D
D D
D D
D D
D D
D D
D D
D D
D D
D

Logic 1

Logic 2

Logic 3

Logic 4

138
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Пример УА ЦФ с РА на регистре сдвига

Logic 1 LOAD

1
EN

Logic 2
BIT0
1

Logic 3
MAC_RST
1

ADD_SUB
1

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 Logic 4


START READY
D
D D
D D
D D
D D
D D
D D
D D
D D
D D
D D
D

Logic 1

Logic 2

Logic 3

Logic 4

139
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Временные диаграммы УА ЦФ с РА на регистре сдвига
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

CLK

START

STATE s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s0


T1
T2
T3
T4
T5
T6
T7
T8
T9
T10
T11

EN

LOAD

BIT0

ADD_SUB

MAC_RST

READY

140
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Глобальное управление конвейером обработки

Структура системы ЦОС – вычислительный конвейер

ВМ
ВМ ВМ
ВМ ВМ
ВМ ВМ
ВМ

ИНТЕРФЕЙС
ИНТЕРФЕЙС
Данные
11 22 33 N
N

CLK

Запуск
Устройство
Устройство управления
управления ии синхронизации
синхронизации

ВМ – вычислительный модуль

141
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Распределенное (локальное) управление

ВМ
ВМ 11 ВМ
ВМ 22 ВМ
ВМ N
N

ИНТЕРФЕЙС
ИНТЕРФЕЙС
БАО БАО БАО
Данные 1 2 N
RDY

STB RDY STB RDY STB RDY

Запуск
ЛУУ ЛУУ ЛУУ

CLK

ВМ – вычислительный модуль STB – строб данных (признак готовности входных данных)


БАО – блок арифметических операций RDY – готовность данных (признак готовности выходных
ЛУУ – локальное устройство управления данных)

142
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Диаграммы распределенного управления

CLK

Данные
RDY → STB1
Запуск
T1

Выход 1
RDY1 → STB2
Признак 1

Выход N-1
RDY N-1 → STB N
Признак N-1
TN

Выход N
RDY N
Признак N

143
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Локальное управление вычислительного модуля

БАО

Регистр выхода
Регистр входа

Арифметика 1

Арифметика 2

Арифметика 3

Арифметика 4
Регистр 1

Регистр 2

Регистр 3
Данные Данные

CE CE CE CE CE

ЛУУ
TS1 TS2 TS3 TS4
STB RDY
D Q D Q D Q D Q D Q
C C C C C

TP1 TP2 TP3 TP4 Признак


Запуск & D Q
D Q D Q D Q D Q
E E E E C
C C C C
CLK

144
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Диаграммы локального управления ВМ

CLK
Данные
STB
Запуск

TS1
TS2
TS3
TS4

TP1
TP2
TP3
TP4

Данные
RDY
Признак

145
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
146
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Вычислители ЦОС с
плавающей точкой

147
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
148
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
149
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
Заключение

150
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14
151
Лекции «Аппаратные средства ЦОС» Copyright ©Кузин А.А. 2013-14

Вам также может понравиться