Hi all, In my package declared below and performing rational division operation,once i ran on GHDL VHDL simulator gave an error "no function declarations for operator "/"" variable w,x : integer; variable num : real; begin w := numerator(a); x := denominator(a); num :=(a(numer))/(a(denom)); Thanks in advance Regards Raghavendra
I cannot understand your code... For real operations: did you include the ieee.math_real.all?
Thanks .i attached my source code.actually its package ...
> i attached my source code. Thats not the complete code. At least the libraries are missing... And this seems to be wrong:
type rational is array (natural range numer to denom) of integer; -- range -16384 to 16383;
Usually the range of an integer is -2^31 to 2^31-1
constant numer : INTEGER := 0; -- numerator constant denom : INTEGER := 1; -- denominator type rational is array (natural range numer to denom) of integer;
Why do you not use a record? That would be the ideal solution for your fractional number:
type Rational is record numer : integer; denom : integer; end record Rational ; -- use it that way: signal a,b: work.ratpack_extras_rational_real.Rational; a.numer <= 123; a.denom <= 12; b <= a;
> Thats not the complete code. actually its a complete package. i will try whatever you suggested,whats the problem in my code.
> no function declarations for operator "/" There is no definition for a integer division resulting in a float value. Try this num := real(a(numer))/real(a(denom));
Thanks Lothar Miller.. > num := real(a(numer))/real(a(denom)); above statment working fine.