SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
Into the Depths of OpenAccess: Timing Constraints Implementation

                                  Timothy J. Ehrler, Senior Principal Engineer
                               Philips Semiconductors, Design Technology Group
                                     8375 S. River Pkwy., Tempe, AZ 85284
                                                  tim.ehrler@philips.com




Abstract
The OpenAccess EDA application database was
contributed to the industry by Cadence Design Systems,
whose in-house development team has performed all core
code development. This contribution includes the
maintenance of current and future API and reference
implementation releases as well as the implementation of
roadmap items prioritized by the OpenAccess Change
Team. One such requested item, in response to                         Figure 1 - OpenAccess Development Roadmap
OpenAccess Coalition member company requests, was
the development of sufficient capabilities to incorporate         Development of API support for timing and other design
timing constraint information within the database. This           constraints, a significant item within the roadmap, was
could not be immediately undertaken by Cadence,                   initiated with the formation of the Timing Constraint
however, due to a lack of available resources with which          Workgroup. The responsibility of this group was to define
to develop and implement these capabilities.                      the timing constraint data requirements compatible with
                                                                  intent of common industry use of Synopsys SDC [2]. The
Because of its importance to the migration efforts within         resulting specification [3] was delivered to the change
Philips Semiconductors and other coalition members, we            team for consideration by Cadence as the core code
resourced this development to accelerate its availability.        development and integration provider. Since Cadence
This paper, then, describes this development and                  resources were fully committed to the development of the
implementation effort, which was the first of its kind            upcoming OpenAccess 2.2 release, the change team
outside of the contributing Cadence development and               requested implementation resources from its members.
integration teams. The development process, experiences,          Philips Semiconductors, recognizing the importance of
and encountered issues are addressed within, including            this capability, both within Philips as a critical migration
those regarding database/package hierarchy & data                 requirement as well as among other coalition members,
inheritance and extended design & value data structure            contributed the necessary resources and successfully
implementation. Particular attention is paid to related           implemented the timing constraints and transferred the
issues concerning compatibility with past and future              deliverables to Cadence for integration.
releases.
                                                                  2. Planning for Success
1. Introduction                                                   Planning for this development project followed the
In order to formally guide the evolution of OpenAccess            Philips Overall System Realization Process (OSRP),
beyond the original requirements, and in accordance with          which defines the formal process for all phases of project
prioritized set of enhancements proposed by the                   execution, including required documentation, gates, and
OpenAccess Coalition, the OpenAccess Change Team                  milestones. Because many of the document requirements
maintains a “live” technology roadmap [1] that defines            were satisfied by the change team and workgroup
the direction of development over the next few releases.          deliverables, the process was tailored as a subproject, as
The general roadmap is shown in Figure 1.                         shown in Figure 2, subordinate to the overall OpenAccess
                                                                  release development.




                                                         - 1 of 8 -
PS
                                                CS
                                                PIA
                                                             CA
                                                             SRA    PC
                                                                                          4. Gaining Insight
OpenAccess
Change          CRS                                                Integration            The source code base on which development began was
Team
                                                                                          build 5 beta release b005, which was later migrated to
Timing
Constraints
Work group
                      FRS                                                                 public release 2.2.0 [4]. The development team was only
                                                                                          very generally familiar with the public 2.1 release [5], and
Implementers                PIF   PMP   Sched                                             changes from that release to this beta release revealed
                                                                                          many critical programming and               “philosophical”
                                                 S/W   UTR
                                                                                          differences that impacted this effort.
                                                       UsM

                                                                                          To satisfy future extensibility and flexibility
                                                                                          requirements, however, the concept of rules was
                 Figure 2 - OSRP Development Process                                      transformed into one of constraints beginning with this
                                                                                          set of 2.2 releases, with the corresponding change from
                                                                                          the oaRule class to new oaConstraint and related classes.
The approach taken to planning this development was
                                                                                          This change, as well as the accompanying hierarchy
based primarily on available resources. A pair of
                                                                                          associated with their implementation and use model,
resources was originally dedicated to this effort – the
                                                                                          forced some changes of the original estimates and task
primary at 50% availability and the secondary at 75%.
                                                                                          allocation.
Planning estimates resulted in an initial duration of ~90
days, which ended up being significantly affected by
factors and issues encountered later.                                                     While the oaRule class was relatively simplistic, as shown
                                                                                          in Figure 4,
Resource estimates were based on building upon the
technology rule class oaRule in a rather straightforward
manner, the simplicity of the development timeline of
which is shown in Figure 3.




               Figure 3 - Project Plan Duration Estimates

3. Equipping for Development
Development platform selection resulted as much from
the source code installation capability as from platform
and development environment availability. HP-UX
installation was uneventful, but development capabilities
were limited, if any. Linux installation was fraught with
issues, but the development environment was adequate
and stable. Since our primary objective concerned                                                        Figure 4 - oaRule Schema
development, this led to installation on a shared directory
on an HP-UX system with data management under CVS.                                        the oaConstraint class and use model is considerably
The development was then done in a Red Hat Linux                                          more complex, as shown in Figure 5. This required a
environment, with GNU gcc C++ compiler and gdb                                            different and more inter-dependent development approach
debugger, which proved sufficient for the task.                                           than originally anticipated.



                                                                                 - 2 of 8 -
6. Enforcing Compatibility
                                                                            Enumerated data type values are defined by the
                                                                            sequentially enumerated private subtype values of related
                                                                            data items, and offset within the public data type
                                                                            enumerations by the first item of that data type. An
                                                                            example for values is shown in Table 2.

                                                                                  Private SubType                                Public Type
                                                                          Definition                         Value    Enumeration                     Value
                                                                          oavValueTypeBool                  0x0000U   oacBooleanValueType              218
                                                                          oavValueTypeInt                   0x0001U   oacIntValueType                  219
                                                                          oavValueTypeFlt                   0x0002U   oacFltValueType                  220
                                                                          oavValueTypeLayerArray            0x0003U   oacLayerArrayValueType           221
                                                                          oavValueTypeInt1DTbl              0x0004U   oacInt1DTblValueType             222
                                                                          oavValueTypeFlt1DTbl              0x0005U   oacFlt1DTblValueType             223
                                                                          oavValueTypeInt2DTbl              0x0006U   oacInt2DTblValueType             224
                                                                          oavValueTypeFlt2DTbl              0x0007U   oacFlt2DTblValueType             225
                                                                          oavValueTypeIntFltTbl             0x0008U   oacIntFltTblValueType            226
                                                                          oavValueTypeFltIntFltTbl          0x0009U   oacFltIntFltTblValueType         227
             Figure 5 - oaConstraint Schema                               oavValueTypeDualInt               0x000aU   oacDualIntValueType              228
                                                                          oavValueTypeDualInt1DTbl          0x000bU   oacDualInt1DTblValueType         229
                                                                          oavValueTypeBoxArray              0x000cU   oacBoxArrayValueType             230
5. Organization, Structure, & Relationships                               oavValueTypeValueArray            0x000dU   oacValueArrayValueType           231
                                                                          oavValueTypeViaDefArray           0x000eU   oacViaDefArrayValueType          232
OpenAccess is organized as three related ‘packages’:                      oavValueTypeLayer                 0x000fU   oacLayerValueType                233
• base - generally available defined classes also used by                 oavValueTypeAntennaRatio          0x0010U   oacAntennaRatioValueType         234
    tech and design packages                                              oavValueTypeAntennaRatioArray     0x0011U   oacAntennaRatioArrayValueType    235
                                                                          oavValueTypeViaDef2DTbl           0x0012U   oacViaDef2DTblValueType          236
• tech - technical package derived from & based on
    base package, intended primarily for use related to                           Table 2 - Value Type & Subtype Relationship
    technology data but also usable by design package
• design - design package derived from & based on base                      Although the last three values are tech package values,
    and tech packages, intended primarily for use related                   they are sequential to the preceding base package values
    to design data                                                          because they were implemented at the same time. Since
                                                                            many more enumerated public types surround this block
This ‘package’ relationship extends into all areas relevant                 of enumerated values, subsequent value implementations
to constraint definition and usage, ranging from values to                  could not be made sequential with these, as shown in
definitions to parameters to constraints. This concept not                  Table 3.
only defines the data hierarchy, but also significantly
impacts the base & derived class inheritance & data                               Private SubType                                Public Type
                                                                         Definition                           Value   Enumeration                      Value
management elements associated with these class objects,
                                                                         oavValueTypeString                 0x0013U   oacStringValueType                269
some of which are shown in Table 1.                                      oavValueTypeDualString             0x0014U   oacDualStringValueType            270
                                                                         oavValueTypeQuadString             0x0015U   oacQuadStringValueType            271
   Package   values          data objects     constraints                oavValueTypeControlType            0x0016U   oacControlTypeValueType           272
   base      oaValue         oaObject         oaConstraint               oavValueTypeLoadType               0x0017U   oacLoadTypeValueType              273
   tech      oaTechValue     oaTechObject     oaTechConstraint           oavValueTypeStateTransition        0x0018U   oacStateTransitionValueType       274
   design    oaDesignValue   oaDesignObject   oaDesignConstraint         oavValueTypeStateTransitionArray   0x0019U   oacStateTransitionArrayValueType 275
                                                                         oavValueTypeTimingType             0x001aU   oacTimingTypeValueType            276
      Table 1 - Object Class Package Inheritance                         oavValueTypeTimingTypeArray        0x001bU   oacTimingTypeArrayValueType       277
                                                                         oavValueTypeClockRelation          0x001cU   oacClockRelationValueType         278
                                                                         oavValueTypePropagateType          0x001dU   oacPropagateTypeValueType         279
Prior to the development of timing constraints, purely                   oavValueTypeTimingWindow           0x001eU   oacTimingWindowValueType          280
design related values did not exist but were created for
design level constraint use. Previously, an oaValue could                    Table 3 - Constraint Related Value Types & Subtypes
exist for base, tech, or design usage or an oaTechValue,
derived from oaValue, could be used for base or tech                        The first three data types are base package related, the last
usage. Now, an oaDesignValue, derived from                                  three are design package related, and the remaining are
oaTechValue, is specifically design related. An example                     tech package related. Not only are these items not
of this would be the value of an analysis timing window                     sequential with those previously defined, but neither are
(oaTimingWindowValue). No design-specific objects of                        newer values types sequential with previously
this type had previously existed, so this class, derived                    implemented ones within the same package. This is
from oaDesignValue also required definition, as did the                     forced by compatibility requirements that [enumerated]
associated data types.                                                      data types must remain constant among releases, but
                                                                            complicates internal data management processes,


                                                                   - 3 of 8 -
resulting in non-trivial code modifications in all affected                                                  concerted development efforts were started to implement
related areas.                                                                                               the required timing constraint information [3]. Based on
                                                                                                             this architectural knowledge, the implementation
7. Virtual Persistence                                                                                       proceeded in the following order:
                                                                                                             1. constraint related value objects
Even though OpenAccess is presented to an application as                                                     2. constraint parameter definitions
an object-oriented C++ API, the actual manipulated object                                                    3. constraint definitions
data is not the instantiated ‘API object’ itself. Instead, an                                                4. constraint objects
underlying ‘data table’ structure is manipulated through                                                     5. design logic related objects
an associated ‘table object’. A much-simplified                                                              6. clock related objects
representation of these relationships is shown in Figure 6.
                                                     data table                                              Prior to much of this development, however, were the
                                                                                                             modifications, enhancements, and additions to
 API object              table object
                                                                                   database                  architectural and structural areas of OpenAccess in order
                                                                                    storage
                                                                                                             to accommodate the required hierarchically oriented and
                                                                                                             derived data structures and data management mechanisms
                                                                                                             necessary to support the implementation of the timing
                                                                                                             constraint information model. Among those areas most
     Figure 6 - General Object & Data Relationship                                                           significantly affected involved the extensions of:
                                                                                                             • data type definitions and enumerations to cover
Although transparent to the application, this hidden                                                             additional data and object types
complexity allows database compatibility by isolating the                                                    • value objects into design package for isolation from
object from the data manipulation, while at the same time                                                        tech package
the manipulated data is isolated from the stored data, thus                                                  • constraint and constraint group member objects into
allowing for another level of compatibility.                                                                     design package

Because of these object and data manipulation                                                                9. Implementation Commences
relationships, and especially in the context of derived                                                      In addition to those private subtypes and public types
related objects, many non-trivial data structure and                                                         shown in Table 3, corresponding definitions and
derivative object modifications were required to ensure                                                      enumerations were required for data types and objects
compatibility while at the same time not degrading                                                           more directly related to constraints as shown in Table 4.
performance or data integrity. A very simplistic
representation of a small subset of constructs and their                                                         Private SubType                           Public Type
inter-relationships is shown in Figure 7.                                                               Definition                          Value Enumeration                           Value
                                                                                                        oavConstraintDefTypeGeneral        0x0003U   oacGeneralConstraintDefType        259
        oaValue                  oaValueTbl                                                             oavConstraintDefTypeEdge           0x0004U   oacEdgeConstraintDefType           260
                                                         in-memory database data
                                                                                                        oavConstraintDefTypeClockRelated   0x0005U   oacClockRelatedConstraintDefType   261
                                                                                                        oavConstraintDefTypePath           0x0006U   oacPathConstraintDefType           262
      oaTechValue              oaTechValueTbl
                                                                                       database         oavConstraintDefTypeCompound       0x0007U   oacCompoundConstraintDefType       263
                                                                                        storage

                                                                                                        oavConstraintTypeGeneral           0x0003U   oacGeneralConstraintType            264
                                                                                                        oavConstraintTypeEdge              0x0004U   oacEdgeConstraintType               265
     oaDesignValue            oaDesignValueTbl
                                                                                                        oavConstraintTypeClockRelated      0x0005U   oacClockRelatedConstraintType       266
                                                                                                        oavConstraintTypePath              0x0006U   oacPathConstraintType               267
                                                                                                        oavConstraintTypeCompound          0x0007U   oacCompoundConstraintType           268
  oaClockRelationValue     oaClockRelationValueTbl
                                                                                                               Table 4 - Constraint Related Data Types & Subtypes
       create instance



   Figure 7 - Example Object & Data Relationships                                                            Note that by this time the timing constraints had been
                                                                                                             logically classified into five categories:
It should be noted here that the information & values of                                                 •     general - simple value constraint applied to a logic
object ‘type’ & ‘subtype’ constants serve as index &                                                              point
location information for data structures & data storage                                                  •     edge - simple value constraint applied to a logic point
mechanisms. This illustrates the requirement for the                                                              with associated state transition
consistent values of such defined & enumerated constants                                                 •     clock related - simple value constraint applied to a logic
across database releases to ensure and enforce                                                                    point with associated state transition in relation to
compatibility and data integrity.                                                                                 clock with associated state transition
                                                                                                         •     path - constraint applied to a logic path with associated
8. The Structure Evolves                                                                                          state transitions
Having investigated and studied the organization, data
model, and relationships within OpenAccess in detail,

                                                                                                  - 4 of 8 -
•     compound - constraint applied to a logic point and                    in some areas to ensure compatibility and data integrity. A
        requiring associated constraints for full constraint                particular observation was that of the “compound”
        definition (later re-defined)                                       constraint category that contained a single constraint
                                                                            concerning logic driving cells other than clocks. As
    Also defined were the required design logic and analysis                recommended, the implementation was changed to
    related data object information shown in Table 5.                       include the transition constraint values as parameters to
                                                                            the API rather than requiring their application as further
                                                                            constraints for completeness. At the same time, the
         Private Data Type              Public Type
    Definition               Value Enumeration             Value            constraint specifying a clock driver was moved to this
    oacClockDataType          74   oacClockType             256             same category, providing a consistent set of constraints
    oacLogicPointDataType     73   oacLogicPointType        257             within this appropriately renamed “driver” category.
    oacWaveformDataType       75   oacWaveformType          258
        Table 5 - Design Logic & Analysis Data Objects                      Finally, implementation progress was significantly
                                                                            impacted by the loss of one-half of the development team,
                                                                            resulting in another extension to the schedule and
    It must be noted here that the development and
                                                                            ultimately the planned delivery date.
    implementation of these data objects was not completed
    until close to the end of development efforts due to
    scheduling and resourcing issues. These were therefore                  11. The Path[s] Well-chosen
    defined in a very trivial manner so that development in all             The concept of a logic design path, crucial to many of the
    other areas could continue to completion, allowing a more               timing constraint objects, did not yet exist within
    efficient use of the available resources.                               OpenAccess. In order to prevent an explosion of
                                                                            persistent constraint data, and enabling a more succinct
    10. Embracing Change                                                    definition of multi-point paths, an encompassing
                                                                            description of a logic design path is defined as “an
    One of the more severe impacts on the development effort
                                                                            ordered array of logic points”. Logic points in turn are
    was the anticipated release of the production source code
                                                                            defined as “a set of one or more connected occurrence
    for the 2.2.0 release of OpenAccess. While not an
                                                                            elements associated with a set of one or more signal state
    insurmountable effort, the merging of source code
                                                                            transitions”. Given the interconnected logic elements of
    developed on the beta b005 base with that of the
                                                                            Figure 8,
    production release was not insignificant. In particular, the
    juxtaposition of some constant definitions and                                        ( , )
    enumerations from the base development source code                           otA                        ( )          ( )
    required a concerted effort to re-align current                                                         onC
                                                                                                                         oitD       SET
                                                                                                                                D         Q
    development code to the production release. Furthermore,                       oitB
    the lack of insight into what could have been a significant                   ( , )                                             CLR
                                                                                                                                          Q

    change in architecture, structure, or data models within
    the production release necessitated a concerted                                         Figure 8 - Example Logic Path
    assessment of the released source code base to ensure that
    no functional discrepancies resulted from the merging of
                                                                            an encompassing logic path can be defined as:
    the development code.
                                                                            • starting at either the occurrence term otA or the
                                                                                 occurrence instance term oitb, and having either a
    Later in the project, resource unavailability became a                       rising or falling signal state transition
    serious detriment to the progress of this development
                                                                            • passing through occurrence net onC with a falling
    effort. Unanticipated periods of jury duty and extended
                                                                                 signal state transition
    business travel, as well as critical internal issues requiring
                                                                            • ending at the occurrence instance term oitD with a
    the temporary re-allocation of resources to resolve,
                                                                                 rising signal state transition
    extended the scheduled effort by one-third past the
    original plan.
                                                                            Implementation of this construct, however, required the
                                                                            creation of a number of new design objects:
    As development continued, discussions and code reviews
    with system integrator Cadence yielded some                             • oaPathPointArray - an array (oaArray) of design
    observations and suggestions that affected the then-                        objects (oaDesignObject*)
    current implementation. In an effort to more concisely                  • oaStateTransitionArray – an array (oaArray) of
    allocate data objects to the most appropriate package, a                    enumerated        state       transition     constants
    corresponding re-allocation was performed, resulting in                     (oaStateTransitionEnum)
    the re-structuring of a large portion of implemented code.              • oaLogicPoint – an object consisting of a set of one or
    Furthermore, derivation and inheritance models were also                    more path points (oaPathPointArray) and a set of one
    impacted, necessitating a more extensive re-organization                    or more state transitions (oaStateTransitionArray)

                                                                   - 5 of 8 -
• oaLogicPointArray – an ordered array (oaArray) of                  Waveforms having all of the above characteristics would
    logic points (oaLogicPoint*)                                     be consistent with the current definition of an ideal clock.
                                                                     More complex waveforms, however, may be defined by
Providing an implementation consistent with other                    combining state transitions to non-logical levels and non-
database objects, however, requires the capability for               zero transition times. Representations of simple and
equivalence comparisons, revealing another unforeseen                complex waveforms are shown in Figure 10.
issue. Homogenous tables of data base objects require
only the location index information, but heterogeneous                    1
database object tables also require data object type                                                   H iZ              ?
information. In previous OpenAccess releases this data
                                                                          0
was implemented as structure type oaIndexTypePairData.                            ideal & logical             com plex
However, since class member equivalence functions are
required for comparison purposes, this structure was                          Figure 10 - Simple & Complex Waveforms
converted to a class of the same name, and the
corresponding        equivalence     member        functions         A derived clock is basically an instance-specific
implemented therein. Although extensively used                       modification of a previously defined clock signal having
throughout the database implementation, this conversion              propagated through one or more stages of design logic
had relatively little impact since a C++ structure is                and having a defined set of transition characteristics.
actually the [most] trivial instance of a class - converting         Although important for analysis and constraint purposes,
from a structure to a class had no impact on the data                the four types of derived clocks are relatively trivial
structure or its use throughout OpenAccess.                          implementations compared with a created clock. The
                                                                     types of derived clocks created for constraint purposes
                                                                     include:
12. Beating the Clock                                                • divided – derivative of existing signal, having its
Crucial for timing analysis, clocks must exist to enable                  frequency divided by an integer scaling factor
their application within the scope of timing constraints,            • multiplied – derivative of existing signal, having its
hence the creation of the oaClock class object. As with                   frequency multiplied by an integer scaling factor
logic design paths, the concept of a clock had not                   • edge specific – derivative of an existing signal,
previously been defined within OpenAccess, either                         consisting of an ordered subset of edges
created with a waveform or derived from another signal.              • shifted edge specific – derivative of an existing signal,
The relationships between waveforms and created &                         consisting of an ordered subset of shifted edges
derived clocks are shown in Figure 9.
                                                                     13. Are we there, yet?
                                                                     Because of the inter-related nature of the modifications,
                                design
                                 logic
                                                                     enhancements, and additions to the OpenAccess source
       oaWaveform                                                    code required for even a prototypical implementation of
                     oaClock             oaClock
                    (created)            (derived)
                                                                     the related constraint objects, very little isolated object
                                                                     unit testing was performed as implementation progressed.
     Figure 9 - Waveform and Clock Relationships                     Although interim and full builds were performed on a
                                                                     regular basis during development, actual executable
Created clocks require the definition of a series of rising          testing was necessarily postponed until at least a “critical
and falling signal transitions over a specified period to be         mass” of development had been implemented – up to but
applied to design logic signal points for analysis purposes.         excluding oaClock and oaWaveform development and
This “set of edges”, usually transitioning between logic             implementation.
levels zero (‘0’) and one (‘1’) and having state transition
times of zero (‘0.0’), is defined with the oaWaveform                An advantage gained by this approach was the early
class object. However, to allow for flexibility and future           opportunity to “discover” development environment
extensibility of waveforms, the oaWaveform class was                 limits and restrictions not previously encountered. Indeed,
created that provides for the primitive clock signal                 early compilations revealed a makefile environment string
requirements noted above, as well as providing for                   limit that was exceeded when the additional source files
transition states other than logic level ‘0’ and ‘1’ and non-        were included. Fortunately, this was easily resolved by
zero transition times. By allowing such capabilities,                the judicious removal of “white space” within, but future
waveforms can then be defined as having one or more of               releases will require modifications to this approach as
the following characteristics:                                       more files are added and this string limit is once again
• logical - transition between logic states ‘0’ and ‘1’              exceeded with no remaining means of resolution.
• ideal - edge transition times of ‘0.0’
• circular - first edge transition start state same as last          As implementation progressed to the point that execution
          edge transition end state                                  unit testing was applicable, decisions concerning the most

                                                            - 6 of 8 -
appropriate approach necessary for sufficient testing of            14. Delivering the Goods
the code were made. Rather than creating test benches
                                                                    Deliverables for this project fell into four categories:
from scratch to properly test the various additions and
                                                                    • project documentation - documents associated with the
enhancements to the OpenAccess code base, studies of
                                                                        resulting development deliverables
the test cases accompanying the source code distribution
confirmed that some could be modified and/or adapted to             • development aids - applications and test cases used to
test new but related objects within the then-current scope              assist in the development of the product
of those test cases. With this testing approach, then, the          • product documentation - documents that define, and
test cases shown in Table 6 were used to:                               otherwise specify, the interface, use model, and other
• ensure that no errors had been introduced into otherwise              application related information of the developed
     stable areas                                                       product
• verify that new elements did not impact similar,                  • product source code - source code employed to
     previously implemented ones and performed as                       implement the reference implementation of the
     expected                                                           developed product
• verify expected functionality of newly implemented
     elements                                                       The specific items delivered to the system integrator
• confirm suspected issues in previously implemented                included:
     areas                                                          • Test case / test application
                                                                    • Development test report (UTR)
Test Case               Change State   Verification Usage           • OpenAccess 2.2 database development implementation
oaConstraint            Unchanged      No regression                     source code
oaConstraintDef         Unchanged      No regression
                                       New constraint               The user guide was not delivered, by agreement with
                                          definitions               Cadence, so that they could create the appropriate
oaConstraintParam       Unchanged      No regression                documentation with the necessary styles and formats to be
oaConstraintParamDef    Unchanged      No regression                consistent with current release standards. All other items,
                                       New constraint               however, were delivered to Cadence for final integration
                                          parameter definitions
                                                                    and testing the first of March 2005.
oaValue                 Modified       No regression
                                       New value types
oaClock                 New            New clock and                15. Conclusions and Recommendations
                                          waveform objects
                                                                    Other than a couple of very minor test case issues, almost
oaLogicPath             New            New logic path objects
                                                                    certainly the result of improper use of derived test cases,
oaDesignConstraint      New            New constraints
oaSimpleConstraint      Modified       Confirm other test case      validation was successfully completed and the
                                          failure                   development and implementation of timing constraints
                                                                    and the related required data objects was considered to
                  Table 6 - Test Case Usage                         have been successful.

The scope of unit testing covered all elements directly             Although all of the oaClock objects have been
related to those added and/or modified for timing                   implemented by overloading that class’s create member
constraints:                                                        function, a more appropriate implementation would be to
• data value classes                                                derive appropriate clock classes from oaClock as a base
• clock and associated waveform classes                             class corresponding to the derived clock types. This
• logic path and path point classes                                 recommendation was forwarded to the integration team,
• implemented timing constraint and definition classes              but it may or may not be implemented as such when
                                                                    publicly released.
while also implicitly testing           these architectural,
structural, and organizational items and related classes:           The 'package' structure should also be re-architected to
• value and data type compatibility enhancements                    enable the exclusion of tech package elements from the
     • [now] non-sequential type & subtype correlation,             design package. The current package hierarchy does not
          setting, mapping, and checking                            allow this capability but instead only allows exclusion of
• value and data ‘package’ derivation and inheritance               design elements from the tech package. This would,
     • ‘design’ package inheritance from ‘tech’ package             however, involve the creation of another level of
     • ‘tech’ package inheritance from ‘base’                       abstraction, which may or may not allow complete
     • inherited class initialization and consistency               compatibility with previous releases – this will involve a
                                                                    rather concerted effort on the part of the system
Final testing and validation, including clocks and                  integrator.
waveforms, was completed by the end of February 2005.

                                                           - 7 of 8 -
16. Play it Again, Sam                                               [5] OpenAccess 2.1 C++ API Specification, September
                                                                         2004, Silicon Integration Initiative (Si2)
As with all projects, 20-20 hindsight reveals a number of
practices, policies, and approaches that may have resulted
in a more efficient development cycle.                               Credits
                                                                     [1] Figure 1 - OpenAccess Development Roadmap,
Probably chief among the areas of improvement would be                   OpenAccess 1H03 technical Roadmap, Version 1.0,
that the preparations for development planning should                    29 May 2003, OpenAccess Coalition, © Silicon
also have included a more extensive investigation of the                 Integration Initiative (Si2)
source code. In particular, if the change in philosophy              [2] Figure 2 - OSRP Development Process, Timing
from the oaRule based concept of previous releases to that               Constraints Implementation Project Plan, Revision
of the oaConstraint based concept in the 2.2 release had                 1.0, 13 Aug 2004, Philips Semiconductors
been apparent much earlier, then it would not have had               [3] Figure 3 - Project Plan Duration Estimates Plan,
such a significant impact on task priorities and resource                Project Management Plan, Revision 1.0, 13 Aug
allocation.                                                              2004, Philips Semiconductors
                                                                     [4] Figure 4 - oaRule Schema, OpenAccess 2.1 C++ API
A more concrete availability of resources, along with                    Specification, September 2004, OpenAccess
contingent alternate resource capacity, would have                       Coalition, © Silicon Integration Initiative (Si2)
reduced or eliminated development delays and the                     [5] Figure 5 - oaConstraint Schema, OpenAccess 2.2
resulting impact on the planned schedule. This is                        C++ API Specification, October 2004, OpenAccess
especially true in light of the impact of the rule/constraint            Coalition, © Silicon Integration Initiative (Si2)
philosophy/concept issues.                                           [6] Table 6 - Test Case Usage, Unit Test Report,
                                                                         Revision 1.0, 1 Mar 2005, Philips Semiconductors
Although Cadence was involved and/or consulted during
this development, the majority of these discussions                  Biography
occurred late in the development cycle. The OpenAccess               Timothy received his BS in Computer and Information
2.2 release development and validation responsibilities              Science from The Ohio State University, College of
within Cadence precluded early involvement on their part             Engineering, taking a position as Test Systems Analyst
because of the obvious resource availability issues. More            with Industrial Nucleonics Corporation, followed shortly
intimate involvement and earlier planning & code reviews             thereafter by 14 years with Honeywell Information
could have addressed a number of implementation issues               Systems, now Groupe Bull, involved with their
that were necessary to resolve during development.                   proprietary HDL-based system for large mainframe
                                                                     computer system design.
17. Thanks for the Memories
Development and implementation of the timing                         Timothy joined VLSI Technology, Inc., in 1993 as a staff
constraints would not have been possible without the                 software engineer, heavily involved in the development of
dedication of the workgroup that contributed to the                  the integrated ASIC design environment, during which
requirements specification for this project:                         time he received a patent for timing analysis and model
• Adil Bhanji, IBM                                                   optimization, with another related patent pending. He
• Lyren Brown, Freescale Semiconductor                               subsequently managed the ASIC tools development group
• Kevin Grant, Freescale Semiconductor                               and, after the acquisition by Philips Semiconductors, later
                                                                     served as the architect the Chip Physical Architecture
• Mark Hahn, Cadence Design Systems
                                                                     design area of the Philips SoC Design Environment for
• Gael Paul, Synplicity
                                                                     leading edge technology designs.
• Joanne Schell, Freescale Semiconductor
• Padmaja Susarla, Mentor Graphic Corporation
                                                                     Timothy was a contributing member of the Advanced
• Sean Tyler, Hewlett-Packard
                                                                     Library Format (ALF) and led the migration effort within
• Jim Wilmore, Hewlett-Packard
                                                                     Philips Semiconductors to a design environment based on
                                                                     ALF. He is a member of the Open Library Architecture
References                                                           (OLA) / IEEE-1481 working group and led efforts toward
[1] OpenAccess 1H03 technical Roadmap, Version 1.0,                  the development and support of OLA libraries and EDA
    29 May 2003, OpenAccess Coalition                                tools within Philips. He is an active participant in the
[2] Using Synopsys Design Constraints Format, Version                OpenAccess initiative as a Coalition representative and
    U-2003.03, March 2003, Synopsys, Inc.                            Change Team member, as well as a member of the
[3] Timing Constraints Data Requirements, 30 March                   Golden Gate Working Group and chair of the Timing
    2004, OpenAccess Timing Working Group                            Working Group, and is currently leading the efforts
[4] OpenAccess 2.2 C++ API Specification, October                    within Philips in migrating towards OpenAccess
    2004, Silicon Integration Initiative (Si2)                       based/compliant design environments.

                                                            - 8 of 8 -

Weitere ähnliche Inhalte

Was ist angesagt?

Grammier.richard
Grammier.richardGrammier.richard
Grammier.richardNASAPMC
 
Vince.bilardo
Vince.bilardoVince.bilardo
Vince.bilardoNASAPMC
 
D brown gbezos_shirshorn
D brown gbezos_shirshornD brown gbezos_shirshorn
D brown gbezos_shirshornNASAPMC
 
Majerowicz
MajerowiczMajerowicz
MajerowiczNASAPMC
 
Costello kenneth
Costello kennethCostello kenneth
Costello kennethNASAPMC
 
Vonnie simonsen
Vonnie simonsenVonnie simonsen
Vonnie simonsenNASAPMC
 
Woods.edwards.pm challenge bpr presentation 2012 v1
Woods.edwards.pm challenge bpr presentation 2012 v1Woods.edwards.pm challenge bpr presentation 2012 v1
Woods.edwards.pm challenge bpr presentation 2012 v1NASAPMC
 
Fujieh.maura
Fujieh.mauraFujieh.maura
Fujieh.mauraNASAPMC
 
Bilardo.vince
Bilardo.vinceBilardo.vince
Bilardo.vinceNASAPMC
 
Bauer.frank
Bauer.frankBauer.frank
Bauer.frankNASAPMC
 
Kelly crumbley
Kelly crumbleyKelly crumbley
Kelly crumbleyNASAPMC
 
Pianificazione Progetti 4
Pianificazione Progetti 4Pianificazione Progetti 4
Pianificazione Progetti 4Tek Com
 
James.ortiz
James.ortizJames.ortiz
James.ortizNASAPMC
 
Tim.honeycutt
Tim.honeycuttTim.honeycutt
Tim.honeycuttNASAPMC
 
Status reporting guidelines
Status reporting guidelinesStatus reporting guidelines
Status reporting guidelinesEric Tachibana
 
Corcoran webster
Corcoran websterCorcoran webster
Corcoran websterNASAPMC
 
Ch2 pressman
Ch2   pressmanCh2   pressman
Ch2 pressmansuresh461
 
Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...
Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...
Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...InSync2011
 
Brantley.wayne
Brantley.wayneBrantley.wayne
Brantley.wayneNASAPMC
 

Was ist angesagt? (20)

Grammier.richard
Grammier.richardGrammier.richard
Grammier.richard
 
Vince.bilardo
Vince.bilardoVince.bilardo
Vince.bilardo
 
D brown gbezos_shirshorn
D brown gbezos_shirshornD brown gbezos_shirshorn
D brown gbezos_shirshorn
 
Majerowicz
MajerowiczMajerowicz
Majerowicz
 
Costello kenneth
Costello kennethCostello kenneth
Costello kenneth
 
Vonnie simonsen
Vonnie simonsenVonnie simonsen
Vonnie simonsen
 
Woods.edwards.pm challenge bpr presentation 2012 v1
Woods.edwards.pm challenge bpr presentation 2012 v1Woods.edwards.pm challenge bpr presentation 2012 v1
Woods.edwards.pm challenge bpr presentation 2012 v1
 
Fujieh.maura
Fujieh.mauraFujieh.maura
Fujieh.maura
 
Sparrow
SparrowSparrow
Sparrow
 
Bilardo.vince
Bilardo.vinceBilardo.vince
Bilardo.vince
 
Bauer.frank
Bauer.frankBauer.frank
Bauer.frank
 
Kelly crumbley
Kelly crumbleyKelly crumbley
Kelly crumbley
 
Pianificazione Progetti 4
Pianificazione Progetti 4Pianificazione Progetti 4
Pianificazione Progetti 4
 
James.ortiz
James.ortizJames.ortiz
James.ortiz
 
Tim.honeycutt
Tim.honeycuttTim.honeycutt
Tim.honeycutt
 
Status reporting guidelines
Status reporting guidelinesStatus reporting guidelines
Status reporting guidelines
 
Corcoran webster
Corcoran websterCorcoran webster
Corcoran webster
 
Ch2 pressman
Ch2   pressmanCh2   pressman
Ch2 pressman
 
Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...
Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...
Primavera _ Jawad Shakeel _ Portfolio Comparison ad resource analysis using P...
 
Brantley.wayne
Brantley.wayneBrantley.wayne
Brantley.wayne
 

Andere mochten auch

OLA Conf 2002 - OLA in SoC Design Environment - paper
OLA Conf 2002 - OLA in SoC Design Environment - paperOLA Conf 2002 - OLA in SoC Design Environment - paper
OLA Conf 2002 - OLA in SoC Design Environment - paperTim55Ehrler
 
Your online presence
Your online presenceYour online presence
Your online presencePamela Comer
 
SnUG 1996 - NLD Optimization for ISM - slides
SnUG 1996 - NLD Optimization for ISM - slidesSnUG 1996 - NLD Optimization for ISM - slides
SnUG 1996 - NLD Optimization for ISM - slidesTim55Ehrler
 
Texas S Ta R Chart
Texas S Ta R ChartTexas S Ta R Chart
Texas S Ta R ChartPamela Comer
 
Pamela Comer Assign 2 Edld 5362
Pamela Comer Assign 2 Edld 5362Pamela Comer Assign 2 Edld 5362
Pamela Comer Assign 2 Edld 5362Pamela Comer
 
Week 5 assignment bcisd plan for technology 2010 2013
Week 5 assignment bcisd plan for technology 2010 2013Week 5 assignment bcisd plan for technology 2010 2013
Week 5 assignment bcisd plan for technology 2010 2013Pamela Comer
 
6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...
6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...
6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...Tim55Ehrler
 
DesignCon 2004 - OpenAccess Migration - Design Environment Integration
DesignCon 2004 - OpenAccess Migration - Design Environment IntegrationDesignCon 2004 - OpenAccess Migration - Design Environment Integration
DesignCon 2004 - OpenAccess Migration - Design Environment IntegrationTim55Ehrler
 
Presentación Curso Desarrollo Humano 2016
Presentación Curso Desarrollo Humano 2016Presentación Curso Desarrollo Humano 2016
Presentación Curso Desarrollo Humano 2016CEDURE
 

Andere mochten auch (9)

OLA Conf 2002 - OLA in SoC Design Environment - paper
OLA Conf 2002 - OLA in SoC Design Environment - paperOLA Conf 2002 - OLA in SoC Design Environment - paper
OLA Conf 2002 - OLA in SoC Design Environment - paper
 
Your online presence
Your online presenceYour online presence
Your online presence
 
SnUG 1996 - NLD Optimization for ISM - slides
SnUG 1996 - NLD Optimization for ISM - slidesSnUG 1996 - NLD Optimization for ISM - slides
SnUG 1996 - NLD Optimization for ISM - slides
 
Texas S Ta R Chart
Texas S Ta R ChartTexas S Ta R Chart
Texas S Ta R Chart
 
Pamela Comer Assign 2 Edld 5362
Pamela Comer Assign 2 Edld 5362Pamela Comer Assign 2 Edld 5362
Pamela Comer Assign 2 Edld 5362
 
Week 5 assignment bcisd plan for technology 2010 2013
Week 5 assignment bcisd plan for technology 2010 2013Week 5 assignment bcisd plan for technology 2010 2013
Week 5 assignment bcisd plan for technology 2010 2013
 
6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...
6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...
6th OA Conference - Apr 2005 - Into the Depths of OpenAccess - Timing Constra...
 
DesignCon 2004 - OpenAccess Migration - Design Environment Integration
DesignCon 2004 - OpenAccess Migration - Design Environment IntegrationDesignCon 2004 - OpenAccess Migration - Design Environment Integration
DesignCon 2004 - OpenAccess Migration - Design Environment Integration
 
Presentación Curso Desarrollo Humano 2016
Presentación Curso Desarrollo Humano 2016Presentación Curso Desarrollo Humano 2016
Presentación Curso Desarrollo Humano 2016
 

Ähnlich wie Into the Depths of OpenAccess - paper

Epf composer overviewpart1
Epf composer overviewpart1Epf composer overviewpart1
Epf composer overviewpart1Abdelkader Larbi
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOpsMoataz Nabil
 
Innovate 2014 DevOps: Release and Deploy Keynote
Innovate 2014 DevOps: Release and Deploy KeynoteInnovate 2014 DevOps: Release and Deploy Keynote
Innovate 2014 DevOps: Release and Deploy KeynoteDaniel Berg
 
What is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdfWhat is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdfkomalmanu87
 
Enabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOpsEnabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOpsJosh Boyd
 
Adopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolarisAdopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolarisAmazon Web Services
 
A Collaborative Research Proposal To The NSF Research Accelerator For Multip...
A Collaborative Research Proposal To The NSF  Research Accelerator For Multip...A Collaborative Research Proposal To The NSF  Research Accelerator For Multip...
A Collaborative Research Proposal To The NSF Research Accelerator For Multip...Scott Donald
 
DevOps, from inception to conclusion
DevOps, from inception to conclusionDevOps, from inception to conclusion
DevOps, from inception to conclusionAbhishek Gaurav
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld
 
RAD - System i - Presentation
RAD - System i - PresentationRAD - System i - Presentation
RAD - System i - PresentationChuck Walker
 
Review of the myths on original software
Review of the myths on original softwareReview of the myths on original software
Review of the myths on original softwareijseajournal
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101Sanjeev Sharma
 
A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...
A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...
A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...ijseajournal
 
PaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READY
PaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READYPaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READY
PaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READYRene Claudio
 
Why Feasibility delays in the IT organizations - a study on the ground reality
Why Feasibility delays in the IT organizations -  a study on the ground realityWhy Feasibility delays in the IT organizations -  a study on the ground reality
Why Feasibility delays in the IT organizations - a study on the ground realityReddappa Gowd Bandi
 
Tips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdf
Tips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdfTips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdf
Tips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdfAkhashRamnath
 

Ähnlich wie Into the Depths of OpenAccess - paper (20)

10.1.1.85.7969
10.1.1.85.796910.1.1.85.7969
10.1.1.85.7969
 
Epf composer overviewpart1
Epf composer overviewpart1Epf composer overviewpart1
Epf composer overviewpart1
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
Dev ops
Dev opsDev ops
Dev ops
 
Innovate 2014 DevOps: Release and Deploy Keynote
Innovate 2014 DevOps: Release and Deploy KeynoteInnovate 2014 DevOps: Release and Deploy Keynote
Innovate 2014 DevOps: Release and Deploy Keynote
 
DevSecOps on Azure
DevSecOps on AzureDevSecOps on Azure
DevSecOps on Azure
 
What is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdfWhat is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdf
 
Enabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOpsEnabling multicloud in the enterprise with DevSecOps
Enabling multicloud in the enterprise with DevSecOps
 
Adopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolarisAdopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolaris
 
A Collaborative Research Proposal To The NSF Research Accelerator For Multip...
A Collaborative Research Proposal To The NSF  Research Accelerator For Multip...A Collaborative Research Proposal To The NSF  Research Accelerator For Multip...
A Collaborative Research Proposal To The NSF Research Accelerator For Multip...
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
DevOps, from inception to conclusion
DevOps, from inception to conclusionDevOps, from inception to conclusion
DevOps, from inception to conclusion
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
 
RAD - System i - Presentation
RAD - System i - PresentationRAD - System i - Presentation
RAD - System i - Presentation
 
Review of the myths on original software
Review of the myths on original softwareReview of the myths on original software
Review of the myths on original software
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
 
A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...
A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...
A DECISION SUPPORT SYSTEM TO CHOOSE OPTIMAL RELEASE CYCLE LENGTH IN INCREMENT...
 
PaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READY
PaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READYPaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READY
PaaS POV_To PaaS or Not There really is no question_150601_FINAL_PRINT_READY
 
Why Feasibility delays in the IT organizations - a study on the ground reality
Why Feasibility delays in the IT organizations -  a study on the ground realityWhy Feasibility delays in the IT organizations -  a study on the ground reality
Why Feasibility delays in the IT organizations - a study on the ground reality
 
Tips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdf
Tips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdfTips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdf
Tips_Tricks_for_Oracle_E-Business Suite_Database_Upgrade.pdf
 

Kürzlich hochgeladen

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Kürzlich hochgeladen (20)

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Into the Depths of OpenAccess - paper

  • 1. Into the Depths of OpenAccess: Timing Constraints Implementation Timothy J. Ehrler, Senior Principal Engineer Philips Semiconductors, Design Technology Group 8375 S. River Pkwy., Tempe, AZ 85284 tim.ehrler@philips.com Abstract The OpenAccess EDA application database was contributed to the industry by Cadence Design Systems, whose in-house development team has performed all core code development. This contribution includes the maintenance of current and future API and reference implementation releases as well as the implementation of roadmap items prioritized by the OpenAccess Change Team. One such requested item, in response to Figure 1 - OpenAccess Development Roadmap OpenAccess Coalition member company requests, was the development of sufficient capabilities to incorporate Development of API support for timing and other design timing constraint information within the database. This constraints, a significant item within the roadmap, was could not be immediately undertaken by Cadence, initiated with the formation of the Timing Constraint however, due to a lack of available resources with which Workgroup. The responsibility of this group was to define to develop and implement these capabilities. the timing constraint data requirements compatible with intent of common industry use of Synopsys SDC [2]. The Because of its importance to the migration efforts within resulting specification [3] was delivered to the change Philips Semiconductors and other coalition members, we team for consideration by Cadence as the core code resourced this development to accelerate its availability. development and integration provider. Since Cadence This paper, then, describes this development and resources were fully committed to the development of the implementation effort, which was the first of its kind upcoming OpenAccess 2.2 release, the change team outside of the contributing Cadence development and requested implementation resources from its members. integration teams. The development process, experiences, Philips Semiconductors, recognizing the importance of and encountered issues are addressed within, including this capability, both within Philips as a critical migration those regarding database/package hierarchy & data requirement as well as among other coalition members, inheritance and extended design & value data structure contributed the necessary resources and successfully implementation. Particular attention is paid to related implemented the timing constraints and transferred the issues concerning compatibility with past and future deliverables to Cadence for integration. releases. 2. Planning for Success 1. Introduction Planning for this development project followed the In order to formally guide the evolution of OpenAccess Philips Overall System Realization Process (OSRP), beyond the original requirements, and in accordance with which defines the formal process for all phases of project prioritized set of enhancements proposed by the execution, including required documentation, gates, and OpenAccess Coalition, the OpenAccess Change Team milestones. Because many of the document requirements maintains a “live” technology roadmap [1] that defines were satisfied by the change team and workgroup the direction of development over the next few releases. deliverables, the process was tailored as a subproject, as The general roadmap is shown in Figure 1. shown in Figure 2, subordinate to the overall OpenAccess release development. - 1 of 8 -
  • 2. PS CS PIA CA SRA PC 4. Gaining Insight OpenAccess Change CRS Integration The source code base on which development began was Team build 5 beta release b005, which was later migrated to Timing Constraints Work group FRS public release 2.2.0 [4]. The development team was only very generally familiar with the public 2.1 release [5], and Implementers PIF PMP Sched changes from that release to this beta release revealed many critical programming and “philosophical” S/W UTR differences that impacted this effort. UsM To satisfy future extensibility and flexibility requirements, however, the concept of rules was Figure 2 - OSRP Development Process transformed into one of constraints beginning with this set of 2.2 releases, with the corresponding change from the oaRule class to new oaConstraint and related classes. The approach taken to planning this development was This change, as well as the accompanying hierarchy based primarily on available resources. A pair of associated with their implementation and use model, resources was originally dedicated to this effort – the forced some changes of the original estimates and task primary at 50% availability and the secondary at 75%. allocation. Planning estimates resulted in an initial duration of ~90 days, which ended up being significantly affected by factors and issues encountered later. While the oaRule class was relatively simplistic, as shown in Figure 4, Resource estimates were based on building upon the technology rule class oaRule in a rather straightforward manner, the simplicity of the development timeline of which is shown in Figure 3. Figure 3 - Project Plan Duration Estimates 3. Equipping for Development Development platform selection resulted as much from the source code installation capability as from platform and development environment availability. HP-UX installation was uneventful, but development capabilities were limited, if any. Linux installation was fraught with issues, but the development environment was adequate and stable. Since our primary objective concerned Figure 4 - oaRule Schema development, this led to installation on a shared directory on an HP-UX system with data management under CVS. the oaConstraint class and use model is considerably The development was then done in a Red Hat Linux more complex, as shown in Figure 5. This required a environment, with GNU gcc C++ compiler and gdb different and more inter-dependent development approach debugger, which proved sufficient for the task. than originally anticipated. - 2 of 8 -
  • 3. 6. Enforcing Compatibility Enumerated data type values are defined by the sequentially enumerated private subtype values of related data items, and offset within the public data type enumerations by the first item of that data type. An example for values is shown in Table 2. Private SubType Public Type Definition Value Enumeration Value oavValueTypeBool 0x0000U oacBooleanValueType 218 oavValueTypeInt 0x0001U oacIntValueType 219 oavValueTypeFlt 0x0002U oacFltValueType 220 oavValueTypeLayerArray 0x0003U oacLayerArrayValueType 221 oavValueTypeInt1DTbl 0x0004U oacInt1DTblValueType 222 oavValueTypeFlt1DTbl 0x0005U oacFlt1DTblValueType 223 oavValueTypeInt2DTbl 0x0006U oacInt2DTblValueType 224 oavValueTypeFlt2DTbl 0x0007U oacFlt2DTblValueType 225 oavValueTypeIntFltTbl 0x0008U oacIntFltTblValueType 226 oavValueTypeFltIntFltTbl 0x0009U oacFltIntFltTblValueType 227 Figure 5 - oaConstraint Schema oavValueTypeDualInt 0x000aU oacDualIntValueType 228 oavValueTypeDualInt1DTbl 0x000bU oacDualInt1DTblValueType 229 oavValueTypeBoxArray 0x000cU oacBoxArrayValueType 230 5. Organization, Structure, & Relationships oavValueTypeValueArray 0x000dU oacValueArrayValueType 231 oavValueTypeViaDefArray 0x000eU oacViaDefArrayValueType 232 OpenAccess is organized as three related ‘packages’: oavValueTypeLayer 0x000fU oacLayerValueType 233 • base - generally available defined classes also used by oavValueTypeAntennaRatio 0x0010U oacAntennaRatioValueType 234 tech and design packages oavValueTypeAntennaRatioArray 0x0011U oacAntennaRatioArrayValueType 235 oavValueTypeViaDef2DTbl 0x0012U oacViaDef2DTblValueType 236 • tech - technical package derived from & based on base package, intended primarily for use related to Table 2 - Value Type & Subtype Relationship technology data but also usable by design package • design - design package derived from & based on base Although the last three values are tech package values, and tech packages, intended primarily for use related they are sequential to the preceding base package values to design data because they were implemented at the same time. Since many more enumerated public types surround this block This ‘package’ relationship extends into all areas relevant of enumerated values, subsequent value implementations to constraint definition and usage, ranging from values to could not be made sequential with these, as shown in definitions to parameters to constraints. This concept not Table 3. only defines the data hierarchy, but also significantly impacts the base & derived class inheritance & data Private SubType Public Type Definition Value Enumeration Value management elements associated with these class objects, oavValueTypeString 0x0013U oacStringValueType 269 some of which are shown in Table 1. oavValueTypeDualString 0x0014U oacDualStringValueType 270 oavValueTypeQuadString 0x0015U oacQuadStringValueType 271 Package values data objects constraints oavValueTypeControlType 0x0016U oacControlTypeValueType 272 base oaValue oaObject oaConstraint oavValueTypeLoadType 0x0017U oacLoadTypeValueType 273 tech oaTechValue oaTechObject oaTechConstraint oavValueTypeStateTransition 0x0018U oacStateTransitionValueType 274 design oaDesignValue oaDesignObject oaDesignConstraint oavValueTypeStateTransitionArray 0x0019U oacStateTransitionArrayValueType 275 oavValueTypeTimingType 0x001aU oacTimingTypeValueType 276 Table 1 - Object Class Package Inheritance oavValueTypeTimingTypeArray 0x001bU oacTimingTypeArrayValueType 277 oavValueTypeClockRelation 0x001cU oacClockRelationValueType 278 oavValueTypePropagateType 0x001dU oacPropagateTypeValueType 279 Prior to the development of timing constraints, purely oavValueTypeTimingWindow 0x001eU oacTimingWindowValueType 280 design related values did not exist but were created for design level constraint use. Previously, an oaValue could Table 3 - Constraint Related Value Types & Subtypes exist for base, tech, or design usage or an oaTechValue, derived from oaValue, could be used for base or tech The first three data types are base package related, the last usage. Now, an oaDesignValue, derived from three are design package related, and the remaining are oaTechValue, is specifically design related. An example tech package related. Not only are these items not of this would be the value of an analysis timing window sequential with those previously defined, but neither are (oaTimingWindowValue). No design-specific objects of newer values types sequential with previously this type had previously existed, so this class, derived implemented ones within the same package. This is from oaDesignValue also required definition, as did the forced by compatibility requirements that [enumerated] associated data types. data types must remain constant among releases, but complicates internal data management processes, - 3 of 8 -
  • 4. resulting in non-trivial code modifications in all affected concerted development efforts were started to implement related areas. the required timing constraint information [3]. Based on this architectural knowledge, the implementation 7. Virtual Persistence proceeded in the following order: 1. constraint related value objects Even though OpenAccess is presented to an application as 2. constraint parameter definitions an object-oriented C++ API, the actual manipulated object 3. constraint definitions data is not the instantiated ‘API object’ itself. Instead, an 4. constraint objects underlying ‘data table’ structure is manipulated through 5. design logic related objects an associated ‘table object’. A much-simplified 6. clock related objects representation of these relationships is shown in Figure 6. data table Prior to much of this development, however, were the modifications, enhancements, and additions to API object table object database architectural and structural areas of OpenAccess in order storage to accommodate the required hierarchically oriented and derived data structures and data management mechanisms necessary to support the implementation of the timing constraint information model. Among those areas most Figure 6 - General Object & Data Relationship significantly affected involved the extensions of: • data type definitions and enumerations to cover Although transparent to the application, this hidden additional data and object types complexity allows database compatibility by isolating the • value objects into design package for isolation from object from the data manipulation, while at the same time tech package the manipulated data is isolated from the stored data, thus • constraint and constraint group member objects into allowing for another level of compatibility. design package Because of these object and data manipulation 9. Implementation Commences relationships, and especially in the context of derived In addition to those private subtypes and public types related objects, many non-trivial data structure and shown in Table 3, corresponding definitions and derivative object modifications were required to ensure enumerations were required for data types and objects compatibility while at the same time not degrading more directly related to constraints as shown in Table 4. performance or data integrity. A very simplistic representation of a small subset of constructs and their Private SubType Public Type inter-relationships is shown in Figure 7. Definition Value Enumeration Value oavConstraintDefTypeGeneral 0x0003U oacGeneralConstraintDefType 259 oaValue oaValueTbl oavConstraintDefTypeEdge 0x0004U oacEdgeConstraintDefType 260 in-memory database data oavConstraintDefTypeClockRelated 0x0005U oacClockRelatedConstraintDefType 261 oavConstraintDefTypePath 0x0006U oacPathConstraintDefType 262 oaTechValue oaTechValueTbl database oavConstraintDefTypeCompound 0x0007U oacCompoundConstraintDefType 263 storage oavConstraintTypeGeneral 0x0003U oacGeneralConstraintType 264 oavConstraintTypeEdge 0x0004U oacEdgeConstraintType 265 oaDesignValue oaDesignValueTbl oavConstraintTypeClockRelated 0x0005U oacClockRelatedConstraintType 266 oavConstraintTypePath 0x0006U oacPathConstraintType 267 oavConstraintTypeCompound 0x0007U oacCompoundConstraintType 268 oaClockRelationValue oaClockRelationValueTbl Table 4 - Constraint Related Data Types & Subtypes create instance Figure 7 - Example Object & Data Relationships Note that by this time the timing constraints had been logically classified into five categories: It should be noted here that the information & values of • general - simple value constraint applied to a logic object ‘type’ & ‘subtype’ constants serve as index & point location information for data structures & data storage • edge - simple value constraint applied to a logic point mechanisms. This illustrates the requirement for the with associated state transition consistent values of such defined & enumerated constants • clock related - simple value constraint applied to a logic across database releases to ensure and enforce point with associated state transition in relation to compatibility and data integrity. clock with associated state transition • path - constraint applied to a logic path with associated 8. The Structure Evolves state transitions Having investigated and studied the organization, data model, and relationships within OpenAccess in detail, - 4 of 8 -
  • 5. compound - constraint applied to a logic point and in some areas to ensure compatibility and data integrity. A requiring associated constraints for full constraint particular observation was that of the “compound” definition (later re-defined) constraint category that contained a single constraint concerning logic driving cells other than clocks. As Also defined were the required design logic and analysis recommended, the implementation was changed to related data object information shown in Table 5. include the transition constraint values as parameters to the API rather than requiring their application as further constraints for completeness. At the same time, the Private Data Type Public Type Definition Value Enumeration Value constraint specifying a clock driver was moved to this oacClockDataType 74 oacClockType 256 same category, providing a consistent set of constraints oacLogicPointDataType 73 oacLogicPointType 257 within this appropriately renamed “driver” category. oacWaveformDataType 75 oacWaveformType 258 Table 5 - Design Logic & Analysis Data Objects Finally, implementation progress was significantly impacted by the loss of one-half of the development team, resulting in another extension to the schedule and It must be noted here that the development and ultimately the planned delivery date. implementation of these data objects was not completed until close to the end of development efforts due to scheduling and resourcing issues. These were therefore 11. The Path[s] Well-chosen defined in a very trivial manner so that development in all The concept of a logic design path, crucial to many of the other areas could continue to completion, allowing a more timing constraint objects, did not yet exist within efficient use of the available resources. OpenAccess. In order to prevent an explosion of persistent constraint data, and enabling a more succinct 10. Embracing Change definition of multi-point paths, an encompassing description of a logic design path is defined as “an One of the more severe impacts on the development effort ordered array of logic points”. Logic points in turn are was the anticipated release of the production source code defined as “a set of one or more connected occurrence for the 2.2.0 release of OpenAccess. While not an elements associated with a set of one or more signal state insurmountable effort, the merging of source code transitions”. Given the interconnected logic elements of developed on the beta b005 base with that of the Figure 8, production release was not insignificant. In particular, the juxtaposition of some constant definitions and ( , ) enumerations from the base development source code otA ( ) ( ) required a concerted effort to re-align current onC oitD SET D Q development code to the production release. Furthermore, oitB the lack of insight into what could have been a significant ( , ) CLR Q change in architecture, structure, or data models within the production release necessitated a concerted Figure 8 - Example Logic Path assessment of the released source code base to ensure that no functional discrepancies resulted from the merging of an encompassing logic path can be defined as: the development code. • starting at either the occurrence term otA or the occurrence instance term oitb, and having either a Later in the project, resource unavailability became a rising or falling signal state transition serious detriment to the progress of this development • passing through occurrence net onC with a falling effort. Unanticipated periods of jury duty and extended signal state transition business travel, as well as critical internal issues requiring • ending at the occurrence instance term oitD with a the temporary re-allocation of resources to resolve, rising signal state transition extended the scheduled effort by one-third past the original plan. Implementation of this construct, however, required the creation of a number of new design objects: As development continued, discussions and code reviews with system integrator Cadence yielded some • oaPathPointArray - an array (oaArray) of design observations and suggestions that affected the then- objects (oaDesignObject*) current implementation. In an effort to more concisely • oaStateTransitionArray – an array (oaArray) of allocate data objects to the most appropriate package, a enumerated state transition constants corresponding re-allocation was performed, resulting in (oaStateTransitionEnum) the re-structuring of a large portion of implemented code. • oaLogicPoint – an object consisting of a set of one or Furthermore, derivation and inheritance models were also more path points (oaPathPointArray) and a set of one impacted, necessitating a more extensive re-organization or more state transitions (oaStateTransitionArray) - 5 of 8 -
  • 6. • oaLogicPointArray – an ordered array (oaArray) of Waveforms having all of the above characteristics would logic points (oaLogicPoint*) be consistent with the current definition of an ideal clock. More complex waveforms, however, may be defined by Providing an implementation consistent with other combining state transitions to non-logical levels and non- database objects, however, requires the capability for zero transition times. Representations of simple and equivalence comparisons, revealing another unforeseen complex waveforms are shown in Figure 10. issue. Homogenous tables of data base objects require only the location index information, but heterogeneous 1 database object tables also require data object type H iZ ? information. In previous OpenAccess releases this data 0 was implemented as structure type oaIndexTypePairData. ideal & logical com plex However, since class member equivalence functions are required for comparison purposes, this structure was Figure 10 - Simple & Complex Waveforms converted to a class of the same name, and the corresponding equivalence member functions A derived clock is basically an instance-specific implemented therein. Although extensively used modification of a previously defined clock signal having throughout the database implementation, this conversion propagated through one or more stages of design logic had relatively little impact since a C++ structure is and having a defined set of transition characteristics. actually the [most] trivial instance of a class - converting Although important for analysis and constraint purposes, from a structure to a class had no impact on the data the four types of derived clocks are relatively trivial structure or its use throughout OpenAccess. implementations compared with a created clock. The types of derived clocks created for constraint purposes include: 12. Beating the Clock • divided – derivative of existing signal, having its Crucial for timing analysis, clocks must exist to enable frequency divided by an integer scaling factor their application within the scope of timing constraints, • multiplied – derivative of existing signal, having its hence the creation of the oaClock class object. As with frequency multiplied by an integer scaling factor logic design paths, the concept of a clock had not • edge specific – derivative of an existing signal, previously been defined within OpenAccess, either consisting of an ordered subset of edges created with a waveform or derived from another signal. • shifted edge specific – derivative of an existing signal, The relationships between waveforms and created & consisting of an ordered subset of shifted edges derived clocks are shown in Figure 9. 13. Are we there, yet? Because of the inter-related nature of the modifications, design logic enhancements, and additions to the OpenAccess source oaWaveform code required for even a prototypical implementation of oaClock oaClock (created) (derived) the related constraint objects, very little isolated object unit testing was performed as implementation progressed. Figure 9 - Waveform and Clock Relationships Although interim and full builds were performed on a regular basis during development, actual executable Created clocks require the definition of a series of rising testing was necessarily postponed until at least a “critical and falling signal transitions over a specified period to be mass” of development had been implemented – up to but applied to design logic signal points for analysis purposes. excluding oaClock and oaWaveform development and This “set of edges”, usually transitioning between logic implementation. levels zero (‘0’) and one (‘1’) and having state transition times of zero (‘0.0’), is defined with the oaWaveform An advantage gained by this approach was the early class object. However, to allow for flexibility and future opportunity to “discover” development environment extensibility of waveforms, the oaWaveform class was limits and restrictions not previously encountered. Indeed, created that provides for the primitive clock signal early compilations revealed a makefile environment string requirements noted above, as well as providing for limit that was exceeded when the additional source files transition states other than logic level ‘0’ and ‘1’ and non- were included. Fortunately, this was easily resolved by zero transition times. By allowing such capabilities, the judicious removal of “white space” within, but future waveforms can then be defined as having one or more of releases will require modifications to this approach as the following characteristics: more files are added and this string limit is once again • logical - transition between logic states ‘0’ and ‘1’ exceeded with no remaining means of resolution. • ideal - edge transition times of ‘0.0’ • circular - first edge transition start state same as last As implementation progressed to the point that execution edge transition end state unit testing was applicable, decisions concerning the most - 6 of 8 -
  • 7. appropriate approach necessary for sufficient testing of 14. Delivering the Goods the code were made. Rather than creating test benches Deliverables for this project fell into four categories: from scratch to properly test the various additions and • project documentation - documents associated with the enhancements to the OpenAccess code base, studies of resulting development deliverables the test cases accompanying the source code distribution confirmed that some could be modified and/or adapted to • development aids - applications and test cases used to test new but related objects within the then-current scope assist in the development of the product of those test cases. With this testing approach, then, the • product documentation - documents that define, and test cases shown in Table 6 were used to: otherwise specify, the interface, use model, and other • ensure that no errors had been introduced into otherwise application related information of the developed stable areas product • verify that new elements did not impact similar, • product source code - source code employed to previously implemented ones and performed as implement the reference implementation of the expected developed product • verify expected functionality of newly implemented elements The specific items delivered to the system integrator • confirm suspected issues in previously implemented included: areas • Test case / test application • Development test report (UTR) Test Case Change State Verification Usage • OpenAccess 2.2 database development implementation oaConstraint Unchanged No regression source code oaConstraintDef Unchanged No regression New constraint The user guide was not delivered, by agreement with definitions Cadence, so that they could create the appropriate oaConstraintParam Unchanged No regression documentation with the necessary styles and formats to be oaConstraintParamDef Unchanged No regression consistent with current release standards. All other items, New constraint however, were delivered to Cadence for final integration parameter definitions and testing the first of March 2005. oaValue Modified No regression New value types oaClock New New clock and 15. Conclusions and Recommendations waveform objects Other than a couple of very minor test case issues, almost oaLogicPath New New logic path objects certainly the result of improper use of derived test cases, oaDesignConstraint New New constraints oaSimpleConstraint Modified Confirm other test case validation was successfully completed and the failure development and implementation of timing constraints and the related required data objects was considered to Table 6 - Test Case Usage have been successful. The scope of unit testing covered all elements directly Although all of the oaClock objects have been related to those added and/or modified for timing implemented by overloading that class’s create member constraints: function, a more appropriate implementation would be to • data value classes derive appropriate clock classes from oaClock as a base • clock and associated waveform classes class corresponding to the derived clock types. This • logic path and path point classes recommendation was forwarded to the integration team, • implemented timing constraint and definition classes but it may or may not be implemented as such when publicly released. while also implicitly testing these architectural, structural, and organizational items and related classes: The 'package' structure should also be re-architected to • value and data type compatibility enhancements enable the exclusion of tech package elements from the • [now] non-sequential type & subtype correlation, design package. The current package hierarchy does not setting, mapping, and checking allow this capability but instead only allows exclusion of • value and data ‘package’ derivation and inheritance design elements from the tech package. This would, • ‘design’ package inheritance from ‘tech’ package however, involve the creation of another level of • ‘tech’ package inheritance from ‘base’ abstraction, which may or may not allow complete • inherited class initialization and consistency compatibility with previous releases – this will involve a rather concerted effort on the part of the system Final testing and validation, including clocks and integrator. waveforms, was completed by the end of February 2005. - 7 of 8 -
  • 8. 16. Play it Again, Sam [5] OpenAccess 2.1 C++ API Specification, September 2004, Silicon Integration Initiative (Si2) As with all projects, 20-20 hindsight reveals a number of practices, policies, and approaches that may have resulted in a more efficient development cycle. Credits [1] Figure 1 - OpenAccess Development Roadmap, Probably chief among the areas of improvement would be OpenAccess 1H03 technical Roadmap, Version 1.0, that the preparations for development planning should 29 May 2003, OpenAccess Coalition, © Silicon also have included a more extensive investigation of the Integration Initiative (Si2) source code. In particular, if the change in philosophy [2] Figure 2 - OSRP Development Process, Timing from the oaRule based concept of previous releases to that Constraints Implementation Project Plan, Revision of the oaConstraint based concept in the 2.2 release had 1.0, 13 Aug 2004, Philips Semiconductors been apparent much earlier, then it would not have had [3] Figure 3 - Project Plan Duration Estimates Plan, such a significant impact on task priorities and resource Project Management Plan, Revision 1.0, 13 Aug allocation. 2004, Philips Semiconductors [4] Figure 4 - oaRule Schema, OpenAccess 2.1 C++ API A more concrete availability of resources, along with Specification, September 2004, OpenAccess contingent alternate resource capacity, would have Coalition, © Silicon Integration Initiative (Si2) reduced or eliminated development delays and the [5] Figure 5 - oaConstraint Schema, OpenAccess 2.2 resulting impact on the planned schedule. This is C++ API Specification, October 2004, OpenAccess especially true in light of the impact of the rule/constraint Coalition, © Silicon Integration Initiative (Si2) philosophy/concept issues. [6] Table 6 - Test Case Usage, Unit Test Report, Revision 1.0, 1 Mar 2005, Philips Semiconductors Although Cadence was involved and/or consulted during this development, the majority of these discussions Biography occurred late in the development cycle. The OpenAccess Timothy received his BS in Computer and Information 2.2 release development and validation responsibilities Science from The Ohio State University, College of within Cadence precluded early involvement on their part Engineering, taking a position as Test Systems Analyst because of the obvious resource availability issues. More with Industrial Nucleonics Corporation, followed shortly intimate involvement and earlier planning & code reviews thereafter by 14 years with Honeywell Information could have addressed a number of implementation issues Systems, now Groupe Bull, involved with their that were necessary to resolve during development. proprietary HDL-based system for large mainframe computer system design. 17. Thanks for the Memories Development and implementation of the timing Timothy joined VLSI Technology, Inc., in 1993 as a staff constraints would not have been possible without the software engineer, heavily involved in the development of dedication of the workgroup that contributed to the the integrated ASIC design environment, during which requirements specification for this project: time he received a patent for timing analysis and model • Adil Bhanji, IBM optimization, with another related patent pending. He • Lyren Brown, Freescale Semiconductor subsequently managed the ASIC tools development group • Kevin Grant, Freescale Semiconductor and, after the acquisition by Philips Semiconductors, later served as the architect the Chip Physical Architecture • Mark Hahn, Cadence Design Systems design area of the Philips SoC Design Environment for • Gael Paul, Synplicity leading edge technology designs. • Joanne Schell, Freescale Semiconductor • Padmaja Susarla, Mentor Graphic Corporation Timothy was a contributing member of the Advanced • Sean Tyler, Hewlett-Packard Library Format (ALF) and led the migration effort within • Jim Wilmore, Hewlett-Packard Philips Semiconductors to a design environment based on ALF. He is a member of the Open Library Architecture References (OLA) / IEEE-1481 working group and led efforts toward [1] OpenAccess 1H03 technical Roadmap, Version 1.0, the development and support of OLA libraries and EDA 29 May 2003, OpenAccess Coalition tools within Philips. He is an active participant in the [2] Using Synopsys Design Constraints Format, Version OpenAccess initiative as a Coalition representative and U-2003.03, March 2003, Synopsys, Inc. Change Team member, as well as a member of the [3] Timing Constraints Data Requirements, 30 March Golden Gate Working Group and chair of the Timing 2004, OpenAccess Timing Working Group Working Group, and is currently leading the efforts [4] OpenAccess 2.2 C++ API Specification, October within Philips in migrating towards OpenAccess 2004, Silicon Integration Initiative (Si2) based/compliant design environments. - 8 of 8 -