Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC321 Homework Due Due Tuesday after spring break Turn in –Design information State diagram State table K-map simplifications and expressions for flip-flop.

Similar presentations


Presentation on theme: "CSC321 Homework Due Due Tuesday after spring break Turn in –Design information State diagram State table K-map simplifications and expressions for flip-flop."— Presentation transcript:

1 CSC321 Homework Due Due Tuesday after spring break Turn in –Design information State diagram State table K-map simplifications and expressions for flip-flop inputs Circuit diagrams for flip-flop input expressions –Code listing for your gray-code simulation class –Code listing for your test function –Output screen dump of the working simulation

2 CSC321 Logic Microoperations Counter-part to the arithmetic microoperations we looked at last week Similar to Boolean functions (expressions) except that the operands are registers (bit strings) rather than individual Boolean variables –This is exactly what you implemented in code

3 CSC321 Register Transfer Language We need some new symbols to avoid (or cause) confusion R1 R2 R1 01101011 01001110 01001010 Bitwise AND R1 R2 R1 01101011 01001110 01101111 Bitwise OR R2 R1 01001110 10010001 Bitwise NOT

4 CSC321 Context will always be a bitwise AND microop. will always be a bitwise OR microop. will always be a single bit AND will be a single bit OR in a Boolean function (never a bitwise OR microop.) will be an arithmetic ADD in an arithmetic function

5 CSC321 Context R1R2, R1P + Q: R4 R5 R3 What operation is this?

6 CSC321 Logical Microoperations Given two binary variables there are 16 different logical microoperations that can be performed –How can this be given that there are only 4 combinations of input values?

7 CSC321 Logical Microoperations InputsOutputs xyF0F0 F1F1 F2F2 F3F3 F4F4 F5F5 F6F6 F7F7 F8F8 F9F9 F 10 F 11 F 12 F 13 F 14 F 15 000000000011111111 010000111100001111 100011001100110011 110101010101010101

8 CSC321 Logical Microoperations Some of them are not intuitive (or useful) They can all be created using AND, OR, NOT, and XOR functions –You should be able to create the table of functions (page 110, Table 4-6) How would you go about doing this?

9 CSC321 Hardware Implementation We know how to implement Boolean functions using combination logic How do we implement them to perform bitwise microoperations?

10 CSC321 Hardware Implementation 0 1 2 3 S0S0 S1S1 FiFi AiAi BiBi 4x1 MUX If you need n-bit microoperations (n-bit registers) you have n of these circuits …with a lot of logic gates!

11 CSC321 Hardware Implementation But doesn’t that MUX only implement 4 expressions? What about the other 12? We can use a bigger MUX or realize that many of the other 12 are useless and the ones that are useful can be derived from the 4 that we implemented, keeping hardware costs down

12 CSC321 But Why? What can be done with logic microoperations? –Most useful when we consider the bits of a given register as separate signals

13 CSC321 In Java if we need 8 boolean variables we generally do something like this… This may be very inefficient dependent on how the Java compiler generates the byte code Logic Microoperations boolean b7 = false; boolean b6 = false; … boolean b0 = false; OR boolean b[] = new boolean[8]; for (int i = 0; i < 8; ++i) { b[i] = false; }

14 CSC321 A more memory efficient way to represent the same information would be… This is referred to as “bit packing” But how do we get to the individual bits within the byte? Logic Microoperations byte b = 0;

15 CSC321 Logic Microoperations Through bitwise logic operations –Selective-set –Selective-complement –Selective-clear –Mask –Insert –Clear

16 CSC321 We want to set certain bits to 1 while leaving the others unchanged Any ideas? Selective-Set 01101010 ? 11110000 11111010

17 CSC321 Selective-Complement We want to complement (invert) certain bits while leaving the others unchanged Any ideas? 01101010 ? 11110000 10011010

18 CSC321 Selective-Clear We want to clear (0) certain bits while leaving the others unchanged Any ideas? 01101010 ? 11110000 00001010

19 CSC321 Mask Similar to Selective-clear but the “selection” is done with 0’s rather than 1’s Any ideas? 01101010 ? 11110000 01100000

20 CSC321 Insert Insert (replace) a group of bits into the existing bit string while leaving other bits unchanged Any ideas? 01101010 ? 1101xxxx 11011010

21 CSC321 Clear Compare the two values and if they are equal, produce a string of 0’s Any ideas? 01101010 ? 01101010 00000000

22 CSC321 Usage These types of operations are especially useful when designing hardware But, they are also heavily used in software –Device drivers (s/w that talks to h/w) –Embedded systems (small programmable h/w devices) –High speed applications such as games or other video applications

23 CSC321 Shift Microoperations Serial modification/transfer of bits similar to the shift registers we looked at previously Three basic types of shift –Logical shift –Circular shift (often called rotation) –Arithmetic shift

24 CSC321 Logical Shift Acts like a shift register with a 0 shifted in to the vacated bit position –Shifts can be to the left or the right –Bits that are shifted “off the end” are lost 11101010 11010100 01110101 R1 ← shl R1 R1 ← shr R1

25 CSC321 Circular Shift Acts like a shift register with the end bit shifted in to the vacated bit position –Shifts can be to the left or the right –No information is lost 11101010 11010101 01110101 R1 ← cil R1 R1 ← cir R1 R1 ← rotl R1 R1 ← rotr R1

26 CSC321 Arithmetic Shift Shifts are performed with special attention paid to the MSB (the sign bit – 2’s complement notation) –Left arithmetic shifts correspond to integer divide by powers of 2 Division must leave the sign bit unchanged Division cannot causes an overflow –Right arithmetic shifts correspond to integer multiply by powers of 2 Multiplication must leave the sign bit unchanged Multiplication must be overflow aware

27 CSC321 Arithmetic Shift Right Leaves the sign bit unchanged and shifts the number (including the sign bit) to the right Did it work as expected? 1010101011010101 R1 ← ashr R1

28 CSC321 Arithmetic Shift Left Inserts 0 into LSB (why?) If MSB changes after the shift an overflow has occurred (why?) Can predict overflow by comparing MSB (bit n-1) to next bit (bit n-2) Did it work as expected? 1110101011010100 R1 ← ashl R1 0110101011010100 R1 ← ashl R1

29 CSC321 Arithmetic Shift Left What is the “overflow rule”? How can you implement it?

30 CSC321 Implementation The arithmetic, logic, and shift microoperations are generally implemented in a single “unit” – the ALU (Arithmetic- Logic Unit) The ALU is generally made up of combinational circuits (as opposed to sequential circuits) –Why should this be the case?

31 CSC321 ALU Block Diagram Stage i Arithmetic Circuit Stage i Logic Circuit Stage i 4x1 MUX S3S3 S2S2 S1S1 S0S0 shl C in C out BiBi AiAi A i-1 A i+1 shr FiFi select 0 1 2 3 Combinational circuits that we looked at previously are inserted into the boxes

32 CSC321 Table of Microoperations Operation SelectResultant operation/function S3S3 S2S2 S1S1 S0S0 C in OperationFunction 00000F=ATransfer 00001F=A+1Increment 00010F=A+BAdd 00011F=A+B+1Add w/carry 00100F=A+B’Sub w/borrow 00101F=A+B’+1Subtract 00110F=A-1Decrement 00111F=ATransfer 0100xF=A BAND 0101xF=A BOR 0110xF=A BXOR 0111xF=A’Complement 10xxxF=shr AShift right 11xxxF= shl AShift left


Download ppt "CSC321 Homework Due Due Tuesday after spring break Turn in –Design information State diagram State table K-map simplifications and expressions for flip-flop."

Similar presentations


Ads by Google