Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
1#
發表於 2007-8-22 14:37:19 | 顯示全部樓層
原帖由 monkeybad 於 2007-8-1 04:50 PM 發表 0 Y) @# b7 ^2 d, K$ a  ?
之前有討論過有關CMOS Pierce crystal osc
$ t. i% s* ^& S+ t* {' |; s  x現在我的模擬好像有點問題 想請教一下9 M7 G2 z, Y& @: S
圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻
& C+ J+ x+ g- L3 G. J  o6 U然後a b兩點再分別接到Crystal的兩端
0 V0 `$ ~: Q% |" z/ dCryst ...
- u7 G' |/ U" b$ `0 i
. w0 f1 C) E% l5 v, S6 i5 H) F
因為最近剛好也要做一個 1MHZ~10MHz 的 X'tal oscillator, 最近這兩篇討論對小弟
- A& [0 _. p% D  \3 B1 H+ O幫助很大..不過在模擬上有遇到問題, 怕是自己觀念有錯, 想請各位前輩指導...
0 @3 H/ ?0 K: F$ o# t: D! O& ^% v7 c! F. G0 S5 ^
關於負電組的部份, 老實說是第一次看到這個觀念, 研讀了這兩篇討論串所提供的一些
: u' r, y. ^& Y3 O+ B8 P3 A文件, 總算有了一點點感覺...在推導的部份 monkeybad 大大提供的 Philips 那份文件
& f; m6 H# w: ?8 b% K有詳細說明, 裡頭推論出滿足負電阻條件時 inverter 最小的 gm 值, 不過就是在這邊
' w1 p' j$ K5 W8 j1 j+ u遇到一點問題...
- s% \' b6 B" M
: E, K  g/ ^5 w! b0 f7 B我模擬的條件為:
% q+ l& s/ ]1 N10M X'tal model 為: RS=50, CS=0.004pF, L=60039.21315uH, CP=5pF (前人留下的..)
7 Y1 }6 `3 S  C( q. t0 }Inverter size 為: WN=3u, WP=10u, L=0.5u, 偏壓在約 1.65V (VDD/2)% U; S; y+ T9 p
RP 為 2E6
: k+ o6 ]2 q6 O' D, ^& }1 ACX1=CX2=10p (X'tal兩邊的負載電容)# s$ d  ~7 B2 h; O# z  W

& g0 |, @3 v5 {( y) G2 X假設先不考慮 Cpar 的效應, 根據公式算出來的 gmmin 約為 115u 左右, 用本篇一開始 - V! M4 h) H) Q4 h# f
monkeybad 大大提出的方式去模擬, HSPICE 模擬出來 NMOS 的 gm 約為 521u, 是理論& j$ i8 {4 Q% T7 ~4 R+ i: l
最小值將近五倍, 然而 AC 分析看到的阻值卻是正的(請參考附圖), 我試著調整參數, 發現! Q) h; Y# z% x7 z
將 CX1, CX2 以及 RP 縮小才會得到類似 monkeybad 大提供的圖 (整個從1MEG到10MEG8 Q1 w8 s0 \! t/ r/ ^# v
的頻域都是負電阻..) 不過阻值也不大..
' P! p& P  s5 Z, e5 a+ k3 I- |! K5 b0 v
另外一個問題是, 根據公式, RP 如果愈大, gmmin 會愈小, 所以我自己的推論是如果 RP 愈大,
: ?$ N& ~1 v. M6 }' k" @1 ^- e模擬結果應該會往"更負"的那邊移動, 不過我用 50E6 模擬結果卻與預期完全相反... * ~9 u1 v$ v: s; V5 ?
1 C% H1 m  A* A& y- d5 T* F6 m
研究了兩天實在不知道是哪邊弄錯了, 煩請前輩們指導一下..謝謝..

本帖子中包含更多資源

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

x
2#
發表於 2007-8-24 00:06:30 | 顯示全部樓層
哎哎...負電阻的部分還是參不透玄機...模擬不出來... - T: u  V$ l# R. w) E! L9 _6 o

! ]3 d& K" z8 q0 w9 d0 \$ K不過我按照推導的結果確認 gm 值足夠後把整個線路丟進 ADiT 去模擬, 把 X'tal 兩端設成0 J' q  K5 |* k
SPICE_NODE, 結果是會順利起震的, 可是又遇到另一個問題, 就是用 HSPICE 模擬無法起震, " ]2 Z) |! L) v6 l
我覺得應該是模擬條件設定的問題, 我有參考了前面 finster 大大提過的技巧, 不過兩個端點
" |/ i- i6 ~( m, ~, g1 P最後還是會停在偏壓點 (剛好約 VDD/2) 的地方, 我知道 time step 的設定似乎會影響到模擬6 z1 P' i1 O+ z/ L3 d# `( f9 X) s8 Z
會不會起震, 不知有沒有前輩們能分享一下除了 time step 之外還有什麼地方要注意的??) `" G# d- {3 Q3 Q
2 ?$ ]( g& t" \- y3 @
另外再請教 monkeybad 大大, 您提到的 "一開始起始值的電壓用很小" 指的就是 X'tal 兩端的
# d: W6 R1 P0 C  u; V初始值嗎??
3#
發表於 2007-8-27 12:32:26 | 顯示全部樓層
ADiT 是本土公司 (華凱, EverCAD) 開發的一套 simulation tool, 這套 tool 標榜模擬的速度$ [4 B% @- {; E  L
比 HSPICE 快上許多, 也有提供準確度較高的 spice mode...Mentor 為了加強他在電路模擬. w; X4 S$ V6 N
這個領域的 tool, 在去年(前年?? 忘了..)購併了 EverCAD...所以這套 tool 現在也是爆貴...-_-2 z1 M1 L) n/ a; B9 t

. X" b% Z# H5 t% K6 ?5 l以上是題外話....
# f% G2 k. Q' P. L$ W# Q$ ~; L( m. k. m5 K" R( J
X'tal 的 model 似乎不容易要到, 我 12MHz 的 model 是參考 Philips 文件上的...那應該算是5 |$ i) T# h+ H1 W& @4 T1 n
廠商的 model 吧??....
( U2 A) Z  `! \9 \, ?5 O/ X; Q  g5 D& D$ p! P& ?# m
我去看了不會起震時 C 點的波形, 初始值是參考 finster 大大的建議, 震幅與操作點一開始從
, L7 e$ e) T4 K- W9 q接近 full swing  衰減, 然後隨著 VDD 逐漸上升, 當 VDD 到 3.3V 時 C 點會上升到偏壓點附近, ' z4 K. I) v1 A# h
接著就是維持著約 350mV 的振幅到模擬結束...:f33 試過調整 time step 與 VDD ramp up3 f- P; g! Q7 G% X( R% n
的時間, 看來都沒有什麼關係...
, j# t8 C$ {3 b5 u; T
2 _0 J, \* u8 h8 c' ]% i我還沒有試過 monkeybad 大提供的外加 power 的作法, 不過在網路上找資料時有看到大大
/ [4 Y& T8 {/ Z3 w* r6 Q. k  K6 a提供的那份文件, 只是如同 finster 大所說, 這是一個不存在的電源, 總覺得這樣模擬可能不是: v4 D' J' ^- H6 {
很正確...
7 _; }7 L2 |5 P0 D3 H! q! h- J7 t' G; @4 A& }" O9 D
不知道是哪邊設錯了, 請各位前輩能再指導一下...
4#
發表於 2007-9-9 14:38:59 | 顯示全部樓層
最近一直在嘗試, 本來因為 schedule 的關係想先擱下, 以前做這個線路的同事說就是用
* q8 m" \/ N: W) l/ T9 {$ cHSPICE 跑不起來才換 ADiT, 是還沒有遇到說 real chip 不會動的情況..., p# o+ F! J. w

; L+ Q, h+ u% T3 y3 \不過最後一次的嘗試讓我看到它起震了, time step 要縮小到 0.1ns, CX1(inverter輸入端)
+ V: ]6 ~3 A. w6 a0 m縮小到 4pF (是任意挑一個較小的值, 沒試過其他的..CX2 仍為 10pF), 不過還是有點怪怪的...
$ g1 S0 @. u6 K1 @" j( j0 B& g1 ?9 M  o, c0 N( _- I8 h
前面討論有提到, 起震時在 X'tal 內 CS 的端點會看到振幅漸增的震盪, 我用 ADiT 跑出來! }, g0 F: ?( J2 l" |# {: s
到穩態時震幅是 +/- 2.x KV, SPICE 跑出來只有900多V, 另外 CX1=CX2=10pF 時 ADiT
' b8 [. r2 Q4 ?; ^, ^就可以很順利的起震, XG/XD 的振幅是 full swing, SPICE 的話會看到 XG/XD 的振幅很小, ! r- _+ O( q. t" Y
幾乎就是在 INV 的操作點附近, CS 端點的振幅也只有幾十V, 頻率慢一點 (ex. 2MHz) # e6 B' V: F6 I8 v! N% I
還可以起震, 跑到 12MHz 時就掛了..: Z% v% Z/ z) {& u) O% s
9 a3 h- H  X8 x- j& b
只是 time step 設到 0.1ns 用 HSPICE 跑 12MHz X'tal 要好久....>_<
- y+ G* D; q3 Y1 K& I(當然比起前面 finster 大說的 32KHz 跑一個禮拜是好多了...)
1 N: J! D( z3 P& q+ q8 |- s( S7 D7 T
[ 本帖最後由 skyboy 於 2007-9-9 02:51 PM 編輯 ]

評分

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

查看全部評分

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

本版積分規則

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

GMT+8, 2024-6-17 02:45 PM , Processed in 0.138517 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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