Mantle
Mantle can be configured to synthesize low-level primitives
for a particular FPGA.
For example, to use mantle with the Lattice ice40,
set the Mantle target
import magma
magma.set_mantle_target('ice40')
The default target is to generate coreir.
Combinational Logic
Sequential Logic
Memory
Primitives
Mantle Operators and Overloading
Mantle provides a set of common operators similar to Python's built-in
operator library. Mantle uses these to overload the operators of various
magma types. The implementation lives in mantle/common/operator.py. Similar
to Python's built-in operator library, users can import
mantle.common.operator to access functions like add. These are defined
generically over the Mantle primitives, so they can be used with any backend.
Logical Operators
These operators are defined on the magma types: Bit and Bits. In this list
we provide the function name, followed by the overloaded operator (None if an
overloaded operator does not exist).
* and_, &
* nand, None
* or, ^
* nor, None
* xor, ^
* nxor, None
* lsl, <<
* lsr, >>
* asr, None
* not, None
* invert, ~
* eq
Arithmetic Operators
negate,-add,+sub,-mul(NYI)div(NYI)
Comparison Operators
lt,<le,<=gt,>ge,>=
Other
mux,None