%i "inc8.sfl" submod_class inc8 { input a<8> ; output s<8> ; instrin do ; instr_arg do(a) ; } module pc { /* module description of an Program Counter */ input in<8> ; output out<8> ; reg pc<8> ; instrin load ; instrin inc ; instrin reset ; instrin hold ; inc8 inc_8 ; instruct reset /* if reset is active */ par { pc := 0b00000000 ; out = pc ; } instruct hold /* if hold is active */ out = pc ; instruct load /* if load is active */ par { pc := in ; out = pc ; } instruct inc /* if inc is active */ par { pc := inc_8.do(pc).s ; out = pc ; } }