cómo encontrar la raíz cuadrada de un número usando el método babilónico [cerrado]

-8

cómo encontrar la raíz cuadrada del número usando la ecuación del método babilónico: Xn + 1 = 1/2 (Xn + (s / Xn)) mediante el uso del código verilog cualquiera me ayuda ........ Tengo escribió un código pero no se está ejecutando la síntesis.

module squre (
  input [15:0] a,
  output reg [15:0] x
);
  reg [15:0] b;
  reg [15:0] y [0:9];
  integer i;

  initial b=16'd1;

  always @(a) begin
    y[0]=b;
    for (i=0; i<10; i=i+1) begin
      y[i+1]= ((y[i]+(a/y[i]))/2);
      if (y[i+1]==y[i]) begin
        y[9]=y[i];
        i=9;
      end
    end
    x=y[9];
  end

endmodule

Si hay algún problema en el programa dime rápido. También en este programa hay que estar dividiendo el problema. Dime cómo escribir el programa.

    
pregunta Ravi Gurikar

1 respuesta

2

En realidad, lo único que impide la síntesis es la instrucción if dentro del bucle for . Sin esto, el código especifica una red combinatoria perfectamente válida, aunque algo grande y desordenada.

Suponiendo que sus herramientas saben cómo implementar el operador / como una red combinatoria en primer lugar.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas