digraph convolver {
	s_Idle [label="\N\n\ni = -1\nBaseAddr = StartAddr"];
	s_AddrSelect [label="\N\n\nbusy = 1\ni = i + 1\nRamAddr = BaseAddr - i - 1\nRomAddr = i + 1\naccumulator = accumulator + MultResult"];
	s_StartMult [label="\N\n\nbusy = 1\nRamAddr = BaseAddr - i - 1\nRomAddr = i + 1\nMultStart = 1"];
	s_WaitMult [label="\N\n\nbusy = 1\nRamAddr = BaseAddr - i - 1\nRomAddr = i + 1"];
	s_Output [label="\N\n\nresult = accumulator[14..7]"];
	s_Idle->s_AddrSelect [label="start = 1"];
	s_AddrSelect->s_StartMult;
	s_StartMult->s_WaitMult [label="MultBusy = 1"];
	s_WaitMult ->s_AddrSelect [label="MultBusy = 0 and i < 15"];
	s_WaitMult->s_Output[label="MultBusy = 0 and i = 15"];
	s_Output->s_Idle;
};
