Use boolean as write enable signal
authorChristiaan Baaij <christiaan.baaij@gmail.com>
Sat, 29 Aug 2009 16:11:15 +0000 (18:11 +0200)
committerChristiaan Baaij <christiaan.baaij@gmail.com>
Sat, 29 Aug 2009 16:11:15 +0000 (18:11 +0200)
cλash/CLasH/HardwareTypes.hs
cλash/CLasH/VHDL/Generate.hs

index cff5c88568dd535d9b86b4059ed3166218c314b7..e6e84fd8a33a13aade58bbf5d4167552ba4afab0 100644 (file)
@@ -84,13 +84,14 @@ blockRAM ::
   a ->
   RangedWord s ->
   RangedWord s ->
-  Bit -> 
+  Bool -> 
   ((MemState s a), a )
 blockRAM (State mem) data_in rdaddr wraddr wrenable = 
   ((State mem'), data_out)
   where
     data_out  = mem!rdaddr
     -- Only write data_in to memory if write is enabled
-    mem' = case wrenable of
-      Low   ->  mem
-      High  ->  replace mem wraddr data_in
+    mem' =  if wrenable then
+              replace mem wraddr data_in
+            else
+              mem
index 58810072de2dbcb322f9dca4073b9c8614b3a4d5..ecaad6250c139681f83f23f3a486c461edcf949c 100644 (file)
@@ -881,7 +881,7 @@ genBlockRAM' (Left res) f args@[data_in,rdaddr,wraddr,wrenable] = do
         wform       = AST.Wform [AST.WformElem data_in Nothing]
         ramassign      = AST.SigAssign ramloc wform
         rising_edge_clk = genExprFCall rising_edge (AST.PrimName $ AST.NSimple clockId)
-        statement   = AST.IfSm (AST.And rising_edge_clk (wrenable AST.:=: AST.PrimLit "'1'")) [ramassign] [] Nothing
+        statement   = AST.IfSm (AST.And rising_edge_clk wrenable) [ramassign] [] Nothing
 
 -----------------------------------------------------------------------------
 -- Function to generate VHDL for applications