Hades logoHades applet banner
microprogrammed sequencer (external inputs)

applet icon

The image above shows a thumbnail of the interactive Java applet embedded into this page. Unfortunately, your browser is not Java-aware or Java is disabled in the browser preferences. To start the applet, please enable Java and reload this page. (You might have to restart the browser.)

Circuit Description

This applet demonstrates a microprogrammed control unit. As opposed to the previous circuit, this controller is not restricted to one fixed state sequence. Instead, the additional multiplexers allow data-dependent sequences and jumps in the microprogram.

The S1,S0 outputs of the microprogram memory control the 4:1 multiplexer, which selects either the external input, the output of the 2:1 multiplexer, or either the X or Y microprogram outputs. Therefore, if a microprogram word generates (S1,S0) = (1,1), the external address input is used, which allows selecting any microprogram address from external logic.

The most interesting situation occurs for (S1,S0) = (1,0), which selects the output of the 2:1 multiplexer as the next microprogram address. As the multiplexer is controlled by an external input (X0), this allows data-dependent jumps in the microprogram. For example, the X0 input is connected to the output of the C (carry) register in our D*CORE demonstration processor. Depending on whether or not the carry bit was set by previous data operations, the microprogram sequencer can select different next addresses, allowing to implement the branch-if-true and branch-if-false instructions in the processor.

Print version | Run this demo in the Hades editor (via Java WebStart)
Usage | FAQ | About | License | Feedback | Tutorial (PDF) | Referenzkarte (PDF, in German)
Impressum http://tams.informatik.uni-hamburg.de/applets/hades/webdemos/50-rtlib/70-sequencer/sequencer.html