7 votos

Diferentes Implementaciones De Serpiente

Yo estoy armando una ALU, que quiero sintetizar en un FPGA. El carry-look-ahead serpiente es la que muchos eligen para su uso como contraposición a la ondulación-llevar a la serpiente. Sin embargo, un pensamiento cruzó mi mente. La ondulación-llevar los complementos me han puesto juntos antes de simplemente tiene una serie de bits completo complementos conectados el uno al otro. A mi, aunque se, lo que si yo tuviera que diseñar un 4 bits full-adder? No estoy hablando de un sumador de cuatro bit completo de los sumandos. Estoy hablando de una sola componentes con 9 entradas (x3,x2,x1,x0,y3,y2,y1,y0,cin). Soy consciente de que esto iba a tener 512 estados posibles (2^(9 entradas)).

Lo que me pregunto es:

  1. Obviamente va a haber una enorme cantidad de puertas que se usa, es la pena?
  2. Si yo fuera la aplicación de todos mis componentes utilizando compuertas NAND con un cierto retraso o todo esto, ¿cuánto de una mejora en la velocidad iba a ver en una de 32 bits con un.) 4-bit serpientes llenas b.) CLA sumador c.) 1-bit serpientes llenas
  3. Existe alguna otra implementación de un sumador no soy consciente de.
  4. Aunque un sumador es un muy aburrida parte de un ALU, lo que hacen la mayoría de los diseñadores digitales reales que ir? ¿O es que simplemente el uso de assign Sum = X+Y+cin;

9voto

Andy Puntos 1028

Respuesta #4, al menos en el código objeto de síntesis, un sumador normalmente será codificado como assign sum = x + y. Esto deja a la elección de cómo implementar la serpiente hasta la herramienta de síntesis. Hay un costo/rendimiento de equilibrio. Ausente apretado requisitos de desempeño, la herramienta de implementar una onda llevar a la serpiente, como la que tiene el menor costo. Si hay más agresivo requisitos de desempeño, la herramienta de implementar un más sofisticado de la estructura, en algunos coste añadido. Otra posibilidad para la FPGA de la síntesis es que la serpiente se asignará a un propósito especial DSP componente, si está disponible en el dispositivo de destino.

Cuando el máximo rendimiento se desea, la lógica será diseñado por la mano, en lugar de implementar con una herramienta de síntesis. En este caso, además del alto nivel del modelo de referencia con el formulario sum = x + y, también habrá un menor nivel de descripción que describe el individuo puertas o transistores (esto puede ser hecho en un nivel de HDL, o en un esquema de la herramienta). Este "máximo rendimiento" escenario casi seguro que sería un ASIC aplicación en lugar de un FPGA.

(En realidad no) respuesta #3, para obtener más de lo que usted siempre quiso saber acerca de la serpiente de las arquitecturas, he encontrado esta tesis unidos por un hilo sobre edaboard: http://www.iis.ee.ethz.ch/~zimmi/publicaciones/adder_arch.pdf.

Respuesta #1 y #2, la mejor manera de entender este tipo de cosas es hacer algunos experimentos, lo demás es especulación. Lo que usted va a obtener el "4 bits full adder" diseño depende de cómo se escribe el código. Si el código es como una serpiente, la herramienta es probable que hacer lo que habría hecho de todos modos, a pesar de que puede no darse cuenta de que el 4-bit de los sumandos ir juntos para formar una mayor adder. Si el código es como una lógica de la función, usted puede conseguir algo más rápido que la onda-llevar a la aplicación, pero puede que no.

4voto

Martin Thompson Puntos 6509

Escribir código que sea fácil de leer (para otros o para sí mismo en dos semanas :)

 a <= b+c;

Confiar en el sintetizador hasta que se demuestre que

  • no está haciendo lo que quiere
  • y que no están cumpliendo con su área, el momento o la potencia de los objetivos.

Hacer otra cosa es la optimización.

Entonces, y sólo entonces, un lío tratando de mejorar las cosas. Pero al menos en este punto usted ya tiene una cobertura total de testbench de la opción "simple" (usted tiene que antes de empezar con la optimización, ¿no? :).

0voto

GetFree Puntos 495

La segunda que la herramienta probablemente va a implementar, además mejor que usted.

Como para varios tipos de serpientes, verificación de Hennessy y Patterson, si mal no recuerdo 3ª edición (cada edición es un libro completamente diferente!).

Una forma de acelerar la adición es el uso de lo que es, básicamente, una ondulación de la serpiente, pero NO agregar completamente en cada paso: cada adición produce una suma y llevar el resultado, y el llevar a las ondas a través de una etapa en cada adición. Muy útil para la aplicación de la multiplicación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X