用Protel99SE實(shí)現(xiàn)脈沖電路的仿真
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Protel99SE是Protel公司2000年推出的最新版本,內(nèi)部集成了功能強(qiáng)大的模數(shù)混合仿真器,采用Spice仿真內(nèi)核,含有豐富的器件模型庫,能快速簡便地實(shí)現(xiàn)大部分模塊電路和數(shù)字電路的仿真[1~2]。且仿真結(jié)構(gòu)十分精確,提高了電路設(shè)計(jì)的效率和效益。由于Protel99SE的數(shù)字電路(門電路)模型沒有采用Spice模型,而是采用類C語言(Digital Sim code)編寫,它只注意到電路的輸入與輸出邏輯電平值,而對門電路的輸入輸出阻抗考慮不夠,從而導(dǎo)致這些模型不適用于輸入、輸出電流較大的數(shù)字電路的仿真。在脈沖電路中,由門電路構(gòu)成的對稱式多諧振蕩器和微分型單穩(wěn)態(tài)觸發(fā)器等電路的輸入、輸出電流都較大,如果直接調(diào)用仿真庫內(nèi)的器件設(shè)計(jì)這些電路并進(jìn)行仿真,結(jié)果將是失敗的。然而,Protel99SE提供了開放的仿真器件庫維護(hù)護(hù)環(huán)境,用戶可創(chuàng)新器件模型,它還支持層次式電路的設(shè)計(jì)與仿真?;谶@兩點(diǎn),筆者探索出兩種適合于脈沖電路的仿真方法,其結(jié)果是令人滿意的。
1 創(chuàng)建門電路的子電路模型
直接調(diào)用仿真庫內(nèi)的器件導(dǎo)致仿真失敗的原因是Protel99SE仿真庫內(nèi)的模型不能完整和全面地描述電路的性能。為此,有必要為門電路建立符合要求的子電路模型。下面以TTL電路中的四二輸入與非門T1000為例,介紹子電路模型的建立步驟和方法。
第一步,按圖1畫出門電路的內(nèi)部結(jié)構(gòu)。根據(jù)所選器件的有關(guān)參數(shù)(如門電路的延遲時(shí)間、功耗等)選取三極管及電阻等元件,畫面子電路圖。其中多發(fā)射極三極管用兩個(gè)三極管Q1和Q2并聯(lián)代替,Rx是為了避免電氣規(guī)則檢查(ERC)出錯(cuò)而設(shè)置的,若短路Rx,則在進(jìn)行電氣規(guī)則檢查時(shí)會(huì)報(bào)告出錯(cuò)信息,但并不影響仿真。
第二步,在電路中標(biāo)出有關(guān)節(jié)點(diǎn)。如圖1中的a、b、c、d、e五個(gè)節(jié)點(diǎn)。
第三步,創(chuàng)建器件電路符號(hào)并完成相關(guān)工作。Protel 99 SE仿真器件的電路符號(hào)、參數(shù)、管腳等信息存放在Design Explorer99SE.ddb仿真元器件庫中。Protel99SE的仿真器將在此讀取器件的有關(guān)信息。需要做的工作有如下幾項(xiàng):
(1)創(chuàng)建仿真元件庫文件。打開數(shù)據(jù)庫文件Design Explorer 99 SE.ddb,創(chuàng)建新文件T1000.Lib。
(2)畫元器件符合并為器件命名。打開文件T1000.Lib,進(jìn)入元器件符號(hào)編輯界面,單擊右鍵,用Tools-Rename Component將器件命名為T1000。畫面T1000的電路符號(hào),并編排好引腳,用Tools-New Part創(chuàng)建四個(gè)子件1/4、2/4、3/4、4/4。各個(gè)子件的引腳排列與74LS00相同,即在一個(gè)封裝內(nèi)集成四個(gè)與非門,如圖2所示。
(3)在Browse schlib頁面,單擊Description按鈕,并切換到Designator頁面,在Default區(qū)域中填入放置器件的缺省名稱"U?",在Designator域中填入TTLGATE,在Foot Print 1域中填入Dip14。再切換到Library Fields頁,為Text Field 1-Text Field 5各個(gè)區(qū)域填寫如下相應(yīng)內(nèi)容:
Text Field 1:Type=SUBCKT(X);此域定義T1000為子電路。
Text Field 2:model=T1000;此域?qū)⒋俗与娐返哪P兔x為T1000。
Text Field 3:file={model_path}.ckt;此域指出模型文件存放的路徑及文件名。
Text Field 4:pins=1:[1,2,3,14,7]2:[4,5,6,14,7]3:[10,9,8,14,7]4:[13,12,11,14,7];此域定義各子件的管腳分配及管腳排列順序。引腳排列順序必須與模型文件中子電路定義語句所定義的節(jié)點(diǎn)排列順序相對應(yīng)。
Text Field 5:netlist=%D%1%2%3%4%5%M;此域包含Spice網(wǎng)絡(luò)表的網(wǎng)絡(luò)數(shù)據(jù)。其含義可參見參考文獻(xiàn)[4]~[5];該頁的其余區(qū)域可不填。Part Field Name項(xiàng)不用設(shè)置。
第四步,創(chuàng)建器件模型文件。
Protel 99SE的模型文件存放在Design Explorer 99 SEModel.ddb仿真文件中。首先在此數(shù)據(jù)庫中創(chuàng)建文件夾TTLGATE,再創(chuàng)建文件T1000.ckt。Spice語言規(guī)定子電路的擴(kuò)展名為ckt。根據(jù)圖1按Spice模型文件規(guī)范編寫此文件是一種較煩瑣的事情,未能體現(xiàn)Protel的優(yōu)點(diǎn)。下面介紹一種簡便方法:將圖1中的節(jié)點(diǎn)e的標(biāo)號(hào)"e"去掉,并在此節(jié)點(diǎn)上放置接地符號(hào)(0),單擊Simulate/Create Spice Netlist按鈕,系統(tǒng)會(huì)自動(dòng)生成Spice網(wǎng)表文件T1000.nsx。將文件中的注釋行和命令行刪除,將節(jié)點(diǎn)0改為節(jié)點(diǎn)e,在文件的最前面添加一行子電路命令語句:.SUBCKT T1000 a b c d e,將文件的最后一句由.END改為.ENDS T1000(子電路結(jié)束語句),最后將此文件內(nèi)容復(fù)制到新建的子電路模型文件T1000.ckt之中。得到的新器件的模型文件如下所示:
修改后的模型文件需重新啟動(dòng)一次系統(tǒng)才能生效。
通過以上幾步即建立了可用于仿真的新器件T1000(T1000系列四二輸入與非門),用同樣的方法可創(chuàng)建其它門電路及其仿真模型。
2 用新建的器件模型仿真調(diào)試對稱式多諧振蕩器
由與非門構(gòu)成的對稱式多諧振蕩器如圖3所示。圖中的與非門T1000就是新建的器件。電路的繪制必須符合Protel99SE仿真電路圖的規(guī)范。
在仿真設(shè)置對話框中選擇仿真類型(瞬態(tài)分析)并完成仿真步長(盡量小一些為好)及收集信號(hào)等設(shè)置,單擊RUN按鈕,得到仿真結(jié)果如圖4所示。由圖可測出振蕩周期約為98.768μs(啟動(dòng)測量光標(biāo)測量),與理論計(jì)算及硬件實(shí)驗(yàn)結(jié)果相符,其它指標(biāo)也與理論分析及硬件實(shí)驗(yàn)結(jié)果相符。
新建的電路模型不僅可用于脈沖電路的仿真與調(diào)試,它同樣適用于組合電路和時(shí)序電路的仿真與測試,比Protel99SE仿真庫中的門電路模型有更廣泛的適用性。當(dāng)然,模型的精度對仿具的精度有較大的影響,要提高精度,則要對子電路進(jìn)行測試并調(diào)整元件及參數(shù)使之滿足要求。