Hello,
I am working on simulating a relatively simple logic function, but PSpice is doing something very odd.
Above is my circuit - I defined an 'idealized' logic IO to convert from PSpice "digital" signals (labelled BIN) to a binary analog value (labelled AN_BIN, 0V or 1V). This analog value then drives my output block (LOGIC_3S_OUTPUT_LUT) which I have reduced to be very simple. The output voltage is labelled ANALOG, aka Q0. The following is my LOGIC_3S_OUTPUT_LUT block:
.SUBCKT LOGIC_3S_OUTPUT_LUT IN OUT OEZ VCC VEE
* BUFFER INPUT SIGNAL
V1 VT1 VEE 0.5
EINPUT INPUT VEE VALUE = {IF(V(IN,VT1)>0,1,0)}
* DECIDE OUTPUT VOLTAGE:
EOUT AND VEE VALUE = {V(VCC,VEE)*V(INPUT,VEE)}
* DECIDE OUTPUT CURRENT:
GOUT AND OUT VALUE = {V(AND,OUT)*(V(INPUT,VEE)/100 + (1 - V(INPUT,VEE))/10)}
* PREVENT FLOATING NODE AT OUTPUT:
ROUT OUT VEE 1E6
.ENDS
The output of this in any other SPICE simulator works fine -- it only has this problem in PSpice, which I find quite odd. Here are the waveforms:
At the top you can see that the digital value remains constant - 1 - during the output pulse time.
You can also see in the voltage waveforms that AN_BIN is remaining at 1V, as expected.
However, halfway through the output pulse, the output drops by Vcc/2. I cannot find any explanation as to why this is occurring. The output load is constant - 1k resistor + 5pF capacitor connected to GND. There is no other load or signal connected to that output.
Can you help me to determine where I have gone wrong?
Copyright © 2020 Cadence Design Systems, Inc. All rights reserved.
How amazing this article is!!! It is the article which can help me to look back on myself while reading an article about 토토사이트 , and to grow in the future rather than always beating myself up and staying in one place.