Mombu the Programming Forum

Go Back   Mombu the Programming Forum > Programming > XST Warning 790: What does it mean?
User Name
Password
REGISTER NOW! Mark Forums Read




Reply Bookmark and Share
1 7th March 23:08
agatha
External User
 
Posts: 1
Default XST Warning 790: What does it mean?



Hello to all of you,
I'm new to VHDL and I'm trying to understand how it works but I get to
have a little problem. I'm trying to make the data memory for a
processor. The ADDRESS consists of 32 bits but only 12 of them are
used. When I write this code:

addr := ADDRESS(11 downto 0) ;
MEMORY(TO_INTEGER(UNSIGNED(addr))) <= DATA_W(7 downto 0);

everything is all right. But when I try to align the address and write:

addr := ADDRESS(11 downto 2) & "00" ;
MEMORY( TO_INTEGER(UNSIGNED(addr))) <= DATA_W(7 downto 0);

I keep getting this warning:
Warning: 790: Index value does not match array range, simulation
mismatch

Can anyone explain what happens and it doesn't work?
Thank you in advance
  Reply With Quote


 


2 7th March 23:08
mark norton
External User
 
Posts: 1
Default XST Warning 790: What does it mean?



Hi,

Could you post your declarations for addr, ADDRESS, MEMORY, and DATA_W?
I think that would shed some light on the situation.

Best regards,
Mark Norton -- ==============================
Mark Norton <markn@cdvinc.com>
Concept Development, Inc.
http://www.cdvinc.com
  Reply With Quote
3 7th March 23:08
agatha
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


First of all thank you for your instant reply!

This is a part of the code:
entity MEMORY4 is
port( DATA_A: out STD_LOGIC_VECTOR (31downto 0);
DATA_W: in STD_LOGIC_VECTOR (31downto 0);
ADDRESS: in STD_LOGIC_VECTOR(31downto 0);

ENABLE_A: in STD_LOGIC;
ENABLE_W: in STD_LOGIC;
W_LEN: in STD_LOGIC_VECTOR(1 downto 0);

REQ: in STD_LOGIC;
ACK: out STD_LOGIC;
CLK: in STD_LOGIC);
end MEMORY4;
....
architecture synthesis of MEMORY4 is

type MEM is array ((2**12 - 1) downto 0) of STD_LOGIC_VECTOR(7downto
0);
signal MEMORY:MEM ;

process (CLK)

variable addr: STD_LOGIC_VECTOR(11 downto 0);

begin
addr := ADDRESS(11 downto 2) & "00";

if ENABLE_W = '1' then
MEMORY( TO_INTEGER(UNSIGNED(addr))) <= DATA_W(7 downto 0);
.....

The memory consists of 2**12 positions and every position is one byte.
When I get the address that is 32 bits I must consider only the lower
12 (11 downto 0) and save the data, that is also 32 bits, to 4
positions of the memory, one byte at a time. That's why I must align

Maybe the situation is more clear now.
  Reply With Quote
4 7th March 23:08
phoenix
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


Dnia 23-05-2006 o 18:43:14 agatha <vivi01402@hotmail.com> napisał:

Hello

Maybe it is something wrong with concatenation use in variable assign and
maybe You should try:

addr(11 downto 2) := ADDRESS(11 downto 2);
addr(1 downto 0) := "00";
  Reply With Quote
5 7th March 23:08
agatha
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


I tried it now but the warning is still there!! The thing is I don't
know any possible reason for it's appearance and I don't know if I
should ignore it or not.
  Reply With Quote
6 7th March 23:08
phoenix
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


Dnia 23-05-2006 o 19:16:43 agatha <vivi01402@hotmail.com> napisał:

This is warning, that you may try ignore it and, if simulation works then
check what the memory behaviour is.
Or maybe try change variable addr to signal and then use the "<=" assign?
  Reply With Quote
7 9th March 12:23
agatha
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


You were right!! I changed the variable to a signal and put it out of
the process and the warning was gone!
Thank you very much!!!
  Reply With Quote
8 9th March 12:23
paulo dutra
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


Is it because you did not specify the base designator
addr := ADDRESS(11 downto 2) & B"00" ;

Otherwise, I believe it's assumed to be hex.
addr := ADDRESS(11 downto 2) & X"00" ;
  Reply With Quote
9 9th March 12:23
phoenix
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


Dnia 23-05-2006 o 20:03:38 agatha <vivi01402@hotmail.com> napisał:

No problem
  Reply With Quote
10 9th March 12:23
mark norton
External User
 
Posts: 1
Default XST Warning 790: What does it mean?


No, for most instances, "00" would be just two bits.

However, I think the issue is that array indices need to be locally
static. So the solution of changing it to a signal that operated
outside the process solved that. The prior example that worked would
probably have synthesized the variable right out of the process since it
was a 1-to-1 assignment to the input (my best guess right now).

Best regards,
Mark Norton

-- ==============================
Mark Norton <markn@cdvinc.com>
Concept Development, Inc.
http://www.cdvinc.com
  Reply With Quote
Reply


Thread Tools
Display Modes


Some other forums that might be of your interest : Development, Ada, Apple script, Assembler, Awk, Beos, Basic, C, C++, C#, C# .net, .net, .net frameworks, Asp .net, Clarion, Clipper, Clos, Clu, Cobol, Coldfusion, Delphi, Dylan, Eiffel, Forth, Fortran, Haskell, Hermes, Icon, Idl, Java, Java script, Jscript .net, Jcl, Linoleum, Lisp, Lotus, Limbo, Logo, Ml, Mumps, Oberon, Postscript, Pop, Pl1, Prolog, Python, Ruby, Pascal, Perl, Php, Rebol, Rexx, Sed, Sather, Scheme, Smalltalk, Tcl, Vhdl, Vrml, Visual basic, Visual basic .net, Yorick, Mysql, Omnis, Postgresql, Xbase, Access, Oracle, Adabas, Berkeley, Btrieve, Filemaker, Gupta, Db2, Informix, Ingres, Mssql server, Object, Olap, Paradox, Rdb, Revelation, Sybase, Theory, Dbase, Html, Java script, Css, Flash, Photoshop, Corel script, Xml, Tech, Beos, Gem, Hp48, Hpux, Linux, Mac, Ms-dos, Os2, Palm, Solaris, Ti99, Windows, Xenix, Aos, Chorus, Geos, Inferno, Lantastic, Lynx, Mach, Minix, Netware, Os9, Parix, Plan9, Psos, Qnx, Xinu, Sco, Unix, Aix, Aux, 386bsd, Bsdi, Freebsd, Netbsd, Openbsd, Ultrix, Amd, Intel, Aptiva, Buz, Deals, Homebuilt, Overclocking, Programming, Extra forums


Copyright © 2006 SmartyDevil.com - Dies Mies Jeschet Boenedoesef Douvema Enitemaus -
666