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 |