1、引言
隨著半導體工業(yè)的飛速發(fā)展,新型電力電子器件不斷涌現,用戶對器件建模的需求越來越迫切,對專用建模工具的開發(fā)提出了新的挑戰(zhàn)。本文基于開放工業(yè)標準仿真源碼開發(fā)了輕便專用的器件建模工具。
2、仿真模塊設計
SPICE模型已被廣泛用于電子設計中,本文器件參數提取按照spice語法對輸入等效電路進行解析,對開發(fā)源碼spice3f5導出相關接口作為仿真內核,從而完成仿真模塊設計。
2.1、接口設計
為了方便與spice3f5仿真源碼通信,在研究源碼的基礎上,編譯生成spice3f5.dll,導出仿真輸入輸出相關API接口。
其接口函數如表1所示。
2.2、spice語法參數提取
模型參數提取技術是器件建模的基礎,只有向電路模擬軟件提供相應的模型參數,才可以進行電路設計。因此器件模型所有用到的參數均需要精確地提取。我們需要對用戶輸入的等效電路網表進行spice語法解析,獲得電路參數。
考慮到修改元件參數值反復仿真的需要,將用戶輸入電路網表做預處理,僅保留仿真有效部分并按行存放在字符串鏈表中,現在需要從中提取出元件參數信息及實例化的模型、子電路中的參數信息。
第一次遍歷網表字符串做提取模塊的工作。一旦遇到子電路或模型定義,構造對應類型對象保存模塊信息并將指針保存到對應的指針鏈表中;第二次遍歷完成最終輸入 仿真網表文件。這一過程跳過子電路或模型定義,定位至實例化語句,解析出該實例對應的模塊名和實例名,然后根據模塊名找到指向該子模塊對象的指針,將該實 例名添加到該模塊的實例鏈表中。擴展該實例需要該實例對應模塊的定義語句,通過獲取的模塊指針調用其方法構造由實例名定義子模塊語句并保存到字符串鏈表 中,然后將其添加到語句鏈表中。
3、圖形顯示模塊
仿真數據與實際測量數據的對比需要以不同的圖形特征作對比,然后通過不斷調節(jié)一系列參數值重新仿真,尋求兩組相關曲線的最佳擬合點。現就對仿真曲線中的smith阻抗圖的實現作一介紹。
3.1、smith阻抗圖
Smith阻抗圖在測量某高頻電路的負載時能夠直觀的在smith圖上顯示負載阻抗及反射系數[3],它由恒定電阻圓和恒定電抗圓組成,因此其繪制工作也分為兩部分進行。首先將其歸一化到單位圓,然后按照視圖比例乘以具體倍數。
定義如下數組分別是等阻圓和恒定電抗圓弧的特殊值。
double dRadius[]={0.0,0.2,0.5,1.0,2.0,5.0}
double dArc[]={-5.0,2.0,-1.0,-0.5,-0.2,0.2,0.5,1.0,2.0,5.0}
GDI圖形編程中,用設備上下文DC繪制圓Eclipse所需參數為該圓外接矩形,畫圓弧Arc接口需要圓弧所屬圓的外接矩形和圓弧的起始點坐標。
等阻圓外接矩形左上角和右下角坐標分別為(x取自數組dRadius):
[(x-1)/(x+1),1/(x+1)]和[1,-1/(x+1)]
以上為歸一化到單位圓內的轉換關系,繪圖時需設定坐標原點,確定放大比例。
3.2、擴充功能
在建模過程中,需要不斷觀測曲線調節(jié)參數使之與實測曲線擬合,而放大及記憶功能為此提供了便利。
我們需維護兩個放大參數:放大區(qū)域中心點及放大比例。
每次拖動方框局部放大時調用InvalidateRect只刷新圖形顯示區(qū)域,然后訪問存儲的放大比例更新smith最大半徑。再用內存DC創(chuàng)建圖形顯示區(qū) 域大小的位圖,用內存DC只需要繪制放大之后的部分區(qū)域。然后根據放大中心點確定位圖的視圖原點,設置屏幕DC的視圖原點為smith圓圖的中心點,最后 調用BitBlt函數將放大的部分拷貝到屏幕上即可。
多次放大之后需要回退到上次的狀態(tài)只需訪問放大信息數組中的上一組參數,然后刷新視圖即可。此外,還涉及到多次放大多次回退再次放大時要覆蓋掉此次放大之后的參數,要做好內存釋放的工作。
4、結束語
本文所述的基于spice3f5的建模工具將面向對象設計思想引入到仿真器的器件建模機制中,實現了模塊復用和快速原型化開發(fā),達到了縮短器件模型開發(fā)周期和降低開發(fā)成本的目的,對設計專用器件建模工具有一定的啟發(fā)作用。