Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
1#
發表於 2007-8-22 14:37:19 | 顯示全部樓層
原帖由 monkeybad 於 2007-8-1 04:50 PM 發表 " q* N* p8 }! h0 \
之前有討論過有關CMOS Pierce crystal osc1 L& h9 V, V) K
現在我的模擬好像有點問題 想請教一下3 `6 d, w  F& @5 C1 {0 Z0 {. y0 J0 t
圖一為我簡化後的Model 基本上 就是一顆CMOS Inverter 然後並連上一個偏壓電阻
  Y# h2 R. e( A7 f2 M$ Y  \! R然後a b兩點再分別接到Crystal的兩端 3 m6 O0 C4 L- b
Cryst ...

( P( c, T1 V5 @* q6 g
9 V( l- f( X7 P; Q9 P因為最近剛好也要做一個 1MHZ~10MHz 的 X'tal oscillator, 最近這兩篇討論對小弟
6 L+ |( g' {1 b( Q7 K2 K幫助很大..不過在模擬上有遇到問題, 怕是自己觀念有錯, 想請各位前輩指導...
+ D8 Z. E1 v$ y1 p; h" L4 y+ P2 X; b5 v" d: }
關於負電組的部份, 老實說是第一次看到這個觀念, 研讀了這兩篇討論串所提供的一些9 u. q6 Y  v& ]- Y& k) @. M
文件, 總算有了一點點感覺...在推導的部份 monkeybad 大大提供的 Philips 那份文件
( q# W3 _) ]0 d/ h有詳細說明, 裡頭推論出滿足負電阻條件時 inverter 最小的 gm 值, 不過就是在這邊
- a& \0 |( t0 k( T; e( ~遇到一點問題...
' {. Q% W& n. j$ P% x( [2 J8 D1 M# q2 `9 `+ J( W. K
我模擬的條件為:
9 m+ V6 c! g; \: `6 n10M X'tal model 為: RS=50, CS=0.004pF, L=60039.21315uH, CP=5pF (前人留下的..)
$ K; Q! `3 B1 U. u3 y& E' D6 hInverter size 為: WN=3u, WP=10u, L=0.5u, 偏壓在約 1.65V (VDD/2)3 m. h% D, y2 T  T
RP 為 2E6* g1 E) M+ I( f6 l2 M- `. O: V
CX1=CX2=10p (X'tal兩邊的負載電容)
% \: \" g/ @1 B( u- `4 l+ N) N+ `+ D9 j7 y
假設先不考慮 Cpar 的效應, 根據公式算出來的 gmmin 約為 115u 左右, 用本篇一開始
6 }( b6 B# w. {* nmonkeybad 大大提出的方式去模擬, HSPICE 模擬出來 NMOS 的 gm 約為 521u, 是理論
! Q4 I, M$ H: B! S- b最小值將近五倍, 然而 AC 分析看到的阻值卻是正的(請參考附圖), 我試著調整參數, 發現3 a5 ~" Y: }1 X2 C: W8 t, A
將 CX1, CX2 以及 RP 縮小才會得到類似 monkeybad 大提供的圖 (整個從1MEG到10MEG
1 R" d% |8 M2 ^5 h的頻域都是負電阻..) 不過阻值也不大..
, {3 t# @( n! X" z; D. K; W. F( T8 p3 Q3 c* N0 a; v, o, ^2 @8 |$ w1 x
另外一個問題是, 根據公式, RP 如果愈大, gmmin 會愈小, 所以我自己的推論是如果 RP 愈大, . P/ l. W( q. R. c- \
模擬結果應該會往"更負"的那邊移動, 不過我用 50E6 模擬結果卻與預期完全相反...
2 i* U: ]1 l  y$ e9 @. y; S$ P' k6 G- w- \# r
研究了兩天實在不知道是哪邊弄錯了, 煩請前輩們指導一下..謝謝..

本帖子中包含更多資源

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

x
2#
發表於 2007-8-24 00:06:30 | 顯示全部樓層
哎哎...負電阻的部分還是參不透玄機...模擬不出來...
  W9 {$ @+ V, K. ^5 @0 @9 M  q1 E
不過我按照推導的結果確認 gm 值足夠後把整個線路丟進 ADiT 去模擬, 把 X'tal 兩端設成6 c# l8 z) z5 m$ o( s
SPICE_NODE, 結果是會順利起震的, 可是又遇到另一個問題, 就是用 HSPICE 模擬無法起震,
% E2 w# Y! ^* f  z; J& m我覺得應該是模擬條件設定的問題, 我有參考了前面 finster 大大提過的技巧, 不過兩個端點
5 S) O+ o! q" j  o4 I; F6 Y9 e8 q1 N最後還是會停在偏壓點 (剛好約 VDD/2) 的地方, 我知道 time step 的設定似乎會影響到模擬' k  z+ r- H( l1 `
會不會起震, 不知有沒有前輩們能分享一下除了 time step 之外還有什麼地方要注意的??% O3 F& U* K; Z; P8 x% j  r
- A; u  n6 L3 \, Y0 m
另外再請教 monkeybad 大大, 您提到的 "一開始起始值的電壓用很小" 指的就是 X'tal 兩端的
+ N% u* `6 h9 ^" H初始值嗎??
3#
發表於 2007-8-27 12:32:26 | 顯示全部樓層
ADiT 是本土公司 (華凱, EverCAD) 開發的一套 simulation tool, 這套 tool 標榜模擬的速度
; x7 {/ O. t- O( `# P) p2 u比 HSPICE 快上許多, 也有提供準確度較高的 spice mode...Mentor 為了加強他在電路模擬
% L! d* X( B- B這個領域的 tool, 在去年(前年?? 忘了..)購併了 EverCAD...所以這套 tool 現在也是爆貴...-_-" Q: n% U9 [$ j9 J. ?' q3 C2 ?
& |7 v3 [7 M8 |) e
以上是題外話.... $ ^4 W1 Q% ]& O/ a

- }5 m+ {4 j# t7 Y1 y" }X'tal 的 model 似乎不容易要到, 我 12MHz 的 model 是參考 Philips 文件上的...那應該算是
5 \  t# }! K. ~) ]1 S廠商的 model 吧??....
& y" N% Y! e! ]# n6 \& Y
, n) Z& g2 h8 v6 t0 V8 U我去看了不會起震時 C 點的波形, 初始值是參考 finster 大大的建議, 震幅與操作點一開始從
" O- b) }; V# ^) h) U5 k7 K接近 full swing  衰減, 然後隨著 VDD 逐漸上升, 當 VDD 到 3.3V 時 C 點會上升到偏壓點附近, + d+ }) Y! F# {1 Z# E# w
接著就是維持著約 350mV 的振幅到模擬結束...:f33 試過調整 time step 與 VDD ramp up  W& i, |8 f& `/ ], ]: T/ X3 G* N
的時間, 看來都沒有什麼關係...9 v/ t! p& Y; z( W# p& z, u

5 a8 e: r! K' p, u5 z* R5 x+ t我還沒有試過 monkeybad 大提供的外加 power 的作法, 不過在網路上找資料時有看到大大
% k/ U* d' B. G5 I提供的那份文件, 只是如同 finster 大所說, 這是一個不存在的電源, 總覺得這樣模擬可能不是, ^. T- S3 h) ]( L5 W4 C+ c. V
很正確...
* @6 N3 {: ^4 g* ^( {2 y7 o) k  U( |% N! x- D6 W1 o
不知道是哪邊設錯了, 請各位前輩能再指導一下...
4#
發表於 2007-9-9 14:38:59 | 顯示全部樓層
最近一直在嘗試, 本來因為 schedule 的關係想先擱下, 以前做這個線路的同事說就是用
) r" l6 @# T, Z" Y! V. D- JHSPICE 跑不起來才換 ADiT, 是還沒有遇到說 real chip 不會動的情況...& I4 C( s+ _) }  m

) |, @& ]9 W* t3 H: M不過最後一次的嘗試讓我看到它起震了, time step 要縮小到 0.1ns, CX1(inverter輸入端)# Q& L: n  G. {/ u
縮小到 4pF (是任意挑一個較小的值, 沒試過其他的..CX2 仍為 10pF), 不過還是有點怪怪的...9 i) J) ?# B* L
) V1 @$ D' h9 E$ u6 h
前面討論有提到, 起震時在 X'tal 內 CS 的端點會看到振幅漸增的震盪, 我用 ADiT 跑出來
1 u% ?, I. X2 E$ M; E  G0 ^8 @0 [% n到穩態時震幅是 +/- 2.x KV, SPICE 跑出來只有900多V, 另外 CX1=CX2=10pF 時 ADiT
# l0 b$ L4 I% ?就可以很順利的起震, XG/XD 的振幅是 full swing, SPICE 的話會看到 XG/XD 的振幅很小,
7 D9 v6 I% a  @% X/ ?# Q& J幾乎就是在 INV 的操作點附近, CS 端點的振幅也只有幾十V, 頻率慢一點 (ex. 2MHz)
" L( \1 G' {+ s, i還可以起震, 跑到 12MHz 時就掛了..
5 ]0 _% u- F5 P; B. q6 n
( i' s) t9 T0 U2 ^  j3 }只是 time step 設到 0.1ns 用 HSPICE 跑 12MHz X'tal 要好久....>_<" G, }6 U' ^+ C# ?8 a/ D
(當然比起前面 finster 大說的 32KHz 跑一個禮拜是好多了...)
9 T" E; P+ d3 v) c) T, ^0 }8 t% c0 k2 F1 z" s
[ 本帖最後由 skyboy 於 2007-9-9 02:51 PM 編輯 ]

評分

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

查看全部評分

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

本版積分規則

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

GMT+8, 2024-5-8 06:36 AM , Processed in 0.112006 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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