Sequential custom single purpose processor design
- Combinational and sequential logic design techniques are used to build datapath components and controllers.
- A sequential program to implement computation of a greatest common divisor (GCD) is as follows.
- Figure 4.3(a) shows a black-box diagram of the desired system.
- Data inputs are: x_i and y_i
- data output d_o.

- The system’s functionality is straightforward: the output should represent the GCD of the inputs.
- If the inputs are 12 and 8, the GCD is 4.
- If the inputs are 13 and 5, the GCD is 1.
- Figure 4.3(b) provides a simple program with this functionality GCD.
- TO build a single-purpose processor implementing the GCD program.
- To begin building our single-purpose processor implementing the GCD program.
- First convert our program into a complex state diagram, in which states and arcs may include arithmetic expressions.
- These expressions use external inputs and outputs or variables.
- In contrast, state diagrams includes boolean expressions, use external inputs and outputs, not variables.
- Complex state diagram looks like a sequential program in which statements are scheduled into states.
- Templates are to convert a program to a state diagram, as shown in Figure 4.2.
- Each statement can be classified into assignment statement, loop statement, or branch (if-then-else or case) statement.

For assignment statement
- A state is created with the statement as its action. an arc is added from this state for the next state.
For a loop statement
- For a loop statement, a condition state C and a join state J are created both with no actions.
- Add an arc with the loop’s condition from state C to the first statement in the loop body.
- Add a second arc from !cond to the next statement from the loop.
- Also add an arc from J to C.
For a branch statement
- For a branch statement, create a condition state C and a join state J, both with no actions.
- Create an arc from the first branch’s condition(C1) from C to the branch’s first statement(C1 stmts).
- Create another arc with the condition!(C1*C2) from C to C2 stmts.
- Repeat this for other branches.
- Finally, connect the arcs from C1 stmts, C2 stmts and others to J.
- Add an arc from J to next statement.
- Using this template approach, convert GCD program to the complex state diagram of Figure 4.3(c).
- Now let us see the designing of a custom single-purpose processor that executes the GCD program.
- The next step is to divide the functionality into a datapath part and a controller part, as shown in Figure 4.4.
- The datapath interconnection of part should consist of an and combinational sequential components.
- The controller part should consist of a basic state diagram, i.e., one containing only boolean actions and conditions.

- Construct the datapath through a four-step process:
- 1. Create registers for declared variables. The variables are x and y. Create registers x and y and connect these registers to input ports. create register d and connect it to the output port.
- 2. Create a functional unit for each arithmetic operation in the state diagram. In the example, there are two subtractions, one comparison for less than, one comparison for inequality, yielding two subtractors and two comparators.
- 3.Connect the ports, registers and functional units. A source may be an input port, a functional unit, or another register.
- 4. Finally, create a unique identifier for each control input and output of the datapath components.
- Now that we have a complete datapath, we can build a state diagram for our controller.
- Figure 4.4 shows the controller implementation model, and Figure 4.5 shows a state table.
- Note that there are 7 inputs to the controller, resulting in 128 rows for the table.

- don’t cares are used to reduce the rows in the state table for some input combinations, still optimization is possible by using (CAD) tools.




(No Ratings Yet)
Loading...
Related