Модуль вычислений с плавающей точкой MICROCHIP CoreFPU

Введение
- Модуль Core Floating Point Unit (CoreFPU) предназначен для арифметических операций с плавающей точкой и операций преобразования чисел с плавающей точкой одинарной и двойной точности. CoreFPU поддерживает преобразование чисел с фиксированной точкой в числа с плавающей точкой и наоборот, а также операции сложения, вычитания и умножения чисел с плавающей точкой. Стандарт IEEE® для арифметики с плавающей точкой (IEEE 754) — это технический стандарт для вычислений с плавающей точкой.
- Важно: CoreFPU поддерживает вычисления только с нормализованными числами и поддерживает только язык Verilog; VHDL не поддерживается.
Краткое содержание
В следующей таблице приведены сводные характеристики CoreFPU.
Таблица 1. Характеристики CoreFPU
| Базовая версия | Этот документ применим к CoreFPU v3.0. |
| Поддерживаемые семейства устройств |
|
| Поддерживаемый поток инструментов | Требуется Libero® SoC версии 12.6 или более поздних версий. |
| Лицензирование | CoreFPU не имеет лицензионной блокировки. |
| Инструкция по установке | CoreFPU необходимо автоматически установить в IP-каталог Libero SoC через функцию обновления IP-каталога. Также CoreFPU можно загрузить из каталога вручную. После установки IP-ядра
после установки он настраивается, генерируется и создается в SmartDesign для включения в проект. |
| Использование устройства и производительность | Сводная информация об использовании и производительности CoreFPU приведена в разделе Использование ресурсов устройства и производительность. |
Информация журнала изменений CoreFPU
В этом разделе дается исчерпывающийview новых функций, начиная с последнего выпуска. Подробнее о решённых проблемах см. в разделе «Решённые проблемы».
| Версия | Что нового |
| версия 3.0 | Реализованы дополнительные выходные флаги для повышения точности IP. |
| версия 2.1 | Добавлена функция двойной точности |
| версия 2.0 | Обновлены временные диаграммы |
| версия 1.0 | Первый производственный выпуск CoreFPU |
1. Особенности
CoreFPU имеет следующие ключевые особенности:
- Поддерживает числа с плавающей точкой одинарной и двойной точности в соответствии со стандартом IEEE-754
- Поддерживает перечисленные преобразования:
- Преобразование чисел с фиксированной точкой в числа с плавающей точкой
- Преобразование чисел с плавающей точкой в числа с фиксированной точкой
- Поддерживает перечисленные арифметические операции:
- Сложение чисел с плавающей точкой
- Вычитание чисел с плавающей точкой
- Умножение чисел с плавающей точкой
- Предоставляет схему округления (округление до ближайшего четного) только для арифметических операций.
- Предоставляет флаги переполнения, потери значимости, бесконечности (положительной бесконечности, отрицательной бесконечности), тихого NaN (QNaN) и сигнального NaN (SNaN) для чисел с плавающей точкой.
- Поддерживает полностью конвейерную реализацию арифметических операций
- Предоставляет возможность настройки ядра в соответствии с требованиями дизайна
Функциональное описание
- Стандарт IEEE для арифметики с плавающей точкой (IEEE 754) — это технический стандарт для вычислений с плавающей точкой. Термин «плавающая точка» относится к разделительной точке числа (десятичной или двоичной), которая может располагаться в любом месте относительно значащих цифр числа.
Число с плавающей запятой обычно выражается в научной нотации, с дробью (F) и показателем степени (E) по определённому основанию (r), в виде F × r^E. Десятичные числа используют основание 10 (F × 10^E), а двоичные — основание 2 (F × 2^E). - Представление числа с плавающей точкой не является уникальным. Например,ampНапример, число 55.66 представлено в виде 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 и т. д. Дробная часть нормализована. В нормализованной форме перед запятой стоит только одна ненулевая цифра. Например,ampНапример, десятичное число 123.4567 нормализуется как 1.234567 × 10^2; двоичное число 1010.1011B нормализуется как 1.0101011B × 2^3.
- Важно отметить, что числа с плавающей точкой теряют точность, если они представлены фиксированным числом бит (например,amp(например, 32-бит или 64-бит). Это связано с тем, что существует бесконечное количество действительных чисел (даже в пределах небольшого диапазона от 0.0 до 0.1). С другой стороны,
Двоичный шаблон длиной n бит представляет собой конечное число из 2^n различных чисел. Следовательно, представлены не все действительные числа. Вместо этого используется ближайшее приближение, что приводит к потере точности.
Число с плавающей запятой одинарной точности представляется следующим образом:
- Знаковый бит: 1 бит
- Ширина экспоненты: 8 бит
- Точность значащей части: 24 бита (23 бита хранятся явно)
Рисунок 2-1. 32-битный кадр
Число с плавающей запятой двойной точности представляется следующим образом:
- Знаковый бит: 1 бит
- Ширина экспоненты: 11 бит
- Точность значащей части: 53 бита (52 бита хранятся явно)
Рисунок 2-2. 64-битный кадр
CoreFPU — это высокоуровневая интеграция двух модулей преобразования (из фиксированной точки в плавающую и из плавающей точки в фиксированную) и трёх арифметических операций (FP ADD, FP SUB и FP MULT). Пользователь может настроить любую из операций в зависимости от потребностей, чтобы ресурсы использовались только для выбранной операции.
На следующем рисунке показана блок-схема CoreFPU верхнего уровня с портами.
Рисунок 2-3. Блок-схема портов CoreFPU
В следующей таблице указана ширина входных и выходных портов. Таблица 2-1. Ширина входных и выходных портов.
| Сигнал | Ширина одинарной точности | Ширина двойной точности |
| айн | [31:0] | [63:0] |
| мусорное ведро | [31:0] | [63:0] |
| о | [31:0] | [63:0] |
| надутые губки | [31:0] | [63:0] |
Преобразование чисел с фиксированной точкой в числа с плавающей точкой
CoreFPU, настроенный на преобразование чисел с фиксированной запятой в числа с плавающей запятой, подразумевает модуль преобразования чисел с фиксированной запятой в числа с плавающей запятой. Входные данные (ain) CoreFPU — это любое число с фиксированной запятой, содержащее целую и дробную части. Конфигуратор CoreFPU позволяет выбрать ширину входных данных (целую и дробную). Входные данные действительны при подаче сигнала di_valid, а выходные — при подаче сигнала do_valid. Выходные данные (aout) операции преобразования чисел с фиксированной запятой в числа с плавающей запятой имеют одинарную или двойную точность.
Example для операции преобразования чисел с фиксированной точкой в числа с плавающей точкой приведен в следующей таблице.
Таблица 2-2. Бывшийample для преобразования чисел с фиксированной точкой в числа с плавающей точкой
| Число с фиксированной точкой | Число с плавающей точкой | |||||
| айн | Целое число | Дробь | о | Знак | Экспонента | Мантисса |
| 0x12153524 (32-бит) | 00010010000101010 | 011010100100100 | 0x4610a9a9 | 0 | 10001100 | 00100001010100110101001 |
| 0x0000000000008CCC
(64-бит) |
0000000000000000000000000000000000000000000000001 | 000110011001100 | 0x3FF199999999999A | 0 | 01111111111 | 0001100110011001100110011001100110011001100110011010 |
Преобразование чисел с плавающей точкой в числа с фиксированной точкой
CoreFPU, настроенный на преобразование чисел с плавающей точкой в числа с фиксированной точкой, подразумевает модуль преобразования чисел с плавающей точкой в числа с фиксированной точкой. Входные данные (ain) CoreFPU представляют собой любое число с плавающей точкой одинарной или двойной точности, а выходные данные (aout) имеют формат с фиксированной точкой, содержащий целые и дробные биты. Входные данные действительны при подаче сигнала di_valid, а выходные данные действительны при подаче сигнала do_valid. Конфигуратор CoreFPU позволяет выбрать ширину выходных данных (целочисленную и дробную).
Example для операции преобразования чисел с плавающей запятой в числа с фиксированной запятой приведен в следующей таблице.
Таблица 2-3. Бывшийample для преобразования чисел с плавающей точкой в числа с фиксированной точкой
| Число с плавающей точкой | Число с фиксированной точкой | |||||
| айн | Знак | Экспонента | Мантисса | о | Целое число | Дробь |
| 0x41bd6783 (32-бит) | 0 | 10000011 | 01111010110011110000011 | 0x000bd678 | 00000000000010111 | 101011001111000 |
| 0x4002094c447c30d3
(64-бит) |
0 | 10000000000 | 0010000010010100110001000100011111000011000011010011 | 0x0000000000012095 | 0000000000000000000000000000000000000000000000010 | 010000010010101 |
Сложение чисел с плавающей точкой (арифметическая операция)
CoreFPU, настроенный как FP ADD, выводит модуль сложения чисел с плавающей точкой. Он складывает два числа с плавающей точкой (ain и bin) и выдаёт результат (pout) в формате с плавающей точкой. Входные и выходные данные представляют собой числа с плавающей точкой одинарной или двойной точности. Входные данные действительны при подаче сигнала di_valid, а выходные данные действительны при подаче сигнала do_valid. Ядро выдаёт флаги ovfl_fg (переполнение), qnan_fg (не число), snan_fg (сигнализация не числа), pinf_fg (положительная бесконечность) и ninf_fg (отрицательная бесконечность) в зависимости от операции сложения.
ExampФайлы для операции сложения чисел с плавающей точкой перечислены в следующих таблицах.
Таблица 2-4. Бывшийample для операции сложения чисел с плавающей точкой (32-бит)
| Значение с плавающей точкой | Знак | Экспонента | Мантисса |
| Ввод с плавающей точкой 1 ain (0x4e989680) | 0 | 10011101 | 00110001001011010000000 |
| Ввод с плавающей точкой 2 бин (0x4f191b40) | 0 | 10011110 | 00110010001101101000000 |
| Выход сложения чисел с плавающей точкой pout (0x4f656680) | 0 | 10011110 | 11001010110011010000000 |
Таблица 2-5. Бывшийample для операции сложения чисел с плавающей точкой (64-бит)
| Значение с плавающей точкой | Знак | Экспонента | Мантисса |
| Ввод с плавающей точкой 1
ain (0x3ff4106ee30caa32) |
0 | 01111111111 | 0100000100000110111011100011000011001010101000110010 |
| Ввод с плавающей точкой 2
bin (0x40020b2a78798e61) |
0 | 10000000000 | 0010000010110010101001111000011110011000111001100001 |
| Выход сложения чисел с плавающей точкой pout (0x400c1361e9ffe37a) | 0 | 10000000000 | 1100000100110110000111101001111111111110001101111010 |
Вычитание чисел с плавающей точкой (арифметическая операция)
CoreFPU, настроенный как FP SUB, выводит модуль вычитания чисел с плавающей точкой. Он вычитает два числа с плавающей точкой (ain и bin) и выдаёт результат (pout) в формате с плавающей точкой. Входные и выходные данные представляют собой числа с плавающей точкой одинарной или двойной точности. Входные данные действительны при подаче сигнала di_valid, а выходные данные действительны при подаче сигнала do_valid. Ядро выставляет флаги ovfl_fg (переполнение), unfl_fg (отсутствие значащих разрядов), qnan_fg (не число), snan_fg (сигнализация не числа), pinf_fg (положительная бесконечность) и ninf_fg (отрицательная бесконечность) в зависимости от операции вычитания.
ExampФайлы для операции вычитания чисел с плавающей точкой перечислены в следующих таблицах.
Таблица 2-6. Бывшийample для операции вычитания чисел с плавающей точкой (32-бит)
| Значение с плавающей точкой | Знак | Экспонента | Мантисса |
| Ввод с плавающей точкой 1 ain (0xac85465f) | 1 | 01011001 | 00001010100011001011111 |
| Ввод с плавающей точкой 2 bin (0x2f516779) | 0 | 01011110 | 10100010110011101111001 |
| Вывод вычитания чисел с плавающей точкой pout (0xaf5591ac) | 1 | 01011110 | 10101011001000110101011 |
| Значение с плавающей точкой | Знак | Экспонента | Мантисса |
| Ввод с плавающей точкой 1
айн (0x405569764adff823) |
0 | 10000000101 | 0101011010010111011001001010110111111111100000100011 |
| Ввод с плавающей точкой 2
bin (0x4057d04e78dee3fc) |
0 | 10000000101 | 0111110100000100111001111000110111101110001111111100 |
| Вывод вычитания чисел с плавающей точкой pout (0xc02336c16ff75ec8) | 1 | 10000000010 | 0011001101101100000101101111111101110101111011001000 |
Умножение чисел с плавающей точкой (арифметическая операция)
CoreFPU, настроенный как FP MULT, выводит модуль умножения чисел с плавающей запятой. Он умножает два числа с плавающей запятой (ain и bin) и выдаёт результат (pout) в формате с плавающей запятой. Входные и выходные данные представляют собой числа с плавающей запятой одинарной или двойной точности. Входные данные действительны при подаче сигнала di_valid, а выходные данные действительны при подаче сигнала do_valid. Ядро выставляет флаги ovfl_fg (переполнение), unfl_fg (опустошение), qnan_fg (не число), snan_fg (сигнализация не числа), pinf_fg (положительная бесконечность) и ninf_fg (отрицательная бесконечность) в зависимости от операции умножения.
ExampФайлы для операции умножения чисел с плавающей точкой перечислены в следующих таблицах.
Таблица 2-8. Бывшийample для операции умножения чисел с плавающей точкой (32-бит)
| Значение с плавающей точкой | Знак | Экспонента | Мантисса |
| Ввод с плавающей точкой 1 ain (0x1ec7a735) | 0 | 00111101 | 10001111010011100110101 |
| Ввод с плавающей точкой 2 бин (0x6ecf15e8) | 0 | 11011101 | 10011110001010111101000 |
| Выход умножения с плавающей точкой pout (0x4e21814a) | 0 | 10011100 | 01000011000000101001010 |
| Значение с плавающей точкой | Знак | Экспонента | Мантисса |
| Ввод с плавающей точкой 1
ain (0x40c1f5a9930be0df) |
0 | 10000001100 | 0001111101011010100110010011000010111110000011011111 |
| Ввод с плавающей точкой 2
bin (0x400a0866c962b501) |
0 | 10000000000 | 1010000010000110011011001001011000101011010100000001 |
| Выход умножения с плавающей точкой pout (0x40dd38a1c3e2cae9) | 0 | 10000001101 | 1101001110001010000111000011111000101100101011101001 |
Таблица истинности для сложения и вычитания
В следующих таблицах истинности приведены значения для операций сложения и вычитания. Таблица 2-10. Таблица истинности для операции сложения.
| Данные А | Данные B | Знаковый бит | Результат | Переполнение | Недополнение | SNaN | QNaN | ПИНФ | НИНФ |
| QNaN/SNaN | x | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| x | QNaN/SNaN | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| ноль | ноль | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | посфинитный(y) | 0 | посфинитный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | отрицательный(y) | 1 | отрицательный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | позинфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| ноль | негринфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| посфинитный(y) | ноль | 0 | посфинитный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | позинфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| Стол 2-10. Таблица истинности для сложения (продолжение) | |||||||||
| Данные А | Данные B | Знаковый бит | Результат | Переполнение | Недополнение | SNaN | QNaN | ПИНФ | НИНФ |
| посфинитный | негринфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| отрицательный(y) | ноль | 1 | отрицательный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | позинфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| отрицательный | негринфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| позинфинит | ноль | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | посфинитный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | отрицательный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | позинфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | негринфинит | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| негринфинит | ноль | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | посфинитный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | отрицательный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | позинфинит | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| негринфинит | негринфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| посфинитный | посфинитный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | посфинитный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| посфинитный | посфинитный | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| посфинитный | посфинитный | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| посфинитный | посфинитный | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| посфинитный | отрицательный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | отрицательный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | отрицательный | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
| отрицательный | посфинитный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | посфинитный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | посфинитный | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
| отрицательный | отрицательный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | отрицательный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| отрицательный | отрицательный | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| отрицательный | отрицательный | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | отрицательный | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| Данные А | Данные B | Знаковый бит | Результат | Переполнение | Недополнение | SNaN | QNaN | ПИНФ | НИНФ |
| QNaN/SNaN | x | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| x | QNaN/SNaN | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| ноль | ноль | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | посфинитный(y) | 1 | отрицательный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | отрицательный(y) | 0 | посфинитный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | позинфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| ноль | негринфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| посфинитный(y) | ноль | 0 | посфинитный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | позинфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| посфинитный | негринфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| отрицательный(y) | ноль | 1 | отрицательный(y) | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | позинфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| Стол 2-11. Таблица истинности для вычитания (продолжение) | |||||||||
| Данные А | Данные B | Знаковый бит | Результат | Переполнение | Недополнение | SNaN | QNaN | ПИНФ | НИНФ |
| отрицательный | негринфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | ноль | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | посфинитный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | отрицательный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | позинфинит | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| позинфинит | негринфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| негринфинит | ноль | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | посфинитный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | отрицательный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | позинфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | негринфинит | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| посфинитный | посфинитный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | посфинитный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | посфинитный | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
| посфинитный | отрицательный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | отрицательный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| посфинитный | отрицательный | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| посфинитный | отрицательный | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| посфинитный | отрицательный | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | посфинитный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | посфинитный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| отрицательный | посфинитный | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| отрицательный | посфинитный | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | посфинитный | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | отрицательный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | отрицательный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | отрицательный | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
Важный:
- В предыдущих таблицах они обозначают любое число.
- В предыдущих таблицах символ обозначает безразличное состояние.
Таблица истинности для умножения
В следующей таблице истинности перечислены значения для операции умножения.
Таблица 2-12. Таблица истинности для умножения
| Данные А | Данные B | Знаковый бит | Результат | Переполнение | Недополнение | SNaN | QNaN | ПИНФ | НИНФ |
| QNaN/SNaN | x | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| x | QNaN/SNaN | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| ноль | ноль | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | посфинитный | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | отрицательный | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
| ноль | позинфинит | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| ноль | негринфинит | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| Стол 2-12. Таблица истинности умножения (продолжение) | |||||||||
| Данные А | Данные B | Знаковый бит | Результат | Переполнение | Недополнение | SNaN | QNaN | ПИНФ | НИНФ |
| посфинитный | ноль | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | позинфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| посфинитный | негринфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| отрицательный | ноль | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | позинфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| отрицательный | негринфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | ноль | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| позинфинит | посфинитный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | отрицательный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| позинфинит | позинфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| позинфинит | негринфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | ноль | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| негринфинит | посфинитный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | отрицательный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| негринфинит | позинфинит | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| негринфинит | негринфинит | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| посфинитный | посфинитный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | посфинитный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| посфинитный | посфинитный | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| посфинитный | посфинитный | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| посфинитный | посфинитный | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| посфинитный | посфинитный | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
| посфинитный | отрицательный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| посфинитный | отрицательный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| посфинитный | отрицательный | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| посфинитный | отрицательный | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| посфинитный | отрицательный | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| посфинитный | отрицательный | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
| отрицательный | посфинитный | 1 | отрицательный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | посфинитный | 1 | негринфинит | 0 | 0 | 0 | 0 | 0 | 1 |
| отрицательный | посфинитный | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| отрицательный | посфинитный | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | посфинитный | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | посфинитный | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
| отрицательный | отрицательный | 0 | посфинитный | 0 | 0 | 0 | 0 | 0 | 0 |
| отрицательный | отрицательный | 0 | позинфинит | 0 | 0 | 0 | 0 | 1 | 0 |
| отрицательный | отрицательный | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
| отрицательный | отрицательный | 0 | POSQNaN | 0 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | отрицательный | 0 | POSQNaN | 1 | 0 | 1 | 0 | 0 | 0 |
| отрицательный | отрицательный | 0 | POSQNaN | 0 | 1 | 1 | 0 | 0 | 0 |
Важный:
Бит знака «0» определяет положительный выход, а «1» — отрицательный выход.
Символ x в предыдущей таблице обозначает состояние «безразлично».
Параметры CoreFPU и сигналы интерфейса
В этом разделе рассматриваются параметры настроек конфигуратора CoreFPU и сигналы ввода-вывода.
Параметры графического интерфейса конфигурации
К модулю FPU применим ряд настраиваемых параметров, как показано в следующей таблице. Если требуется конфигурация, отличная от конфигурации по умолчанию, для выбора соответствующих значений настраиваемого параметра используется диалоговое окно конфигурации.
Таблица 3-1. Параметры графического интерфейса конфигурации CoreFPU
| Имя параметра | По умолчанию | Описание |
| Точность | Одинокий | Выберите необходимую операцию:
Одинарная точность |
| Тип преобразования | Преобразование чисел с фиксированной точкой в числа с плавающей точкой | Выберите необходимую операцию:
|
| Ширина входной дроби1 | 15 | Настраивает дробную точку во входных сигналах ain и bin
Допустимый диапазон: 31–1 |
| Ширина выходной фракции2 | 15 | Настраивает дробную точку в выходных сигналах
Допустимый диапазон: 51–1 |
Важный:
- Этот параметр настраивается только во время преобразования чисел с фиксированной запятой в числа с плавающей запятой.
- Этот параметр настраивается только во время преобразования чисел с плавающей запятой в числа с фиксированной запятой.
Входные и выходные сигналы (задать вопрос)
В следующей таблице перечислены сигналы входных и выходных портов CoreFPU.
Таблица 3-2. Описание порта
| Имя сигнала | Ширина | Тип | Описание |
| цлк | 1 | Вход | Основные системные часы |
| рстн | 1 | Вход | Асинхронный сброс с активным низким уровнем |
| di_valid | 1 | Вход | Действителен активный высокий входной сигнал
Этот сигнал указывает на то, что данные, присутствующие на ain[31:0], ain[63:0] и bin[31:0], bin[63:0], являются действительными. |
| айн | 32/64 | Вход | Входная шина (используется для всех операций) |
| мусорное ведро1 | 32/64 | Вход | B Входная шина (используется только для арифметических операций) |
| о2 | 32/64 | Выход | Выходное значение при выборе операций преобразования фиксированной точки в плавающую или плавающей точки в фиксированную точку. |
| надутые губки1 | 32/64 | Выход | Выходное значение при выборе операций сложения, вычитания или умножения. |
| Стол 3-2. Описание порта (продолжение) | |||
| Имя сигнала | Ширина | Тип | Описание |
| do_valid | 1 | Выход | Активный высокий сигнал
Этот сигнал указывает на то, что данные, присутствующие на шине данных pout/aout, являются достоверными. |
| ovfl_fg3 | 1 | Выход | Активный высокий сигнал
Этот сигнал указывает на переполнение во время операций с плавающей точкой. |
| unfl_fg | 1 | Выход | Активный высокий сигнал
Этот сигнал указывает на переполнение во время операций с плавающей точкой. |
| qnan_fg3 | 1 | Выход | Активный высокий сигнал
Этот сигнал указывает на отсутствие числа (QNaN) во время операций с плавающей точкой. |
| snan_fg | 1 | Выход | Активный высокий сигнал
Этот сигнал указывает на сигнализацию не-числа (SNaN) во время операций с плавающей запятой. |
| pinf_fg3 | 1 | Выход | Активный высокий сигнал
Этот сигнал указывает на положительную бесконечность во время операций с плавающей точкой. |
| ninf_fg | 1 | Выход | Активный высокий сигнал
Этот сигнал указывает на отрицательную бесконечность во время операций с плавающей точкой. |
Важный:
- Этот порт доступен только для операций сложения, вычитания или умножения чисел с плавающей запятой.
- Этот порт доступен только для операций преобразования чисел с фиксированной запятой в числа с плавающей запятой и из чисел с плавающей запятой в числа с фиксированной запятой.
- Этот порт доступен для операций преобразования чисел с плавающей запятой в числа с фиксированной запятой, сложения чисел с плавающей запятой, вычитания чисел с плавающей запятой и умножения чисел с плавающей запятой.
Реализация CoreFPU в Libero Design Suite
В этом разделе описывается реализация CoreFPU в Libero Design Suite.
СмартДизайн
CoreFPU доступен для загрузки в каталоге Libero IP через web Репозиторий. После добавления в каталог ядро создаётся с помощью потока SmartDesign. Информация об использовании SmartDesign для настройки, подключения и генерации ядер представлена в онлайн-справке Libero SoC.
После настройки и генерации экземпляра ядра базовая функциональность моделируется с помощью тестового стенда, поставляемого вместе с CoreFPU. Параметры тестового стенда автоматически подстраиваются под конфигурацию CoreFPU. CoreFPU реализуется как компонент более крупного проекта.
Рисунок 4-1. Экземпляр SmartDesign CoreFPU для арифметических операций
Рисунок 4-2. Экземпляр SmartDesign CoreFPU для операции преобразования 
Преобразование чисел с фиксированной точкой в числа с плавающей точкой
При преобразовании чисел с фиксированной запятой в числа с плавающей запятой можно настроить ширину входной дроби. Выходная ширина по умолчанию установлена равной 32 битам для чисел с одинарной точностью и 64 битам для чисел с плавающей запятой двойной точности.
Для преобразования из фиксированной точки в плавающую выберите Тип преобразования «Фиксированная точка в плавающую точку», как показано на следующем рисунке.
Преобразование чисел с плавающей точкой в числа с фиксированной точкой
При преобразовании чисел с плавающей запятой в числа с фиксированной запятой выходную дробную ширину можно настраивать, а входная ширина по умолчанию устанавливается равной 32 битам для чисел с плавающей запятой одинарной точности и 64 битам для чисел с плавающей запятой двойной точности.
Для преобразования числа с плавающей точкой в число с фиксированной точкой выберите Тип преобразования «Из числа с плавающей точкой в число с фиксированной точкой», как показано на следующем рисунке.
Рисунок 4-4. Конфигуратор CoreFPU для преобразования чисел с плавающей точкой в фиксированные.
Сложение/вычитание/умножение чисел с плавающей точкой
Во время операций сложения, вычитания и умножения с плавающей точкой ширина входной дроби и ширина выходной дроби не настраиваются, поскольку это арифметические операции с плавающей точкой, а ширина входного/выходного значения по умолчанию установлена на 32 бита для одинарной точности и на 64 бита для двойной точности с плавающей точкой.
На следующем рисунке показан конфигуратор CoreFPU для операции вычитания чисел с плавающей запятой.
Рисунок 4-5. Конфигуратор CoreFPU для вычитания чисел с плавающей точкой
Моделирование (задать вопрос)
Для запуска моделирования в окне конфигурации ядра выберите «User Testbench». После генерации CoreFPU предсинтезный тестовый стенд на языке описания оборудования (HDL) files установлены в Либеро.
Моделирование форм волн (задать вопрос)
В этом разделе обсуждаются формы сигналов моделирования для CoreFPU.
На следующих рисунках показана форма сигнала преобразования чисел с фиксированной запятой в числа с плавающей запятой для 32- и 64-битной систем.

Системная интеграция
На следующем рисунке показан примерampле использования ядра. В этом примереampНапример, UART-модуль (UART) используется в качестве канала связи между проектом и хост-компьютером. Сигналы ain и bin (каждый разрядностью 32 или 64 бита) поступают на входы проекта с UART. После получения сигнала di_valid процессор CoreFPU вычисляет результат. После вычисления результата сигнал do_valid переходит в высокий уровень и сохраняет результат (данные aout/pout) в выходном буфере. Эта же процедура применима для преобразования и арифметических операций. Для преобразования достаточно только входного сигнала ain, тогда как для арифметических операций требуются оба входа ain и bin. Выход aout доступен для преобразования, а порт pout — для арифметических операций.
Рисунок 4-16. Бывшийample системы CoreFPU

- Синтез (Задать вопрос)
Чтобы запустить синтез на CoreFPU, установите корень проекта на экземпляр компонента IP и из панели потока проектирования Libero запустите инструмент синтеза.
Место и маршрут (задать вопрос)
После синтеза проекта запустите инструмент Place-and-Route. CoreFPU не требует специальных настроек Place-and-Route. - Пользовательский тестовый стенд (задать вопрос)
В состав релиза CoreFPU IP входит пользовательский тестовый стенд. С его помощью можно проверить функциональность CoreFPU.
Упрощенная блок-схема пользовательского тестового стенда представлена на следующем рисунке. Пользовательский тестовый стенд реализует проект сконфигурированного ядра FPU (UUT) и включает в себя генератор тестовых данных для поведенческого тестирования, необходимые сигналы синхронизации и сброса.
Рисунок 4-17. Пользовательский тестовый стенд CoreFPU
Важно: необходимо контролировать выходные сигналы в симуляторе ModelSim, см. раздел «Моделирование».
Дополнительные ссылки (задать вопрос)
В этом разделе представлен список дополнительной информации.
Для получения обновлений и дополнительной информации о программном обеспечении, устройствах и оборудовании посетите
Страницы интеллектуальной собственности на FPGA и PLD Microchip webсайт.
- Известные проблемы и способы их решения (задать вопрос)
Известных проблем и способов их решения для CoreFPU v3.0 нет. - Снятые с производства функции и устройства (задать вопрос)
В этом выпуске IP нет прекращенных функций и устройств.
Глоссарий
Ниже приведен список терминов и определений, используемых в документе.
Таблица 6-1. Термины и определения
| Срок | Определение |
| ФПУ | Модуль с плавающей точкой |
| ДОБАВИТЬ ФП | Сложение чисел с плавающей точкой |
| FP SUB | Вычитание чисел с плавающей точкой |
| FP MULT | Умножение чисел с плавающей точкой |
Решенные проблемы
В следующей таблице перечислены все решенные проблемы для различных версий CoreFPU.
Таблица 7-1. Решенные проблемы
| Выпускать | Описание |
| 3.0 | Ниже приведен список всех решенных проблем в версии v3.0:
Номер дела: 01420387 и 01422128 Добавлена логика схемы округления (округление до ближайшего четного числа). |
| 2.1 | Ниже приведен список всех решенных проблем в версии v2.1: При проектировании возникают проблемы из-за наличия дублирующихся модулей при реализации нескольких ядер. Переименование экземпляра CoreFPU IP приводит к ошибке «Неопределенный модуль». |
| 1.0 | Первоначальный выпуск |
Использование ресурсов устройства и производительность
Макрос CoreFPU реализован в семействах, перечисленных в следующей таблице.
Таблица 8-1. Использование устройства FPU PolarFire для 32-битной версии
| Ресурсы ПЛИС | Использование | |||||||
| Семья | 4ЛУТ | ДФФ | Общий | Математический блок | Устройство | Проценtage | Производительность | Задержка |
| Из фиксированной точки в плавающую точку | ||||||||
| ПоларФайр® | 260 | 104 | 364 | 0 | МПФ300Т | 0.12 | 310 МГц | 3 |
| Преобразование чисел с плавающей точкой в числа с фиксированной точкой | ||||||||
| Поларфайр | 591 | 102 | 693 | 0 | МПФ300Т | 0.23 | 160 МГц | 3 |
| Сложение чисел с плавающей точкой | ||||||||
| Поларфайр | 1575 | 1551 | 3126 | 0 | МПФ300Т | 1.06 | 340 МГц | 16 |
| Вычитание чисел с плавающей точкой | ||||||||
| Поларфайр | 1561 | 1549 | 3110 | 0 | МПФ300Т | 1.04 | 345 МГц | 16 |
| Умножение чисел с плавающей точкой | ||||||||
| Поларфайр | 465 | 847 | 1312 | 4 | МПФ300Т | 0.44 | 385 МГц | 14 |
| Ресурсы ПЛИС | Использование | |||||||
| Семья | 4ЛУТ | ДФФ | Общий | Математический блок | Устройство | Проценtage | Производительность | Задержка |
| Из фиксированной точки в плавающую точку | ||||||||
| РТГ4™ | 264 | 104 | 368 | 0 | РТ4G150 | 0.24 | 160 МГц | 3 |
| Преобразование чисел с плавающей точкой в числа с фиксированной точкой | ||||||||
| РТГ4 | 439 | 112 | 551 | 0 | РТ4G150 | 0.36 | 105 МГц | 3 |
| Сложение чисел с плавающей точкой | ||||||||
| РТГ4 | 1733 | 1551 | 3284 | 0 | РТ4G150 | 1.16 | 195 МГц | 16 |
| Вычитание чисел с плавающей точкой | ||||||||
| РТГ4 | 1729 | 1549 | 3258 | 0 | РТ4G150 | 1.16 | 190 МГц | 16 |
| Умножение чисел с плавающей точкой | ||||||||
| РТГ4 | 468 | 847 | 1315 | 4 | РТ4G150 | 0.87 | 175 МГц | 14 |
| Ресурсы ПЛИС | Использование | |||||||
| Семья | 4ЛУТ | ДФФ | Общий | Математический блок | Устройство | Проценtage | Производительность | Задержка |
| Из фиксированной точки в плавающую точку | ||||||||
| ПоларФайр® | 638 | 201 | 849 | 0 | МПФ300Т | 0.28 | 305 МГц | 3 |
| Преобразование чисел с плавающей точкой в числа с фиксированной точкой | ||||||||
| Поларфайр | 2442 | 203 | 2645 | 0 | МПФ300Т | 0.89 | 110 МГц | 3 |
| Сложение чисел с плавающей точкой | ||||||||
| Поларфайр | 5144 | 4028 | 9172 | 0 | МПФ300Т | 3.06 | 240 МГц | 16 |
| Вычитание чисел с плавающей точкой | ||||||||
| Поларфайр | 5153 | 4026 | 9179 | 0 | МПФ300Т | 3.06 | 250 МГц | 16 |
| Умножение чисел с плавающей точкой | ||||||||
| Поларфайр | 1161 | 3818 | 4979 | 16 | МПФ300Т | 1.66 | 340 МГц | 27 |
| Ресурсы ПЛИС | Использование | |||||||
| Семья | 4ЛУТ | ДФФ | Общий | Математический блок | Устройство | Проценtage | Производительность | Задержка |
| Из фиксированной точки в плавающую точку | ||||||||
| РТГ4™ | 621 | 201 | 822 | 0 | РТ4G150 | 0.54 | 140 МГц | 3 |
| Преобразование чисел с плавающей точкой в числа с фиксированной точкой | ||||||||
| РТГ4 | 1114 | 203 | 1215 | 0 | РТ4G150 | 0.86 | 75 МГц | 3 |
| Сложение чисел с плавающей точкой | ||||||||
| РТГ4 | 4941 | 4028 | 8969 | 0 | РТ4G150 | 5.9 | 140 МГц | 16 |
| Вычитание чисел с плавающей точкой | ||||||||
| РТГ4 | 5190 | 4026 | 9216 | 0 | РТ4G150 | 6.07 | 130 МГц | 16 |
| Умножение чисел с плавающей точкой | ||||||||
| РТГ4 | 1165 | 3818 | 4983 | 16 | РТ4G150 | 3.28 | 170 МГц | 27 |
Важно: Чтобы увеличить частоту, выберите опцию Включить пересинхронизацию в настройках синтеза.
История изменений
История изменений описывает изменения, которые были реализованы в документе. Изменения перечислены по редакции, начиная с самой последней публикации.

Поддержка микросхемы ПЛИС
Группа продуктов Microchip FPGA поддерживает свои продукты различными службами поддержки, включая службу поддержки клиентов, центр технической поддержки клиентов, webсайт и офисы продаж по всему миру. Клиентам рекомендуется посетить онлайн-ресурсы Microchip, прежде чем обращаться в службу поддержки, поскольку весьма вероятно, что на их вопросы уже были даны ответы.
Обратитесь в Центр технической поддержки через webсайт на www.microchip.com/support. Укажите номер детали устройства FPGA, выберите соответствующую категорию корпуса и загрузите проект. files при создании обращения в техподдержку.
Обратитесь в службу поддержки клиентов за нетехнической поддержкой продукта, такой как цены продукта, обновления продукта, информация об обновлении, статус заказа и авторизация.
- Из Северной Америки звоните по телефону 800.262.1060
- Из других стран звоните по телефону 650.318.4460
- Факс, из любой точки мира, 650.318.8044
Информация о микросхеме
Торговые марки
Название и логотип «Microchip», логотип «M» и другие названия, логотипы и бренды являются зарегистрированными и незарегистрированными товарными знаками Microchip Technology Incorporated или ее филиалов и/или дочерних компаний в Соединенных Штатах и/или других странах («Торговые знаки Microchip»). Информацию о товарных знаках Microchip можно найти на сайте https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3
Правовое уведомление
Эта публикация и содержащаяся в ней информация могут использоваться только с продуктами Microchip, в том числе для разработки, тестирования и интеграции продуктов Microchip с вашим приложением. Использование этой информации каким-либо иным образом нарушает настоящие условия. Информация о приложениях для устройств предоставляется только для вашего удобства и может быть заменена обновлениями. Вы несете ответственность за то, чтобы ваше приложение соответствовало вашим спецификациям. Обратитесь в местный офис продаж Microchip за дополнительной поддержкой или получите дополнительную поддержку по адресу www.microchip.com/en-us/support/design-help/client-support-services
ЭТА ИНФОРМАЦИЯ ПРЕДОСТАВЛЯЕТСЯ КОМПАНИЕЙ MICROCHIP «КАК ЕСТЬ». MICROCHIP НЕ ДЕЛАЕТ НИКАКИХ ЗАЯВЛЕНИЙ ИЛИ ГАРАНТИЙ ЛЮБОГО РОДА, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ПИСЬМЕННЫХ ИЛИ УСТНЫХ, УСТАНОВЛЕННЫХ ЗАКОНОМ ИЛИ ИНЫХ, ОТНОСЯЩИХСЯ К ИНФОРМАЦИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ЛЮБЫЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ НЕНАРУШЕНИЯ ПРАВ, ТОВАРНОЙ ПРИГОДНОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ ИЛИ ГАРАНТИИ, СВЯЗАННЫЕ С ЕЕ СОСТОЯНИЕМ, КАЧЕСТВОМ ИЛИ ПРОИЗВОДИТЕЛЬНОСТЬЮ.
НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ MICROCHIP НЕ БУДЕТ НЕСТИ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ КОСВЕННЫЕ, СПЕЦИАЛЬНЫЕ, ШТРАФНЫЕ, СЛУЧАЙНЫЕ ИЛИ КОСВЕННЫЕ ПОТЕРИ, УЩЕРБ, ИЗДЕРЖКИ ИЛИ РАСХОДЫ ЛЮБОГО РОДА, СВЯЗАННЫЕ С ИНФОРМАЦИЕЙ ИЛИ ЕЕ ИСПОЛЬЗОВАНИЕМ, КАКИМ БЫ ТО НИ БЫЛО ПРИЧИНОЙ, ДАЖЕ ЕСЛИ MICROCHIP БЫЛ УВЕДОМЛЕН О ВОЗМОЖНОСТИ ИЛИ УЩЕРБ МОЖНО ПРЕДВИДЕТЬ. В МАКСИМАЛЬНОМ ОБЪЕМЕ, РАЗРЕШЕННОМ ЗАКОНОМ, ОБЩАЯ ОТВЕТСТВЕННОСТЬ MICROCHIP ПО ВСЕМ ПРЕТЕНЗИЯМ, КАКИМ-ЛИБО ОБРАЗОМ СВЯЗАННЫМ С ИНФОРМАЦИЕЙ ИЛИ ЕЕ ИСПОЛЬЗОВАНИЕМ, НЕ БУДЕТ ПРЕВЫШАТЬ СУММУ ПЛАТЕЖЕЙ, ЕСЛИ ТАКИЕ БЫЛИ, КОТОРЫЕ ВЫ ЗАПЛАТИЛИ НАПРЯМУЮ MICROCHIP ЗА ИНФОРМАЦИЮ.
Использование устройств Microchip в системах жизнеобеспечения и/или безопасности полностью на риск покупателя, и покупатель соглашается защищать, возмещать убытки и ограждать Microchip от любых убытков, претензий, исков или расходов, возникающих в результате такого использования. Никакие лицензии не передаются, подразумеваемые или иным образом, в соответствии с любыми правами интеллектуальной собственности Microchip, если не указано иное.
Функция защиты кода устройств Microchip
Обратите внимание на следующие сведения о функции защиты кода на продуктах Microchip:
- Продукция Microchip соответствует спецификациям, содержащимся в соответствующем паспорте Microchip.
- Компания Microchip уверена, что ее семейство продуктов безопасно при использовании по назначению, в соответствии с эксплуатационными спецификациями и в нормальных условиях.
- Microchip ценит и активно защищает свои права интеллектуальной собственности. Попытки нарушить функции защиты кода продуктов Microchip строго запрещены и могут нарушить Закон об авторском праве в цифровую эпоху.
- Ни Microchip, ни любой другой производитель полупроводников не может гарантировать безопасность своего кода. Защита кода не означает, что мы гарантируем, что продукт «неуязвим». Защита кода постоянно развивается. Microchip стремится постоянно улучшать функции защиты кода в своих продуктах.
Документы/Ресурсы
![]() |
Модуль вычислений с плавающей точкой MICROCHIP CoreFPU [pdf] Руководство пользователя v3.0, v2.1, v2.0, v1.0, CoreFPU Core Float Point Unit, Core Float Point Unit, Float Point Unit, Point Unit |

