Перейти к содержанию

Работа С Ip Core


aleksandr_KPI

Рекомендуемые сообщения

Не могу понять как образуются значения на выходе IP Core Sine-Cosine Luck UP Table. Прочитал datasheet на него, там написано только про формулу которая переводит входной двоичный код в радианы, далее (я так понимаю ) от этого значения берется косинус, но как потом этот косинус переводтся в двоичный код не пойму. К примеру при моделировании, на вход Sine-Cosine Luck UP Table я подаю число 520, а на выходе получаю 514, как математически объяснить число 514

post-103004-0-15043400-1313139240_thumb.jpg

post-103004-0-70145100-1313139269_thumb.jpg

post-103004-0-94121200-1313139218_thumb.jpg.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Постараюсь объяснить на пальцах.

Окружность (2Пи радиан) дробится на 512 частей (2^9).

Когда вы указываете какой либо угол, то он представляется именно в радианах: 520*2*Пи/512=6,38.. радиан.

Cos(6,38..)=-0,995....

Выходной код имеет разрядность 10 бит. старший бит по правилам - знаковый(S).Если представляемое число отрицательное, то знак равен 1.

Далее само значение представляется оставшимися 9 битами по правилу Summ(1/2^(9-i))-S, где i- номер бита в коде. Например для 7го бита вес будет равен 1/2^(9-7)=1/2^2=1/4=0,25.

Наиболее близким к этому будет код 1000000010 (514), он даст значение 0,996..

Во вложении файл со второй частью - поиграйте на досуге

Коды.rar

Изменено пользователем Meteor77
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Окружность (2Пи радиан) дробится на 512 частей (2^9).

Почему именно на 512, а не на 511 или 513.

Далее само значение представляется оставшимися 9 битами по правилу Summ(1/2^(9-i))-S, где i- номер бита в коде. Например для 7го бита вес будет равен 1/2^(9-7)=1/2^2=1/4=0,25.

Наиболее близким к этому будет код 1000000010 (514), он даст значение 0,996..

Это я так понимаю формула перевода дробного числа в двоичный код. Я переводил чуть по другому : 520*2*Пи/512=6,38 радиан, далее Cos(6,38)=-0,9938, а вот дальше число -0,9938 перевел в двоичный код. Вычисляю только 9 разрядов, так как 10 знаковый и будет 1 :

0,9938.. * 2 = 1,9876.. 1

0,9876.. * 2 = 1,9752.. 1

0,9752.. * 2 = 1,9504.. 1

0,9504.. * 2 = 1,9008.. 1

0,9008.. * 2 = 1,8017.. 1

0,8017.. * 2 = 1,6034.. 1

0,6034.. * 2 = 1,2069.. 1

0,2069.. * 2 = 0,4138.. 0

0,4138.. * 2 = 0,8277.. 0

Как быть с минусом тут я не знаю, думаю нужно проинвертировать эти 9 розрядов (почему ?), тогда получится число 1000000011 (515), хотя тут ИМХО. Я читал что в look-up table вычисления косинусов не проводятся, а только выполняется поиск близкого значения по уже имеющимся, может числа 515 в таблице нет, поетому когда на входе 520 на выходе 514.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Почему именно на 512, а не на 511 или 513.

потому что 512 - это максимум того что вы можете адресовать используя 9 бит, это же явно :)

Feel the difference! ©

Ссылка на комментарий
Поделиться на другие сайты

Я переводил чуть по другому ... а вот дальше число -0,9938 перевел в двоичный код. Вычисляю только 9 разрядов, так как 10 знаковый и будет 1 :

0,9938.. * 2 = 1,9876.. 1

0,9876.. * 2 = 1,9752.. 1

0,9752.. * 2 = 1,9504.. 1

0,9504.. * 2 = 1,9008.. 1

0,9008.. * 2 = 1,8017.. 1

0,8017.. * 2 = 1,6034.. 1

0,6034.. * 2 = 1,2069.. 1

0,2069.. * 2 = 0,4138.. 0

0,4138.. * 2 = 0,8277.. 0

Как быть с минусом тут я не знаю, думаю нужно проинвертировать эти 9 розрядов (почему ?), тогда получится число 1000000011 (515), хотя тут ИМХО.

Как то вы хитро вычисляете. В файле посмотрите формулы - там все прозрачно.

А насчет точности: хотите больше - берите больше разрядов, или переходите на плавающую точку

Ссылка на комментарий
Поделиться на другие сайты

Как то вы хитро вычисляете. В файле посмотрите формулы - там все прозрачно.

Большое спасибо за файл, но там я не понял, почему в первом разряде появляется единица, чем это определяется? Почему в нулевом разряде нет единицы? Хитрости никакой вот перевод

Ссылка на комментарий
Поделиться на другие сайты

Большое спасибо за файл, но там я не понял, почему в первом разряде появляется единица, чем это определяется?

Это определяется тем что результат отрицательный cos(6.38) имеет значение - 0,99....

Почему в нулевом разряде нет единицы?

Потому что число наиболее близкое к требуемому.

В файле можно менять единички на нулики и в зависимости от кода, получать разные значения.

Ссылка на комментарий
Поделиться на другие сайты

Потому что число наиболее близкое к требуемому.

В файле можно менять единички на нулики и в зависимости от кода, получать разные значения.

Получается нужно подбирать код, точного перевода нет ?

Ссылка на комментарий
Поделиться на другие сайты

Точные значения бывают только целочисленными.

В арифметике с фиксированной запятой - только что-то наиболее близкое.

В представлении чисел с плавающей запятой, тоже точность ограничена - там просто порядки другие.

Мне проще было сделать один раз "программку" и подбирать, нежели регулярно переводить.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...