精密PCB製造、高頻PCB、高速PCB、標準PCB、多層PCB和PCB組裝。
PCB新聞

PCB新聞 - 用於PCB校對的Protel到Allegro/CCT格式轉換

PCB新聞

PCB新聞 - 用於PCB校對的Protel到Allegro/CCT格式轉換

用於PCB校對的Protel到Allegro/CCT格式轉換

2021-10-03
View:573
Author:Kavie

PCB打樣的發展今天的IT行業日新月异,對硬體設備的要求也越來越高。 硬體設計人員面臨著如何設計高速高密度PCB的問題。 俗話說,如果工人想把工作做好,他們必須先磨快工具。 這就是為什麼越來越多的設計師放弃低端PCB設計工具,選擇Cadence等公司提供的高性能PCB EDA軟件。

印刷電路板


PCB打樣的變化不可避免地會帶來這樣或那樣的問題. 由於早期接觸和使用, 中國有大量的Protel用戶. 當他們選擇Cadence時 高速PCB 解决, 他們都面臨著如何將Protel設計移植到Cadence中的問題 PCB設計 軟件.

PCB打樣過程中遇到的問題大致可以分為兩類:一類是設計不是很複雜,設計者只想利用Cadence CCT强大的自動佈線功能來完成佈線工作; 二是設計複雜,設計者需要依賴信任雜訊分析工具來類比設計的訊號和雜訊,並設定有線網路的佈線拓撲。

對於第一種情况,要做的轉換工作相對簡單。 您可以使用Protel或Cadence提供的Protel到CCT轉換工具來完成這項工作。 對於第二種情况,要做的工作相對更複雜,下麵將簡要介紹這種轉換方法。

用於PCB驗證的Cadence信噪比分析工具的分析對象是Cadence Allegro的brd檔案,Allegro可以讀取滿足其要求的協力廠商網表。 Protel輸出的Telexis格式網表滿足Allegro對協力廠商網表的要求。 您可以將Protel檔案注入Allegro。

這裡有兩點需要讀者注意。 首先,Allegro協力廠商網表不允許” 在$PACKAGE部分; 其次,在Protel中,我們使用BasName[0:N]的形式表示匯流排,BasName[x]表示匯流排中的訊號。 Allegro協力廠商網表中匯流排中的訊號表示為Bas NameX。 讀者可以通過直接修改Protel輸出的Telexis網表來解决這些問題。

Allegro還需要設備描述檔案device。 注入協力廠商網表時每種設備的txt檔案。 其格式如下:

包:包類型

類別:classtype

Pincount:總pinnumber

銷已使用:。。。

PCB打樣的常用項目有封裝、類和PINCOUNT。 套裝軟體描述設備的套裝軟體,但Allegro將使用網絡清單中的套裝軟體項,並在注入網絡清單時忽略設備描述檔案中的該項。 類確定用於信噪比分析的設備類型。 Cadence將設備分為3類:IC、IO和離散。 PINCOUNT表示設備的管脚數。 對於大多數設備,在設備中包含這3項就足够了。 txt檔案。

通過協力廠商網表和用於PCB校對的設備描述檔案,我們可以以網表的形式將Protel中的原理圖設計替換為Cadence PCB設計軟體。 然後,設計者可以在高速和高密度下使用Cadence PCB軟件。 PCB設計的强大功能完成了您自己的設計。

PCB校對If PCB佈局 已在Protel中完成工作, Allegro的腳本功能可以在Allegro中重現Protcl中的佈局. 在Protel中, designers can output a Place & Pick file, 其中包含位置, PCB頂部或底部每個設備的旋轉角度和資訊. 您可以從該檔案輕鬆生成Allegro腳本檔案., 在Allegro中執行此腳本可以在Protel中再現佈局. The C++ code to complete the conversion of Place & Pick files to Allegro Script files is given below. 作者使用此程式碼,只需幾分鐘即可將用戶傳輸到 PCB佈局 800多臺設備中的一臺被複製到Allegro中.

檔案*fp1,*fp2;

:AfxMessageBox(“你好”);

fp1=fopen(“pick.txt”,“rt”);

如果(fp1==NULL)::AfxMessageBox(“無法打開文件!!!”;

fp2=fopen(“place.txt”,“wt”);

如果(fp2==NULL)::AfxMessageBox(“無法創建檔案!!!”;

字元參攷數据集[5],模式[5];

浮點midx,midy,refx,refy,padx,pady,旋轉;

字元tb[1];

字元tmp=“”;

fprintf(fp2,“%s\n”,“#快板腳本”);

fprintf(fp2,“%s\n”,“13.6版”);

fprintf(fp2,“%s\n”,“放置參攷標示符”);

而(!feof(fp1)){

fscanf(fp1,“%s”,參攷數据集);

fscanf(fp1,“%s”,圖案);

fscanf(fp1,“%f”和midx);

fscanf(fp1,“%f”和padx);

fscanf(fp1,“%f”和pady);

fscanf(fp1,“%s”,tb);

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

if(旋轉!=0){

fprintf(fp2,“旋轉”);

fprintf(fp2,“角度%f”,旋轉);

};

字元yy=tb[0];

if(yy!=“T”)fprintf(fp2,“彈出鏡像”);

fprintf(fp2,“pick%f%f”,padx,pady);

fprintf(fp2,“下一步”);

};

fprintf(fp2,“完成”);

fclose(fp1);

fclose(fp2);

以上簡要介紹了Protel到Allegro的轉換方法,希望能對讀者的設計工作有所幫助。