Difference between revisions of "FPGA Idler"

From UConn PAN
Jump to navigation Jump to search
m
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
:''See also [[Programming_the_Ethernet_controller|Programming the Ethernet Controller]]'' for a survey of modules and a general discussion of FPGA design approach.''
 +
 
= (010) Idler =
 
= (010) Idler =
  
Line 5: Line 7:
  
 
== Programming Details ==
 
== Programming Details ==
 +
 +
The Idler is essentially a state-conscious wrapper around an ''INTCatcher'' module instatiation to which the interrupt mask "1000" is passed (selecting the "Rx FIFO non-empty" interrupt as opposed to "Self-Initialization Complete" etc.) INTCatcher only returns a "Done" pulse when the requested interrupt was found so the change of state to "Read" (011) is set to trigger on this "Done" signal.
  
 
=== Ports ===
 
=== Ports ===
Line 19: Line 23:
 
* ''TxRx_Go'': [out] "Go" signal to read an EC control register byte
 
* ''TxRx_Go'': [out] "Go" signal to read an EC control register byte
 
* ''TxRX_RiW'': [out] active-high read, active-low write flag
 
* ''TxRX_RiW'': [out] active-high read, active-low write flag
* ''TxRx_Aout'': [out] _VECTOR (7 downto 0);
+
* ''TxRx_Aout'': [out] EC control register address (8-bit)

Latest revision as of 00:15, 3 June 2008

See also Programming the Ethernet Controller for a survey of modules and a general discussion of FPGA design approach.

(010) Idler

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 - Read.


Programming Details

The Idler is essentially a state-conscious wrapper around an INTCatcher module instatiation to which the interrupt mask "1000" is passed (selecting the "Rx FIFO non-empty" interrupt as opposed to "Self-Initialization Complete" etc.) INTCatcher only returns a "Done" pulse when the requested interrupt was found so the change of state to "Read" (011) is set to trigger on this "Done" signal.

Ports

  • Clk: [in] clock
  • Rst: [in] asynchronous reset
  • Eth_iINT: [in] EC interrupt pin
  • state_in: [in] 3-bit FPGA state value

Transceiver Control Lines

  • TxRx_Din: [in] EC control register return value
  • TxRx_Done: [in] "Done" signal from Transceiver.
  • TxRx_Go: [out] "Go" signal to read an EC control register byte
  • TxRX_RiW: [out] active-high read, active-low write flag
  • TxRx_Aout: [out] EC control register address (8-bit)