Soy un principiante en la programación de FPGA, y he encontrado este problema recientemente:
En un proceso síncrono, ¿cuál es la explicación lógica de que una señal no pueda leerse justo después de su asignación? (Tengo una idea de la respuesta, pero quiero escuchar tu opinión sobre esto)
En el siguiente fragmento de código VHDL:
if byteCnt = 0 then -- On the 1st clock cycle, I assign the first byte of data to block_count's MSByte
block_count(15 downto 8) <= rx_data;
byteCnt := byteCnt+1;
elsif byteCnt = 1 then -- On the 2nd, the LSByte is assigned
block_count(7 downto 0) <= rx_data;
cmd_internal <= block_count; -- Here cmd_internal = 10101010UUUUUUUU, why?
end if;
Una solución rápida sería cmd_internal <= block_count(15 downto 8) & rx_data;
pero ese no es el punto de mi pregunta :)