Giter Site home page Giter Site logo

skid-buffer's Introduction

Verilog Skid Buffer

A skid buffer decouples the two sides of a valid/ready handshake so as to allow the control signals to be registered. When the down stream ready is deasserted while up stream data is incoming, the buffer will store the incoming up stream data so it can be released once the down ready is reasserted. This module is used to improve the timing of a design by registering all signals in a into and out of the buffer.

Modules

The skid_register.v module has been designed for easy integration and use with AXI buses or similar. Thus the behavior of the valid/ready bus conforms to AXI usage. Namely:

  • Both valid & ready must be asserted for a successful transfer
  • ready must only be deasserted directly after a successful transfer
  • valid must only be deasserted directly after a successful transfer
  • valid being asserted must not depend on ready also being asserted
  • data must be stable while valid is asserted

Additionally, a special case skid buffer named the skid_fallthrough.v module is also provided. It is used with a FIFO to approximate the behavior of a fall though FIFO while also registering the 'pop' signal before it's passed into the FIFO. This module is also used to improve timing of a design.

Formal Verification

Assertions are used to model the behavior of the modules for use in formal verification. To preform the verification proof the open source software SymbiYosys.

sby -f skid_register.sby
sby -f skid_fallthrough.sby

skid-buffer's People

Contributors

bmartini avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

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.