architecture behavioral of test is
signal lfsr_state : std_logic_vector (31 downto 0);
begin
LFSR_32_1 : entity work.setState port map(clk, lfsr_state);
process (clk)
begin
if (rising_edge(clk)) then
if((unsigned(lfsr_state)) <= 2147483648) then
Bit_out <= '1';
else
Bit_out <= '0';
end if;
end if;
end process;
end architecture;
Hola,
Tengo un problema relacionado con la conversión de un lógico_vector de 32 bits a una señal sin firmar. La función anterior siempre devuelve '0', aunque espero que '0' y '1' se devuelvan con igual probabilidad, ya que los números pseudoaleatorios de 32 bits lfsr se distribuyen por igual en el intervalo [0, (2 ^ 32) -1].
¿Podría ser posible que el rango de ((sin signo (estado lfsr)) no esté en el intervalo [0, (2 ^ 32) -1]?
Muchas gracias.