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的轉換方法,希望能對讀者的設計工作有所幫助。