RE: [sv-bc] Bit/Part select of modport named argument

From: Steven Sharp <sharp@cadence.com>
Date: Mon Feb 07 2011 - 11:44:31 PST

Also compare with the rules for parameters declared without a type, which get their type from the expression which is assigned to them, just like these ports. The LRM says "If the expression is integral, the parameter is a logic vector of the same size with range [size-1:0]." If the integral expression were a bit select like x[i], the result would still be a vector, with size 1, and the range [0:0].

-----Original Message-----
From: bradpiercephd@gmail.com [mailto:bradpiercephd@gmail.com] On Behalf Of Brad Pierce
Sent: Saturday, February 05, 2011 12:18 PM
To: Steven Sharp
Cc: Surya Pratik Saha; sv-bc@eda.org
Subject: Re: [sv-bc] Bit/Part select of modport named argument

So we could legally write i.j[0][0][0][0][0][0] and it would yield the same as i.j?

-- Brad

On Fri, Feb 4, 2011 at 9:24 PM, Steven Sharp <sharp@cadence.com> wrote:
> How can you distinguish a scalar from a 1-bit vector in this situation?  I think the distinction disappears when used in an expression, and the self-determined type is the same.
>
>
> -----Original Message-----
> From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
> Brad Pierce
> Sent: Friday, February 04, 2011 11:18 AM
> To: Surya Pratik Saha
> Cc: sv-bc@eda.org
> Subject: Re: [sv-bc] Bit/Part select of modport named argument
>
> "The self-determined type of the port expression becomes the type for the port." Shouldn't you be able to use the name of the port in any way that's consistent with its type? In this case, it has a scalar type, and it doesn't make sense to be indexing into a scalar type.
>
> -- Brad
>
> On Fri, Feb 4, 2011 at 2:15 AM, Surya Pratik Saha <spsaha@cal.interrasystems.com> wrote:
>> Hi,
>> I have a design like:
>> interface iface;
>>    logic [2:0] x;
>>    modport mport (input .j (x[1]));
>> endinterface
>>
>> module top;
>> iface i ();
>> foo f (i.mport);
>> endmodule
>>
>> module foo (iface.mport i);
>>    initial begin
>>        i.j[1] = 1; // Bit select of modport named argument
>>    end
>> endmodule
>>
>> Is bit/part select of modport named argument allowed? I am also not
>> sure what is the meaning of that if it is allowed. Though some
>> standard tools do not give any meaningful error.
>>
>> --
>> Regards
>> Surya
>>
>>
>>
>>
>> --
>> This message has been scanned for viruses and dangerous content by
>> MailScanner, and is believed to be clean.
>>
>>
>
> --
> This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
>
>
>
> --
> This message has been scanned for viruses and dangerous content by
> MailScanner, and is believed to be clean.
>
>
>

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Feb 7 11:45:23 2011

This archive was generated by hypermail 2.1.8 : Mon Feb 07 2011 - 11:45:30 PST