Altera_Forum
Honored Contributor
13 years agointeger arithmetic
I'm getting weird results when I do integer division.
Frequency is being read in as 60 but the result being stored in var_1b /= 1e9/60 (~1.6E7). Instead the result reported by temp2 is 20522. The division for var_1a is performed correctly. The offending code: shared variable frequency: integer range 0 to 25000 :=0; shared variable var_1a, var_1b, var_1c, var_1d: integer; ... frequency := (to_integer(unsigned(Fin))); var_1a := (1E9/pi_2); var_1b := (1E9/(frequency)); temp <= std_logic_vector(to_unsigned(frequency, 16)); temp2 <= std_logic_vector(to_unsigned(var_1b, 16));