Download presentation
Presentation is loading. Please wait.
Published byLindsey Harrell Modified over 8 years ago
1
PHY 201 (Blum)1 Shift registers and Floating Point Numbers Chapter 11 in Tokheim
2
PHY 201 (Blum)2 What are they? Recall that a register is a small piece of memory that holds values. In addition to holding values, a shift register performs a simple operation on the values; it moves them to the left or to the right.
3
PHY 201 (Blum)3 Example 01010111 10101110 01011101 10111010 Serial input Serial output Shift register
4
PHY 201 (Blum)4 Parallel loading register
5
PHY 201 (Blum)5 Register On the previous slide, the input of a flip-flop is selected from two possible choices The output of the same flip-flop. The data switch above. Recall that selecting from one of two inputs is done by a 2-to-1 MUX. The load line serves as the address/select input.
6
PHY 201 (Blum)6 When Load is high, we are selecting the data switches to be the data input. So when we go through a positive edge of the clock, we are writing the value from the data switches to the register.
7
PHY 201 (Blum)7 When Load is low, we are selecting the flip-flop’s output to be the data input. So when we go through a positive clock edge, we are writing the value from the flip-flop to the flip-flop – thus keeping the value the same as before (holding).
8
PHY 201 (Blum)8 Register Shift Register We can adapt the previous circuit to make a shift register. Instead of having one of the two possible inputs for a flip-flop come from the output of the same flip- flop, we can change this to having that input come from an adjacent flip-flop. Then if when the load input is low and we go through a positive clock edge, the effect is not to hold the values of the register but to shift them. This is part of the lab.
9
PHY 201 (Blum)9 On the ends If one shifts from the right to the left, then the input to the rightmost flip-flop does not come from an adjacent flip-flop during the shift operation. There are several options Data switch input Always 1 Always 0 Use leftmost output to form a ring
10
PHY 201 (Blum)10 How are shift registers used? Modems Cyclic Redundancy Check (CRC) Multiplication Adding floats
11
PHY 201 (Blum)11 Modems A modem (Modulator-Demodulator) takes a signal from a computer and places it on a transmission line. A transmitting modem modulates, that is, converts a digital signal from a computer to a pseudo-analog signal more appropriate for a transmission line. The receiving modem demodulates, that is, converts the pseudo-analog signal back into digital form.
12
PHY 201 (Blum)12 Modems (Cont.) But the aspect of modems relevant here is that The transmitting modem converts parallel data to serial. The receiving modem converts serial data into parallel form.
13
PHY 201 (Blum)13 Inside Outside Inside the computer, data that moves around as words on parallel cables having a connection for each bit in the word. (Although with SATA, some internal data movement has become serial.) The transmission lines are longer and require data to be sent serially (one bit at a time).
14
PHY 201 (Blum)14 Parallel to Serial 10100 To leave the computer, data moves into register in parallel, several bits at once. Data then moves out of the register serially, one bit at a time.
15
PHY 201 (Blum)15 Serial to Parallel 10100 To enter the computer, data enters the register in serial, one bit at a time. Data then moves out of the register in parallel. DEMO!
16
PHY 201 (Blum)16 Help for 74165 S/L should be low to get the data into the 74165, then S/L should be high for the shifting action to occur. The loading or shifting occurs on the edge of the clock.
17
PHY 201 (Blum)17 Help for 74164 If CLR is high, and both A and B are high, a shifting occurs with an high coming in as the new bit. If either A or B is low shifting occurs with a low coming in as the new bit. That’s why the “transmission line” is fed to both A and B inputs.
18
PHY 201 (Blum)18 “Modem” simulation
19
PHY 201 (Blum)19 Cyclic Redundancy Check In order to check for errors that may occur during transmission, the sender calculates a number, a cyclic redundancy check. The receiver does the same calculation. If they agree, then presumably no error occurred in transmission.
20
PHY 201 (Blum)20 CRC Modification Actually the receiver does a calculation that includes the sender’s CRC as part of the data and should get an answer of zero. It’s easier electronically to see if series of bits corresponds to zero. Any mathematical operation performed on the transmitted data could serve as a check. Another common calculation is summing, then it is called a checksum.
21
PHY 201 (Blum)21 CRC: funny division The calculation should not be time consuming. Think of CRC as a funny kind of division, the remainder from the division is the check. It’s not ordinary division, but a strange kind of division that is easy to realize electronically.
22
PHY 201 (Blum)22 CRC = Shift register + XORs Basically one has a shift register with a few excluded OR gates inserted in strategic positions.
23
PHY 201 (Blum)23 00 0 0 11000001010 11 0 0 00 0 1 0001010 001010 00 1 0 01010 The first four shift in without anything interesting happening.
24
PHY 201 (Blum)24 01 0 0 1010 10 0 1 010 10 1 1 10 11 1 0 0 01 0 1
25
PHY 201 (Blum)25 Multiplication: Shift and add 1001 1011 1001 1001 0000 +1001 1100011 shift
26
PHY 201 (Blum)26 Fractions Similar to what we’re used to with decimal numbers 3.14159 =3 · 10 0 + 1 · 10 -1 + 4 · 10 -2 + 1 · 10 -3 + 5 · 10 -4 + 9 · 10 -5 11.001001 =1 · 2 1 + 1 · 2 0 + 0 · 2 -1 + 0 · 2 -2 + 1 · 2 -3 + 0 · 2 -4 + 0 · 2 -5 + 1 · 2 -6 (11.001001 3.140625)
27
PHY 201 (Blum)27 Converting decimal to binary II 98.61 Integer part 98 / 2 = 49 remainder 0 49 / 2 = 24 remainder 1 24 / 2 = 12 remainder 0 12 / 2 = 6 remainder 0 6 / 2 = 3 remainder 0 3 / 2 = 1 remainder 1 1 / 2 = 0 remainder 1 1100010
28
PHY 201 (Blum)28 Converting decimal to binary III 98.61 Fractional part 0.61 2 = 1.22 0.22 2 = 0.44 0.44 2 = 0.88 0.88 2 = 1.76 0.76 2 = 1.52 0.52 2 = 1.04.100111
29
PHY 201 (Blum)29 Converting decimal to binary IV Put together the integral and fractional parts 98.61 1100010.100111
30
PHY 201 (Blum)30 Another Example (Whole number part) 123.456 Integer part 123 / 2 = 61 remainder 1 61 / 2 = 30 remainder 1 30 / 2 = 15 remainder 0 15 / 2 = 7 remainder 1 7 / 2 = 3 remainder 1 3 / 2 = 1 remainder 1 1 / 2 = 0 remainder 1 1111011
31
PHY 201 (Blum)31 Checking: Go to Programs/Accessories/Calculator
32
PHY 201 (Blum)32 Put the calculator in Scientific view
33
PHY 201 (Blum)33 Enter number, put into binary mode
34
PHY 201 (Blum)34 Another Example (fractional part) 123.456 Fractional part 0.456 2 = 0.912 0.912 2 = 1.824 0.824 2 = 1.648 0.648 2 = 1.296 0.296 2 = 0.592 0.592 2 = 1.184 0.184 2 = 0.368 ….0111010…
35
PHY 201 (Blum)35 Checking fractional part: Enter digits found in binary mode Note that the leading zero does not display.
36
PHY 201 (Blum)36 Convert to decimal mode, then
37
Edit copy – View Scientific – Edit Paste PHY 201 (Blum)37
38
PHY 201 (Blum)38 Divide by 2 raised to the number of digits (in this case 7, including leading zero)
39
PHY 201 (Blum)39 In most cases it will not be exact
40
PHY 201 (Blum)40 Other way around Multiply fraction by 2 raised to the desired number of digits in the fractional part. For example.456 2 7 = 58.368 Throw away the fractional part and represent the whole number 58 111010 But note that we specified 7 digits and the result above uses only 6. Therefore we need to put in the leading 0 0111010
41
PHY 201 (Blum)41 Fixed point If one has a set number of bits reserved for representing the whole number part and another set number of bits reserved for representing the fractional part of a number, then one is said to be using fixed point representation. The point dividing whole number from fraction has an unchanging place in the number.
42
PHY 201 (Blum)42 Limits of the fixed point approach Suppose you use 4 bits for the whole number part and 4 bits for the fractional part (ignoring sign for now). The largest number would be 1111.1111 = 15.9375 The smallest, non-zero number would be 0000.0001 =.0625
43
PHY 201 (Blum)43 Floating point representation Floating point representation allows one to represent a wider range of numbers using the same number of bits. It is like scientific notation.
44
PHY 201 (Blum)44 Scientific notation Used to represent very large and very small numbers Ex. Avogadro’s number 6.0221367 10 23 particles 602213670000000000000000 Ex. Fundamental charge e 1.60217733 10 -19 C 0.000000000000000000160217733 C
45
PHY 201 (Blum)45 Scientific notation: all of these are the same number 12345.6789 = 1234.56789 10 0 1234.56789 10 = 1234.56789 10 1 123.456789 100 =123.456789 10 2 12.3456789 10 3 1.23456789 10 4 Rule: Shift the point to the left and increment the power of ten.
46
PHY 201 (Blum)46 Small numbers 0.000001234 0.00001234 10 -1 0.0001234 10 -2 0.001234 10 -3 0.01234 10 -4 0.1234 10 -5 1.234 10 -6 Rule: shift point to the right and decrement the power.
47
PHY 201 (Blum)47 Floating Point Rules Starting with the fixed point binary representation, shift the point and increase the power (of 2 now that we’re in binary). Shift so that the number has no whole number part and also so that the first fractional bit (the half’s place) has a 1.
48
PHY 201 (Blum)48 Floats SHIFT expression so it is just under 1 and keep track of the number of shifts 1100010.1001100110011001 .11000101001100110011001 2 7 Express the number of shifts in binary .11000101001100110011001 2 00000111
49
PHY 201 (Blum)49 Mantissa and Exponent and Sign .11000101001100110011001 2 00000111 (Significand) Mantissa .11000101001100110011001 2 00000111 Exponent The number may be negative, so there a bit (the sign bit) reserved to indicate whether the number is positive or negative
50
PHY 201 (Blum)50 Biasing Actually the exponent is not represented as shown on the previous slide. There were 8 bits used to represent the exponent on the previous slide, that means there are 256 numbers that could be represented. Since the exponent could be negative (to represent numbers less than 1), we choose half of the range to be positive and half to be negative, i.e. -128 to 127.
51
PHY 201 (Blum)51 Biasing (Cont.) In biasing, one does not use 2’s complement or a sign bit. Instead one adds a bias (equal to the magnitude of the most negative number) to the exponents and represents the result of that addition.
52
PHY 201 (Blum)52 Biasing (Cont.) With 8 bits, the bias is 128. We had to shift 7 times to the left, corresponding to an exponent of +7 We add that to the bias 128+7=135 That is the number we put in the exponent portion: 10000111 (In the IEEE 754 format for floats, you bias by one less (127) and reserve the exponents 00000000 and 11111111 for special purposes.)
53
PHY 201 (Blum)53 Big floats Assume we use 8 bits, 4 for the mantissa and 4 for the exponent (neglecting sign). What is the largest float? Mantissa: 1111 Exponent 1111 0.9375 2 7 =120 (Compare this to the largest fixed-point number using the same amount of space 15.9375)
54
PHY 201 (Blum)54 Small floats Assume we use 8 bits, 4 for the mantissa and 4 for the exponent (neglecting sign). What is the smallest float? Mantissa: 1000 Exponent 0000 0.5 2 -8 = 0.001953125 (Compare this to the smallest fixed-point number using the same amount of space.0625)
55
PHY 201 (Blum)55 One more fine point As discussed so far, the mantissa (significand) always starts with a 1. When storage was expensive, designers opted not to represent this bit, since it is always 1. It had to be inserted for various operations on the number (adding, multiplying, etc.), but it did not have to be stored.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.