The BlackBox struct provides a way to wrap a blackbox, externally provided IP core.
The Wrapper struct provides a more convenient and flexible way to wrap external IP cores than BlackBox.
The Verilog type is used to represent the Verilog translation of a RustHDL kernel. You will only need it if implementing blackbox cores or wrapping external Verilog code.