CSE370 Assignment 1 - Sample Solutions

Comments on the assignment are here.
  1. [3 pts] Familiarize yourself with the CSE 370 web pages. Participation in class accounts for what percentage of the final grade? How long should you spend on each homework problem before discussing it with others? What do you think of the collaboration/cheating policy? Does it seem reasonable? If not, what would you do differently? What question would you like to see on the course evaluation that is currently not on the list?
     no sample solution 
  2. [no pts] Make sure you have an NT account and can login to the machines in the instructional labs. Add yourself to the class mailing list using majordomo (if you choose to do so rather than just relying on the class e-mail archive).
     no sample solution 
  3. Convert the following numbers to decimal:
    (a) [1 pt] 01110012
    01110012 = 1*1 + 0*2 + 0*4 + 1*8 + 1*16 + 1*32 + 0*64 = 5710
    (b) [1 pt] 0E516
    0E516 = 5*1 + 14*16 + 0*256 = 22910
  4. Convert the following numbers to base 2:
    (a) [1 pt] 12710
    12710 = 11111112
    (b) [1 pt] 40A16
    40A16 = 0100 0000 10102
  5. Perform the following operations (without converting to base 10):
    (a) [1 pt] 012 + 0010012 + 010102
       1 11
          01
    + 001001
       01010
    --------
      010100
    
    (b) [1 pt] 0101102 - 0011002
       .
      010110
    - 001100
    --------
      001010
    
    (c) [1 pt] 1012 * 0102
      101
    * 010
    -----
     101
    -----
     1010
    
  6. Represent the following numbers in the indicated notation:
    (a) [2 pt] -22 in 6-bit signed magnitude (1 sign bit and 5 bits for the magnitude)
    Convert 22 to binary:   10110
    Prepend sign bit
    --> answer:            110110
    
    (b) [2 pt] -22 in 6-bit 2s complement
    Convert 22 to binary:   010110
    Invert bits:            101001
    Add 1
    --> answer:             101010
    
    (c) [3 pt] what are the smallest and largest numbers you can represent in 6-bit 2s complement notation
    Smallest: 100000 -> -3210
    Largest:  011111 -> 3110
    
    (d) [3 pt] represent the 6-bit 2s complement number 111010 as a 4-bit signed magnitude number
    First, we negate the given number to find its magnitude:
      Invert bits:   000101
      Add 1:         000110
    To represent 1102 in 4-bit signed magnitude format, we
    take the 3-bit magnitude and prepend the sign bit:
      Answer:        1110
    
  7. [10 pt] Derive the Boolean equations for the outputs d28, d29, d30, and d31 of the calendar subsystem example when the months are encoded from 0 to 11 instead of 1 to 12. Try to make the expressions as simple as possible exploiting don't cares as much as you can.
    d28 = m8' m4' m2' m1 Leap'
    
    d29 = m8' m4' m2' m1 Leap
    
    d30 = m8' m4' m2 m1 + m8' m4 m2' m1 + m8 m4' m2' m1' + m8 m4' m2 m1'
      (add don't care in bold and group)
      --> m8' m4' m2 m1 + 
         (m8' m4 m2' m1 + m8 m4 m2' m1) +
         (m8 m4' m2' m1' + m8 m4' m2 m1')
        = m8' m4' m2 m1 + m4 m2' m1 + m8 m1'
    
    d31 = m8' m4' m2' m1' + m8' m4' m2 m1' +
          m8' m4 m2' m1' + m8' m4 m2 m1' + m8' m4 m2 m1 +
          m8 m4' m2' m1 + m8 m4' m2 m1
      (add don't cares and repeat m8'm4 m2 m1')
      --> (m8' m4' m2' m1' + m8' m4' m2 m1') +
          (m8' m4  m2' m1' + m8' m4 m2 m1') +
          (m8' m4 m2 m1' + m8' m4 m2 m1) +
          (m8 m4' m2' m1 + m8 m4' m2 m1 +
           m8 m4 m2' m1 + m8 m4 m2 m1)
        = m8' m1' + m8 m1 + m4 m2
    
    Compare the 0 to 11 encoding with the 1 to 12 encoding in terms of the number of literals for each equation (in terms of m8, m4, m2, and m1 - not d28, d29, and d30). Which would you rather use and why?
    The 0-11 encoding uses, for d29..d31 respectively, 5, 5, 9, 6 literals;
    The 1-12 encoding, on the other hand, uses 5, 5, 5, 4 literals.
    
    I would rather use the 1-12 encoding as it promises an implementation
    of the functions with smaller circuits.
    

Comments to: cse370-webmaster@cs.washington.edu (Last Update: )