# Forum: FPGA, VHDL & Verilog VHDL no function declarations for operator "/" Error

 Author: Raghavendra B. (raghavendra_b98) Posted on: 2012-03-15 07:28

Rate this post
 0 ▲ useful ▼ not useful
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));

Regards
Raghavendra

 Author: Lothar M. (lkmiller) (Moderator) Posted on: 2012-03-15 07:52

Rate this post
 0 ▲ useful ▼ not useful
I cannot understand your code...
For real operations: did you include the  ieee.math_real.all?

 Author: Raghavendra B. (raghavendra_b98) Posted on: 2012-03-15 08:05

Rate this post
 0 ▲ useful ▼ not useful
Thanks .i attached my source code.actually its package ...

 Author: Lothar M. (lkmiller) (Moderator) Posted on: 2012-03-15 08:24

Rate this post
 0 ▲ useful ▼ not useful
> 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

 Author: Lothar M. (lkmiller) (Moderator) Posted on: 2012-03-15 08:55

Rate this post
 0 ▲ useful ▼ not useful
  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; 

 Author: Raghavendra B. (raghavendra_b98) Posted on: 2012-03-15 09:50

Rate this post
 0 ▲ useful ▼ not useful
> Thats not the complete code.
actually its a complete package.

i will try whatever you suggested,whats the problem in my code.

 Author: Lothar M. (lkmiller) (Moderator) Posted on: 2012-03-15 11:18

Rate this post
 0 ▲ useful ▼ not useful
> 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));

 Author: Raghavendra B. (raghavendra_b98) Posted on: 2012-03-15 13:02

Rate this post
 0 ▲ useful ▼ not useful
Thanks Lothar Miller..

>    num := real(a(numer))/real(a(denom));

above statment working fine.

• $formula (LaTeX syntax)$