個人用ADS喜歡把電路的小塊小塊變成一個個模組(component),比如說device建成一個模組,matching network建成一個模組,dc bias 的bypass電路建成一個模組。
這樣做的好處有:
- 主電路不會太複雜,各個元件的關係十分清楚。
- 要換掉元件十分容易,例如要把matching network從理想元件換成EM的S2P檔,只要改模組裡的接線即可。
- 要對模組內的元件做微調時,可以清楚知道在微調哪個部分的元件,這在元件數多時很好用。
另一方面,這樣做也有幾個問題:
- 大電路的模擬無法求得電流等資訊,即無法計算功耗,因此需要將dc線拉出來,造成電路稍加複雜。
- 大電路的模擬設定會和小電路的相衝突,進行模擬時要將小電路的模擬關掉。
第2點煩人之處在於,大電路模擬和小電路模組行為的確認,幾乎都是要做的,
例如DC bias 一定要加上bypass電路來隔離電源的雜訊,會先對bypass電路進行設計,進行S parameter模擬,確認頻帶內設計OK,再將bypass代入大電路中。
這時候麻煩來了,ADS並不允許多重的模擬設定和模擬終端(term),此時要先將小電路的模擬設定和終端給取消掉,否則會產生重複的模擬設定;
如果後來需要再次確認bypass的設計,就要再打開小電路的模擬設定和終端。
看device S2P也是,先在模組內模擬,確認device行為正常之後,要在大電路模擬,就需要進到read S2P的電路設計,把其中的模擬關掉;如果要換device,也要重開。
這樣每次來回的開關小電路的模擬設定,一是麻煩,二是徒然浪費時間,最後還容易做錯,實在不太聰明。
寒假個人自學了DesignPattern,前幾天突然從Design Pattern類似的概念,想到第二個問題的一個解法。
只要把bypass的implementation(電路架構)做成一個電路設計,bypass的模擬設定(interface)則做成另一個設計,這個模擬設定和大電路都各自包含bypass的implementation,要修改bypass,就到bypass模擬設定裡去tune,而大電路仍能正常模擬。
這樣一來,無論我要做大電路模擬或是調整小電路,都不需要再去開關小電路的模擬設定跟終端,可以簡省工作的時間,提升設計效率,看來沒事看看DP等其他領域的東西,也會有些收獲。