Line 1: |
Line 1: |
− | == (010) Idle ==
| + | = (010) Idler = |
| | | |
− | Block 010 continuously polls the interrupt registers on the CP2200/1 until the Receive FIFO Empty flag comes back as a zero. On this condition it transitions to state 011. | + | The Idler Block corresponding to state 010 continuously is the default module running an "idle process". It awaits an interrupt corresponding to "Receive FIFO non-empty", unpon which it transitions to state 011 - [[FPGA_Reader|Read]]. |
| | | |
− | inputs
| |
− | * ''Clk'': clock
| |
− | * ''/Rst'': asynchronous, active-low reset
| |
− | * ''state_in'': 3-bit state value
| |
| | | |
− | * ''TxRx_D'': 8-bit data from transceiver
| + | == Programming Details == |
− | * ''TxRx_Done'': pulse from transceiver to signal transfer complete
| |
− | * ''TxRx_Go'': transceiver go line
| |
− | * ''TxRx_R/W'': read/write flag for transceiver
| |
− | * ''TxRx_Aout'': register address bus for transceiver
| |
| | | |
| + | === Ports === |
| | | |
− | blocks
| + | * ''Clk'': [in] clock |
− | * '''Request INT0RD''' (0x76) register via <tt>reqFromAddr</tt> pulsed by the ''LoopEn'' signal from Looper (below). | + | * ''Rst: [in] asynchronous reset |
− | * '''Looper''' | + | |
− | ** Switch to determine if this state should loop on itself or continue to the next state.
| + | * ''Eth_iINT'': [in] EC interrupt pin |
− | ** inputs
| + | * ''state_in'': [in] 3-bit FPGA state value |
− | *** ''S_En'': state enable
| + | |
− | *** ''TxRx_Done'': ''Done'' pulse from transceiver
| + | [[FPGA_Transceiver|Transceiver]] Control Lines |
− | *** ''TxRx_Data'': ''D_out'' bus from transceiver
| + | * ''TxRx_Din'': [in] EC control register return value |
− | ** outputs
| + | * ''TxRx_Done'': [in] "Done" signal from [[FPGA_Transceiver|Transceiver]]. |
− | *** ''LoopEn'': pulse to repeat fetch cycle; ''Loop'' <= ''S_En'' and ''TxRx_Done'' and ''TxRx_Data(6)''
| + | * ''TxRx_Go'': [out] "Go" signal to read an EC control register byte |
− | *** ''Done'': pulse to finish state; connects to state counter as an enable; ''Done'' <= ''S_En'' and ''TxRx_Done'' and not ''TxRx_Data(6)''
| + | * ''TxRX_RiW'': [out] active-high read, active-low write flag |
− | *** ''New_St'': new state value to load into state register; goes to 011 when ''Done'' is high
| + | * ''TxRx_Aout'': [out] _VECTOR (7 downto 0); |