Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > Error: Actual is not a globally static expression

Reply
Thread Tools

Error: Actual is not a globally static expression

 
 
Steve Harrad
Guest
Posts: n/a
 
      12-22-2003
Hello

Why isn't it allowed to use the not Operator in the port mapping?

MUL0: MULTI
port map(x0 => not(a(0)),y0 => not(b(0)),x1 => a(1),y1 =>b (1),
^^^^^^ ^ ^^^^
cin => '0',cout => cout2bitRCA0,s0 => sout2bitRCA0(0),s1 =>
sout2bitRCA0(1));

I get this error code:

Actual is not a globally static expression

How can i assign x0 the inserse bit of a(0)

Thanks for your help



 
Reply With Quote
 
 
 
 
Jim Lewis
Guest
Posts: n/a
 
      12-22-2003
Steve,
To call a function in a port map, it must be a
conversion function. While technically not
is not a conversion function, if you call it with
the "not"(a) format.



MUL0: MULTI
port map(
x0 => "not"(a(0)),
y0 => "not"(b(0)),
x1 => a(1),
y1 => b(1),
cin => '0',
cout => cout2bitRCA0,
s0 => sout2bitRCA0(0),
s1 => sout2bitRCA0(1)
);

Cheers,
Jim
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
Jim Lewis
Director of Training private.php?do=newpm&u=
SynthWorks Design Inc. http://www.SynthWorks.com
1-503-590-4787

Expert VHDL Training for Hardware Design and Verification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~


Steve Harrad wrote:

> Hello
>
> Why isn't it allowed to use the not Operator in the port mapping?
>
> MUL0: MULTI
> port map(x0 => not(a(0)),y0 => not(b(0)),x1 => a(1),y1 =>b (1),
> ^^^^^^ ^ ^^^^
> cin => '0',cout => cout2bitRCA0,s0 => sout2bitRCA0(0),s1 =>
> sout2bitRCA0(1));
>
> I get this error code:
>
> Actual is not a globally static expression
>
> How can i assign x0 the inserse bit of a(0)
>
> Thanks for your help


 
Reply With Quote
 
 
 
 
Steve Harrad
Guest
Posts: n/a
 
      12-22-2003


> To call a function in a port map, it must be a
> conversion function. While technically not
> is not a conversion function, if you call it with
> the "not"(a) format.



Thanks for your advice I tried it in the x0 => "not"(a(0)) format but it
doesn't work I always get a "U" for x(0).... Any Idea?

greetings Steve


 
Reply With Quote
 
Mike Treseler
Guest
Posts: n/a
 
      12-22-2003
Steve Harrad wrote:

> Thanks for your advice I tried it in the x0 => "not"(a(0)) format but it
> doesn't work I always get a "U" for x(0).... Any Idea?


The fact that you were able to compile
and run a sim implies that Jim's idea worked.

The "U" is coming from the process driving "a".
Maybe the model or testbench is not initializing this signal.

-- Mike Treseler

 
Reply With Quote
 
Steve Harrad
Guest
Posts: n/a
 
      12-22-2003
> The "U" is coming from the process driving "a".
> Maybe the model or testbench is not initializing this signal


Thanks for your answere i get this warning

# ELBREAD: Elaboration process.
# ELBREAD: Warning: Actual parameter a{0}~0 not found.
# : Warning: Unit: csa(rtl)
# : Warning: (a{0}~0(_function 268435975))

I only want the inverse of the LSB of the content in the ulogic_vector a...

Some hints?


 
Reply With Quote
 
Mike Treseler
Guest
Posts: n/a
 
      12-22-2003
Steve Harrad wrote:

> # ELBREAD: Warning: Actual parameter a{0}~0 not found.
> # : Warning: Unit: csa(rtl)
> # : Warning: (a{0}~0(_function 268435975))


The conventional way to do this is to declare signals
and add parallel assignments to cover the function.

a0_n <= not a(0);
b0_n <= not b(0);

MUL0: MULTI
port map(
x0 => a0_n,
y0 => b0_n,
-- . . .


-- Mike Treseler

 
Reply With Quote
 
 
 
Reply

Thread Tools

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 Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
error: (infix expression) for formal "din" is not a globally static expression tomer VHDL 0 07-27-2011 11:43 PM
C/C++ language proposal: Change the 'case expression' from "integral constant-expression" to "integral expression" Adem C++ 42 11-04-2008 12:39 PM
C/C++ language proposal: Change the 'case expression' from "integral constant-expression" to "integral expression" Adem C Programming 45 11-04-2008 12:39 PM
Globally static expression ALuPin@web.de VHDL 7 06-24-2008 08:28 AM
Actual is not a globally static expression valentin tihomirov VHDL 7 02-17-2004 03:48 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57