Assignment 1 Solution



Submit two files and two files only. Do not use a zip file (or any other type of archive). Your written answers should be in a PDF file and should have your name and student number clearly indicated at the top of the document. Your circuit should have the name SevenSegDec.circ and should have your name and student number clearly indicated at the top of the document. If you write your answers by hand (probably easiest), scan your work with one of the McGill photocopiers (it will send you a pdf of the scanned document directly to your e-mail). Scanned work must be legible! Use a dark pen or pencil when preparing your work such that your scanned work has good contrast and is easy to read. All work must be your own, and must be submitted using MyCourses. Double check that you have correctly submitted your assignment as you will not receive marks for work incorrectly submitted.

1 Number Representation, 2s Complement, and Floating Point

Show your work in writing up answers to the following questions to get full credit.

  1. Convert positional notation 0:1010112 from binary to decimal using any appropriate algo-rithm that was seen in class.

  1. Convert positional notation 6:7510 from decimal to binary and hexadecimal using algo-rithms that were seen in class.

  1. Convert positional notation 1FA.U06G32 from base 32 to binary and then to hexadecimal. Here, much like base 16, we use letters A through V to represent 10 through 31, and note the fractional part in this case is U zero six G (i.e., it is difficult to see the difference between 0 and O). Use the shortcut of grouping binary bits as seen in class.

  1. Convert the base 5 number 30310045 to hexadecimal.

  1. Represent the base 10 number 412878610 as a 24 bit signed binary number using two’s complement format. Convert the binary bit pattern in your answer to hexadecimal using 6 symbols.

  1. Now that you’ve worked up an appetite for number conversions, represent -2.625 as an IEEE single precision floating point number. Give your answer in both binary and hex-adecimal and show your work. Is the representation exact?

2 Seven Segment Decoder

A seven segment decoder is typically used to determine which light emit-ting diodes in a seven segment display should illuminate to display a digit specified in binary coded decimal.

Logisim includes such a seven segment display that you will use in this question. The decoder takes as input four binary bits, which we label in order from most significant bit to least significant bit, A3 A2 A1 A0. The decoder produces as output a pattern of 7 bits, S6 S5 S4 S3 S2 S1 S0, which specifies which segments should illuminate. The figure on the right shows the relationship between the pins and the corresponding seg-ments of the display. Note that there is an 8th pin, S7, which controls the decimal point and that we will not use in this assignment.

In this question, Instead of decoding BCD, your decoder should produce letters A through J for binary bit patterns zero through 9, and can produce any output (i.e., we don’t care) for binary bit patterns 10 through 15. Your decoder should produce exactly the patterns shown below.

  1. Write out a truth table for your circuit and include this with your written answers.

  1. Implement the 7 boolean functions in the provided logisim circuit file using only AND, OR and NOT gates provided in the built in library (it is also OK to use NAND and NOR gates, and to negate inputs on gates). You may use any solution you wish, but you may find it easiest to use a sum of products approach, much like a PLA.

Create your solution in the provided circuit file, as it already has a set of inputs and outputs defined. These input and output pins should not be moved so as to prevent the sub-circuit appearance from changing (right-most tool bar button in logisim) as this is important for testing. Be sure to add your name and student number in your circuit.