Перейти к содержанию
    

active-hdl and sqrt operation

Доброго времени суток. У меня возникла проблема с операцией нахождения квадратного корня. По какимто причинам она не роботает с большими числами. Подскажите что не так, как по мне так проблема в цикле

 

 

  1. 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;

Изменено пользователем nazikstriy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас значение сигнала p1 в коде не определено, а функция корня вызывается от выражения содержащего этот сигнал, соответственно тоже будет не определена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему не использовать стандартную функцию из пакета ieee.math_real.all?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему не использовать стандартную функцию из пакета ieee.math_real.all?

Потому что представление чисел с фиксированой точкой(целочисленные) поддерживается синтезатором. Для флоата надо писать корку.

Данную библиотеку можно использовать в тестбенче

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...