From cbba6f00fdcbc5620c49fc8df908930b9fa87b0b Mon Sep 17 00:00:00 2001 From: christiaanb Date: Wed, 23 Jun 2010 12:07:34 +0200 Subject: [PATCH] Number of bits for an Index is the Ceiling of the log2 of its upperbound, not the Floor --- clash/CLasH/VHDL/Generate.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clash/CLasH/VHDL/Generate.hs b/clash/CLasH/VHDL/Generate.hs index 06bc265..df0991c 100644 --- a/clash/CLasH/VHDL/Generate.hs +++ b/clash/CLasH/VHDL/Generate.hs @@ -500,7 +500,7 @@ genFromInteger' (Left res) f args = do "Unsigned" -> MonadState.lift tsType $ tfp_to_int (sized_word_len_ty ty) "Index" -> do bound <- MonadState.lift tsType $ tfp_to_int (ranged_word_bound_ty ty) - return $ floor (logBase 2 (fromInteger (toInteger (bound)))) + 1 + return $ (ceiling (logBase 2 (fromInteger (toInteger (bound))))) let fname = case name of "Signed" -> toSignedId ; "Unsigned" -> toUnsignedId ; "Index" -> toUnsignedId case args of [integer] -> do -- The type and dictionary arguments are removed by genApplication -- 2.30.2