Sequential custom single purpose processor design

Advertisements
Advertisements
Advertisements3
Advertisements4
Advertisements6
Advertisements66

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.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading...

Author: Lakshmi Prasanna Ponnala

Completed M.Tech in Digital Electronics and Communication Systems.

Leave a Reply

error: Content is protected !!

Discover more from ece4uplp

Subscribe now to keep reading and get access to the full archive.

Continue reading