v0.6.0
Torii can be installed from the wheel attached or from PyPi
Added
- Rough initial type annotations to
torii.hdl.mem
- Added the ability to specify
tar
for thetorii.build.run.BuildPlan.archive
call. - Added check inside
Record
s to ensure they're properly constructed prior to accessing their fields. - Added the ability to override a Value's operators.
- Added the ability to put non-signals into
write_vcd
'straces
parameter. - Added name disambiguation for traced signals where they share the same name.
- Added
ValueLike
andShapeLike
, mainly for additional typing and instance checking assistance. - Added the ability for
Cat
andSlice
, statements to be cast as aConst
value. - Added
#!/bin/sh
to the top of build shell scripts. - Added
BuildPlan.extract
to extract files from the build plan without having to run it, this replaces the functionality that occurred whenBuildPlan.execute_local
was passed withrun_script = False
. - Added
BuildPlan.execute_docker
to allow for invoking a build inside a specified docker container. - Added
log2_ceil
andlog2_exact
to replacelog2_int
with theFalse
andTrue
params respectively. ShapeCastable
objects can now be const initialized.
Changed
- Improved Oscillator frequency diagnostics for
torii.vendor.GowinPlatform
. - Fixed
torii.lib.fifo
FIFOs to use the new memory semantics correctly. torii.lib.soc.csr
Multiplexer shadow registers have been re-designed.- Bumped minimum Python version from 3.9 to 3.10.
- Renamed
IntelPlatform
toAlteraPlatform
. - FWFT mode is default for all FIFOs now.
- Bumped the minimum version of Yosys to 0.30.
- Empty
Case
blocks now throw an exception when being used in place of aDefault
block - Behavioral change warning in empty
Value.matches()
where currently it returnsConst(1)
but will returnConst(0)
in the future. - We now only close a VCD or GTKW file in the simulator if it was opened by the simulator.
- Build shell scripts will now be marked as executable on unix-like hosts.
Instance
objects know collect source location information.- Memories have been turned into a first-class IR representation.
- Out-of-range rests now error, not just warn.
- A warning is now generated when a
Case()
falls after aDefault()
, and an error is raised when there are multipleDefault()
's in aSwitch
- Shape casting a
range(1)
now resolves to anunsigned(0)
Deprecated
- Deprecated
torii.vendor.intel
andtorii.vendor.intel.IntelPlatform
in favor oftorii.vendor.altera
andtorii.vendor.altera.AlteraPlatform
. - Deprecated
execute_local()
'srun_script
param in favor ofextract
- Deprecated use of
log2_int
in favor oflog2_ceil
andlog2_exact
where appropriate.
Removed
- Removed deprecated
torii.platform.vendor.lattice_*
modules. - Removed deprecated
Repl
call in favor ofValue.replicate
. - Removed
set -x
if theverbose
param is set for platform builds. - Removed the last little bit of
$verilog_initial_trigger
traces. - Removed sub-classing of
AnyValue
andProperty
Fixed
- Fixed
ToriiTestCase.settle
to handle "0" count settles. - Fixed
torii.hdl.dsl.Module
's constructor to properly usesuper()
rather than a parent class name call. - Load of typing annotation fixes.
- Cleaned up a load of blank
asserts
, they should now have more clear error diagnostics. - Fixed a handful of typos throughout the library and documentation.
- Fixed tracer calls for Python 3.13
- Fixed
Array
not being indexable by aValueCastable
. - Fixed
ValueCastable
not being accepted as a simulation coroutine command. - Fixed handling of redundant
Case
branches. - Fixed
Value.shift_right
andValue.as_signed
edge cases. - Fixed using 0-width
Switch
's with integer keys. - Trying to use the Python
in
operator on aValue
now raises a sensible error. - When indexing or slicing a Value with another Value, it now raises an error and suggests to use
Value.bit_select
orValue.word_select
instead. - Fixed simulation look when process catches an injected exception.