Типы данных и масштабирование в цифровом оборудовании

Типы данных с фиксированной точкой

В цифровом оборудовании номера сохраняются в двоичных словах. Двоичное слово является последовательностью бит с фиксированной длиной (1 и 0). Как аппаратные компоненты или программные функции интерпретируют эту последовательность 1 и 0 определяются типом данных. Двоичные числа представлены как типы данных с фиксированной точкой, так и с плавающей точкой.

Тип данных с фиксированной точкой характеризуется размером слова в битах, положением двоичной точки и подписью или беззнаком. Положение двоичной точки является средством, с помощью которого значения с фиксированной точкой масштабируются и интерпретируются.

Например, двоичное представление обобщенного числа с фиксированной точкой (со знаком или без знака) показано ниже:

где

  • b i есть ith двоичная цифра.

  • wl - размер слова в битах.

  • b wl-1 является местоположением самого значительного, или самого высокого, бита (MSB).

  • b 0 является местоположением наименее значимого, или самого низкого, бита (LSB).

  • Двоичная точка показана на четырех местах слева от LSB. В этом примере говорят, что число имеет четыре дробных бита или длину дроби четыре.

Типы данных с фиксированной точкой могут быть либо подписанными, либо неподписанными. Является ли значение с фиксированной точкой подписанным или неподписанным, обычно не кодируется явным образом в двоичном слове; то есть бит знака отсутствует. Вместо этого информация о знаке неявно определяется в компьютерной архитектуре.

Подписанные двоичные номера с фиксированной точкой обычно представлены на оборудовании компьютера одним из трех способов:

  • Знак/амплитуда - один бит двоичного слова всегда является выделенным битом знака, в то время как остальные биты слова кодируют величину числа. Отрицание с использованием представления знак/амплитуда состоит из переворачивания бита знака с 0 (положительный) на 1 (отрицательный) или с 1 до 0.

  • Дополнение - Отрицание двоичного числа в дополнении требует побитового дополнения. То есть все 0 переворачиваются на 1, а все 1 - на 0. В дополнение обозначения существует два способа представлять ноль. Двоичное слово всех 0's представляет «положительный» нуль, в то время как двоичное слово всех 1's представляет «отрицательный» нуль.

  • Дополнение двух - Отрицание, использующее представление дополнения двух со знаком, состоит из битовой инверсии (перевод в дополнение), за которой следует двоичное сложение аргумента. Для примера, дополнение двух компонентов 000101 составляет 111011.

Дополнение Two является наиболее распространенным представлением подписанных чисел с фиксированной точкой и является единственным представлением, используемым документацией Fixed-Point Designer™.

Двоичная интерпретация точек

Двоичная точка является средством, которым масштабируются номера с фиксированной точкой. Обычно бинарная точка определяется программным обеспечением. При выполнении базовых математических функций, таких как сложение или вычитание, оборудование использует одни и те же логические схемы независимо от значения коэффициента шкалы. В сущности, логические схемы не имеют никакого знания о факторе шкалы. Они выполняют подписанную или беззнаковую двоичную алгебру с фиксированной точкой, как если бы двоичная точка была справа от b0.

Fixed-Point Designer поддерживает общее двоичное масштабирование точек V = Q ✕  2   E, где V - значение реального мира, Q - сохраненное целое число, и фиксированная E экспоненты равна отрицательной длине дроби. Другими словами, RealWorldValue = StoredInteger ✕ 2FractionLength.

Длина дроби определяет масштабирование сохраненного целого значения. Размер слова ограничивает значения, которые может взять сохраненное целое число, но это не ограничивает значения, которые может взять длина дроби. Программа не ограничивает значение экспонентного E на основе размера слова сохраненного целого числа Q. Поскольку E равно −FractionLength, ограничение двоичной точки на смежность с дробью ненужно; длина дроби может быть отрицательной или больше, чем размер слова.

Например, слово, состоящее из трёх беззнаковых бит, обычно представлено в научном обозначении одним из следующих способов:

bbb.=bbb.×20bb.b=bbb.×21b.bb=bbb.×22.bbb=bbb.×23

Если бы экспонента была больше 0 или меньше -3, то представление включало бы дополнительные нули:

bbb00000.=bbb.×25bbb00.=bbb.×22.00bbb=bbb.×25.00000bbb=bbb.×28

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

Рассмотрим значение со знаком с размером слова 8, длиной дроби 10 и сохраненным целым значением 5 (двоичное значение 00000101). Значение реального слова вычисляется с помощью формулы RealWorldValue = StoredInteger ✕ 2FractionLength. В этом случае RealWorldValue = 5 ✕ 2−10 = 0.0048828125. Поскольку длина дроби на 2 бита больше, чем размер слова, двоичное значение сохраненного целого числа x.xx00000101, где x является заполнителем неявных нулей. 0.0000000101 (двоичный) эквивалентен 0.0048828125 (десятичный). Для примера с использованием fi объект, см. «Длина дроби больше размер слова».

Типы данных с плавающей точкой

Типы данных с плавающей точкой характеризуются знаком-битом, дробью (или мантиссой) полем и экспонентным полем. Fixed-Point Designer придерживается IEEE® Стандарт 754-1985 для бинарной арифметики с плавающей точкой (именуемый просто стандартом IEEE 754 на протяжении всего этого руководства) и поддерживает типы данных половинной, одинарной и двойной точности.

При выборе типа данных необходимо учитывать следующие факторы:

  • Численная область значений результата

  • Точность, необходимая для результата

  • Связанная ошибка квантования (т.е. режим округления)

  • Метод для борьбы с исключительными арифметическими условиями

Эти варианты зависят от вашего конкретного приложения, используемой архитектуры компьютера и стоимости разработки, среди прочего.

С помощью Fixed-Point Designer можно исследовать связь между типами данных, областью значений, точностью и ошибкой квантования в моделировании динамических цифровых систем. С Simulink® Coder™ можно сгенерировать производственный код на основе этой модели. С помощью HDL Coder™ можно сгенерировать портативный, синтезируемый VHDL и Verilog код из моделей Simulink и Stateflow® чарты.

Похожие темы