Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
7 years ago

ALTACCUMULATE not working in Quartus 17.1

I am migrating from Quartus 13.1 on a 32 bit Windows 7 to 17.1 on 64 bit Windows 10.

My 1000 lines of AHDL code involving LVDS at 960MHz with a Nios II processor and tons of altera megafunctions have done well and I should thank Intel for the continued support for AHDL. I am continuing to use AHDL in my new design with Cyclone 10.

Well all work fine except ALTACCUMULATE.

This is a pretty simple block.

INCLUDE "Altaccumulate";

acc : ALTACCUMULATE WITH (WIDTH_IN = 16, WIDTH_OUT = 18, LPM_REPRESENTATION = "UNSIGNED");

The outputs are always stuck to Gnd.

Any help making this megafunction continue to work is future editions is appreciated.

Ravi

1 Reply

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    ALTACCUMULATE is working fine. Actually it was some timing issue writing to a TRI_STATE_BUS which feeds internal logic. Strangely this behavior occurs for loop lengths of greater than 10.

    When I added the nop below everything became alright!

    psrc = (PUSHORT)(DPR_BASE);

    pdest = (PUSHORT)(AHDL_IFACE_BASE);

    for (i=0; i<15; i++)

    {

    *pdest++ = *psrc++;

    asm("nop");

    }

    These pointers are always more elegant than the macros:

    IOWR_16DIRECT(DPR_BASE, offset, val)

    IORD_16DIRECT(DPR_BASE, offset)

    Regards,

    Ravi