Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
1#
發表於 2007-8-22 14:37:19 | 顯示全部樓層
原帖由 monkeybad 於 2007-8-1 04:50 PM 發表 # e! `) M9 U! @  ]% O0 V
之前有討論過有關CMOS Pierce crystal osc3 }: g7 I4 W' T4 J/ Y$ _3 k+ x
現在我的模擬好像有點問題 想請教一下
9 k3 J6 t0 b) u圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻
% T5 T  J9 J( J8 N2 p* F7 f- l4 f然後a b兩點再分別接到Crystal的兩端
. i: a: M* y: y* s+ _Cryst ...

: |# ?  @. Y* j: n" O; H: o- q- q; f# Y' J6 A2 K* h
因為最近剛好也要做一個 1MHZ~10MHz 的 X'tal oscillator, 最近這兩篇討論對小弟. O2 L. \- S& s# Q) v; m  K
幫助很大..不過在模擬上有遇到問題, 怕是自己觀念有錯, 想請各位前輩指導...
& f2 o( W& D; \( F; m
, o% r- Q" Q& H0 r& Z0 O關於負電組的部份, 老實說是第一次看到這個觀念, 研讀了這兩篇討論串所提供的一些% c9 ^9 m: O' h1 B: e9 l) D
文件, 總算有了一點點感覺...在推導的部份 monkeybad 大大提供的 Philips 那份文件. Z5 b. p& s8 [8 a: d" x) P
有詳細說明, 裡頭推論出滿足負電阻條件時 inverter 最小的 gm 值, 不過就是在這邊& ?9 Z3 a0 X( l$ K9 C
遇到一點問題...& p# w" l9 t7 t# T, V3 ^

8 f$ e- H: K/ y) D! \! N$ m我模擬的條件為:
3 _( h, ]5 a0 }+ q10M X'tal model 為: RS=50, CS=0.004pF, L=60039.21315uH, CP=5pF (前人留下的..)
6 P$ Z6 ]9 L$ U# X# Z* NInverter size 為: WN=3u, WP=10u, L=0.5u, 偏壓在約 1.65V (VDD/2)/ t# A: e2 M' o# m- m
RP 為 2E6: [% x* b9 e/ Z' G0 J0 A
CX1=CX2=10p (X'tal兩邊的負載電容)5 R! H. E- a3 F! B; _* L8 F
: [+ D+ Y; k0 I: |8 _
假設先不考慮 Cpar 的效應, 根據公式算出來的 gmmin 約為 115u 左右, 用本篇一開始 $ \* I! v. [8 {' A& C+ _5 y
monkeybad 大大提出的方式去模擬, HSPICE 模擬出來 NMOS 的 gm 約為 521u, 是理論
; \/ y* V. Y3 w" c6 w最小值將近五倍, 然而 AC 分析看到的阻值卻是正的(請參考附圖), 我試著調整參數, 發現
& P) W9 L! X( H: X( T8 C9 k將 CX1, CX2 以及 RP 縮小才會得到類似 monkeybad 大提供的圖 (整個從1MEG到10MEG# a' h; l$ m4 P" H
的頻域都是負電阻..) 不過阻值也不大..
" F( N5 f* a( Q; t- q) @7 r4 y3 A1 u5 K2 g9 H3 K4 b& j  M
另外一個問題是, 根據公式, RP 如果愈大, gmmin 會愈小, 所以我自己的推論是如果 RP 愈大,
) O* U3 e4 z5 t5 M. @$ b模擬結果應該會往"更負"的那邊移動, 不過我用 50E6 模擬結果卻與預期完全相反... 3 w. D. q) V" Y
5 }( G9 C7 C2 q6 _
研究了兩天實在不知道是哪邊弄錯了, 煩請前輩們指導一下..謝謝..

本帖子中包含更多資源

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

x
2#
發表於 2007-8-24 00:06:30 | 顯示全部樓層
哎哎...負電阻的部分還是參不透玄機...模擬不出來... - E2 E) Y$ w' J' e
: U% {/ d' _# U8 U/ D* ~$ H! }
不過我按照推導的結果確認 gm 值足夠後把整個線路丟進 ADiT 去模擬, 把 X'tal 兩端設成( S$ H' h! S. u3 H6 A2 @! ^' F
SPICE_NODE, 結果是會順利起震的, 可是又遇到另一個問題, 就是用 HSPICE 模擬無法起震,
3 p8 o( G. }* \. z/ L% J. |0 @我覺得應該是模擬條件設定的問題, 我有參考了前面 finster 大大提過的技巧, 不過兩個端點* ^( _: B* U* `; n( }. a
最後還是會停在偏壓點 (剛好約 VDD/2) 的地方, 我知道 time step 的設定似乎會影響到模擬0 {) ]& W! q, M  E
會不會起震, 不知有沒有前輩們能分享一下除了 time step 之外還有什麼地方要注意的??% K$ ^2 E  I* a' n! j7 T: Y, V
0 V8 y, r0 @- b( U2 J" O3 [
另外再請教 monkeybad 大大, 您提到的 "一開始起始值的電壓用很小" 指的就是 X'tal 兩端的
# ]; v5 [0 W% C/ v; C初始值嗎??
3#
發表於 2007-8-27 12:32:26 | 顯示全部樓層
ADiT 是本土公司 (華凱, EverCAD) 開發的一套 simulation tool, 這套 tool 標榜模擬的速度( ]9 _6 s" O( }5 n. c  B
比 HSPICE 快上許多, 也有提供準確度較高的 spice mode...Mentor 為了加強他在電路模擬
7 M6 M" N+ @. L5 I( r4 n7 l這個領域的 tool, 在去年(前年?? 忘了..)購併了 EverCAD...所以這套 tool 現在也是爆貴...-_-" ^! ^- F& j# i/ c

, S/ j  p) ~; _# S+ A: J以上是題外話....
& t/ t1 F; w( |& t, L5 K7 L6 K  W8 O" Z6 F8 B3 B
X'tal 的 model 似乎不容易要到, 我 12MHz 的 model 是參考 Philips 文件上的...那應該算是
* E6 g. ?- p( ^8 S廠商的 model 吧??....0 v1 {, S) m; x7 D- I
* d& g* g; j" ]' J3 s- p
我去看了不會起震時 C 點的波形, 初始值是參考 finster 大大的建議, 震幅與操作點一開始從4 B) O+ `8 H; j- W# d
接近 full swing  衰減, 然後隨著 VDD 逐漸上升, 當 VDD 到 3.3V 時 C 點會上升到偏壓點附近,
9 n/ `: j* n: q8 K" J/ N  s接著就是維持著約 350mV 的振幅到模擬結束...:f33 試過調整 time step 與 VDD ramp up$ m; E7 T8 U* H6 h* [; O
的時間, 看來都沒有什麼關係...: `) T6 W  Q  c3 r' ~& U% X$ T3 I

# a; ^# `1 \( V8 W& i8 U- F我還沒有試過 monkeybad 大提供的外加 power 的作法, 不過在網路上找資料時有看到大大+ H$ q/ L: W" l  ~& T
提供的那份文件, 只是如同 finster 大所說, 這是一個不存在的電源, 總覺得這樣模擬可能不是. j, M  n% Z; p; V* B
很正確...3 j; R9 J: j! m! v3 f0 J

; \' L" |/ ?& s5 X( s不知道是哪邊設錯了, 請各位前輩能再指導一下...
4#
發表於 2007-9-9 14:38:59 | 顯示全部樓層
最近一直在嘗試, 本來因為 schedule 的關係想先擱下, 以前做這個線路的同事說就是用 + ^4 m1 c1 M% p% U9 b0 g
HSPICE 跑不起來才換 ADiT, 是還沒有遇到說 real chip 不會動的情況...$ g1 E) a! t; J  W- S2 ^8 m

; Q+ u# M, A! _7 n不過最後一次的嘗試讓我看到它起震了, time step 要縮小到 0.1ns, CX1(inverter輸入端)
2 ~$ W/ d& B) S# F" |" O6 H+ p1 Q縮小到 4pF (是任意挑一個較小的值, 沒試過其他的..CX2 仍為 10pF), 不過還是有點怪怪的...
3 e0 J0 w( p& @& _' L
' ]' x  I: [, |, x" E前面討論有提到, 起震時在 X'tal 內 CS 的端點會看到振幅漸增的震盪, 我用 ADiT 跑出來
: A- ~0 x+ ?+ F  \到穩態時震幅是 +/- 2.x KV, SPICE 跑出來只有900多V, 另外 CX1=CX2=10pF 時 ADiT
! J' v/ E4 Q# l) ~: Z! g就可以很順利的起震, XG/XD 的振幅是 full swing, SPICE 的話會看到 XG/XD 的振幅很小,
% h, [1 d+ \& E2 h& M% m/ M; ?幾乎就是在 INV 的操作點附近, CS 端點的振幅也只有幾十V, 頻率慢一點 (ex. 2MHz)
( Q) b) U; u% r& k" a8 l6 E) T還可以起震, 跑到 12MHz 時就掛了..
! @( A8 E7 ]1 S. ]; G4 S6 ]& N$ K" N# {
只是 time step 設到 0.1ns 用 HSPICE 跑 12MHz X'tal 要好久....>_<& C$ m, |2 \0 v( B# e
(當然比起前面 finster 大說的 32KHz 跑一個禮拜是好多了...)5 X$ B* J% z) F! {( a

3 x( }# C! e! }1 l[ 本帖最後由 skyboy 於 2007-9-9 02:51 PM 編輯 ]

評分

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

查看全部評分

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

本版積分規則

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

GMT+8, 2024-6-8 11:28 AM , Processed in 0.146019 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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