Re: implicit event expression lists

From: Don Mills (mills@lcdm-eng.com)
Date: Fri Feb 01 2002 - 13:13:22 PST


Precedence: bulk

I was being lazy and using the short hand. I did interpret you example the way
you intended. See notes below...

Dennis Marsa wrote:

> Don Mills wrote:
> >
> > Precedence: bulk
> >
> > Maybe I am a little daft, but if the bit or part is a constant, how will
> > the sensitivity list ever be triggered by it. I would think that the
> > behavior of @(*) should follow the same behavior as before the @(*) was
> > available. That is if I had
> >
> > 1) A bit-select of a vector
> >
> > reg [31:0] vector;
> >
> > always @(vector) or @(vector[5]) ??
> > out = vector[5];
> >
> > The @vector[5] would be sufficient and should be legal (correct me
> > if I am wrong here.). Having the whole vector present in the sensitivity
> > list will also work but would slow simulation down.
>
> I'm not sure, but I think you may have interpreted my
> example differently than I intended.
>
> I am not asking if both vector and vector[5] should be
> in the implicit event list. It should be one or the other,
> but which one?
>
> What I was asking is, should:
>
> always @(*)
> out = vector[5];
>
> be considered equivalent to:
>
> always @(vector)
> out = vector[5];
>
> or
>
> always @(vector[5])
> out = vector[5];

> I was *not* asking if it should be interpreted as:
>
> always @(vector or vector[5]) // no
> out = vector[5];
>

I was not intending this. I believe this is illegal anyway.

>
> I am also interested in the case where an array
> is substituted for the vector:
>
> reg [31:0] ram[0:1023];
>
> always @(*)
> out = ram[5];
>
> Should the above be considered equivalent to:
>
> always @(ram)
> out = ram[5];
>
> or
>
> always @(ram[5])
> out = ram[5];
>
> Regards,
>
> Dennis Marsa
> Xilinx, Inc.

Again, synopsys would require require the whole array to in the sensitivity
list but Verilog simulation should not. My initial email response still this.
All that is needed is the vector from the array, but if the whole array is
present in the sensitivity list, the functionality will be the same, the
simulation will be slower. Using the @(*) will allow the simulators to be
efficient and the synthesis tools to be happy.

--
==========================================================
Don Mills
LCDM Engineering     (Logic, Coding, & Design Methodology)
mills@lcdm-eng.com                        www.lcdm-eng.com
801-282-6560  Office PHONE
801-641-5882  Mobile PHONE
4158 W. Ben Armine Cir.,      South Jordan, UT  84095-9101
==========================================================


This archive was generated by hypermail 2.1.4 : Mon Jul 08 2002 - 12:55:35 PDT and
sponsored by Boyd Technology, Inc.