Library Explorer and Part Developer Tutorial
Transcription
Library Explorer and Part Developer Tutorial
Library Explorer and Part Developer Tutorial Product Version 14.2 January 2002 1999-2002 Cadence Design Systems, Inc. All rights reserved. Printed in the United States of America. Cadence Design Systems, Inc., 555 River Oaks Parkway, San Jose, CA 95134, USA Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in this document are attributed to Cadence with the appropriate symbol. For queries regarding Cadence’s trademarks, contact the corporate legal department at the address shown above or call 1-800-862-4522. All other trademarks are the property of their respective holders. Restricted Print Permission: This publication is protected by copyright and any unauthorized use of this publication may violate copyright, trademark, and other laws. Except as specified in this permission statement, this publication may not be copied, reproduced, modified, published, uploaded, posted, transmitted, or distributed in any way, without prior written permission from Cadence. This statement grants you permission to print one (1) hard copy of this publication subject to the following conditions: 1. The publication may be used solely for personal, informational, and noncommercial purposes; 2. The publication may not be modified in any way; 3. Any copy of the publication or portion thereof must include all original copyright, trademark, and other proprietary notices and this permission statement; and 4. Cadence reserves the right to revoke this authorization at any time, and any such use shall be discontinued immediately upon written notice from Cadence. Disclaimer: Information in this publication is subject to change without notice and does not represent a commitment on the part of Cadence. The information contained herein is the proprietary and confidential information of Cadence or its licensors, and is supplied subject to, and may be used only by Cadence’s customer in accordance with, a written agreement between Cadence and its customer. Except as may be explicitly set forth in such agreement, Cadence does not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy or usefulness of the information contained in this document. Cadence does not warrant that use of such information will not infringe any third party rights, nor does Cadence assume any liability for damages or costs of any kind that may result from use of such information. Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its successor. Library Explorer and Part Developer Tutorial Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audience Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pre-requisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter Summaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 14 14 15 15 2 Library Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Library Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Physical Organization of Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lib-Cell-View Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Category (.cat) Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 18 18 19 19 24 24 3 Working with a Library Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Types of Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Library Management Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . As a Librarian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . As a Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Library Project Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Library Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 3 27 27 28 28 29 30 31 31 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Library Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Libraries in the Build Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing by Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copying Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing Footprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verifying Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Types of Verifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 32 32 39 39 39 39 39 40 41 41 41 42 42 42 43 43 45 46 46 46 46 47 4 Creating Parts With Pins Split Across Symbols . . . . . . . . . . . . . . . 49 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Part Creation Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating a Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Starting Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting up Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 4 49 49 50 50 51 52 52 52 Product Version 14.2 Library Explorer and Part Developer Tutorial Entering Part Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entering Logical Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intermediate Saving of Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Continuing Pin Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Split Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Saving Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verifying Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Verification Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instantiation and Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing the Part in Concept HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exporting Parts to the Reference Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 61 62 62 63 64 65 66 66 66 72 72 73 75 75 76 76 76 76 77 78 81 81 81 83 83 83 85 5 Modifying a Split Part. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Importing a Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 January 2002 5 Product Version 14.2 Library Explorer and Part Developer Tutorial Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Setting Up Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Opening an Existing Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Modifying Pins List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Modifying Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Modifying Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Viewing the Bits of a Vector Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6 Creating a Multi-Section Symmetrical Part . . . . . . . . . . . . . . . . . . . 104 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Starting Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Up the Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entering Part Properties and Logical Pins Information . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 6 104 104 105 105 105 106 106 106 107 107 107 Product Version 14.2 Library Explorer and Part Developer Tutorial Intermediate Saving of Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Multiple Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copying Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating HAS_FIXED_SIZE Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Modifying Multi-Section Symmetrical Parts . . . . . . . . . . . . . . . . . . 130 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Importing a Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Launching Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Up the Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Pin List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 7 110 110 110 111 119 119 119 122 122 122 128 128 128 128 128 128 129 130 130 131 131 131 131 132 132 133 134 134 134 134 134 134 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 135 135 137 137 137 139 8 Creating Asymmetrical Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entering Part Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Pin Name Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entering Logical Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Multiple Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Saving Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verifying Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 8 140 140 143 144 144 144 146 146 149 149 155 155 155 157 157 161 161 162 162 162 162 Product Version 14.2 Library Explorer and Part Developer Tutorial Alternate Method of Creating an Asymmetrical Part . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9 Modifying Asymmetrical Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Importing a Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting up Part Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Opening the Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Logical Pin List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Updating Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Saving Modified Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Symbol Pin Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changing Symbol Pin Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 9 164 164 164 165 168 168 169 169 169 169 169 169 170 170 170 174 174 174 177 177 178 179 179 179 182 182 182 Product Version 14.2 Library Explorer and Part Developer Tutorial Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 10 Handling Pin Texts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Libraries to a Library Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working with Unassociated Pin Texts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 186 187 187 187 187 189 189 192 193 195 11 Data-Managed Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Data-Managed Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pre-requisites for Creating a DM Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating a Data-Managed Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 196 196 199 201 201 201 213 12 Using XML to Create Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Importing Part Data from an XML Datasheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Symbol Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 10 214 214 214 214 217 Product Version 14.2 Library Explorer and Part Developer Tutorial Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 13 Creating Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating and Applying a Part Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Part Template to Create Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verifying Parts Against Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Property Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin Load Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Symbol Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 219 220 220 221 221 223 223 224 224 224 226 226 227 14 Extracting Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Extracting Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Template Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . January 2002 11 229 229 231 231 233 233 233 233 Product Version 14.2 Library Explorer and Part Developer Tutorial Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 15 Creating VHDL Wrappers and Map Files . . . . . . . . . . . . . . . . . . . . . 235 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating a VHDL Wrapper/Map File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 235 238 238 238 243 16 Creating Verilog Wrappers and Map Files . . . . . . . . . . . . . . . . . . . . 245 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating a Verilog Wrapper/Map File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Task Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 245 245 245 246 249 Index.............................................................................................................................. 251 January 2002 12 Product Version 14.2 Library Explorer and Part Developer Tutorial 1 Introduction Overview In the 14.0 release, Cadence has introduced two new tool suites: ■ PCB Librarian The PCB Librarian tool suite contains the following tools: ■ ❑ Library Explorer ❑ Part Developer ❑ Allegro Librarian PCB Librarian Expert The PCB Librarian Expert tool suite contains the following tools: ❑ Library Explorer Expert ❑ Part Developer Expert ❑ Concept HDL ❑ Checkplus HDL ❑ CAE Views ❑ EDIF Schematic, symbol, and netlist reader/writer ❑ Verilog Model Library ❑ Allegro PCB (includes Allegro Librarian) ❑ General bi-directional mechanical interface (ver14) ❑ IDF bi-directional mechanical interface (version 2 and 3) ❑ IGES bi-directional electrical translator (level 5) January 2002 13 Product Version 14.2 Library Explorer and Part Developer Tutorial Introduction ❑ PADS dB-in translator (version 4, 6 and PowerPCB version 3) ❑ PCAD dB-in translator (version 8) ❑ Zuken-Redac Cadstar dB-in translator (Cadstar 7.6 and Maxi) This tutorial demonstrates the major features of the Library Explorer and Part Developer tools. Using the Library Explorer and Part Developer, you can create and manage libraries and parts in an easy and effective manner. You can create several different type of parts such as asymmetrical parts and large pin count parts. In addition, if you have the Library Explorer Expert and Part Developer Expert, you can maintain versions of libraries and parts. You can also create parts from XML datasheets and create and implement templates for creating parts. Audience Profile The intended audience profile for this tutorial are people who maintain and modify digital libraries for design entry. Pre-requisites The tutorial assumes the familiarity with the following products: ■ Project Manager ■ Concept HDL ■ Allegro How to Use this Tutorial This tutorial provides a hands-on-exercise on creating libraries and parts. To gain the most from this tutorial, you should try out all the steps as documented in the tutorial. The tutorial is based on data provided through datasheets in PDF and XML format. The tutorial has 16 chapters. The first 9 chapters cover the features which are common to both standard and expert versions of the Library Explorer and Part Developer tools. The chapters 10 to 16 contain the features that are exclusive to the expert version of the Library Explorer and Part Developer tool. January 2002 14 Product Version 14.2 Library Explorer and Part Developer Tutorial Introduction Using the Samples The tutorial works with the samples which are installed along with the software. The samples are stored in the following location <your_install_dir>/share/fet/examples/ pcblibex. The name of the file is pl_db.zip for Windows NT platform and pl_db.t.Z for UNIX platforms. You need to extract the samples from the compressed file. When you extract the sample files, it will create the tutorial_project_data directory. This directory has the following subdirectories that are required for the successful completion of the tutorial. Directory Contents datasheets Contains the datasheets for the parts that you will be creating while completing the tutorial footprints Contains the Allegro footprints lcx Contains the lcx library that will be used as a reference library old_parts Contains the parts created in older versions of Part Developer test Contains a sample library project named test.cpm lsttl Contains the ls00 and ls01 parts of the lsttl library. It also contains the category file for the lsttl library Chapter Summaries The tutorial is divided into 16 chapters. Each of these chapters detail the steps involved in creating the different types of parts. Although the steps are similar, each of these chapters cover some of the unique features of Part Developer. Therefore, you should go through the tutorial completely to benefit from the powerful Library Explorer and Part Developer tools. Following is a brief summary of the chapters in the tutorial: Chapter 2, “Library Basics,”, covers the physical organization of a part library. This chapter also covers the different views of a part. Chapter 3, “Working with a Library Project,” describes the types of projects, the library management use models and the library development methodology. You also learn how to create a library project and work in it. January 2002 15 Product Version 14.2 Library Explorer and Part Developer Tutorial Introduction Chapter 4, “Creating Parts With Pins Split Across Symbols,” details the methodology and steps involved in creating a part with pins split across symbols. This chapter also details the method to verify parts and importing them to the reference area. Chapter 5, “Modifying a Split Part,” covers the steps involved in modifying a part which has pins split across symbols. Chapter 6, “Creating a Multi-Section Symmetrical Part,” describes the methodology and steps involved in creating a multi-section symmetrical part. Chapter 7, “Modifying Multi-Section Symmetrical Parts,” details the methodology and steps involved in modifying a multi-section symmetrical part. Chapter 8, “Creating Asymmetrical Parts,” covers the methodology and steps involved in creating asymmetrical parts. Chapter 9, “Modifying Asymmetrical Parts,” describes the steps involved in modifying an asymmetrical part. Chapter 10, “Handling Pin Texts,” details the methodology followed by Part Developer to handle pin texts for a part. Chapter 11, “Data-Managed Projects,” describes the methodology and steps involved in creating and working with data-managed projects. Chapter 12, “Using XML to Create Parts,” details the steps involved in creating parts from XML datasheets. Chapter 13, “Creating Templates,” covers the steps in creating part templates. This chapter also covers the steps involved in using the templates to create parts. Chapter 14, “Extracting Templates,” describes the steps in extracting template information from a part. This chapter also details the steps involved in modifying the extracted templates. Chapter 15, “Creating VHDL Wrappers and Map Files,” details the steps involved in creating and verifying a VHDL wrapper and map file. Chapter 16, “Creating Verilog Wrappers and Map Files,” details the steps involved in creating and verifying a Verilog wrapper and map file. January 2002 16 Product Version 14.2 Library Explorer and Part Developer Tutorial 2 Library Basics Objective In this chapter, you will: ■ Understand the physical organization of a library ■ Understand the different views of a part Overview Libraries are a collection of parts. To enable you to understand the library storage and its organization, a sample lsttl library containing the ls00 and ls01 parts are provided. This sample library is stored in the tutorial_project_data location. January 2002 17 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics Library Concepts Physical Organization of Libraries Each library is a directory and each part of a library is a directory. The part directories are stored under the library directory. For example, the library lsttl is stored in a directory called lsttl. The part ls00 and ls01 are subdirectories in the lsttl directory. Information about a part, such as packaging and graphical information, are stored in different views. A view is nothing else, but a directory under the part. Each part can have many views like chips, entity, sym_1 etc. The information about a view is stored in one or more files under the view directory. For example, the chips view (the chips directory under the part) contains the chips.prt file. This file has the information about the physical packages associated with the part. Note: You can see the set of Cadence-supplied libraries in <your_install_dir>/ share/library. The following section describes the views in more detail. January 2002 18 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics Lib-Cell-View Architecture Views Symbol (sym) View The sym_1 and the sym_2 directories represent the symbol view of the part. The symbol view is the graphical representation of a part in a Concept-HDL drawing. Each part can have one or more symbol views that are in effect different graphical representations. January 2002 19 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics Figure 2-1 Examples of Symbol Views lsttl ls00 sym_1 master.tag symbol.css sym_2 master.tag symbol.css Different symbol views are stored under directories named sym_1, sym_2 and so on. The actual information about each symbol is stored in the symbol.css file stored within the sym_n subdirectories. Package (chips) View The package view or the chip view stores the package information, such as pin names, pin numbers, footprints and electrical information, for a part. This view connects the logical view of a component to its physical view. Pin information, such as pin names, types, loading and physical numbers, is stored in the chips.prt file located in the chips subdirectory. To see the contents chips.prt file of the ls00 part, open it through any text editor such as notepad or vi. Displayed below is a partial screen shot of the chips.prt file for the ls00 component. January 2002 20 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics Figure 2-2 The ls00 chips.prt file The chips.prt file is divided into primitives where each primitive represents the information for a specific package such as DIP, SOIC etc. The primitive is itself divided into a pin and a body section. January 2002 21 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics The pin section defines the logical to physical pin mapping. It also contains information on pin names, pin types, pin loading values and physical pin numbers. The low asserted pins are suffixed with either a ‘*’ , ‘_N’ or a ‘-’ sign. Of special interest is the PIN_NUMBER property which is present for each logical pin of a part. The general syntax is PIN_NUMBER = (pin number,pin number,.....,pin number) The number of comma separated entries describes the number of slots in a part. If the logical pin has a corresponding physical pin for the slot, it is filled with the physical pin number. Otherwise, the pin number is substituted with the value 0. For ls00, A, B and Y are the logical pins. By looking at the PIN_NUMBER entry, you can identify that the part has four slots. Also, since all the logical pins are present across all the slots, the PIN_NUMBER entry for each logical pin has a physical pin in all the four slots. The body section of the chips.prt file contains the power pins information as well as the properties that are associated with a package, such as JEDEC_TYPE etc. These properties are necessary and are used during different stages of the PCB Design front-to-back flow. More information about properties is available in PCB Systems Properties Reference. For more information on the chips.prt file, see Concept-HDL Libraries Reference. Entity View The entity view is stored in the entity subdirectory. This view contains a Verilog module and a VHDL entity declaration. Both of them describe the list of ports found on the part. This view is used when you create Verilog and VHDL wrapper and map files for simulation. For more information about simulation views, see the Concept-HDL Libraries Reference. Part_Table View The Part_Table view stores the Physical Parts Table (.ptf) file. The Physical Parts Table (.ptf) file stores the packaging properties for a part in the library. This file contains information about parts such as package types, manufacturers, part numbers and any custom properties. January 2002 22 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics For example, displayed below is a typical entry from a .ptf file. FILE_TYPE = MULTI_PHYS_TABLE; PART ‘74LVT574’ CLASS = IC :PACK_TYPE = Part_NUMBER | JEDEC_TYPE | DESCRIPTION; DIP = CDS123 | DIP20_3 | FLIP_FLOP SOIC = CDS456 | SOIC20 | FLIP-FLOP LCC = CDS789 | LCC20 | FLIP-FLOP END_PART END. In the above part table file, the following things are of importance: ■ A unique part number is assigned based on package style. ■ An Allegro package symbol name is assigned based on package style. Note: The JEDEC_TYPE property may also be defined in the chips.prt file. However, the part_table view has the priority. ■ A part description is added The PACK_TYPE property is a key property (it is on the left hand side of the equal sign). This implies that every 74LVT574 in the schematic must have the PACK_TYPE property assigned. However, if an 74LVT574 is found that does not have a PACK_TYPE property value of either DIP, SOIC or LCC, the Packager-XL will abort. To set a default PACK_TYPE value, use the OPT statement as follows: :PACK_TYPE (OPT = ‘LCC’) = PART_NUMBER | JEDEC_TYPE | DESCRIPTION; When a 74LVT574 part in the schematic fits the key property description (has a PACK_TYPE property value of either DIP, SOIC or LCC), then the injected properties (they are all on the right side of the equal sign) are added to the packager netlist files (specifically the pstchip.dat file). Each cell in a library containing logical parts should have a corresponding .ptf file. You can place all the files in a single directory which will later be read by Packager-XL during packaging. You should maintain packaging information such as Allegro footprint (JEDEC_TYPE), VALUE, TOLERANCE, and PWR_RATING in this file. January 2002 23 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics Simulation View When a symbol view is saved to the disk, an entity view is automatically created. In the entity view is a Verilog and VHDL file that contains the names of all the pins on the symbol (known as a module). The simulation view maps the symbol (or module) to a simulation model. The name of the module is mapped to the name of the simulation model. The pin names in the module are mapped to the port names in the simulation model. The file in this view contains only mapping data. The actual model is stored in an HDL model library (for example, veriloglib). During simulation, the Verilog or VHDL file in the schematic view is used as the netlist. Each part in this netlist has an entity and a simulation view. Verilog-XL replaces the parts in the netlist with the simulation models as defined by the wrapper or a map file. Depending upon whether a Verilog or a VHDL based flow is used, and whether map files or wrappers are used, it is suggested that the following directories store the simulation views: ■ vlog_map stores the map file that is used by Verilog during simulation ■ vlog_model stores the wrapper file that is used by Verilog during simulation ■ vhdl_map stores the map files that is used by VHDL during simulation ■ vhdl_model stores the wrapper file that is used by VHDL during simulation Note: Unlike other views, simulation views can have user-defined directory names. However, it is suggested that you use the names mentioned above to ensure consistency and uniformity of understanding. Category (.cat) Files In addition to the supported views, you can also create a category file (.cat) within each library, to organize the parts into functional groups, such as BUFFER, CLOCKDISTRIBUTION and so on. The category files are located within each library. This is an optional file. The file is named as library_name.cat such as lsttl.cat for the lsttl library. Summary In this chapter, you learned about the physical organization of a part library. You also learned about the different views of a part. In the next chapter, you will learn how to create and work with a library project. January 2002 24 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics January 2002 25 Product Version 14.2 Library Explorer and Part Developer Tutorial Library Basics January 2002 26 Product Version 14.2 Library Explorer and Part Developer Tutorial 3 Working with a Library Project Objective In this chapter, you will learn to: ■ Identify the types of projects. ■ Understand the library management use models. ■ Understand the library development methodology. ■ Create a library project using Library Explorer. ■ Create a new build library. ■ View the categories in which a library is categorized. ■ Import a part from the reference area to the build area. ■ Copy parts across libraries. ■ View footprints. ■ Verify parts. ■ Delete a part from a build library. Types of Projects There are two types of projects: ■ Design Projects You need to create a design project to design and develop PCB boards. Design projects are created using Project Manager. ■ Library Projects January 2002 27 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project You need to create a library project to create and manage libraries of parts. These parts are used in the design projects. The person who creates and manages a library project is called a librarian. Library Management Use Model PCB Librarian suite provides you the following tools to perform library creation and management tasks: ■ Library Explorer ■ Part Developer ■ Part Table Editor Depending upon whether you are a librarian or a designer, you can use the tools to perform specific tasks. As a Librarian Use Library Explorer to: 1. Create or open a library project which provides you with a build area where you can build and modify libraries and parts. 2. Import reference libraries or parts you wish to modify into the build area. 3. Create any new libraries or cells. 4. Launch Part Developer to create or edit views. 5. Verify libraries. 6. Export new or modified libraries and parts to the reference library location. 7. Clean up the build area when finished. Use Part Developer to: 1. Create or modify symbol, package, simulation views and part table views. 2. Verify the part. Use Part Table Editor to: 1. Create or modify a part table. January 2002 28 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project 2. Verify a part table. 3. Add new parts to a part table. As a Designer As a designer, you can do the following: 1. Create a design project using Project Manager. 2. Specify the project libraries while creating the project. Now if you want to either create a new part or modify existing parts in the project libraries, you can launch the Part Developer tool. When you launch the Part Developer tool, it will display the project libraries thus enabling you to modify and create new parts only in them. Note: Library Explorer will not be available on a project created through Project Manager as library management oriented tasks like creating new libraries and categories, copying libraries and so on, should only be done by a librarian. January 2002 29 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Library Project Concepts Build Tab Reference Tab A library project is a project that provides you with an environment in which to build and manage libraries and parts. A library project is created using the Library Explorer tool. Displayed above is a typical Library Explorer window after a library project is created or opened. Similar to the Windows Explorer, the Library Explorer window is divided into two panes. The left pane is further divided into two areas, namely the build area and reference area. These two areas are accessible by the two tabs, Build and Ref. These are automatically created when a new library project is created. The build area is the area for your private library development needs. That is, it is the work area on which you can create, modify and manage your libraries and parts. The entries in the build area are controlled through a file called the cds.lib file. The cds.lib file is a text file and contains the mapping of the library name as visible in the build area to its actual physical location. This file is created automatically when a library project is created. The cds.lib file is in the same location as the project file. For example, in the above screenshot, the library project test stored in the tutorial_project_data is opened in January 2002 30 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Library Explorer. The actual lsttl library is stored in the c:\tutorial_project_data\test\lsttl location, and the cds.lib fi;e contains the following entry: DEFINE lsttl c:\tutorial_project_data\test\lsttl The Ref tab represents the reference area for the library project. The reference area stores the parts that have been verified by the librarian and made available for use by the designers. The list of libraries in the reference area are stored in the library list file named refcds.lib. The refcds.lib file is similar to the cds.lib file and is stored in the same location as the project file. As with the cds.lib file. the refcds.lib file contains the mapping of the library name as visible in the reference area to its actual physical location. By default, when you create a library project, the standard libraries provided by Cadence and stored in the <your_install_dir>/share/library can be added as reference libraries in your library project. You can also add your own libraries as reference libraries. When you create and verify a library in the build area, you can export it to the reference area so that other users can also use it. Usually, only the librarian should have permissions to export the libraries to the reference area. To create a new reference library, you must first create the library and it constituent parts in the build area, verify them and then export the build library into the reference area. Similarly, to modify, rename, or delete a reference library, you must import it into your build area, make the necessary changes, and export it back to the reference area. Using Library Explorer Overview Now, you will create a library project and name it tutorial_project.cpm. This library project should be created in the tutorial_project directory. After you create the library project, you will import a part that is categorized as a DECODER from the lcx reference library to you build area. Then, you will copy the part from one build area library to another. Next, you will view the associated footprint of the part from within Library Explorer. Finally, you will verify the part. January 2002 31 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Creating a Library Project The first step in working with libraries is to create a library project. In this section, you will learn how to create a library project using Library Explorer. Task Overview Create a library project. The library project should be named tutorial_project.cpm. This project should be created in the tutorial_project directory. The tutorial_project_data directory contains the lcx library which will be used as the reference library. Steps: 1. Invoke the command shell of your computer. 2. Create a directory called tutorial_project. 3. In the command prompt, type libexp and press Enter. The Library Explorer Product Choices dialog box appears. This dialog box displays the product suites for which you have the licences. The availability of tools and features of the tools are dependent on the choice of the product suite. For example, if you choose PCB Librarian, you can access the Library Explorer and Part Developer tools, but not their expert features such as data management and template creation. January 2002 32 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project 4. Select the PCB Librarian option and click OK. The Library Explorer window appears on the background with a Getting Started dialog box on the foreground. In this dialog box you can choose to either open an existing build area or create a new build area. 5. Since you are going to create a new library project, select the Create a new Build Area option and click OK. January 2002 33 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project The New Project Wizard appears. This wizard enables you to quickly create a library project. You will need to provide several information as you proceed with the wizard to successfully create the project. First, you need to specify the project name and location. 6. Enter tutorial_project in the Project name text box and press Tab. 7. Click the Browse button and browse to the tutorial_project directory. 8. To continue, click Next. The Select libraries page of the wizard appears. In this page, you select all the libraries you want as reference libraries. The reference libraries will appear in the Ref tab of Library Explorer window. Note that by default, all the Cadence supplied libraries appear in the wizard page, and unless you explicitly remove them, get added as reference libraries to your project. January 2002 34 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project To add more libraries, either add them or import from another cds.lib file. If you import from another cds.lib file, all the libraries listed in the cds.lib are added as reference libraries. For this project, you will remove the lcx library from the Cadence supplied libraries and add the lcx library from the tutorial_project_data location. 9. To remove the lcx library from the Cadence supplied libraries, select the lcx library and click Remove. 10. Next, to add the lcx library from the tutorial_project_data location, click Add. January 2002 35 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project The Choose Directory dialog box appears. 11. To begin the process of adding the lcx library to your reference library list, browse to the tutorial_project location. The contents of the tutorial_project_data directory appears. 12. To add the lcx library as a reference library, double-click on the lcx folder and click OK. The lcx library gets added to the list of reference libraries. 13. Click Next. January 2002 36 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project The Summary page of the wizard appears. 14. To complete the creation of the project, click Finish. After the project has been created, the Library Explorer message box appears. 15. Click OK. January 2002 37 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project The tutorial_project library project is created and appears in the Library Explorer window. Caution The tutorial_project_lib library appears in the Build tab. Do not delete this library. This library contains the origin symbol which is required by the Cadence tools. Physically, the library is named worklib and created in the Library Project location. The cds.lib file displays the worklib as the <projectname>_lib in the Build area. Next, you will create a new library in the build area. Such libraries are called build libraries. January 2002 38 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Creating Libraries in the Build Area You create libraries in the build area to store user created parts. You have full control over the libraries in the build area. Other than creating new parts, you can also copy parts from other libraries in the build area and import libraries from the reference area into your build area. Task Overview Create a library in the build area. Name the library my_library. Steps 1. Before creating the build library, ensure that the Build tab is selected. 2. To begin creating a new build library, choose File > New > Build Library. A new build library, named new_library is created. 3. To rename the library to my_library, type my_library press Enter. The name of the library changes to my_library. Next, you will identify decoder component in the lcx library and import it to the build area. This is a two step process. First, you need to identify which component in the lcx library is a DECODER and then you need to import it to the build area. Viewing by Categories You can categorize parts of your libraries. Normally the categorization is done as per the functionality of the part such as FLIP-FLOP, DECODER etc. To view library in terms of its component categories, you select the category view. This view is available through Library Explorer. Task Overview View the part categories of the lcx library. January 2002 39 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Steps 1. To display the reference libraries, select the Ref tab. 2. Select the lcx library. 3. To view the categories, select View > Categories. 4. Double-click on the lcx library. The Library Explorer view changes to show the categories into which the library is divided. 5. To see the component that is classified as DECODER, select the DECODER folder in the lcx library entry. The lcx library has only one 3-TO-8 decoder is available. 6. To see the part that is classified as the 3-TO-8 DECODER, double-click on the 3-TO-8 folder. The contents of the 3-TO-8 folder appears on the right pane. The part number is LCX138. Now, you need to import this part to your build area. January 2002 40 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project 7. To import a part into the build area, you need to revert back to the part view. To revert to the part view, select View > Categories. The Library Explorer reverts to the part view. 8. Right-click on the lcx138 component. 9. Choose Import. The part gets imported to the build area. It is important to remember that when you import a part, the complete library structure is created in the build area. Therefore, in the build area, you will see the lcx library under the Build Area Libraries, which will have only the lcx138 part. 10. To view the imported part in the build area, click on the Build tab. The build area of the tutorial_project library project appears. 11. Double-click on the lcx library. The lcx138 component appears in the right pane. You successfully imported the lcx138 component to the build area. Next, you will copy the lcx138 part to the my_library build library. Copying Parts Library Explorer provides a Windows Explorer type ability to copy and paste parts from one library to another. Task Overview Copy the lcx138 component from the lcx library to my_library. Steps 1. Right-click on the lcx138 component in the Build area. The short-cut menu appears. 2. Choose Copy. 3. Right-click on my_library. 4. Choose paste. January 2002 41 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project The lcx138 part is copied from the lcx build library and copied to the my_library build library. Similarly, using the short-cut menu, you can cut, delete, and rename components. 5. Now, rename the part to my_lcx138. Next, you will view the footprints associated with this component. Viewing Footprints Using Library Explorer, you can view the footprints for a part. The footprints are used in the Allegro design. Task Overview View the footprints of the my_lcx138 part. Steps 1. Right-click on the my_lcx138 part in the my_library build area. 2. Choose View Footprint. The Physical Properties dialog box appears. The dialog box contains the different physical footprints for the packages in my_lcx138 part. 3. To close the dialog box, click Close. 4. Next, rename the part back to lcx138. Next, you need to verify the part to ensure that the part can be used in a design. January 2002 42 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Verifying Parts Overview of Types of Verifications From Library Explorer, you can run a set of checks. These are: View Verification The view verification check does the following checks: ■ Symbol origin is centered. Checks whether the origin always lies within the symbol and the symbol outline is at a distance less than the maximum allowed offset from the origin. ■ Tristated pins have input and output loads defined. Checks the presence of pin properties OUTPUT_LOAD and INPUT_LOAD for every tristate pin. The presence of a tri-state pin is denoted by the property OUTPUT_TYPE =TS,TS. ■ Mandatory properties present in package file. Checks whether the properties named BODY_NAME, PART_NAME, CLASS, and JEDEC TYPE are present in the packages. ■ Consistent symbol name in symbol and package file. Checks whether the cell name is the same as BODY_NAME property in the chips.prt file. ■ Consistent symbol and package in pin list. Checks whether the pins are the same across symbol and package views. Instantiation and Packaging In this check, the parts are instantiated on a design sheet using Concept-HDL. One design sheet is created for each package type. All the cells supporting a particular package type are instantiated on the sheet of that package type. For each such created design sheet, a .cpm file is made and saved in the working directory. Next, Packager-XL is invoked to package each of the designs. Then, the following checks are performed: ■ Checks the hdldir.log, pxl.log and edbconfig.log files for errors. ■ Checks whether the schematic view has non-zero verilog.v and .sir files. ■ Checks whether the packaged view has non-zero .dat files. January 2002 43 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project ■ If the netrev option ia checked (from the Options button), then Allegro is invoked to create an empty board and netrev. The board is then upreved with the netlist, and a physical view is created. After creating a physical view, the presence of the netrev.lst and .brd files in the physical view is checked. Finally the reports of the result are reported in a log file. ■ Reports the result of the test on the library in a report file called ftb.rep. The report file is created in the current working directory. ■ Declares the test library as passed, if the Concept-HDL and the PXL run are successful. ■ Reports the nature of a failure in the ftb.rep file, if any errors occur in the ConceptHDL run or at the Packager-XL run. If the Use project ptf files for verification option is checked, all the .ptf files are loaded as specified in the ptfdirective file, and scanned for rows corresponding to the part concerned. If the rows have the given PACK_TYPE property as the key property, then all the other key properties get added to the part. The properties that are being added are checked to ensure that the properties are not duplicated in the corresponding symbol.css file. The designs are then packaged and the o/ps is checked. If the o/ps are successful, the design is netreved from the created .pst file. The following tasks are also performed: ■ Checks whether pack_type is present in .ptf files, but not in the chips.prt file. ■ Ensures that if the PACK_TYPE property on it is conflicting, then the symbol is not instantiated for a particular pack type. In other words, it skips the parts if the PACK_TYPE property on it is in conflict. ■ It checks if pack type is a part of the primitive name in the chips.prt file. To switch on/off the options mentioned above, you have the following check boxes: ■ Use Project .ptf files for verification If you select this rule, part table files are used in instantiation and packaging. If no part table files are specified in the project file, the cell-level .ptf file is used by default. ■ Use allegro board (netrev) If you select this option, the part or library is verified for the complete Front to Back flow. ■ Generate Pass/Fail report This option is enabled only if you select a library. January 2002 44 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Note: If you select the Generate Pass/Fail option, each part is verified separately. This is a time consuming process. Advanced View Checks Select this option to launch CheckPlus. You can run your own custom-defined checks using CheckPlus. VHDL Compilation Note: This check is available only in the expert version of Library Explorer. You use the VHDL Compilation option to compile the generated VHDL wrapper. You can use either NCVHDL or CV to compile the wrapper. You can specify the tool to compile the VHDL wrapper in the Enter command in the VHDL compilation dialog box. This dialog box is displayed when you click the Options button in the Verifications dialog box. Verilog Compilation Note: This check is available only in the expert version of Library Explorer. You use the Verilog Compilation option to compile the generated Verilog wrapper. You can use NCVERILOG to compile the wrapper. You can specify the tool to compile the Verilog wrapper in the Enter command for Verilog compilation dialog box. This dialog box is displayed when you click the Options button in the Verifications dialog box. Verify with Templates Note: This check is available only in the expert version of Library Explorer. You use the Verify with Templates option to verify a part against a template. The verification is done only for those values that exist in the template file as well. The output is displayed in a dialog box. The output is divided into two sections, Overview and Details. In the Overview section, the overview of the differences are displayed. In the Details section, each of the differences in the logical, physical and symbol levels are detailed. Task Overview For the lcx138 component in the my_library build library, run only the View Verification check with all the options. January 2002 45 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project Steps 1. Select the lcx138 part in the my_library build library. 2. Choose Tools > Verify. The Verification dialog box appears. 3. Select the View Verification option. 4. To ensure that all the part will be checked for all the options of the View Verification check, click Options. The View Verification dialog box appears. Ensure that all the options are checked. 5. Click OK. The View Verification dialog disappears. 6. To start the verification process, click OK. The Verification Results message box appears. It should report no errors. 7. Click OK. 8. Click Close to close the Verification dialog box. Deleting Parts Library Explorer provides you with a Window Explorer type interface for deleting parts. Task Overview Delete the lcx138 part from the my_library build library. Steps 1. Right-click on the lcx138 part. 2. Choose Delete. January 2002 46 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project The Confirm Folder Delete dialog box appears. 3. Since the part is to be deleted only from the build area, click Yes. The lcx138 part gets deleted from the my_library build library. Summary You covered a lot in this chapter. In this chapter, you learned about the types of projects. You learned the library management use models and the library development methodology. You also learned how to create a library project and work in it. In the next chapter, you will learn to create a part with pins split across multiple symbols. January 2002 47 Product Version 14.2 Library Explorer and Part Developer Tutorial Working with a Library Project January 2002 48 Product Version 14.2 Library Explorer and Part Developer Tutorial 4 Creating Parts With Pins Split Across Symbols Objective To become familiar with the methodology and steps involved in creating a part with pins split across symbols. In this chapter, you will learn to: ■ Understand the methodology involved in creating parts. ■ Setup Part Developer to assign properties globally to all symbols and packages of a new part. ■ Do intermediate saves while creating a part. ■ Create a part with pins split across symbols. ■ Access Allegro footprints to specify JEDEC_TYPE property. ■ Extract pin numbers from the Allegro footprint. ■ Verify parts using View Verification check. ■ Create a new reference library. ■ Export the part to the new reference library. Part Creation Methodology Part Developer enables you to create and modify symbol, package, and part table views of parts in Concept-HDL libraries. You should follow the sequence of steps listed below to ensure an effective use of the Part Developer tool. 1. Refer to the datasheet. The datasheet contain all the information that you require to create parts. January 2002 49 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols 2. Configure Part Developer to correctly interpret the pin names. 3. Enter the logical pin information. Logical pins are the pin names as they appear on the datasheet. 4. Specify the values in the Setup Options for creating a part. These values are dependent on the values in the datasheet and the standards you follow. These values include properties that are to be placed on the symbols, pins and packages, the placement and load values of the pins, the format of the symbols as they will appear in Concept-HDL, the format of the low asserted pins, and the interpretation of the pin names. 5. Create the packages for the part. This creates the chips view for the part. 6. Create the symbols for the part. This creates the symbol views. 7. If required, create the simulation views. This involves creating the Verilog and the VHDL wrappers and map files. 8. Verify the parts that you have created for use in the design flow. Creating a Part Task Overview Create the N87C196NT part in the my_library build library. Set up Part developer to: ■ Add the property Library_Name with the value my_library to all the packages and symbols. ■ Display the pin texts in 0.6 grid size. January 2002 50 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The relevant part of the datasheet is stored in the tutorial_projects/datasheets location. A snapshot of the datasheet is displayed below: Starting Part Developer Since the part has to be created in the my_library build library, ensure that my_library is selected in Library Explorer. To launch Part Developer: 1. Choose Tools > Part Developer. January 2002 51 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Create/Open Part dialog box in the Part Developer window appears. 2. Since you need to set up Part Developer to add global properties, click Cancel. The blank Part Developer window appears. Setting up Part Developer Task Overview Set up Part Developer to associate and display a property Library_Name with the value my_library for all packages and symbols. Also, all the packages should have the BODY_NAME property with value as ? and the symbols should display pin text in 0.6 grid size. Steps 1. Choose Tools > Options. January 2002 52 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Part Developer Setup Options dialog box appears. By default, the Properties tab is selected. The Library_Name property and its value will be entered in this tab. 2. Enter Library_Name in the Property Name column. 3. Click the corresponding cell in the Value column. 4. Enter my_library. 5. To display both the property name and its value in the symbol, select Both from the Visible drop-down list box. 6. To associate the property with both symbols and packages, select Package checkbox in the Package group box. Note: The Symbol checkbox is selected by default. 7. Click Add. The property will get added to all the symbols and packages created in this session of Part Developer. 8. Next, enter BODY_NAME in the Property Name column. 9. Enter ? as its value. 10. Since the BODY_NAME property is to be added only to the packages, deselect the Symbol check box. 11. Click Add. 12. Next, configure Part Developer to display the pin text in 0.6 grid size. Click the Symbol tab. January 2002 53 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols 13. Click in the Pin Text Size text box. 14. To display the pin notes in 0.6 grids, enter 0.6. After you configure the properties, the next step is to configure the format. Configuring Format Options The Format options page helps you to determine the way in which you will read and write low asserted pins, and how the asymmetrical parts, sizeable pins and vector pins are displayed when a part is read into Part Developer. Following is a description of the two group boxes that constitute the Format page. ■ Low Asserted Pin Syntax. The setting in this group box determines the pin names that Part Developer will treat as low asserted while reading a part. You also specify the notation that Part Developer should use to write a low asserted pin into the symbol and the chips.prt file. You can choose to display the pins with following notations as low asserted pins on the symbol and then write them to the symbol file in one of the following ways: ❑ Either with a asterisk (*) or _N suffix: In this case any pin which has either a * or _N in its name is read as a low asserted pin. You can then determine whether you want to write the low asserted pin into the symbol file with either the '*' or '_N' suffix. ❑ With a star (*) notation: In this case, the pins with a * are read as a low asserted pin. The pin is written back to the symbol file with the * suffix. ❑ With a _N notation: In this case, the pins with _N are read in a low asserted pin. They are written into the symbol file with the _N notation. Note: Select the Use minus [-] sign for low asserted pins in Package view to ensure that the pins that are considered low asserted are written into the chips file with a minus [-] sign. If you leave this unchecked, and depending on which pins you treat as low asserted, they will get written into the chips.prt file with the same suffix as they are written into the symbol file (basically, either ‘*’ or ‘_N’). Caution You must follow a standard convention for reading and writing the low asserted pins, otherwise the associated pin texts might get lost. For example, while creating a part, you decide on writing the low asserted pins with _N assertion. As a result, all the low asserted pins of the symbol have _N appended to them. Now to modify the part, you load the part back January 2002 54 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols into Part Developer and change the low assertion write back option to *. Now when you save the part, the associated pin text will be lost. This is because when saving, Part Developer tries to associate pin names with pin texts and fails to find a pin with name, say A*, on the symbol (since the symbol has A_N) and as a result it doesn’t write any PIN_TEXT property for low asserted pins. ■ Chips File Reading Options The options in this group box determines how Part Developer reads the chips.prt file for displaying the following: ❑ Asymmetrical parts Asymmetrical parts have multiple functionality. Corresponding to each functionality, there is a pin list. All sections or slots that have the same functionality have the same pin list. The slots that have the same functionality form one group. Depending on the part, there may be multiple groups. You can choose to display the pin numbers in such a way that the group numbers are also visible. You can do this by selecting the Use group format for reading asymmetrical parts check box. ❑ Sizeable pins Sizeable pins can be displayed in Part Developer in one of the following ways: Slot Number-Base Name or Base Name - Slot Number. In the Slot Number - Base Name format, the numeric part is treated as the slot number while the alphanumeric string part is treated as the base name. For example, if the pin name given is 1A, it is taken as base name A and slot number 1. In the Base Name- Slot Number format, the alphanumeric string part is treated as a base name and numeric part is treated as a slot number. For example, if the pin name entered is A1, it is treated as a sizeable pin with base name A and slot number 1. ❑ Vector pins Vector pins can be displayed in Part Developer in one of the following ways: Bit Number - Base Name or Base Name - Bit Number. In the Bit Number - Base Name format, the numeric part is treated as the bit number while the alphanumeric string part is treated as the base name. For example, if the pin name given is 1A, it is taken as base name A and bit number 1. In the Base Name - Bit Number format, the alphanumeric string part is treated as a base name and the numeric part is treated as a bit. For example, if the pin name entered is A1, it is assigned the base name A and the bit number 1. January 2002 55 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Task Overview Configure Part Developer to write low asserted pins with ‘*’ suffix. Steps 1. Select the Format tab. The Format property page appears. 2. Ensure that the Suffix ‘*’ and Suffix ‘_N’ option for reading and Suffix ‘*’ for writing is selected. This is the default selection and suffices for most of the part creation scenarios. After you configure the Format options, you need to configure the pin name interpretations. January 2002 56 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Configuring Pin Name Interpretation Overview Logical pin names appear in the datasheets in following four patterns: ■ Alphanumeric String (for example, A, B, and EN) ■ <Alphanumeric String><Numeral> (for example, A0, A1) ■ <Numeral><Alphanumeric String> (for example 0A, 1A) ■ <Numeral><Alphanumeric String><Numeral> (for example 1A1, 1A2) Note: Any string that is flanked by alphabets on both sides is treated as an alphanumeric string. For example, A, A1A. Alphanumeric String Usually, scalar pin names, such as A, B, EN, A1A and so on appear in data sheets as alphanumeric strings. Any alphanumeric string that is not flanked by numerals falls into the Alphanumeric string category. These pins are always treated as scalar pins. <Alphanumeric String>< Numeral> Data sheets use the alphanumeric string numeral names for representing vector bits or sizeable pins. For example, the names A0, A1, A2..A7 specify an 8-bit vector bus. Here, A is the base name and 0-7 is the bit range. Similarly, the names B1, B2, B3, B4 specify the sizeable pin B in a part with four slots. The pins can be interpreted in the following ways: Base Name: The entire alphanumeric string is treated as the base name and it is treated as a scalar pin. Base Name-Bit: The alphanumeric string part is treated as a base name and the numeric part is treated as a bit number. For example, if the pin name entered is A1, it is assigned the base name A and the bit number 1. Base Name-Slot: The alphanumeric string part is treated as a base name, and the numeric part is treated as a slot number. For example, if the pin name entered is A1, it is treated as a sizeable pin with the base name A and the slot number 1. January 2002 57 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Numeral Alphanumeric String Sometimes data sheets may also use numeral alphanumeric string names for representing vector bits, sizeable pins, or a scalar pin belonging to a slot group. For example, the names 0A, 1A, 2A..7A specify an 8-bit vector bus or the names 1B, 2B, 3B, 4B specify a sizeable pin B in a part with four slots. Similarly, the scalar pins 1OE and 2OE are used to show that the pin is in two slot groups. The pins will be interpreted in one of the following ways: Base Name: The entire alphanumeric string is treated as a base name and taken as a scalar pin. Bit-Base Name: The numeric part is treated as the bit number while the alphanumeric string part is treated as the base name. For example, if the pin name given is 1A, it is taken as the base name A and the bit number 1. Slot-Base Name: The numeric part is treated as the slot number while the alphanumeric string part is treated as the base name. For example, if the pin name given is 1A, it is taken as the base name A and the slot number 1. Group-Base Name: The numeric part will be treated as group number while alphanumeric string part will be treated as base name. For example, if the pin name given is 1A, it will be taken as the base name A and the group number 1. <Numeral>< Alphanumeric String>< Numeral> Usually, data sheets use the <numeral>< alphanumeric string>< numeral> notation for representing sizeable pins belonging to different groups. For example, if a part has 8 slots with slots 1 to 4 in one group and 5 to 8 in another group, then a sizeable pin A of that part appears on the data sheet as following: 1A1, 1A2, 1A3, 1A4 2A1, 2A2, 2A3, 2A4 You can enter these pins in two steps: ■ enter 1A1- 1A4 and ■ enter 2A1-2A4 These pins can be interpreted in the following ways: Base Name: The entire alphanumeric string is treated as a base name. January 2002 58 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Slot-Base Name: The starting numeral is treated as the slot number while the rest of the name is treated as base name. For example, if the name is 1A1, it is taken as pin A1 in the slot as1. Bit-Base Name: The starting numeral is treated as bit number while the rest of the name is treated as a base name. For example, if the name is 1A1, it is taken as pin A1 and the bit number 1. Group-Base Name-Slot: The starting numeral is taken as a group number and the end numeral is treated as a slot number in that group. So, if the pin name is 1A1, it is taken as base pin A, slot 1, and group 1. Group-Base Name-Bit: The starting numeral is taken as the group number and the end numeral is treated as the bit number. Therefore, if the pin name is 1A2, it is taken as base pin A, bit 2, and group 1. Base Name-Slot: The end numeral is treated as slot number while rest of the alphanumeric string is taken as the base name. For example, if the pin name is 1A1, it is treated as base pin 1A in slot 1. Base Name-Bit: The end numeral is treated as bit number while rest of the alphanumeric string is treated as base name. For example, if the pin name is 1A1, it is treated as base pin 1A, and bit 1. Group-Base Name: The starting numeral is taken as the group number while the rest of the name is treated as a base name. Task Overview The N87C196NT has scalar pins. You will configure the pin interpretation to accept all pins as scalar pins. For this, you need to setup the pin interpretation defaults as Base Name. Steps 1. Click Edit in the Pin Name Interpretation group box in the Logical Pins dialog box. January 2002 59 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Pin Name Interpretation tab of the Part Developer Setup Options dialog box appears. 2. Select Base Name in all the three sections. 3. Click OK. This will set up Part Developer to interpret all pins as scalar pins. After you set up Part Developer, you begin the process of creating the parts. January 2002 60 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Entering Part Properties Task Overview The N87C196NT part should have the following properties: ■ Part Name should be N87C196NT ■ Physical Part Name should be the same as part name. ■ Part Type should be IC. Steps 1. Click Create New in the Create/Open Part dialog box. The New Part Properties dialog box appears. Notice that the my_library build library is selected by default. 2. Enter N87C196NT in the Part Name field. Note: The Physical Part Name field also gets filled in automatically as you enter the part name field. This field is used as the PART_NAME property in the chips.prtfile. 3. Click OK. January 2002 61 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Logical Pins dialog box appears. Entering Logical Pins Task Overview Enter the pin information as given in the datasheet into Part Developer. Open the datasheet and go to the pin descriptions table. The datasheet is located in the tutorial_project/ January 2002 62 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols datasheets location. The pins will be entered in the same sequence as they appear in the datasheet. Steps 1. The first few pins in the Pin Descriptions table are power pins. To enter a power pin, select POWER from the Pin Type drop-down list box. 2. Enter Vcc, Vss,Vss1, VREF, VPP, ANGND in the Pin Name text box. Important Note that the Pin Descriptions table has multiple entries for the Vss1 power pin. In Part Developer you need to enter the name only once in the logical pins list. Later when creating packages, you can associate multiple physical pins to a power pin. 3. To add the pin to the logical pin list, click Add. The power pins gets added to the logical pins list. 4. Next, to enter an input pin, select INPUT from the Pin Type drop-down list box. 5. Enter XTAL1 in the Pin Name text box and click Add. 6. The next couple of pins in the Pin Descriptions table are output pins. To enter an output pin, select OUTPUT from the Pin Type drop-down list box. 7. Enter XTAL2, P2.7 in the Pin Name text box and click Add. 8. The next pin in the table RESET which is an active low input pin. Select INPUT from the Pin Type drop-down list box. 9. Enter RESET in the Pin Name text box. 10. To make an pin active low, select the Active Low check box and click Add. 11. The next couple of pins are input pin, but not active low. Therefore deselect the Active Low check box. 12. Enter P5.7, NMI in the Pin Name text box and click Add. 13. Next, to enter the P5.1 output pin, select OUTPUT from the Pin Type drop-down list box. 14. Enter P5.1 in the Pin Name text box and click Add. 15. The next two pins in the table are active low input pins. Select INPUT from the Pin Type drop-down list box. January 2002 63 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols 16. Enter EA, HOLD in the Pin Name text box. 17. Select the Active Low check box and click Add. 18. The next two pins in the table, HLDA and BREQ are active low output pins. Therefore, select OUTPUT from the Pin Type drop-down list. 19. Enter HLDA, BREQ in the Pin Name text box and click Add. 20. The next four pins in the table are active high output pins. Therefore, deselect the Active Low check box. 21. Enter P5.0, P5.3, P5.2,P5.5 in the Pin Name text box and click Add. 22. The next pin (P5.6) in the Pin Descriptions table is an input pin. Therefore, select INPUT from the Pin Type drop-down list box. 23. Enter P5.6 in the Pin Name text box and click Add. 24. Next few pins in the table are bidirectional pins. To enter a bidirectional pin, select BIDIR from the Pin Type drop-down list box. When creating large parts, it is a good idea to keep saving pin information every once in a while. For this, you do an intermediate save. Intermediate Saving of Parts When you save a part in Part Developer, several pre-save checks are run. So if you try to save an incomplete part, you might get some errors and the part will not get saved. Therefore, to save a work-in-progress part, you should use the intermediate save feature of Part Developer. To save the part information in an intermediate save file: 1. Close the Logical Pins dialog box. 2. Choose File > Intermediate Save. The Save As dialog box appears. 3. Enter n87c196ntin the File Name field and press Enter. You successfully saved the part in an intermediate file. After you do an intermediate save, you can continue entering more pins. January 2002 64 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Continuing Pin Entry 1. Right-click on the Logical Pins entry in the tree view. 2. Choose Edit Pin List. The Logical Pins dialog box appears. 3. Enter P5.4,P6.2,P6.3, EPA0-EPA9 in the Pin Name text box and click Add. 4. The next four pins are input pins. Select INPUT from the Pin Type drop-down list box. 5. Enter ACH4-ACH7 in the Pin Name text box and click Add. 6. The next four pins in the datasheet are bidirectional pins. Select BIDIR from the Pin Type drop-down list box. 7. Enter P6.4-P6.7 in the Pin Name text box and click Add. 8. The next few pins are output pins. Select OUTPUT from the Pin Type drop-down list box. 9. Enter P2.0-P2.1,P4.0-P4.7 in the Pin Name text box and click Add. 10. Next four pins in the table are bidirectional pins. To enter a bidirectional pin, select BIDIR from the Pin Type drop-down list box. 11. Enter A16-A19in the Pin Name text box and click Add. 12. The next pin is an active low output pin. Select OUTPUT from the Pin Type drop-down list box. 13. Enter INTOUT in the Pin Name text box. 14. Select the Active Low check box and click Add. 15. The final eleven pins in the table are bidirectional pins. To enter a bidirectional pin, select BIDIR from the Pin Type drop-down list box. 16. Enter P2.2, SLP0-SLP7 in the Pin Name text box. 17. Deselect the Active Low check box and click Add. 18. To accept the entries and close the Logical Pins dialog box, click OK. After the logical pins have been entered, you create the packages. January 2002 65 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Creating Packages Task Overview Create the PLCC package for the N87C186NT part. Steps 1. To begin the process of creating packages, choose File > New > Package. January 2002 66 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The New Package dialog box appears. By default, the General tab is selected. 2. Since the N87C196NT part comes in PLCC package, enter PLCC in the Specify Package Type text box. 3. Click Specify Footprint. January 2002 67 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Physical Property dialog box appears. You need to specify the JEDEC_TYPE value for the package. The value for the JEDEC_TYPE property will be picked up from the Allegro footprints of standard packages provided by Cadence. 4. Click in the cell under the Value column next to the JEDEC_TYPE entry. 5. To select the appropriate value for the JEDEC_TYPE property, click Browse. January 2002 68 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Footprints dialog box displays. This has the complete list of footprints supplied by Cadence. 6. Select plcc68 and click OK. You selected the value for the JEDEC_TYPE property. 7. To close the Physical Properties dialog box, click OK. Next, you need to update the value of the BODY_NAME property to be the same as the part name. This is a standard requirement for your parts to be usable in the design flow. 8. To change the value of the BODY_NAME property, double-click on the Value column. 9. Enter N87C196NT as the value for the BODY_NAME property. 10. Next, you need to enter the physical pins and map them to the logical pins that you entered earlier. To get to the page where you enter physical pins, click the Physical Pin Mapping tab. You can either add the physical pins manually, or extract them from the footprint. To ensure correctness of the entered physical pins, you should always extract the pins from the footprint. 11. To extract the pins from the footprint, select the Extract from Footprint option. January 2002 69 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols 12. Click Pin Numbers. The Part Developer message box appears. This message box states that all pin numbers extracted from the footprint will be added as unmapped pins to the package. 13. Click OK. The 68 physical pins listed in the footprint get added as physical pins. Note that the pin numbers are not in a sorted order. 14. To sort the physical pins, click on the Number column heading. Next, the physical pins need to be mapped to the logical pins. The general method to map a physical pin with logical pin is to select both the pins and click on the Map button. January 2002 70 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols 15. As per the datasheet, physical pin 1 is mapped to logical pin P5.4. Therefore, select 1 in the Physical Pins list, and select P5.4 in the Logical Pins list. 16. To map the selected pins, click Map. The physical pin 1 is mapped to the logical pin P5.4. Note: Whenever you map a physical pin to a logical pin, the pin number moves from the Physical Pins list to the Logical Pins list and the next pin number in the list gets selected in the Physical Pins list. This eases the pin mapping as you do not explicitly need to select a physical pin to map to a logical pin. You can select the logical pin that you want the automatically selected physical pin to be mapped to, and map it. 17. To map pin number 2 to logical pin P5.6, select P5.6 in the Logical Pins list. 18. Click Map. 19. Similarly, see the datasheet and map the first 10 physical pin numbers. Note: Other than single pin mappings, you can also select multiple physical pins to be mapped to multiple logical pins. To ensure that pin mappings are done correctly, you may need to sort the pins in either ascending or descending order. The physical pins 11-14 will be mapped to the logical pin A19-A16 by using this method. To select multiple pins, press CTRL + Click on the pins to be selected. Currently, the logical pins are listed in the order of A16-A19. If you multi-select the pins and do the mapping, the pin number 11 will get mapped to logical pin A16 and so on. However, what is required is that the pin number 11 be mapped to logical pin A19. Therefore, first the order of the logical pin needs to be reversed. 20. To change the sorting order of the pins 11-14, select the pins and right-click. 21. Choose Sort Descending. The pins 11-14 are sorted in descending order. 22. To map pin number 11 - 14 to logical pins A19-A16, first select the pin numbers 11,12,13 and 14 in the Physical Pins list. 23. Next, select A19,A18,A17,A16 in the Logical Pins list. 24. Click Map. 25. Similarly map the other physical pins to their corresponding logical pins. 26. When you get to pin number 68, you will get an error message saying that this pin has already been mapped. This is situation where there are two physical pins (34 and 68) for January 2002 71 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols a power pin (VSS1) of the same name. To handle such situation, Part Developer allows you to replicate the power pin. 27. To replicate the VSS1 power pin, right-click on VSS1. 28. Select Replicate. The Replication Factor dialog box displays. In this dialog box you can determine the number of replicated power pins. The default value is one. 29. Since only one more VSS1 power pin is required, click OK. 30. Map the physical pin 68 to the replicated VSS1 power pin. 31. To complete the creation of the package, click OK. After you create a package, the next step is to create symbols for the part. Creating Split Symbols You can create symbols with pins split across them for reasons such as: ■ Reflect the way the parts functionality is used in a schematic. ■ Enable a more manageable display for large pin count parts. Task Overview Create two symbols for the N87C196NT part where the pins are split across the symbols. Symbol 1 should have the following pins: ■ XTAL1, XTAL2, RESET*, NMI, EA*, P4.0 - P4..7, A16-A19, SLP0-SLP7, Power Pins Symbol 2 should have the remaining pins. January 2002 72 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Steps Part Developer provides a Symbol Creation Wizard which enables you to efficiently and correctly create symbols. 1. To begin creating the symbols, choose File > New > Symbol. The Split Symbol page of the Symbol Creation Wizard appears. By default, the All Pins option is selected. 2. To create two symbols, select the Split Pins across symbols option. 3. By default, the value in the Number of symbols is two. Since the pins are to be splitted into two symbols, there is no change required for the Number of symbols field. To continue, click Next. January 2002 73 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Pin Selection page of the Symbol Creation Wizard appears. This page displays the list of available logical pins and gives the choice to associate a logical pin with a particular symbol. The following pins should be added to the first symbol: ■ XTAL1, XTAL2, RESET*, NMI, EA*, P4.0 - P4..7, A16-A19, SLP0-SLP7 The remaining pins should be on the second symbol. 4. To add the above mentioned list of pins on the first symbol, select the corresponding check box under the sym_1 heading for each pin. For example, to add the XTAL1 pin on the first symbol, select the checkbox under sym_1 heading next to XTAL1 entry. 5. Similarly, associate the other pins to the second symbol. 6. To continue, click Next. January 2002 74 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Summary page of the Symbol Creation Wizard appears. This page displays the list of symbols and the pins associated with each symbol. 7. Check the summary page and click Finish. The Symbol Creation Wizard creates the two symbols by splitting the pins across the symbols. Saving Parts Task Overview Save the N87C196NT part. January 2002 75 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Steps ➤ To save the part, choose File > Save. The Part Developer Errors dialog box appears. It should show no errors. Next, you will verify the part for its validity. Verifying Parts The parts that you created should be error free and usable in the design flow. Part Developer provides you with robust verification tools which ensure that the parts are correct and usable. Task Overview Verify the N87C196NT part for cross view errors and instantiation and packaging errors. This is done by running the View Verification and Instantiation and Packaging checks. View Verification Check The view verification check does the following checks: ■ Symbol origin is centered. Checks whether the origin always lies within the symbol and the symbol outline is at a distance less than the maximum allowed offset from the origin. January 2002 76 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols ■ Tristated pins have input and output loads defined. Checks the presence of OUTPUT_LOAD and INPUT_LOAD pin properties for every tristate pin. The presence of a tri-state pin is denoted by the OUTPUT_TYPE =TS,TS pin property. ■ Mandatory properties present in package file. Checks whether the BODY_NAME, PART_NAME, CLASS, and JEDEC_TYPE properties are present in the packages. ■ Consistent symbol name in symbol and package file. Checks whether the symbol text is the same as BODY_NAME property in the chips.prt file. ■ Consistent symbol and package in pin list. Checks whether the pins are the same across symbol and package views. Instantiation and Packaging In this check, the parts are instantiated on a design sheet using Concept-HDL. One design sheet is created for each package type. All the cells supporting a particular package type are instantiated on the sheet of that package type. For each such created design sheet, a .cpm file is made and saved in the working directory. Next, Packager XL is invoked to package each of the designs. Then, the following checks are performed: ■ Checks the hdldir.log, pxl.log and edbconfig.log files for errors. ■ Checks whether the schematic view has non-zero verilog.v and .sir files. ■ Checks whether the packaged view has non-zero .dat files. ■ If the netrev option is checked (from the Options button), then Allegro is invoked to create an empty board and netrev. The board is then upreved with the netlist, and a physical view is created. After creating a physical view, the presence of the netrev.lst and .brd files in the physical view is checked. Finally, the reports of the result are reported in a log file. ■ Reports the result of the test on the library in a report file called ftb.rep. The report file is created in the current working directory. ■ Declares the test library as passed, if the Concept-HDL and the Packager-XL run are successful. ■ Reports the nature of a failure in the ftb.rep file, if any errors occur in the ConceptHDL run or at the PXL run. January 2002 77 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols If the Use project ptf files for verification option is checked, all the .ptf files are loaded as specified in the ptf directive file, and scanned for rows corresponding to the part concerned. If the rows have the given PACK_TYPE property as the key property, then all the other key properties get added to the part. The properties that are being added are checked to ensure that the properties are not duplicated in the corresponding symbol.css file. The designs are then packaged and the o/ps is checked. If the o/ps are successful, the design is netreved from the created .pst file. The following tasks are also performed: ■ Checks whether pack_type is present in ptf files, but not in the chips.prt file. ■ Ensures that if the PACK_TYPE property on it is conflicting, then the symbol is not instantiated for a particular pack type. In other words, it skips the parts if the PACK_TYPE property on it is in conflict. ■ It checks if pack type is a part of the primitive name in the chips.prt file. To switch on/off the options mentioned above, you have the following check boxes: ■ Use Project ptf files for verification If you select this rule, part table files are used in instantiation and packaging. If no part table files are specified in the project file, the cell-level ptf is used by default. ■ Use allegro board (netrev) If you select this option, the part or library is verified for the complete Front to Back flow. ■ Generate Pass/Fail report This option is enabled only if you select more than one part or when you select a library that has more than one part. Note: If you select the Generate Pass/Fail option, each part is verified separately. This is a time consuming process. Steps 1. To begin the process of verifying the part, choose Tools>Verify. January 2002 78 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The Verification dialog box appears. 2. To do the verification of the stand-alone views and cross-view checks, select the View Verification option. This is selected by default. 3. To ensure that all the checks that View Verification does are selected, click Options. The View Verification dialog box appears. By selecting the options in this dialog box you can determine which of the View Verification checks will be run on a part. Since for N87C196NT all the checks should be run, ensure that all the checks are selected. 4. Click OK. January 2002 79 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The View Verification dialog box closes. 5. To run the View Verification check on the part, click OK. The Verification Results dialog box appears. It should show that all the checks have passed. Next, check the part for instantiation and packaging errors. 6. Select the Instantiation and Packaging radio button. 7. To run this check to verify the packaging of the parts, click Options. The Instantiation and Packaging dialog box appears. 8. Ensure that the Use project ptf files for verification and Upto allegro board (netrev) options are unchecked. 9. Click OK. The Verification Results dialog box appears. It should show that all the checks have passed. Congratulations. You have successfully created the N87C196NT part. January 2002 80 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Viewing the Part in Concept HDL After you create the part, you can view it in Concept HDL by launching Concept HDL from within Part Developer. Task Overview View the N87C196NT in Concept HDL. Steps 1. Select the symbol sym_1 in the tree view. 2. Choose Tools > ConceptHDL. An error message pops-up informing you that Concept HDL is not part of the PCB Librarian tool suite. Click OK to destroy the message box. The Concept-HDL Product Choices dialog box appears. This dialog box lists all the product suites that have Concept-HDL licence. 3. For this example, select the PCB Librarian Expert suite. 4. Click OK. January 2002 81 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Concept-HDL launches displaying the selected symbol and its properties. A partial view of the symbol with the properties is also displayed below : After you create a part and verify it, you should export the part back into the reference area. January 2002 82 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols Exporting Parts to the Reference Area Task Overview Export the N87C196NT part which you created in the my_library build library to the reference area. Steps 1. Since parts (and libraries) can only be exported from within Library Explorer, go to the Library Explorer window. 2. Right-click on the n87c196nt part in the my_library build library. 3. Select Export from the pop-up menu. The Export Destination dialog box appears. 4. Notice that although you selected only the N87C196NT part for export, the Source Library column displays the build library name in which the part is stored. This is because when you select to export a part, the complete library structure is exported. That is why you need to specify the destination library. You need to determine the destination library into which you want to export the part. The destination library can either be one of the existing reference libraries or you can create a new reference library altogether. In this example, you will create a new reference library called my_reference_library and store it in the c:\my_reference_libs directory. You will need to create this directory outside Library Explorer. 5. To create a a new reference library, click New Ref Lib. January 2002 83 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols The New Reference Library dialog box appears. In this dialog box you enter the name of the reference library and its location. 6. Enter my_reference_libs in the Name of the new library field. 7. To change the reference library location, click Browse. 8. Select the my_reference_libs location and click OK. The New Reference Library dialog box disappears. Now, you need to select the my_reference_libs from the Destination Library drop down list box in the Export Destination dialog box. 9. To see the list of available reference libraries, click the down arrow in the Destination Library list box. 10. Select my_reference_libs and click OK. The Library Explorer dialog box appears. It should show that the export was successful. 11. Click OK. 12. To verify that the new reference library and the exported part shows up in the Ref area, click the Ref tab. January 2002 84 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Parts With Pins Split Across Symbols 13. Browse and view the contents of the my_reference_libs reference library. It should show the N87C196NT part that you exported from the my_library build library. Once you export a part to the reference library, you can delete the part from the build library. 14. To begin the process of deleting the N87C196NT from build area, click the Build tab to view the build area. 15. Select N87C196NT in the my_library build library. 16. Press Delete. The Confirm Folder Replace dialog box appears. 17. Click Yes to delete the part from the build area. You deleted the part from the build area. Summary In this chapter you learned about the methodology and steps involved in creating a part with pins split across symbols. In the next chapter, you will learn to modify the part that you created in this chapter. January 2002 85 Product Version 14.2 Library Explorer and Part Developer Tutorial 5 Modifying a Split Part Objective To become familiar with the steps involved in modifying a split part. In this chapter, you will learn to: ■ Import a part. ■ Setup Part Developer to view the part data in the same format as you had entered. ■ Add/delete logical pins. ■ Add/remove power and NC pins. ■ Modify packages and symbols by resplitting the pins across symbols. ■ View the symbols in Concept-HDL and snap the new pins to the boundary of the symbol. ■ Verify the part. ■ Export the part after modification. Importing a Part When you want to modify a part in the reference library, you need to import the part into your build area. After the part has been imported, you can use Part Developer to modify the part as required. Task Overview Import the N87C196NT part from the my_reference_library reference library into the build area. January 2002 86 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part Steps 1. To begin the process of importing the N87C196NT part into the build area, you need to select the part in the reference area. Click Ref tab to display the reference area. 2. Browse the reference area libraries and select the my_reference_library reference library. The contents of the my_reference_library appear in the right-pane of the Library Explorer window. 3. To import the N87C196NT part, right-click on N87C196NT and select Import from the pop-up menu. The Library Explorer message box appears. It should report that the import operation was successful. Setting Up Part Developer The settings in the Format tab of Tools > Setup options in Part Developer determines how the information about a part is interpreted when it is read into Part Developer. It determines whether the pins that have the suffix * or _N or both are to be interpreted as low asserted pins. It also determines the format in which different kind of pins, such as scalar, sizeable, and vector, are shown when a saved part is read in Part Developer. Therefore, it is necessary to ensure that the format options are set up properly for the part that you want to open. Task Overview Open the N87C196NT part in Part Developer. Ensure that the pins with suffix * are read in as low asserted since that is how you had configured Part Developer to represent low asserted pins while creating the part. Since for the N87C196NT part, the logical pins are all scalar, the other options in the Format page will have no effect. January 2002 87 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part Steps 1. Launch Part Developer by choosing Tools > Part Developer. 2. To verify and set up the values of the Format option before opening the part, click Cancel in the Create/Open Part dialog box. 3. Choose Tools > Options. The Part Developer Setup Options dialog box appears. 4. Click Format. The Format page appears. 5. Ensure that under the Reading option, the check box next to the Suffix ‘*’ and Suffix ‘_N’ is selected. This ensures that the pins with the suffix * and _N will be read in as low asserted pins. 6. Click OK. Next, you need to open that part. Opening an Existing Part Task Overview Open the N87C196NT part stored in the library named my_library. Steps 1. Choose File > Open. The Open Part dialog box appears. 2. Choose my_reference_libs from the Library drop-down list box. 3. Choose N87C196NT from the Cell drop-down list box and click OK. The part will open in Part Developer. Next, you will add some logical pins and NC pins to the part. January 2002 88 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part Modifying Pins List Task Overview Remove the scalar pin P2.2 and add the vector pins ZZ1-ZZ16 to the part. Ensure that the pins ZZ1-ZZ6 are interpreted as vector pins. Steps 1. To modify the logical pin list, right-click on the Logical Pins entry in the tree view. 2. Choose Edit Pin List. The Logical Pins dialog box displays. 3. To modify the pin interpretation, click Edit in the Pin Pattern Interpretation group box. The Pin Name Interpretation page of the Part Developer Setup Options dialog box appears. 4. To ensure that the pins ZZ1-ZZ16 are interpreted as bits of a vector pin, select the BaseName-Bit option. 5. Click OK. 6. Enter ZZ1-ZZ16 in the Pin Name field. 7. Click Add. The pins ZZ1-ZZ16 will get added to the logical pins list as vector pins. Next, you need to delete the pin P2.2. 8. Right-click on the pin P2.2. 9. Select Delete. The P2.2 pin will get deleted from the logical pins list 10. To accept the changes, click OK. Next, you need to update the package to synchronize it with the modified pin list. January 2002 89 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part Modifying Packages Task Overview Modify the plcc package to reflect the changes done in the logical pins list. Mark the physical pin that was associated with the deleted logical pin P2.2 as NC. Also, change the value of the JEDEC_TYPE property from plcc68 to plcc84. Steps 1. Right-click on the N87C196NT_PLCC package in the tree view. 2. Choose Properties. The Package Properties dialog box appears. 3. Since more pins have been added, the value of the JEDEC_TYPE property needs to be updated.To select a new value for the JEDEC_TYPE property, click Specify Footprint. The Physical Properties dialog box appears. 4. To modify the value of the JEDEC_TYPE property, click Browse. The Footprints dialog box appears. 5. From the displayed list of footprints, select plcc84 and click OK. The value of the JEDEC_TYPE property changes from plcc68 to plcc84 Next, you need to update the physical to logical pin mapping for the package. 6. Click Physical Pin Mapping. January 2002 90 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part Notice that the physical pin 43 which was mapped to the logical pin P2.2 is now unmapped and moved under the physical pins list. You need to mark this pin as NC. 7. To mark the physical pin number 38 as NC, select the NC check box next to the pin. Next, you need to add the physical pin numbers for the logical pins ZZ1-ZZ16. For this, you will again extract the physical pins from the footprint. Note: When you re-extract pin numbers from a footprint for an existing package, then all the pin numbers present in the package, but not present in the footprint are removed from the package. The mappings for pin numbers present on the package, and also present on the footprint are preserved. The rest of the pin numbers on the footprint are added as unmapped pins. January 2002 91 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part 8. To extract the physical pin information, click Pin Numbers. A confirmation box appears. 9. Click Yes. January 2002 92 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part The additional pin numbers get extracted from the footprint and added to the physical pins list. Next, you need to map the physical pins 69-84 to the logical pins ZZ1-ZZ16. 10. To map the physical pins 69-84 to the logical pins ZZ1-ZZ16, multiselect the physical pins. Note: To ease the pin mapping procedure, you can sort the physical pin list by either clicking on the Numbers column heading in the Physical Pins list or by right-clicking on the multiselected physical pins and then choosing either the Sort Ascending or Sort Descending option. 11. Next, multiselect the logical pins ZZ1-ZZ16 and click Map. January 2002 93 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part This maps the physical pins 69-84 to the logical pins ZZ1-ZZ16. 12. To accept the changes, click OK. Next, you need to modify the symbols. Modifying Symbols Overview Modify split symbols, implies one of the following tasks: 1. Creating new symbols. To create additional symbols, you need to resplit the pins across a larger number of symbols. For example, if you have two symbols for a part and want to create a third one, you will need to specify that you need three symbols and resplit the pins across them. Part Developer provides you with a Symbol Modification Wizard to enable you to resplit the pins across the symbols. 2. Copying symbols. You may want to make copies of a symbol to create a flat symbol from a sizeable symbol. However, for parts with split symbols, you cannot simultaneously have both sizeable and flat symbols. You can have either a symbol with all the vector pins/sizeable pins expanded or a symbol with the vector/sizeable pins contracted. 3. Deleting Symbols When deleting split symbols, one of the following is possible: ❑ Deleting all the symbols. ❑ Decrease the number of symbols by resplitting the pins across a smaller number of symbols. A Symbol Modification Wizard helps you in effortlessly decreasing the number of symbols and resplitting the pins across the smaller number of symbols. 4. Adding Logical Pins If you add pins to the logical pins list, you cannot globally add them to all the symbols. You need to run the Symbol Modification Wizard to add the logical pins to the required symbol. Note: You should map the added logical pins to physical pin numbers in the package before you run the Symbol Modification Wizard. January 2002 94 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part 5. Modifying/ Deleting Logical Pins If you add or delete a logical pin and then try to save the part, it will ask you whether you want to regenerate the symbols on which the pins have been added or from where the pins have been deleted. If you choose to regenerate the symbols, they will lose their existing shape and get saved as rectangular symbols. Task Overview Modify the split symbols of the N87C196NT part. Create a third symbol and modify the existing symbols so as to have the vector pins ZZ1-ZZ16 on sym_1 and the power pins and NC pin on sym_3. Steps 1. To begin the process of modifying the split symbols, right-click on any one of the existing symbols. 2. Select Modify Pin List. The Split Symbol Modification wizard appears. 3. Since you need to create three symbols, specify the value in the Number of split symbols field as 3 and click Next. The second page of the Split Symbol Modification Wizard appears. Notice that the logical pin P2.2 which was deleted from the logical pins list is automatically deleted from the symbols. Also, the pin ZZ1-ZZ16 are added to the pin list. Since they are bits of a vectored pin, there is a single entry ZZ in the matrix corresponding to the vectored pin. January 2002 95 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part The pins that are currently present in the symbols sym_1 and sym_2 are checked appropriately. 4. Modify the pin list to add the pin ZZ to sym_1 and move the power and the NC pins to the sym_3. 5. Click Next. The Summary page of the Symbol Modification Wizard appears. January 2002 96 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part 6. To complete the symbol modification, click Finish. You successfully modified the symbols and created the third symbol. From sym_1 you deleted the pin P2.2 and added the vector pin ZZ1-ZZ16. From sym_2, you moved the power pin to sym_3, and you created the third symbol sym_3 that has the power and the NC pins. 7. Save the part by choosing File > Save. A message box appears asking you whether new rectangular symbols should be created for the modified symbols or whether the existing shape of the symbols should be preserved. The second option implies that new pins will be added away from the boundary of the symbol. You will need to manually snap the pins to the symbol boundary January 2002 97 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part in Concept HDL. This functionality is provided to enable addition of pins to existing parts without destroying the symbol graphics. 8. To retain the shape of the symbols, click OK. January 2002 98 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part The Part Developer Errors dialog box appears. It should show no errors. 9. Click OK. Next, you need to view the symbols in Concept-HDL. 10. To view sym_1 in Concept HDL, select sym_1. 11. To launch Concept HDL on sym_1, choose Tools > ConceptHDL. January 2002 99 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part Concept HDL launches on sym_1. Notice that the vector pins ZZ1-ZZ16 is added away from the symbol graphics. Next, you need to attach the ZZ vector pins to the symbol outline. 12. Click on pin name ZZ <16 1> on the symbol. The ZZ<16 1> will be surrounded by a rectangle displaying that it has been selected. 13. Next, press Ctrl and click on the dot, the signal and the pin text ZZ <16 1> entries. This will select all the entries. January 2002 100 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part 14. Right-click on the selection. 15. Select Group of Objects. This will group the pin name, dot, signal, and pin text together. 16. Right click on the group, and select Move. 17. Move the selected object to wherever you want to place it on the symbol body and click once. You successfully moved the vector pins to the symbol graphics. 18. Close Concept HDL. Next, you need to ensure the validity of the parts by running the View Verification check on the part. 19. To run the checks, choose Tools > Verify. 20. Choose View Verification and click OK. The View Verification check should pass. Next, you will view the bits of the vector pin ZZ1-Z16. Viewing the Bits of a Vector Pin When you add a vector pin, by default, it appears as pin_name<n..1> format in the symbols. For example, the vector pins ZZ1-Z16 will appear as ZZ<16..1> in the tree view. However, you can expand the vector pins to view all the bits of the vector pins. Task Overview Expand the bits of the ZZ<16..1> of the N87C196NT part. Steps 1. Expand the sym_1 symbol in the tree view. 2. Right-click on the vector pin ZZ<16..1> 3. Select Expand to Bits. January 2002 101 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part The vector pins gets expanded to display all the pins of the vector pin ZZ<16..1> Summary In this chapter you learned about the steps involved in modifying a split part. In the next chapter, you will learn to create a multi-section symmetrical part. January 2002 102 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying a Split Part January 2002 103 Product Version 14.2 Library Explorer and Part Developer Tutorial 6 Creating a Multi-Section Symmetrical Part Objective To become familiar with the methodology and steps involved in creating a multi-section symmetrical part. In this chapter, you will learn to: ■ Set up Part Developer to apply properties globally to all symbols and packages and interpret the logical pins in a manner that is most appropriate for the part that is to be created. ■ Create packages by using the different methods supported in Part Developer. ■ Create symbols. ■ Create a HAS_FIXED_SIZE symbol. ■ Verify the part. ■ Export the part. Overview A part in which the pin list that appears in the datasheet (called the logical pin list) is the same across the packages and sections (or slots) is known as a symmetrical part. The generic component LS00 (a quadruple 2-input positive-NAND gates symmetrical part) present in the SN5400, SN54LS00, SN54S00, SN7400, SN74LS00, and SN74S00 components will be used as an example while detailing the steps to create a symmetrical part. This will be created in a build library named my_ library. This part has four independent 2-input NAND gates and January 2002 104 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part comes in DIP, SOIC, Ceramic Chip Carrier (CCC) and Ceramic Flat Packages (CFP). The pinouts for the specific packages are displayed below: Note: In the diagram displayed above, the following representations are used for the packages. J Package DIP Package W Package Ceramic Flat Package (CFP) N Package SOIC Package FK Package Ceramic Chip Carrier (CCC) Starting Part Developer Task Overview Create the LS00 part in the my_library build library. Steps Since the part has to be created in the my_library build library, ensure that my_library is selected in Library Explorer. To launch Part Developer: 1. Choose Tools > Part Developer. January 2002 105 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Create/Open Part dialog box in the Part Developer window appears. 2. Since you need to set up Part Developer before you create the part, click Cancel. The blank Part Developer window appears. Setting Up the Part Developer The first step in creating parts using Part Developer is to set up Part Developer to ensure that the pin names are interpreted correctly. To know more about pin name interpretations, see Configuring Pin Name Interpretation on page 57. Task Overview LS00 is a four-slot part. The datasheet for LS00 has the pin names in <Numeral><Alphanumeric> pattern. Therefore, configure Part Developer to interpret the pins in the Slot-BaseName format. Steps 1. Choose Tools > Options. The Part Developer Setup Options dialog box appears. 2. Click Pin Name Interpretation. The Pin Name Interpretation property page appears. January 2002 106 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part 3. Since the pin name is represented in LS00 as <Numeral><Alphanumeric> and the part has four slots, select the Slot-Base Name option in the Pin Name Interpretation tab in the Part Developer Setup Options dialog box. 4. Click OK. The next step is to enter the part properties such as the part name, and the logical pin information. Entering Part Properties and Logical Pins Information Task Overview Create the LS00 part and enter the part properties and the logical pins for the part. You will create the SN5400 implementation of LS00. Steps 1. Choose File > New > Part. The New Part Properties dialog box appears. You need to specify the properties for the new part in this dialog box. 2. Select the library name as my_ library. 3. Specify the part name as LS00. 4. Specify the physical part name as SN5400. 5. Specify the part type as IC. January 2002 107 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The completed dialog box should look appear as following: 6. Click OK. The Logical Pins dialog box appears. January 2002 108 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part 7. Select the pin type as INPUT. Note: This is selected by default. 8. Enter the logical pin names for input pins as 1A-4A, 1B-4B. 9. Click Add to add the specified pin names to the logical pin list. 10. Repeat the step 8 and 9 for the different pin types. For LS00, to enter output pins, select pin type as OUTPUT, enter 1Y-4Y as the pin names, and click Add. Repeat for GND and VCC pins. The loaded Logical Pins dialog box for LS00 should appear as following: 11. Click OK to accept the entries of the Logical Pins dialog box. A Part Developer Warnings message box appears. The warning message states that when you enter logical pins, they are entered in the slot range 1 to n, but when you reopen the part, the slot ranges will appear as 0 to n-1. For example, for LS00, the slot January 2002 109 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part ranges entered was 1-4. However, after you create the part and reopen it in Part Developer, the slot ranges will appear as 0 to 3. Therefore, pins 1A-4A will appear as 0A3A and so on. 12. Click OK. The next step is to create the packages for the part. But, before you create the packages you will save the information that you have so far entered. Intermediate Saving of Parts When you save a part in Part Developer, several pre-save checks are run. So if you try to save an incomplete part, you might get some warnings and the part will not get saved. Therefore, to save a work-in-progress part, you should use the intermediate save feature of Part Developer. To save the part information in an intermediate save file: 1. Choose File > Intermediate Save. The Save As dialog box appears. 2. Enter ls00 in the File Name field and press Enter. You successfully saved the part in an intermediate file. Creating Packages Task Overview Create the packages for the LS00 part. January 2002 110 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part Steps 1. Choose File > New > Package. The New Package dialog box appears. The General tab is selected by default. Note: Alternately, the New Package dialog box can be displayed by the RMB menu option on a “Packages” tree item. 2. Select the Specify Package Type field. 3. Enter the package type as DIP. 4. Enter the equivalent packages, as CFP and click Add. 5. To enter the value for the JEDEC_TYPE property, click Specify Footprint. The Physical Properties dialog box displays. 6. Click Browse. January 2002 111 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Footprints dialog box appears. The footprints are displayed from the <your_intall_dir>/share/pcb/pcb_lib. The footprint information itself is contained in the *.dra and *.psm files. 7. Select dip14_3 as the JEDEC_TYPE value. 8. Click OK. 9. Click OK. You entered the value for the JEDEC_TYPE property. Next, you need to update the BODY_NAME property. Tip You can also enter your own footprint information. This can be done either by manually typing in the value of the JEDEC_TYPE property or by updating the environment variable PSMPATH, or by adding new directories which Part Developer will scan for displaying the footprints. The environment variable PSMPATH stores the path to the footprint files. To set up the PSMPATH environment variable: a. Click Allegro Setup. The User Preferences Editor dialog box appears. January 2002 112 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part b. Click the Design_paths entry in the Categories list. c. Click the browse button (the button with three dots) next to the psmpath entry under Preference. The Physical Paths dialog box appears. You can set up your preferences for location of footprints in this dialog box. You can see the current value of the PSMPATH environment variable by selecting the Expand check box. a. To add new footprints, click on the New button. It is the button with a dotted outline. A new blank line is added with a browse button. b. Browse and select the footprints directory in the tutorial_project_data directory. c. Click OK. January 2002 113 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The new footprints are added. a. Click OK. b. Click OK again to close the Allegro Setup dialog box. c. To verify, click Browse button in the Physical Properties dialog box. January 2002 114 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Footprints dialog box appears. Notice that the first entry in the footprints list is plcc84. This entry is coming from the plcc84.dra file located in the c:\tutorial_project_data\footprints directory. Footprint information from c:\tutorial_project_data\foot print location 10. Click on the value column of the BODY_NAME property in the Additional Properties section. 11. Enter LS00 and click on the Physical Pin Mapping tab. January 2002 115 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Physical Pin Mappings page appears. This page enables you to add physical pins and map them to the logical pins. . 12. To get the physical pin list from the footprint, ensure that the Extract from Footprint is selected, and click Pin Numbers. A message box appears informing you that all pin numbers extracted from the footprint will be added as unmapped pins to the package. 13. Click OK. This lists all the extracted physical pins under the Physical Pins list in the Physical Pin Mapping property sheet. January 2002 116 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part Note that the Physical Pins list is not sorted. To sort it on numeric order, click the Number column heading. Next, you need to map the physical pins to the logical pins. 14. As per the datasheet, physical pin 1 is mapped to the logical pin 1A. Therefore, select 1A in the Logical Pins list and 1 in the Physical Pins list and click Map. January 2002 117 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part This maps the physical pin 1 to the logical pin 1A. Similarly, map the other logical pins to the respective physical pins. After the mappings, the Physical Pin Mapping sheet should appear as following: 15. Click OK to complete the creation of the package. Next, you need to create the CCC package. January 2002 118 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part Creating Multiple Packages Using Part Developer, you can easily and quickly create multiple packages. You can make copies of an existing package and then make the necessary changes to quickly get the new packages. Task Overview Create the CCC package for the LS00 part. Steps 1. Right-click on the SN5400_DIP package in the tree view. 2. Select Copy. 3. Right-click on the Packages entry in the tree view. 4. Select Paste. A copy of the SN5400_DIP package gets created with the name SN5400_DIP[1]. You need to modify the properties of this package to create the CFP package. 5. Right-click on the SN5400_DIP[1] entry in the tree view. 6. Select Properties. The Package Properties dialog box appears. You need to make the following changes to the current information: ❑ Package Type name ❑ JEDEC_TYPE value ❑ Physical Pin Mappings First, you will change the package type value. 7. Change the Package Type value from DIP[1] to CCC. Next, since the CFP package has 20 pins, you need to change the value of the JEDEC_TYPE property from dip14_3 to dip20. 8. To change the footprint information, click Specify Footprint. The Physical Properties dialog box appears. January 2002 119 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part 9. Click Browse. The Footprints dialog box appears. 10. Select dip20 and click OK. 11. Click OK. Next, you need to update the pin mappings. 12. To update the pin mappings, click Physical Pin Mapping. The Physical Pin Mapping property page appears. The DIP package has 14 pins. However, the CCC package has 20 pins. Therefore you need to add the additional 6 pins. You can either add the pins manually or extract it from the footprint. 13. To extract the pin list from footprint, ensure that the Extract from Footprint option is selected and click Pin Numbers. A message box appears informing that all the pin numbers present in the package, but not present on the footprint, will be removed from the package. The mappings for pin numbers present on the package, and also present on the footprint, will be preserved. Rest of the pin numbers on the footprint will be added as unmapped pins. 14. Click Yes. The added pin numbers get added to the Physical Pins list. Next, you need to modify the pin list for the CFP. Modification of pin list involves unmapping and remapping the changed pins. 15. To unmap the pins, click Unmap All. 16. Click Yes. The physical pins get unmapped and move back to the Physical Pins list. Next, you need to map the physical pins to the logical pins as per the datasheet. 17. Physical pin 1 is marked as NC in the datasheet. To mark it as NC in Part Developer, click the NC check box next to physical pin 1 in the Physical Pins list. January 2002 120 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part 18. Map the physical pin 2 to logical pin 1A. 19. Similarly, map the physical pins to the logical pins as per the datasheet. The completed pin mappings should appear as following: 20. After you complete the mappings, click OK. You successfully created the CFP package for the LS00 part. After you create the packages for a part, you need to create the symbols for the part. January 2002 121 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part Creating Symbols To enable you to create symbols effectively, Part Developer provides a Symbol Creation Wizard. The Symbol Creation Wizard guides you through the process of creating symbols. Task Overview Create symbols for the LS00 part. Steps 1. Choose File > New > Symbols. The Power/NC Pin Selection page of the Symbol Creation Wizard appears. The Symbol Creation Wizard detects that one package has NC pins whereas the other package does not. The Wizard asks you to determine whether you want to put the power and NC pins on them. In case you choose to do so, you will need to specify the package group on which you want to base your symbol. January 2002 122 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part A package group is a collection of packages which have the same logical to physical pin mappings. In this example, you will put the power and the NC pins on the symbol. 2. Choose Yes. 3. Click Next. January 2002 123 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Package Selection page of the Symbol Creation Wizard appears. In this page you need to determine on which package group you want to base the symbols. 4. To base the symbol on the SN5400_CCC package, choose SN5400_CCC. 5. Click Next. January 2002 124 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Symbol Kinds page of the Symbol Creation Wizard appears. 6. To create a symbol with logical pins and a symbol with logical and NC pins, check the Logical and Logical + NC check boxes. Note: Notice that there are options in the Symbol Kinds page that are separated by either by commas or a + sign. The difference between the two types is that if you select an option with comma, then two different symbols are created. For example, if you select the Logical, NC check box, then two symbols, one with logical pins and another with NC pins gets created. If you select an option with the + sign, then only one symbol gets created. For example, if you select the Logical +Power option, then only one symbol with both logical pins and power pins gets created. 7. Click Next. January 2002 125 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Package Types page of the Symbol Creation Wizard appears. Important The Package Types page enables you to specify the package type for the symbols that you are creating. Depending on the symbols that you have chosen to create, you may face a situation where the logical pin list in the package is not the same as the logical pin list of the symbol. For example, for a symbol to contain NC pins (Logical + NC in our case), there must be a package which contains the NC pins as logical pins. This implies that there should be a primitive in the chips.prt file which should have the NC pins in its pin section. However, when you create packages, Part Developer always puts all the power and NC pins in the body section. Therefore to have Power/NC pins as logical pins, you need to explicitly move the Power/NC pins upto the pin section. The Symbol Wizard solves this requirement by letting you create new packages which contain the Power/NC pins in the pin section. The information from existing packages is January 2002 126 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part used to create the new packages. You may choose to follow certain conventions while naming your packages, such as L_NC for logical+NC pins on the symbol. 8. To create the corresponding packages, for the Logical + NC symbol, specify the package type as L_NC and the Source Package as CCC. 9. Choose Next. This displays the Summary page. Check the summary to ensure its correctness. 10. Choose Finish to create the symbols. By default, when you create symbols for a symmetrical part, the symbol is created for only one section or slot. For LS00, the Symbol Wizard will create a symbol which will represent only one section of the four possible sections. However, Part Developer provides the ability to create symbols which represent more than one section. Such symbols are called HAS_FIXED_SIZE symbols. Next, you will make a copy of a symbol and make it a HAS_FIXED_SIZE symbol. January 2002 127 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part Copying Symbols Task Overview Make a copy of the symbol sym_1. Steps 1. Right-click on the symbol sym_1 in the tree view. 2. Select Copy. 3. Right-click on the Symbols in the tree view. 4. Select Paste. A new symbol sym_3 is created in the tree view. This symbol is a copy of the symbol sym_1. Next, you will make this symbol a flat symbol. Creating HAS_FIXED_SIZE Symbols Normally when you create a multi-section symmetrical part, only one of the section is displayed in the symbol. For example, for LS00, only one section containing the logical pins A, B and Y is displayed in the symbol. However, you may need to create symbols that show more than one section. You can create such parts by modifying the HAS_FIXED_SIZE property of a symbol. Such symbols are called HAS_FIXED_SIZE symbol. Task Overview Display all the four sections of LS00 in sym_3 by make the symbol sym_3 a HAS_FIXED_SIZE symbol. Steps 1. Right-click on sym_3 in the tree view. 2. Select Fixed Size. January 2002 128 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating a Multi-Section Symmetrical Part The Fixed Size Symbol dialog box appears. 3. To make this symbol represent all the four sections of LS00, change the Size entry to 4. 4. Click OK. You successfully created a HAS_FIXED_SIZE symbol. After you complete creating the symbols, you should verify the part to ensure that it us usable and then export it to the reference area. See Verifying Parts on page 76 and Exporting Parts to the Reference Area on page 83 for details. Summary In this chapter you learned about the methodology and steps involved in creating a multisection symmetrical part. In the next chapter you will learn to modify the part that you created in this chapter. January 2002 129 Product Version 14.2 Library Explorer and Part Developer Tutorial 7 Modifying Multi-Section Symmetrical Parts Objective To become familiar with the methodology and steps involved in modifying a multi-section symmetrical part. In this chapter, you will learn to: ■ Import a part from the reference library. ■ Set up Part Developer to view the part data as you had entered it. ■ Delete a package. ■ Delete a symbol. ■ Add a logical pin. ■ Delete a power pin. ■ Modify the packages. ■ Modify the symbols. ■ Verify the part. ■ Export the part. Importing a Part When you want to modify a part in the reference library, you need to import the part into your build area. After the part has been imported, you can use Part Developer to modify the part as required. For details, see Importing a Part on page 86. January 2002 130 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts After you import the part into the build area, you open it in Part Developer and make the necessary changes. Launching Part Developer 1. Choose Tools > Part Developer. The Create/Open Part dialog box in the Part Developer window appears. 2. Since you need to set up Part Developer before you create the part, click Cancel. The blank Part Developer window appears. Setting Up the Part Developer LS00 is a four-slot part. The datasheet for LS00 has the pin names in <Numeral><Alphanumeric> pattern. When creating the part, you had configured the pins to be interpreted as Slot-BaseName format. Therefore, when reading the part, you should ensure that the pins are interpreted in the Slot-BaseName format. Task Overview Setup Part Developer to interpret the pins in the Slot Number - Base Name format. Steps 1. Choose Tools > Options. January 2002 131 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts The Part Developer Setup Options dialog box appears. 2. Select the Slot Number - Base Name option. 3. Click OK. You setup Part Developer to read pins of LS00 in Slot-BaseName format. This is the same format in which you had entered the pin names whine creating the part. Next, you will modify the pin list. Modifying Pin List Task Overview Add a scalar pin Z to the part. Also, delete the power pin GND from the part. January 2002 132 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts Steps 1. Right-click on the Logical Pins entry in the tree view. 2. Select Edit Pin List. The Logical Pins dialog box appears. 3. Enter Z in the Pin Name field. 4. Click Add. 5. To complete the process, click OK. Next, you need to delete the power pin GND. January 2002 133 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts 6. Expand the Logical Pins entry in the tree view. 7. Right-click on the GND entry in the tree view. 8. Select Delete. You successfully deleted the GND power pin from the part. Next, you need to modify the packages and the symbols to reflect that changes in the pin list. Deleting Packages Task Overview Delete the SN5400_L_NC package. Steps 1. Right-click the SN5400_L_NC package in the tree view. 2. Select Delete. The SN5400_L_NC package is deleted from the LS00 part. Next, you will delete a symbol of the LS00 part. Deleting Symbols Task Overview Delete the symbol sym_2. Steps 1. Right-click on the symbol sym_2 in the tree view. 2. Select Delete. The sym_2 symbol of ls00 part is deleted. Next, you will modify the remaining packages to add the scalar pin Z. January 2002 134 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts Modifying Packages Task Overview Modify the DIP, CFP packages of the LS00 part. Steps 1. Right-click on the SN5400_DIP entry in the tree view. 2. Select Properties. The Package Properties dialog box appears. 3. Click Physical Pin Mapping. January 2002 135 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts The Physical Pin Mapping property page appears. Note that the power pin GND is removed from the logical pins list and the physical pin that was mapped to it is moved back to the Physical Pins list. 4. Map the physical pin 7 to the logical pin Z. 5. Click OK. You successfully updated the DIP package. Similarly update the CFP package. After you modify the packages, you need to updates the symbols. January 2002 136 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts Modifying Symbols Task Overview You added a scalar pin Z and remove the power pin GND from the part. Modify the symbol to reflect the changes. Steps First, you will add the scalar pin to all the symbols. To enable you quickly add a logical pin to all symbols in a sizeable part, do the following: 1. Right-click on the Symbol entry in the tree view. 2. Select Add Logical Pins. The Add Logical Pins dialog box appears. It displays the logical pin that you can add to all the symbols. 3. Select the pin Z and click OK. The logical pin Z gets added to all the symbols of the LS00 part. 4. Save the part by choosing File > Save. January 2002 137 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts A message box appears asking you whether new rectangular symbols should be created for the modified symbols or whether the existing shape of the symbols should be preserved. The second option implies that new pins will be added away from the boundary of the symbol. You will need to manually snap the pins to the symbol boundary in Concept-HDL. This functionality is provided to enable addition of pins to existing parts without destroying the symbol graphics. See Modifying Symbols on page 94 for details. 5. To regenerate the symbols, select all the two symbols and click OK. January 2002 138 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Multi-Section Symmetrical Parts The Part Developer Errors dialog box appears. It should show no errors. 6. Click OK. After you modify the symbols, you should verify that the part is error free. 7. To verify the part, select Tools > Verify. 8. Choose View Verification and click OK. The View Verification check should pass. Summary In this chapter, you learned the methodology and steps involved in modifying a multi-section symmetrical part. In the next chapter, you will learn to create an asymmetrical part. January 2002 139 Product Version 14.2 Library Explorer and Part Developer Tutorial 8 Creating Asymmetrical Parts Objective To become familiar with the methodology and the steps involved in creating an asymmetrical part. In this chapter, you will learn to: ■ Understand the definition of an asymmetrical part. ■ Understand the methodology involved in creating asymmetrical parts. ■ Manually enter the physical pin information. ■ Create multiple packages. ■ Create multiple symbols. ■ Verify parts. ■ Export a part into the reference area. Overview When creating parts, you may come across parts in which the logical pin lists across packages or slots are different. These are called asymmetrical parts. LS241 is such an asymmetrical part. January 2002 140 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts ■ Different logical pin list across slots: Consider the part LS241. The pins appear in the datasheet as follows: As displayed, LS241 is an 8-slot part with a low asserted enable signal (G*) and a high asserted enable signal (G). The high asserted enable signal G is present in four slots and low asserted enable signal G* is present in the remaining four. This divides the part into two groups. The first group has G as the enable pin and the second group has G* as the enable pin. Because the functionality of each section in a group is the same and because January 2002 141 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts of the different assertion signals across the sections, the logical pin list across the section or slots are different. The pin entries created will be as follows: DIfferent pin list across slots Notice that the pin number G is present in the first four slots and not in the next four. The slots in which G is not present have 0 as pin numbers. In this chapter, you will learn to create an asymmetrical part where the asymmetry arises due to different pin list across slots. January 2002 142 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts Create the LS241 part. It is an eight slot part with two slot groups, one with low asserted enable signal 1G* and the other with high asserted enable signal 2G. This part comes in DIP, SOIC and CFP packages. The diagram of the LS241 part is displayed below. . Entering Part Properties 1. Choose File > New > Part. The New Part Properties dialog box appears. 2. Select my_library from the Library Name drop-down list box. 3. Enter LS241 in the Part Name field. Note: The Physical Part Name field also gets filled in automatically as you enter the a part name field. This field is used as the PART_NAME property in the chips.prt file. 4. Click OK. The Logical Pins dialog box appears. Next, you need to configure the pin name interpretation for the logical pins. January 2002 143 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts Configuring Pin Name Interpretation Need for Configuring Pin Name Interpretation As displayed, the LS241 component is an eight slot part with two slot groups, one with low asserted enable signal 1G* and the other with high asserted enable signal 2G. In the datasheet the pins are present in <Numeral><Alphanumeric String><Numeral> format such as 1A1, 1A2 and in <Numeral><Alphanumeric String> format such as 1G* and 2G. Here the leading numeral represents the group, the alphanumeric string represents the base name and the trailing numeral represents the slot number. Therefore the pins need to be interpreted as Group-Base Name-Slot and Group-Base Name respectively. Alternately, you can also enter the pins in the BaseName-Slot format, that is, as A1-A8, B1B8 etc. See Alternate Method of Creating an Asymmetrical Part on page 162 for details. Task Overview Configure the pin interpretation to interpret <Numeral><Alphanumeric><Numeral> pins as Group-BaseName-Slot and <Numeral><Alphanumeric> as Group-BaseName. Steps 1. Click Edit in the Pin Name Interpretation group box in the Logical Pins dialog box. January 2002 144 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts The Pin Name Interpretation tab of the Part Developer Setup Options dialog box appears. January 2002 145 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts 2. Select Group-Base Name [G-BN] and Group-Base Name-Slot [G-BN-S]. 3. Click OK. You successfully setup Part Developer to interpret pins as Group-BaseName-Slot and Group-Base Name. Next, you need to enter the logical pins as they appear in the datasheet. Entering Logical Pins Task Overview Enter the pin information as displayed in the diagram into Part Developer. The pins will be entered in the same sequence as they appear in the diagram. January 2002 146 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts Steps 1. Select INPUT from the Pin Type as Input. 2. Enter 1A1-1A4, 2A1-2A4 in the Pin Name text box. 3. Click Add. 4. Enter 1G in the Pin Name text box. 5. Click Add. 6. Enter 2G in the Pin Name text box. 7. Select the Active Low check box. 8. Click Add. January 2002 147 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts 9. Similarly, add the 1Y1-1Y4, 2Y1-2Y4 as the output pins and VCC and GND as the power pins. The filled up Logical Pins dialog box for LS241 part is displayed below: 10. To accept the entries and close the Logical Pins dialog box, click OK. After the logical pins have been entered, you need to create the packages. January 2002 148 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts Creating Packages Task Overview Create the DIP package for the LS241 part. Modify the value of the BODY_NAME property to LS241. The logical to physical pin mappings are as following: Steps 1. To begin the process of creating packages, choose File > New >Package. The New Package dialog box appears. By default, the General tab is selected. 2. Enter DIP in the Specify Package Type field. 3. To update the value for the JEDEC_TYPE property, click Specify Footprint. January 2002 149 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts The Physical Property dialog box appears. You need to specify the value of the JEDEC_TYPE property for the package. The value for the JEDEC_TYPE property will be picked up from the Allegro footprints of standard packages provided by Cadence. 4. To select the appropriate JEDEC_TYPE, click Browse. The Footprints dialog box appears. This has the complete list of footprints supplied by Cadence. 5. Select dip20. 6. Click OK. 7. Next, click in the Value column next to the ALT_SYMBOLS property. 8. Click Browse. The Footprints dialog box appears. 9. Select dip20_3. 10. Click OK. You selected the value for the JEDEC_TYPE and ALT_SYMBOLS properties. 11. To specify the value for the BODY_NAME property, enter LS241 as the value. 12. Next, you need to enter the physical pins and map them to the logical pins that you entered earlier. To get to the page where you enter physical pins, click the Physical Pin Mapping tab. You can either add the physical pins manually, or extract them from the footprint. Extracting the pins from footprint is useful when you are dealing with large pin count parts. For this example, you will add the pins manually. January 2002 150 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts 13. To add the pins manually, select the Add Manually option. 14. Click Pin Numbers. The Add Physical Pin Numbers dialog box appears. You add the physical pin numbers through this dialog box. 15. Since the part has 20 pins, enter 1-20 in the Numeric field and click OK. January 2002 151 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts The physical pins get added to the Physical Pins list in the New Package dialog box. Next, the physical pins need to be mapped to the logical pins. The general method to map a physical pin with logical pin is to select both the pins and click on the Map button. 16. As per the datasheet, physical pin 1 is mapped to logical pin 1G. Therefore, select 1 in the Physical Pins list, and select 1G in the Logical Pins list. 17. To map the selected pins, click Map. The physical pin 1 is mapped to the logical pin1G Note: Whenever you map a physical pin to a logical pin.The pin number moves from the Physical Pins list to the Logical Pins list and the next pin number in the list gets selected in the Physical Pins list. This eases the pin mapping effort as you do not need to explicitly January 2002 152 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts select a physical pin to map to a logical pin. You can simple select the logical pin that you want the automatically selected physical pin to be mapped to, and map it. 18. To map pin number 2 to logical pin 1A1, select 1A1 in the Logical Pins list. 19. Click Map. Similarly, map the remaining pins. January 2002 153 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts After the mappings are done, the New Package dialog box should appear as displayed below. 20. Click OK to complete the process of creating the DIP package. January 2002 154 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts Creating Multiple Packages Task Overview Create the CCC package for LS241. The package information is displayed below: You can create multiple packages in two ways: ■ By creating a fresh package. ■ By making a copy of an existing package and then making the necessary changes. This method helps you save time while making multiple packages for a part. For this example, you will make a copy of the DIP package and then make the necessary changes for the CCC package. Steps 1. Right-click on the LS241_DIP package in the tree view. 2. Select Copy. 3. Right-click on Packages. 4. Select Paste. January 2002 155 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts A copy of the LS241_DIP is made with the name as LS241_DIP[1]. You need to change the properties of this package. 5. Right-click on LS241_DIP[1]. 6. Select Properties. The Package Properties dialog box appears. 7. Enter CCC in the Specify Package Type field. 8. To specify the correct footprint for CCC type package, click Specify Footprint. The Physical Properties dialog box appears. 9. To display the list of available footprints in Allegro, click Browse. The Footprints dialog box displays. 10. Select flat20 and click OK. 11. Since there are no alternate symbols for the CCC package, remove the value for the ALT_SYMBOLS property. January 2002 156 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts 12. Click OK. Next, you need to change the logical to physical pin mapping information for the CCC package. 13. Click the Physical Pin Mapping tab. The Physical Pin Mapping tab page appears. This page displays the current logical to physical pin mappings. You need to update the mapping information for the CCC package. Notice that there is no difference in the pin mappings between the DIP and the CCC package, therefore there is no need to make any changes in the Physical Pin Mapping property page. 14. To complete the creation of the CCC package for LS241, click OK. After you create the packages, the next step is to create symbols for the part. Creating Symbols Part Developer provides a powerful Symbol Creation Wizard which enables you to quickly and efficiently create symbols for a part. Task Overview Create symbols for the part. Steps: 1. To begin creating the symbols, select File > New > Symbol. The Select Sections page of the Symbol Creation Wizard appears. This page informs you that there are two groups which exist for the packages. You need to January 2002 157 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts determine the groups for which you want to create the symbols. You can select either one of the groups or both. You will create a symbol based on both the slot groups. 2. Click Select All and click Next. The Symbol Kinds page of the Symbol Creation Page appears. In this page you can determine the types of symbols you want for the part. For this example, you will create the following symbols: ❑ A symbol with only logical pins January 2002 158 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts ❑ A symbol with logical and power pins 3. Note that, by default the Logical option is selected. This will create the symbol with only logical pins. To create the symbol with both logical and power pins, select the Logical+Power option and click Next. The Package Types page of the Symbol Creation Page appears. This page displays the symbols that you want to make and the packages that correspond to the symbols. You will notice that the value of the Package Type field next to the Logical symbol is filled with the DIP,CCC values whereas next to the Logical + Power symbol, the value of the Package Type field is empty. This happens because when you create a package using Part Developer, the power and NC pins are always put in the body section of the chips.prt file. However, when you want a symbol to show the power and/or NC symbol, the power/NC pins must necessarily be in the pin section of the chips.prt file. Since currently there are no January 2002 159 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts packages that have the power/NC pins on the pin section, the value of the Package Type next to the Logical + Power symbol appears blank. To enable the creation of a symbol which can display both the logical and power/NC pins on the symbol, you need to create a new package that will have the logical as well as the power/NC pins on the pin section. You can do this by entering a package name in the Package Type field next to the Logical + Power symbol and specify a source package from which this package will be created. When you specify the source package, Part Developer uses the information from the source package and creates the section for the package in the chips.prt file. 4. Enter lp in the Package Type field next to the Logical + Power symbol entry. 5. Select DIP as the source package and click Next. January 2002 160 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts The Summary page of the Symbol Creation Wizard appears. Notice that four symbols will be created. This is because Symbol Wizard creates one symbol for each of the slot groups in the part. 6. To complete the process of creating the symbols, click Finish. Saving Parts Task Overview Save the LS241 part. January 2002 161 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts Steps ➤ To save the part, choose File > Save. The Part Developer Errors dialog box appears. It should show no errors. Verifying Parts The parts that you created should be error free and usable in the design flow. Part Developer provides you with robust verification tools which ensure that the parts are correct and usable. Task Overview Verify the LS241 part for errors across the different views. Steps: 1. To begin the process of verifying the part, choose Tools > Verify. 2. To do the verification of the stand-alone views and cross check view, select the View Verification option. 3. Click OK. The Verification Results dialog box appears. The verification should not report any errors. Congratulations. You have successfully created the LS241 part. After you create a part and verify it, you should export the part into the reference area and then delete it from the Build area. See Exporting Parts to the Reference Area on page 83 for details. Alternate Method of Creating an Asymmetrical Part In parts such as LS241, if you choose to use the BaseName-Slot notation for entering the logical pins then there has to be a mechanism to determine to which slot groups do the scalar pins G and G* belong. This ability is provided by the Expand to Slots function. To do so: 1. Setup Part Developer (Tools > Options > Pin Name Interpretation) to interpret <Alphanumeric String><Numeral> logical pins as BaseName-Slot. January 2002 162 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Asymmetrical Parts 2. Enter the logical pins, as A1-A8, B1-B8, Y1-Y8, G, and G*. Note: Note the difference in the logical pin naming. If you had chosen the GroupBaseName-Slot interpretation instead of the BaseName-Slot interpretation, the pins would have been entered as 1A1-1A4, 2A1-2A4, 1B1-1B4, 2B1-2B4, 1Y1-1Y4, 2Y1-2Y4, 1G and 2G*. 3. Create a new package. 4. Enter/extract the required physical pins. 5. Associate the logical pins to the physical pins except G and G*. 6. Right-click on G. 7. Select Expand to slots. This will expand the scalar pin G across all the slots in the part. For LS241, the scalar pin G will get expanded to all the eight slots, G<1>..G<8>. Similarly, expand the other scalar pin G*. 8. Since G is common across the first four slots, map the physical pin 1 to G<1>..G<4>. Leave the remaining slots empty. Similarly, map the physical pin 19 to the G*<5>..G*<8> slots. 9. To complete the process, click OK. After you create the packages, the remaining steps in creating an asymmetrical parts are the same as described in the example before. Summary In this chapter you become familiar with the methodology and steps involved in creating asymmetrical parts. In the next chapter, you will learn to modify the part that you created in this chapter. January 2002 163 Product Version 14.2 Library Explorer and Part Developer Tutorial 9 Modifying Asymmetrical Parts Objective To become familiar with the methodologies and steps involved in modifying asymmetrical parts. In this chapter, you will learn to: ■ Import a part from the reference library. ■ Set up part developer to read-in asymmetrical parts as they were entered. ■ Add logical pins. ■ Modify the packages. ■ Modify the symbols. ■ Add package pin properties. ■ Add symbol pin properties. ■ Change the blank pin spacings for a symbol pin. ■ Verify the part. Overview In this chapter, you will import the LS241 part into the build area and modify it. Importing a Part The first step in modifying a part in a reference area is to import it into the build area. To see the steps, see Importing a Part on page 86. After you import the part, open the part in Part Developer to modify it. January 2002 164 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts Setting up Part Developer Before opening a part, you should configure Part Developer to ensure that the part is read in correctly. The Format tab is divided into two group boxes: ■ Low Asserted Pin Syntax. The setting in this group box determines the pin names that Part Developer will treat as low asserted while reading a part. You also specify the notation that Part Developer should use to write a low asserted pin into the symbol and the chips.prt file. You have the following options: ❑ Either with a asterisk (*) or _N suffix: In this case any pin which has either a * or _N as a suffix in its name is read as a low asserted pin. You can then determine whether you want to write the low asserted pin into the symbol file with either the '*' or '_N' suffix. ❑ With a star (*) notation: In this case, the pins with a * suffixed in their names are read as a low asserted pin. The pin is written back to the symbol file with the *. ❑ With a _N notation: In this case, the pins with _N as suffix are read in a low asserted pin. They are written into the symbol file with the _N notation. Note: Select the Use minus [-] sign for low asserted pins in Package view to ensure that the pins that are considered low asserted are written into the chips.prt file prefixed with a minus [-] sign. If you leave this unchecked, then the low asserted pins are written into the chips.prt file with the same notation as they were written into the symbol.css file. ■ Chips File Reading Options The options in this group box determines how Part Developer reads the chips.prt file for displaying the following: ❑ Asymmetrical parts Asymmetrical parts have multiple slots which have different functionality. Corresponding to each functionality, there is a pin list. All sections or slots that have the same functionality have the same pin list. The slots that have the same functionality form one group. You can choose to display the pin numbers in such a way that the group numbers are also visible. You can do this by selecting the Use group format for reading asymmetrical parts check box. January 2002 165 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts If this option is checked, you can see the groups to which each of the pin in a package belongs. For example, displayed below is the expanded pin list of the SOIC package of the LS241 part, where the group format is used to read the asymmetrical part. Group Number January 2002 166 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The same part is displayed again. This time, the group format has not been used to read the asymmetrical parts (the Slot-Base Name format has been used). Notice that the group information is not displayed in the expanded package pin list. f Slot Number ❑ Sizeable pins Sizeable pins can be displayed in Part Developer in one of the following ways: Slot Number-Base Name or Base Name - Slot Number. In the Slot Number - Base Name format, the numeric part is the slot number while the alphanumeric string part is the base name. For example, if a pin A is present in slots 1,2,3,4, it will be displayed as 1A, 2A,3A,4A. January 2002 167 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts In the Base Name- Slot Number format, the alphanumeric string part is base name and numeric part is treated as a slot number. For example, if a pin A is present in slots 1,2,3,4, it will be displayed as A1, A2,A3,A4. ❑ Vector pins Vector pins can be displayed in Part Developer in one of the following ways: Bit Number - Base Name or Base Name - Bit Number. In the Bit Number - Base Name format, the numeric part is the bit number while the alphanumeric string part is the base name. For example, if a vector pin A has two bits, it is displayed as A<Size 2..0>. In the Base Name - Bit Number format, the alphanumeric string part is the base name and the numeric part is the bit. For reading in the LS241 part, ensure that the Use group format for reading asymmetrical parts is selected. This is required because you had used the group format while creating the part. Task Overview Set up Part Developer to read in the LS241 part in the same format as you had created it. Steps 1. Launch Part Developer. 2. Select Tools > Options. The Part Developer Setup Options dialog box appears. 3. Click Format. The Format property page appears. 4. Ensure that the following options are selected: ❑ In the Low Asserted Pin Syntax group box, Suffix ‘*’ and Suffix ‘_N’ is selected. This will ensure that the pins in the symbol file which have either * or _N as the suffix are read in as low asserted pin. ❑ Use minus [‘-’] for low asserted pins in Package view is selected. This will ensure that the low asserted pins are written back into the chips file with the ‘-’ sign. ❑ Use group format for reading asymmetrical parts is selected. This ensures that the part is loaded with the group information. January 2002 168 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts 5. Click OK. Next, you need to open the part to modify it. Opening the Part Task Overview Open the LS241 part. Steps 1. Select File > Open The Open Part dialog box appears. 2. Select my_reference_libs from the Library drop-down list. 3. Select ls241 from the Cell drop-down list. 4. Click OK. The LS241 part launches in Part Developer. Next, you will add a logical pin to the part. Modifying Logical Pin List Task Overview Add logical pins 1K and 2K to the LS241 part. Steps 1. To add the logical pins 1K and 2K to the LS241 part, right-click on the Logical Pins entry in the tree view. 2. Select Edit Pin List. The Logical Pins dialog box appears. 3. Enter 1K, 2K in the Pin Name field. January 2002 169 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts 4. Click Add. 5. Click OK. This adds the logical pins 1K and 2K to the logical pins list. Next, you need to update the packages and symbols to reflect this change. Modifying Packages Task Overview Update the packages to add the new logical pin. Also add a property my_prop with the value ABCD to the packages. Updating the packages involves the following tasks: ■ Adding the physical pins for the new logical pins ■ Mapping the physical pins to the new logical pins ■ Updating the footprint information, i.e. the JEDEC_TYPE and ALT_SYMBOL values. ■ Adding the additional properties ■ Saving the packages Note: Although in this section you will be adding the physical pins manually and then updating the value for the JEDEC_TYPE property, it is not the recommended way. This style is covered only to show the possible ways in which you can use Part Developer. The recommended way to modify packages is to first update the value of the JEDEC_TYPE property, then extract the footprint information and change the pin mappings if required. Steps 1. Right-click on the LS241_DIP package in the tree view. 2. Select Properties. The Package Properties dialog box appears. 3. Click Physical Pin Mapping. January 2002 170 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Physical Pin Mapping property page appears. Note that the logical pins 1K and 2K appear in the Logical Pins list. Next, you need to add the physical pins for the added logical pins. 4. To manually add the pins, select the Add Manually option. 5. Click Pin Numbers. January 2002 171 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Add Physical Pin Numbers dialog box appears. Since the package already contains 20 pins, you need to add 2 more pins for the additional two logical pins. 6. Enter 21-22 in the Numeric field. 7. Click OK. January 2002 172 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The physical pins get added to the Physical Pins list. Next, you need to map the physical pins to the logical pins. 8. To map the logical pin 1K to the physical pin 21, select the pins and click Map. 9. Similarly, map logical pin 2K to physical pin 22. Next, you need to update the value of the JEDEC_TYPE property for the package. 10. Click General. The General property page appears. 11. Click Specify Footprint. January 2002 173 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Physical Properties dialog box appears. 12. To update the JEDEC_TYPE property value, click Browse. The Footprints dialog box appears. 13. Select dip22_3 and click OK. Next, you need to update the ALT_SYMBOLS value. 14. Click on ALT_SYMBOLS. 15. Click Browse. The Footprints dialog box appears. 16. Select dip22_4 and click OK. 17. Click OK. You successfully modified the footprint information. Next, you need to add the my_prop property to the package and add ABCD as its value. 18. Double-click in the blank cell under the BODY_NAME property in the Additional Properties section. 19. Enter my_prop and click on the column under Value. 20. Enter ABCD as the value. 21. To complete the process of updating the package, click OK. You successfully updated the DIP package of the LS241 part. Similarly update the other packages. After you update the packages, you need to update the symbols. Updating Symbols Task Overview Update the symbols to add the new logical pins to the symbol drawing. Steps For asymmetrical parts, you need to update the symbols individually. 1. To update sym_1, right-click on the sym_1 entry in the tree view. January 2002 174 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts 2. Select Modify Pin List. The Symbol Modification Wizard appears. This page informs you that the selected symbol is based in the DIP, CCC packages and asks you whether you want change the package association for the symbol. By default, No is selected. 3. Since you do not need to change the package association, click Next. January 2002 175 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The next page of the Symbol Modification Wizard appears. This page displays the different slot groups that exist for the package. You need to determine the slot group on which you want to base the symbol. 4. To update the symbol for the first slot group, select Groups 1 and click Next. January 2002 176 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Summary page appears. The Summary page displays the pins that will be visible in sym_1 and the package the symbol is associated with. 5. Click Finish to complete the process of updating the symbol. Similarly update the other symbols for the part. After you update the packages and the symbol, you need to save the part. Saving Modified Part Task Overview Save the modified LS241 part. January 2002 177 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts Steps 1. Choose File > Save. A message box appears asking you whether new rectangular symbols should be created for the modified symbols or whether the existing shape of the symbols should be preserved. The second option implies that new pins will be added away from the boundary of the symbol. You will need to manually snap the pins to the symbol boundary in Concept-HDL. This functionality is provided to enable addition of pins to existing parts without destroying the symbol graphics. 2. To regenerate symbols, select the regenerate option for all the symbols. 3. Click OK. The Part Developer Errors dialog box appears. It should show no errors. Next, you will add some properties to the symbol and package pins. January 2002 178 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts Adding Symbol Pin Properties Task Overview Add the property my_pack_pin_prop to the pin 1G in the LS241_DIP package. The value for the property should be my_prop_value. Steps 1. To associate a pin property to the LS241_DIP package, expand the package in the tree view. The expanded view of the LS241_DIP package appears. 2. Right-click on the pin 1G. 3. Select Properties. January 2002 179 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Package Pin Properties dialog box appears. You can set the pin specific properties for a package through this dialog box. 4. To enter the my_pack_pin_prop property, click Additional. January 2002 180 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Additional property page appears. You enter the additional properties for a package pin in this property page. 5. Enter my_pack_pin_prop under the Name column and click under the Value column. 6. Enter my_prop_value and click OK. You successfully entered a package pin property. Next, you will add a symbol pin property. January 2002 181 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts Changing Symbol Pin Properties Task Overview Do the following changes to the pin G of symbol sym_1: ■ Change the blank pin spacing of pin G to leave 5 stub pin stubs before the pin G. ■ Add a symbol pin property my_symbol_pin_prop to the logical pin G in sym_1. The value of the property should be my_symbol_prop_value. Set up the property so that both the pin property name and its value is visible and left-aligned. Steps 1. To associate a pin property to the sym_1 symbol, expand sym_1 in the tree view. 2. Right-click on G. 3. Select Properties. January 2002 182 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Symbol Pin Properties dialog box appears. You specify all the symbol pin specific properties through this dialog box. 4. Enter 5 in the Before field of the Blank Pin Spaces group box. This will result in 5 pin stubs being left blank before the pin G in the symbol sym_1. This feature is useful in cases where you want to keep a certain amount of gap between two types of pins such as an address bus and a scalar pin in a symbol. 5. To enter the my_symbol_pin_prop property to the symbol pin, click Additional. January 2002 183 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts The Additional property page appears. You enter all the symbol pin related properties through this page. 6. Enter my_symbol_pin_prop under the Name column and click under the Value column. 7. Enter my_symbol_pin_prop_value. 8. Select Both from the Visible column. 9. Click OK. You successfully added a symbol pin property. Now save the part. After you modify a part, you should verify the part for correctness. See Verifying Parts on page 76 for details. After you verify the part, you should export it to the reference area. See Exporting Parts to the Reference Area on page 83 for details. Note: After you export a part to the reference area, you should delete the part from the build area. January 2002 184 Product Version 14.2 Library Explorer and Part Developer Tutorial Modifying Asymmetrical Parts If you view the symbol in Concept-HDL, it should display as following: Summary In this chapter you learned to modify an asymmetrical part. In the next chapter you will how Part Developer handles pin texts. January 2002 185 Product Version 14.2 Library Explorer and Part Developer Tutorial 10 Handling Pin Texts Objectives In this chapter, you will be able to: ■ Understand the methodology involved in handling pin texts. Methodology In parts created in earlier versions of Part Developer, the pin text was stored as a note in the symbol file and not as a pin property. Therefore, there was no direct association of the pin text with the pin. In the new release of Part Developer, pin texts are stored as properties on the pin. In the new Part Developer, the following methodology is implemented: ■ For new parts, the pin text is stored as the PIN_TEXT property. This property is associated with the pin. ■ When parts created in an earlier version of Part Developer or Concept-HDL are loaded in Part Developer, it is likely that the pin texts on symbols are not stored as properties on the pin. In this case, Part Developer will automatically assign the pin texts to the pins and you will be prompted to save the part. However, before saving the part, you should verify that the pin texts are mapped correctly by launching the Associate Pin Text dialog box and checking the pin texts corresponding to the pins. ■ In case there are some texts that are still unassociated, you should decide whether you want to retain or remove the text. In case there are any unassociated pin text left on the symbol, a warning will be given during the saving of the part. You can choose to either retain the unassociated text in the symbol or remove them from the symbols. You may want to retain the unassociated texts if they are symbol texts and not pin texts. The next time you load such parts, the pin texts will be associated with the pins as pin properties. January 2002 186 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts To understand this feature, you will open the parts provided in the old_parts library under the tutorial_project_data directory. To open the parts of the old_parts library, you need to do the following: ❑ Add the old_parts library to the tutorial_project library project. ❑ Launch Part Developer on the parts of the old_parts library. Adding Libraries to a Library Project You can add your own libraries to an existing library project by modifying the cds.lib file of the project. You can modify the cds.lib file from within Library Explorer. Task Overview Add the old_parts library to the tutorial_project library project. Steps 1. Launch Library Explorer and open the tutorial_project library project. 2. Choose Edit > Modify Library List. The cds.lib file appears. 3. Add the following line: DEFINE old_parts c:\tutorial_project_data\old_parts 4. Save the file and close it. 5. Choose View > Refresh. The old_parts library gets added to your library project. Next, you will launch Part Developer on the parts of the old_parts library to understand how Part Developer works with parts where the pin texts on symbols are not stored as properties on pins.. Working with Unassociated Pin Texts To understand the how Part Developer deals with older parts, you will open the following parts of the old_parts library: ■ 3807 January 2002 187 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts This is a part with a 10 bit vector pin O and a scalar pin IN. Each bit of the vector pin has a pin note associated with it, such as O1, O2 etc. The original symbol is displayed below: ■ 803237_50hz This is a part with 20 logical pins, 4 power pins and two ground pins. The sym_1 is displayed below: January 2002 188 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts Note that some of the pins have two pin texts associated with them, such as LOW BATTERY and EXTERNAL ADJ is associated with the BATT_EXT pin. Task Overview Open the 3807 part in the old_parts library and associate the pin texts as pin properties. Steps 1. In the Library Explorer window, select the 3807 part in the old_parts library. 2. Choose Tools > Part Developer. Part Developer launches on the 3807 part with a message box saying that the pin texts in the symbol are not stored as properties of the pin. This happens because currently the pin texts are not associated to the pins as pin properties. 3. Click OK. The part opens in the Part Developer with the warning that some text in sym_1 could not be associated with any pin. You should use the Associate Pin Text option to associate January 2002 189 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts the text properly. This happens because part Developer tries to associate the pin texts to the existing pins of the part and finds some text that it fails to associate with any pin. 4. Click OK. 5. To display the Associate Pin Text dialog box, right-click on sym_1 in Part Developer tree view. 6. Select Associate Pin Text. The Associate Pin Text dialog box appears. Since Part Developer has the limitation that for a vectored pin, bit specific property values are not allowed. So the pin texts for all the bits are constrained to be the same. Therefore, in the Associate Pin Text dialog box, January 2002 190 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts only pin O10 gets associated with the vector pin O and rest of the notes are left as unassociated text. 7. Change the pin text associated to the vector pin O from O10 to O. This is required because Part Developer follows the convention of always adding the range notation (<0> etc.) for pin texts for a vectored pin. 8. Click OK. Next, you need to remove the unassoicated text as they have no relevance for the symbol. To remove the unassociated pin texts, you need to save the part. 9. Choose File > Save. January 2002 191 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts The Retain Unassociated Text dialog box appears. 10. To remove the unassociated text, select the Remove Unassociated Text checkbox. 11. Click OK. A message box appears. It should show no errors. 12. Click OK. 13. Launch Concept HDL on the sym_1. Note that the bits of the vector pin now have O<n> as the pin text associated with them.For example, bit 1 has the pin text O<1>. 14. Close Concept-HDL and Part Developer. Next, you will open the 803237_50hz part. Task Overview Open the 803237_50hz part in Part Developer. January 2002 192 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts Steps 1. In Library Explorer, select the 803237_50hz part. 2. Choose Tools > Part Developer. Part Developer launches on the 803237_50hz part with a message box saying that the pin texts in the symbol are not stored as properties of the pin. 3. Click OK. The part opens in the Part Developer with the warning that some text in sym_1 and sym_2 could not be associated with any pin. You should use the ‘Associate Pin Text’ option to associate the text properly. 4. Right-click on sym_1 in the Part Developer tree view. 5. Select Associate Pin Text. The Associate Pin Text dialog box appears. It is important to remember that although Part Developer tries to associate pin texts to pins, three things could happen: ❑ Wrong pin text is associated with a pin. ❑ Some pin texts are left unassociated ❑ Pin with multiple pin texts have only one pin text associated with them. The remaining stay as unassoicated. Therefore after the Associate Pin Text dialog box is opened the first time, you should verify the pin texts against the symbol and fix the inconsistencies. In the 803237_50hz, all the three inconsistencies are present. Note that the pins 5VA, 8VA, 5VB and 8 VB have incorrect pin texts. Pins such as Z_AMP_IN have no pin texts associated with them. And pins such as BATT_EXT which had multiple pin texts have January 2002 193 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts only one pin text associated with them. The remaining pin texts are left as unassoicated. Therefore, you need to fix these inconsistencies. First, fix the incorrect pin text issue. 6. Edit and change the pin text entry next to pin 5VB from VB to 5VB. Similarly change the other incorrect pin texts. Next, map the pin texts to the pins which have been left blank. 7. Select Z_AMP_IN in the Pin Name column and Z AMP IN in the Pin Text column and click Map. This maps the Z AMP IN pin text to the Z_AMP_IN pin. Similarly, map the GAIN BLOCK INPUT, EXTERNAL BIAS, V REF IN, LOOSE LEAD and LOW BATTERY pin texts. Finally, you need to determine whether you want to add the pin texts to the pin that had multiple pin texts. 8. The pin BATT_EXT had two pin texts, LOW BATTERY and EXTERNAL ADJ. Part Developer only associated LOW BATTERY pin text to the BATT_OUT pin and left the other pin text as unassociated pin text. In case you want to add it, you will have to edit the LOW BATTERY pin text and type the remaining pin text by hand. January 2002 194 Product Version 14.2 Library Explorer and Part Developer Tutorial Handling Pin Texts After you have completed updating the pin text association for sym_1, you should verify and update the pin texts for sym_2. Note: It is important to remember that the part name that appears in the symbol is the symbol text stored in the symbol file and can be edited only through the Symbol Properties dialog box. Next, you need to delete the unassoicated pin texts. To remove the unassociated pin texts, you need to save the part. 9. Choose File > Save. The Retain Unassociated Text dialog box appears. 10. To remove the unassociated text, select the Remove Unassociated Text checkbox. 11. Click OK. A message box appears. It should show no errors. 12. Click OK. 13. Launch Concept HDL on the sym_1 and verify that the pin texts are associated properly as pin properties. 14. Close Concept HDL and Part Developer. Summary In this chapter you learned how Part Developer handles pin texts. This chapter also concludes the functionality that is available in Library Explorer and Part Developer if you have the PCB Librarian licence. In the next chapter you will learn to create and work in data-managed projects. January 2002 195 Product Version 14.2 Library Explorer and Part Developer Tutorial 11 Data-Managed Projects Objective To become familiar with the methodologies and steps in creating and working with datamanaged projects. In this chapter, you will learn to: ■ Understand the methodology of a data-managed project. ■ Setup the environment variables necessary to launch Library Explorer in the datamanaged mode. ■ Execute the script to setup areas needed to work in data-managed mode. ■ Create the data-managed project using Library Explorer. ■ Join a data-managed project. ■ Checkout a part and modify it. ■ Checkin the modified part. Overview of Data-Managed Project Overview You can create data-managed (DM) projects in Library Explorer only if you have the PCB Librarian Expert licence. DM projects allow teams of library developers to work on projects. The Project Leader can create a new DM project and the team members can then join in. Version control of data is supported. The Library Explorer tool provides the interface for managing library data through checking-in and checking-out of data. A project comprises of the following storage areas: January 2002 196 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects ■ Vault or Repository This is the location where all checked-in data resides. Users (team members and the Project Leader) can check out data, work on it, and check in data back into the repository. Each project has its own repository. Multiple projects cannot share a repository. ■ Integration area (Integ area) This is the location where all the verified libraries and parts are stored. The Project Leader checks out data from the repository, validates it, and updates the integration area with libraries for the designers. This area serves as the access point for designers. ■ Local work areas/build areas These are the local work areas owned by individual team members. The team member can check out data from the repository into the local work area, work on it, and check the data back in to the repository. Team members can also create new libraries and cells and check them into the repository. The creation of a new project would typically be a one time operation because all the libraries can be managed by one project. For specific reasons such as to have separate team members for different projects, the Project leader might decide to create more than one project, and distribute the libraries to be managed among these projects. January 2002 197 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The following figure illustrates the use model of a DM project Leader ProjectProject Leader ■ Create Project ■ Modify Project Repository ■ Update integ area ■ Create work area (optional) If work area is created: ■ Check out from repository ■ Check in to repository PL updates the integ area Team Members Integ Area ■ Join Project ■ Check out from repository ■ Check in to repository Designers January 2002 198 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects Pre-requisites for Creating a DM Project Library Explorer enables you to create a DM project. However, before creating a project, the following needs to be done by the Project Leader. They are: 1. In UNIX, set the umask appropriately, by running the command umask 002. This is required so that everybody in the group has permissions to make modifications in the repository. For NT, set up the appropriate share permissions (i.e. read, write) on the folders corresponding to the repository and the integration area. This permission is required for all users. 2. Set the following variables: ❑ TZ = GMT This sets the time zone. This is required by VersionSync to execute properly. ❑ GDM_MAIL_HOSTNAME = <your_mailserver_name> This setting is required for Part Developer to send mails to team members asking them to join the project. 3. Decide on the libraries that need to be managed and the integration area. 4. Decide on the location of the vault or the repository for the project. 5. Decide on the location of the local workarea. 6. After you have decided the libraries to be managed and the locations, you need to run the vssetvault script in a command window. This script sets up the vault, integration area, and local workarea appropriately. Currently, data-managed functionality is being provided with the version control system called VersionSync. The script that needs to be run for setting things up is called vssetvault and for UNIX, should exist in <install_dir>/tools/bin (if the VersionSync kit has been installed). Before you create or join a DM project in NT, you should do the following: 1. Provide write access to the repository and the integration area to all the members of the project team. 2. Put the following entry as the first entry in your PATH environment variable: <your_install_dir>/vs_nt This entry ensures that the diff executable in the vs_nt directory is the one that is picked up by the tool. January 2002 199 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The vssetvault script takes two parameters, the path to your repository and the path to your integration area or the local build area. The vssetvault script has to be run twice. In the first instance, the script prompts for the paths to the repository and the integration area. The syntax for running the command for the first time is: vssetvault <path of the repository> <path of the integ area> In the second instance, specify the path for the repository and the local work area. When you run it the second time, the syntax is: vssetvault <path of the repository> <path to your local build area> For example, if you want to create the repository in x:\gdm_projects\repository and the integration area in x:\gdm_projects\integ, you will have to specify the following command at the command prompt: vssetvault x:\gdm_projects\repository x:\gdm_projects\integ This will create the repository and integ folders under x:\gdm_projects and populate the integration area with the two files, .VSVAULT and cdsinfo.tag. The .VSVAULT file contains the path to the repository, and the cdsinfo.tag file contains the entry for the type of version control tool used. In case of vssetvault, the entry will be DMTYPE vs To create a local build area, for example localbuildlib under x:\gdm_projects, give the command: x:\gdm_projects\repository x:\gdm_projects\localbuildlib vssetvault This will create a folder named localbuildlib under x:\gdm_projects and populate it with the .VSVAULT and cdsinfo.tag files. For the librarian and the members, ensure that mapping to the repository and the integration area is the same. For example, if the project leader creates the repository and the integration area in F:\rep and F:\integ respectively, then all the team members should also have the mapping to repository and integration area as F:\rep and F:\integ respectively. Once you have run the vssetvault script, you are ready to create a DM project. When you create a new project, you are the project leader for that project. You create a new project to specify the integration area, repository, and work area. You should also define the reference libraries that are to be managed and the team members who will work on the project. You can define the libraries that are to be managed by specifying the paths to these libraries or by including cds.lib file that has the paths to these libraries. January 2002 200 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects Creating a Data-Managed Project Task Overview Create a new DM project as a project leader and name the project my_dm_project. Note: All the screenshots are based on the assumption that the data-managed project is created in D:\gdm_projects Steps The first task in creating a DM project is to set the environment variables. 1. Set the following environment variables: ❑ TZ=GMT ❑ GDM_MAIL_HOSTNAME = <your_mailserver_name> Next, you need to create the necessary directory to create and store the project. 2. Create the gdm_projects directory under D:\. After you create the directory, you need to run the vssetvault script to set up the environment for creating a DM project. 3. Run the vssetvault script to mark the respective directories as integration area, repository and local work area. The commands are: vssetvault d:\gdm_projects\repository d:\gdm_projects\integ vssetvault d:\gdm_projects\repository d:\gdm_projects\local_area This sets up the following project directory: Directory Name Purpose d:\gdm_projects\integ The location of the integration area (reference area) for the tutorial. d:\gdm_projects\repository The location of the repository for the tutorial. d:\gdm_projects\local_area The location of the project leader’s local work area for the tutorial. January 2002 201 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects Next, the library project needs to be created. 4. If you are in UNIX, launch Library Explorer by typing the following command in the command window libexp & If you are in NT, launch Library Explorer by doing the following steps: a. Choose Start > Run. The Run dialog box appears. b. The executable for Library Explorer is libexp. To run the executable, type libexp in the Run dialog box. The Library Explorer Product Choices dialog box appears. 5. To launch Library Explorer from the PCB Librarian Expert suite, select PCB Librarian Expert. 6. Click OK. The Getting Started dialog box appears. 7. To create a new managed library project, select the Create a new Managed Library Project radio button. 8. Click OK. January 2002 202 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The Project Type page of New Project Wizard appears. In this page, you determine whether or not to create a managed project. 9. To create a data-managed project, ensure that the DM option is selected. 10. Click Next. The Create Options page of New Project Wizard appears. In this page, you determine whether to join an existing DM project as a team member or to create/manage a project as the project lead. If you select the team member option, you can join an existing DM project. If you decide to join as a project lead, you need to determine whether you want to create a new project from scratch or use an existing location containing your libraries as the integration area. For the tutorial, you will be the project lead and create a new project. 11. To create a new project as the project lead, select the Administrator/project lead radio button. Notice that by default the New checkbox is selected. 12. Click Next. January 2002 203 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The Project Name and Location page of New Project Wizard appears. In this page, enter the project name and the location to the integration area. 13. Enter my_gdm_project in the Project name field. Next, the location of the integration area needs to be specified. 14. Browse and select the D:\gdm_projects\integ as the integration area. 15. Click Next. The Libraries page of New Project Wizard appears. In this page, you can add the libraries that you want to manage to your project. You can add the libraries by either physically selecting the library folders, or by importing a cds.lib file. If the libraries are January 2002 204 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects not in the integration area, then the selected libraries will get copied into the integration area. For the tutorial, a sample library lcx is provided under the x:\tutorial_project_data\lcx folder. 16. To add the lcx library, click Add. The Choose Directory dialog box appears. 17. Select the lcx library from x:\tutorial_project_data\lcx. 18. Click OK. January 2002 205 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The selected library is added. 19. Click Next. January 2002 206 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The Project Team page of New Project Wizard appears. In this page enter the information pertaining to the project team members. A mail is sent out to each member whose email has been provided in the E-mail column. 20. Enter the team member’s details. For demonstrative purposes, we have used Vishal Kumar as team member. 21. To continue, click Next. The Create Work Area page of New Project Wizard appears. In this page you need to specify the path to the local work area for yourself. This is optional. You may choose not to create a local work area for yourself. For the tutorial, the local work area which was created in the beginning of the tutorial will be used. January 2002 207 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects 22. To select the local_area as the local work area, click the Browse button and select the D:\gdm_projects\local_area directory. 23. Click Next. January 2002 208 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The Summary page of New Project Wizard appears. # 24. Click Finish. A message box will appear informing you that mail have been sent. 25. Click OK. The project will be created, and displayed in the Library Explorer window. Next, you will checkout the lcx00 component from the reference area into the build area. 26. Choose File > Check Out. The Check Out (Read Only) dialog box appears. You can select the parts that you want to checkout through this dialog box. Note that, by default the checkout is read-only. However, you can also checkout parts in a read/write mode. For completing the task in this chapter, you need to checkout the lcx00 part in read\write mode. 27. To checkout the part in read/write mode, click Options. January 2002 209 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The Checkout Options dialog box appears. 28. Select the Check out Read/Write option. 29. Click OK. You configured Library Explorer to checkout the parts in read/write mode. Next, you need to select the part that you want to check out. 30. Click on the lcx00 checkbox. 31. Click OK. The Library Explorer message box appears informing that the check-out operation was successful. 32. Click OK. Important You can see the DM status of any library or part by right-clicking on the library/part and selecting the GDM Status option. January 2002 210 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects A GDM Status message box appears (sample shown below) appears informing you the DM status of the part. Next, modify the part and add a symbol property my_prop with value my_val. 33. You use Part Developer to modify parts. See the earlier chapters to know more about modifying a part. Next, you need to checkin the part. 34. To checkin the part, select File > Check In. January 2002 211 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The Check In dialog box appears. 35. To simultaneously update the integration area so that the modified part is also available to the designers, select the Update integ area checkbox. Note: When you checkin a part, Part Developer automatically increments the version number of the part. 36. Click OK. A message box appears informing that the check-in was successful. This creates the version 1.2 of the part. 37. Click OK. 38. Next, you will check-out the version 1.1 of the part. It is important to remember that you can only checkout older versions in read-only mode. 39. To check-out an older version, select File > Check Out 40. To checkout the part in read/write mode, click Options. January 2002 212 Product Version 14.2 Library Explorer and Part Developer Tutorial Data-Managed Projects The Checkout Options dialog box appears. 41. Select the Update with tag option. 42. To checkout the version 1 of the part, enter 1 in the Repository Tag Name field. 43. Click OK. 44. Click OK. A message box appears informing that the check-in was successful. The first version of the part is checked out. Remember that it is checked out in read-only mode. Summary In this chapter you learned about the methodology of a data-managed project. You also learned the steps involved in creating and working in a data-managed project. In the next chapter, you will learn to create a part from an XML datasheet. January 2002 213 Product Version 14.2 Library Explorer and Part Developer Tutorial 12 Using XML to Create Parts Objective To become familiar with the steps involved in using XML datasheets to create parts. In this chapter, you will learn to: ■ Import data into Part Developer from an XML file. ■ Implement post-import corrections. ■ Update the package information. ■ Create symbols. Importing Part Data from an XML Datasheet Task Overview Import the part information for the LS244 component from the XML datasheet named 74ls244.zip. It is stored in the tutorial_project_data/datasheets location. Steps 1. Launch Part Developer and open the tutorial_project.cpm project. The Create/Open Part dialog box appears. 2. To begin the process of importing form an XML file, Click Cancel. 3. Choose File > Import XML. The Import from XML to Concept HDL dialog box appears. January 2002 214 Product Version 14.2 Library Explorer and Part Developer Tutorial Using XML to Create Parts 4. Select 74ls244.zip from the tutorial_projects/datasheets location and click Open. Next, you need to decide whether you want to convert only the master component, or each alias as individual primitive or each alias as individual cell. If you choose to convert only the master component, then one Concept HDL part is created. The chips.prt file will have only one primitive section with the master component name as its only entry. If you choose to convert each alias as individual primitives, then one Concept HDL part is created with each alias appearing as a primitive entry in the chips.prt file. For example, if a part has four aliases, the resultant chips.prt file will have four primitives. If you choose to convert each alias as an individual cell, then as many number of parts as there are aliases will be created. For example, if a part has four aliases, then four separate Concept HDL parts will be created. 5. You need to create only the master component. By default, this option is selected. 6. Click OK. The LS244 part appears in the Part Developer tree view. After you read-in the part information from the XML datasheet, you need to take care of the following issues: PIN_TYPE Property The PIN_TYPE property gets filled in as per the following rules: January 2002 215 Product Version 14.2 Library Explorer and Part Developer Tutorial Using XML to Create Parts ■ Passive is interpreted as ANALOG. ■ Rest of the pins are mapped to their corresponding types in Part Developer. CLASS Property The CLASS property gets filled in as per the following rules: ■ CLASS property gets the value IC if the Designator element in the XML datasheet had the value U. ■ CLASS property gets the value IO if the Designator element in the XML datasheet had the value J, JP or SW. ■ CLASS property gets the value DISCRETE for all other values of the Designator element type. These values are: C, D, ISO, L, LS, Q, R, T, U, VR, and Y. Therefore, you may need to check the value of the CLASS property after the data has been imported from the XML datasheet. If required, change the value of the CLASS property. The steps are: 1. Right-click on the part name in the tree view. 2. Select Properties from the shortcut menu. 3. Change the value of the Part_Type field. DUPLICATE PINS Often a part may have duplicate pins names such as multiple collector pins in transistor, programmable IO pins in FPGAs etc. In such cases, Part Developer appends an index with ‘_’ to the pin name starting from the second occurrence. For example, if there are two collectors with name C, they will be read-in as C and C_1. Pins With ‘>’ or ‘<‘ Certain pins have either a ‘>’ or a ‘<‘ symbol in their pin names, such as P>Q or P<Q in comparators. Such pins will be read in with the ‘>’ symbol converted to ‘_GT_’ and the ‘<‘ symbol converted to ‘_LT_’ in the pin names. For example, a pin name P>Q will get converted to P_GT_Q. January 2002 216 Product Version 14.2 Library Explorer and Part Developer Tutorial Using XML to Create Parts Partnames with ‘/’ Some part may have ‘/’ symbol in their part names. The ‘/’ in such part names will get converted to ‘_’ in the primitive entry of the chips.prt file. JEDEC_TYPE When a part information is imported from an XML datasheet, the value of the JEDEC_TYPE property is not seeded. You will need to manually specify the value of the JEDEC_TYPE property for a part. NC Pins E-tools XML datasheets do not contain information about the NC pins. Therefore, when you import the data from the XML datasheets, NC pins would be absent from the packages. You can follow one of the two methods to add the NC pins to the packages: 1. Use the Extract From Footprint option in the Physical Pin Mapping tab of the Package Properties dialog box, and then mark the required unmapped pins as NC pins. 2. Manually add the pin numbers and mark them as NC pins. Note: If you use the Extract From Footprints option, you will lose the mappings for those pins that are mapped to logical pins but not present in the list of extracted pin numbers. Symbol Interpretation After you create a part from an XML datasheet, you need to be aware of the following: ■ The origin of the symbol will be at the top left corner of the symbol bounding box and the PART_NAME will be displayed just above the origin. ■ Pin text will appear outside the symbol graphic. ■ In data sheets, the multi-assertion pin names appears as name/name. When such pins are read into Part Developer from XML, each character in the low asserted part of the name is followed by a ‘\’. For example, RD/WR will be written as RD/W\R\. ■ Sometimes, some of the symbols may appear to have additional height. This is because when a part data is imported from XML, all the power pins are moved to the body section of the chips.prt file. This results in the removal of power pins from the symbols. However, the space reserved by the symbol for power pins is not adjusted after the power pins are moved to the body section. January 2002 217 Product Version 14.2 Library Explorer and Part Developer Tutorial Using XML to Create Parts Once you have taken care of the above mentioned issues, you should verify the part. Only after the verification of the part is complete, you should check-in the part. Summary In this chapter you learned to create a part from an XML datasheet. In the next chapter you will learn to create a part template and apply the template to create parts. January 2002 218 Product Version 14.2 Library Explorer and Part Developer Tutorial 13 Creating Templates Objective To become familiar with the methodologies and steps involved in creating and using Part Templates. In this chapter, you will learn to: ■ Create a new template. ■ Apply the template. ■ Create a part with the applied template values. ■ Verify the part against the template. Overview Part Developer provides you the ability to set up the part construction rules and property setup through the use of Part Templates. Using the templates, you can quickly create parts that follow your company standards and yet have the flexibility to add properties and behaviors specific to the part. Using Part Developer, you can: ■ Create a template. A template can be created with data such as property names and values, pin positions and symbol display characteristics. The template is then used to create multiple parts. ■ Create parts using a template. A template can be selected from the existing list of available templates and parts created based on the information stored in the template. ■ Verify parts against a template. January 2002 219 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates Parts can be verified against a selected template or the original template from which the part was created. Creating and Applying a Part Template Overview Part Developer enables you to create part templates. While creating part templates, you can specify the following information: In Packages ■ Package properties ■ Pin load properties In Symbols ■ Grid size ■ Symbol outline ■ Pin text orientation ■ Pin text size ■ Whether to use pin names for pin text ■ Minimum symbol height ■ Minimum symbol width ■ Symbol properties ■ Symbol pin spacing, both top/bottom and left/right ■ Position of symbol pin types After you specify the information, you save the information in a .tpl file. This file can then be used as a template in later sessions of Part Developer to create parts. January 2002 220 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates Task Overview Create a template with the symbol property PART_NAME, a package property CREATED_ON . Save the template in mytemplate.pl and apply it. Steps 1. Launch Part Developer and open the tutorial_project.cpm project. The Create/Open Part dialog box appears. 2. Click Cancel. The empty Part Developer window appears. 3. Choose Templates > New. January 2002 221 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates The New Template dialog box appears. Note that the properties that were set up in the Tools > Options appear as template properties. Next, you need to enter the new template properties. 4. Enter the property name as PART_NAME. 5. Enter the property value as ?. This will ensure that the property is annotated to the symbol and the value for this property has to be specified by you in Concept-HDL. 6. Select the value of the Visible field as Both. 7. Specify the alignment as Center. 8. Since the PART_NAME property has to appear only on the symbols and not packages, deselect the Package option. Next, you need to specify the package property CREATED_ON for the packages. 9. Select the next blank line under Property_Name, and enter CREATED_ON as the property name. 10. Enter ? as its value. 11. Since the CREATED_ON property is to be applied only to packages, deselect the Symbol checkbox. 12. Click Save. The Save Part Template dialog box appears. 13. Enter the file name as mytemplate. tpl January 2002 222 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates 14. Click Save. A Part Developer message box appears. 15. To apply the template, click Yes. The blank Part Developer window appears with the template applied on it. Basically, the Setup options properties are updated. You can now create parts. The new parts will automatically contain the properties that you set up through the templates. In case you want to see the properties that you added using templates, choose Tools > Options. Using Part Template to Create Parts You use a part template as the building block in creating one or more parts. To create parts using a part template, you need to open the part template and apply the template values to the current session of Part Developer. This overrides the default values specified through Tools > Options. Once you have applied the template, proceed with the creation of parts as detailed in Chapter 4, “Creating Parts With Pins Split Across Symbols” and Chapter 6, “Creating a Multi-Section Symmetrical Part” and Chapter 8, “Creating Asymmetrical Parts”. For this chapter, create a simple part with two input pins A, B and an output pin Y. Name the part mypart and create one package DIP and one symbol with logical pins for it. Enter ? as the JEDEC_TYPE value. Next, you will verify the part against the template that you created. Verifying Parts Against Templates To ensure that the parts are conforming to your standards, Part Developer enables you to verify a part against a template. The verification is done only for those values that exist in the template file. The output is displayed as a report that can be saved as a .rep file. The verification is done as per the following rules: January 2002 223 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates Property Checks The property check is done on all packages for the following: ■ All properties listed in the template for a package must exist in each package of the part. ■ The value of the property in each package must match the value in the template unless the value in template is "?" or blank. Pin Load Checks This is done on all pins in all packages as per the following rules: ■ If PINUSE="UNSPEC" exists for a pin, all checks are bypassed on that pin. ■ If a pin type is not determined, it is an error. ■ If a pin type is determined, its load value is checked against the load value of that pin type in the template. An error is generated if the load values don’t match. ■ Error is shown if any of the loads for a pin type is missing. Symbol Checks All Symbols are checked for a given part as per the following rules: ■ All symbols must have at least one connection with a line stub or a bubble else an error stating that check cannot proceed is shown. ■ All lines are assumed to be vertical or horizontal. Arcs are not supported in this release. ■ Each Bubble is interpreted to have two virtual stub lines - horizontal and vertical. ■ No two connections can have the same X, Y coordinates, else error is shown to the user. ■ Location of connections is derived based on the direction of the stubs attached to the connection. Therefore, only connections that have a stub or a bubble on them are checked. ■ Stub length is calculated based on the integer average of all stub lengths. ■ The outline of the body is derived by searching for the perpendicular line from the end of stub. As the stub size varies, the search is made within the range of the stub size variance. After getting a single outline, the rest are traced as the ones connected the outline end points. The procedure is executed recursively for each detected outline. ■ Minimum pin spacing are calculated for all sides (Top, Left, Right, Bottom). January 2002 224 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates ■ For pin texts, the property PIN_TEXT is used. If it is not found, pin texts are searched for within 1/3 of the average stub length from the end of the stub for each connection. Also the location (x,y) of the pin note must not be mis-aligned by more than 1/2 pin spacing. ■ Grid is derived by taking the highest common factor of all differences of values of X and Y on respective coordinates. Only the connection (Logic) grid is derived. The symbol grid is not derived even though the template mentions it as Symbol Grid. ■ All properties listed in the template for symbols must exist on each symbol in the part. ■ The value of the property in each symbol must match the value in the template unless the value in template is "?" or blank. ■ The alignment of the property must match the one specified in template. ■ The visibility of the property must match the one specified in template. Pin Checks Each pin is checked as per the following rules: ■ Each pin based on the type as defined in the template must be at the location area in symbol as defined in the template for that type. ■ The text size of the pin must match the size specified in the template. ■ The Use Pin Names For Text is checked only if the template sets it to true. ■ The text style for pin text is checked with value in template. If the style is vertical for top and bottom pins and horizontal for pins on left and right then the style is considered to be Automatic. The angles of 90 and 270 are considered equivalent and vertical and 0 and 180 are considered equivalent and horizontal. ■ All pins with spacing less than the spacing specified in the template are marked as errors. Grid Checks Grid checks are done with the following rules: ■ Conversions are done for calculating and matching the grid values for Inches and Fractional (Fractional is currently not supported in Part Developer). This is then matched with the template value. January 2002 225 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates Outline Checks The outline checks are done with the following rules: ■ All detected Outlines are checked to match the thickness specified in template. Minimum Size Checks ■ The minimum pin spacing values on the left and right is read for each symbol and verified against the minimum pin spacing left and right value stored in the template. An error is generated if the value in the symbol is less than that of the value stored in the template. ■ The minimum pin spacing values on the top and bottom is read for each symbol and verified against the minimum pin spacing top and bottom value stored in the template. An error is generated if the value in the symbol is less than that of the value stored in the template. ■ The minimum symbol height value is read for each symbol and verified against the minimum symbol height stored in the template. An error is generated if the value in the symbol is less than that of the value stored in the template. ■ The minimum symbol height width is read for each symbol and verified against the minimum symbol width stored in the template. An error is generated if the value in the symbol is less than that of the value stored in the template. The output of the verification is displayed in a dialog box. The output is divided into two sections, Overview and Details. In the Overview section, the overview of the differences are displayed. In the Details section, the differences are detailed. Task Overview Verify the part mypart against the mytemplate.tpl template. Steps 1. Choose Tools > Verify. The Verification dialog box appears. 2. Select the Verify with Templates option. 3. Click OK. January 2002 226 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates The Select Part Template dialog box appears. You need to select the template file against which the verification will be done. 4. Select mytemplate.tpl and click Open. The verification is run and the differences found are displayed in the Part verification with Template dialog box. Notice that one difference has been found with relation to the symbol properties. Summary In this chapter you learned to create a template and apply the template to create new parts. In the next chapter you will learn to extract and modify templates. January 2002 227 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Templates January 2002 228 Product Version 14.2 Library Explorer and Part Developer Tutorial 14 Extracting Templates Objective To become familiar with the methodologies and steps involved in extracting and modifying part templates. In this chapter, you will learn to: ■ Extract a template from a part. ■ Modify the extracted template. ■ Save the template. ■ Apply the template on a part. Extracting Templates If you have a part which has been built in compliance with your company standards, you can extract information from it and create a template. After the template information is extracted, the part is verified against the extracted template information. A verification report is generated listing the differences with the extracted values. Template information is extracted as per the following rules: From Packages ■ All properties found in any of the packages are added to the template with their values. ■ If the property name matches with any of the properties listed below then the value is replaced with "?": ❑ JEDEC_TYPE ❑ POWER_PINS ❑ NC_PINS January 2002 229 Product Version 14.2 Library Explorer and Part Developer Tutorial Extracting Templates ❑ BODY_NAME ❑ PART_NAME ❑ TECH_FAMILY Pin Load Extraction Pin Load is extracted from the different pin types. If a pin type is not found on one of the packages, it is searched in the next package and so on. If a pin type is not found on any of the packages, its load is not added to the template. If for any pin type the load extracted is not a standard, i.e., the load is not same for all pins of a type on all packages then the first load is used. Symbol Data Extraction ■ All symbols are read for a given part. ■ All symbols must have at least one connection with a line stub or a bubble else an error stating that process cannot proceed is displayed. Symbol Property Extraction ■ All properties found in any of the symbol are added to the template with their values. ■ If a property exists both in a package and a symbol, the package property is given precedence and its value is extracted. ■ Alignment and visibility are extracted from the symbol and added. ■ If the property differs in value across packages or across symbols to or it differs in visibility or alignment, then the value of the property from the last instance of either the package or symbol is extracted. Symbol Pin Extraction For each pin the following checks are done: ■ A search is done for the first pin of each pin type and its location value is added to the template. ■ The Use Pin Names For Text option is set to false if a single pin is found to violate this rule. January 2002 230 Product Version 14.2 Library Explorer and Part Developer Tutorial Extracting Templates ■ The Text Style for Pin Notes is interpreted. If the style is vertical for top and bottom pins and horizontal for pins on left and right then the style is considered to be Automatic. The angles of 90 and 270 are considered equivalent and vertical and 0 and 180 are considered equivalent and horizontal. If it is not consistent for all the instances for a pin type based location then user is warned that this is not a standard. Grid Extraction The highest common factor of all differences in X distances and Y distances is taken as the minimum grid unit. It is calculated into template in Inches. Minimum Size Extraction ■ The minimum pin spacing values on the left and right are read for all the symbols and the smallest value is extracted to the templates as the minimum spacing value for left and right. If in a symbol, 0 or 1 pin exist on left and right, its value is not extracted. ■ The minimum pin spacing values on the top and bottom are read for all the symbols and the smallest value is extracted to the templates as the of minimum spacing on top and bottom. If in a symbol, 0 or 1 pin exist on top and bottom, its value is not extracted. ■ The symbol height value is read for all the symbols and the smallest value is extracted to the templates as the of minimum symbol height. ■ The symbol width value is read for all the symbols and the smallest value is extracted to the templates as the of minimum symbol width. ■ The outline is extracted as thick if all outlines are thick. The outline is extracted as thin if all outlines are thin. If neither of the cases are true then no extraction is done for this value. If a value is not extracted, a warning is displayed. Task Overview Extract template information from the LS244 part that you had created by importing the data from an XML datasheet. Steps 1. Import the ls244 part from the reference area. 2. Launch Part Developer and open the ls244 part 3. Choose Templates > Extract. January 2002 231 Product Version 14.2 Library Explorer and Part Developer Tutorial Extracting Templates The New Part Template dialog box appears. You need to enter the file name into which you want to store the template information that will be extracted. 4. Enter fromls244.tpl as the template file name and click Save. The Extracted Template Values dialog box appears. You can view the extracted values in this dialog box. 5. Click OK. The Extracted Template Values dialog box disappears. Next, you need to modify the template values. January 2002 232 Product Version 14.2 Library Explorer and Part Developer Tutorial Extracting Templates Modifying Template Values Overview After the template information has been extracted into Part Developer, you can modify the extracted information. You can modify the information by editing the template values. Task Overview Modify the Pin Text Size value in the fromls244.tpl template file from 0.88 grids to 0.50 grids. Save the template file after you have made the necessary changes. Steps 1. Choose Templates > Edit. The Load Part Template dialog box appears. 2. Select fromls244.tpl template file and click Open. The Edit Template dialog box appears. To make changes to the pin text size, you need to go to the Symbol property page. 3. Click Symbol. 4. Modify the Pin Text Size value to 0.50. 5. Click Save. January 2002 233 Product Version 14.2 Library Explorer and Part Developer Tutorial Extracting Templates The Save Part Template dialog box appears. 6. Enter the name of the modified template file as my_ls244.tpl and click Save. A Part Developer message box appears asking you whether to apply the template. 7. To apply the template, click Yes. Summary In this chapter you learned to extract a template from a part and modify the extracted template. In the next chapter, you will learn to create a VHDL wrappers and map files. January 2002 234 Product Version 14.2 Library Explorer and Part Developer Tutorial 15 Creating VHDL Wrappers and Map Files Objective To become familiar with the methdologies and steps involved in creating and using VHDL wrappers and map files. In this chapter, you will learn to: ■ Create VHDL wrapper and map file for a part Overview Concept HDL generates a netlist that you can use to simulate your logical design using a Verilog or VHDL based simulator. To generate the netlist, it uses the symbol pin names as the interface ports for each component used in the design. The interface ports of a part may be January 2002 235 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files different from the VHDL model’s ports. For example, for the part 74ac74, the interface ports are: January 2002 236 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files For the same part, the VHDL model’s port names are: To successfully simulate a design, a mapping is required between the symbol pin names with the model port names. This making is stored in wrapper and map files. The wrappers or map files can be created using Part Developer. January 2002 237 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files Creating a VHDL Wrapper/Map File Task Overview Create a VHDL wrapper and map file for the 74ac74 part. The VHDL model for the part is provided in the vhdl_models directory under tutorial_project location. You will need to import the 74ac74 part from the Cadence supplied reference libraries. Steps 1. Launch Library Explorer and open the tutorial_project.cpm project. 2. Import the 74ac74 part from the 74ac reference library. 3. Open the part in Part Developer. 4. Choose File > New > VHDL Wrapper/Map File. The VHDL Wrapper/Map file dialog box appears. You enter the path to the VHDL model in this dialog box. This can be done by specifying either the actual physical path to the VHDL model or the Lib:Cell:View structure. For example, to access the VHDL model stored in x:⁄74ac⁄sn74ac74, you may provide either the entire physical path or use the lib:cell:view method, i.e. specify sn74ac:sn74ac74::vhdl_lib. Note: To use the lib:cell:view method, there should be a library entry in the cds.lib file of the project. For example, to use the sn74ac74 with the lib:cell:view method, the following entry should be present in the cds.lib file: January 2002 238 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files DEFINE 74ac x:⁄74ac Since the cds.lib file entry has not been made for the VHDL model, you will use the File method to specify the path to the VHDL model. 5. Select File. 6. Browse to the location of the VHDL file, c:\tutorial_project_data\datasheets\vhdl_models\74ac74\entity\vh dl.vhd Next, you need to determine whether to bind the VHDL model and the symbol. That is, determine whether to bind the symbol with one specific architecture (behavior). If you decide to bind the VHDL model and the symbol, then the binding statement goes into the wrapper. This is an optional step. Since each view of the model is essentially a specific architecture, selecting the VHDL model by using the lib:cell:view method automatically fills in the binding statement. If you specify the actual physical path to the VHDL model, then you have to explicitly enter the binding information. If you decide not to enter the binding information during wrapper creation, then the binding information has to be specified later in the simulation flow. However, not providing the binding information in the wrapper provides the freedom to use the same wrapper for different architectures. For the tutorial, you will leave the binding information empty. January 2002 239 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files 7. Click Port Mapping. The VHDL Symbol Pin to Model Port Mapping dialog box appears. 8. Select the pin CLK in the Pin List column. 9. Select CLOCK in the Model Port[s] column. 10. Click Map. The Update pin mode dialog box appears. This appears if you are mapping a symbol pin to a model port of different modes (input to inout, in this case). Similarly, if the types are different, then the Update pin type dialog box appears. In this dialog box you can determine whether or not to map the pins of different types. In case you want to suppress this dialog box, select the Automatically Update pin mode option. 11. Click OK. Similarly, map the other pins. 12. Click OK. January 2002 240 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files Next, determine the generics that should be annotated to the symbols. 13. Click Generics. The Select VHDL Generics dialog box appears. 14. Select the Annotate on Symbol(s) check box next to Size and TP_CLK_MAX generics to annotate both the generics on to the symbols. 15. Click OK. 16. To simultaneously create a map file, click Setup. January 2002 241 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files The Setup for VHDL Wrapper/Map File dialog box appears. 17. Select the Generate Map File option to create the map file. 18. Click OK. 19. Click OK. This completes the creation of a VHDL wrapper/map file. You should now save the part. The vhdl_wrapper is the VHDL wrapper and vhdl_map is the VHDL map view for the part. After you create the wrapper, you can verify it by using any VHDL compiler such as ncvhdl. Part Developer provides you an interface to interact with whichever VHDL compiler you choose to use. 20. To setup a VHDL compiler to compile the wrapper files, choose Tools > Verify. 21. Select the VHDL Compilation option. 22. Click Options. The Enter command for VHDL compilation dialog box appears. 23. Enter the command for VHDL compiler in this dialog box. By default, Part Developer shows ncvhdl. January 2002 242 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files Note: ncvhdl is not supplied with PCB Librarian Expert product suite and needs to be purchased separately. 24. If you have a VHDL compiler, click OK. The wrapper will be compiled and a report about the verification status will be made available to you. Summary In this chapter, you learned to create VHDL wrapper and map files. In the next chapter you will learn to create Verilog wrapper and map files. January 2002 243 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating VHDL Wrappers and Map Files January 2002 244 Product Version 14.2 Library Explorer and Part Developer Tutorial 16 Creating Verilog Wrappers and Map Files Objective To become familiar with the methodologies and steps involved in creating Verilog wrappers and map files. In this chapter, you will learn to: ■ Create a Verilog wrapper and map file. Overview Concept-HDL generates a netlist that you can use to simulate your logical design using a Verilog or VHDL based simulator. To generate the netlist, it uses the symbol pin names as the interface ports for each component used in the design. The interface ports of a component may be different from the Verilog model’s ports. Therefore to successfully simulate a design, a mapping is required between the symbol pins and the model port names. This mapping information is stored in the wrapper and map files. Creating a Verilog Wrapper/Map File Task Overview Create a VHDL wrapper and map file for the 74LS00 part. The Verilog model for the part is provided in the <your_install_dir>/veriloglib/verilogTTL/74LSTTL directory. You will need to import the 74LS00 part from the Cadence supplied reference libraries. January 2002 245 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Verilog Wrappers and Map Files Steps 1. Launch Library Explorer and open the tutorial_project.cpm project. 2. Import the 74LS00 part from the Cadence supplied reference library. 3. Open the part in Part Developer. 4. Choose File > New > Verilog Wrapper. The Verilog Wrappers/Map File dialog box appears. Note: The Verilog model file can be accessed by specifying either the physical path to the model file or the lib:cell:view structure. To access the model file by using the lib:cell:view method, ensure that the library definition exists in the cds.lib file. 5. Click browse to choose the Verilog model. For LS00, select the SN74LS00.v file from the <your_install_dir>/veriloglib/verilogTTL/74LSTTL directory and click Open. Next, you need to map the pin names to the port names. 6. Click Port Mapping. The Verilog Symbol Pin To Model Port Mapping dialog box appears. You will notice that under the Pin List entry, there are only pins a, b, y and NCs whereas under Model Ports there are fourteen pins. This is because the part that you have January 2002 246 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Verilog Wrappers and Map Files created is a sizeable part, and therefore pin names of only one section is visible, whereas the Verilog model is a flat model and therefore all ports are displayed. 7. Select y from the pin list. 8. Select _1Y from the Model Ports list. 9. Click Map to map the pin to the port. 10. Similarly map a with _1A and b with _1B. 11. Click OK. Next, determine the parameters to be annotated to the symbol. 12. Click Parameters. January 2002 247 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Verilog Wrappers and Map Files The Select Verilog Parameters dialog box appears. 13. Select the Annotate on Symbols check box for the parameters that are to be annotated to the symbols. 14. Click OK. 15. To simultaneously create a Verilog map file, click Setup. The Setup for Verilog Wrapper/Map File dialog box appears. 16. Select Generate Map File to create a Verilog map file. 17. Click OK. 18. Click OK. January 2002 248 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Verilog Wrappers and Map Files This creates the Verilog wrapper for the LS00 part. You should now save the part. After you create the wrapper, you can verify it by using any Verilog compiler such as ncverilog. Part Developer provides you an interface to interact with whichever Verilog compiler you choose to use. 19. To setup a Verilog compiler to compile the wrapper files, choose Tools > Verify. 20. Select the Verilog Compilation option. 21. Click Options. The Enter command for Verilog compilation dialog box appears. 22. Enter the command for Verilog compiler in this dialog box. By default, Part Developer shows ncvlog. Note: ncvlog is not supplied with PCB LIbrarian Expert product suite and needs to be purchased separately. 23. If you have a Verilog compiler, click OK. The wrapper will be compiled and a report about the verification status will be made available to you. Summary In this chapter, you learned to create Verilog wrapper and map files. This chapter concludes the tutorial. We hope that you would have got enough insights by now to start working with the library development tools and develop libraries and parts for your design teams. January 2002 249 Product Version 14.2 Library Explorer and Part Developer Tutorial Creating Verilog Wrappers and Map Files January 2002 250 Product Version 14.2 Library Explorer and Part Developer Tutorial Index B Library Management Use Model 28 Designer 29 Librarian 28 Library Project Concepts 30 Creating 32 Build area 30 Creating Libraries 39 C P Category Viewing 39 Category File 24 cds.lib file 30 Copying Parts 41 Part Template Creating 220 Extracting 229 Modifying extracted values 233 Using 223 PCB Librarian Expert Product Suite Products 13 PCB Librarian Suite Products 13 D Data-Managed Projects Build Area 197 Checking Out Parts 209 Creating 199, 201 Integ Area 197 Overview 196 Vault 197 R refcds.lib file 31 Reference area 30 F S Footprints Viewing 42 Symmetrical Part Creation Example 104 L T Lib-Cell-View Architecture 19 Entity View 22 Package View 20 Part Table View 22 Simulation View 24 Symbol VIew 19 Libraries Physical Organization 18 Library Explorer Overview 17 Library Management Concepts 18 January 2002 Tutorial Samples 15 Types of Projects Design Projects 27 Library Projects 27 V Verification Against Part Template View Verification 43 251 223 Product Version 14.2 Library Explorer and Part Developer Tutorial Verilog Wrapper/Map File 245 Creating 245 VHDL Wrapper/Map File 235 Creation 238 Views Entity View 22 Package View 20 Part Table View 22 Simulation View 24 Symbol View 19 X XML Duplicate Pins 216 Importing Part Data 214 JEDEC_TYPE 217 NC Pins 217 Pins with > or 216 Post Import Issues 215 Symbol Interpretation 217 January 2002 252 Product Version 14.2