Enteros de rango limitado o sin signo / firmado en VHDL

3

En VHDL, el tipo Integer se define como un entero con signo de 32 bits. La mayoría de los lineamientos recomiendan que se debe restringir cuando se usa para la síntesis si no se desea un bus completo de 32 bits. Mi pregunta es acerca de su experiencia con varias herramientas de síntesis y el siguiente fragmento de código. Supongo que las señales no dependientes se optimizarían, pero podría haber otros problemas.

signal x : integer;

process(x) is
    constant alpha : integer := 12;
    variable y : integer;
begin
   y := (alpha*y + (100-alpha)*x) / 100;
   result <= to_signed( y, 16);
end process;
    
pregunta trondd

2 respuestas

2

¿Qué bits espera que se optimicen?

y depende de sí mismo y x , los cuales son de ancho completo integer s.

Los multiplicadores obtendrán unos pocos bits de orden inferior optimizados a cero, y el hecho de que los 3 bits altos de y se pierdan cuando se multiplique por 12 reduce ligeramente el tamaño del registro y .

Pero no caerá los bits > 16 si eso es lo que estás esperando.

PS: La división por 100 probablemente será bastante grande en términos de LUT. Estaría mejor con 128 (o alguna otra potencia de 2) como su escala base.

    
respondido por el Martin Thompson
-1

Sí, si no restringiera el alcance de sus señales, se crearía un bus ancho de 32 bits, y luego se optimizarían algunas señales. Dicho esto, rara vez encuentro un uso para tipos enteros en VHDL (para síntesis). Yo ALTAMENTE recomiendo usar slv a menos que haya algo que absolutamente debe ser entero.

La gran razón para usar slv en lugar de entero es que con slv tiene mejor acceso a los bits individuales y, por lo tanto, puede optimizar su código más fácilmente. Y con "optimizar su código", quiero decir que puede escribir sus algoritmos de manera más óptima que el sintetizador no puede hacer automáticamente. Usted "podría" hacer algo de esto con números enteros y un montón de encasillamiento a slv y back, pero el tipo de número entero no ofrece ninguna gran ventaja que hace que valga la pena molestarse con esto.

    
respondido por el user3624

Lea otras preguntas en las etiquetas