Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
樓主: monkeybad
打印 上一主題 下一主題

[問題求助] CMOS晶體震盪器模擬

  [複製鏈接]
1#
發表於 2007-8-22 14:37:19 | 顯示全部樓層
原帖由 monkeybad 於 2007-8-1 04:50 PM 發表
  O" z& S4 Y7 a0 N) c之前有討論過有關CMOS Pierce crystal osc9 D6 Q2 Y4 Z% q$ h* F
現在我的模擬好像有點問題 想請教一下
2 [5 h: e) z" x1 Z% y" }0 \" T圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻
( K! l( b4 y3 Q! k+ Q( k然後a b兩點再分別接到Crystal的兩端
  ]3 q6 M# w7 z7 P6 H  l) iCryst ...

% M! k8 E5 i. d% Z# f
* v. ~  I# O+ f5 D5 g/ `+ N因為最近剛好也要做一個 1MHZ~10MHz 的 X'tal oscillator, 最近這兩篇討論對小弟
# m: Y$ a+ r4 H* J  E, n4 m幫助很大..不過在模擬上有遇到問題, 怕是自己觀念有錯, 想請各位前輩指導...
  \/ D4 B8 E& H+ B: L8 r# T8 Y# B' \: T: r1 }) C
關於負電組的部份, 老實說是第一次看到這個觀念, 研讀了這兩篇討論串所提供的一些
& `, \! q/ H8 k; i& S% G& P! d) f5 s文件, 總算有了一點點感覺...在推導的部份 monkeybad 大大提供的 Philips 那份文件) K, y% l) d/ c1 v) f
有詳細說明, 裡頭推論出滿足負電阻條件時 inverter 最小的 gm 值, 不過就是在這邊
, k% g/ V. U. P1 `- F% y7 w遇到一點問題...8 `' k+ w6 o3 j0 o

% I& G2 n1 K" s9 z我模擬的條件為:" i& g3 Z) {8 z- E) }; x+ f5 k
10M X'tal model 為: RS=50, CS=0.004pF, L=60039.21315uH, CP=5pF (前人留下的..)
5 z/ J6 O# W; _# d* e* C( ~6 \) w8 r2 lInverter size 為: WN=3u, WP=10u, L=0.5u, 偏壓在約 1.65V (VDD/2)
% Z  i* q' Y) O2 _  g7 iRP 為 2E6& ~( u0 e7 h( _. T$ f5 F
CX1=CX2=10p (X'tal兩邊的負載電容)
- u$ D2 _: E! z. |7 O5 m7 T) o( i" Q2 I) C
假設先不考慮 Cpar 的效應, 根據公式算出來的 gmmin 約為 115u 左右, 用本篇一開始
# s0 c1 A2 n6 Qmonkeybad 大大提出的方式去模擬, HSPICE 模擬出來 NMOS 的 gm 約為 521u, 是理論
) @' t" {0 [5 r' c& U2 Q. Y最小值將近五倍, 然而 AC 分析看到的阻值卻是正的(請參考附圖), 我試著調整參數, 發現% E" U+ \6 q( n9 h- W, v" m& Z
將 CX1, CX2 以及 RP 縮小才會得到類似 monkeybad 大提供的圖 (整個從1MEG到10MEG4 z8 H, e7 K/ D) }
的頻域都是負電阻..) 不過阻值也不大..
/ x3 x; M0 k" T: g& ?+ G3 n
, a6 {0 a9 y4 ]另外一個問題是, 根據公式, RP 如果愈大, gmmin 會愈小, 所以我自己的推論是如果 RP 愈大,
. u- ]+ |' i% A模擬結果應該會往"更負"的那邊移動, 不過我用 50E6 模擬結果卻與預期完全相反...
* |3 i: f1 j5 I6 R3 i9 Y0 h  V4 q1 i5 v, @' ]+ E+ S* X
研究了兩天實在不知道是哪邊弄錯了, 煩請前輩們指導一下..謝謝..

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
2#
發表於 2007-8-24 00:06:30 | 顯示全部樓層
哎哎...負電阻的部分還是參不透玄機...模擬不出來... 3 Y# Y. V4 V% S
  j0 A; N% Z) G* N+ W+ H  E
不過我按照推導的結果確認 gm 值足夠後把整個線路丟進 ADiT 去模擬, 把 X'tal 兩端設成
% Y8 {- K9 \, J9 A$ TSPICE_NODE, 結果是會順利起震的, 可是又遇到另一個問題, 就是用 HSPICE 模擬無法起震, 2 L2 H  m& z7 m+ Y+ D: k5 Z
我覺得應該是模擬條件設定的問題, 我有參考了前面 finster 大大提過的技巧, 不過兩個端點; C+ X8 u  _* D6 r
最後還是會停在偏壓點 (剛好約 VDD/2) 的地方, 我知道 time step 的設定似乎會影響到模擬
" H, b" a0 ?& J+ E會不會起震, 不知有沒有前輩們能分享一下除了 time step 之外還有什麼地方要注意的??
. a- r. }6 O, q0 r' M( X# ~/ X9 t$ D) A
另外再請教 monkeybad 大大, 您提到的 "一開始起始值的電壓用很小" 指的就是 X'tal 兩端的3 C+ `. S& a+ z8 D; K7 q7 X( K
初始值嗎??
3#
發表於 2007-8-27 12:32:26 | 顯示全部樓層
ADiT 是本土公司 (華凱, EverCAD) 開發的一套 simulation tool, 這套 tool 標榜模擬的速度0 i8 Y6 E* |$ T& s; f+ n- {
比 HSPICE 快上許多, 也有提供準確度較高的 spice mode...Mentor 為了加強他在電路模擬
9 M8 K" c$ b8 J& u這個領域的 tool, 在去年(前年?? 忘了..)購併了 EverCAD...所以這套 tool 現在也是爆貴...-_-
3 j7 y9 \8 E; k6 `9 F+ u+ T; p" Q! u" w- K7 R
以上是題外話....
' q% h: d1 g# a. M' C' }8 x( f  ~' Z- s7 M
X'tal 的 model 似乎不容易要到, 我 12MHz 的 model 是參考 Philips 文件上的...那應該算是1 o; B8 v% w; z3 A. F# y& x& Y$ @
廠商的 model 吧??....  Z& _7 j; H- C! q5 J
0 n  Z) B! H# [8 b! \* t3 B3 q) Z
我去看了不會起震時 C 點的波形, 初始值是參考 finster 大大的建議, 震幅與操作點一開始從( ?: P' m( \! q" w* ~) d8 {: D% T2 \
接近 full swing  衰減, 然後隨著 VDD 逐漸上升, 當 VDD 到 3.3V 時 C 點會上升到偏壓點附近,
, q) [$ U& e0 R8 \+ D# f8 ^% `接著就是維持著約 350mV 的振幅到模擬結束...:f33 試過調整 time step 與 VDD ramp up
+ n' c2 ]9 Y0 }9 X; l的時間, 看來都沒有什麼關係...
9 v. |4 r1 B$ w. Y) K+ I; E
2 D5 h0 c$ |& [* K我還沒有試過 monkeybad 大提供的外加 power 的作法, 不過在網路上找資料時有看到大大- ^2 V" m' Z% ?- b5 p) O* X
提供的那份文件, 只是如同 finster 大所說, 這是一個不存在的電源, 總覺得這樣模擬可能不是: r4 y( |4 h% T) w# Y& v- z& T5 i
很正確...4 c3 l. q8 }" S0 v0 G8 Z3 R

6 f/ _6 B* W- {  f& e不知道是哪邊設錯了, 請各位前輩能再指導一下...
4#
發表於 2007-9-9 14:38:59 | 顯示全部樓層
最近一直在嘗試, 本來因為 schedule 的關係想先擱下, 以前做這個線路的同事說就是用
$ E6 j- _5 @  y, qHSPICE 跑不起來才換 ADiT, 是還沒有遇到說 real chip 不會動的情況...$ k( \5 V( q, h4 j

) x( z5 v8 R4 @+ p, C不過最後一次的嘗試讓我看到它起震了, time step 要縮小到 0.1ns, CX1(inverter輸入端)
  J8 e3 N7 _: Q5 n% e1 i縮小到 4pF (是任意挑一個較小的值, 沒試過其他的..CX2 仍為 10pF), 不過還是有點怪怪的...
1 q! q3 Z  @- {! w9 S/ ~1 t5 |& X  N; M7 g
前面討論有提到, 起震時在 X'tal 內 CS 的端點會看到振幅漸增的震盪, 我用 ADiT 跑出來' C, }! t0 c$ ^2 s6 Q6 E3 }" Y; F0 D
到穩態時震幅是 +/- 2.x KV, SPICE 跑出來只有900多V, 另外 CX1=CX2=10pF 時 ADiT $ k- W* [0 p) R
就可以很順利的起震, XG/XD 的振幅是 full swing, SPICE 的話會看到 XG/XD 的振幅很小, / f  `0 B9 }) F
幾乎就是在 INV 的操作點附近, CS 端點的振幅也只有幾十V, 頻率慢一點 (ex. 2MHz)
( |9 L2 ?( g0 x8 O; E還可以起震, 跑到 12MHz 時就掛了..
( W' B; |/ _. @  Q. B0 [- E$ ~. D/ W9 m4 U+ E6 l/ a
只是 time step 設到 0.1ns 用 HSPICE 跑 12MHz X'tal 要好久....>_<! e7 f/ s* u4 I9 e8 }1 y6 _
(當然比起前面 finster 大說的 32KHz 跑一個禮拜是好多了...)
* {' q5 o- V  j" Y4 ~  F
) e" a9 B) M, @$ `; s1 L- M[ 本帖最後由 skyboy 於 2007-9-9 02:51 PM 編輯 ]

評分

參與人數 1Chipcoin +3 +3 收起 理由
monkeybad + 3 + 3 經驗之談!值得參考!

查看全部評分

您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-6-7 12:59 PM , Processed in 0.159020 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表