¿Implementación de Adder en Verilog?

1

En mi proyecto de electrónica digital necesito calcular el producto de punto de dos vectores a y b (256 longitudes de cada uno). Siguiendo el concepto básico, necesito calcular \ $ \ sum_ {k = 1} ^ {256} a_kb_k \ $. Cada elemento de los vectores es un número binario de 4 bits. Esto no parece ser una tarea difícil en verilog, donde puedo implementar esto como en XILINX ISE.

sum=0;

for(i=0,i<256,i=i+1)

suma = suma + \ $ a_ib_i \ $

Furthur necesito implementar esto en FPGA. Pero aquí me confundí en dos conceptos:

  1. ¿Debo escribir el módulo para el "sumador completo" y agregar las entradas de la suma anterior y \ $ a_i b_i \ $ bit por bit y almacenar la salida en suma. O simplemente xilinx implementará automáticamente el sumador completo durante la síntesis.

  2. Es válido para usar en bucle al escribir siempre @ (condición) porque en FPGA tenemos el reloj como señal de control. O, en este caso, también xilinx implementará / controlará el bucle for por señal de reloj.

pregunta Virange

1 respuesta

1
  

¿Necesito escribir el módulo para 'sumador completo' y agregar las entradas suma de suma previa y aibi bit a bit y almacenar la salida en suma. O simplemente xilinx implementará automáticamente el sumador completo durante la síntesis.

Puede esperar que cualquier herramienta de síntesis de verilog decente maneje operadores de suma y resta. La mayoría de los modernos también manejarán operadores de multiplicación. El soporte para operadores de división es menos común (y cuando se implementan, tienden a sintetizarse en bloques lentos muy grandes).

La mayoría de las veces está bien usar los operadores de suma, resta y multiplicación. Para sumadores y multiplicadores realmente grandes, a veces es nessacery dividirlos en unidades más pequeñas para cumplir con el tiempo.

  

Es válido para usar en bucle en la escritura de siempre @ (condición) porque en FPGA tenemos el reloj como señal de control. O, en este caso, también xilinx implementará / controlará el bucle for por señal de reloj.

las herramientas de síntesis no convertirán un bucle como ese en lógica secuencial. En su lugar, intentarán desenrollarlo e implementarlo de forma combinatoria. El resultado será algo muy grande y muy lento.

    
respondido por el Peter Green

Lea otras preguntas en las etiquetas