packages feed

Wired-0.3: Wired.cabal

name:      Wired
version:   0.3
homepage:  http://www.cse.chalmers.se/~emax/wired/
synopsis:  Wire-aware hardware description

description:
  Wired is an extension to the hardware description library Lava targeting (not
  exclusively) semi-custom VLSI design. A particular aim of Wired is to give the
  designer more control over on-chip wires' effects on performance.
  .
  The goal is a system with the following features:
  .
    * Convenient circuit description in monadic style.
  .
    * Layout/wiring expressed using optional annotations, allowing incremental
      specification of physical aspects.
  .
    * Export designs to several formats:
  .
      (1) Lava (for e.g. verification)
  .
      (2) Postscript (for visualizing layout and wiring)
  .
      (3) Design Exchange Format (for interfacing to standard CAD tools)
  .
    * Accurate, wire-aware timing/power analysis within the system.
  .
    * Support for modern standard cell libraries.
  .
    * Automatic compilation of standard cell libraries.
  .
  We are not very far from this goal. The missing parts are power analysis and
  cell library compilation, and sequential circuits are not yet fully supported.
  Also, there is virtually no documentation. The best place to look for guidance
  is in the @Examples@ directory. The following thesis
  <http://www.cse.chalmers.se/~emax/documents/PhD_thesis.pdf> gives more
  information about the background and some explanation of programming
  techniques used in Wired. It should also be said that the library is still
  quite unstable and has not yet been tested in any larger scale.
  .
  The standard cell library shipped with Wired ("Libs.Nangate45.Wired") is an
  open-source 45nm library from Nangate (<http://www.nangate.com>) provided for
  the purposes of testing and exploring EDA flows. It is not intended for
  fabrication. More information is given in the license agreement
  in "Libs.Nangate45.LICENSE". If anyone is interested in real cell libraries
  (currently 130nm, 90nm and 65nm from STM), please contact the maintainer of
  the Wired library.
  .
  Currently, Wired contains its own version of Lava which is a bit different
  from the standard version (package @chalmers-lava2000@ on Hackage) To make
  things more complicated, this version of Lava actually uses the standard
  version for simulation and verification. Ideally there should only be /one/
  Lava library, independent of the Wired package. Hopefully, this will happen in
  a not too distant future.

category:       Language, Hardware
license:        BSD3
license-file:   LICENSE
copyright:      (c) 2008. Emil Axelsson <emax@chalmers.se>
author:         Emil Axelsson <emax@chalmers.se>
maintainer:     Emil Axelsson <emax@chalmers.se>
cabal-version:  >= 1.6
build-type:     Simple

data-files:
  .ghci
  Examples/UsingLava.hs
  Examples/UsingWired.hs
  Examples/Sklansky.hs
  Examples/Mult.hs

source-repository head
  type:      darcs
  location:  http://projects.haskell.org/Wired/

library
  exposed-modules:
    Data.Logical.Knot
    Data.Logical.Let
    Data.Hardware.Internal
    Data.Hardware
    Lava.Patterns
    Lava.Internal
    Lava
    Layout.Internal
    Layout
    Wired.Model
    Wired
    Analysis.Timing.Library
    Analysis.Timing
    Export.DEF
    Libs.Nangate45.LICENSE
    Libs.Nangate45.Lava
    Libs.Nangate45.Wired

  other-modules:
    Lava.Model
    Lava.Loop
    Lava.Port
    Lava.Interpret
    Lava.Misc
    Layout.Floorplan
    Layout.Postscript
    Libs.Nangate45.Timing

  c-sources:
    Libs/Nangate45/timing.c

  build-Depends: base < 10, chalmers-lava2000 >= 1.1 && < 2, containers, mtl, QuickCheck

  extensions:
    FlexibleContexts
    FlexibleInstances
    ForeignFunctionInterface
    FunctionalDependencies
    GeneralizedNewtypeDeriving
    MultiParamTypeClasses
    OverlappingInstances
    OverloadedStrings
    PackageImports
    PatternGuards
    Rank2Types
    RecursiveDo
    ScopedTypeVariables
    StandaloneDeriving
    TypeSynonymInstances
    UndecidableInstances