Release Notes¶
All releases are available from the GitHub Releases Page.
cocotb 1.3.1¶
Released on 15 March 2020
cocotb 1.3.0¶
Released on 08 January 2020
This will likely be the last release to support Python 2.7.
New features¶
Initial support for the Verilator simulator (version 4.020 and above). The integration of Verilator into cocotb is not yet as fast or as powerful as it is for other simulators. Please use the latest version of Verilator, and report bugs if you experience problems.
New makefile variables
COCOTB_HDL_TIMEUNIT
andCOCOTB_HDL_TIMEPRECISION
for setting the default time unit and precision that should be assumed for simulation when not specified by modules in the design. (#1113)New
timeout_time
andtimeout_unit
arguments tococotb.test()
, for adding test timeouts. (#1119)cocotb.triggers.with_timeout()
, for a shorthand for waiting for a trigger with a timeout. (#1119)The
expect_error
argument tococotb.test()
now accepts a specific exception type. (#1116)New environment variable
COCOTB_RESULTS_FILE
, to allow configuration of the xunit XML output filename. (#1053)A new
bus_separator
argument tococotb.drivers.BusDriver
. (#1160)A new
start_high
argument tococotb.clock.Clock.start()
. (#1036)A new
cocotb.__version__
constant, which contains the version number of the running cocotb. (#1196)
Notable changes and bug fixes¶
DeprecationWarning
s are now shown in the output by default.Tracebacks are now preserved correctly for exceptions in Python 2. The tracebacks in all Python versions are now a little shorter.
cocotb.external()
andcocotb.function()
now work more reliably and with fewer race conditions.A failing
assert
will be considered a test failure. Previously, it was considered a test error.drivers()
andloads()
now also work correctly in Python 3.7 onwards.cocotb.triggers.Timer
can now be used withdecimal.Decimal
instances, allowing constructs likeTimer(Decimal('1e-9'), units='sec')
as an alternate spelling forTimer(100, units='us')
. (#1114)Many (editorial) documentation improvements.
Deprecations¶
cocotb.result.raise_error
andcocotb.result.create_error
are deprecated in favor of using Python exceptions directly.TestError
can still be used if the same exception type is desired. (#1109)The
AvalonSTPktsWithChannel
type is deprecated. Use thereport_channel
argument toAvalonSTPkts
instead.The
colour
attribute of log objects likecocotb.log
orsome_coro.log
is deprecated. Usecocotb.utils.want_color_output()
instead. (#1231)
Other news¶
cocotb is now packaged for Fedora Linux and available as python-cocotb. (Fedora bug #1747574) (thanks Ben Rosser)
cocotb 1.2.0¶
Released on 24 July 2019
New features¶
cocotb is now built as Python package and installable through pip. (#517, #799, #800, #803, #805)
Support for
async
functions and generators was added (Python 3 only). Please have a look at Async functions for an example how to use this new feature.VHDL block statements can be traversed. (#850)
Support for Python 3.7 was added.
Notable changes and bug fixes¶
The heart of cocotb, its scheduler, is now even more robust. Many small bugs, inconsistencies and unreliable behavior have been ironed out.
Exceptions are now correctly propagated between coroutines, giving users the “natural” behavior they’d expect with exceptions. (#633)
The
setimmediatevalue()
function now works for values larger than 32 bit. (#768)The documentation was cleaned up, improved and extended in various places, making it more consistent and complete.
Tab completion in newer versions of IPython is fixed. (#825)
Python 2.6 is officially not supported any more. cocotb supports Python 2.7 and Python 3.5+.
The cocotb GitHub project moved from
potentialventures/cocotb
tococotb/cocotb
. Redirects for old URLs are in place.
Deprecations¶
The bits argument to
BinaryValue
, which is now called n_bits.The logger attribute of log objects like
cocotb.log
orsome_coro.log
, which is now just an alias forself
.The
cocotb.utils.get_python_integer_types
function, which was intended to be private.
Known issues¶
Depending on your simulation, cocotb 1.2 might be roughly 20 percent slower than cocotb 1.1. Much of the work in this release cycle went into fixing correctness bugs in the scheduler, sometimes at the cost of performance. We are continuing to investigate this in issue #961. Independent of the cocotb version, we recommend using the latest Python 3 version, which is shown to be significantly faster than previous Python 3 versions, and slightly faster than Python 2.7.
Please have a look at the issue tracker for more outstanding issues and contribution opportunities.
cocotb 1.1¶
Released on 24 January 2019.
This release is the result of four years of work with too many bug fixes, improvements and refactorings to name them all. Please have a look at the release announcement on the mailing list for further information.
cocotb 1.0¶
Released on 15 February 2015.
New features¶
FLI support for ModelSim
Mixed Language, Verilog and VHDL
Windows
300% performance improvement with VHPI interface
WaveDrom support for wave diagrams.
cocotb 0.4¶
Released on 25 February 2014.
New features¶
Issue #101: Implement Lock primitive to support mutex
Issue #105: Compatibility with Aldec Riviera-Pro
Issue #109: Combine multiple
results.xml
into a single results fileIssue #111: XGMII drivers and monitors added
Issue #113: Add operators to
BinaryValue
classIssue #116: Native VHDL support by implementing VHPI layer
Issue #117: Added AXI4-Lite Master BFM
Bugs fixed¶
cocotb 0.2¶
Released on 19 July 2013.
New features¶
Release 0.2 supports more simulators and increases robustness over 0.1.
A centralized installation is now supported (see documentation) with supporting libraries build when the simulation is run for the first time.
cocotb 0.1¶
Released on 9 July 2013.
The first release of cocotb.
Allows installation and running against Icarus, VCS, Aldec simulators.