-
Notifications
You must be signed in to change notification settings - Fork 3
🥼 Lab enhancing designs --- Enhance 2 system designs #236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 5 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
b0d6df2
create first part of lab
jameshughes89 11ece8b
enhancing last bit
jameshughes89 7c9ac7a
clean
jameshughes89 e48b4e1
more clean
jameshughes89 b292c4c
clean intro
jameshughes89 d393cee
Update site/labs/system-design/enhancing-designs.rst
jameshughes89 0b2e53b
Merge branch 'main' into lab-add_mul-create
jameshughes89 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| ***************** | ||
| Enhancing Designs | ||
| ***************** | ||
|
|
||
| * Feel free to use your laptop | ||
| * You are strongly encourage to work with others | ||
|
|
||
| * When you get stuck, ask those sitting around you for help | ||
| * Get used to working together in the labs | ||
| * Peer teaching and peer learning has been empirically shown to be very effective | ||
|
|
||
|
|
||
|
|
||
| Including Hardware | ||
| ================== | ||
|
|
||
| For this part of the lab, use the ESAP digital file | ||
| :download:`from here. <../../topics/control-logic/esap_alu_ram_output_pc_instruction_control.dig>` | ||
|
|
||
|
|
||
| #. Include the hardware for ``AND``, ``OR``, and ``NOT`` operations to the ESAP system | ||
|
|
||
| * These operators will work similar to addition to subtraction in the existing design | ||
|
|
||
| * Apply the operator to the contents of the A and B registers, and store the result in the A register | ||
| * ``NOT`` only works on the contents of the A register | ||
|
|
||
|
|
||
| #. These new operators require control signals | ||
|
|
||
| * Connect these new control signals to the control logic loop up table | ||
|
|
||
|
|
||
|
|
||
| Control Logic | ||
| ============= | ||
|
|
||
| For this part of the lab, use the script for generating the control logic patterns | ||
| :download:`from here. <../../topics/control-logic/create_control_logic_patterns_for_look_up_table.py>` | ||
|
|
||
|
|
||
| #. Although the new control logic is connected, ensure the look up table has the correct number of outputs | ||
|
|
||
| * Ensure the number of outputs from the look up table includes the new control signals | ||
|
|
||
|
|
||
| #. Update the contents of the look up table to allow for three new machine code instructions | ||
|
|
||
| * An instruction for each of the operators allowed by the new hardware | ||
| * Use the 3 unused patterns for these instructions | ||
| * Use the Python script to create a new hex file for the look up table | ||
|
|
||
|
|
||
| #. Write machine code programs to ensure each of these new instructions work properly | ||
|
|
||
|
|
||
|
|
||
| Enhancing the Previous Lab | ||
| ========================== | ||
|
|
||
| #. If not already completed, finish the design from the previous lab | ||
|
|
||
|
|
||
| 16 Bit Bus | ||
| ---------- | ||
|
|
||
| #. In a separate circuit, create a design for a 16 bit bus using | ||
|
|
||
| * RAM with an 8 bit address space and 8 bit addressability (:math:`265 \times 8` bits) | ||
| * A counter | ||
| * Two 8 bit instruction registers | ||
|
|
||
| * Even counter values retrieve data from even RAM addresses, and odd values retrieve from odd memory addresses | ||
| * Fetching from RAM takes 2 clock cycles | ||
| * One of the two 8 bit registers will always store bit patterns from the even or odd memory addresses | ||
| * The output from these two 8 bit registers make up the 16 bit bus | ||
|
|
||
|
|
||
| #. Add this 16 bit bus to the design from the previous labs | ||
|
|
||
| * Include it in the design such that bit patterns can be written to RAM and executed automatically | ||
|
|
||
| * The bit patterns as discussed in previous labs | ||
|
|
||
|
|
||
| * Not all of the 16 bits will be needed when interfacing with the previous design | ||
| * The program counter enable will likely need to be controlled carefully | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.