Difference between revisions of "FPGA Reset"

From UConn PAN
Jump to navigation Jump to search
m
 
m
Line 1: Line 1:
 
== (000) Reset Cycle ==
 
== (000) Reset Cycle ==
  
Block 000 will have four functional blocks: one each for the DAC, ADC, and Ethernet controller, and one to coordinate their completion.  The temperature sensor lacks an external reset function; it self-initializes on startup.  The "R" packet will supply flags as to whether or not to enable the various blocks.  A power-on reset will default to resetting all components.  Using the enable flags like a mask on the done lines, the fourth functional block will update the state register.  For information on the reset procedures, see [[Reset and Initialization]].
+
Block 000 will have four functional blocks: one each for the DAC, ADC, and Ethernet Controller (EC), and one to coordinate their completion.  The temperature sensor lacks an external reset function; it self-initializes on startup.  The "R" packet will supply flags as to whether or not to enable the various blocks.  A power-on reset will default to resetting all components.  Using the enable flags like a mask on the done lines, the fourth functional block will update the state register.  For information on the reset procedures, see [[Reset and Initialization]].
  
inputs
 
* ''Clk'': clock
 
* ''/Rst'': asynchronous, active-low reset
 
* ''State'': 3-bit state value
 
* ''D_En'': DAC enable, assume held high/low by previous block
 
* ''A_En'': ADC enable, assume held high/low by previous block
 
* ''E_En'': Ethernet enable, assume held high/low by previous block
 
  
internal signals
+
* ''Clk'': [in] clock
* ''S_En'': state enable, ''S_En'' <= not (''St(2)'' or ''St(1)'' or ''St(0)'')
 
* ''Go'': when ''S_En'' goes high ''Go'' pulses for one cycle
 
* ''D_Go'': DAC reset go pulse, ''D_Go'' <= ''Go'' and ''D_En''
 
* ''A_Go'': ADC reset go pulse, ''A_Go'' <= ''Go'' and ''A_En''
 
* ''E_Go'': Ethernet reset go pulse, ''E_Go'' <= ''Go'' and ''E_En''
 
  
blocks
+
 
* '''DAC Reset'''
+
Reset Signals
** Resets and initializes the DAC.
+
* ''Rst: [in] asynchronous reset
** inputs
+
* ''Eth_iRst'': [inout] EC active-low reset pin
*** ''Clk'': clock
+
* ''Eth_iINT'': [in] EC active-low interrupt signal
*** ''/Rst'': asynchronous, active-low reset
+
 
*** ''D_Go'': go pulse to begin reset/initialization process
+
 
** outputs
+
[[FPGA_Register#State_Register|State Register]] Control Lines
*** - All DAC reset/initialization control lines -
+
* ''state_En'': [out] state register enable (write) signal
*** ''D_Done'': goes high when reset/initialization process is complete, falls on ''D_Go'' pulse
+
* ''state_D'': [out] (3-bit) state register input
* '''ADC Reset'''
+
* ''state_Q'': [in] (3-bit) state register output
** Resets and initializes the ADC.
+
 
** inputs
+
 
*** ''Clk'': clock
+
MAC Address Register Control Lines
*** ''/Rst'': asynchronous, active-low reset
+
* ''MACregs_En'': [out] register enable (write) signal
*** ''A_Go'': go pulse to begin reset/initialization process
+
* ''MACregs_A'': [out] byte address (4-bit)
** outputs
+
* ''MACregs_D'': [out] 8-bit input value
*** - All ADC reset/initialization control lines -
+
 
*** ''A_Done'': goes high when reset/initialization process is complete, falls on ''A_Go'' pulse
+
 
* '''Ethernet Reset'''
+
[[FPGA_Transceiver|Transceiver]] Control Lines
** Resets and initializes the Ethernet controller.
+
* ''TxRx_Go'': [out] "Go" signal to read/write an EC control register byte
** inputs
+
* ''TxRx_Aout'': [out] EC control register address (8-bit)
*** ''Clk'': clock
+
* ''TxRx_Dout'': [out] EC control register write value
*** ''/Rst'': asynchronous, active-low reset
+
* ''TxRx_RiW'': [out]  active-high read, active-low write flag
*** ''E_Go'': go pulse to begin reset/initialization process
+
* ''TxRx_Din'': [in] EC control register return value
** outputs
+
* ''TxRx_Done'': [in] "Done" signal from [[FPGA_Transceiver|Transceiver]].
*** - All Ethernet reset/initialization control lines -
+
 
*** ''E_Done'': goes high when reset/initialization process is complete, falls on ''E_Go'' pulse
+
* ''dbShort'': [in] debug signal to bypass EC reset waiting periods
* '''Coordinator'''
 
** Coordinates the completion of each reset cycle and notifies other blocks that the reset process is complete.
 
** inputs
 
*** ''Clk'': clock
 
*** ''/Rst'': asynchronous, active-low reset
 
*** ''D_En'': high when DAC is to be reset
 
*** ''D_Done'': high when DAC is done resetting
 
*** ''A_En'': high when ADC is to be reset
 
*** ''A_Done'': high when ADC is done resetting
 
*** ''E_En'': high when Ethernet controller is to be reset
 
*** ''E_Done'': high when Ethernet controller is done resetting
 
** internal signals
 
*** ''Flag'' <= (''D_Done'' or not ''D_En'') and (''A_Done'' or not ''A_En'') and (''E_Done'' or not ''E_En'')
 
** outputs
 
*** ''Done'': when ''Flag'' goes high, ''Done'' pulses for one cycle; connects to state register as an enable
 
*** ''New_St'': new state to be written to the state register; goes to 001 while ''Done'' is high
 

Revision as of 18:25, 29 May 2008

(000) Reset Cycle

Block 000 will have four functional blocks: one each for the DAC, ADC, and Ethernet Controller (EC), and one to coordinate their completion. The temperature sensor lacks an external reset function; it self-initializes on startup. The "R" packet will supply flags as to whether or not to enable the various blocks. A power-on reset will default to resetting all components. Using the enable flags like a mask on the done lines, the fourth functional block will update the state register. For information on the reset procedures, see Reset and Initialization.


  • Clk: [in] clock


Reset Signals

  • Rst: [in] asynchronous reset
  • Eth_iRst: [inout] EC active-low reset pin
  • Eth_iINT: [in] EC active-low interrupt signal


State Register Control Lines

  • state_En: [out] state register enable (write) signal
  • state_D: [out] (3-bit) state register input
  • state_Q: [in] (3-bit) state register output


MAC Address Register Control Lines

  • MACregs_En: [out] register enable (write) signal
  • MACregs_A: [out] byte address (4-bit)
  • MACregs_D: [out] 8-bit input value


Transceiver Control Lines

  • TxRx_Go: [out] "Go" signal to read/write an EC control register byte
  • TxRx_Aout: [out] EC control register address (8-bit)
  • TxRx_Dout: [out] EC control register write value
  • TxRx_RiW: [out] active-high read, active-low write flag
  • TxRx_Din: [in] EC control register return value
  • TxRx_Done: [in] "Done" signal from Transceiver.
  • dbShort: [in] debug signal to bypass EC reset waiting periods