|
From: Cary R. <cy...@ya...> - 2008-01-23 17:50:07
|
--- Uwe Bonnes <bo...@el...> wrote:
> I can see:
> v0xa16a2a0_0 .net *"_s273", -1 0, L_0xc4250c0; 1 drivers
I think you are reading this line incorrectly. The .net definition is
located in vvp/README.txt. You are correct this is a temporary net, but
L_0xc4250c0 is driving the net. Also, since it is a temporary net it is
probably being created by the compiler, so would not be a real Verilog
concatenation. What you need to look for is what has L_0xc4250c0 as an
Lval and then track that back to a real signal. The -1 for the MSB is a
clue, but we still need to know what is ultimately driving the NetConcat.
> I can find out when the offending value is written. However _s273
> seems to be an auto-generated variable, and I have no clue what
> causes this variable to be generated.
The NetConcat and a temporary net are often used to pad a value in a
continuous assignment.
> PEBinary::elaborate_net_shift_(Design*, NetScope*, unsigned int, NetExpr
> const*, NetExpr const*, NetExpr const*) const + 0x568
This is used to elaborate the shift operators which can use a temporary
net and a NetConcat for padding (elab_net.cc)
> PETernary::elaborate_net(Design*, NetScope*, unsigned int, NetExpr
> const*, NetExpr const*, NetExpr const*, Link::strength_t,
> Link::strength_t) const + 0xa2
<Snip of other PETernary::elaborate_net.>
These looks like some nested ternary operators (elab_expr.cc).
> PGAssign::elaborate(Design*, NetScope*) const + 0x4f0
A continuous assignment (elaborate.cc).
So for this case it looks like you are looking for a continuous assignment
the has three ternary operators that contains a shift. By tracking back to
what is driving L_0xc4250c0 you should be able to figure out what type of
shift.
Cary
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs
|