Allegro® Design Entry HDL Reuse Tutorial
Product Version 16.3 April 2010
A
Frequently Asked Questions
This FAQ has answers to the following questions:
What is the difference between creating a hierarchical design and
implementing design reuse?
Can I have a subdesign as a standalone design?
How do I control reference designators in subdesigns?
In which situations should I use the GEN_SUBDESIGN, FORCE_SUBDESIGN, and USE_SUBDESIGN directives?
What happens if I do not specify the subdesign name in the
FORCE_SUBDESIGN or USE_SUBDESIGN directive while packaging the top-level design?
Can I reuse a design that includes instances of other designs?
How do I add properties in the top-level design and force them to appear in one or multiple sub-level design blocks?
I have a design in PSD 13.6 and implemented design reuse. How do I migrate
the design to PSD 14.2?
What is the change in the Design Reuse flow in PSD 13.6 and PSD 14.0?
Can I edit properties in a reusable block while using it in my design?
Can I have nested reuse modules? What precautions must I follow to manage nested reuse modules?
How can I use modules in PCB Editor that are not associated with a schematic?
How can I import or export subdrawings from within PCB Editor?
Can I leverage unused gates in a module?
If I make changes in PCB Editor to a part or parts from a reused module and I feedback the changes to the Design Entry HDL schematic, do I need to add
any reuse-specific directives while packaging?
If I use a block in a design then do I have to exercise any precaution while
naming logical libraries?
How do I specify a temp location for the library containing a read-only block? What is the difference between creating a hierarchical design and implementing design reuse?
Overview of Hierarchical Design
When you create a software application, theoretically, it is possible that you can use a single file to create the application. However, maintenance will turn costly and painful. You use subroutines and functions to break the complexity of the software application, and save the code in different logically connected files to allow for easier maintenance and troubleshooting. Similar to creating a software a
pplication in one large file is the process of creating a flat schematic. You can have your complete design in a single flat schematic. However, you can use a hierarchical design to divide the complexity of a design into logical subsets or blocks. This will allow for easier maintenance and distribution of work within the design team.
In a hierarchical design, you create blocks to embed a logical design within another design. Each block is promoted once in the design but is used multiple times in the schematic.
Advantages of Hierarchical Design
The use of hierarchical design makes the top-level data flow easy to read. Because you do not need to manually add components each time you use a block, the design remains compact. You can replicate these blocks, and debug and simulate them. If you need to make changes to a component in a block, you can update the block and re-initialize each instance of that block.
Limitations of Hierarchical Design and the Need for Design Reuse
You may require to reuse the blocks created for one design in another design. In such cases, if you use hierarchical blocks, you will be able to reuse them only in the schematic. However if you do desi
gn reuse, you would be able to use the blocks both in the schematic and on the board, that is, across the PCB front-to-back flow. Further, the design reuse block serves as a ready-made PCB board that does not require any placement and routing.
Unlike blocks in a hierarchical design, the modules in reused designs contain the schematic design, the physical netlist (packaging information), and the physical board placement and routing information. This adds the edge to reusability. After you have saved modules in a library, you can view and reuse them in any future design.
Modules can be updated if the master module is changed (similar to the way in which library components are refreshed). Components within modules can also be
updated if those components have changed in the library.
In summary, creating a hierarchical design is a best practice for design creation, which increases productivity and reuses effort for a particular design. Design reuse is, however, an organization-level activity where you reuse your existing intellectual property (IP).
Note: This tutorial covers the procedure for creating a reusable logical and physical module. To reuse
these modules effectively, you need an IP management system that manages the metatags required to access the individual modules in different designs. Using such an IP management system is outside the scope of the tutorial. Can I have a subdesign as a standalone design?
Yes, you can have a subdesign as a standalone design. A subdesign is a complete design in itself. It has the same property and connectivity information as a standalone design and some additional reuse properties that provide the necessary
information whenever the subdesign is reused in a larger design.
Therefore, it is possible to have a subdesign as a standalone design.
Note: To create a subdesign as a standalone design, make the subdesign as the
top-level design.
How do I control reference designators in subdesigns?
Packager-XL assigns reference designators to components in a subdesign based on information contained in the P H Y S_D E S_P R E F I X directive and the S U B D E S I G N_S U F F I X property. The default reference designator assigned to subdesign instances has the following syntax:
<P H Y S_D E S_P R E F I X><R E F D E S_I N C R E M E N T><S D_S U F F I X_S E P A R A T O R><S U B D E S I G N_S U F F I X> where, the value of the P H Y S_D E S_P R E F I X property is obtained from the schematic, ptf files, the c h i p s.p r t file, or the project file. The value of R E F D E S_I N C R E M E N T is automatically assigned by Packager-XL. The default value of the S D_S U F F I X_S E P A R A T O R property is an underscore (_). The default value of the S U B D E S I G N_S U F F I X property is 1 and for each subsequent component, the value increments by 1. To change this value, assign a new property to a subdesign instance by using the Text Attributes dialog box in Design Entry HDL. This makes the packaging assignments predictable as you can trace parts on the board to a specific subdesign instance.
The following table explains each individual section of the reference designator and
how you can control it.
Section File where
the value is
stored Who
controls
the
assignment
How can you change the value
P H Y S_D E S_P R E F I X schematic,
file c h i p s.p r t
file, p t f files,
or the project
file.Default is U.
You can
change it.
Note: The
order of
precedence
is
schematic,
ptf file,
c h i p s.p r t
file, and the
project file.
Enter a new value in the
Default Ref Des Pattern
field in the Packager Setup
- Layout tab.
Attach the P H Y S_D E S_P R E F I X
property to a component.
Note: If there are multiple
instances of a component and
each instance is assigned a
P H Y S_D E S_P R E F I X property, then
Packager-XL will use only one
ignore subsequent bad blocksvalue. It will flag an error stating
that multiple P H Y S_D E S_P R E F I X
properties are found on the
schematic for the same physical
part and it will exit with error
status 1.
Change the value in the
c h i p s.p r t or ptf file for a
part.
R E F D E S_I N C R E M E N T Automatically
assigned by
Packager-XL
and is stored
in the
pxl.state file.Packager-
XL controls
this value.
You cannot change this value.
S D_S U F F I X_S E P A R A T O R Project file Default is
an
underscore
(_).
You can
change it.
Enter a new value in the
Subdesign Suffix Separator
field in the Packager Setup
- Subdesign tab.
Note: The above option is available in PSD 14.2 only.
Set the
S D _S U F F I X _S E P A R A T O R
directive using the following syntax:
S D _S U F F I X _S E P A R A T O R
character_name
where,
character_name represents the new suffix for renaming reference designators.
S U B D E S I G N _S U F F I X Automatically assigned by Packager-XL and is stored in the pxl.state file.
Default is 1.You can change it.
Attach the S U B D E S I G N _S U F F I X
property to a component in Design Entry HDL.Using the SUBDESIGN_SUFFIX property
To assign a suffix of 5 to an instance of the b a s e _l e v e l  subdesign, add the following property to the schematic block:
S U B D E S I G N _S U F F I X  5
This  appends a suffix of _5 to all reference designators in that schematic block. For example, you may have the following values of reference designators in the subdesign:
U 1_5, U 2_5, a n d  U 3_5
In the above values, the characters represent the following:
Character
Represents U
P H Y S _D E S _P R E F I X _S D _S U F F I X _S E P A R A T O R
5 (after the underscore)
S
U B D E S I G N _S U F F I X  S U B D E S I G N _S U F F I X  values must be unique across all subdesign
instances in the design, that is, you cannot have
S U B D E S I G N _S U F F I X  = 1 on more than one subdesign instance
even when the subdesigns themselves are different
modules. This ensures that all reference designators are
unique.
If you add the same S U B D E S I G N_S U F F I X value on more than one instance, Packager-XL uses the first S U B D E S I G N_S U F F I X property value it finds and creates a new value for the other instances while ignoring the value that you have assigned. Packager-XL also generates an error (269) stating that the S U B D E S I G N_S U F F I X value already exists, and therefore it ignores the S U B D E S I G N_S U F F I X value.
Note: If you do not use the S U B D E S I G N_S U F F I X property but use the F O R C E_S U B D E S I G N directive, the suffixes assigned by Packager-XL might get reassigned.
To prevent suffixes from being reassigned,
Specify the U S E_S U B D E S I G N directive when packaging new subdesign instances. Note: If you delete a subdesign instance, the suffix for the deleted instance is not reused.
In which situations should I use the GEN_SUBDESIGN,
FORCE_SUBDESIGN, and USE_SUBDESIGN directives?
The G E N_S U B D E S I G N is used to create a subdesign, while the F O R C E_S U B D E S I G N and
U S E_S U B D E S I G N directives specify how to load the subdesign state file.
You use the G E N_S U B D E S I G N directive to specify the module (hierarchical block) for which you want to generate the subdesign state file. When this subdesign is used in other designs, Packager-XL reads the subdesign state file to obtain information about the design.
Note: You can use the G E N_S U B D E S I G N directive only when the design name matches the root-level design. Packager-XL generates a subdesign state file only for the root-level design.
If you have generated a subdesign using the G E N_S U B D E S I G N directive and want to use it in the top-level design, you need to use either the F O R C E_S U B D E S I G N or
U S E_S U B D E S I G N directive. The primary difference between the two directives is in how often the data in the subdesign is read at the time of packaging the top-level design that contains the subdesign. If you use the F O R C E_S U B D E S I G N directive, Packager-XL reads the packaging information from the subdesign state file and applies it to every instance of the subdesign in the top-level (root) design. If you specify the
U S E_S U B D E S I G N directive, Packager-XL applies the packaging in the subdesign state file to only those instances of the subdesign that have not been previously packaged in the top-level (root) design.
If you are generating the top-level design and including instances of the low-level design (which has its subdesign state file) in it for the first time, F O R C E_S U B D E S I G N and U S E_S U B D E S I G N behave similarly.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。