////////////////////////////////////////////////////////////////////////////////
// Action scheduler
void HevcDecoder_xIT_invDST4x4_1st_scheduler(schedinfo_t *si) {
	int i = 0;
	si->ports = 0;

	read_IN();
	write_OUT();

	while (1) {
		if (numTokens_IN - index_IN >= 16 && isSchedulable_untagged_0()) {
			int stop = 0;
			if (16 > SIZE_OUT - index_OUT + HevcDecoder_xIT_invDST4x4_1st_OUT->read_inds[0]) {
				stop = 1;
			}
			if (stop != 0) {
				si->num_firings = i;
				si->reason = full;
				goto finished;
			}
			untagged_0_aligned();
			i++;
		} else {
			si->num_firings = i;
			si->reason = starved;
			goto finished;
		}
	}

finished:

	read_end_IN();
	write_end_OUT();
}
Ejemplo n.º 2
0
void HevcDecoder_SelectCU_initialize(schedinfo_t *si) {
	int i = 0;
	write_Sample();
	/* Set initial state to current FSM state */
	_FSM_state = my_state_GetPartMode;
	if(isSchedulable_untagged_0()) {
		untagged_0();
	}
finished:
	write_end_Sample();
	return;
}
Ejemplo n.º 3
0
void Source_initialize(schedinfo_t *si) {
	int i = 0;
	write_Stream();
	write_EOF();
	/* Set initial state to current FSM state */
	_FSM_state = my_state_ReadInit;
	if(isSchedulable_untagged_0()) {
		untagged_0();
	}
finished:
	write_end_Stream();
	write_end_EOF();
	return;
}