cfelton / rhea

A collection of MyHDL cores and tools for complex digital circuit design
MIT License
84 stars 33 forks source link

NOTE the following is a work-in-progress (WIP) and has not reached a minor release point. If you happen to come across this public repository feel free to try it out and contribute. This repository will be unstable until the first minor release 0.1. This repository is a merge of the mn and gizflo projects.

Build Status Code Health Coverage Status Documentation Status Join the chat at https://gitter.im/cfelton/rhea

rhea

The rhea python package is a collection of HDL cores written in MyHDL. The rhea package also includes a small set of utilities to augment the myhdl types and functions as well as FPGA build automation tools.

the name

Pronounced ray (as in ray-gun), just a random name and not pronounced the same as the bird or moon.

dependencies

documenation and resources

If you are not familiar with myhdl starting with the myhdl manual and examples is recommended. General myhdl questions can be answered on the #myhdl IRC channel or on the myhdl mailing-list.
I am often available to answer rhea specific questions on the previously mentioned communications or the rhea gitter can be used.

general comments

IMPORTANT NOTE this repository is under development and is using features from a development version of MyHDL (1.0dev). If you wish to try out this package get the development myhdl (you will need to clone it and install the source). The first rhea release will not occur until myhdl 1.0 is released (probably much later).

Getting close to the fist minor release. The first minor release will contain a small collection of documented cores and frameworks (see below).

This code/package is licensed under the MIT license. This allows anyone to use the package in their projects with no limitations.
Questions and other license options email me.

The following are the definition of some terms used in this README :

getting started

To get started with the latest version (repo version) checkout out the code and run setup in develop mode. The dependencies listed above need to be installed.

Install the latest myhdl.

  >> git clone https://github.com/jandecaluwe/myhdl
  >> sudo python setup.py install
  >> cd ..

or

  >> pip install git+https://github.com/jandecaluwe/myhdl

After the dependencies have been installed clone this repository to get started.

  >> git clone https://github.com/cfelton/rhea
  >> cd rhea
  # requires setuptools
  >> sudo python setup.py develop

running tests

The tests can be run from the test directory.

  # attempt to run the tests
  >> cd test
  >> py.test

generating bitstreams

If FPGA vendor tools (Xilinx, Altera, Lattice, Yosys) are installed the build examples can be run to generate bitstreams.

  # try to compile one of the examples 
  # (requires FPGA tools installed)
  >> cd ../examples/build/
  >> python ex_xula.py

test

The test directory contains test for the different cores in the package.

Run the tests in the test directory:

>> cd test
>> py.test

Run the tests in the examples directory:

>> cd examples
>> py.test

examples

In the example directory are projects that demonstrate how to build systems using the cores and various tools and target a particular FPGA development board. The examples/build contains LED blinky examples for many different boards.

cores

The following is a list of cores being developed for the 0.1 release, an [x] indicates the core has been completed and verified on an FPGA development board.

* Complete but dysfunctional. These are old cores that were working on an FPGA, at one point in time, but have not been updated in ages.