Boobrilla 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Всем привет. Всегда было проще разбираться в новом материале с помощью конкретных примеров. Но тут к сожалению пусто (либо я просто не нашел) в плане РАБОЧИХ примеров. По сухой теории сложно заходит. Поэтому пишу сюда в попытке получить помощь. (Сам не совсем новичок в программировании, но в программировании лог. устройств. чуть больше нолика ). Вот частичка того, что нужно, что самому получилось описать. В большей степени проблема в понимании основного куска кода, где и есть тот алгоритм, который двигает собственно вектор наш. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.numeric_std.all; entity sinustest is port( clk: in STD_LOGIC; rst: in STD_LOGIC; dataz : out STD_LOGIC_VECTOR (15 downto 0); data : out STD_LOGIC_VECTOR (15 downto 0)); ); end sinustest; architecture Behavioral of sinustest is type arr_type is array (0 to 16) of std_logic_vector(15 downto 0); signal Y : arr_type; signal X : arr_type; signal Z : arr_type; signal a : arr_type:= ( "0011111111111111", "0010010111000111", "0001001111110110", "0000101000100010", "0000010100010110", "0000001010001100", "0000000101000110", "0000000010100011", "0000000001010001", "0000000000101001", "0000000000010100", "0000000000001010", "0000000000000101", "0000000000000011", "0000000000000001", "0000000000000001","0000000000000000"); -- описание сигналов и фазового сдвига на каждый такт type mode is (functioning1, functioning2); signal state : mode; begin process (clk) begin if clk = '1' and clk'event then -- начальное значение (очевидно) по x y. стартовая отсечка вектора if rst = '1' then X(0) <= "0011111111111111"; Y(0) <= "0000000000000000"; state <= functioning1; Z(0) <= "0000000000000000"; .... .... -- та дичь, где должно все происходить end if; dataz <= Z(16); data <= Y (16); end process; end Behavioral; CODE Вот мне бы с "дичью" разобраться, был бы благодарен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tausinov 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Вот мне бы с "дичью" разобраться, был бы благодарен А что такое X, Y, Z? И что конкретно вызывает вопросы? Вообще классика генерации гармоники - память со значениями синуса\косинуса и аккумулятор фазы, с помощью которого получается текущий адрес на входе памяти. А дальше уже большой простор для различных вариаций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Boobrilla 0 17 августа, 2017 Опубликовано 17 августа, 2017 (изменено) · Жалоба А что такое X, Y, Z? И что конкретно вызывает вопросы? Вообще классика генерации гармоники - память со значениями синуса\косинуса и аккумулятор фазы, с помощью которого получается текущий адрес на входе памяти. А дальше уже большой простор для различных вариаций. X Y - это координаты вектора (x0 y0 это начальные координаты.) Z - сдвиг фазы (со знаком) Конкретно вызывает вопросы реализация алгоритма на VHDL. сама мат часть Изменено 17 августа, 2017 пользователем Boobrilla Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Прежде чем делать это в железе, нужна не только теория, но и действующая модель на том, на чем уровень не нулевой. Для кого-то это Матлаб, у меня же в почете Python. Сначала модель, а потом это можно перелохматить в аппаратный код. Конкретно вызывает вопросы реализация алгоритма на VHDL. сама мат часть Модель в студию. И тогда можно будет претворить алгоритм в "дичь". А то мат части не видно, тогда какие могут быть вопросы, что мы собственно реализуем? VDHL (фу) обязательно? На Verilog я бы написал из спортивных соображений. И чем не подошли существующие IP-ядра с кордиками от производителя? Они вполне работают, или тут академические цели? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Boobrilla 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Прежде чем делать это в железе, нужна не только теория, но и действующая модель на том, на чем уровень не нулевой. Для кого-то это Матлаб, у меня же в почете Python. Сначала модель, а потом это можно перелохматить в аппаратный код. Модель в студию. И тогда можно будет претворить алгоритм в "дичь". VDHL (фу) обязательно? На Verilog я бы написал из спортивных соображений. И чем не подошли существующие IP-ядра с кордиками от производителя? Они вполне работают, или тут академические цели? 1. Ну напишите на Veriloge (из спортивных соображений). Лишним не будет. 2. существующие взять не проблема, тут как раз таки академическая цель, для разбора написания их самому) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба 1. Ну напишите на Veriloge (из спортивных соображений). Лишним не будет. 2. существующие взять не проблема, тут как раз таки академическая цель, для разбора написания их самому)Есть возможность предоставить математическую модель алгоритма с комментариями? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Boobrilla 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Есть возможность предоставить математическую модель алгоритма с комментариями? только так( file:///C:/Users/i.yakushevski/AppData/Local/Packages/Microsoft.SkypeApp_kzf8qxf38zg5c/LocalState/Downloads/03-Zakharov-Algoritmy-CORDIC-p-353.pdf (http://kit-e.ru/assets/files/pdf/2011_12_36.pdf))и там есть матч часть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Всем привет. Всегда было проще разбираться в новом материале с помощью конкретных примеров. Вот мне бы с "дичью" разобраться, был бы благодарен http://kit-e.ru/articles/plis/2011_12_36.php Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Boobrilla 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба http://kit-e.ru/articles/plis/2011_12_36.php По-моему это не VHDL. Разве нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба По-моему это не VHDL. Разве нет? может такое для понимания ? или 1 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба По-моему это не VHDL. Разве нет? Верилог... И в чем проблема? Методику автор описал. Обычно если есть вопросы, то пишут автору и спрашивают... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
semperante 0 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба Когда-то писал модель на SystemVerilog: - вычисление как косинуса/синуса, так и амплитуды/фазы; - выбор последовательной или полностью параллельной архитектуры; - матлаб bit accurate проверочная модель; - автоматическая верификация в Modelsim. https://github.com/SemperAnte/cordic Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Boobrilla 0 21 августа, 2017 Опубликовано 21 августа, 2017 · Жалоба может такое для понимания ? или 1 2 Спасибо, топ, ни одной из этих ссылок не видел сам) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться