Расчет реального быстродействия устройства

Как было подсчитано ранее число тактов на выполнение умножений равно 2(92+89)=362. Помимо этого в процессе определения выходного отсчета необходимо выполнить 24 операции сложения, которые занимают в общей сложности 24(7+4+7)=432 такта. Т.о. в общее число тактов, необходимых для вычисления одного выходного отсчета равно 794 такта.

Мы дискретизируем входной сигнал с частотой 15 кГц, тогда максимальное время, затрачиваемое на обработку одного выходного отсчета равно .

При тактовой частоте 1,5 МГц время обработки одного выходного отсчета равно . Это нас не устраивает, поэтому придется поменять элементную базу. Вместо микропроцессора будет использоваться ПЛИС фирмы ALTERA семейства FLEX10K. Программа разрабатывалась на языке AHDL с помощью пакета MAX+2.

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

*************************************************************"ku";"summator";"n";"nn";filter

([7 0] : INPUT =GND;: INPUT;[15 0] : OUTPUT;

)_HRAN : ku;[3 0] : summator;[1 0] : nn;[1 0] : n;_HRAN.takt = TAKT;[].takt = TAKT;[1 0].takt = TAKT;[1 0].takt = TAKT;_HRAN.vhod[7 0] = VHOD[7 0];[0].vhod[7 0] = REG_HRAN.vihod[15 8];[1].vhod[7 0] = REG_HRAN.vihod[39 32];[0].vhod[7 0] = REG_HRAN.vihod[23 16];[1].vhod[7 0] = REG_HRAN.vihod[31 24];

%суммируем коэффициенты с отрицательным знаком%

SUMMER[0].a[7 0] = REG_HRAN.vihod[7 0];[0].b[7 0] = shesty[0].vihod[7 0];[1].a[7 0] = try[1].vihod[7 0];

SUMMER[1].b[7 0] = SUMMER[0].sum[7 0];

%суммируем коэффициенты с положительным знаком%

SUMMER[2].a[7 0] = REG_HRAN.vihod[47 40];[2].b[7 0] = shesty[1].vihod[7 0];[3].a[7 0] = try[0].vihod[7 0];[3].b[7 0] = SUMMER[2].sum[7 0];[7 0] = SUMMER[3].sum[7 0];

VIHOD[15 8] = SUMMER[1].sum[7 0];;

************************************************************

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

*************************************************************"summator";"mult";N

([7 0] : INPUT =GND;[7 0] : OUTPUT;: INPUT;

)[2 0] : summator;:mult;

%подсоединен тактовый сигнал%

SUMMER[2 0].takt = TAKT;.takt = TAKT;

%блок домножения входного отсчета на коэффициент 0,280448%

.vhod[7 0] = VHOD[7 0];

%блок суммирования для n-1 отсчета%

SUMMER[0].a[7 0] = VHOD[7 0];[0].b[7 0] = VHOD[7 0];[1].a[7 0] = VHOD[7 0];[1].b[7 0] = MULTI.vihod[7 0];[2].a[7 0] = SUMMER[0].sum[7 0];[2].b[7 0] = SUMMER[1].sum[7 0];

VIHOD[7 0] = SUMMER[2].sum[7 0];;

*************************************************************

%регистр хранения входных отсчетов

0 последний отсчет по убыванию

8 предпоследний отсчет по убыванию и т.д.

23 16

24

32

40 n-5 отсчет %ku

([7 0] : INPUT ;: INPUT;[47 0] : OUTPUT;

)[47 0] : dffe;[].clk = takt;[].ena = VCC;[7 0] = VHOD[7 0];i in 9 to 48 generate[i-1].d = Tr[i-9].q;generate;

VIHOD[]=Tr[].q; ;

*************************************************************

%программа перемножитель 8-битного числа на коэффициент 0,280448%

INCLUDE "summator.inc";mult

([7 0] : INPUT;: INPUT;[7 0] : OUTPUT;

): summator;: summator;.takt=takt;.takt=takt;.a[5 0]=vhod[7 2];.b[1 0]=vhod[7 6];.a[6 0]=su0.sum[6 0];.b[0]=vhod[7];

vihod[7 0]=su1.sum[7 0];;

*************************************************************

%программа перемножитель 8-битного числа на коэффициент 0,66655

10101010%"summator.inc";multt

([7 0] : INPUT;: INPUT;[7 0] : OUTPUT;

): summator;: summator;: summator;.takt=takt;.takt=takt;.takt=takt;.a[6 0]=vhod[7 1];.b[4 0]=vhod[7 3];.a[2 0]=vhod[7 5];.b[0]=vhod[7];.a[7 0]=su0.sum[7 0];.b[7 0]=su1.sum[7 0];[7 0]=su2.sum[7 0];;

*************************************************************"summator";"multt";NN

([7 0] : INPUT =GND;[7 0] : OUTPUT;: INPUT;

)[5 0] : summator;:multt;

%подсоединен тактовый сигнал%

SUMMER[5 0].takt = TAKT;.takt = TAKT;

%блок домножения входного отсчета на коэффициент 0,280448%

.vhod[7 0] = VHOD[7 0];

%блок суммирования для n-1 отсчета%

SUMMER[0].a[7 0] = VHOD[7 0];[0].b[7 0] = VHOD[7 0];[1].a[7 0] = VHOD[7 0];[1].b[7 0] = VHOD[7 0];[2].a[7 0] = VHOD[7 0];[2].b[7 0] = VHOD[7 0];[3].a[7 0] = SUMMER[0].sum[7 0];[3].b[7 0] = MULTTI.vihod[7 0];[4].a[7 0] = SUMMER[1].sum[7 0];[4].b[7 0] = SUMMER[2].sum[7 0];[5].a[7 0] = SUMMER[3].sum[7 0];[5].b[7 0] = SUMMER[4].sum[7 0];[7 0] = SUMMER[5].sum[7 0];;

Перейти на страницу: 1 2

Прочтите также:

Технология размещения базовых станций связи стандарта DCS-1800
Среди современных систем мобильной радиосвязи наиболее стремительно развиваются системы сотовой радиотелефонной связи. Их внедрение позволило решить проблему экономического использования ...

Многовибраторная антенная решетка с рефлектором 16х4 эт
Рассчитать чертёж, КНД, ДН, Rвх многовибраторной антенной решетки с рефлектором 16х4 эт. Построить по таблицам, в полярной и декартовой системе координат расчётную ДН в Е и Н плоскостях. ...

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

Основные разделы

Copyright © 2008 - 2019 www.techmatch.ru