# Raíz Cuadrada en VHDL



## SGTheDreamer (Mar 17, 2015)

Mi pregunta es, como hago un código que NO sea VHDL PROGRAMABLE, utilizando solo las librerias  >> 
std_logic_1164.all;
std_logic_unsigned.all;

digamos de una manera lógica... 
Si pueden darme al menos una idea se los agradecería mucho


----------



## chclau (Mar 18, 2015)

Cuando dices que no sea programable te refieres a que sea sintetizable?

http://vhdlguru.blogspot.co.il/2010/03/vhdl-function-for-finding-square-root.html


----------



## 1024 (Mar 18, 2015)

Hola, no se entiende ¿a que te refieres con "VHDL PROGRAMABLE"? eso no existe, podrías empezar por consultar un libro de aritmética y ver los diferentes métodos de obtención de raíz cuadrada de un numero.


----------



## SGTheDreamer (Mar 18, 2015)

Bueno, si, tienen razón.
Entonces un tipo de circuito combinacional que me permita sacar la raíz sin usar ningún tipo de lógica secuencial.
O sea que no me es permitido usar alguna señal de reloj o algo por el estilo.


----------



## chclau (Mar 18, 2015)

Para numeros de que tamaño?

Si por ejemplo tu parametro de entrada es un numero de 4 bits, una solucion es realizar una tabla de verdad que relacionen cada numero con su raiz:

0 => 0
1 => 1
2 => 1
3 => 1
4 => 2
...
7 => 2
8 => 2
9 => 3

etc.

Habria que ver si queres solucion entera o con varios decimales


----------



## SGTheDreamer (Mar 18, 2015)

Si,  es para números enteros de
 8 bits,  no hay necesidad de que la respuesta tenga decimales


----------



## chclau (Mar 18, 2015)

Ocho bits es una tabla monstruosa. Los resultados posibles son solo 16, de 0 a 15, por lo que quiza hay algun truco para simplificar la tabla... sera cuestion de analizar que caracteristicas binarias tienen las potencias y analizar solamente esos bits.

Por ejemplo si analizo la zona de 4 a 16, el primer numero cuya raiz es 2 tiene el bit 2 encendido, la primera cuya raiz es 3 tiene el bit 3 encendido, para 4 lo mismo (bit 4 encendido), pero a partir de 5 ya se complica.


----------

