|
最后看了一下Candence的Help文件,是这么说:4 x" |$ J: ]8 i' z3 r# O
Pin Bubbles 9 \- p, [" W/ r0 B4 g% p
Use the BUBBLE and BUBBLE_GROUP properties for tracking and checking signal states and circuit behavior. The pins need to be bubbled correctly - L* s$ s( H3 u7 J1 [) y
A. l% i4 S# l q( Q6 N9 k- E
while they are being designed in Design Entry HDL. Symbols that are built correctly should not cause any problems and should successfully & J- g& F' \. t: m
( i7 m1 J, P* P% G! acomplete the design integrity checks within Design Entry HDL. These properties also provide for much more readable designs when looked at
1 }6 g' s$ \5 I7 w; }0 [: x+ G8 G H
logically. 0 G' a2 z% X( w$ j
Cadence libraries include the DeMorgan equivalent parts as alternate symbol versions. When placing parts, the correct symbol should be used to 3 ^ e7 [9 ~ h w, B
% S+ _3 u' x2 a& u% r" b2 a( hestablish signal states and to provide design integrity. You can use the bubble command in Design Entry HDL to toggle the signal states on pins. ! n% `3 o" C5 ]9 [. J0 H9 w; y3 r
' t3 V: r4 p& i5 Q
. K7 O6 G# I; E6 J9 k; a9 b7 L
Pin Types # B4 Y1 x: n9 [: l( V
Designate the pin types and add pin loading information in Part Developer. This information gets stored in the chips.prt file and is crucial for 2 t, ] c" [1 J7 e# Y9 S- l! X
* q! G- N8 I" u$ F/ |1 }
some Design Entry HDL integrity checks and layout analysis with SigNoise. Signal noise analysis uses the pin type and loading information to
* q, w1 f0 V/ n+ [; K0 L2 r9 U* G9 i3 I% Q
accurately model the behavior of components.
9 O( N. B9 s5 J, V ~1 S/ `The information can also be input manually into the chips.prt file by using a text editor. However, this requires you to be aware of the syntax
* N7 N4 C; o. }# h* v( T4 ^) K2 d$ V |+ F, |
and file format. & V) O! f7 a5 P1 O
Whenever appropriate the input pins should be placed on the left side of the symbol with outputs on the right. 5 x3 ^5 D5 h, c- F
4 h; z+ b! i2 _1 B' L0 \9 B: V, Z' b- r: h+ c$ A5 F
Pin Naming
9 S# f+ p: |: J# r" i1 z1 S pPins should be designated with functional names. Each pin name must be unique to that symbol and must have a matching entry in the chips.prt 6 ^, F; f/ S0 F, o) r
1 n' e% g4 ]6 Q' q! ifile. Typically, a pin name must be alphanumeric, but you can have numbers as pin names for scalar pins. The other characters that are supported
$ Y; D; K; R+ ~8 J6 A. U L( T1 Z$ d! {5 v* j
by Design Entry HDL as valid characters in pin names are as follows:
' P2 [, r: _' o9 l- 4 H L( S0 |2 W% F) j
#
1 [9 g; `% v$ e1 t N$
" k- B4 T" d& E( B/ W/ q% + e9 N5 V' z, c' v1 [# ^
+ & e* Z7 X6 |* Q. D
=
- W# A& O1 w! v5 b% H2 ~) O|
/ F4 r1 ^2 Z! x- Q! V9 y? 2 J& z4 s3 h5 P8 S( M& T: n7 d/ r
^ - _6 t- K6 D3 _; e4 Y
_ ; o( s: A S! v3 X3 S3 L
. : w$ r9 G% H6 G+ n1 M; _
(
% Q- ` c. H: {)
% ]6 l, [4 |" f4 K% t: z0 U% K6 E; L" A$ `- E9 l5 r2 ]' U
For pins that have ( or ) in their names, hlibftb reports errors if you run verification checks from within Part Developer. However, you can use
' J( S) v" R9 t% M0 K
, Y; w3 B. ~/ Z s5 `* f( }such pins in Design Entry HDL schematics by turning off the multi_format_vector option. Because of this reason, it is suggested that you do not 8 ^* E, S K# w
* A4 k8 P9 A7 V- j0 E0 @' ? ?use ( or ) in pin names.( G' a& [* f" C6 |* Y& |$ v
S6 ~% _ M8 ^8 qThe following are not valid for pin names:
5 ]/ w+ G. {# b8 XAll extended character sets
+ p9 Y) ]' h9 {/
2 T3 i7 E1 U) R4 j;
" Q* L5 C( }8 z. e6 V; W9 W!
) L) [% ]6 t/ t8 S c, _5 U< ' x- v0 O9 E, G b$ ~& m; {4 X
> , V& {: X: C1 O; u1 e8 k8 f
: ! z. w; I0 e8 E
\
( i2 ?; F. ]' {% R/ O"
& S. x" y( B! X7 o,
8 O' P/ K. G; p3 W# s*+ {( O; ^1 s. E
When creating parts manually, place the SIG_NAME properties outside the symbol, next to the pin it is attached to. Text size is not too
- ]/ @2 h* B" q) ^3 z7 o3 L0 y
, W ?1 G5 Q% M& t! Rimportant on these properties since they are not displayed on the schematic. + k3 t$ S P- e: c: V% X
Follow low asserted pin names with an asterisk (*) (for example, OE*) or _N (for example OE_N). Do not differentiate low asserted pins with any " e- H1 \* @/ G& ?% c7 a+ A; I8 C2 \/ E
6 o( a: J& {- I5 s" s. `: p, Sother nomenclature. All low asserted pins should appear as bubbles and not straight pin stubs.
: F$ B4 q; ?3 M6 i; O( O- g$ z设为Power可重名只是OrCAD的规定,那是OrCAD公司的规则,便Candence却不认同,Allegro是不准同名的,只要同名就有Warning,再看看Allegro的NETLIST,
# a; [/ s2 g7 F9 B1 C'GND'
7 M9 u+ `1 {! w. O! l _$ u'@SR888.SCHEMATIC1(SCH_1):GND':
. i! A; J/ a# U0 u" W+ LC_SIGNAL='@sr888.schematic1(sch_1):gnd';
8 H; E: E8 z& A" z) N2 YNODE_NAME U2 3
, R* P9 H+ T% L# e5 H! l'@SR888.SCHEMATIC1(SCH_1):INS1860963@MY LIBRARY.MEGA88VS.NORMAL(CHIPS)':
( b2 m4 M- ]$ c: k; W'GND#3':;
2 A, h: V7 x3 r. UNODE_NAME U2 5
! C/ e% b1 a% h. r7 ?5 Y'@SR888.SCHEMATIC1(SCH_1):INS1860963@MY LIBRARY.MEGA88VS.NORMAL(CHIPS)':
; y9 h. |; _+ s! |8 @ F% A5 }'GND#5':;
, N9 H* q3 x$ T! b8 P& o这才明白,Allegro的NETLIST中pin name的信息,这样能重名吗?2 b0 ?7 K. F, k
再看看PADS的netlist:0 e- O" e+ N8 m7 e# T
*NET*
: {) _1 @# i- l. E: x- p*SIGNAL* GND
: U1 j8 Z8 l: c8 U3 o: gU6.12 R14.2 R13.2 J6.10 J6.8 J6.6 U6.10 D10.2
6 @" C; r! h1 L$ @, J% l0 eD16.1 D15.1 U6.13 D17.1 J6.3 C8.2 C16.2 U2.5! j' r K# B6 x# X( n; \
C20.2 U2.3 C15.2 U6.5 C18.2 U5.3 U2.21 U4.3. |: n0 s$ q; G% X+ Z9 z8 a
C17.2 C25.2 C22.2 C6.1 C21.2 D8.2 J6.4 D18.1
1 L o9 \8 ]9 s) HU6.1 C19.2 C7.1 D4.1 D9.2 C24.2 D12.2 U6.11( g8 d, v4 W! @2 K% @5 w
D11.2 C23.2 J1.2 J1.4 MH13.1 MH12.1 MH6.1 C27.2- ?% x8 A3 C1 k
MH9.1 C29.2 MH5.1 J5.5 C30.2 C10.2 C31.2 C11.13 Z, [$ ~) E, P8 G
P2.5 J5.6 U7.7 C3.2 C26.2 C1.2 C2.2 U3.15! ?1 X) h- G" W, u" m, n
P2.10 C4.2 C28.2 J4.13 P1.5 C5.2 U1.2 C14.2
. n, f( `& a7 R7 R4 Y, S, A; OC9.2 J4.15 P1.10 P1.11 MH10.1 P2.11 MH8.1 U7.3
2 v; m' p& e* @3 p这样,没用pin name信息,当然可以重名了!6 S, z1 w5 v) l/ t
5 a' v3 T0 {! h- O( ?2 n7 e9 e7 s9 J( F
看来,没什么好想的,只能用#1,#2,#3来区分了,这样就知道是同一个地上的不同引脚,如果用1,2,3来分的话,不怎么好,DATA1,DATA2,DATA3,它也是用1,2,3来分的,名子也都是data,但不是同一网络。 |
|