fetch.sfl

stateの途中で最初に戻す

stateの途中で最初に戻す

  • タグ:
  • タグはありません
// key on
stage src_read {
reg_wr bk_count<3>;
state_name st_getsl, st_getsh, st_head, st_data;
first_state st_getsl;
state st_getsl if((^ready) & f_key & ^read_wait.do){
//
read(READ_AL, (DIR||0x00) + (0b000000||r_SRCN||f_loop||0b0));
goto st_getsh;
}
state st_getsh any{
key_on | ^f_key : goto st_getsl;
else : if(^read_wait.do){
//
read(READ_AH, (DIR||0x00) + (0b000000||r_SRCN||f_loop||0b1));
goto st_head;
}
}
state st_head any{
key_on | ^f_key : goto st_getsl;
else : if(src_empty & ^read_wait.do){
//
read(READ_HD, src_AH || src_AL);
adinc();
bk_count := 0b000;
goto st_data;
}
}
state st_data any{
key_on | ^f_key : goto st_getsl;
else : if(src_empty & ^read_wait.do){
// ×8
read(READ_BD, src_AH || src_AL);
adinc();
bk_count++;
if(/&bk_count) any{
f_end : par{
goto st_getsl;
if(^f_loop) finish;
}
else : goto st_head;
}
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX