- Notifications
You must be signed in to change notification settings - Fork11
A caravan equipped with API for creating bus protocols in Chisel with ease.
License
merledu/caravan
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Caravan intends to be equipped with a fully fledged API for easily creating open source bus protocols in Chisel based designs
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.
It is highy recommended to follow the docs for installation guide and getting started. The documentation is up and running here:caravan.readthedocs.io
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:
To reproduce the above waveform in a VCD format follow thecaravan developer's guide
- Test the standard READ/WRITE protocol from B4 Wishbone specification.
- Create a 1:N switch to enable multiple peripherals to be connected with the bus.
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
This platform can only be built by your efforts. Open issues and send PRs so that they can be merged and make Caravan awesome!
About
A caravan equipped with API for creating bus protocols in Chisel with ease.