久久99国产成人欧美另类综合视频_国语精品91自产拍在_九九视频网站_日韩欧美亚洲中文视频_无码精品A在线观看_亚洲中文字幕制服人妻_乱熟女高潮一区二区_午夜日本黄色三级黄色_最近手機中文字幕無嗎_国产成人av片免费观看

當(dāng)前位置:龍邦科技PCB抄板公司 >> 新聞中心 >> PCB文件PROTEL到ALLEGRO的轉(zhuǎn)換技巧

PCB文件PROTEL到ALLEGRO的轉(zhuǎn)換技巧

  1. Protel 原理圖到Cadence Design Systems, Inc. Capture CIS

  在Protel原理圖的轉(zhuǎn)化上我們可以利用Protel DXP SP2的新功能來(lái)實(shí)現(xiàn)。通過(guò)這一功能我們可以直接將Protel的原理圖轉(zhuǎn)化到Capture CIS中。

  注意事項(xiàng):

  1) Protel DXP在輸出Capture DSN文件的時(shí)候,沒(méi)有輸出封裝信息,在Capture中我們會(huì)看到所以元件的PCB Footprint屬性都是空的。這就需要我們手工為元件添加封裝信息,這也是整個(gè)轉(zhuǎn)化過(guò)程中最耗時(shí)的工作。在添加封裝信息時(shí)要注意保持與Protel PCB設(shè)計(jì)中的封裝一致性,以及Cadence在封裝命名上的限制。我們?cè)贑apture中給元件添加封裝信息時(shí),要考慮到這些命名的改變。

  2) 一些器件的隱藏管腳或管腳號(hào)在轉(zhuǎn)化過(guò)程中會(huì)丟失,需要在Capture中使用庫(kù)編輯的方法添加上來(lái)。

  3) 在層次化設(shè)計(jì)中,模塊之間連接的總線(xiàn)需要在Capture中命名。

  4) 對(duì)于一個(gè)封裝中有多個(gè)部分的器件,要注意修改其位號(hào)。

  基本上注意到上述幾點(diǎn),借助Protel DXP,可以將Protel的原理圖轉(zhuǎn)化到Capture中。進(jìn)一步推廣,這也為現(xiàn)有的Protel原理圖符號(hào)庫(kù)轉(zhuǎn)化到Capture提供了一個(gè)途徑。

  2. Protel 封裝庫(kù)的轉(zhuǎn)化

  長(zhǎng)期使用Protel作PCB設(shè)計(jì),我們總會(huì)積累一個(gè)龐大的經(jīng)過(guò)實(shí)踐檢驗(yàn)的Protel封裝庫(kù),當(dāng)設(shè)計(jì)平臺(tái)轉(zhuǎn)換時(shí),如何保留這個(gè)封裝庫(kù)總是令人頭痛。這里,我們將使用Orcad Layout,和免費(fèi)的Cadence工具Layout2Allegro來(lái)完成這項(xiàng)工作。

  1) 在Protel中將PCB封裝放置到一張空的PCB中,并將這個(gè)PCB文件用Protel PCB 2.8 ASCII的格式輸出出來(lái);

  2) 使用Orcad Layout導(dǎo)入這個(gè)Protel PCB 2.8 ASCII文件;

  3) 使用Layout2allegro將生成的Layout MAX文件轉(zhuǎn)化為Allegro的BRD文件;

  4) 接下來(lái),我們使用Allegro的Export功能將封裝庫(kù),焊盤(pán)庫(kù)輸出出來(lái),就完成了Protel封裝庫(kù)到Allegro轉(zhuǎn)化。

  3. Protel PCB到Allegro的轉(zhuǎn)化

  有了前面兩步的基礎(chǔ),我們就可以進(jìn)行Protel PCB到Allegro的轉(zhuǎn)化了。這個(gè)轉(zhuǎn)化過(guò)程更確切的說(shuō)是一個(gè)設(shè)計(jì)重現(xiàn)過(guò)程,我們將在Allegro中重現(xiàn)Protel PCB的布局和布線(xiàn)。

  1) 將第二步Capture生成的Allegro格式的網(wǎng)表傳遞到Allegro BRD中,作為我們重現(xiàn)工作的起點(diǎn);

  2) 首先,我們要重現(xiàn)器件布局。在Protel中輸出Place & Pick文件,這個(gè)文件中包含了完整的器件位置,旋轉(zhuǎn)角度和放置層的信息。我們通過(guò)簡(jiǎn)單的手工修改,就可以將它轉(zhuǎn)化為Allegro的Placement文件。在Allegro中導(dǎo)入這個(gè)Placement文件,我們就可以得到布局了。

  3) 布線(xiàn)信息的恢復(fù),要使用Specctra作為橋梁。從Protel中輸出包含布線(xiàn)信息的Specctra DSN文件。

  4) Protel中的層命名與Allegro中有所區(qū)別,要注意使用文本編輯器作適當(dāng)?shù)男薷摹?/P>

  5) 注意在Specctra中查看過(guò)孔的定義,并添加到Allegro的規(guī)則中。在allegro中定義過(guò)孔從Specctra中輸出布線(xiàn)信息,可以使用session, wires, 和route文件,建議使用route文件,然后將布線(xiàn)信息導(dǎo)入到我們以及重現(xiàn)布局的Allegro PCB中,就完成了我們從Protel PCB到Allegro BRD的轉(zhuǎn)化工作。

  Protel到Allegro轉(zhuǎn)化的方法

  在這過(guò)程當(dāng)中碰到的問(wèn)題大致可分為兩種:一是設(shè)計(jì)不很復(fù)雜,設(shè)計(jì)師只想借助Cadence CCT的強(qiáng)大自動(dòng)布線(xiàn)功能完成布線(xiàn)工作;二是設(shè)計(jì)復(fù)雜,設(shè)計(jì)師需要借助信噪分析工具來(lái)對(duì)設(shè)計(jì)進(jìn)行信噪仿真,設(shè)置線(xiàn)網(wǎng)的布線(xiàn)拓?fù)浣Y(jié)構(gòu)等工作。

  對(duì)于第一種情況,要做的轉(zhuǎn)化工作比較簡(jiǎn)單,可以使用Protel或Cadence提供的Protel到CCT的轉(zhuǎn)換工具來(lái)完成這一工作。對(duì)于第二種情況,要做的工作相對(duì)復(fù)雜一些,下面將這種轉(zhuǎn)化的方法作一簡(jiǎn)單的介紹。

  Cadence信噪分析工具的分析對(duì)象是Cadence Allegro的brd文件,而Allegro可以讀入合乎其要求的第三方網(wǎng)表,Protel輸出的Telexis格式的網(wǎng)表滿(mǎn)足Allegro對(duì)第三方網(wǎng)表的要求,這樣就可以將Protel文件注入Allegro。

  首先,Allegro第三方網(wǎng)表在$PACKAGE段不允許有“.”;其次,在Protel中,我們用BasName[0:N]的形式表示總線(xiàn),用BasName[x]表示總線(xiàn)中的一根信號(hào),Allegro第三方網(wǎng)表中總線(xiàn)中的一根信號(hào)的表示形式為Bas NameX,讀者可以通過(guò)直接修改Protel輸出的Telexis網(wǎng)表的方法解決這些問(wèn)題。

  Allegro在注入第三方網(wǎng)表時(shí)還需要每種類(lèi)型器件的設(shè)備描述文件Device.txt文件,它的格式如下:

  Package: package type

  Class: classtype

  Pincount: total pinnumber

  Pinused: ...

  其中常用的是PACKAGE,CLASS,PINCOUNT這幾項(xiàng)。PACKAGE描述了器件的封裝,但Allegro在注入網(wǎng)表時(shí)會(huì)用網(wǎng)表中的PACKAGE項(xiàng)而忽略設(shè)備描述文件中的這一項(xiàng)。CLASS確定器件的類(lèi)型,以便信噪分折,Cadence將器件分為IC,IO,DISCRETE三類(lèi)。PINCOUNT說(shuō)明器件的管腳數(shù)目。對(duì)于大多數(shù)器件,Device.txt文件中包含有這三項(xiàng)就足夠了。

  有了第三方網(wǎng)表和設(shè)備描述文件,我們就可以將Protel中原理圖設(shè)計(jì)以網(wǎng)表的形式代入到Cadence PCB設(shè)計(jì)軟件中,接下來(lái),設(shè)計(jì)師就可以借助Cadence PCB軟件在高速高密度PCB設(shè)計(jì)方面的強(qiáng)大功能完成自己的設(shè)計(jì)。

  如果已經(jīng)在Protel作了PCB布局的工作,Allegro的script功能可以將Protcl中的布局在Allegro中重現(xiàn)出來(lái)。在Protel中,設(shè)計(jì)師可以輸出一個(gè)Place & Pick文件,這個(gè)文件中包含了每個(gè)器件的位置、旋轉(zhuǎn)角度和放在PCB頂層還是底層等信息,可以通過(guò)這個(gè)文件很方便的生成一個(gè)Allegro的script文件,在Allegro中執(zhí)行這個(gè)script就能夠重現(xiàn)Protel中的布局了,下面給出了完成Place & Pick文件到Allegro Script文件轉(zhuǎn)化的C++代碼,筆者使用這段代碼,僅用了數(shù)分鐘就將一個(gè)用戶(hù)有800多個(gè)器件的PCB板布局在Allegro重現(xiàn)出來(lái)。

  FILE *fp1, *fp2;

  ::AfxMessageBox("hello");

  fp1=fopen("pick.txt", "rt");

  if (fp1==NULL) ::AfxMessageBox("Can not open the file!!!");

  fp2=fopen("place.txt","wt");

  if (fp2==NULL) ::AfxMessageBox("Can not create the file!!!");

  char refdes[5], Pattern[5];

  float midx,midy,refx,refy,padx,pady,rotation;

  char tb[1];

  char tmp='"';

  fprintf(fp2,"%s\n", "# Allegro script");

  fprintf(fp2,"%s\n", "version 13.6");

  fprintf(fp2,"%s\n", "place refdes");

  while (!feof(fp1)) {

  fscanf(fp1,"%s", refdes);

  fscanf(fp1,"%s", Pattern);

  fscanf(fp1,"%f", &midx);

  fscanf(fp1,"%f", &midy);

  fscanf(fp1,"%f", &refx);

  fscanf(fp1,"%f", &refy);

  fscanf(fp1,"%f", &padx);

  fscanf(fp1,"%f", &pady);

  fscanf(fp1,"%s", tb);

  fscanf(fp1,"%f", &rotation);

  fprintf(fp2, "fillin %c%s%c \n",tmp,refdes,tmp);

  if (rotation!=0) {

  fprintf(fp2, "rotate\n");

  fprintf(fp2, "iangle %f\n", rotation);

  };

  char yy=tb[0];

  if (yy!='T') fprintf(fp2, "pop mirror\n");

  fprintf(fp2, "pick %f %f \n", padx,pady);

  fprintf(fp2, "next \n");

  };

  fprintf(fp2, "done");

  fclose(fp1);

  fclose(fp2);