%i "alu4.sfl" submod_class alu4 { input a<4>,b<4>,ci ; output sum<4>,co ; instrin add,trans_a ; instr_arg trans_a(a) ; instr_arg add(a,b,ci) ; } module acc4 { input in<4> ; output out<4> ; reg r<4> ; instrin load_acc ; instrin hold_acc ; instrin clear_acc ; instrin add_acc ; alu4 alu ; instruct load_acc par { r := alu.trans_a(in).sum ; out = r ; } instruct hold_acc par { out = r ; } instruct clear_acc par { r := 0b0000 ; out = r ; } instruct add_acc par { r := alu.add(in,r,0b0).sum ; out = r ; } }