ngspice में वोल्टेज-ट्रांसफर विशेषताओं की अधिकतम ढलानों को प्लॉट करें

Nov 22 2020

मैंने एनजीपीईएस में एक बुनियादी सीएमओएस इन्वर्टर लागू किया है, जो अलग-अलग Vdd वोल्टेज में वोल्टेज ट्रांसफर कर्व्स (Vout बनाम विन) प्राप्त करने के लिए इनपुट वोल्टेज पर डीसी स्वीप विश्लेषण करता है।

. cmos g (gain) vs vdd

.include tsmc180.txt

vdd source_p 0 0v
vin gate_common 0 0v

m_p out gate_common source_p source_p cmosp w=2u l=0.18u
m_n out gate_common 0 0 cmosn w=2u l=0.18u

.dc vin 0 2.5 0.01 vdd 0.5 2.5 0.5
.control
run
plot v(out) vs v(gate_common) 
plot deriv(v(out)) vs v(gate_common)
.endc
.end

उपरोक्त चलाने पर, यह मुझे अपेक्षा के अनुसार दो प्लॉट देता है, एक वीटीसी और दूसरा वीटीसी की ढलान जो इन्वर्टर लाभ को दर्शाते हैं।

मुझे vdd के संबंध में वक्र के रूप में अधिकतम लाभ अंक (लाभ वक्र पर नकारात्मक चोटियों) की साजिश करने की आवश्यकता है। मैंने .MEASUREऐसा करने के लिए कमांड का उपयोग करने के बारे में सोचा है ।

.measure dc g deriv v(out)
.measure dc g_max min g 

लेकिन यह मुझे एक त्रुटि देता है

No. of Data Rows : 1255
        measure 'g'  failed
Error: measure  g  :
        function '' currently not supported
 .measure dc g deriv v(out) failed!

मैं ngspice pdf मैनुअल या ngspice सिमुलेशन उदाहरण के लिए उनके git रिपॉजिटरी में ऐसा कोई उदाहरण नहीं खोज सका। कुछ मार्गदर्शन की बहुत सराहना की जाती है।

जवाब

aconcernedcitizen Nov 22 2020 at 18:15

derivट्रेस की सभी लंबाई में अंतर करने का मतलब है, इसलिए आपके कमांड का .meas g deriv v(out)कोई मतलब नहीं है, क्योंकि वापसी मूल्य अंकों का एक वेक्टर होगा। मैनुअल के उपयोग का वर्णन derivमदद करने के लिए एक कीवर्ड एक बिंदु पर व्युत्पन्न का मूल्यांकन के रूप में, या तो संबंधित ट्रेस के लिए, या हालत दूसरे के साथ पहुँच के माध्यम से।

के बाद से इस विधि अनुमति देने के लिए प्रतीत नहीं होता है min, max, और सह, मैं सिफारिश करेंगे आप एक ही प्रदर्शन .dcविश्लेषण, लेकिन में .tran:

  1. एक रैंप के रूप में अपना इनपुट सेट करें, जैसे PWL(0 0 1 2.5)
  2. {x}अपनी आपूर्ति को असाइन करें (या कुछ अन्य मूल्य)।
  3. के साथ आपूर्ति के मूल्यों के माध्यम से कदम .step param x 0.5 2.5 0.5

यह साजिश करने के लिए काफी है V(out)केवल, है, जो सही जवाब दिखाएगा, लेकिन के खिलाफ साजिश रचने V(in)की नकल हैं .dcविश्लेषण। इस पद्धति का लाभ यह है कि, यदि आप एक सर्किट जोड़ते हैं जो आउटपुट का व्युत्पन्न प्रदर्शन कर सकता है, तो आप / / आदि .measको खोजने के लिए उपयोग कर सकते हैं । सर्किट द्वारा गठित समूह है और , जैसा कि यहां वर्णित है । इसका स्थान, इसी तरह की है बहुत: बस की noninverting इनपुट कनेक्ट करने के लिए , और में वोल्टेज का उपयोग व्युत्पन्न के लिए। मैं कुल सटीकता समय (उदाहरण के लिए ), या कम, पर्याप्त सटीकता के लिए (सहज स्पाइक्स से बचने के लिए ) की तुलना में एक टाइमस्टेप 1000x छोटा होता ।minmaxG1L1G1V(out)L11 ms1 s

इसके साथ, यदि V(d)व्युत्पन्न है, तो बस उपयोग करें:

.meas d min v(d) from 10m

यह from 10mसुनिश्चित करता है कि व्युत्पन्न के कारण शुरुआत में कोई यादृच्छिक स्पाइक्स न हों।