The primary control module is started
by the start signal of the BRG, which also controls four copies of the secondary
control modules. The secondary control modules are in charge of ROM addressing and
outputting biplane images to the DLPC964 controller. The primary control module's
core is a Finite State Machine (FSM) that starts off by waiting for the BRG to send
the mcp_start signal. Once the signal is sent to the primary module, the FSM
initiates. Figure 2-6 depicts the PGEN_MCTRL FSM where each state
machine is defined as followed:
- CV_SEND_SIGNAL - Initial
FSM state. This transitions states when the BRG start signal is received.
Depending on the load type selected, the FSM goes to the CV_WAIT_FOR_ACK state
or the CV_SEND_DMDLD state. The command valid signal is not needed when the
block load type is Clear (001) or Set (001) because no data is sent during these
load types.
- CV_WAIT_FOR_ACK - Once the
FSM is started by the BRG, the command valid signal is sent to the Aurora user-k
interface. The user-k valid signal is held high in this state until the Aurora
user-k ready signal acknowledges the user-k data. Once the FSM is acknowledged,
the FSM de-asserts the user-k valid signal and goes to the next FSM state.
- CV_SEND_DMDLD - Now that
the command has been sent, the DLPC964 Apps FPGA can start sending bitplane
data. This state starts and monitors all four of the secondary control modules.
Once all four of the secondary modules report that the modules have completed
sending data, the primary control modules can begin to send the DMD load signal
over the Aurora user-k interface.
- CV_HOLD_DMDLD - The
primary control module holds the DMD load signal until for approximately 0.80ns
before transitioning to the beginning of the FSM.