ModelSim Altera: ¿simulando el módulo “lpm_add_sub”?

3

Estoy tratando de simular un módulo verilog que usa el módulo "lpm_add_sub" para proporcionar un sumador con un arrastre por separado (por alguna razón, Quartus II no reconoce ese a+b+c donde c es un solo bit se puede implementar en un solo sumador y sintetiza dos sumadores para ello). 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 la siguiente:

        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]));
    
pregunta Jules

1 respuesta

3

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

enlace

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

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

    
respondido por el Jules

Lea otras preguntas en las etiquetas