Take a look at hcl.scala (
https://github.com/ucb-bar/chisel/blob/master/src/main/scala/hcl.scala). For a blackbox you can establish parameters with the VerilogParameters class and then apply the parameters to the blackbox with setVerilogParameters. There's a short example in hcl.scala of how to do this.
Note, you can alternatively do this directly with setVerilogParameters, but that is really just a way to append a string after the Verilog module name. A short example of the latter is below from a generic SRAM module that I use:
class SRAM (
val dataWidth: Int = 8,
val sramDepth: Int = 64
) extends BlackBox {
setVerilogParameters(
"#(.WIDTH(" + dataWidth + ")," +
".DEPTH(" + sramDepth + ")," +
".LG_DEPTH(" + log2Up(sramDepth) + "))\n ")
setName("sram")
// ...
}