---
title: "Steps in designing a microprogram control unit"
subject: "Computer Organization and Architecture"
chapter: 3
key: "semester_5/computer_organization_and_architecture:microprogram-design"
source: https://www.bctengineer.com/q/semester_5/computer_organization_and_architecture/microprogram-design
site: BCT Engineering
---

# Steps in designing a microprogram control unit

Computer Organization and Architecture · Chapter 3: Control Unit

- Asked in: 2070 Asar, 6 marks
- Video: [Design of Control Unit || Microprogrammed Control || Computer Organization Architecture](https://www.youtube.com/watch?v=n2bC_Rh1YIA) — Sudhakar Atchala
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/computer_organization_and_architecture/microprogram-design
- Whole chapter: https://www.bctengineer.com/md/semester_5/computer_organization_and_architecture/chapter-3

## Question

Explain with the steps involved when designing a micro-program control unit.

## Short answer

Design steps: list microoperations per instruction, decide the microinstruction format (e.g., F1-F3, CD, BR, AD), assign operation codes, plan control memory layout, write symbolic fetch/execute microprograms, convert to binary, then build the sequencer and decoding logic.

## Answer

Designing a microprogrammed control unit means defining the microinstruction format, writing the microprogram and building the sequencing hardware. The steps are:

1. **List the instructions and register transfers.** Write the microoperations needed to fetch, decode and execute each machine instruction (for example, fetch: AR ← PC; DR ← M[AR], PC ← PC + 1; AR ← DR(0–10)).
2. **Decide on the microinstruction format.** Choose fields: microoperation fields (F1, F2, F3), condition (CD), branch (BR) and address (AD) fields, and the number of bits of each.
3. **Assign codes to the microoperations** in each field and group microoperations that cannot occur together in the same field.
4. **Design the control memory size and layout.** Decide where the fetch routine, indirect routine and the execute routines go; define the mapping from opcode to routine address.
5. **Write the symbolic microprogram** (fetch, indirect and execute routines) with labels.
6. **Convert it to binary microcode** (the control memory contents) using the field codes and addresses.
7. **Design the sequencer (next-address logic):** CAR, incrementer, SBR, multiplexers, mapping logic and branch logic.
8. **Connect and test:** decoders convert the microoperation fields to control signals for the datapath; verify by simulating the microprogram.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What is the first step in design?
   A. Build the sequencer
   B. List the instructions and the register transfers they need
   C. Convert to binary
   D. Test with simulation
   Answer: B. Microoperations come first. (Key point: First step)

2. What does step 2 decide?
   A. Which gates to use
   B. Main memory size
   C. The microinstruction fields (F1-F3, CD, BR, AD) and their bits
   D. Clock frequency
   Answer: C. Format fixes control memory width. (Key point: Format)

3. What is the correct order?
   A. Binary first, then symbolic
   B. Test first, then write
   C. Sequencer first, then format
   D. Symbolic microprogram, then binary microcode
   Answer: D. Binary is converted from the symbolic using field codes. (Key point: Order symbolic-binary)

4. How should microoperations be grouped into fields?
   A. Those that cannot occur together share a field
   B. All in one field
   C. Those that occur together share a field
   D. Randomly
   Answer: A. Each field selects one operation at a time. (Key point: Grouping)

## Related in Computer Organization and Architecture

- [Microprogram control unit organization](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Amicroprogram-control-org) — Computer Organization and Architecture, chapter 3, asked 2×
- [Microinstruction format and fetch microprogram](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Amicroinstr-format-fetch) — Computer Organization and Architecture, chapter 3, asked 2×
- [Control signal types and hardware control unit](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Acontrol-signals-hardware) — Computer Organization and Architecture, chapter 3
- [Microinstruction format and microprogram design](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Amicroprogram-fetch-indirect-add) — Computer Organization and Architecture, chapter 3
- [Microprogram sequencer](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Amicroprogram-sequencer) — Computer Organization and Architecture, chapter 3, asked 5×

## Related in other subjects

- [Steps in designing a constant delay filter](https://www.bctengineer.com/question.md?key=semester_5%2Ffilter_design%3Aconstant-delay-design-steps) — Filter Design, chapter 2, asked 2×
- [Steps of virtual (unit) load method](https://www.bctengineer.com/question.md?key=semester_4%2Ftheory_of_structures_i%3Aunit-load-method-steps) — Theory of Structures I, chapter 3, asked 4×
- [Steps to develop a computer program](https://www.bctengineer.com/question.md?key=semester_1%2Fcomputer_programming%3Asteps-develop-program) — Computer Programming, chapter 2, asked 6×
- [Steps to design closed loop control system](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aclosed-loop-design-steps) — Embedded System, chapter 7
