nazikstriy 0 15 декабря, 2015 Опубликовано 15 декабря, 2015 (изменено) · Жалоба Доброго времени суток. У меня возникла проблема с операцией нахождения квадратного корня. По какимто причинам она не роботает с большими числами. Подскажите что не так, как по мне так проблема в цикле library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_textio.all; use IEEE.std_logic_unsigned.all; use IEEE.std_logic_signed.all; use ieee.numeric_std.all; use ieee.numeric_bit.all; use IEEE.std_logic_arith.all; use IEEE.MATH_REAL.ALL; use IEEE.MATH_complex.ALL; entity comp is port ( clk : in std_logic ); end comp; architecture arch of comp is signal p1: real ; signal sqrt1: real :=1.0; signal k1: real :=0.0 ; signal g1: real :=1.0 ; begin read: process(clk) begin if clk'event and clk='1' then if sqrt(sqrt1) mod 1.0/= 0.0 then while sqrt(sqrt1+k1*p1) mod 1.0 /= 0.0 loop k1<=k1+1.0; exit when sqrt(sqrt1+k1*p1) mod 1.0 > 1.0; end loop; g1<=sqrt(sqrt1+k1*p1) mod p1; else g1<=sqrt(sqrt1)mod p1; end if; end if; end process; end arch; Изменено 15 декабря, 2015 пользователем nazikstriy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurey 0 15 декабря, 2015 Опубликовано 15 декабря, 2015 · Жалоба У вас значение сигнала p1 в коде не определено, а функция корня вызывается от выражения содержащего этот сигнал, соответственно тоже будет не определена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gutzan 0 24 декабря, 2015 Опубликовано 24 декабря, 2015 · Жалоба А почему не использовать стандартную функцию из пакета ieee.math_real.all? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 24 декабря, 2015 Опубликовано 24 декабря, 2015 · Жалоба А почему не использовать стандартную функцию из пакета ieee.math_real.all? Потому что представление чисел с фиксированой точкой(целочисленные) поддерживается синтезатором. Для флоата надо писать корку. Данную библиотеку можно использовать в тестбенче Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться