La tonica ??
A ve...............
El lenguaje VHDL es basicamente crear circuitos a base de programacion, como cuando haces un programa en C, solo que con la de años que tiene este lenguaje y no se ha actualizado, parece que programas en Pascal mas que otra cosa.
El programa en si que te he escrito es lo que pedias, dividir a base de restas ejemplo :
7 / 2 => 7-2 = 5 , 5 - 2 = 3 , 3 - 2 = 1 , y aqui paras porque no se puede volver a dividir usando enteros porque 1 < 2.
Entonces usas como condicion de parada del bucle que el resultado sea menor al que resta.
Asi que has dividido 7/2 haciendo restas sucesivas, en este caso 3.
Entonces en el while podrias poner directamente que la condicion del resultado fuese menos que el restador, pero yo prefiero usar variables externas que activo cuando quiero, como si fueran booleanas.
He visto que en lo que te pase falta el contador para el resultado, porque solo de devuelve el resto, no la division, asi que lo conseguirias haciendo un contador que al final de cada loop haga un d := d +1; que previamente deberias haber inicializado a 0.
Y no se que mas explicarte la verdad, con una pregunta concreta es facil, pero con una tan generica..............