|
在Hspice執行.measure指令時,它是依據你的.lib的數目來產生相對應的*.mt*檔
! v- J3 z& Q5 D. g5 { t故而,如果你的檔案有多出*.mt0的檔案,那表示這是你的.lib的第一個依據.measure所計算出來的資料
( ?, s* p- A/ g' S" e所以,請再檢查一下你的HSPICE檔案吧/ L, H. X: \, x& Y) l* }* T
! d% q0 q7 C% S' R n/ _% m. o
再來,你的.measure指令用法沒有問題0 [# ^- u# i% n: Z3 i8 m
但,你的取樣點及時間似乎不對
$ G* P* `; q2 H k5 V你的暫態分析(TRAN)掃瞄區間:0~3.2msec,你所用的指令為:9 O4 a% X4 O8 D B0 `. Q6 i
.MEAS TRAN DIGOUT' }' p$ e+ S# b! `
+TRIG V (Dout) VAL=0 RISE=2( ~- y3 b5 e3 r, G% G2 F
+TARG V (Dout) VAL=3.2m RISE=25 M7 M# c/ f! m5 S5 F2 \
寫法沒錯,但,如果是ADC,那其輸出信號為digital,故而,輸出信號的振幅不是0就是vdd,如果要記綠輸出信號的digital code的話
1 O' [5 P$ B! y b那,計算輸出信號的digital code應該依照clock來作取樣時間,而不是0~3.2ms,也就是.measure的VAL要是clock; j+ ~& v: s( s/ U& c4 R
另外,若依照你的指令來用,應該會計算不到輸出信號,除非你的模擬時間超過6.4ms,因為你是用RISE=22 l: h( Q) H2 U) x+ j3 h4 K
再者,如果是用.measure來計算digital code,那如果以rise edge作基準則應該用RISE=1,而不是RISE=2,這是很嚴重的錯誤,除非你的clock及取樣有delay 1個clock的作用在,如果是以fall edge則是FALL=1,若是以你RISE=2,那你取樣出來的digital code應該都是錯誤的 |
|