Silice is an easy-to-learn, powerful hardware description language, that allows both to prototype ideas quickly and then refine designs to be compact and efficient. Silice achieves this by offering a few, carefully designed high level design primitives atop a low level description language. In particular, Silice allows to write and combine algorithms, pipelines and per-cycle logic in a coherent, unified way. It features a powerful instantiation-time pre-processor, making it easy to describe parametric designs. Silice offers a ready-to-go design environment, supporting many FPGA boards, both open-source and proprietary. It natively supports simulation and formal verification. Silice syntax is simple, explicit and easy to read, and should feel familiar to C programmers and Verilog designers alike. Silice comes with a ton of examples. The build system already supports many popular boards such as the IceBreaker, de10-nano, ULX3S, Fomu and IceStick. Silice works great with the open-source FPGA toolchain (yosys/nextpnr/icestorm), see our Ice40 and ECP5 examples. You do not need an FPGA to start with Silice: designs and their outputs (e.g. VGA signals) can be simulated and visualized.