Professional Documents
Culture Documents
model
… …
external external
control data controller datapath
inputs inputs
… …
datapath next-state registers
control and
controller inputs datapath control
logic
datapath
control state functional
outputs register units
… …
external external
control data
outputs outputs
… …
8: x = x - y; 9: d_o = x
}
9: d_o = x; 1-J:
}
!cond
a=b C: C:
cond c1 !c1*c2 !c1*!c2
next loop-body-
c1 stmts c2 stmts others
statement statements
J: J:
next next
statement statement
1 !(!go_i)
declared variable 2:
x_i y_i
!go_i
• Create a functional unit for 2-J:
x_sel
Datapath
x_ld
x<y !(x<y)
– Use multiplexors for 7: y = y -x 8: x = x - y
x_lt_y
d_ld
9: d
1 !(!go_i)
Controller
0000 1:
!1 • Same structure as FSMD
2:
!go_i
0001 2:
1 !(!go_i)
• Replace complex
!go_i
2-J:
0010 2-J: actions/conditions with
3: x = x_i x_sel = 0
0011 3: x_ld = 1
datapath configurations
4: y = y_i
y_sel = 0 x_i y_i
0100 4: y_ld = 1
!(x!=y)
Datapath
5: !x_neq_y
0101 5: x_sel
x!=y n-bit 2x1 n-bit 2x1
x_neq_y y_sel
6: 0110 6:
x_ld
x<y !(x<y) x_lt_y !x_lt_y 0: x 0: y
y_ld
7: y = y -x 8: x = x - y 7: y_sel = 1 8: x_sel =1
y_ld = 1 x_ld = 1
1010 5-J:
1011 9: d_ld = 1
1100 1-J: