Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20730 Discussions

ALTACCUMULATE not working in Quartus 17.1

Altera_Forum
Honored Contributor II
924 Views

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
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
214 Views

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
0 Kudos
Reply