Jump to content

    

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;

Edited by nazikstriy

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
А почему не использовать стандартную функцию из пакета ieee.math_real.all?

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this