Giter Club home page Giter Club logo

lfx-riscv-isac-task's Introduction

LFX RISCV-CTG and RISCV-ISAC Mentorship Program Additional Tasks

TASK 1: Coverpoint generator for a cross combination coverpoint in riscv-isac

Executing the python file cross_comb_gen.py out of the box would produce a combination of all possible coverpoints for add and mul instructions with N instructions between them. The combinations of coverpoints include both consuming and non-consuming scenarios.

Features

  • gen_cross_cov() method in cross_comb_gen.py generates all possible coverpoints for a given set of op-codes and hazards for both consuming and non-consuming scenarios. The following are its arguments.
    • Start and end op-codes tuple.
    • Number of instructions between start and end op-codes.
    • Type of hazard: RAW, WAW, WAR. (RAR is not considered to be a data hazard).
    • If the conditons for N op-codes are to be cared. If true, the method would return a string with dontcare conditons i.e. '?'.
  • Code reusability was kept in mind. gen_cross_cov() returns a dictionary of all possible hazards which makes it easy to integrate into the .cgf file.
  • gen_cross_cov() can handle both op-code string and tuples as shown in the examples for cross-comb coverpoint format.
  • Since code in cross() class in riscv-isac is white-space dependent, white spaces are handled properly to ensure compatibility.

Manual Solution

  • Considering the coverpoint: [ add : ? : ? : mul ] :: [a=rd : ? : ? : ?] :: [? : rd!=a and rs1!=a and rs2!=a : rs1==a or rs2==a or rd==a : rd==a]
    • This coverpoint is used to check for WAW data hazard
  • Possible Solutions:
    • A classic and easy way to get rid of data hazards is by appending nop instruction between hazardous instructions in the pipeline. But this is not desired as it contradicts the very need for pipelining.
    • Hardware level optimization of pipelining should be implemented. e.g. data forwarding.
    • riscv-isac can find and initiate a instruction reordering scheme to be safe from data hazards. This can involve pushing independent instructions from the code into the pipeline between hazardous instructions

TASK 2: Generate test report using riscof framework for RISCV-64I

Issues

  • There are 24 failed tests in the report. This was the first run. This may be due to improper test files in for riscv-arch-test. The test report in accordance with task 2 is given: task2.html
  • A second run of the process was done and the test files were manually generated using RISCV-CTG. The report generated seems to show same ratio of failures. This file is named as task2-ver2.html
  • report.html is updated with all the tests passed

lfx-riscv-isac-task's People

Contributors

edwin7026 avatar

Watchers

 avatar

lfx-riscv-isac-task's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.