Skip to main content Link Menu Expand (external link) Document Search Copy Copied

RISC-V Static Analysis Circuit

Circuits due Tue Apr 9th by 11:59pm in your Project04 GitHub Repo

There is no interactive grading for Project04

Tests: https://github.com/USF-CS631-S24/tests

Autograder: https://github.com/phpeterson-usf/autograder

Requirements

  1. Submit your .dig files (one for each circuit) and .hex files to your assignment repo
  2. You will design and build a circuit which analyzes machine code instructions, i.e. a static analyzer
  3. Your circuit files must be called project04.dig
  4. Your circuit will read machine-language instructions from a ROM component and provide a count of the number of total instructions (TOTAL) in a program and also count the different instruction types:
    1. I-type opcode (ITYPE)
    2. R-type opcode (RTYPE)
    3. Loads (LOAD)
    4. Stores (STYPE)
    5. Conditional branches (BTYPE)
    6. Calls (JAL)
    7. Unconditional jumps (J)
    8. Ret (JALR)
  5. Your outputs must be named exactly as listed above
  6. You need these inputs, named as shown:
  7. A 2-bit input called PROG that selects the program to be analyzed
  8. A clock named CLK
  9. A 1-bit input named CLR which clears the sequential components
  10. To determine the end of a program, your circuit will look for an instruction marker. The marker will be unimp (0xC0001073). You must add this marker at the end of each program you will analyze.
  11. You only need to support programs that contain up to 256 instructions (including the marker).
  12. You can use the Digital components: multiplexors, encoders, decoders, gates, splitters, and wires. You must supply all other components yourself including: adders, registers, counters, comparators, instruction storage, and analyzer.
  13. Test input: Your instruction storage will contain the machine code for fib_rec_s, is_pal_rec_s, getbit_seq_s, and quadratic_s as generated by

     $ objdump -d file.o | python3 makerom3.py > file_rom.hex
    
  14. Remember to commit your .hex files in your repo

Given

  1. Circuits built in lecture
  2. Screen shot of top-level circuit

Rubric

  1. Automated Tests (88 pts.)
  2. Circuit Quality (12 pts.)

Partial Top-level Circuit Image

project04