From 5351dee80add84aab8fce2c58340c4f88e142a73 Mon Sep 17 00:00:00 2001 From: Zachary Snow Date: Tue, 2 Apr 2019 15:36:29 -0400 Subject: [PATCH] minor scoping/ordering fixes for pesky VCS restrictions --- src/Convert/Enum.hs | 3 ++- src/Convert/PackedArray.hs | 6 +++--- src/Convert/Traverse.hs | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Convert/Enum.hs b/src/Convert/Enum.hs index a36f14d..34dd898 100644 --- a/src/Convert/Enum.hs +++ b/src/Convert/Enum.hs @@ -12,6 +12,7 @@ module Convert.Enum (convert) where import Text.Read (readMaybe) import Data.Maybe (fromMaybe) +import Data.List (sortOn) import Control.Monad.Writer import qualified Data.Set as Set @@ -31,7 +32,7 @@ convertDescription :: Description -> Description convertDescription (description @ (Part _ _ _ _ _ _)) = Part extern kw lifetime name ports (enumItems ++ items) where - enumPairs = concat $ map (uncurry enumVals) $ Set.toList enums + enumPairs = sortOn snd $ concatMap (uncurry enumVals) $ Set.toList enums enumItems = map (\(x, v) -> MIDecl $ Localparam (Implicit Unspecified []) x v) enumPairs (Part extern kw lifetime name ports items, enums) = runWriter $ traverseModuleItemsM (traverseTypesM traverseType) $ diff --git a/src/Convert/PackedArray.hs b/src/Convert/PackedArray.hs index e23cb79..782f592 100644 --- a/src/Convert/PackedArray.hs +++ b/src/Convert/PackedArray.hs @@ -195,7 +195,7 @@ unflattener writeToFlatVariant arr (t, (majorHi, majorLo)) = (index, majorLo) (BinOp Le (Ident index) majorHi) (index, AsgnOp Add, Number "1") - (Just $ prefix "unflatten") + (Just $ prefix "unflatten_" ++ arr) [ localparam startBit (simplify $ BinOp Add majorLo (BinOp Mul (Ident index) size)) @@ -206,9 +206,9 @@ unflattener writeToFlatVariant arr (t, (majorHi, majorLo)) = ] ] where - startBit = prefix "_tmp_start" + startBit = prefix "_tmp_start_" ++ arr arrUnflat = prefix arr - index = prefix "_tmp_index" + index = prefix "_tmp_index_" ++ arr (minorHi, minorLo) = head $ snd $ typeRanges t size = rangeSize (minorHi, minorLo) localparam :: Identifier -> Expr -> GenItem diff --git a/src/Convert/Traverse.hs b/src/Convert/Traverse.hs index 3c46260..ae3affd 100644 --- a/src/Convert/Traverse.hs +++ b/src/Convert/Traverse.hs @@ -105,6 +105,8 @@ traverseModuleItemsM :: Monad m => MapperM m ModuleItem -> MapperM m Description traverseModuleItemsM mapper (Part extern kw lifetime name ports items) = mapM fullMapper items >>= return . Part extern kw lifetime name ports where + fullMapper (Generate [GenBlock Nothing genItems]) = + mapM fullGenItemMapper genItems >>= mapper . Generate fullMapper (Generate genItems) = mapM fullGenItemMapper genItems >>= mapper . Generate fullMapper other = mapper other