GithubHelp home page GithubHelp logo

amamory-verification / hw-formal-verif Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 3.0 3.83 MB

Hardware Formal Verification

License: MIT License

Forth 0.11% VHDL 9.10% SystemVerilog 0.41% Stata 0.24% Tcl 3.93% Verilog 86.01% Shell 0.19%
formal-verification fault-simulation model-checking equivalence-checker jasper-gold vhdl systemverilog

hw-formal-verif's Introduction

Formal Hardware Verification

This repository containts the assignements for the course Functional Verification on Digital Systems II, from the Graduate Program of Computer Science at PUCRS University.

These assignments are divided in three levels:

  • Tutorial level: which is a step-by-step tutorial to help the students to know the tools and their setup. See the directory xtea-cripto-core for more.
  • Entry Level: correspond to very basic designs, suggested as an initial steps for the students to build their own FV environments. See the vending-machine and formal-verif-book dircs for more.
  • Master Level: correspond to the main assignment of the semester, which is more challenging. It is a Hemes router for networks-on-chip. See the noc-router dir for more.

For more information, refer to the Moodle webpage.

hw-formal-verif's People

Contributors

amamory avatar leorezende93 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hw-formal-verif's Issues

Coin counter resets on overflow

V4:

When adding a coin with the coin counter at max (=0x1F), the coin counter resets, as shown in the attached picture.

image

Possible solution: returning the newly inserted coin

  1. switch no a special state
    ...
    elsif m100 = '1' then
    if count < MAX_COUNT then pe <= soma;
    else pe <= devolve2;
    end if; else ...`

  2. update D100 to reflect the special case
    d100 <= '1' when (ea = devolve or ea = devolve2) else '0';

  3. add the new state to the state enumeration
    type state is (action, soma, sgreen, satum, sbacon, nulo, devolve, devolve2);

  4. create a new constant (for the sake of readability)
    constant MAX_COUNT : integer := 2**(count'length)-1;

     		else
    

Wrong state transition when requesting multiple sandwiches.

Machine V4:

According to the specification, the machine should go to an error state when requesting multiple sandwiches at the same time. However, such constraint is violated when a coin is inserted along with requesting two sandwiches, as seen in the attached picture.

image

Possible solution: rearrange the following code to test error cases before accepting a coin.

if m100 = '1' then
pe <= soma;
elsif dev = '1' or (r_bacon = '1' and r_atum = '1') or (r_bacon = '1' and r_green = '1') or (r_atum = '1' and r_green = '1') then
pe <= nulo;
...

When it could be...

if dev = '1' or (r_bacon = '1' and r_atum = '1') or (r_bacon = '1' and r_green = '1') or (r_atum = '1' and r_green = '1') then
pe <= nulo;
elsif m100 = '1' then
pe <= soma;
...

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.