При разработке устройств на базе ПЛИС иногда возникает необходимость вычисления значений математических функций. Это может потребоваться при разработке систем управления, систем навигации, устройств обработки видео информации и т. д. Схемы вычисления математических функций, как правило, реализовывают с помощью ПЗУ, содержащим таблицу значения функций, записанную с заданным шагом.
В простейшем случае, если точность задания аргументов не высока, можно использовать прямые схемы доступа, когда для данного набора аргументов выбирается ближайший адрес и по нему считывается значение функции. интегральный программируемый математический линейный Однако при разработке схем вычисления функций при таком подходе могут возникать проблемы больших объёмом ПЗУ при большом числе разрядов задания значений аргументов. В этом случае можно ценой небольшой потери точности в 24 раза уменьшить объём ПЗУ используя методы линейной экстраполяции функций.
Рассмотрим пример функции одной переменной F (X). Пусть ПЗУ имеет разрядность n, а разрядность аргумента равна m (m>n). При этом разрядные сетки адреса ПЗУ A и аргумента X имеют вид, показанных на рис.
A.
i i+1 i+2 i+3.
X.
j j+1 j+2 j+3 j+4 j+5 j+6.
Разрядные сетки аргумента X и адреса ПЗУ A для случая m=n-1.
Положим для простоты, что m=n-1, тогда для значений аргументов, не попадающих в разрядную сетку значений адреса (Xj+1, Xj+3, Xj+5,) значение функции можно вычислить по стандартной интерполяционной формуле.
F (Xj+1)=(F (Xj) + F (Xj+2))/2.
Отметим, что операцию деления на два можно легко реализовать с помощью сдвига кода на один разряд вправо (в сторону младших разрядов). Вычисление функции, реализованное с помощью такого подхода, потребует два такта работы схемы.
Данная схема вычислений может применяться и при значениях m=n-2, однако при этом время вычисления значений функции будет занимать не один, а два такта, поскольку придётся сначала рассчитать значение функции на сетке с m=n-1, а только затем перейти к расчётам на сетке с m=n-2.
Естественно при этом удваивается объём аппаратуры, необходимой для реализации соответствующих вычислений.