En el contexto de una declaración vectorial, ¿cómo funciona y downtox cuando x 0?

0

Espero que alguien pueda explicar qué está haciendo exactamente downto para un

y downto x

where y > x > 0

Desde mi lectura, se supone que x es el LSB

Ejemplo :

constant FOO            : std_logic_vector( 5 downto  0)   := x"F";           

  constant BAR             : std_logic_vector( 11 downto  0)   := x"6

  constant BAZ            : std_logic_vector(16 downto 12)   := x"0";

¿Qué es exactamente lo que hace el "downto" en este contexto? ¿Por qué alguien querría hacer de 16 a 12 en lugar de 4 a 0?

¿Cómo se ve diferente la generación de hardware? ¿Se desperdicia espacio en BAZ desde 11- > 0 si no, dónde se asigna?

Estoy revisando un proyecto muy grande, ¿así que asumo que tenían una razón para definirlo de esta manera?

    

1 respuesta

0

Se usa para cortar palabras más grandes, tenemos que hacer eso todo el tiempo.

Por ejemplo, si estaba codificando una unidad de punto flotante, podría tener las siguientes declaraciones (esto no es un IEEE754 real válido, ¡ni tampoco es un VHDL válido!)

la variable real_num es una matriz (31 downto 0) de std_logic_vector exponente: = real_num (31 downto 24) mantisa: = real_num (23 downto 0)

El exponente podría haber sido declarado como (31 de bajó a 24) o (de 7 a 0), y cada uno tiene sus ventajas, cada uno resultará en la asignación de 8 bits, pero se etiquetará de manera diferente en la pantalla de depuración. Mientras los indexes constantemente cuando cortes y concatenes, todo funcionará.

    
respondido por el Neil_UK

Lea otras preguntas en las etiquetas