What can be done with "groups" (LRM '93) ? 
Author Message
 What can be done with "groups" (LRM '93) ?

What can you really do with groups?
----------------------------------

In the new standard LRM 1993 you can use groups.
I though this could be used to group signals with
for instance the same delay characteristics.

 ENTITY x IS
 END x;

 ARCHITECTURE b OF x IS
        group vertraging_gelijk is (signal <>);
        signal sig4, sig5 : bit;

        group groep2 : vertraging_gelijk (sig3,sig4,sig5);

        attribute delay : time;
        attribute delay of groep2 : group is 15 ns;

        signal x : time ;
 BEGIN
    x <= sig3'delay;

 END b;

In the previuos code I thought that all members of the group
'groep2' (sorry that is a Dutch word) would have an attribute
"delay".

But it is not the case.

Can anyone explain to me the use of a group?

Bert Molenkamp
Dept. of Computer Science
University of Twente
PO Box 217
7500 AE  Enschede
the Netherlands



Sun, 23 Feb 1997 22:58:07 GMT  
 What can be done with "groups" (LRM '93) ?

   What can you really do with groups?
   ----------------------------------

   In the new standard LRM 1993 you can use groups.
   I though this could be used to group signals with
   for instance the same delay characteristics.

    ENTITY x IS
    END x;

    ARCHITECTURE b OF x IS
           group vertraging_gelijk is (signal <>);
           signal sig4, sig5 : bit;

           group groep2 : vertraging_gelijk (sig3,sig4,sig5);

           attribute delay : time;
           attribute delay of groep2 : group is 15 ns;

           signal x : time ;
    BEGIN
       x <= sig3'delay;

    END b;

   In the previuos code I thought that all members of the group
   'groep2' (sorry that is a Dutch word) would have an attribute
   "delay".

   But it is not the case.

Right.  The _group_ is what has the attribute.

   Can anyone explain to me the use of a group?

To define ... well ... a group of things, typically so that you can add
information to be read and used by some tool in your design system (not
simply a simulator).  There is nothing in VHDL to traverse a group and get
its elements, or to distribute attributes, as in your question, but a
downstream tool might use such information.  For example, a synthesizer could
read a group that groups two pins and that has a delay attribute and treat
that delay as a pin-to-pin timing constraint.

Inside VHDL, user-defined attributes are simply constants with a different
form of declaration (attribute specifications instead of constant
declarations) and a different form of name (an attribute name instead of a
simple name).  However, user-defined attribute are different from constants
in that they are provided to let you associate additional information with
some item, and have a downstream tool read that information.

Groups are an extension of user-defined attributes.  

(Of course, some suppliers ignored user-defined attributes (well, or maybe in
VHDL-87 they weren't sufficient for their needs), and used source comments to
control their tools.  *shudder*)

Daniel
--


        "They listen hard, and act like they care.
         How can they be so completely unaware
         Of the truth?  The answer is always denied me
         So I introduce 'em to the killer inside me." - MC 900 Ft. Jesus



Tue, 25 Feb 1997 00:10:29 GMT  
 
 [ 2 post ] 

 Relevant Pages 

1. x"25" in VHDL 93

2. VHDL '93 LRM online ???

3. Error in example in LRM'93 ?

4. '"""' and linefeed characters

5. string.join(["Tk 4.2p2", "Python 1.4", "Win32", "free"], "for")

6. BEGIN{want[]={"s1o", "s2o", "s2q", "s3q"}

7. Rebirth of "Doit", the Dutch Smalltalk User Group

8. sql in realbasic, "group by"

9. "'Snakeymathtem'": Virus?

10. porting TopSpeed "GROUP"s to mySQL

11. LabView 5.1.1, 'Failure: "linker.c", line 1825': Please Help

12. "groups" in Scheme

 

 
Powered by phpBB® Forum Software