..... problema de síntesis Can anyone help me .................

A

akp494

Guest
Estoy utilizando el índice para acceder a algunos fragmentos de un registro de desplazamiento ya que las variaciones del índice los valores dependiendo de algunas condiciones.
en VHDL la pieza de código se parece a esto:
a <= reg ( 1 downto PTR PTR), donde «a» es de dos vectores de bits.

Cuando intento de sintetizar la pieza anterior de código, Synopsys DC dice una constante que se espera que el índice.

En mi opinión, la herramienta de síntesis debería ser actualizado para inferir este tipo de implementaciones.Aquí se define reg "," A "se define así como" ptr "está definido y por lo tanto, la herramienta no, lo ideal sería ver un problema en la aplicación de la presente.

Permítanme explicar el problema de una manera diferente.

Supongamos que tengo las declaraciones de la señal siguientes.reg señal: std_logic_vector (15 downto 0);ptr señal: integer;una señal: std_logic_vector (1 downto 0);

Entonces, en algún lugar en el código si digoa <= reg ( 1 downto PTR PTR)Ahora bien, si yo trato de sintetizar el código que utilizan corriente continua está dando un error en la declaración anterior que muestra el siguiente comentario.

"Una constante es esperado como el índice"¿Hay algún trabajo en torno a esto??¿Es el problema con la herramienta.

 
Usted puede usar la siguiente manera si ptr es un vector de 4-bits

caso (PTR)
cuando "0000" => a <= reg (? downto?);
cuando "0001" => a <= reg (? downto?);
...
cuando los demás => ...
endcase

 
Hola Jazz
No quiero poner a prueba para todas las combinaciones de "ptr".Porque va a volar mi código.Entonces, ¿hay alguna manera una herramienta puede reconocer ese tipo de indexación??

 
usted puede probar el BC o Synplify porque los instrumentos de apoyo a la síntesis de la conducta.

 
no hay necesidad de sintetizar el diseño de comportamiento.
esto no se beneficiarán.

 
que se están mezclando con los tamaños de bits.
esto confundir DC.
debe utilizar el tamaño exacto de bits que va a utilizar
reg en el cambio.
don't give extra.
Y sí, usted debe declarar todas las opciones (FULLCASE uso / caso paralelo.)

se puede ver cambio reg ejemplos en este foro / web
buena suerte.

 
También uso un linter antes de ir a DC.
también puede ayudar.

 
Usted no puede hacer esto de esta manera.Tenga en cuenta que a <= reg ( 1 PTR PTR DOWNTO) significa que las conexiones físicas entre una y reg cambios en función del valor de PTR.Una vez que un diseño es sintetizado estos conexión física a ser constante.Usted desea que estas conexiones físicas se modifique en tiempo real, cuando el dispositivo está funcionando lo que es imposible.En la declaración VHDL sólo son utilizados con fines estáticos para, por ejemplo cuando el uso de genéricos.Alternativamente, lo que puede hacer es: usted debe usar un multiplexor entre una y reg y controlar el flujo de datos entre una y reg cambiando la selección de entrada del multiplexor.

 

Welcome to EDABoard.com

Sponsor

Back
Top