neomax38 0 27 апреля, 2012 Опубликовано 27 апреля, 2012 · Жалоба Добрый день! Необходимо написать элемент на AHDL для подсчета: tg(x) = x + x3/3 + 2*x5/15 с точностью не менее 4-х разрядов после точки . Подскажите - как это сделать? Или может есть уже готовые? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 27 апреля, 2012 Опубликовано 27 апреля, 2012 · Жалоба Не говорите загадками. Вам нужно рассчитать фазу сигнала по двум квадратурам? Если да, то уже есть готовые (и не полиномально аппроксимирующие решения, применяемые в процессорах). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neomax38 0 27 апреля, 2012 Опубликовано 27 апреля, 2012 (изменено) · Жалоба Не говорите загадками. Вам нужно рассчитать фазу сигнала по двум квадратурам? Если да, то уже есть готовые (и не полиномально аппроксимирующие решения, применяемые в процессорах). Есть схема калькулятор( если быть точнее только контроллер дисплея и контроллер клавиатуры). Нужно выполнить вычисление определенной операции т.е. тангенса. Вводим значение с клавиатуры нажимаем кнопочку, он считает и выдает ответ Изменено 27 апреля, 2012 пользователем neomax38 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 29 апреля, 2012 Опубликовано 29 апреля, 2012 · Жалоба Таблица перекодировок не вариант? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artem_Petrik 0 29 апреля, 2012 Опубликовано 29 апреля, 2012 · Жалоба гуглите CORDIC, должно помочь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neomax38 0 29 апреля, 2012 Опубликовано 29 апреля, 2012 · Жалоба Таблица перекодировок не вариант? Это как? Все значения тангенса вычеслить и в таблицу загнать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maksimp 0 29 апреля, 2012 Опубликовано 29 апреля, 2012 · Жалоба Необходимо написать элемент на 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 сложения. Соединяете порты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neomax38 0 30 апреля, 2012 Опубликовано 30 апреля, 2012 · Жалоба Если AHDL то значит Квартус. Там есть мегафункции сложения и умножения. Выбираете представление чисел с фиксированной точкой, не менее 14 двоичных разрядов в дробной части, так как 2**14=16384>10000 а вы хотите не менее 4-х разрядов после точки. Возведение в степень заменяете умножением на себя. Деление на 3 и на 15 заменяете на умножением на (1/3) и (1/15), то есть для последнего члена делаете сразу умножение на (2/15). Пишете на AHDL использование этих мегафункий - вроде 5 умножений и 2 сложения. Соединяете порты. Порты на мегафункциях? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maksimp 0 30 апреля, 2012 Опубликовано 30 апреля, 2012 · Жалоба Порты на мегафункциях? Каждая мегафункция имеет входные сигналы и выходные сигналы. Их также называют как "порты". В AHDL, видимо нужно создать именованный сигнал, например da[23..0] для 24-битной шины, и вписать его как минимум дважды - в качестве выходного у одной мегафункции и в качестве входного у ещё одной или нескольких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neomax38 0 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба Каждая мегафункция имеет входные сигналы и выходные сигналы. Их также называют как "порты". В AHDL, видимо нужно создать именованный сигнал, например da[23..0] для 24-битной шины, и вписать его как минимум дважды - в качестве выходного у одной мегафункции и в качестве входного у ещё одной или нескольких. А как дробное значение сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wic 0 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба Разберите формат фиксированной точки Fixed point. После этого станет понятно как делать дробные. А дальше только всё соединить останется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Джеймс 4 3 мая, 2012 Опубликовано 3 мая, 2012 · Жалоба А как дробное значение сделать? Скачайте книгу Digital Design: An Embedded Systems Approach Using Verilog, автор Peter Ashenden И читайте главу Numeric Basics http://www.scribd.com/doc/68060422/Digital...-Peter-Ashenden Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться