Bresticker, Shalom wrote: > OK, let’s go one step further. > > What if I replaced ‘assign’ with ‘always_comb’? So: module test(output logic [3:0] out, input [3:0] in, input [0:1] idx); for (genvar I = 0; I < 4; I++) always_comb out[(idx+I)%4] = in[I]; endmodule In this case, the "idx" is not a static-prefix so the always_comb is valid but is presumed to write to all bits of "out". This means that you should end up with errors since multiple always_comb processes assign to the same output. So it is still "wrong" but not quite in the manner that you might expect. Gord. > Shalom > > > > ------------------------------------------------------------------------ > > From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of Brad > Pierce > Sent: Thursday, March 30, 2006 6:39 PM > To: sv-bc@eda.org > Subject: Re: [sv-bc] FW: question: continuous assignments to variables > > > > Shalom, > > The text should clarify that the left-hand side of a continuous > assignment must be structural, even if it is of a variable type. The > following example would not be considered legal. > > module test(output logic [3:0] out, input [3:0] in, input [0:1] idx); > > for (genvar I = 0; I < 4; I++) > > assign out[(idx+I)%4] = in[I]; > > endmodule > > ------------------------------------------------------------------------ > > From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of > Bresticker, Shalom > Sent: Thursday, March 30, 2006 6:35 AM > To: sv-bc@eda.org > Subject: [sv-bc] FW: question: continuous assignments to variables > > > > Hi, > > I never got a response to this. > > Shalom > > > > ------------------------------------------------------------------------ > > From: Bresticker, Shalom > Sent: Monday, February 27, 2006 1:57 PM > To: sv-bc@eda.org > Subject: question: continuous assignments to variables > > > > Hi, > > > > In 1364, if the LHS of a continuous assignment is a select, the select > needs to be a constant select. > > > > 1800 says that the LHS of a continuous assignment can be a net or > variable of any data type. For a net, the BNF net_lvalue still seems to > restrict that to constant selects, but the text does not seem to mention > that restriction. It probably should, because one might interpret “any > data type” as relaxing that restriction. > > > > But mainly, I want to ask about variables as LHS of a continuous > assignment. I don’t see that the BNF (variable_lvalue) restricts it to > have a constant select. Is that true? If so, why is there a difference > between variables and nets? > > > > Thanks, > > Shalom > > > > Shalom Bresticker > > Intel Jerusalem LAD DA > > +972 2 589-6852 > > +972 54 721-1033 > > I don't represent Intel > > > -- -------------------------------------------------------------------- Gordon Vreugdenhil 503-685-0808 Model Technology (Mentor Graphics) gordonv@model.comReceived on Thu Mar 30 09:34:14 2006
This archive was generated by hypermail 2.1.8 : Thu Mar 30 2006 - 09:34:22 PST