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

Вычисление tg(x) на AHDL

Добрый день!

Необходимо написать элемент на AHDL для подсчета:

tg(x) = x + x3/3 + 2*x5/15 с точностью не менее 4-х разрядов после точки .

Подскажите - как это сделать? Или может есть уже готовые?

Поделиться сообщением


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

Не говорите загадками. Вам нужно рассчитать фазу сигнала по двум квадратурам?

Если да, то уже есть готовые (и не полиномально аппроксимирующие решения, применяемые в процессорах).

Поделиться сообщением


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

Не говорите загадками. Вам нужно рассчитать фазу сигнала по двум квадратурам?

Если да, то уже есть готовые (и не полиномально аппроксимирующие решения, применяемые в процессорах).

Есть схема калькулятор( если быть точнее только контроллер дисплея и контроллер клавиатуры). Нужно выполнить вычисление определенной операции т.е. тангенса.

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

Изменено пользователем neomax38

Поделиться сообщением


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

Таблица перекодировок не вариант?

Это как? Все значения тангенса вычеслить и в таблицу загнать?

 

Поделиться сообщением


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

Необходимо написать элемент на AHDL для подсчета:

tg(x) = x + x3/3 + 2*x5/15 с точностью не менее 4-х разрядов после точки .

Если AHDL то значит Квартус. Там есть мегафункции сложения и умножения. Выбираете представление чисел с фиксированной точкой, не менее 14 двоичных разрядов в дробной части, так как 2**14=16384>10000 а вы хотите не менее 4-х разрядов после точки.

Возведение в степень заменяете умножением на себя. Деление на 3 и на 15 заменяете на умножением на (1/3) и (1/15), то есть для последнего члена делаете сразу умножение на (2/15).

Пишете на AHDL использование этих мегафункий - вроде 5 умножений и 2 сложения. Соединяете порты.

Поделиться сообщением


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

Если AHDL то значит Квартус. Там есть мегафункции сложения и умножения. Выбираете представление чисел с фиксированной точкой, не менее 14 двоичных разрядов в дробной части, так как 2**14=16384>10000 а вы хотите не менее 4-х разрядов после точки.

Возведение в степень заменяете умножением на себя. Деление на 3 и на 15 заменяете на умножением на (1/3) и (1/15), то есть для последнего члена делаете сразу умножение на (2/15).

Пишете на AHDL использование этих мегафункий - вроде 5 умножений и 2 сложения. Соединяете порты.

Порты на мегафункциях?

Поделиться сообщением


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

Порты на мегафункциях?

Каждая мегафункция имеет входные сигналы и выходные сигналы. Их также называют как "порты". В AHDL, видимо нужно создать именованный сигнал, например da[23..0] для 24-битной шины, и вписать его как минимум дважды - в качестве выходного у одной мегафункции и в качестве входного у ещё одной или нескольких.

Поделиться сообщением


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

Каждая мегафункция имеет входные сигналы и выходные сигналы. Их также называют как "порты". В AHDL, видимо нужно создать именованный сигнал, например da[23..0] для 24-битной шины, и вписать его как минимум дважды - в качестве выходного у одной мегафункции и в качестве входного у ещё одной или нескольких.

А как дробное значение сделать?

Поделиться сообщением


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

Разберите формат фиксированной точки Fixed point. После этого станет понятно как делать дробные. А дальше только всё соединить останется.

Поделиться сообщением


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

А как дробное значение сделать?

Скачайте книгу Digital Design: An Embedded Systems Approach Using Verilog, автор Peter Ashenden

И читайте главу Numeric Basics

http://www.scribd.com/doc/68060422/Digital...-Peter-Ashenden

Поделиться сообщением


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...