找回密码
 注册
关于网站域名变更的通知
查看: 2775|回复: 10
打印 上一主题 下一主题

AD设计fpga的时候,在原理图里面改管脚名,有什么方便的方法吗?

[复制链接]
  • TA的每日心情
    开心
    2022-11-1 15:51
  • 签到天数: 62 天

    [LV.6]常住居民II

    跳转到指定楼层
    1#
    发表于 2015-2-25 07:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    AD设计的原理图,FPGA的管脚名要做一些改变,库里面的fpga symbol是通用的,不能改,只可以在原理图里面改。通过双击原件,改pin的话太痛苦了,上百个管脚,在edit pin的界面上不能一起copy和past,只能一个一个改。有没有什么快捷的方法一次改多个管脚?考虑用脚本,找到了个ad的读管脚名的脚本,修修改改可以用来读指定的某个原件的所有管脚,再在文本文件里面改,就可以大量的拷贝了,但是不知道怎么写回到ad里面,有高手指点一下?谢谢
    * z3 G/ X( K  Y* \7 e3 E, F: E* g) R+ O{..............................................................................}
    ! s( t, k$ U* `+ j- L{ Summary Demo how to fetch pins of components.                                }
    ! `, J3 m7 M- H: p, w8 t4 @+ y7 L" t{                                                                              }
    ) j( `: M. |" o$ s: u+ \) |{ Copyright (c) 2008 by altium Limited                                         }
    5 O; r( K% K( j4 ?6 k{..............................................................................}$ ^* i7 V+ o. l2 F5 o; H
    ! o! }0 t* y& X, F
    {..............................................................................}0 Z9 F7 \. Y+ l# C7 i
    Procedure FetchPinsOfComponents_U1;
    3 X$ N7 m0 I" J% M9 F* p" rVar
    - b- ?' u1 g4 b. S, S" w    CurrentSch : ISch_Sheet;
    ! q+ B# f6 a0 }* b$ y0 n0 @+ \8 {    Iterator   : ISch_Iterator;4 h' S6 q% K$ Q& C5 J% w8 K3 ^9 D
        PIterator  : ISch_Iterator;& I; v3 U- m* J6 }
        AComponent : ISch_Component;& S1 x3 Z1 j. L  F
        AnIndex    : Integer;
    / x$ }0 {, O+ o1 X2 V' A0 b( u. t: D
        ReportList : TStringList;5 s3 Z" X" E& S& W( ^
        Pin        : ISch_Pin;# Z5 k* H- q& g7 R
        Document   : IServerDocument;) G& m+ d5 \4 s9 }
    Begin
    & ?8 e% P+ {2 I* P  c- z" F    // Check if schematic server exists or not.1 k! w' r0 ], |. L- r6 V8 j
        If SchServer = Nil Then Exit;
    . O/ y  D+ E0 R$ t$ P( Q- g4 B: _
    % ?# [4 y( ]3 Z" F! @    // Obtain the current schematic document inteRFace.
    4 i/ d: Y& i# Z4 ]; @0 P! h7 U! [5 M    CurrentSch := SchServer.GetCurrentSchDocument;" ^& u" ]2 g7 _5 t5 r
        If CurrentSch = Nil Then Exit;' \+ F& V$ F4 ?6 q6 ]

    2 h2 \0 u2 W9 ?# I6 Z+ _0 N# u" _    // Look for components only
    5 H7 O% K. E7 X) y$ x$ d2 k    Iterator := CurrentSch.SchIterator_Create;
    * }9 K1 ]9 ^+ ^9 O  C# N. S$ P- w    Iterator.AddFilter_ObjectSet(MkSet(eSchComponent));
    0 M5 |( n8 n: v. m. V- e- }/ B5 u) P" ~
        ReportList := TStringList.Create;9 S) Z' Q; r: c- j! H# N: w
        Try/ S5 K/ \+ w: U& F- V& Y0 T$ b: F' t
            AComponent := Iterator.FirstSchObject;4 Q: t* Z2 w  S0 E$ \( Q$ k, \
            While AComponent <> Nil Do
    3 s3 K; I! H5 y        Begin
    ' i, j: e4 D# D  Q( |4 O2 @            if AComponent.Designator.Text = 'U1' Then   // change to the designator number you want.....
    . p( D3 L3 M5 Y8 K& W- a            Begin
    8 G6 |( g& d. r; F3 F            ReportList.Add(AComponent.Designator.Name + ' ' + AComponent.Designator.Text);
      A, P) s( M; S* k+ U; P( _1 H            ReportList.Add(' Pins');6 \! |8 Q: X% Z  U7 y/ D2 y/ B, l
    7 o& ?$ w! p' ^1 T4 G- H+ r
                Try4 F( x  G' T3 v+ h0 L7 k
                    PIterator := AComponent.SchIterator_Create;
    0 Q7 A7 f7 h! r7 ^+ m                PIterator.AddFilter_ObjectSet(MkSet(ePin));7 b+ }0 k* N, [7 d/ W
    * _$ R3 y+ t/ W
                    Pin := PIterator.FirstSchObject;
    : F% C9 d0 _1 O                While Pin <> Nil Do
    % U8 ]$ P! `7 l4 M6 K: e' E                Begin
    8 G; q. |8 `# r6 H; w  V2 {" e, t                    { ReportList.Add('  Name: ' + Pin.Name + ' Designator: ' + Pin.Designator); }
    7 k) z* L& F% s" N0 Z                    ReportList.Add('  Name: ' + Pin.Name + ' Designator: ' + Pin.Designator);
    ' F/ \; S) w# z                    Pin := PIterator.NextSchObject;% k2 ~$ {' @- Z) ?+ J* ]
                    End;
    ( e2 h# i: c, ^            Finally/ R/ g6 l, \: J5 X# E
                    AComponent.SchIterator_Destroy(PIterator);
    " B/ A& n% u: @& f7 K/ Z9 o; }, @) V            End;
    5 |! B3 _' m, a' ?* }, z9 [. t. r! @' s3 g. W
                ReportList.Add('');
    / W$ ], [% r) ?, t
    ) Z0 _! V8 ^- v9 e" N* C; r            End;
    ( F. _/ ?. n0 t; b) j1 S4 w/ a. @
    5 a. M! G7 ~; q( f  K            AComponent := Iterator.NextSchObject;
    - F% x% e: u. P        End;: U! k/ Y0 r" m4 J
        Finally
    1 s% T, U# I; S, z  I        CurrentSch.SchIterator_Destroy(Iterator);
    # q0 g2 U: @2 j- H$ q7 z    End;, a- R# |3 B2 q& m  P: n$ S' v
    7 j! x- x6 b1 T' j4 \# q# \/ P5 v
        ReportList.SaveToFile('d:\PinReportU1.Txt');8 d9 r9 u  O4 }0 l1 U
        ReportList.Free;5 z- P7 g) s: p& V2 v0 x
    5 A# H& b* |' Z2 r+ t9 E- ~
        // Display the report for all components found and their associated pins.( c* y) `. L- i5 g
        Document := Client.OpenDocument('Text','d:\PinReportU1.txt');. a9 E3 U) |% Y1 d
        If Document <> Nil Then! K6 p5 t5 s: B8 b" U: Z
            Client.ShowDocument(Document);
    $ y  g; O; {( u, n% S8 B/ g3 _End;
    3 o3 m, `, f) d& B{..............................................................................}
    ! {; L/ e3 P. e- S$ A# b3 W, `7 K) L! o" y
    {..............................................................................}/ n( v' t8 {" A6 a4 r; l
    End.
    6 a& y/ d1 s2 O1 k
    ( Z* ]0 H& \% g5 o3 u

    该用户从未签到

    2#
    发表于 2015-2-25 09:20 | 只看该作者
    我是用ORCAD来做这种多管脚的封装,ORCAD支持导入EXCEL表格。
    / c6 N: [) a4 r- Z9 c1 I+ H4 @( l, Z$ A
    AD做这种类似的封装,我一直没去尝试它。

    该用户从未签到

    3#
    发表于 2015-2-25 14:02 | 只看该作者
    altium 可以利用  datasheet 或 excel 来快速建立多管脚的器件库,具体的文档你可以查看altium相关的操作说明。3 m) ^# Z3 u6 k+ h
    类似的资料汇总  在  【给初学3-...】系列汇总帖中有过汇总,链接地址略,网上找不到时可到pcbbbs论坛找寻之前的资料汇总。
      w% R3 s+ K: w: F' X* p4 N
    4 U, B% }& Z2 \5 D8 S' }altium不同的版本对某些字符的处理方式不同,仅提示: 比如某些版本 对  软回车 或硬回车 的处理(或者理解为兼容性)不同...3 u. W$ U2 j$ A# ?& P3 l9 Y' m
  • TA的每日心情
    开心
    2022-11-1 15:51
  • 签到天数: 62 天

    [LV.6]常住居民II

    4#
     楼主| 发表于 2015-2-26 01:14 | 只看该作者
    说明一下,我语文是体育老师教的,没讲清楚啊,请谅解。- I. @( m7 H6 T% U  n# G, `
    1. 已经建立了原件库了,用的是excel导入的方法,smart grid tool,搜一下这个关键词就可以找到。
    * O3 K3 R" c  J5 m$ D2. 库里的原件各个管脚是通用名,直接就是从datasheet上来的。% U  R2 x- ^" k4 T
    3. 做到具体不同的产品,fpga的管脚都有各自项目直接的管脚信号名。
    # f' I  l9 g3 s, W; L" _4. 在原理图里面,直接改component的管脚名,这个改名只是在这个特定的altium project里面,就只是为了每个特定项目调试和测试方便,直接根据fpga内部的设计文件定义的各个信号命名直接用到原来图里面的管脚名上面。
    & `9 p  z( k+ k# T2 z) |0 @5. 在原理图里面,直接双击一个器件,出porperties窗,左下角可以点edit pins,可以改管脚名,但是只能一个一个改,没办法选中一些管脚直接copy&paste。 一个fpga有几百个管脚,一个一个改要累死啊,所以想是不是用脚本直接自动改原理图里面的管脚名。不是要改库里面的管脚名,库里面的原件是不更改的。$ R/ Y- F# T9 X8 K  _0 C
    谢谢

    该用户从未签到

    5#
    发表于 2015-2-26 08:49 | 只看该作者
    SCH List也支持Edit並將資料粘貼的功能
    $ E3 ~7 b: \, B+ X4 a# U1.雙擊器件,不勾選Lock Pins- d( @; J8 o8 \8 H; U2 ?9 W$ o
    2.選中該器件其中一個pin來做Find Similar Object.. @# H( p2 X/ \1 e$ m& e
    3.FSO條件將 Object Specific區段的Owner設置為Same.這樣可以選中該器件的全部Pin
    " T1 v/ F* b- ]: f0 n; F- y4.開啟SCH List面板 上方左到右設置為Edit / Selected Objects / Current Document / Pin' m9 r' `) g, A2 s$ I: f+ O5 D  Z. w
    5.你就可以針對下方用粘貼(EXCEL複製的資料)的方式將資料覆蓋過去8 i( G$ l5 W; e2 |+ h
    建議粘貼前先做排序(Sort)確保粘貼的數據順序是一致的( ?: A; w* C4 C
    ! X& L: q8 y% _: s; Q

    点评

    支持!: 0.0
    支持!: 0
    这个方法不错,谢谢。  发表于 2015-2-28 06:10
    ^_^ ^_^ 春节快乐! icm 的方法可以在 原理图 或 原理图库 界面 内进行,此时 altium 的器件名 不会因器件修改而自动改变,建议为了避免后期不必要的错误,通常可以将 需要进行管脚重分配的器件做更名处理(  详情 回复 发表于 2015-2-26 12:54

    评分

    参与人数 1威望 +2 收起 理由
    wanghanq + 2 ^_^^_^

    查看全部评分

    该用户从未签到

    6#
    发表于 2015-2-26 12:54 | 只看该作者
    icm 发表于 2015-2-26 08:49
    6 Z8 n# q* X2 n4 Z! h, YSCH List也支持Edit並將資料粘貼的功能' k+ a2 Q, U0 ^  g; f
    1.雙擊器件,不勾選Lock Pins
    4 \+ s' w% a. _! i2.選中該器件其中一個pin來做Find Si ...

      ~3 K% m/ G' a  N# t' Z2 ~^_^ ^_^   春节快乐!
    ) l& ]; c2 A6 R8 d% m2 e) r3 D
    ! y7 d8 j$ Q% b4 e1 Vicm 的方法可以在 原理图 或 原理图库  界面 内进行,此时 altium 的器件名 不会因器件修改而自动改变,建议为了避免后期不必要的错误,通常可以将 需要进行管脚重分配的器件做更名处理(以区别和原始库文档中的初始库)。2 O+ h: o& ^1 E/ X& h: @
    / `4 p; y9 p7 \' y: m) R  s  n6 C! s
    另外,FPGA的管脚调整 可参 其他的资料进行:关键字 如      “ FPGA-PCB管脚同步”     “管脚交换功能”1 v4 [. N/ M& K
    . p6 @$ e5 H* f. {& o
    建议楼主 在讨论类似话题时 给一个简单 的案例过来,这样 关注的网友可快速交互式的进行试操作和交流/ d+ t) T0 Q  x5 {

    点评

    谢谢回复。fpga pcb管脚同步和管脚交换都不是我要的功能。 不是进行管脚重分配。只是改原理图里面的管脚名字。不同项目里面fpga的同一个管脚有不同的信号名。改名只是为了方便查信号和调试。不是因为pcb的layout。  发表于 2015-2-28 06:15
  • TA的每日心情
    开心
    2022-11-1 15:51
  • 签到天数: 62 天

    [LV.6]常住居民II

    7#
     楼主| 发表于 2015-2-28 08:18 | 只看该作者
    后来想想,其实可以改ad自己带的那个导入pin到lib的脚本文件。aD的脚本看着还是比较强大,就是对Delphiscript和vbscript不精通,也没找到什么好的教程。有人有好的推荐吗?谢谢

    点评

    脚本的学习和使用不妨 去 allegro 或 pads 论坛看看,里面有相关的脚本文档学习沟通(就看你能否搜索到之前沟通的内容了) altium脚本沟通见的比较少  详情 回复 发表于 2015-3-1 11:07

    该用户从未签到

    8#
    发表于 2015-3-1 11:07 | 只看该作者
    wxwxw 发表于 2015-2-28 08:18, S& I( `5 e- G' E# M/ g
    后来想想,其实可以改ad自己带的那个导入pin到lib的脚本文件。aD的脚本看着还是比较强大,就是对Delphiscri ...

    0 |  a, ~% h9 R3 e1 E! e脚本的学习和使用不妨 去 allegro  或 pads 论坛看看,里面有相关的脚本文档学习沟通(就看你能否搜索到之前沟通的内容了)& H: m: j1 T# f- `+ C3 Z3 d5 G+ G
    altium脚本沟通见的比较少3 X% ^& i% r9 _/ h' [
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-26 11:12 , Processed in 0.125000 second(s), 29 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表