kansas-lava-shake 0.1.1 → 0.1.2
raw patch · 5 files changed
+36/−28 lines, 5 filesdep +temporarydep ~shakesetup-changedPVP ok
version bump matches the API change (PVP)
Dependencies added: temporary
Dependency ranges changed: shake
API changes (from Hackage documentation)
Files
- Setup.hs +4/−0
- ise.template/xst.mustache +1/−9
- kansas-lava-shake.cabal +10/−3
- src/Development/KansasLava/Shake.hs +7/−5
- src/Development/KansasLava/Shake/Xilinx.hs +14/−11
Setup.hs view
@@ -1,2 +1,6 @@+module Main (main) where+ import Distribution.Simple++main :: IO () main = defaultMain
ise.template/xst.mustache view
@@ -5,7 +5,7 @@ -ifmt mixed -ofn {{MAIN}} -ofmt NGC--p xc3s500e-5-vq100+-p {{PLATFORM}} -top {{TOP}} -opt_mode Speed -opt_level 1@@ -22,22 +22,15 @@ -case Maintain -slice_utilization_ratio 100 -bram_utilization_ratio 100--verilog2001 YES -fsm_extract YES -fsm_encoding Auto -safe_implementation No -fsm_style LUT -ram_extract Yes -ram_style Auto -rom_extract Yes--mux_style Auto--decoder_extract YES--priority_extract Yes -shreg_extract YES--shift_extract YES--xor_collapse YES -rom_style Auto -auto_bram_packing NO--mux_extract Yes -resource_sharing YES -async_to_sync NO -mult_style Auto@@ -46,7 +39,6 @@ -bufg 24 -register_duplication YES -register_balancing No--slice_packing YES -optimize_primitives NO -use_clock_enable Yes -use_sync_set Yes
kansas-lava-shake.cabal view
@@ -1,7 +1,8 @@ name: kansas-lava-shake-version: 0.1.1+version: 0.1.2 synopsis: Shake rules for building Kansas Lava projects--- description:+description: Shake rules for building Kansas Lava projects. Currently supports the+ Xilinx FPGA tooling only. license: BSD3 license-file: LICENSE copyright: (C) 2014 Gergo Erdi@@ -26,7 +27,8 @@ kansas-lava >=0.2.4 && < 0.2.5, filepath, directory,- shake,+ temporary,+ shake >= 0.14, containers, text, hastache@@ -38,3 +40,8 @@ source-repository head type: git location: git://github.com/gergoerdi/kansas-lava-shake++source-repository this+ type: git+ location: git://github.com/gergoerdi/kansas-lava-shake+ tag: 0.1.2
src/Development/KansasLava/Shake.hs view
@@ -8,12 +8,14 @@ lavaRules :: FilePath -> String -> String -> Rules () lavaRules modName vhdl ucf = do- gensrc modName <.> "vhdl" *> \target -> do+ "gensrc" </> modName <.> "vhdl" *> \target -> do alwaysRerun writeFileChanged target vhdl- gensrc modName <.> "ucf" *> \target -> do+ "gensrc" </> modName <.> "ucf" *> \target -> do alwaysRerun writeFileChanged target ucf- gensrc "lava-prelude.vhdl" *> liftIO . writeVhdlPrelude- where- gensrc f = "gensrc" </> f+ "gensrc/lava-prelude.vhdl" *> \target -> do+ alwaysRerun+ withTempFile $ \tempFile -> do+ liftIO $ writeVhdlPrelude tempFile+ copyFileChanged tempFile target
src/Development/KansasLava/Shake/Xilinx.hs view
@@ -33,7 +33,10 @@ textTemplate [] "*.xst" *>- textTemplate [("MAIN", fromString mod), ("TOP", fromString mod)]+ textTemplate [ ("MAIN", fromString mod)+ , ("TOP", fromString mod)+ , ("PLATFORM", fromString xilinxPlatform)+ ] "*.xise" *> listTemplate "components" xiseFiles@@ -50,13 +53,11 @@ xilinx "xaw2vhdl" [xaw, "-st", "XST", target] xawsrc "*.ucf" *> \target -> need [target -<.> "vhdl"] - "xst/projnav.tmp" *> liftIO . createDirectoryIfMissing True- "*.ngc" *> \target -> do+ liftIO $ createDirectoryIfMissing True "xst/projnav.tmp" need $ (target -<.> "prj"): (target -<.> "xst"):- ("xst" </> "projnav.tmp"): [gensrc $ f <.> "vhdl" | f <- vhdls] ++ [xawsrc $ f <.> "vhdl" | f <- xaws] @@ -73,10 +74,10 @@ ] "*.ngd" *> \target -> do+ liftIO $ createDirectoryIfMissing True "xst/projnav.tmp" let ucf = gensrc $ target -<.> "ucf" need [ target -<.> "ngc" , ucf- , "xst/projnav.tmp" ] removeFilesAfter "." [ target -<.> "bld"@@ -93,13 +94,14 @@ ] "*.pcf" *> \target -> do+ liftIO $ createDirectoryIfMissing True "xst/projnav.tmp" need [ target -<.> "ngc" , target -<.> "ngd"- , "xst/projnav.tmp" ] removeFilesAfter "." [ "*_summary.xml" , "*_usage.xml"+ , "xilinx_device_details.xml" , target -<.> "ngm" , target -<.> "mrp" , target -<.> "map"@@ -118,14 +120,14 @@ "*_map.ncd" *> \target -> need [mapFileName (fromJust . stripSuffix "_map") target -<.> "pcf"] "*.ncd" *> \target -> do- need [ "xst" </> "projnav.tmp"- , target -<.> "pcf"- ]+ liftIO $ createDirectoryIfMissing True "xst/projnav.tmp"+ need [target -<.> "pcf"] removeFilesAfter "." [ "*_pad.txt" , "*_pad.xrpt" , "*_pad.csv" , "_xmsgs//*"+ , "par_usage_statistics.html" , target -<.> "pad" , target -<.> "par" , target -<.> "xpi"@@ -142,8 +144,8 @@ ] "*.bit" *> \target -> do- need [ "xst/projnav.tmp"- , target -<.> "ut"+ liftIO $ createDirectoryIfMissing True "xst/projnav.tmp"+ need [ target -<.> "ut" , target -<.> "ncd" ] removeFilesAfter "."@@ -181,6 +183,7 @@ hastache :: MuContext IO -> FilePath -> Action () hastache ctxt target = do+ alwaysRerun templateFile <- liftIO $ getDataFileName ("ise.template" </> templateName) t <- liftIO $ hastacheFile hastacheConfig templateFile ctxt writeFileChanged target $ TL.unpack t