Wired 0.1 → 0.1.1
raw patch · 3 files changed
+80/−3 lines, 3 files
Files
- .ghci +1/−0
- Analysis/STA/Library.hs +69/−0
- Wired.cabal +10/−3
+ .ghci view
@@ -0,0 +1,1 @@+:set -fglasgow-exts -fallow-overlapping-instances -fallow-undecidable-instances -fno-monomorphism-restriction -XOverloadedStrings
+ Analysis/STA/Library.hs view
@@ -0,0 +1,69 @@+module Analysis.STA.Library where++++import Data.Function+import Data.List++import Data.Hardware.Internal+import Lava+import Wired.Model++++data Slope = Rising | Falling+ deriving (Eq, Show)++type TransitionTime = Time++data Timing = Timing+ { arrivalTime :: Time+ , transitionTime :: TransitionTime+ }++++class WiredLibrary lib => STALibrary lib+ where+ loadCaps :: lib -> [Capacitance]++ delay+ :: lib+ -> Pin -- Input+ -> Pin -- Output+ -> Slope -- For output+ -> Capacitance -- For output+ -> Timing -- For input+ -> Timing -- For output++++mulTiming :: Timing -> Time -> Timing+mulTiming (Timing ar tr) x = Timing (ar*x) (tr*x)++maxArrival :: Timing -> Timing -> Time+maxArrival = max `on` arrivalTime++maximumByArrival :: [Timing] -> Timing+maximumByArrival = maximumBy (compare `on` arrivalTime)++++linearDelay+ :: Delay -- Intrinsic delay+ -> Double -- Rise time coefficient+ -> Resistance -- Load capacitance coefficient+ -> (Capacitance -> Timing -> Timing)++linearDelay intrDel kTR res cap (Timing ar tr) = Timing+ (ar + intrDel + kTR><tr + res><cap)+ (1.2*tr) -- *** What should it be?++++worstLinearDelay+ :: [(Delay, Double, Resistance)] -> (Capacitance -> Timing -> Timing)++worstLinearDelay params cap t = maximumByArrival+ [linearDelay intrDel kTR res cap t | (intrDel,kTR,res) <- params]+
Wired.cabal view
@@ -1,5 +1,6 @@ name: Wired-version: 0.1+version: 0.1.1+homepage: http://www.cs.chalmers.se/~emax/wired/ synopsis: Wire-aware hardware description description: An extension to the hardware description library Lava@@ -16,9 +17,14 @@ cabal-version: >= 1.2 build-type: Simple tested-with: GHC ==6.8.3-data-files: Examples/UsingLava.hs, Examples/UsingWired.hs,- Examples/Sklansky.hs, Examples/Mult.hs +data-files:+ .ghci+ Examples/UsingLava.hs+ Examples/UsingWired.hs+ Examples/Sklansky.hs+ Examples/Mult.hs+ library exposed-modules: Data.Logical.Knot@@ -43,6 +49,7 @@ Layout.Postscript Layout.Internal Wired.Model+ Analysis.STA.Library build-Depends: base, chalmers-lava2000, containers, mtl, QuickCheck