Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - "NOT" in PORT MAP

 
Thread Tools Search this Thread
Old 07-13-2006, 09:21 AM   #1
Default "NOT" in PORT MAP


Hi,

when I try to integrate NOT in PORT MAP
under Modelsim I get a error message:

i_test : test
PORT MAP ( ls_test => NOT ls_test2,
...
);

whereas the following construct is permitted
by Modelsim:

i_test : test
PORT MAP ( ls_test => "NOT" (ls_test2),
...
);

When synthesizing the design (Synplify) the first
construct is OK.
Will the second one also be accepted ?

Thank you for your opinion.

Rgds
André



ALuPin@web.de
  Reply With Quote
Old 07-13-2006, 09:33 AM   #2
Jonathan Bromley
 
Posts: n/a
Default Re: "NOT" in PORT MAP

On 13 Jul 2006 01:21:49 -0700, "" <> wrote:

>when I try to integrate NOT in PORT MAP
>under Modelsim I get a error message:
>
>i_test : test
>PORT MAP ( ls_test => NOT ls_test2,
> ...
> );
>
>whereas the following construct is permitted
>by Modelsim:
>
>i_test : test
>PORT MAP ( ls_test => "NOT" (ls_test2),
> ...
> );
>
>When synthesizing the design (Synplify) the first
>construct is OK.
>Will the second one also be accepted ?


The second example is legal VHDL - you can use any
monadic function in a port map. I don't know whether
Synplify is OK with it, but it *should* be. It's more
common to use this feature to achieve type conversion
across a port map, but the rules say that any function
is OK.

The first example puts an expression in the port map.
This is illegal, but Synplify is apparently tolerating it -
note that this is easy for a synthesis tool, because the
Verilog equivalent *is* legal.

VHDL-200x is doing something about expressions in
port maps, but it's quite tricky and I'm not sure what
progress they have made.
--
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK

http://www.MYCOMPANY.com

The contents of this message may contain personal views which
are not the views of Doulos Ltd., unless specifically stated.
  Reply With Quote
Old 07-13-2006, 03:12 PM   #3
ALuPin@web.de
 
Posts: n/a
Default Re: "NOT" in PORT MAP

Hi Jonathan,

thank you for your info.

Rgds
André

  Reply With Quote
Old 07-13-2006, 10:30 PM   #4
Andy
 
Posts: n/a
Default Re: "NOT" in PORT MAP

The first example is an expression that calls a function, but it is not
a function call, and therefore is not legal vhdl. The second example is
the way to call an operator as a function, and is legal vhdl (port
conversion function). Conversion functions need not actually change
the type of the argument. I wrote a vhdl netlister once for Valid
simulation schematics that used this feature to handle bubbled pins on
simulation primitives.

Port conversion functions are not included in the standard
synthesizable vhdl subset, but Synplicity has a long history of
recognizing more than the standard subset. Just know that it may not
work with other synthesis tools.

I saw a paper at an hdlcon years ago where they used port conversion
functions in configurations to great effect. It allowed them to
seamlessly swap in and out different models, with different port data
types, in the same testbench, without having to write wrapper code.

Note that the conversion function will result in a delta delay across
the port.

Andy


wrote:
> Hi Jonathan,
>
> thank you for your info.
>
> Rgds
> André


  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump