|
最后看了一下Candence的Help文件,是这么说:1 ]6 X# t$ n4 m5 t, t/ R+ b
Pin Bubbles + q. s( ]* i* ~
Use the BUBBLE and BUBBLE_GROUP properties for tracking and checking signal states and circuit behavior. The pins need to be bubbled correctly 9 D+ G5 {) u7 x
3 m* A0 u9 p, X0 dwhile they are being designed in Design Entry HDL. Symbols that are built correctly should not cause any problems and should successfully
' g7 d# e! j. f1 t: [0 ~' [1 H! A, z# p* A i. S* m% K5 k
complete the design integrity checks within Design Entry HDL. These properties also provide for much more readable designs when looked at ; a0 ]2 Z8 R& ?- W: M
# a# H& [6 V% P$ _ v1 t
logically. - q+ S7 v" o/ Y |3 c1 m+ S
Cadence libraries include the DeMorgan equivalent parts as alternate symbol versions. When placing parts, the correct symbol should be used to
% L" y, v% G) r; r4 [- E, i. `5 K5 f7 }) \* f
establish signal states and to provide design integrity. You can use the bubble command in Design Entry HDL to toggle the signal states on pins. ) ~: a3 h" J8 a( K& ^/ v
& ]: f' `2 u, J" V6 h5 p: x
; Z ~$ c5 r8 ^1 i: ^! i* X
Pin Types ! G3 s. f& U0 S3 A
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 9 |5 X% Q4 t) \
8 Q% [8 H/ \- {; asome Design Entry HDL integrity checks and layout analysis with SigNoise. Signal noise analysis uses the pin type and loading information to % i8 x8 Q8 W+ ]$ ~' E* z
! m2 U! z! E! A/ e9 s& S5 g; paccurately model the behavior of components. : }- ?5 U3 z4 e
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
7 T7 F+ X- E$ U* C/ n2 _' C
4 I6 J b& M8 F- R$ |- F7 yand file format.
/ g' }: G$ U$ x0 m8 jWhenever appropriate the input pins should be placed on the left side of the symbol with outputs on the right. 3 V9 w6 h. ^# B1 T% I. L
# c. E% l" V8 t. _, C3 Q" z
5 `; B9 w; S2 i
Pin Naming
2 w! E) [: `8 _4 A0 BPins 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
9 z% h8 ^% T ^1 Q6 g; K
& o; F2 n. D7 O( Q; j. Sfile. Typically, a pin name must be alphanumeric, but you can have numbers as pin names for scalar pins. The other characters that are supported
. h3 Z! r( |- t# p4 h* V+ M! N( Z) q
by Design Entry HDL as valid characters in pin names are as follows: - @, \7 G" t. b
-
/ Q4 a6 z: i8 b9 _- E' H! [! g# a# 2 F% O$ @" I; a" @- D
$
" f, z6 o5 O" D3 S- g% . `$ t9 ?. L+ i3 Q6 p d
+
. I! l1 l6 f! J j9 n W/ e' o=
' M" r7 o u0 ~. B5 F; L4 N0 A| 8 V% G6 B" t& [* [! i
?
$ {2 v1 |( B( [6 @- ]) E* y/ S" U7 `^ * x3 l/ x! B3 R% C" w' [
_
+ y* p. ]5 R0 D, @1 c, m5 s6 j. 9 X: V* A5 r) X# k; E8 w
(
7 s! z/ S; v' L/ \) ]' H)
7 M9 ~3 x) g- Y. A3 a: {9 C$ H7 N9 u2 A6 `
For pins that have ( or ) in their names, hlibftb reports errors if you run verification checks from within Part Developer. However, you can use " k7 w% t4 ?, _" J6 L7 j5 u
/ s1 n$ e1 C& M8 ?* p
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
( Y8 }6 j1 H \. P$ g
: s% z; R7 J+ v2 B7 z- duse ( or ) in pin names.' H; G$ e3 u8 n9 N$ G
( Q; P; R$ h# d* a8 p* lThe following are not valid for pin names:
6 e8 v$ @! C7 D# w' H" _5 MAll extended character sets , Y8 |# s @% p1 _
/ 1 B4 d2 k' X7 R
; : g' \! w% z% w+ V0 c) l
! ; `- T' c2 ^, |
< $ G) I! J2 \( Q6 S
> ( H. d( N K* B. B! E* t: S
: ( y) |5 z2 y2 Q$ d* ~2 k
\
4 K2 S" b/ L7 ^4 }$ V" Z) J! ^" ) E1 N9 w$ P n6 v% Q0 ]! y- M
,
, y" J8 ~4 w, E4 o. W! {*7 W/ E" P3 }" x& o
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 ! r5 k' X$ n, m2 J f. N
5 y u9 B' W; j) y
important on these properties since they are not displayed on the schematic. . s9 G( _ H/ k" H4 T
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 , a8 G f4 t8 E" F
' S' @6 }' l. P) m& g
other nomenclature. All low asserted pins should appear as bubbles and not straight pin stubs.
K, F# y% J6 G) t设为Power可重名只是OrCAD的规定,那是OrCAD公司的规则,便Candence却不认同,Allegro是不准同名的,只要同名就有Warning,再看看Allegro的NETLIST,
5 u8 `2 m7 B7 y# ?6 r1 @" G'GND'
$ e/ N; B/ B* g2 v9 t0 q5 ?, ['@SR888.SCHEMATIC1(SCH_1):GND':" S" S7 g+ n' z/ a, U3 m
C_SIGNAL='@sr888.schematic1(sch_1):gnd';
' j1 r0 M/ Q6 [6 P, MNODE_NAME U2 34 f: r( P/ B; q/ v
'@SR888.SCHEMATIC1(SCH_1):INS1860963@MY LIBRARY.MEGA88VS.NORMAL(CHIPS)':0 q0 y/ U6 W4 g% S) b. ~1 L; h
'GND#3':;: B; I! `0 e! R& |
NODE_NAME U2 5- A( c. a8 R0 O0 {6 s2 U% }( n
'@SR888.SCHEMATIC1(SCH_1):INS1860963@MY LIBRARY.MEGA88VS.NORMAL(CHIPS)':
1 A' U) A N+ R8 ^3 K'GND#5':;
5 ~% |3 H& ? Y% u- X& I. \这才明白,Allegro的NETLIST中pin name的信息,这样能重名吗?* H: H+ ~* g8 c, U! j
再看看PADS的netlist:2 z8 A. h8 F) X. b
*NET*# e/ E5 z; I! Y
*SIGNAL* GND6 D+ Q: e5 I7 f
U6.12 R14.2 R13.2 J6.10 J6.8 J6.6 U6.10 D10.2, e0 Z0 b$ z6 T x# x
D16.1 D15.1 U6.13 D17.1 J6.3 C8.2 C16.2 U2.5
) ^" v& [, F& BC20.2 U2.3 C15.2 U6.5 C18.2 U5.3 U2.21 U4.3) I; e0 b% Q" h! S/ y
C17.2 C25.2 C22.2 C6.1 C21.2 D8.2 J6.4 D18.1
( i) j9 q1 m+ d0 R& M2 u8 kU6.1 C19.2 C7.1 D4.1 D9.2 C24.2 D12.2 U6.111 J/ Q5 r" h% j; c& b9 O- |! a
D11.2 C23.2 J1.2 J1.4 MH13.1 MH12.1 MH6.1 C27.2$ s8 g! Z0 v7 _1 K
MH9.1 C29.2 MH5.1 J5.5 C30.2 C10.2 C31.2 C11.12 i' S8 \5 n3 b8 L* ]
P2.5 J5.6 U7.7 C3.2 C26.2 C1.2 C2.2 U3.15+ ^4 L* ?: `1 ~) z
P2.10 C4.2 C28.2 J4.13 P1.5 C5.2 U1.2 C14.2
7 T* U( ~7 ?5 T; s: eC9.2 J4.15 P1.10 P1.11 MH10.1 P2.11 MH8.1 U7.3( ^6 N& b7 P* }: X; Z: }
这样,没用pin name信息,当然可以重名了!
% T8 X5 n8 `, @9 }7 a9 c. A, w3 j/ C7 F( \
看来,没什么好想的,只能用#1,#2,#3来区分了,这样就知道是同一个地上的不同引脚,如果用1,2,3来分的话,不怎么好,DATA1,DATA2,DATA3,它也是用1,2,3来分的,名子也都是data,但不是同一网络。 |
|