Introduction
to Digital Logic and Computer Design
JEE 160/EE 260 Summer 2001 Final Exam
Design a mixed SRAM and ROM 2Kx8 memory using 1Kx4 SRAMS and 1Kx4 ROMs
and
the minimum amount of additional combinational logic necessary. The
least
significant 1K words of memory must be read only while the most
significant
1K words must be read and write.
Implement the following equations using a PLA. Show the fuse map and
programming table. (The fuse map diagram was given as well as an empty
table).
F1 = A'B'C' + AB'C + A'BC + ABC'
F2 = AC' + A'B'C + AC + BC'
Implement the following equations using a PAL. Show the fuse map and
programming table. (The fuse map diagram was given as well as an empty
table).
X = A'C + A'B + BCD' + AB'C'D
Y = A'C' + A'B' + B'C'D
Z = B'C + AC + A'BC'D' + AB'D
A Barrel shift register is a special register where the data in the
register
can rotate a specified number of bits. As bits are rotated, the most
significant bits are rotated back into the least significant bits of
the register. Design a 3-bit barrel shift register that implements the
following operations:
S1 S0 | Synchronous Operation
===========+=========================
0 0 | No Change
0 1 | Rotate left one
1 0 | Rotate left two
1 1 | Load external data
Given the following RTL register transfers, give a block diagram
connecting
registers, ROMs, Adders, Multipliers, and multiplexers to implement the
transfers with the minimum number of buses in, at most, two clock
cycles
(don't show clock, select, load or enable signals)
R4 <- R1 * R2
R4 <- R2 + R1
R6 <- R1 * R2
R3 <- R2
R5 <- R0 + R1
R5 <- ROM[R0]
R6 <- R0 + R2
R3 <- R1 * R2
Using the special math processor we have been studying in class, finish
writing the program that implements the following pseudo-code where X
can
vary and is less than 17. (The processor diagram and instruction set
were included and the problem restated for our version of the
processor).
For index from 0 to X
A[index] = (B[index]+C[index])*D[index]
End For
-------------Finish writing the program below-------------
org: 0x0030
X:
0x0001 !X Add variables used in program after X
org: 0x0040
A:
0x0001 !A array starts here
org: 0x0050
B:
0x0002 !B array starts here
org: 0x0060
C:
0x0002 !C array starts here
org: 0x0070
D:
0x0002 !D array starts here
org: 0x0000 !begin program here