2.5 Project Objective Implement all the chips presented in this chapter. The only building blocks that you can use are the chips that you will gradually build and the chips described in the previous...

1 answer below »
2.5 Project Objective Implement all the chips presented in this chapter. The only building blocks that you can use are the chips that you will gradually build and the chips described in the previous chapter. Tip When your HDL programs invoke chips that you may have built in the previous project, we recommend that you use the built-in versions of these chips instead. This will ensure correctness and speed up the operation of the hardware simulator. There is a simple way to accomplish this convention: Make sure that your project directory includes only the .hdl files that belong to the present project. The remaining instructions for this project are identical to those of the project from the previous chapter, except that the last step should be replaced with ‘‘Build and simulate all the chips specified in the projects/02 directory.’’


2/2/2021 S21-CS243-course-materials/readme.md at main · HSU-S21-CS243/S21-CS243-course-materials https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/readme.md 1/3 HSU-S21-CS243 / S21-CS243-course-materials Code Issues Pull requests Actions Projects Wiki Security S21-CS243-course-materials / projects / project02 / readme.md acarteas added p2 description. History 1 contributor Learn Git and GitHub without any code! Using the Hello World guide, you’ll start a branch, write comments, and open a pull request. Read the guide main 41 lines (33 sloc) 2.19 KB CS 243 Assignment #1 - Chapter 2 Complete the project listed at the end of chapter 2 in the book. Getting Started Raw Blame https://github.com/HSU-S21-CS243 https://github.com/HSU-S21-CS243/S21-CS243-course-materials https://github.com/HSU-S21-CS243/S21-CS243-course-materials https://github.com/HSU-S21-CS243/S21-CS243-course-materials/issues https://github.com/HSU-S21-CS243/S21-CS243-course-materials/pulls https://github.com/HSU-S21-CS243/S21-CS243-course-materials/actions https://github.com/HSU-S21-CS243/S21-CS243-course-materials/projects https://github.com/HSU-S21-CS243/S21-CS243-course-materials/wiki https://github.com/HSU-S21-CS243/S21-CS243-course-materials/security https://github.com/HSU-S21-CS243/S21-CS243-course-materials/pulse https://github.com/HSU-S21-CS243/S21-CS243-course-materials https://github.com/HSU-S21-CS243/S21-CS243-course-materials/tree/main/projects https://github.com/HSU-S21-CS243/S21-CS243-course-materials/tree/main/projects/project02 https://github.com/acarteas https://github.com/acarteas https://github.com/HSU-S21-CS243/S21-CS243-course-materials/commit/cd4368e6c70a32e4a8a58f7b6291f2b3785c6bca https://github.com/HSU-S21-CS243/S21-CS243-course-materials/commits/main/projects/project02/readme.md https://guides.github.com/activities/hello-world/ https://github.com/HSU-S21-CS243/S21-CS243-course-materials/raw/main/projects/project02/readme.md https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blame/main/projects/project02/readme.md https://desktop.github.com/ 2/2/2021 S21-CS243-course-materials/readme.md at main · HSU-S21-CS243/S21-CS243-course-materials https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/readme.md 2/3 Begin by creating a private repository in the course's GitHub organization. Your repository name must be in the following format: p02-{HSU LOGIN} . Thus, my project repository name would be p02-asc564 . Once created, your repository should have: a "chips" directory that contains your HDL solutions a "diagrams" directory that contains PNG or JPEG images of each of your chips a "results" directory that contains screenshots from the testing results obtained through the hardware simulator Below is an example screenshot that I am expecting for each test: NOTICE: Failing to set up your repository correctly will result in reduced assignment credit. Design Diary Prompt Design diaries should be a paragraph or two. You will be graded on content (i.e. it shows deep thought) rather than syntax (e.g. spelling) and structure. Below are some prompts that can be used to get you thinking. Feel free to use these or to make up your own. https://github.com/HSU-S21-CS243 https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/example_ss.png 2/2/2021 S21-CS243-course-materials/readme.md at main · HSU-S21-CS243/S21-CS243-course-materials https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/readme.md 3/3 Describe a particular struggle that you overcame when working on this programming assignment. Conversely, describe an issue with your assignment that you were unable to resolve. Provide advice to a future student on how he or she might succeed on this assignment. Describe the most fun aspect of the assignment. Describe the most challenging aspect of the assignment. Describe the most difficult aspect of the assignment to understand. Provide any suggestions for improving the assignment in the future. Your design diary will be submitted on canvas and should not be included in your repository. Grading You will be graded using the following: [67 pts] Building working chips [33 pts] Building efficient chips [20 pts] Creating logism diagrams for each of your chips [10 pts] Writing a good design diary Due Date This project is due by Midnight on February 3, 2021. Your repository should contain all chips, diagrams, and output files from the test runs provided to you by the book. On canvas, you will submit design diary.
Answered 5 days AfterFeb 03, 2021

Answer To: 2.5 Project Objective Implement all the chips presented in this chapter. The only building blocks...

Swapnil answered on Feb 06 2021
153 Votes
75305/s21-cs243-course-materialsreadmemd-at-main-hsu-s21-cs243s21-cs243-course-materials-y0fbpvbd-pp4a4z4w.pdf
2/2/2021 S21-CS243-course-materials/readme.md at main · HSU-S21-CS243/S21-CS243-course-materials
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/readme.md 1/3
HSU-S21-CS243 / S21-CS243-course-materials
Code Issues Pull requests Actions Projects Wiki Security
S21-CS243-course-materials / projects / project02 / readme.md
acarteas added p2 description. History
1 contributor
Learn Git and GitHub without any code!
Using the Hello World guide, you’ll start a branch, write comments, and open a pull request.
Read the guide
main
41 lines (33 sloc) 2.19 KB
CS 243 Assignment #1 - Chapter 2
Complete the project listed at the end of chapter 2 in the book.
Getting Started
Raw Blame
https://github.com/HSU-S21-CS243
https://github.com/HSU-S21-CS243/S21-CS243-course-materials
https://github.com/HSU-S21-CS243/S21-CS243-c
ourse-materials
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/issues
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/pulls
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/actions
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/projects
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/wiki
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/security
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/pulse
https://github.com/HSU-S21-CS243/S21-CS243-course-materials
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/tree/main/projects
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/tree/main/projects/project02
https://github.com/acarteas
https://github.com/acarteas
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/commit/cd4368e6c70a32e4a8a58f7b6291f2b3785c6bca
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/commits/main/projects/project02/readme.md
https://guides.github.com/activities/hello-world/
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/raw/main/projects/project02/readme.md
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blame/main/projects/project02/readme.md
https://desktop.github.com/
2/2/2021 S21-CS243-course-materials/readme.md at main · HSU-S21-CS243/S21-CS243-course-materials
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/readme.md 2/3
Begin by creating a private repository in the course's GitHub organization. Your repository
name must be in the following format: p02-{HSU LOGIN} . Thus, my project repository
name would be p02-asc564 .
Once created, your repository should have:
a "chips" directory that contains your HDL solutions
a "diagrams" directory that contains PNG or JPEG images of each of your chips
a "results" directory that contains screenshots from the testing results obtained
through the hardware simulator
Below is an example screenshot that I am expecting for each test:
NOTICE: Failing to set up your repository correctly will result in reduced assignment credit.
Design Diary Prompt
Design diaries should be a paragraph or two. You will be graded on content (i.e. it shows
deep thought) rather than syntax (e.g. spelling) and structure. Below are some prompts
that can be used to get you thinking. Feel free to use these or to make up your own.
https://github.com/HSU-S21-CS243
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/example_ss.png
2/2/2021 S21-CS243-course-materials/readme.md at main · HSU-S21-CS243/S21-CS243-course-materials
https://github.com/HSU-S21-CS243/S21-CS243-course-materials/blob/main/projects/project02/readme.md 3/3
Describe a particular struggle that you overcame when working on this programming
assignment.
Conversely, describe an issue with your assignment that you were unable to resolve.
Provide advice to a future student on how he or she might succeed on this
assignment.
Describe the most fun aspect of the assignment.
Describe the most challenging aspect of the assignment.
Describe the most difficult aspect of the assignment to understand.
Provide any suggestions for improving the assignment in the future.
Your design diary will be submitted on canvas and should not be included in your
repository.
Grading
You will be graded using the following:
[67 pts] Building working chips
[33 pts] Building efficient chips
[20 pts] Creating logism diagrams for each of your chips
[10 pts] Writing a good design diary
Due Date
This project is due by Midnight on February 3, 2021. Your repository should contain all
chips, diagrams, and output files from the test runs provided to you by the book. On
canvas, you will submit design diary.
75305/Solution.docx
CHIP HalfAdder {
IN a, b; // 1-bit inputs
OUT sum, // Right bit of a + b
carry; // Left bit of a + b
PARTS:
    Xor(a=a, b=b, out=sum);
    And(a=a, b=b, out=carry);
}
CHIP FullAdder {
IN a, b, c; // 1-bit inputs
OUT sum, // Right bit of a + b + c
carry; // Left bit of a + b + c
PARTS:
    HalfAdder(a=a, b=b, sum=s1, carry=c1);
    HalfAdder(a=s1, b=c, sum=sum, carry=c2);
    Or(a=c1, b=c2, out=carry);
}
CHIP Add16 {
IN a[16], b[16];
OUT out[16];
PARTS:
HalfAdder(a=a[0], b=b[0], sum=out[0], carry=c0);
FullAdder(a=a[1], b=b[1], c=c0, sum=out[1], carry=c1);
FullAdder(a=a[2], b=b[2], c=c1, sum=out[2], carry=c2);
FullAdder(a=a[3], b=b[3], c=c2, sum=out[3], carry=c3);
FullAdder(a=a[4], b=b[4], c=c3, sum=out[4], carry=c4);
FullAdder(a=a[5], b=b[5], c=c4, sum=out[5], carry=c5);
FullAdder(a=a[6], b=b[6], c=c5, sum=out[6], carry=c6);
FullAdder(a=a[7], b=b[7], c=c6, sum=out[7], carry=c7);
FullAdder(a=a[8], b=b[8], c=c7, sum=out[8], carry=c8);
FullAdder(a=a[9], b=b[9], c=c8, sum=out[9], carry=c9);
FullAdder(a=a[10], b=b[10], c=c9, sum=out[10], carry=c10);
FullAdder(a=a[11], b=b[11], c=c10, sum=out[11], carry=c11);
FullAdder(a=a[12], b=b[12], c=c11, sum=out[12], carry=c12);
FullAdder(a=a[13], b=b[13], c=c12, sum=out[13], carry=c13);
FullAdder(a=a[14], b=b[14], c=c13, sum=out[14], carry=c14);
FullAdder(a=a[15], b=b[15], c=c14, sum=out[15], carry=msb);
}
CHIP Inc16 {
IN in[16];
OUT out[16];
PARTS:
Add16(a=in, b[0]=true, out=out);
}
CHIP ALU {
IN
x[16], y[16], // 16-bit inputs
zx,
nx,
zy,
ny,
f,
no;
OUT
out[16],
zr,
ng;
PARTS:
Mux16(a=x, b=false, sel=zx, out=zerox);
Not16(in=zerox, out=notx);
Mux16(a=zerox, b=notx, sel=nx, out=negatex);

Mux16(a=y, b=false, sel=zy, out=zeroy);
Not16(in=zeroy, out=noty);
Mux16(a=zeroy, b=noty, sel=ny, out=negatey);

And16(a=negatex, b=negatey, out=xandy);
Add16(a=negatex, b=negatey, out=xaddy);

Mux16(a=xandy, b=xaddy, sel=f, out=outputxy);
Not16(in=outputxy, out=notoutput);
Mux16(a=outputxy, b=notoutput, sel=no, out=out, out[0..7]=half1, out[8..15]=half2, out[15]=ng);

Or8Way(in=half1, out=zero1);
Or8Way(in=half2, out=zero2);
Or(a=zero1, b=zero2, out=zero3);
Not(in=zero3, out=zr);
}
Output Screenshot:
ALU No Status
ALU
75305/theelementsofcomputingsystemsbuildingamoder-2booleanarithmetic-1-owdcpi5z-olnyb3zb.pdf
2 Boolean Arithmetic
Counting is the religion of this generation, its hope and salvation.
—Gertrude Stein (1874–1946)
In this chapter we build gate logic designs that represent numbers and perform
arithmetic operations on them. Our starting point is the set of logic gates built in
chapter 1, and our ending point is a fully functional Arithmetic Logical Unit. The
ALU is the centerpiece chip that executes all the arithmetic and logical operations
performed by the computer. Hence, building the ALU functionality is an important
step toward understanding how the Central Processing Unit (CPU) and the overall
computer work.
As usual, we approach this task gradually. The first section gives a brief Back-
ground on how binary codes and Boolean arithmetic can be used, respectively, to
represent and add signed numbers. The Specification section describes a succession of
adder chips, designed to add two bits, three bits, and pairs of n-bit binary numbers.
This sets the stage for the ALU specification, which is based on a sophisticated yet
simple logic design. The Implementation and Project sections provide tips and
guidelines on how to build the adder chips and the ALU on a personal computer,
using the hardware simulator supplied with the book.
Binary addition is a simple operation that runs deep. Remarkably, most of the
operations performed by digital computers can be reduced to elementary additions of
binary numbers. Therefore, constructive understanding of binary addition holds the
key to the implementation of numerous computer operations that depend on it, one
way or another.
Nisan, Noam, and Shimon Schocken. The Elements of Computing Systems : Building a Modern Computer from First Principles, MIT Press, 2005. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/humboldt/detail.action?docID=6243305.
Created from humboldt on 2021-02-02 22:52:42.
C
op
yr
ig
ht
©
2
00
5.
M
IT
P
re
ss
. A
ll
rig
ht
s
re
se
rv
ed
.
2.1 Background
Binary Numbers Unlike the decimal system, which is founded on base 10, the bi-
nary system is founded on base 2. When we are given a certain binary pattern, say
‘‘10011,’’ and we are told that this pattern is supposed to represent an integer num-
ber, the decimal value of this number is computed by convention as follows:
ð10011Þtwo ¼ 1 � 24 þ 0 � 23 þ 0 � 22 þ 1 � 21 þ 1 � 20 ¼ 19 ð1Þ
In...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here