Hi all How to initialize and use c:=a/b statment in VHDL. Regards Raghavendra

There is not enough information for a answer! Pls. post ALL necessary information. Not only "why isn't it working?" What is your actual problem? What do you want to do? What have you tried? What does not work? What warnings or errrors do you get?

Thanks for your replies.. Hi Lothar Miller, I try to do comparing 2 rationals numbers and display the number is max or min, for example a/b and c/d are 2 rational numbers i want to display max :=a/b or c/d.

> comparing 2 rationals numbers Just for simulation? Or in real hardware? > the number What types are a...d? > try to do comparing 2 rationals numbers and display the number is max And how far did you get until now? Show your first steps, report the problems you got, and then lets discuss ways to solve them.

Thanks...I attached my program.once i ran in GHDL simulator it gave error "no function declarations for operator "/""

```
> "no function declarations for operator "/""
No corresponding line number?
Its VERY exhausting to worm every little facts out of you... :-/
```

```
> line number 67 and 69.
Would it cost you much effort to post the complete lines of code.
This just because the code you posted has only 62 lines... :-o
```

Sorry ..i attached my source code. error --> "no function declarations for operator "/" error in line number --> 52 and 54

How can this fit together:

1 | type rational is array (natural range numer to denom) of integer; -- one dimension |

2 | |

3 | variable max : rational; |

4 | |

5 | max(w/x,y/z) := w/x; -- two dimensions? |

However: What happens, if you use additional variables like this

1 | function maxi(a,b,c,d:integer) return rational is |

2 | variable w,x,y,z:integer; |

3 | variable t1,t2:integer; |

4 | variable max : rational; |

5 | ```
begin
``` |

6 | t1:=w*z; |

7 | t2:=x*y; |

8 | t3:=w/x; |

9 | t4:=y/z; |

10 | if(t1 > t2)then |

11 | max(t3,t4) := w/x; |

12 | ```
else
``` |

13 | max(t3,t4) := y/z; |

14 | |

15 | ```
:
``` |

16 | ```
:
``` |

Hi..Lothar Miller I changed in my program below,but its not working fine gave error.attached my program. t3:=w/x; t4:=y/z; if(t1 > t2)then max(t3,t4) := t3; else max(t3,t4) := t4; ERRORS :- 50:8: no function declarations for operator "*" 51:8: no function declarations for operator "*" 52:8: no function declarations for operator "/" 53:8: no function declarations for operator "/" 55:6: number of indexes mismatches array dimension 57:6: number of indexes mismatches array dimension ghdl: compilation error

> 55:6: number of indexes mismatches array dimension > 57:6: number of indexes mismatches array dimension What did i write about one and two dimensions? > 50:8: no function declarations for operator "*" > 51:8: no function declarations for operator "*" > 52:8: no function declarations for operator "/" > 53:8: no function declarations for operator "/" You didnotimplement a function for the operations * and / Additionally: in which way must a integer be converted to a "rational"?

1 | variable w,x,y,z: integer; |

2 | variable t1,t2,t3,t4: rational; |

3 | ```
begin
``` |

4 | t1:=w*z; -- how to convert from "integer" to "rational"? |

5 | t2:=x*y; |

6 | t3:=w/x; |

7 | t4:=y/z; |

Thanks Lothar Miller..fron your suggestions my program working fine Thanks once again

Raghavendra B. wrote: > my program working fine Thats nice to hear. > Thanks once again De nada... ;-)

Hello Raghavendra B. i have the same problem like you can you post the last code how you solve it pls? Thanks...