# vl2mv and2.v 
# version: 2.1
# date:    16:50:59 12/22/2011 (CET)
.model andgate 
# I/O ports
.inputs a
.inputs b
# c  = 0
.names c$raw_n0
0
# non-blocking assignments for initial
# assign x  = a  & b 
# a  & b 
.names a b _n2
.def 0
1 1 1
.names _n2 x$raw_n1
- =_n2
# assign y  = (a ) ? b  : x 
# (a ) ? b  : x 
.names a b x _n4
.def 0
1 1 - 1
0 - 1 1
.names _n4 y$raw_n3
- =_n4
# c  = ~x  + c 
.names x _n7
0 1  
1 0  
# ~x  + c 
.names _n9
0
.names _n7 c _n9 _n8
.def 0
0 0 1 1
0 1 0 1
1 0 0 1
1 1 1 1
# carry/borrow
.names _nb
0
.names _n7 c _nb _na
.def 0
- 1 1 1
1 - 1 1
1 1 - 1
.names _n8 c$raw_n6
- =_n8
# conflict arbitrators
.names y$raw_n3  y
0 0
1 1
.names _nc
.def 0
 1
.names _nc c$raw_n6 _nd 
.def 0
1 0 0
1 1 1
.names x$raw_n1  x
0 0
1 1
# non-blocking assignments 
# latches
.r c$raw_n0 c
0 0
1 1
.latch _nd c
# quasi-continuous assignment
.end
