Posted on:

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
Posted on:

I cannot understand your code... For real operations: did you include the ieee.math_real.all?
Posted on:

Thanks .i attached my source code.actually its package ...
Posted on:

> 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^311
Posted on:

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; 
Posted on:

> Thats not the complete code.
actually its a complete package.
i will try whatever you suggested,whats the problem in my code.
Posted on:

> 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));
Posted on:

Thanks Lothar Miller..
> num := real(a(numer))/real(a(denom));
above statment working fine.