Revision 357
Added by markw over 10 years ago
| common/a8core/sio_device.vhdl | ||
|---|---|---|
| 
     	end process;
 
   | 
||
| 
     | 
||
| 
     	-- state machine
 
   | 
||
| 
     	command_next <= sio_command;
 
   | 
||
| 
     	process(state_reg, command_next, command_reg, bus_free, pokey_data_out, target_reg, clear_request)
 
   | 
||
| 
     	begin
 
   | 
||
| 
     		state_next <= state_reg;
 
   | 
||
| ... | ... | |
| 
     		target_wr_en<='0';
 
   | 
||
| 
     		target_next<=target_reg;
 
   | 
||
| 
     | 
||
| 
     		command_next <= command_reg;
 
   | 
||
| 
     | 
||
| 
     		if (bus_free = '1') then
 
   | 
||
| 
     			command_next <= sio_command;
 
   | 
||
| 
     			case (state_reg) is
 
   | 
||
| 
     			when state_wait_high_low =>
 
   | 
||
| 
     				target_next<=(others=>'0');
 
   | 
||
| 
     				if (command_next = '0' and command_reg='1') then
 
   | 
||
| 
     				if (sio_command = '0' and command_reg='1') then
 
   | 
||
| 
     					state_next <= state_command_clear_irq;
 
   | 
||
| 
     				end if;
 
   | 
||
| 
     			when state_command_clear_irq =>
 
   | 
||
| ... | ... | |
| 
     | 
||
| 
     		if (clear_request = '1') then
 
   | 
||
| 
     			state_next <= state_wait_high_low;
 
   | 
||
| 
     			command_next <= sio_command;
 
   | 
||
| 
     		end if;
 
   | 
||
| 
     	end process;
 
   | 
||
| 
     | 
||
Patch from Hias to fix dropped command packets. Many thanks for digging into this!