NOTE: Major refactor in progress, see Travis for up to date information on this
Read the documentation before contributing, or for further details about the project.
See the issues for potential contributions to be made. For first time contributors, there may be issues with the 'good first issue' label to indicate these are more approachable.
If you want to report a bug, please see the bug reporting section.
For a quick start go to Running a Simulation.
This project is a VHDL simulator, whose initial aim is to implement the entirety of the 1076-1987 VHDL specification. Currently a subset of the language has been implemented, see the documentation for details on features. Issues may have more up to date progress on feature implementation.
The only tool required to use this software is Stack. This tool will install all dependencies as required when building the tool.
To get stack
, simply run the command:
sudo apt-get install haskell-stack
Installing and using the tool is done through the stack
tool.
stack build
stack test
stack haddock
stack exec asv
stack build
<work-dir>
)
name
should be in file <work-dir>/NAME.vhd
<ieee-dir
>)
stack exec asv -- --top <top-file> --build-dir <build-dir> --work-dir <work-dir> --ieee-dir <ieee-dir>
<top-file>
: Name of top level entity/architecture to compile (case insensitive)<work-dir>
, <ieee-dir>
: As specified earlier<build-dir>
: Directory to place simulation files (directory should already exist and preferably be empty)<build-dir>
stack build
stack exec VHDL-Sim-exe -- --max-time <max-time>
<max-time>
: Maximum time to run the simulation, format [0-9]+(fs|ps|ns|us|ms|sec|hr)
Documentation here
Most VHDL simulators are closed source products, this project aims to provide an open source tool that anyone can use.
This was largely inspired by GHDL, another open source simulator. GHDL implements a large portion of the VHDL specification however it is written mostly in Ada, an old and not widely used language which could discourage contributors. An aim of this project is provide code that can be understood and modified easily.
To report a bug, please use the issues section of this repository. The following information is useful for replicating the bug, in order to test it:
Currently the GPLv3 license applies to this project.