Add firrtl backend support for generic parameters in blackbox components
Add firrtl backend support for generic parameters in blackbox components

Previous blackbox components were just emitted with their interface ports,
but their generic parameters were never emitted and it was therefore
impossible to customize them.

This commit adds support for blackbox generic parameters, though support
is only provided for INTEGER and STRING parameters. Other types of
parameters such as DOUBLEs, ..., would result in undefined behavior here.

This allows the emission of custom extmodule instances such as the following:

extmodule fourteennm_lcell_comb_<instName>:
  input cin: UInt<1>
  output combout: UInt<1>
  output cout: UInt<1>
  input dataa: UInt<1>
  input datab: UInt<1>
  input datac: UInt<1>
  input datad: UInt<1>
  input datae: UInt<1>
  input dataf: UInt<1>
  input datag: UInt<1>
  input datah: UInt<1>
  input sharein: UInt<1>
  output shareout: UInt<1>
  output sumout: UInt<1>
  defname = fourteennm_lcell_comb
  parameter extended_lut = "off"
  parameter lut_mask = "b0001001000010010000100100001001000010010000100100001001000010010"
  parameter shared_arith = "off"

cliffordwolf/yosys,YosysHQ/yosys,cliffordwolf/yosys,antmicro/yosys,YosysHQ/yosys,YosysHQ/yosys,YosysHQ/yosys,cliffordwolf/yosys,YosysHQ/yosys,cliffordwolf/yosys,antmicro/yosys,cliffordwolf/yosys,antmicro/yosys,cliffordwolf/yosys,YosysHQ/yosys,cliffordwolf/yosys,YosysHQ/yosys,antmicro/yosys,YosysHQ/yosys,antmicro/yosys,antmicro/yosys,antmicro/yosys,antmicro/yosys,cliffordwolf/yosys,cliffordwolf/yosys