TurkinDV 0 11 мая, 2016 Опубликовано 11 мая, 2016 · Жалоба Кто может помочь или выполнить(желательно) это задание? Сам сколько не пытался реализовать ,не удалось,мало опыта. :crying: Разработка схемы вычисления Sin(x) Блок должен выдавать значение функции Sin(x). Разрядность входных данных и результата следующая: a) Вход 8 разрядов, выход 8 разрядов B) Вход 4 разряда, выход 16 разрядов c) Вход 16 разрядов, выход 4 разряда Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 11 мая, 2016 Опубликовано 11 мая, 2016 · Жалоба если без хитростей, то а - таблица б - таблица в - выбор из 16 диапазонов входных значений. по одному диапазону для каждого выходного значения маленькие хитрости: учет квадранта входного значения позволит сократить размер таблиц или кол-во сравнений. Успехов Можно добавить 16 - 16, и вполне получится вопрос для собеседования на конкурс "творчество юных". Разработка схемы вычисления Sin(x) Блок должен выдавать значение функции Sin(x). Разрядность входных данных и результата следующая: a ) Вход 8 разрядов, выход 8 разрядов b ) Вход 4 разряда, выход 16 разрядов c ) Вход 16 разрядов, выход 4 разряда Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bugdesigner 0 12 мая, 2016 Опубликовано 12 мая, 2016 · Жалоба Поищите в гугле по ключевым словам CORDIC Verilog code. Найдётся несколько проектов, останется лишь слегка доделать и можно тащить преподу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 13 мая, 2016 Опубликовано 13 мая, 2016 · Жалоба Кто может помочь или выполнить(желательно) это задание? Сам сколько не пытался реализовать ,не удалось,мало опыта. :crying: Просто любопытно, где такие задания дают и кто? Преподаватель? bugdesigner советует взять CORDIC на Verilog - а где его можно взять? Мне тоже надо, когда искал - найти не удавалось. Пока что использую кору от Xilinx. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 13 мая, 2016 Опубликовано 13 мая, 2016 · Жалоба bugdesigner советует взять CORDIC на Verilog - а где его можно взять? Мне тоже надо, когда искал - найти не удавалось. Пока что использую кору от Xilinx. генератор кордиков выкладывал на форуме + статья по кордику выкладывалась на этом форуме раз 10, на моей памяти :) по ней делать - 30 минут максимум. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
estel23 0 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Пользуйся. Мож преподу покатит))) module sine_cos(clk, reset, en, sine, cos); input clk, reset, en; output [7:0] sine,cos; reg [7:0] sine_r, cos_r; assign sine = sine_r + {cos_r[7], cos_r[7], cos_r[7], cos_r[7:3]}; assign cos = cos_r - {sine[7], sine[7], sine[7], sine[7:3]}; always@(posedge clk or negedge reset) begin if (!reset) begin sine_r <= 0; cos_r <= 120; end else begin if (en) begin sine_r <= sine; cos_r <= cos; end end end endmodule // sine_cos Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Пользуйся. Мож преподу покатит))) module sine_cos(clk, reset, en, sine, cos); input clk, reset, en; output [7:0] sine,cos; reg [7:0] sine_r, cos_r; assign sine = sine_r + {cos_r[7], cos_r[7], cos_r[7], cos_r[7:3]}; assign cos = cos_r - {sine[7], sine[7], sine[7], sine[7:3]}; always@(posedge clk or negedge reset) begin if (!reset) begin sine_r <= 0; cos_r <= 120; end else begin if (en) begin sine_r <= sine; cos_r <= cos; end end end endmodule // sine_cos объяснение математики с реализацией на VHDL :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Пользуйся. Мож преподу покатит))) Интересное решение, возможно, самое простое и экономное. Приращение здесь вычисляется через производную. Это Ваше собственное изобретение, или есть еще первоисточники по этому методу, которые можно еще почитать?. Maverick, спасибо за ссылку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Интересное решение, возможно, самое простое и экономное. Это Ваше собственное изобретение, или есть еще первоисточники по этому методу, которые можно еще почитать?. первый вроде спросил на форуме Victor® Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
estel23 0 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба первый вроде спросил на форуме Victor® вот нашел вроде автора Да, я читал эту математику. Потом в нете наткнулся на приведенный мной пример. Я его разбирал, менял частоту и прочее (опять же подглядывая в ссылку на математику). Занимательно все это. ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Отлично, да. Как sin(x)-то вычислить этим агрегатом? x куда прикручивать? Пользуйся. Мож преподу покатит))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Отлично, да. Как sin(x)-то вычислить этим агрегатом? x куда прикручивать? возможно здесь ответ Так как мы генерим последовательность cos (n*h), то записав ее как cos(2*pi*F*n*dt), мы получаем : n*h = 2*pi*F*n*dt Откуда: F = h/(2*pi*dt) = arccos((2-1/64)/2)/(2*pi*dt) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
estel23 0 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Отлично, да. Как sin(x)-то вычислить этим агрегатом? x куда прикручивать? X - это амплитуда. Изменяй кол-во разрядов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба Круто, да.. разрядов чего? давайте проще мне нужно вычислить y=sin(pi/e). какие мои действия? 1. квантую аргумент 2. ? X - это амплитуда. Изменяй кол-во разрядов. возможно здесь ответ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба давайте проще мне нужно вычислить y=sin(pi/e). какие мои действия? 1. квантую аргумент думаю пункт 2 будет: - в always делаем компаратор с заданным числом, то через N тактов получите результат (возможно очень приблизительный) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться