FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 04-25-2006, 04:28 PM
Andrew Greensted
Guest
 
Posts: n/a
Default XST Internal error: VHDL constant record support

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: [email protected]
Fax: +44(0)1904 433224 Web: www.bioinspired.com/users/ajg112
Reply With Quote
  #2 (permalink)  
Old 04-25-2006, 05:45 PM
Ben Jones
Guest
 
Posts: n/a
Default Re: XST Internal error: VHDL constant record support

Hi Andrew,

"Andrew Greensted" <[email protected]> wrote in message
news:[email protected]
> 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 With Quote
  #3 (permalink)  
Old 04-26-2006, 09:47 AM
Andrew Greensted
Guest
 
Posts: n/a
Default Re: XST Internal error: VHDL constant record support

>><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: [email protected]
Fax: +44(0)1904 433224 Web: www.bioinspired.com/users/ajg112
Reply With Quote
  #4 (permalink)  
Old 04-26-2006, 10:48 AM
Ben Jones
Guest
 
Posts: n/a
Default Re: XST Internal error: VHDL constant record support

Hi Andrew,

"Andrew Greensted" <[email protected]> wrote in message
news:[email protected]
> >><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 With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Help with Quartus Internal Error lindberg Verilog 0 08-11-2005 02:57 PM
ISE:ERROR:Xst:829: Constant Value expected for Generic 'U'? Phil Tomson FPGA 3 02-16-2005 08:54 AM
Xilinx: xst internal error Lukasz Salwinski FPGA 1 01-23-2005 11:21 AM
synthesis error - left bound of range doesn't evaluate to a constant senthil FPGA 1 03-03-2004 02:13 AM


All times are GMT +1. The time now is 04:54 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved