**1 **層級關系
曾經我一直認為cosim最頂層必須是一個數字頂層,其實不然。具體使用哪個做頂層要看項目,以數字為頂層的好處是,模擬仿真的結果都轉換為數字,比較好處理。
當數字模塊是一個專用模塊,其它是以模擬模塊為主,這時候可以用模擬作為頂層。
圖1給出了數字做頂層時的cosim層級關系,最頂層是數字,底層模擬模塊可以包含數字,數字模塊也可包含模擬,仿真時數字和模擬接口用a2d和d2a進行轉換 。
Fig1. 數字做頂層時cosim層級關系.
**2 **仿真步驟
Synopsys做為主流三大EDA供應商(另外兩家是Cadence和Mentor),其自帶的文檔就是最好的,我們不用費勁周折去網上找,xa-vcscosim仿真方法在xa的安裝目錄下有實例($xa_install_dir/doc/tutorials/mixed_signal/XA-VCS),照著實例跑一下流程就行,xa自帶4位加法器cosim仿真文件如圖2所示。
Fig2. xa自帶cosim仿真實例文本
XA-VCS_tutorial.pdf中給出了仿真方法并對文件做了注釋,注釋如圖3所示。
Fig3. XA-VCS 4位加法器文件注釋
仔細讀一下XA-VCS_tutorial.pdf文檔并實際操作一下就能學會。
注:執行run_xa_vcs命令之前要先啟動xa和vcs軟件,run_xa_vcs不認的話chmod一下。
例子雖然簡單,帶來的問題就是Case覆蓋不全。例子中并沒有給出模擬到數字,數字到模擬之間的電平轉換規則,具體語法可參考文獻[2]中的a2d和d2a命令,將想要的電平轉換規則寫在vcsAD.init文本。
finesim-vcs或hsim-vcs仿真方法與xa-vcs類似,只要將vcsAD.init中的xa指令換成finesim或hsim即可。
**3 **仿真結果
圖4給出了我用finesim-vcs仿真pll的結果(根據xa自帶的例子改的),可見a2d/d2a的轉換是正確的。
Fig4. finesim-vcs仿真pll a2d/d2a轉換
圖5給出了我用finesim-vcs仿真pll的vctrl波形(模擬),可見環路能夠正常鎖定。
Fig5. finesim-vcs仿真pll vctrl波形
圖6給出了我用Cadence AMS(步驟跟xa-vcs類似,只是多了圖形界面(個人不太喜歡圖形界面,影響效率,不過流程也沒那么簡單)仿真二分頻的波形。
Fig6. AMS仿真分頻器波形
**4 **思考與討論
①a2d和d2a該如何合理寫入vcsAD.init?②如何從xa切換到finesim?③如何用Cadence的AMS做混仿,AMS與xa-vcs各自的優缺點是什么?
-
EDA工具
+關注
關注
4文章
267瀏覽量
31793 -
加法器
+關注
關注
6文章
183瀏覽量
30123 -
電平轉換
+關注
關注
3文章
135瀏覽量
33851 -
VCS
+關注
關注
0文章
79瀏覽量
9605 -
PLL電路
+關注
關注
0文章
92瀏覽量
6407
發布評論請先 登錄
相關推薦
評論