ModelSim Altera: ¿simulando el módulo "lpm_add_sub"?

Estoy tratando de simular un módulo verilog que usa el módulo "lpm_add_sub" para proporcionar un sumador con un acarreo separado (por alguna razón, Quartus II no reconoce que se puede a+b+cimplementar cun solo bit en un solo sumador y sintetiza dos sumadores para él). Sin embargo, cuando intento iniciar la simulación en ModelSim, recibo los siguientes mensajes:

vsim -L altera_ver -L altera_mf_ver -L cycloneiv_ver -L cycloneive_ver -L lpm_ver -voptargs=+acc work.rotation_sensor
# vsim -L altera_ver -L altera_mf_ver -L cycloneiv_ver -L cycloneive_ver -L lpm_ver -voptargs=+acc work.rotation_sensor 
# Loading work.rotation_sensor
# Loading work.bitcounter
# Loading lpm_ver.lpm_add_sub
# ** Error: (vsim-3584) C:/Development/ican/IcanFinal2/rotation_sensor.v(119): Module parameter 'LPM_DIRECTION' not found for override.
# 
#         Region: /rotation_sensor/bitcounter/genblk1
# ** Error: (vsim-3584) C:/Development/ican/IcanFinal2/rotation_sensor.v(119): Module parameter 'LPM_REPRESENTATION' not found for override.
# 
#         Region: /rotation_sensor/bitcounter/genblk1
# ** Error: (vsim-3584) C:/Development/ican/IcanFinal2/rotation_sensor.v(119): Module parameter 'LPM_WIDTH' not found for override.
# 
#         Region: /rotation_sensor/bitcounter/genblk1
# Error loading design

¿Alguna idea de lo que estoy haciendo mal? La línea de código que causa el error es esta:

        lpm_add_sub #(.LPM_DIRECTION("ADD"), .LPM_WIDTH(SUBRESULTSIZE), .LPM_REPRESENTATION("UNSIGNED")) a (
            .dataa(tophalf_count),
            .datab(bottomhalf_count),
            .cin(bits[INPUTWIDTH-1]),
            .result(add_out[SUBRESULTSIZE-1:0]),
            .cout(add_out[SUBRESULTSIZE]));

Respuestas (1)

De acuerdo con la base de conocimiento de Altera, es un error en su biblioteca de simulación, que tiene los nombres de los parámetros definidos incorrectamente solo en minúsculas (aparentemente, debería poder aceptar cualquiera).

http://www.altera.co.uk/support/kdb/solutions/rd04192000_5867.html

La búsqueda directa del mensaje de error no apareció porque el texto del mensaje de error parece haber cambiado desde que agregaron la descripción del problema a su base de conocimiento.

Afortunadamente, para la síntesis se aceptan los nombres en minúsculas al igual que los en mayúsculas (tal como se usan en la documentación).