Home > Community > Forums > Logic Design > RTL Compiler does not make use of "non-conventional" multiple-output cells

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 RTL Compiler does not make use of "non-conventional" multiple-output cells 

Last post Fri, Sep 9 2011 4:51 PM by grasshopper. 3 replies.
Started by vdbem 29 Nov 2010 07:44 AM. Topic has 3 replies and 4024 views
Page 1 of 1 (4 items)
Sort Posts:
  • Mon, Nov 29 2010 7:44 AM

    • vdbem
    • Not Ranked
    • Joined on Thu, Jul 17 2008
    • Posts 2
    • Points 40
    RTL Compiler does not make use of "non-conventional" multiple-output cells Reply

    Hi,

    I will try to be brief, but if you need any detail please ask me,

    in summary, the problem is: if I describe in my liberty file a cell with multiple-outputs, the mapper (RTL Compiler) is not able to make use of it ... (if I put them together with convetional single-output cells, the tool just use the single-output cells, if I put only the multiple-output cells, it is not able to complete the mapping because does nor recognize the fundamental basic functions needed)

    probable important points:
        1) There is no syntax error during the execution
        2) The logic functions of the outputs does not share inputs, an example is S1 = !(A & B) and S2 = !(C + D), so they are not like a Full-Adder..
        3) I've been using functional liberties (.lib with no information about power or timing, just the logic functions and the area set to "1"),

    If I use a liberty like this one below, which is basically a cell with two "encapsulated" inverters, the tool does not even recognize the existence of inverters in the library,

      cell(two_encapsulated_invs){
        area : 1;
        pin(a){ direction : input; }
        pin(b){ direction : input; }
        pin(Z0){   direction : output;
                      function : "!a";
                      timing(){  related_pin : "a";  }
                  }
        pin(Z1){  direction : output;
                     function : "!b";
                     timing(){  related_pin : "b";  }
                  }
      }

    so my question is:
     - Is it possible to make RTL Compiler able to use multiple-output cells if they are not the "expected kind" like a full-adder?
       (in any version of it, ours is v08.10-s222_1 (32-bit), built Mar 25 2009 (32-bit), but the question is more like to know if the map algorithm is aware of such situation, or what command would make it aware)

    thank you,
    best regards

    • Post Points: 35
  • Fri, Sep 9 2011 5:45 AM

    • eklikeroomys
    • Top 150 Contributor
    • Joined on Fri, Mar 11 2011
    • Pretoria, South Africa
    • Posts 55
    • Points 815
    Re: RTL Compiler does not make use of "non-conventional" multiple-output cells Reply

     Hi, have you found a solution to this problem? I am currently having similar problems in the design of a T flip flop which has two outputs, where one of the outputs has a combinational timing arc and acts as an enable for another T flip flop when used in a binary counter. 

     Unfortunately, this is not my only concern since RTL compiler is also unable to identify the function of the T flip flop even when the combinational arc is removed from the cell.

    I used Encounter Library Characterizer to characterize the T flip flop and a .lib was written without any problems. 

     Is there limitations to the types of cells that RTL Compiler is able to use for synthesis?

    Thank you

    • Post Points: 20
  • Fri, Sep 9 2011 10:38 AM

    • vdbem
    • Not Ranked
    • Joined on Thu, Jul 17 2008
    • Posts 2
    • Points 40
    Re: RTL Compiler does not make use of "non-conventional" multiple-output cells Reply

    Hi,

    I never had an answer for that problem.. and it would still be useful for me.

    What I've been doing is mapping the design with a "conventional" library, and then recombining/exchanging cells out of RTL Compiler, by scripts, directly in the structural HDL. A very unsatisfactory flow... 

    regards,
    • Post Points: 5
  • Fri, Sep 9 2011 4:51 PM

    • grasshopper
    • Top 25 Contributor
    • Joined on Thu, Jul 17 2008
    • Chelmsford, MA
    • Posts 242
    • Points 3,205
    Re: RTL Compiler does not make use of "non-conventional" multiple-output cells Reply

     Hi vdbem,

     

     RC does indeed support MOGs (multi-output gates) such as compressor cells, etc. However your versions is 2-3 years old and officially unsupported. I suggest you move to RC10.1.302 from http://downloads.cadence.com

     

    gh-

     

    • Post Points: 5
Page 1 of 1 (4 items)
Sort Posts:
Started by vdbem at 29 Nov 2010 07:44 AM. Topic has 3 replies.