11-26-2017 10:56 AM
Hello community,I try to text information to VGA to display it on screen. Everything works fine. I convert characters of a font to 2D integer position xy-array and read it out in a loop to make this pixels black, if they are equal with horizontal and vertical counter from VGA Synchronisation. But if a increase the amount of text to display from 2 lines (about 80 characters) to 3 lines (about 120 characters) I get the following error message while compiling (don't rise over 10%):
*** Fatal Error: Stack Overflow Module: quartus_map.exeStack Trace:0xc9dbb: vrfx_add_to_extractor_migration_report +0x1e00b (synth_vrfx)0xca52a: vrfx_add_to_extractor_migration_report +0x1e77a (synth_vrfx)0xca52a: vrfx_add_to_extractor_migration_report +0x1e77a (synth_vrfx)....100 times the sameEnd-traceExecutable: quartus_mapComment:NoneSystem InformationPlatform: windows64OS name: Windows 7OS version:6.2Quartus II InformationAddress bits:64Version:14.1.0Build:186Edition: Web EditionI don't understand why, in my view, such a small difference provocate the error. At the border from fail and not fail, Quartus give me the feedback:
Warning (11085): Combinational logic depth is over 6000, which may cause stack overflow. The synthesis may fail.If I increase the array size now per one, the error will come. My array which is the reason for the error looks like:
signal STR_TEXT : ARRAY_TEXT(2 downto 0); --TEXT INITALISIERUNGand it contain the following definition:
type ARRAY_LINE is array (CHAR_COLS downto 0) of character; --LINE ARRAY type ARRAY_TEXT is array (natural range <>) of ARRAY_LINE; --TEXT ARRAYso ARRAY_TEXT is an array of ARRAY_LINE which contain a array of characters. And at the end the inisalisation of TEXT_ARRAY looks like:
STR_TEXT(0) <= DRAW_LINE("......VHDL VGA TEXT", '.'); STR_TEXT(1) <= DRAW_LINE("......SELFCREATED BY", '.'); STR_TEXT(2) <= DRAW_LINE("......TOOL FROM FONT", '.'); --WILL WORK STR_TEXT(3) <= DRAW_LINE("......TO PIXEL POSITION", '.'); --WILL FAILFunction DRAW_LINE only fill up the character array with '.' until the screen end.
--DRAW LINE FUNCTION function DRAW_LINE(Word: string; Fill: character) return ARRAY_LINE is variable temp : ARRAY_LINE; begin --LOOP CHARS IN LINE for c in ARRAY_LINE'range loop if(Word'length > c) then temp(c) := Word(c+1); else temp(c) := Fill; end if; end loop; return temp; end function;The 2D Array for the char 'a' looks like this:
when 'a' => temp := ((6, 2), (6, 3), (6, 4), (6, 5), (7, 2), (7, 3), (7, 5), (7, 6), (8, 2), (8, 3), (8, 4), (8, 5), (8, 6), (9, 1), (9, 2), (9, 5), (9, 6), (10, 1), (10, 2), (10, 3), (10, 4), (10, 5), (10, 6), (10, 7), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0));I understand that there are a lot of information in one array. Maybe I need RAM stuff the store it correctly but I don't know how. So anyone know how I can solve this issue?
11-27-2017 03:59 AM
Hi1.Which Quartus version your are using?Try with latest Quartus version. 2.To work around this problem, reduce the number of consecutive LUTs between registers. Alternatively try a different operating system as the maximum stack size is defined by the operating system. Best Regards, Anand Raj Shankar (This message was posted on behalf of Intel Corporation)
11-27-2017 06:41 AM
Hello Anand,thank you for your response. I use Version:14.1.0 Build:186 Edition: Web Edition the problem I have is that newer versions do not support Cyclone IV E (EP4CE115F29C7) Boards. I there a way to use newer versions with older boards? To your second point, how could I realize that? Greetings Martin.
11-27-2017 08:38 AM
Hi Martin,1.If you can't find the board in newer Quartus version,You should add it from design store check the image. 2.Due to a problem in the Quartus II software version 14 and earlier, you may see this error when you compile a design containing a long series of LUTs with no registers. Or Increase the stack size of OS. Best Regards, Anand Raj Shankar (This message was posted on behalf of Intel Corporation) https://www.alteraforum.com/forum/attachment.php?attachmentid=14474