GithubHelp home page GithubHelp logo

wbspi's Introduction

(Wishbone accessible) SPI Cores

This repository will eventually contain some SPI cores with a Wishbone interface.

For now, it only contains a SPI slave with a raw interface. This slave core will send signals, o_frame at the end of a SPI transaction, o_rd when the core wishes to read a byte from the local interface that will then be sent over MISO, and o_wr when it wishes to write a byte to the local interface once it has been read from the MOSI channel. The first byte sent over MISO is always undefined.

This core was really designed to be high speed. By that I mean that the slave can handle any SPI clock relationship to the system clock up to just less than 33% faster than the system clock. A sad consequence of this is that it might be difficult to reply to an incoming data request without losing an additional 8-bits of MISO. So ... make certain this works in your environment before and if you should try to use it.

Feel free to read more information about this core in the documentation of the core itself.

License

The core as written is licensed under GPL. Feel free to contact me if this license is not sufficient for your needs and we can discuss other options.

wbspi's People

Contributors

zipcpu avatar

Stargazers

 avatar  avatar Yusuf Coşgun avatar Hicret avatar  avatar Masanori Ogino avatar  avatar Timothy avatar Phil Tracton avatar  avatar Kele avatar Slavkin Oleg avatar Rangel Ivanov avatar

Watchers

James Cloos avatar  avatar

wbspi's Issues

Verilator is unhappy in `ADR_CKCOUNT` case

❯ verilator --lint-only wbspi.v
%Warning-WIDTHTRUNC: wbspi.v:282:33: Operator ASSIGNDLY expects 11 bits on the Assign RHS, but Assign RHS's VARREF 'ckcount' generates 12 bits.
                                   : ... note: In instance 'wbspi'
  282 |   ADR_CKCOUNT:  o_wb_data[11:1] <= ckcount;
      |                                 ^~
                     ... For warning description see https://verilator.org/warn/WIDTHTRUNC?v=5.024
                     ... Use "/* verilator lint_off WIDTHTRUNC */" and lint_on around source to disable this message.
%Error: Exiting due to 1 warning(s)

spicpu.v, 234 line
the width of ckcount is 12 bits.

spicpu.v, 282 line
only 11 bits are being assigned.

The suggestion:

-		ADR_CKCOUNT:  o_wb_data[11:1] <= ckcount;
+		ADR_CKCOUNT:  o_wb_data[12:1] <= ckcount;

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.