Marking Scheme

Labs

Note: For any solution to be considered correct the course coding guidelines must be followed. No marks awarded otherwise (e.g. use of sequential Verilog statements).

                              Lab 0: (0)

                              Lab 1 (10)

- cover page (1)
- block diagram matching your code (1)
- listing matching your demo (1)
- compilation listing matching your code (1)
- demo (video or in lab) (6)

- half marks deducted if report and video guidelines not followed
- no marks if submission is the wrong format

                              Lab 2 (10)

- report has correct cover page (1)
- listing conforms to coding guidelines (2.5)
  - file-level comments -1
  - consistent indentation -1
  - use of always_ff with single non-blocking assignment -1
- report includes a plausible compilation report (0.5)
- correct digits displayed when 1 pressed (2, -1 for each incorrect digit)
- correct digits displayed when 4 pressed (2, -1 for each incorrect digit)
- any digits are displayed for pressing 1 and 2 but not for 7 or 5 (1)
- correct orientation of digits on video (1)

                              Lab 3 (10)

- Report with:
  - correct values of button, frequency and duration (0.5)
  - correct values of N and M (1)
  - block diagram (not from Quartus) (1)
  - Verilog code listing (1.5):
    - no file-level comments (-1)
    - correct indentation (consistent and 3-8 spaces) (-1)
- Demo of working circuit showing:
  - correct key pressed (2)
  - correct tone duration (2)
  - and correct frequency (2)

                              Lab 4 (10)

- a successful initial demo (3.5 marks)
- a successful demo of the requested change (2.5 marks)
- report (4 marks):
  - a listing of the initial design (only if successfully demonstrated in the lab)
  - a listing of the modified design (if successfully demonstrated in the lab)
  - proper file-level comments and indentation of the above code
  - a compilation report (of either design)

                              Lab 5 (10)

- listing of DUT .sv file (2, 1 if incorrect indentation or missing file-level comments)
        -0.5 for partial file-level comments
        -0.25 if no reset logic is implemented
        -0.5 for not following other course coding guidelines
- listing of testbench .sv file (2, 1 if incorrect indentation or missing file-level comments)
        -0.5 for partial file-level comments
        - 0.25 if detected output is printed instead of DUT internal state
- screen capture of simulation waveforms (1)
- screen capture of testbench transcript (1)
- correct results (4):
  - -2 if 1,2,3,4 sequence not used or triggers 'detected'
  - -2 if student ID test sequence does not trigger 'detected'
  - -4 if test sequence does not match student ID
  - -1 if missing test vector that has an error in the 'detected' result
  - -1 if missing test vector #3 (student ID with extra incorrect digit)


                              Lab 6 (10)

- one mark per screen captures (4)
- what happens at TP1 when TP2 is grounded (1)
- power dissipation in pull-up resistor for 3.3V and 5V (1=2x0.5)
- demo during lab (4)


                              Lab 7 (10)

- correct calculation of the required output voltage and 16-bit value (2)
- listing of Verilog code for the spi module meeting course
  requirements (comments and indentation, 2)
- compilation report (1)
- screen capture of the RTL Netlist SPI module schematic (not the
  top-level lab6 schematic) (1)
- demo or video of zero output (1)
- demo or video of the correct voltage output (3)


                              Lab 8 (6)

- listing of Verilog code (indentation & file-level comments) (1)
- compilation report (1)
- RTL netlist diagram (from Quartus) (1)
- demo showing a range of at least from 500mV to 3 V (-1 if not full
  range shown, -2 if only shows ADC or only shows DMM) (3)



Quizzes


                                Quiz 1 (11)

Q1(6): -1 per wrong answer (width, base and value must be correct)

Q2(2): -1 for wrong width, base or value

Q3(3): -1 for wrong declaration (name, inputs and outputs), -1 for no
or wrong assign statement, -1 for wrong expression in assign statement

                                Quiz 2 (11)

Q1(4):

  -1 per wrong answer (width, base and value must be correct)

Q2(4):
  - an always_ff statement assigning to st (2)
  - initial transition based on s AND state (1)
  - an assign statement assigning to o (2)
  - an assignment to o based on state (1)
  - correct values assigned to o (1)

                              Quiz 3 ()

Q1 (3)
- one mark per correct answer
Q2 (2)
- one mark per correct answer (must include units)
Q3 (5)
- one mark for each of:
  - module declaration
  - always_ff statement on clock
  - with reset on value == 0
  - with decrement based on value of fast
  - assign statement to out

Typical Comments:
1 incorrect module declaration: -1
2 error in always_ff: -1
3 no reset on count equal to zero: -1
4 incorrect decrement: -1
5 missing/incorrect assign to out(put): -1

                              Quiz 4 ()

Q1 1 mark per:

- initial block
- sets n to zero
- wait statement
- calls $stop
- always with #5us or #10us
- increments n by 1 or 2
- always with #20us or #40us
- $display() of n

Typical Comments:
1 syntax
2 incorrect initial: -1
3 does not initialize n: -1
4 incorrect stop condition: -1
5 incorrect stop: -1
6 incorrect always or delay: -1
7 incorrect increment of n: -1
8 incorrect display: -1

Q2 (6)
- correct bit values and bit order (2)
- correct data on MOSI vs MISO (2)
- correct SS framing (2)

Typical Comments:
1 incorrect bit order or values: -1
2 MOSI/MISO reversed: -2
3 SS* framing error: -2
4 data or SS* phase error: -1
5 clock rising edge should be in middle of bit period: -1
6 transition between levels should be much less than one clock period.


                              Quiz 5 ()


Exam

Final Exam Q1: - module declaration - always_ff - correct reset - correct slow/fast increment - correct other increment * Comments: 1 incorrect module declaration: -1 2 incorrect always_ff: -1 3 incorrect reset: -1 4 incorrect fast/slow increment: -1 5 incorrect increment by 1: -1 Q2: - one mark per correct answer (both width and value must be correct) Q3: - one mark per correct answer (value and units) Q4: - correct expression - correct results (value and units) Q5: - 4 (labelled) states (1 mark) - 8 (or 6) transitions (0.5 marks each) Comments: 1 missing arrows: -1 2 incorrect transition conditions: -4 3 missing states: -0.5 4 incorrect states: -1 5 ambiguous transition conditions: -4 Q6: - one per correct answer Q7: - one per correct answer Q8: - correct number of bits - correct bit values - correct numerical value Comments: 1 Result not in hexadecimal base: -1 Q9: - correct method - correct answer Q10: - one per correct answer