Skip to content

Commit 40ba29f

Browse files
🥼 Lab enhancing designs --- Enhance 2 system designs (#236)
1 parent f324fbe commit 40ba29f

File tree

2 files changed

+88
-0
lines changed

2 files changed

+88
-0
lines changed

site/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ Office Hours
105105
labs/comparisons/comparisons
106106
labs/decoding-instructions/decoding-instructions
107107
labs/decoding-instructions/decoding-instructions-registers
108+
labs/system-design/enhancing-designs
108109

109110

110111

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
*****************
2+
Enhancing Designs
3+
*****************
4+
5+
* Feel free to use your laptop
6+
* You are strongly encourage to work with others
7+
8+
* When you get stuck, ask those sitting around you for help
9+
* Get used to working together in the labs
10+
* Peer teaching and peer learning has been empirically shown to be very effective
11+
12+
13+
14+
Including Hardware
15+
==================
16+
17+
For this part of the lab, use the ESAP digital file
18+
:download:`from here. <../../topics/control-logic/esap_alu_ram_output_pc_instruction_control.dig>`
19+
20+
21+
#. Include the hardware for ``AND``, ``OR``, and ``NOT`` operations to the ESAP system
22+
23+
* These operators will work similar to addition to subtraction in the existing design
24+
25+
* Apply the operator to the contents of the A and B registers, and store the result in the A register
26+
* ``NOT`` only works on the contents of the A register
27+
28+
29+
#. These new operators require control signals
30+
31+
* Connect these new control signals to the control logic loop up table
32+
33+
34+
35+
Control Logic
36+
=============
37+
38+
For this part of the lab, use the script for generating the control logic patterns
39+
:download:`from here. <../../topics/control-logic/create_control_logic_patterns_for_look_up_table.py>`
40+
41+
42+
#. Although the new control logic is connected, ensure the look up table has the correct number of outputs
43+
44+
* Ensure the number of outputs from the look up table includes the new control signals
45+
46+
47+
#. Update the contents of the look up table to allow for three new machine code instructions
48+
49+
* An instruction for each of the operators allowed by the new hardware
50+
* Use the 3 unused patterns for these instructions
51+
* Use the Python script to create a new hex file for the look up table
52+
53+
54+
#. Write machine code programs to ensure each of these new instructions work properly
55+
56+
57+
58+
Enhancing the Previous Lab
59+
==========================
60+
61+
#. If not already completed, finish the design from the previous lab
62+
63+
64+
16 Bit Bus
65+
----------
66+
67+
#. In a separate circuit, create a design for a 16 bit bus using
68+
69+
* RAM with an 8 bit address space and 8 bit addressability (:math:`265 \times 8` bits)
70+
* A counter
71+
* Two 8 bit instruction registers
72+
73+
* Even counter values retrieve data from even RAM addresses, and odd values retrieve from odd memory addresses
74+
* Fetching from RAM takes 2 clock cycles
75+
* One of the two 8 bit registers will always store bit patterns from the even or odd memory addresses
76+
* The output from these two 8 bit registers make up the 16 bit bus
77+
78+
79+
#. Add this 16 bit bus to the design from the previous labs
80+
81+
* Include it in the design such that bit patterns can be written to RAM and executed automatically
82+
83+
* The bit patterns as discussed in previous labs
84+
85+
86+
* Not all of the 16 bits will be needed when interfacing with the previous design
87+
* The program counter enable will likely need to be controlled carefully

0 commit comments

Comments
 (0)