%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 ;
}
}