2003-05-13 00:14:37 +00:00
|
|
|
MyHDL Release 0.2
|
2003-01-30 17:30:38 +00:00
|
|
|
=================
|
|
|
|
|
|
|
|
INTRODUCTION
|
|
|
|
------------
|
|
|
|
|
2003-02-14 11:42:55 +00:00
|
|
|
MyHDL is a Python package for using Python as a hardware description
|
2003-01-30 22:36:49 +00:00
|
|
|
language. Popular hardware description languages, like Verilog and
|
2003-02-19 15:36:45 +00:00
|
|
|
VHDL, are compiled languages. MyHDL with Python can be viewed as a
|
2003-02-14 11:42:55 +00:00
|
|
|
"scripting language" counterpart of such languages. However, Python is
|
2003-05-13 08:03:51 +00:00
|
|
|
more accurately described as a very high level language
|
|
|
|
(VHLL). MyHDL users have access to the amazing power and elegance of
|
|
|
|
Python for their modeling work.
|
2003-01-30 22:36:49 +00:00
|
|
|
|
2003-02-14 11:42:55 +00:00
|
|
|
The key idea behind MyHDL is to use Python generators to model the
|
2003-01-30 22:36:49 +00:00
|
|
|
concurrency required in hardware descriptions. As generators are a
|
2003-02-19 15:36:45 +00:00
|
|
|
recent Python feature, MyHDL requires Python 2.2.2 or higher.
|
2003-02-14 11:42:55 +00:00
|
|
|
|
2003-05-13 08:03:51 +00:00
|
|
|
MyHDL can be used to experiment with high level modeling, and with
|
|
|
|
verification techniques such as unit testing. The most important
|
|
|
|
practical applicaton however, is to use it as a hardware verification
|
|
|
|
language by cosimulation with Verilog and VHDL.
|
|
|
|
|
|
|
|
The present release, MyHDL 0.2, enables MyHDL for
|
|
|
|
cosimulation. The MyHDL side is designed to work with any simulator
|
|
|
|
that has a PLI. For each simulator, an appropriate PLI module in C
|
|
|
|
needs to be provided. The release contains such a module for the
|
|
|
|
Icarus Verilog simulator.
|
2003-02-14 11:42:55 +00:00
|
|
|
|
2003-01-30 22:36:49 +00:00
|
|
|
|
2003-01-30 17:30:38 +00:00
|
|
|
INSTALLATION
|
|
|
|
------------
|
|
|
|
|
2003-02-14 11:42:55 +00:00
|
|
|
If you have superuser power, you can install MyHDL as follows:
|
2003-01-30 22:36:49 +00:00
|
|
|
|
|
|
|
python setup.py install
|
|
|
|
|
|
|
|
This will install the package in the appropriate site-wide Python
|
|
|
|
package location.
|
|
|
|
|
|
|
|
Otherwise, you can install it in a personal directory, e.g. as
|
|
|
|
follows:
|
|
|
|
|
|
|
|
python setup.py install --home=$HOME
|
|
|
|
|
|
|
|
In this case, be sure to add the appropriate install dir to the
|
|
|
|
$PYTHONPATH.
|
|
|
|
|
|
|
|
If necessary, consult the distutils documentation in the standard
|
|
|
|
Python library if necessary for more details; or contact me.
|
|
|
|
|
|
|
|
You can test the installation as follows:
|
2003-03-06 22:16:03 +00:00
|
|
|
|
|
|
|
cd test
|
2003-01-30 22:36:49 +00:00
|
|
|
python test.py
|
|
|
|
|
2003-05-14 09:12:21 +00:00
|
|
|
To install cosimulation support:
|
|
|
|
|
|
|
|
Go to the directory cosimulation/<platform> for your target platform
|
|
|
|
and following the instructions in the README.txt file. Currently, the
|
|
|
|
only supported platfrom is Icarus.
|
|
|
|
|
2003-05-13 08:03:51 +00:00
|
|
|
|
2003-01-30 17:30:38 +00:00
|
|
|
DOCUMENTATION
|
|
|
|
-------------
|
|
|
|
|
2003-01-30 22:36:49 +00:00
|
|
|
See the doc/ subdirectory.
|
|
|
|
|
2003-05-13 08:03:51 +00:00
|
|
|
|
2003-01-30 17:30:38 +00:00
|
|
|
EXAMPLES
|
|
|
|
--------
|
2003-01-30 22:36:49 +00:00
|
|
|
|
|
|
|
See the example/ subdirectory for examples.
|
|
|
|
|
2003-05-13 08:03:51 +00:00
|
|
|
|
2003-01-30 22:36:49 +00:00
|
|
|
AUTHOR
|
|
|
|
------
|
|
|
|
Jan Decaluwe <jan@jandecaluwe.com>
|