%i "add8.sfl" submod_class add8 { input a<8>,b<8>,ci ; output sum<8>,carry ; instrin do ; instr_arg do(a,b,ci) ; } module alu { input a<8> ; input b<8> ; output out<8> ; output zero ; instrin trans_a ; instrin trans_b ; instrin add ; instrin and ; instrin xor ; add8 adder ; instruct trans_a par { out = a ; zero = ^/| a ; } instruct trans_b par { out = b ; zero = ^/| b ; } instruct add par { out = adder.do(a,b,0b0).sum ; zero = ^/| adder.do(a,b,0b0).sum ; } instruct and par { out = a & b ; zero = ^/| ( a & b ) ; } instruct xor par { out = a @ b ; zero = ^/| ( a @ b ) ; } }