Reply by Ben Jones April 26, 20062006-04-26
Hi Andrew,

"Andrew Greensted" <ajg112@ohm.york.ac.uk> wrote in message
news:e2nc15$rvj$1@pump1.york.ac.uk...
> >><snip> > > Have you tried using named association for that first parameter? i.e. > That did the trick. Also, if anything, that approach is a little > clearer/meaningful too. Thanks for the pointer. > Shame XST failed horribly though, rather than produced a more meaningful > error.
Indeed. I've hit several record/aggregate-related snags like this before and spent ages trying to pinpoint exactly what bit of (legal) syntax XST was complaining about, because they always seem to fail with a "fatal error" (or else work fine) FYI, I ran your snippet through a slighty behind-the-curve 8.1i build of XST and it worked fine for me. Cheers, -Ben-
Reply by April 26, 20062006-04-26
>><snip> >> constant SNAP_FLAGS_RESET : SNAPTYPE_INTERNAL_FLAGS := >> ((zero => '0', negative => '0', carryBorrow => '0', overflow => '0'), >> equalityTests => b"000", globalInterruptEn => '0'); > > > Have you tried using named association for that first parameter? i.e. > > constant SNAP_FLAGS_RESET : SNAPTYPE_INTERNAL_FLAGS := > (aluFlags => (zero => '0', negative => '0', carryBorrow => '0', overflow > => '0'), > equalityTests => b"000", globalInterruptEn => '0');
Ben, That did the trick. Also, if anything, that approach is a little clearer/meaningful too. Thanks for the pointer. Shame XST failed horribly though, rather than produced a more meaningful error. Cheers Andy -- Dr. Andrew Greensted Department of Electronics Bio-Inspired Engineering University of York, YO10 5DD, UK Tel: +44(0)1904 432379 Mailto: ajg112@ohm.york.ac.uk Fax: +44(0)1904 433224 Web: www.bioinspired.com/users/ajg112
Reply by Ben Jones April 25, 20062006-04-25
Hi Andrew,

"Andrew Greensted" <ajg112@ohm.york.ac.uk> wrote in message
news:e2lf63$k5h$1@pump1.york.ac.uk...
> Hi All,
> Below is some, what I hope to be valid, VHDL, that makes XST fail and > spit out a Internal Error. I'm using ISE 7.1 (SP4) running on a Linux Box.
> <snip> > constant SNAP_FLAGS_RESET : SNAPTYPE_INTERNAL_FLAGS := > ((zero => '0', negative => '0', carryBorrow => '0', overflow => '0'), > equalityTests => b"000", globalInterruptEn => '0');
Have you tried using named association for that first parameter? i.e. constant SNAP_FLAGS_RESET : SNAPTYPE_INTERNAL_FLAGS := (aluFlags => (zero => '0', negative => '0', carryBorrow => '0', overflow => '0'), equalityTests => b"000", globalInterruptEn => '0'); Both are legal, but synthesis tools are known to take exception to the slightest unexpected things... -Ben-
Reply by April 25, 20062006-04-25
Hi All,

Just wanted to know if anyone has experienced any problems with Xilinx 
XST when declaring a constant record in VHDL.

Below is some, what I hope to be valid, VHDL, that makes XST fail and 
spit out a Internal Error. I'm using ISE 7.1 (SP4) running on a Linux Box.

Is this really an XST bug/problem/deficiency? Would be great to hear 
from any 8.1 users to see if this is still a problem.

The Error:
INTERNAL_ERROR:Xst:cmain.c:3022:1.146.4.1 -  To resolve this error, 
please consult the Answers Database and other online resources at 
http://support.xilinx.com

The VHDL:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity Test is
end entity Test;

architecture General of Test is

   type SNAPTYPE_ALU_FLAGS is record
     zero          : std_logic;
     negative      : std_logic;
     carryBorrow   : std_logic;
     overflow      : std_logic;
   end record SNAPTYPE_ALU_FLAGS;

   type SNAPTYPE_INTERNAL_FLAGS is record
     aluFlags           : SNAPTYPE_ALU_FLAGS;
     equalityTests      : std_logic_vector(2 downto 0);
     globalInterruptEn : std_logic;
   end record SNAPTYPE_INTERNAL_FLAGS;

   constant SNAP_FLAGS_RESET : SNAPTYPE_INTERNAL_FLAGS :=
    ((zero => '0', negative => '0', carryBorrow => '0', overflow => '0'),
    equalityTests => b"000", globalInterruptEn => '0');

begin
end General;


Cheers
Andy

-- 
Dr. Andrew Greensted      Department of Electronics
Bio-Inspired Engineering  University of York, YO10 5DD, UK

Tel: +44(0)1904 432379    Mailto: ajg112@ohm.york.ac.uk
Fax: +44(0)1904 433224    Web: www.bioinspired.com/users/ajg112