How the Final Exam Was Marked

Question 1

Question 1 was marked out of 20. Two marks were assigned for each of the following:

(a)

  • having 6 (or more) states
  • these states uniquely encoded (with 1 and 0 unless the VHDL code includes a declaration of the symbolic states)
  • progression through 5 states on '1' inputs
  • common transitions to one state on '0' inputs
  • output of '1' for all states except the state after five '1's and '0' otherwise. No marks were awarded for this part if the two tables were combined.

    (b)

  • declaration of temporary signals for current and next state
  • "combinational" process that is sensitive to current state and data
  • process sets next state correctly for '0' and '1' inputs
  • process (sensitive to current state if a separate process) that sets the current output or a next-output signal according to current state
  • "sequential" process, sensitive to next state and clock, that sets the value of the current state and optionally the current output. Resetting the state to an all-zero (or all-ones) value on a clock edge when the `data' input is '1' or '0' was also allowed because this can be instantiated by Design Compiler as a synchronous reset/preset control with some logic libraries. No marks were awarded for this part if the results of the process depended on the current state because this would require combinational logic.

    Question 2

    Question 2 was marked out of 18 as follows:

    Question 3

    Question 3 was marked out of 12. Two marks were assigned for each of the following:

    Question 4

    Question 4 was marked out of 14. 1 or 2 marks were subtracted for each mistake. One mark was subtracted for simple mistakes. Two marks were subtracted for serious mistakes such as including code to test whether the character was printable, including delay loops, and infinite loops. If a major function was missing one mark was subtracted per line of code that would be required to implement the missing portion of the solution (14 marks in total according to the solution).

    Common mistakes included:

    Many people wrote programs that sent the null character terminating the string to the serial port. Although marks were not subtracted for doing this, the null character was the string terminator and should have not be transmitted.
    ELEC 464 Home Page