Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A caravan equipped with API for creating bus protocols in Chisel with ease.

License

NotificationsYou must be signed in to change notification settings

merledu/caravan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Join the chat at https://gitter.im/merl-caravan/communityDocumentation StatusApache LicenseGitHub contributors

Caravan intends to be equipped with a fully fledged API for easily creating open source bus protocols in Chisel based designs

Motivation

There are fairly limited resources available for the Chisel developers to use pre-built opensource bus protocols. Even if they are present, they are tightly integrated inside a complex project or outdated or not properly managed in a single place. This project aims to be a one-stop platform for all Chisel based bus protocols that are supported to work on the FPGAs as well as on the ASIC flow.

Getting Started

It is highy recommended to follow the docs for installation guide and getting started. The documentation is up and running here:caravan.readthedocs.io

Current Status

A standard Wishbone Classic READ/WRITE is supported in Point-Point interconnection right now. More verification is needed to check the correct functionality of the IP according to theWisbone B4 Specification.

As a quick start, you can use the wishbone host and slave IP in the following manner inside any other parentModule with one restriction that the parent module must be passed an implicitWishboneConfig which paramterizes the host as well as the slave:

classParentModule(implicitvalconfig:WishboneConfig)extendsModule {valio=IO(newBundle{})valwbHost=Module(newWishboneHost())valwbSlave=Module(newWishboneDevice())// Single Point-to-Point interconnect  wbHost.io.wbMasterTransmitter<> wbSlave.io.wbMasterReceiver  wbSlave.io.wbSlaveTransmitter<> wbHost.io.wbSlaveReceiver}

Here is the waveform view of writing a data to a synchronous memory and then reading from the same address:

wb_read_write

To reproduce the above waveform in a VCD format follow thecaravan developer's guide

ToDo

  1. Test the standard READ/WRITE protocol from B4 Wishbone specification.
  2. Create a 1:N switch to enable multiple peripherals to be connected with the bus.

Get Involved

We would love to have you join the community and ask/engage/solve problems related to the project here:https://gitter.im/merl-caravan/community

Contribution

This platform can only be built by your efforts. Open issues and send PRs so that they can be merged and make Caravan awesome!


[8]ページ先頭

©2009-2025 Movatter.jp