-
KhaeS
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 33
-
Спасибо получено: 0
-
-
-
-
|
Можно ли в Verilog реализовать математические функции типа синуса, логарифма или проще это будет сделать в виде таблицы соответсвий?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
nckm
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 112
-
Спасибо получено: 34
-
-
-
-
-
|
наверняка можно реализовать на verilog. наверное тригонометрические функции как-то можно разложить в ряды с более элементарными операциями типа сложения, умножения и прочих.
В конце концов ведь матем. инструкции реализованы в современных процессорах.
Другое дело, сколько реализация займет места в чипе, какое будет быстродействие. Вполне может быть, что для конкретной задачи подойдет и таблица.
Вообще погуглив "sin verilog" можно найти много чего.
Например вот это:
www.cse.lehigh.edu/~caar/marnold/papers/sanjose_hdlcon.doc
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
KhaeS
-
Автор темы
-
Не в сети
-
Осваиваюсь на форуме
-
-
Сообщений: 33
-
Спасибо получено: 0
-
-
-
-
|
Почитал. И вправду используются ряды Тейлора с заранее заданными коэффициентами.
Вы кстати не пробовали использовать ПЛИСы в качестве DSP-процессоров?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
nckm
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 112
-
Спасибо получено: 34
-
-
-
-
-
|
KhaeS пишет: Почитал. И вправду используются ряды Тейлора с заранее заданными коэффициентами.
Вы кстати не пробовали использовать ПЛИСы в качестве DSP-процессоров?
к сожалению плис платы Марсоход слишком мала для сложных функций, но в больших чипах все возможно
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
alexx188
-
-
Не в сети
-
Новый участник
-
-
Сообщений: 17
-
Спасибо получено: 1
-
-
|
Вопрос следующий: Каким образом quartus представляет отрицательные числа например ( -1) - 0xFFFF ? если да, то что даст следующее сравнение:
wire signed [15:0] A = 16'hFFFF;
wire B = (A > 1); // 1 или 0 ?
wire BB = $signed(A>1); //1 или 0 ?
wire [15:0] C = 16'h0001;
wire signed [15:0] D = A - C; // 0xFFFE ?
wire signed [15:0] E = C - A; // 0x0002 ? Тогда что дает оператор $signed? И что получится при умножении signed на unsigned. Как во всем этом разобраться? :sick:
Заранее спасибо.
P.S. Где(желательно на русском) можно почитать про умножение чисел с фиксированной точкой(желательно с примерами на верилог)
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.109 секунд