VHDL: Obtener una parte de la entrada real en una variable

0

Estoy escribiendo un código VHDL para implementar un cifrado en FPGA.

Estoy pasando un valor hexdecimal a una señal como entrada

input :  in  STD_LOGIC_VECTOR (63 downto 0);

Obtengo el valor en la entrada, pero además quiero usar solo los primeros 8 dígitos en el bucle.

En otras palabras, solo necesito obtener una subcadena de la entrada real que recibo. Así que puedo lograr esto en la sintaxis VHDL. En caso afirmativo, ¿puede alguien proporcionar una sugerencia o un indicador sobre esto?

    
pregunta TechJ

2 respuestas

2

Estás pasando 64 bits como entrada (63 abajo a 0). Puede seleccionar / trabajar con cualquier número de bits utilizando el nombre de la señal y cambiando los parámetros hacia abajo:

temp1 < = input (7 downto 0); - Esto mapea 8 LSBs de entrada a temp1

temp2 < = input (15 downto 8);

temp3 < = input (63 donwto 56); --Estas asigna 8 MSBs de entrada a temp3

    
respondido por el Adam Z
1

Esto es HDL básico: si desea trabajar en un subconjunto de una señal, simplemente especifique el rango en el que desea trabajar, como:

input(3 downto 0)
input(7 downto 4)
input(11 downto 8)
. . .

Si desea hacer lo mismo con diferentes subconjuntos, hay varias construcciones en bucle que puedes usar para simplificar el código fuente.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas