Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 104897|回復: 82
打印 上一主題 下一主題

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

  [複製鏈接]
1#
發表於 2007-8-22 14:37:19 | 顯示全部樓層
原帖由 monkeybad 於 2007-8-1 04:50 PM 發表
, p5 Y# y# M" E+ ?& F之前有討論過有關CMOS Pierce crystal osc
  _5 N( [' [! D9 V6 Q現在我的模擬好像有點問題 想請教一下: y  U  E* l9 L0 Z+ L& ^# I8 u
圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻4 Y( Q# h, u% t' X: F- A, |
然後a b兩點再分別接到Crystal的兩端
; N  }0 k5 Q+ p$ H* [Cryst ...

0 P+ T& G1 d! X5 }6 S" t) Q1 a6 {, U
2 M4 `* r; ~$ p) R0 @8 y0 P- O因為最近剛好也要做一個 1MHZ~10MHz 的 X'tal oscillator, 最近這兩篇討論對小弟" i# N: |$ `: i" Y( n( Y
幫助很大..不過在模擬上有遇到問題, 怕是自己觀念有錯, 想請各位前輩指導...8 g3 _) _* B6 h- @9 @. {, [% \
! M$ z) N  U$ G: `8 _
關於負電組的部份, 老實說是第一次看到這個觀念, 研讀了這兩篇討論串所提供的一些
) s  w6 X+ g" C- ^3 d8 C2 X文件, 總算有了一點點感覺...在推導的部份 monkeybad 大大提供的 Philips 那份文件
/ y. L2 @- s' l" f0 ?, q有詳細說明, 裡頭推論出滿足負電阻條件時 inverter 最小的 gm 值, 不過就是在這邊
& c" x2 x$ y  X1 d% K遇到一點問題...' a2 ~6 H6 Z7 Z0 ~7 }

  Q& Z: }) m4 v我模擬的條件為:
- s( k* z, x: C% N10M X'tal model 為: RS=50, CS=0.004pF, L=60039.21315uH, CP=5pF (前人留下的..)' l) h& Y# v+ L6 k2 r$ c% d+ a; n% J
Inverter size 為: WN=3u, WP=10u, L=0.5u, 偏壓在約 1.65V (VDD/2)0 ~& q2 y3 l/ b% S8 n  Z
RP 為 2E60 \5 ~3 g/ l& ]" T0 ]) M% u' |& o
CX1=CX2=10p (X'tal兩邊的負載電容)% q0 P2 p/ M2 `9 N* s, d) }

( V7 p: c3 u) |7 M假設先不考慮 Cpar 的效應, 根據公式算出來的 gmmin 約為 115u 左右, 用本篇一開始 , V( I/ }2 h4 C& l9 N! |
monkeybad 大大提出的方式去模擬, HSPICE 模擬出來 NMOS 的 gm 約為 521u, 是理論
6 ?, G; n3 d# v4 m: {最小值將近五倍, 然而 AC 分析看到的阻值卻是正的(請參考附圖), 我試著調整參數, 發現
; ~4 H* c* I/ X. U( d+ u9 p將 CX1, CX2 以及 RP 縮小才會得到類似 monkeybad 大提供的圖 (整個從1MEG到10MEG" e" _1 c) w% `' M1 B$ m1 M
的頻域都是負電阻..) 不過阻值也不大..
: q  I+ l+ n( g1 ]# h5 w( W$ u+ S( H$ d+ q% H# x5 l
另外一個問題是, 根據公式, RP 如果愈大, gmmin 會愈小, 所以我自己的推論是如果 RP 愈大,
3 m# S' g* @  }. [模擬結果應該會往"更負"的那邊移動, 不過我用 50E6 模擬結果卻與預期完全相反... : ^' |5 @' c+ ^; `# m

' n( S* p/ }' H2 b  ?8 H研究了兩天實在不知道是哪邊弄錯了, 煩請前輩們指導一下..謝謝..

本帖子中包含更多資源

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

x
2#
發表於 2007-8-24 00:06:30 | 顯示全部樓層
哎哎...負電阻的部分還是參不透玄機...模擬不出來... 8 Q9 X; A7 c) r# X6 h

( ~/ Y0 c1 z. L4 c+ C不過我按照推導的結果確認 gm 值足夠後把整個線路丟進 ADiT 去模擬, 把 X'tal 兩端設成
: [  k* D" k4 M( ]SPICE_NODE, 結果是會順利起震的, 可是又遇到另一個問題, 就是用 HSPICE 模擬無法起震, # j( [% p: d' O6 |& E# ]
我覺得應該是模擬條件設定的問題, 我有參考了前面 finster 大大提過的技巧, 不過兩個端點
. J, J7 R3 w, ?) l+ V# `0 K- y) F最後還是會停在偏壓點 (剛好約 VDD/2) 的地方, 我知道 time step 的設定似乎會影響到模擬
1 T' E( l3 ]) S6 Y; H, k會不會起震, 不知有沒有前輩們能分享一下除了 time step 之外還有什麼地方要注意的??" A+ F  f( O6 c; ?# V# y8 N
6 `/ l1 o( t# |( c" H/ f
另外再請教 monkeybad 大大, 您提到的 "一開始起始值的電壓用很小" 指的就是 X'tal 兩端的
* W9 R* f* d+ b& g! N初始值嗎??
3#
發表於 2007-8-27 12:32:26 | 顯示全部樓層
ADiT 是本土公司 (華凱, EverCAD) 開發的一套 simulation tool, 這套 tool 標榜模擬的速度
6 X& m7 U3 ?) D1 d1 e0 K比 HSPICE 快上許多, 也有提供準確度較高的 spice mode...Mentor 為了加強他在電路模擬3 q5 M; g# I, u% w, f
這個領域的 tool, 在去年(前年?? 忘了..)購併了 EverCAD...所以這套 tool 現在也是爆貴...-_-, C" f! \9 G% y$ |# H
7 F' A" z2 A: c( [5 e1 A
以上是題外話....
& M& ^( z- u9 K* x' Q" w2 u6 u, f& i% Q9 f2 |8 @0 z
X'tal 的 model 似乎不容易要到, 我 12MHz 的 model 是參考 Philips 文件上的...那應該算是+ \- Z3 w5 f) u% f( A, N7 y
廠商的 model 吧??....
- o5 ~/ x" t5 P, b1 N* y3 T, y  v. X, D- N. N, B
我去看了不會起震時 C 點的波形, 初始值是參考 finster 大大的建議, 震幅與操作點一開始從* Z$ F# a7 q& a. l9 ]0 A: D0 k; R
接近 full swing  衰減, 然後隨著 VDD 逐漸上升, 當 VDD 到 3.3V 時 C 點會上升到偏壓點附近,
1 B7 s2 O+ f- A  I1 e/ D接著就是維持著約 350mV 的振幅到模擬結束...:f33 試過調整 time step 與 VDD ramp up
4 r: d9 V& b: j! ~3 J2 b/ ~+ ^的時間, 看來都沒有什麼關係...
3 o3 d1 e" [1 y% T4 ?% ?5 |! ]! {# g; D/ _4 S
我還沒有試過 monkeybad 大提供的外加 power 的作法, 不過在網路上找資料時有看到大大
! C1 ^" E" Z" j提供的那份文件, 只是如同 finster 大所說, 這是一個不存在的電源, 總覺得這樣模擬可能不是- A% O$ ~: u1 S" v
很正確.../ Z. s4 f% h- X; ]
* s! Q$ _$ s' ]9 |
不知道是哪邊設錯了, 請各位前輩能再指導一下...
4#
發表於 2007-9-9 14:38:59 | 顯示全部樓層
最近一直在嘗試, 本來因為 schedule 的關係想先擱下, 以前做這個線路的同事說就是用
* `) Z) R: N/ E* h0 j" PHSPICE 跑不起來才換 ADiT, 是還沒有遇到說 real chip 不會動的情況...; S3 B6 v# r' `8 K. [, e3 f
3 ^3 Z, }: ?+ w$ F( Q/ R
不過最後一次的嘗試讓我看到它起震了, time step 要縮小到 0.1ns, CX1(inverter輸入端)% D5 N( t; G) B' }0 X: j8 f' D7 u1 B
縮小到 4pF (是任意挑一個較小的值, 沒試過其他的..CX2 仍為 10pF), 不過還是有點怪怪的...1 q9 |, d- R( W( I3 C9 f

" V; N2 d! m$ M$ Q, Q. J前面討論有提到, 起震時在 X'tal 內 CS 的端點會看到振幅漸增的震盪, 我用 ADiT 跑出來
& T$ n7 W! r4 _到穩態時震幅是 +/- 2.x KV, SPICE 跑出來只有900多V, 另外 CX1=CX2=10pF 時 ADiT / M1 ?3 a! |; k: J
就可以很順利的起震, XG/XD 的振幅是 full swing, SPICE 的話會看到 XG/XD 的振幅很小, ! t- ^1 i$ i0 V  l3 i
幾乎就是在 INV 的操作點附近, CS 端點的振幅也只有幾十V, 頻率慢一點 (ex. 2MHz) : _3 f$ J% U, d! K7 V$ z  p
還可以起震, 跑到 12MHz 時就掛了..
, I2 h. E8 ?  u1 S' Z2 b+ O0 d5 h# e$ d; L
只是 time step 設到 0.1ns 用 HSPICE 跑 12MHz X'tal 要好久....>_<
! w2 n& x4 U, q' b. P(當然比起前面 finster 大說的 32KHz 跑一個禮拜是好多了...)
( n; `; _' _' \# U" o
( t2 Q5 P  a* L/ R[ 本帖最後由 skyboy 於 2007-9-9 02:51 PM 編輯 ]

評分

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

查看全部評分

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

本版積分規則

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

GMT+8, 2024-5-6 12:08 PM , Processed in 0.107006 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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