heatherhb

controller2

Feb 8th, 2012
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. controller2 :: Clocked a => a -> a -> (a, a, a, a, a, [a])
  2. controller2 reset walkRequest = (green, amber, red, wait, walk, count)
  3.     where green = dff (or3 reset a2 (and2 (inv walkRequest) green))
  4.           amber = or2 a1 a2
  5.           red   = or3 r1 r2 r3
  6.           wait  = or3 a1 a2 green
  7.           walk  = or3 r1 r2 r3
  8.           count = mux1w reset (map dff result) zero16
  9.           gToA  = and2 walkRequest green
  10.           r1    = mux1 reset (dff amber) zero
  11.           r2    = mux1 reset (dff r1) zero
  12.           r3    = mux1 reset (dff r2) zero
  13.           a1    = mux1 reset (dff gToA) zero
  14.           a2    = mux1 reset (dff r3) zero
  15.           result = snd (rippleAdd zero (bitslice2 count one16))
  16.           one16 = (fanout 15 zero) ++ [one]
  17.           zero16 = fanout 16 zero
Advertisement
Add Comment
Please, Sign In to add comment