在编译我的VHDL VGA-Project时,请给我以下答复:
[Error-Message while compiling PRoject][1]在报告中,我可以找到以下信息:
问题详细信息错误:
*** Fatal Error: Stack Overflow
Module: quartus_map.exe
Stack 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 same
End-trace
Executable: quartus_map
Comment:
None
System Information
Platform: windows64
OS name: Windows 7
OS version: 6.2
Quartus II Information
Address bits: 64
Version: 14.1.0
Build: 186
Edition: Web Edition从互联网到这个问题的信息是罕见的。
我想的理由是,我打算用FPGA在VGA上绘制文本,用字符形状的信息绘制长数组。每个字符(约100)包含一个带有加法运算符的80x22d数组,例如:
when '0' => temp := ((4 + X, 4 + Y), (4 + X, 5 + Y), (4 + X, 6 + Y), (4 + X, 7 + Y), (4 + X, 8 + Y), (5 + X, 3 + Y)....
当我试图在屏幕上显示两行文本(大约80个字符)时,所有内容都可以正常工作,但它也给了我一个警告:
组合逻辑的深度超过6000,这可能导致堆栈溢出.。
编译器崩溃超过2行,并给出错误报告.
也许一种解决方案是将位置数组写得更短,但如何编写呢?有人有想法吗?
你好马丁。
发布于 2017-11-26 14:01:32
您只是生成了太多的组合存储。这里有两个问题:
这里的洞察力(或人为施加的约束)是,您绘制的每一个"A“看起来都是相同的;因此,您可以重用绘制它所需的顶点。
type CHAR_SET is ('A','B','C','1','2','3');
-- you may find a suitable character set like ASCII or LATIN-1 already declared in library STANDARD
type ARRAY_CHAR is array (67 downto 0, 1 downto 0) of integer;
--defines how to draw a single character, relative to its own origin
type ARRAY_CHAR_SET is array (CHAR_SET) of ARRAY_CHAR;
--Character Generator, defines how to draw every character
constant CHARACTER_SET : ARRAY_CHAR_SET := ( ...);
-- or signal ... more than one CHARACTER_SET would allow more fonts
type ARRAY_TEXT is array (natural range <>) of CHAR_SET;
-- for each position on screen, defines which character to draw. For a character set with less than 256 chars, this needs only one byte per character.
function DRAW_CHAR (location) return ARRAY_CHAR is
variable Char : CHAR_SET;
begin
-- lookup which char to draw
Char := ARRAY_TEXT(location);
-- offset its origin to the on-screen location
return OFFSET_ORIGIN(location, CHARACTER_SET(Char));
end DRAW;https://stackoverflow.com/questions/47466953
复制相似问题