Computer arithmetics (computer organisation & arithmetics) pptSuryaKumarSahani
This is a presentation of explanation of various computer arithmetic including Binary addition, subtraction, multiplication and division. Also Floating point addition, subtraction, multiplication, and division operations.
Slides supporting the "Computer Networking: Principles, Protocols and Practice" ebook. The slides can be freely reused to teach an undergraduate computer networking class using the open-source ebook.
It's part of Computer Organization And Architecture .Data representation is how to data represented in computer by using complements of number , float point ,fix point, so it's
slide is useful
Computer arithmetics (computer organisation & arithmetics) pptSuryaKumarSahani
This is a presentation of explanation of various computer arithmetic including Binary addition, subtraction, multiplication and division. Also Floating point addition, subtraction, multiplication, and division operations.
Slides supporting the "Computer Networking: Principles, Protocols and Practice" ebook. The slides can be freely reused to teach an undergraduate computer networking class using the open-source ebook.
It's part of Computer Organization And Architecture .Data representation is how to data represented in computer by using complements of number , float point ,fix point, so it's
slide is useful
IOSR journal of VLSI and Signal Processing (IOSRJVSP) is a double blind peer reviewed International Journal that publishes articles which contribute new results in all areas of VLSI Design & Signal Processing. The goal of this journal is to bring together researchers and practitioners from academia and industry to focus on advanced VLSI Design & Signal Processing concepts and establishing new collaborations in these areas.
Design and realization of microelectronic systems using VLSI/ULSI technologies require close collaboration among scientists and engineers in the fields of systems architecture, logic and circuit design, chips and wafer fabrication, packaging, testing and systems applications. Generation of specifications, design and verification must be performed at all abstraction levels, including the system, register-transfer, logic, circuit, transistor and process levels
Syed Ubaid Ali Jafri has described cryptography technique in this document.techniques involve Ceaser Cipher, Play Fair Cipher, Transpotation technique, Subsitution Technique, DES Technique
Mathematics (from Greek μάθημα máthēma, “knowledge, study, learning”) is the study of topics such as quantity (numbers), structure, space, and change. There is a range of views among mathematicians and philosophers as to the exact scope and definition of mathematics
SAMPLE QUESTIONExercise 1 Consider the functionf (x,C).docxanhlodge
SAMPLE QUESTION:
Exercise 1: Consider the function
f (x,C)=
sin(C x)
Cx
(a) Create a vector x with 100 elements from -3*pi to 3*pi. Write f as an inline or anonymous function
and generate the vectors y1 = f(x,C1), y2 = f(x,C2) and y3 = f(x,C3), where C1 = 1, C2 = 2 and
C3 = 3. Make sure you suppress the output of x and y's vectors. Plot the function f (for the three
C's above), name the axis, give a title to the plot and include a legend to identify the plots. Add a
grid to the plot.
(b) Without using inline or anonymous functions write a function+function structure m-file that does
the same job as in part (a)
SAMPLE LAB WRITEUP:
MAT 275 MATLAB LAB 1 NAME: __________________________
LAB DAY and TIME:______________
Instructor: _______________________
Exercise 1
(a)
x = linspace(-3*pi,3*pi); % generating x vector - default value for number
% of pts linspace is 100
f= @(x,C) sin(C*x)./(C*x) % C will be just a constant, no need for ".*"
C1 = 1, C2 = 2, C3 = 3 % Using commans to separate commands
y1 = f(x,C1); y2 = f(x,C2); y3 = f(x,C3); % supressing the y's
plot(x,y1,'b.-', x,y2,'ro-', x,y3,'ks-') % using different markers for
% black and white plots
xlabel('x'), ylabel('y') % labeling the axis
title('f(x,C) = sin(Cx)/(Cx)') % adding a title
legend('C = 1','C = 2','C = 3') % adding a legend
grid on
Command window output:
f =
@(x,C)sin(C*x)./(C*x)
C1 =
1
C2 =
2
C3 =
3
(b)
M-file of structure function+function
function ex1
x = linspace(-3*pi,3*pi); % generating x vector - default value for number
% of pts linspace is 100
C1 = 1, C2 = 2, C3 = 3 % Using commans to separate commands
y1 = f(x,C1); y2 = f(x,C2); y3 = f(x,C3); % function f is defined below
plot(x,y1,'b.-', x,y2,'ro-', x,y3,'ks-') % using different markers for
% black and white plots
xlabel('x'), ylabel('y') % labeling the axis
title('f(x,C) = sin(Cx)/(Cx)') % adding a title
legend('C = 1','C = 2','C = 3') % adding a legend
grid on
end
function y = f(x,C)
y = sin(C*x)./(C*x);
end
Command window output:
C1 =
1
C2 =
2
C3 =
3
More instructions for the lab write-up:
1) You are not obligated to use the 'diary' function. It was presented only for you convenience. You
should be copying and pasting your code, plots, and results into some sort of "Word" type editor that
will allow you to import graphs and such. Make sure you always include the commands to generate
what is been asked and include the outputs (from command window and plots), unless the pr.
FellowBuddy.com is an innovative platform that brings students together to share notes, exam papers, study guides, project reports and presentation for upcoming exams.
We connect Students who have an understanding of course material with Students who need help.
Benefits:-
# Students can catch up on notes they missed because of an absence.
# Underachievers can find peer developed notes that break down lecture and study material in a way that they can understand
# Students can earn better grades, save time and study effectively
Our Vision & Mission – Simplifying Students Life
Our Belief – “The great breakthrough in your life comes when you realize it, that you can learn anything you need to learn; to accomplish any goal that you have set for yourself. This means there are no limits on what you can be, have or do.”
Like Us - https://www.facebook.com/FellowBuddycom
1. Carry-Save Addition
Prof. Loh
CS3220 - Processor Design - Spring 2005
February 2, 2005
1 Adding Multiple Numbers
There are many cases where it is desired to add more than two numbers together. The straightforward way of adding
together m numbers (all n bits wide) is to add the first two, then add that sum to the next, and so on. This requires
a total of m − 1 additions, for a total gate delay of O(m lg n) (assuming lookahead carry adders). Instead, a tree of
adders can be formed, taking only O(lg m · lg n) gate delays.
Using carry save addition, the delay can be reduced further still. The idea is to take 3 numbers that we want to add
together, x + y + z, and convert it into 2 numbers c + s such that x + y + z = c + s, and do this in O(1) time. The
reason why addition can not be performed in O(1) time is because the carry information must be propagated. In carry
save addition, we refrain from directly passing on the carry information until the very last step. We will first illustrate
the general concept with a base 10 example.
To add three numbers by hand, we typically align the three operands, and then proceed column by column in the
same fashion that we perform addition with two numbers. The three digits in a row are added, and any overflow goes
into the next column. Observe that when there is some non-zero carry, we are really adding four digits (the digits of
x,y and z, plus the carry).
carry: 1 1 2 1
x: 1 2 3 4 5
y: 3 8 1 7 2
z: + 2 0 5 8 7
sum: 7 1 1 0 4
The carry save approach breaks this process down into two steps. The first is to compute the sum ignoring any carries:
x: 1 2 3 4 5
y: 3 8 1 7 2
z: + 2 0 5 8 7
s: 6 0 9 9 4
Each si is equal to the sum of xi + yi + zi modulo 10. Now, separately, we can compute the carry on a column by
column basis:
x: 1 2 3 4 5
y: 3 8 1 7 2
z: + 2 0 5 8 7
c: 1 0 1 1
In this case, each ci is the sum of the bits from the previous column divided by 10 (ignoring any remainder). Another
way to look at it is that any carry over from one column gets put into the next column. Now, we can add together c
and s, and we’ll verify that it indeed is equal to x + y + z:
1
2. x y
cincout
s
⇒
c s
x y z
FA CSA
Figure 1: The carry save adder block is the same circuit as the full adder.
x0 y0 z0
s0c1
CSA
x1 y1 z1
s1c2
CSA
x2 y2 z2
s2c3
CSA
x3 y3 z3
s3c4
CSA
x4 y4 z4
s4c5
CSA
x5 y5 z5
s5c6
CSA
x6 y6 z6
s6c7
CSA
x7 y7 z7
s7c8
CSA
Figure 2: One CSA block is used for each bit. This circuit adds three n = 8 bit numbers together into two new
numbers.
s: 6 0 9 9 4
c: + 1 0 1 1
sum: 7 1 1 0 4
The important point is that c and s can be computed independently, and furthermore, each ci (and si) can be computed
independently from all of the other c’s (and s’s). This achieves our original goal of converting three numbers that we
wish to add into two numbers that add up to the same sum, and in O(1) time.
The same concept can be applied to binary numbers. As a quick example:
x: 1 0 0 1 1
y: 1 1 0 0 1
z: + 0 1 0 1 1
s: 0 0 0 0 1
c: + 1 1 0 1 1
sum: 1 1 0 1 1 1
What does the circuit to compute s and c look like? It is actually identical to the full adder, but with some of the
signals renamed. Figure 1 shows a full adder and a carry save adder. A carry save adder simply is a full adder with
the cin input renamed to z, the z output (the original “answer” output) renamed to s, and the cout output renamed to
c. Figure 2 shows how n carry save adders are arranged to add three n bit numbers x,y and z into two numbers c
and s. Note that the CSA block in bit position zero generates c1, not c0. Similar to the least significant column when
adding numbers by hand (the “blank”), c0 is equal to zero. Note that all of the CSA blocks are independent, thus the
entire circuit takes only O(1) time. To get the final sum, we still need a LCA, which will cost us O(lg n) delay. The
asymptotic gate delay to add three n-bit numbers is thus the same as adding only two n-bit numbers.
So how long does it take us to add m different n-bit numbers together? The simple approach is just to repeat this
trick approximately m times over. This is illustrated in Figure 3. There are m−2 CSA blocks (each block in the figure
actually represents many one-bit CSA blocks in parallel) that we have to go through, and then the final LCA. Note that
every time we pass through a CSA block, our number increases in size by one bit. Therefore, the numbers that go to
the LCA will be at most n + m − 2 bits long. So the final LCA will have a gate delay of O(lg (n + m)). Therefore
the total gate delay is O(m + lg (n + m))
Instead of arranging the CSA blocks in a chain, a tree formation can actually be used. This is slightly awkward
because of the odd ratio of 3 to 2. Figure 4 shows how to build a tree of CSAs. This circuit is called a Wallace tree.
2
3. X0X1X2X3X4X5X6X7X8
LCA
P8
i=0 Xi
Figure 3: Adding m n-bit numbers with a chain of CSA’s.
The depth of the tree is log3
2
m. Like before, the width of the numbers will increase as we get deeper in the tree. At
the end of the tree, the numbers will be O(n + log m) bits wide, and therefore the LCA will have a O(lg (n + log m))
gate delay. The total gate delay of the Wallace tree is thus O(log m + lg (n + log m)).
3
4. LCA
P8
i=0 Xi
X0 X1 X2 X3 X4 X5 X6 X7 X8
Figure 4: A Wallace tree for adding m n-bit numbers.
4