Tienes mal el pedido. Cuando se utiliza la asignación de valor de parámetro de instancia de módulo (la terminología más bien prolija para este método), la sintaxis es:
module-name #(parameter-assignment) instance-name (module-terminal-list) ;
donde la asignación de parámetros puede ser por nombre o por el orden de los valores. Ya está familiarizado con la lista de terminales del módulo, así que le daré el parámetro BNF:
parameter-assignment ::= (values-by-name / values-by-order)
values-by-name ::= .parameter-name(parameter-value)*[, parameter-name(parameter-value)]
values-by-order ::= parameter-value*[, parameter-value]
Entonces tu ejemplo debería ser uno de los siguientes:
add #(.wd(8)) len_plus_1(.a(len),.b(8'h1),.o(lenPlus1));
add #(8) len_plus_1(.a(len),.b(8'h1),.o(lenPlus1));
Se prefiere la versión anterior (con nombre), porque mantiene su comportamiento si agrega otro parámetro.
El siguiente ejemplo ofrece opciones adicionales (esto se adapta de la Figura 9-4 en Verilog HDL: una guía para Diseño digital y síntesis por Palnitkar )
module bus_master;
// Note: These could also be ANSI C-style parameter declarations with
// module bus_master (#parameter delay1 = 2, delay2 = 3, delay3 = 7);
parameter delay1 = 2;
parameter delay2 = 3;
parameter delay3 = 7;
...
<module internals>
...
endmodule
module top;
// Assignment by name:
bus_master #(.delay2(4), delay3(8)) b1();
//delay1 = 2 (default), delay2 = 4, delay3 = 8
bus_master #(.delay1(1), delay3(6)) b2();
//delay1 = 1, delay2 = 3 (default), delay3 = 6
// Assignment by order:
bus_master #(7, 8, 9) b3();
//delay1 = 7, delay2 = 8, delay3 = 9
bus_master #(1, 3, 5) b4();
//delay1 = 1, delay2 = 3 (default, but by assignment), delay3 = 5
bus_master #(1, 5) b5();
//delay1 = 1, delay2 = 5, delay3 = 7 (default)
endmodule
También hay otro método que utiliza la palabra clave defparam
para definir los valores antes de la creación de instancias como esta:
module top;
defparam b6.delay1 = 1;
bus_master b6();
//delay1 = 1, delay2 = 3 (default), delay3 = 7 (default)
endmodule;
pero eso se considera un estilo pobre (aunque personalmente, lo prefiero a la sintaxis de valores por orden).