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