Principles
There are few principles Bitsy adheres to in its general design.
Craftsmanship
Tools reflect the values of those who weild them. Bitsy was designed with the digital designer and the verification engineer in mind. Attention has been paid to every detail. And as a result, Bitsy is a pleasure to work with.
Simplicity
Bitsy is simple and easy to learn. It has a clean syntax and excellent developer tooling.
Strongly Typed
Mistakes in hardware can be expensive. While Bitsy is primarily aimed at hobbyist FPGA designs, it still detracts from the experience whenever a preventable error occurs.
Bitsy’s strong type systems is designed so that if your circuit synthesizes, it works.
The expression sublanguage is a total language:
Operations must always be totally defined.
All conditional expressions are required to have full case coverage.
Indexing into a
Vec<T, n>
must be guaranteed to be in bounds.You are prohibited from observing the unset bits in a value.
Bitsy’s equivalent of Verilog’s
X
values are handled in a principled way.
Bitsy also avoids many of the pitfalls of working in Verilog:
No components may be left uninitialized.
All nets must have a single driver.
Unsynchronized clock domain crossings are illegal.
Digital
Bitsy is oriented towards digital circuits. Every module with a register operates on an implicit clock and reset domain.
Synthesizable
Bitsy has a clear delineation in terms of what is synthesizable and what is not. The translation to actual hardware is always reasonable.
Fun
Bitsy is a fun language to write in. Otherwise, what’s the point?