亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

EDA技術(shù)培訓(xùn)

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

時(shí)間:2024-10-17 05:52:32 EDA技術(shù)培訓(xùn) 我要投稿
  • 相關(guān)推薦

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

  PROTEL較早就在國(guó)內(nèi)開(kāi)始使用,在國(guó)內(nèi)的普及率也最高,有些高校的電子專(zhuān)業(yè)還專(zhuān)門(mén)開(kāi)設(shè)了課程來(lái)學(xué)習(xí)它,下面小編為大家整理了關(guān)于Protel到Allegro轉(zhuǎn)化的方法,一起來(lái)看看吧:

  由于接觸和使用較早等原因,國(guó)內(nèi)的Protel用戶(hù)為數(shù)眾多,他們?cè)谶x擇Cadence高速PCB解決方案的同時(shí),都面臨著如何將手頭的Protel設(shè)計(jì)移植到Cadence PCB設(shè)計(jì)軟件中的問(wèn)題。

  在這個(gè)過(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。

  這里有兩點(diǎn)請(qǐng)讀者注意。首先,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,"%sn", "# Allegro script");

  fprintf(fp2,"%sn", "version 13.6");

  fprintf(fp2,"%sn", "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, "rotaten");

  fprintf(fp2, "iangle %fn", rotation);

  };

  char yy=tb[0];

  if (yy!='T') fprintf(fp2, "pop mirrorn");

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

  fprintf(fp2, "next n");

  };

  fprintf(fp2, "done");

  fclose(fp1);

  fclose(fp2);

【Protel到Allegro轉(zhuǎn)化的方法】相關(guān)文章:

將seo轉(zhuǎn)化成營(yíng)銷(xiāo)思維的方法09-01

Javascript到PHP加密通訊的簡(jiǎn)單實(shí)現(xiàn)方法09-04

大文件復(fù)制到移動(dòng)硬盤(pán)的方法08-16

安裝PE到硬盤(pán)上的操作方法步驟10-27

關(guān)于淘寶提升轉(zhuǎn)化率和客單價(jià)的方法和技巧09-18

如何解決AutoCAD轉(zhuǎn)Protel99se丟線(xiàn)問(wèn)題07-17

Excel數(shù)值型數(shù)據(jù)轉(zhuǎn)化為文本型數(shù)字的三種方法09-19

Word表格中文字大小設(shè)置到適應(yīng)單元格大小的方法09-18

到澳洲留學(xué)好還是到新西蘭留學(xué)好?06-26

QQ群營(yíng)銷(xiāo)的轉(zhuǎn)化率09-07