------------------------------------------------------------------------------- --- $Id: CombinationalSimulation.hs#1 2009/10/01 10:31:09 REDMOND\\satnams $ ------------------------------------------------------------------------------- module Lava.CombinationalSimulation where import Lava.Bit import Lava.Classes import Lava.Sim instance GroundAndPower Bit where zero = Zero one = One instance Combinational Sim Bit where lut1 f i = Sim ((unaryBoolToBit f) i) lut2 f (i0, i1) = Sim ((binaryBoolToBit f) i0 i1) lut3 f (i0, i1, i2) = Sim ((f3BoolToBit f) i0 i1 i2) lut4 f (i0, i1, i2, i3) = Sim ((f4BoolToBit f) i0 i1 i2 i3) instance Sequential Sim Bit where delay0 _ = error "Combinational simulation undefined for delay0" delay1 _ = error "Combinational simulation undefined for delay1"