fun schedule(var inst : InstInfo)
{
    while(true) {
	val ii = 0;
	while(ii < inst?length) {

	    if(ready(inst[+ii].reserve)) {
		update_pipe(inst[+ii]);
		return;
	    }

	    ii = ii + 1;
	}

	delay_pipe();
    }
}