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.
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