Answers Database
Amount of memory that is required by XACT/XDE 5.2.1
Record #1138
Product Family: Software
Product Line: FPGA Core
Problem Title:
Amount of memory that is required by XACT/XDE 5.2.1
Problem Description:
This solution gives the amount of memory that is required by XACT when
run on a PC or X workstations.
Solution 1:
The memory requirements for XDELAY and MAKEBITS will be the same or slightly
less than those given for VGA4, using the -p option. This is the fourth
chart below.
IMPORTANT NOTE ABOUT XDE:
When the XACT -p command line is NOT in effect, the memory requirements
given below assume that the initial request for a panning buffer is met.
If the initial request for a panning buffer cannot be met (and for large
parts this can be a huge amount of memory) XDE will cut the size of the
request in half in each direction (this 1/4 the memory) and make the request
again, and so on until either a panning buffer is obtained or the request
becomes smaller than the screen size, in which case XDE will fail.
On a PC this is the amount of memory that must be available to the program
when it starts up, and is not the amount of physical memory that must be
installed. Physical memory can be used by XDM, device drivers, RAM disks,
Windows, and many other utilities and programs before XACT is loaded.
On an X workstation, this is the amount of memory that must be available
before the program will start paging. It is also the amount of swap space
that must be available to the program.
PC note: Note that the amount of memory required for the smallest LCAs has
gone up (relative to pre 5.0.0 release). This is due to the increased
executable size and the increased size of the runtime stack, which is now
768K bytes.
There are 3 sections to this memo, PC Memory Requirements, X Workstation
Memory Requirements, and Conclusions.
PC MEMORY REQUIREMENTS
Memory required for VGA4, no -p option (default panning buffer):
(See IMPORTANT NOTE above.)
Part 2064PC44 3396552 3316k
Part 2018PC44 3746312 3658k
Part 3020PC68 4464744 4360k
Part 3030PC44 5251920 5128k
Part 3042PC84 6172424 6027k
Part 3064PC84 7836896 7653k
Part 3090PC84 9801016 9571k
Part 3195PC84 13000888 12696k
Part 4003PC84 7136384 6969k
Part 4005PC84 9505880 9283k
Part 4006PQ208 10914440 10658k
Part 4008PQ208 12485344 12192k
Part 4010PG191 14227504 13894k
Part 4013MQ208 18211224 17784k
Part 4020 22768800 22235k
Part 4025pg223 28020696 27363k
Part 4002APC84 5216592 5094k
Part 4003APC84 5928408 5789k
Part 4004APC84 6760616 6602k
Part 4005APC84 7711200 7530k
Part 4003HPG191 7413776 7240k
Part 4005HPG223 9842784 9612k
Part 5202PC84 10387480 10144k
Part 5204PC84 15560872 15196k
Part 5206PC84 22341168 21817k
Part 5210PQ100 33550392 32764k
Part 5215HQ208 47287424 46179k
Memory required for VGA8, no -p option (default panning buffer):
(See IMPORTANT NOTE above.)
Part 2064PC44 3765736 3677k
Part 2018PC44 4216728 4117k
Part 3020PC68 5199640 5077k
Part 3030PC44 6239792 6093k
Part 3042PC84 7484432 7309k
Part 3064PC84 9692840 9465k
Part 3090PC84 12329216 12040k
Part 3195PC84 16606144 16216k
Part 4003PC84 7974000 7787k
Part 4005PC84 10801408 10548k
Part 4006PQ208 12497760 12204k
Part 4008PQ208 14360192 14023k
Part 4010PG191 16454936 16069k
Part 4013MQ208 21206584 20709k
Part 4020 26657240 26032k
Part 4025pg223 32925032 32153k
Part 4002APC84 5735344 5600k
Part 4003APC84 6595360 6440k
Part 4004APC84 7571840 7394k
Part 4005APC84 8704712 8500k
Part 4003HPG191 8294336 8099k
Part 4005HPG223 11198560 10936k
Part 5202PC84 12590048 12294k
Part 5204PC84 18956384 18512k
Part 5206PC84 27354056 26712k
Part 5210PQ100 41219672 40253k
Part 5215HQ208 58172648 56809k
Memory required for VGA16, no -p option (default panning buffer):
(See IMPORTANT NOTE above.)
Part 2064PC44 4134920 4038K
Part 2018PC44 4687144 4577K
Part 3020PC68 5934536 5795K
Part 3030PC44 7227664 7058K
Part 3042PC84 8796440 8590K
Part 3064PC84 11548784 11278K
Part 3090PC84 14857416 14509K
Part 3195PC84 20211400 19737K
Part 4003PC84 8811616 8605K
Part 4005PC84 12096936 11813K
Part 4006PQ208 14081080 13751K
Part 4008PQ208 16235040 15854K
Part 4010PG191 18682368 18244K
Part 4013MQ208 24201944 23634K
Part 4020 30545680 29829K
Part 4025pg223 37829368 36942K
Part 4002APC84 6254096 6107K
Part 4003APC84 7262312 7092K
Part 4004APC84 8383064 8186K
Part 4005APC84 9698224 9470K
Part 4003HPG191 9174896 8959K
Part 4005HPG223 12554336 12260K
Part 5202PC84 14792616 14445K
Part 5204PC84 22351896 21828K
Part 5206PC84 32366944 31608K
Part 5210PQ100 48888952 47743K
Part 5215HQ208 69057872 67439K
When the -p option is not in effect, XACT will try to size the large panning
buffer to be big enough to draw the entire die at Xlarge In. If the panning
buffer cannot be allocated to be this size, XACT will retry the allocation
until a buffer is obtained, cutting its size in half in each dimension with
each retry. Thus each retry will ask for 1/4 the amount of memory for the
panning buffer.
The following tables give the amount of memory required when the -p command
line option is used. This option tells XACT to make the panning buffer only
as large as the screen. In this case any panning activity will cause a
redraw of the buffer, but since the buffer is so small it should redraw very
quickly. The amount of memory used by the panning buffer in this case is
small and device (LCA) independent.
Note that the -p option is has several sub-options that can be used to set
the size of the panning buffer to essentially any size. This gives the user
control of the tradeoff between the frequency of redraws, the time per
redraw, and the ability to pan without redraw.
See the XACT online help (xact -help) for more details.
Memory required for VGA4, -p, (fixed screen size panning buffer):
(This chart can also be used to get the memory requirements for
XDELAY and MAKEBITS on either the PC or workstation.)
Part 2064PC44 2484760 2426k
Part 2018PC44 2609768 2548k
Part 3020PC68 2874536 2807k
Part 3030PC44 3126640 3053k
Part 3042PC84 3411664 3331k
Part 3064PC84 3934784 3842k
Part 3090PC84 4553392 4446k
Part 3195PC84 5563592 5433k
Part 4003PC84 5409832 5283k
Part 4005PC84 6849784 6689k
Part 4006PQ208 7699784 7519k
Part 4008PQ208 8649552 8446k
Part 4010PG191 9709944 9482k
Part 4013MQ208 12142384 11857k
Part 4020 14901680 14552k
Part 4025pg223 18106072 17681k
Part 4002APC84 4127112 4030k
Part 4003APC84 4571760 4464k
Part 4004APC84 5077264 4958k
Part 4005APC84 5671272 5538k
Part 4003HPG191 5623304 5491k
Part 4005HPG223 7089360 6923k
Part 5202PC84 6613184 6458k
Part 5204PC84 9343776 9124k
Part 5206PC84 12915584 12612k
Part 5210PQ100 18821048 18379k
Part 5215HQ208 26034112 25423k
Memory required for VGA8, -p, (fixed screen size panning buffer):
Part 2064PC44 2665928 2603k
Part 2018PC44 2791232 2725k
Part 3020PC68 3080688 3008k
Part 3030PC44 3332712 3254k
Part 3042PC84 3618232 3533k
Part 3064PC84 4142104 4045k
Part 3090PC84 4761024 4649k
Part 3195PC84 5769928 5634k
Part 4003PC84 5661848 5529k
Part 4005PC84 7102064 6935k
Part 4006PQ208 7951592 7765k
Part 4008PQ208 8901640 8693k
Part 4010PG191 9961648 9728k
Part 4013MQ208 12394152 12103k
Part 4020 15153792 14798k
Part 4025pg223 18358256 17927k
Part 4002APC84 4379464 4276k
Part 4003APC84 4824040 4710k
Part 4004APC84 5329464 5204k
Part 4005APC84 5923584 5784k
Part 4003HPG191 5875496 5737k
Part 4005HPG223 7341864 7169k
Part 5202PC84 7232632 7063k
Part 5204PC84 9963032 9729k
Part 5206PC84 13535088 13217k
Part 5210PQ100 19438872 18983k
Part 5215HQ208 26653624 26028k
Memory required for VGA16, -p, (fixed screen size panning buffer):
Part 2064PC44 2847096 2780K
Part 2018PC44 2972696 2903K
Part 3020PC68 3286840 3209K
Part 3030PC44 3538784 3455K
Part 3042PC84 3824800 3735K
Part 3064PC84 4349424 4247K
Part 3090PC84 4968656 4852K
Part 3195PC84 5976264 5836K
Part 4003PC84 5913864 5775K
Part 4005PC84 7354344 7181K
Part 4006PQ208 8203400 8011K
Part 4008PQ208 9153728 8939K
Part 4010PG191 10213352 9973K
Part 4013MQ208 12645920 12349K
Part 4020 15405904 15044K
Part 4025pg223 18610440 18174K
Part 4002APC84 4631816 4523K
Part 4003APC84 5076320 4957K
Part 4004APC84 5581664 5450K
Part 4005APC84 6175896 6031K
Part 4003HPG191 6127688 5984K
Part 4005HPG223 7594368 7416K
Part 5202PC84 7852080 7668K
Part 5204PC84 10582288 10334K
Part 5206PC84 14154592 13822K
Part 5210PQ100 20056696 19586K
Part 5215HQ208 27273136 26633K
You can see that the difference between VGA8 and VGA16 for any part is the
same. This difference represents the amount of memory that is needed for
a VGA screen bit plane.
X WORKSTATION MEMORY REQUIREMENTS
The following two tables give the amount of memory required by XDE when run
on a workstation. An important difference is that the existing X
implementations of graphics must accept the X allocation of 8 bits per pixel
in panning buffers. The program does not have control of the number of bits
per pixel as it does on the PC.
Memory required for X, no -p option (default panning buffer):
(See IMPORTANT NOTE above.)
Part 2064PC44 4873288 4759K
Part 2018PC44 5627976 5496K
Part 3020PC68 7404328 7230K
Part 3030PC44 9203408 8987K
Part 3042PC84 11420456 11152K
Part 3064PC84 15260672 14903K
Part 3090PC84 19913816 19447K
Part 3195PC84 27421912 26779K
Part 4003PC84 10486848 10241K
Part 4005PC84 14687992 14343K
Part 4006PQ208 17247720 16843K
Part 4008PQ208 19984736 19516K
Part 4010PG191 23137232 22594K
Part 4013MQ208 30192664 29485K
Part 4020 38322560 37424K
Part 4025pg223 47638040 46521K
Part 4002APC84 7291600 7120K
Part 4003APC84 8596216 8394K
Part 4004APC84 10005512 9771K
Part 4005APC84 11685248 11411K
Part 4003HPG191 10936016 10679K
Part 4005HPG223 15265888 14908K
Part 5202PC84 19197752 18747K
Part 5204PC84 29142920 28459K
Part 5206PC84 42392720 41399K
Part 5210PQ100 64227512 62722K
Part 5215HQ208 90828320 88699K
Memory required for X, -p, (fixed screen size panning buffer):
(See IMPORTANT NOTE above.)
Part 2064PC44 3209432 3134K
Part 2018PC44 3335624 3257K
Part 3020PC68 3699144 3612K
Part 3030PC44 3950928 3858K
Part 3042PC84 4237936 4138K
Part 3064PC84 4764064 4652K
Part 3090PC84 5383920 5257K
Part 3195PC84 6388936 6239K
Part 4003PC84 6417896 6267K
Part 4005PC84 7858904 7674K
Part 4006PQ208 8707016 8502K
Part 4008PQ208 9657904 9431K
Part 4010PG191 10716760 10465K
Part 4013MQ208 13149456 12841K
Part 4020 15910128 15537K
Part 4025pg223 19114808 18666K
Part 4002APC84 5136520 5016K
Part 4003APC84 5580880 5450K
Part 4004APC84 6086064 5943K
Part 4005APC84 6680520 6523K
Part 4003HPG191 6632072 6476K
Part 4005HPG223 8099376 7909K
Part 5202PC84 9090976 8877K
Part 5204PC84 11820800 11543K
Part 5206PC84 15393600 15032K
Part 5210PQ100 21292344 20793K
Part 5215HQ208 28512160 27843K
CONCLUSIONS:
It appears that allowing XACT to default to trying to allocate huge panning
buffers for the large parts (4020, 4025, 5210) is not a good strategy for
either the PC or workstations. Some variant of the -p option should be the
default in such cases. It should of course be possible to force the panning
buffer to be any size, as it is now.
End of Record #1138
For the latest news, design tips, and patch information on the Xilinx design environment, check out the Xilinx Expert Journals! |