View Questions Only
View Questions with Strategies
(Registers) Design a register with two load signals, that enable the loading of data from two different sources.
(Shift-Registers) Using a 4-bit shift register, construct a 4-bit register that can rotate its content one position to the left or right.
Logic Schematic
(Counters) Design a 4-bit binary counter that counts up only in:
PRESENT STATE | NEXT STATE | ||||||
---|---|---|---|---|---|---|---|
Q3 | Q2 | Q1 | Q0 | Q3(next) | Q2(next) | Q1(next) | Q0(next) |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
Q3(next) = Q3Q1' + Q3Q2' + Q3'Q2Q1 Q2(next) = Q2Q1' + Q2'Q1 Q1(next) = Q1' Q0(next) = 0
(Register files) Design an 8 x 4 register file with:
(Memories) Design:
(Datapaths) Design a simple datapath that can compute the expression:
(Datapaths) Define and implement the controller for the datapath that couldexecute the algorithm developed in Problem 7.19(a).
sum := 0
loop:
for i = 1 to n
sum := sum + aixi
end loop
output := sum
Selector (S) |
Counter (D L E) |
ALU (M S1 S0) |
Accumulator (S1 S0) |
Output (OE) |
---|---|---|---|---|
0 | x 1 x | 0 0 1 | 0 1 | 0 |
1 | 1 0 1 | 1 0 1 | 0 1 | 0 |
x | x x x | 0 0 0 | 0 0 | 1 |
Develop state diagram (FSM representation) for the above algorithm.
STATES | Q1Q0 | Start, (i = 0) | |||
---|---|---|---|---|---|
00 | 01 | 11 | 10 | ||
S0 | 00 | 00 | 00 | 01 | 01 |
S1 | 01 | 11 | 11 | 11 | 11 |
S2 | 11 | 11 | 10 | 10 | 11 |
S3 | 10 | 00 | 00 | 00 | 00 |
Q1(next)Q0(next) Q1(next) = Q0 Q0(next) = Q1'Q0 + Q0(i = 0)' + Q1'Start
STATE | Q1Q0 | Selector (S) |
Counter (D L E) |
ALU (M S1 S0) |
Accumulator (S1 S0) |
Output (OE) |
---|---|---|---|---|---|---|
S0 | 00 | x | x x x | x x x | x x x | 0 |
S1 | 01 | 0 | 1 0 1 | 1 0 1 | 0 1 | 0 |
S2 | 11 | 1 | 1 0 1 | 1 0 1 | 0 1 | 0 |
S3 | 10 | x | x x x | x x x | 0 0 | 1 |
Sel_S = Q1 Cnt_D = 1 Cnt_L = Q1' Cnt_E = 1 Alu_M = Q1 Alu_S1 = 0 Alu_S0 = 1 Acc_S1 = 0 Acc_S0 = Q0 OE = Q1Q0'