Error: Actual is not a globally static expression

Discussion in 'VHDL' started by Steve Harrad, Dec 22, 2003.

  1. Steve Harrad

    Steve Harrad Guest

    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
     
    Steve Harrad, Dec 22, 2003
    #1
    1. Advertising

  2. Steve Harrad

    Jim Lewis Guest

    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 mailto:
    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
     
    Jim Lewis, Dec 22, 2003
    #2
    1. Advertising

  3. Steve Harrad

    Steve Harrad Guest


    > 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
     
    Steve Harrad, Dec 22, 2003
    #3
  4. 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
     
    Mike Treseler, Dec 22, 2003
    #4
  5. Steve Harrad

    Steve Harrad Guest

    > 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?
     
    Steve Harrad, Dec 22, 2003
    #5
  6. 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
     
    Mike Treseler, Dec 22, 2003
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. valentin tihomirov

    Actual is not a globally static expression

    valentin tihomirov, Feb 10, 2004, in forum: VHDL
    Replies:
    7
    Views:
    9,551
    Jonathan Bromley
    Feb 17, 2004
  2. =?Utf-8?B?QmlnSm9obg==?=

    VB Modules Not Available Globally After Upgrade to 2005

    =?Utf-8?B?QmlnSm9obg==?=, Jul 28, 2006, in forum: ASP .Net
    Replies:
    2
    Views:
    335
    =?Utf-8?B?QmlnSm9obg==?=
    Jul 31, 2006
  3. Replies:
    7
    Views:
    1,037
  4. tomer
    Replies:
    0
    Views:
    2,126
    tomer
    Jul 28, 2011
  5. giri alamuri
    Replies:
    5
    Views:
    175
    giri alamuri
    Sep 12, 2003
Loading...

Share This Page