+ Post New Thread
Results 1 to 7 of 7
  1. #1
    Newbie level 6
    Points: 624, Level: 5

    Join Date
    Apr 2017
    Posts
    14
    Helped
    0 / 0
    Points
    624
    Level
    5

    How to trace the original of netlist gates back to the original RTL description

    When an RTL circuit is synthesized for an ASIC technology, is to possible to trace back the original source code of the generate netlist gates?

    More specifically, I compiled an RTL IP using Design Compiler, and then I studied its power consumption in PrimeTime. But I saw that some modules are consuming strangely bigger than they should. However, I could not trace back to the root cause of this power consumption, since this happens to be in the leaf cells. Is there a way to trace back these leaves to the original RTL source code?

    •   AltAdvertisement

        
       

  2. #2
    Advanced Member level 5
    Points: 9,412, Level: 23

    Join Date
    Apr 2016
    Posts
    1,956
    Helped
    347 / 347
    Points
    9,412
    Level
    23

    Re: How to trace the original of netlist gates back to the original RTL description

    Quote Originally Posted by noureddine-as View Post
    When an RTL circuit is synthesized for an ASIC technology, is to possible to trace back the original source code of the generate netlist gates?

    More specifically, I compiled an RTL IP using Design Compiler, and then I studied its power consumption in PrimeTime. But I saw that some modules are consuming strangely bigger than they should. However, I could not trace back to the root cause of this power consumption, since this happens to be in the leaf cells. Is there a way to trace back these leaves to the original RTL source code?
    not really. this would be reverse engineering, and while a lot of research has been done on this topic, there is no push-button solution for it.

    however, in your case, you have the rtl and the netlist. you just need to use your engineering skills. you can have synthesis keep the hierarchy instead of ungrouping everything, this would help you visualize where the gates belong to.
    Really, I am not Sam.


    1 members found this post helpful.

    •   AltAdvertisement

        
       

  3. #3
    Newbie level 6
    Points: 624, Level: 5

    Join Date
    Apr 2017
    Posts
    14
    Helped
    0 / 0
    Points
    624
    Level
    5

    Re: How to trace the original of netlist gates back to the original RTL description

    Okay ThisIsNotSam, that's what I do for know. The problem I had is with the leaf cells generated from the assign statements and muxes and stuff like that.
    I'm working this around by isolating each part in a separate module in order for its consumption to be visible in the PrimeTime Power hierarchical reports.

    Thanks fo the information anyway!

    - - - Updated - - -

    Quote Originally Posted by ThisIsNotSam View Post
    not really. this would be reverse engineering, and while a lot of research has been done on this topic, there is no push-button solution for it.

    however, in your case, you have the rtl and the netlist. you just need to use your engineering skills. you can have synthesis keep the hierarchy instead of ungrouping everything, this would help you visualize where the gates belong to.
    Do you if there are any way to label particular statements (for example assign) in SystemVerilog? Or any other way to generate an additional hierarchy level other than using modules would do the trick.

    I tried for example dummy generate like the following, but obviously it gets optimized away by DC.
    [CODE]
    genvar i;
    generate
    for (i = 0; i < 1; i++) begin : label
    assign output = Some_Logic_Op_Here ;
    end
    endgenerate
    [\CODE]



    •   AltAdvertisement

        
       

  4. #4
    Advanced Member level 5
    Points: 9,412, Level: 23

    Join Date
    Apr 2016
    Posts
    1,956
    Helped
    347 / 347
    Points
    9,412
    Level
    23

    Re: How to trace the original of netlist gates back to the original RTL description

    Quote Originally Posted by noureddine-as View Post
    Okay ThisIsNotSam, that's what I do for know. The problem I had is with the leaf cells generated from the assign statements and muxes and stuff like that.
    I'm working this around by isolating each part in a separate module in order for its consumption to be visible in the PrimeTime Power hierarchical reports.

    Thanks fo the information anyway!

    - - - Updated - - -



    Do you if there are any way to label particular statements (for example assign) in SystemVerilog? Or any other way to generate an additional hierarchy level other than using modules would do the trick.

    I tried for example dummy generate like the following, but obviously it gets optimized away by DC.
    [CODE]
    genvar i;
    generate
    for (i = 0; i < 1; i++) begin : label
    assign output = Some_Logic_Op_Here ;
    end
    endgenerate
    [\CODE]
    this analysis is so fine grained, it's hard to think why one owuld need to understand the power consumption of a handful of cells when a modern IP has 1M+ cells.
    Really, I am not Sam.


    1 members found this post helpful.

  5. #5
    Newbie level 6
    Points: 624, Level: 5

    Join Date
    Apr 2017
    Posts
    14
    Helped
    0 / 0
    Points
    624
    Level
    5

    Re: How to trace the original of netlist gates back to the original RTL description

    Quote Originally Posted by ThisIsNotSam View Post
    this analysis is so fine grained, it's hard to think why one owuld need to understand the power consumption of a handful of cells when a modern IP has 1M+ cells.
    No, what I mean is that, In the IP (which is actually a floating-point unit) there are a lot of arithmetic stuff .. and it's all combinational. So when it's synthesized you no longer no what comes from where .. so I want design compiler to label the names of the cells instances somehow, sow I can have an intuition about where they would come from.

    Again I'm beginner in HW/ASIC dev, but I'm exploring the possibilities .. Thanks for the ideas!



    •   AltAdvertisement

        
       

  6. #6
    Advanced Member level 5
    Points: 9,412, Level: 23

    Join Date
    Apr 2016
    Posts
    1,956
    Helped
    347 / 347
    Points
    9,412
    Level
    23

    Re: How to trace the original of netlist gates back to the original RTL description

    I don't know if there is a way to achieve what you want. I am leaning to say no, there isn't. If you really need this analysis, you can create a more fragmented hierarchy and force the tool not to ungroup anything.
    Really, I am not Sam.


    1 members found this post helpful.

  7. #7
    Super Moderator
    Points: 266,359, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    46,544
    Helped
    14165 / 14165
    Points
    266,359
    Level
    100

    Re: How to trace the original of netlist gates back to the original RTL description

    Did you try to synthesize with different optimizer goals and timing constraints? A possible reason for increased power consumption could be that the synthesizer is duplicating gates to achieve timing constraints.


    1 members found this post helpful.

--[[ ]]--