This commit is contained in:
hneemann 2017-04-25 16:08:17 +02:00
parent cf600083d7
commit c7ae5767d2
9 changed files with 43 additions and 43 deletions

View File

@ -455,7 +455,7 @@ A B C D Y_3
<pos x="780" y="820"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -465,7 +465,7 @@ A B C D Y_3
<pos x="1060" y="200"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -479,7 +479,7 @@ A B C D Y_3
<pos x="1140" y="200"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -493,7 +493,7 @@ A B C D Y_3
<pos x="1220" y="200"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -507,7 +507,7 @@ A B C D Y_3
<pos x="1300" y="200"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -517,7 +517,7 @@ A B C D Y_3
<pos x="1060" y="280"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -531,7 +531,7 @@ A B C D Y_3
<pos x="1140" y="280"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -545,7 +545,7 @@ A B C D Y_3
<pos x="1220" y="280"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -559,7 +559,7 @@ A B C D Y_3
<pos x="1300" y="280"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -573,7 +573,7 @@ A B C D Y_3
<pos x="1060" y="360"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -583,7 +583,7 @@ A B C D Y_3
<pos x="1140" y="360"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -593,7 +593,7 @@ A B C D Y_3
<pos x="1220" y="360"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -607,7 +607,7 @@ A B C D Y_3
<pos x="1300" y="360"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -621,7 +621,7 @@ A B C D Y_3
<pos x="1060" y="440"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -635,7 +635,7 @@ A B C D Y_3
<pos x="1140" y="440"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -645,7 +645,7 @@ A B C D Y_3
<pos x="1220" y="440"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -867,7 +867,7 @@ A B C D Y_3
<pos x="900" y="560"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -881,7 +881,7 @@ A B C D Y_3
<pos x="1060" y="520"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -895,7 +895,7 @@ A B C D Y_3
<pos x="1140" y="520"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -909,7 +909,7 @@ A B C D Y_3
<pos x="1220" y="520"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -919,7 +919,7 @@ A B C D Y_3
<pos x="1300" y="520"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -929,7 +929,7 @@ A B C D Y_3
<pos x="1060" y="600"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -939,7 +939,7 @@ A B C D Y_3
<pos x="1140" y="600"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -949,7 +949,7 @@ A B C D Y_3
<pos x="1220" y="600"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>

View File

@ -75,7 +75,7 @@ Z Z 0
<pos x="340" y="260"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
@ -85,7 +85,7 @@ Z Z 0
<pos x="220" y="220"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>

View File

@ -12,7 +12,7 @@ import static de.neemann.digital.core.element.PinInfo.input;
* A diode needed to pull a wire to ground.
* Used to build a wired AND.
*/
public class DiodeBackward extends DiodeForeward {
public class DiodeBackward extends DiodeForward {
/**
* The description

View File

@ -11,12 +11,12 @@ import static de.neemann.digital.core.element.PinInfo.input;
* A diode needed to pull a wire to VDD.
* Used to build a wired OR.
*/
public class DiodeForeward implements Element, Observer {
public class DiodeForward implements Element, Observer {
/**
* The diodes description
*/
public static final ElementTypeDescription DESCRIPTION = new ElementTypeDescription(DiodeForeward.class, input("in"))
public static final ElementTypeDescription DESCRIPTION = new ElementTypeDescription(DiodeForward.class, input("in"))
.addAttribute(Keys.ROTATE)
.addAttribute(Keys.BLOWN);
@ -30,7 +30,7 @@ public class DiodeForeward implements Element, Observer {
*
* @param attr the elements attributes
*/
public DiodeForeward(ElementAttributes attr) {
public DiodeForward(ElementAttributes attr) {
this(attr, DESCRIPTION, PinDescription.PullResistor.pullDown);
}
@ -41,7 +41,7 @@ public class DiodeForeward implements Element, Observer {
* @param description used to set the output pin description
* @param requiredResistor resistor needed at the output net
*/
protected DiodeForeward(ElementAttributes attr, ElementTypeDescription description, PinDescription.PullResistor requiredResistor) {
protected DiodeForward(ElementAttributes attr, ElementTypeDescription description, PinDescription.PullResistor requiredResistor) {
output = new ObservableValue("out", 1, true).setPinDescription(description).setBidirectional();
this.requiredResistor = requiredResistor;
blown = attr.get(Keys.BLOWN);

View File

@ -11,7 +11,7 @@ import de.neemann.digital.core.flipflops.FlipflopT;
import de.neemann.digital.core.io.*;
import de.neemann.digital.core.memory.*;
import de.neemann.digital.core.pld.DiodeBackward;
import de.neemann.digital.core.pld.DiodeForeward;
import de.neemann.digital.core.pld.DiodeForward;
import de.neemann.digital.core.pld.PullDown;
import de.neemann.digital.core.pld.PullUp;
import de.neemann.digital.core.switching.*;
@ -124,7 +124,7 @@ public class ElementLibrary implements Iterable<ElementLibrary.ElementContainer>
.add(BitCount.DESCRIPTION))
.add(new LibraryNode(Lang.get("lib_cplx"))
//.add(Diode.DESCRIPTION) // see class DiodeTest for further information
.add(DiodeForeward.DESCRIPTION)
.add(DiodeForward.DESCRIPTION)
.add(DiodeBackward.DESCRIPTION)
.add(Switch.DESCRIPTION)
.add(Relay.DESCRIPTION)

View File

@ -114,7 +114,7 @@ public final class ShapeFactory {
map.put(TestCaseElement.TESTCASEDESCRIPTION.getName(), TestCaseShape::new);
map.put(Diode.DESCRIPTION.getName(), DiodeShape::new);
map.put(DiodeForeward.DESCRIPTION.getName(), DiodeForewardShape::new);
map.put(DiodeForward.DESCRIPTION.getName(), DiodeForewardShape::new);
map.put(DiodeBackward.DESCRIPTION.getName(), DiodeBackwardShape::new);
map.put(PullUp.DESCRIPTION.getName(), PullUpShape::new);
map.put(PullDown.DESCRIPTION.getName(), PullDownShape::new);

View File

@ -343,16 +343,16 @@ Die gesammte Speichergröße beträgt damit damit dx*dy*2 Speicherworte.</string
Es handelt sich um eine ideale Diode: In Durchlassrichtung gibt es keinen Spannungabfall über der Diode.</string>
<string name="elem_DiodeBackward_pin_in">Ist der Eingang 0 ist auch der Ausgang 0. In allen anderen Fällen ist der Ausgang hochohmig.</string>
<string name="elem_DiodeBackward_pin_out">Ist der Eingang 0 ist auch der Ausgang 0. In allen anderen Fällen ist der Ausgang hochohmig.</string>
<string name="elem_DiodeForeward">Diode zu Plus</string>
<string name="elem_DiodeForeward_tt">Vereinfachte unidirektionale Diode, die nur genutzt werden kann, um eine Leitung auf Plus zu ziehen.
<string name="elem_DiodeForward">Diode zu Plus</string>
<string name="elem_DiodeForward_tt">Vereinfachte unidirektionale Diode, die nur genutzt werden kann, um eine Leitung auf Plus zu ziehen.
Wird verwendet um ein "Wired Or" zu implementieren. Daher ist am Ausgang ein Pull Down Widerstand erforderlich!
Innerhalb der Simulation verhält sich eine Diode wie ein aktives Gatter mit dreiwerteiger Wertetabelle:
Ist der Eingang 1 ist auch der Ausgang 1. In den anderen Fällen (0 und hochohmig) ist der Ausgang hochohmig (High Z).
Damit können sich antiparallel zusammen geschaltete Dioden gegenseitig im high-Zustand halten, was mit realen
Dioden nicht möglich ist.
Es handelt sich um eine ideale Diode: In Durchlassrichtung gibt es keinen Spannungabfall über der Diode.</string>
<string name="elem_DiodeForeward_pin_in">Ist der Eingang 1 ist auch der Ausgang 1. In allen anderen Fällen ist der Ausgang hochohmig.</string>
<string name="elem_DiodeForeward_pin_out">Ist der Eingang 1 ist auch der Ausgang 1. In allen anderen Fällen ist der Ausgang hochohmig.</string>
<string name="elem_DiodeForward_pin_in">Ist der Eingang 1 ist auch der Ausgang 1. In allen anderen Fällen ist der Ausgang hochohmig.</string>
<string name="elem_DiodeForward_pin_out">Ist der Eingang 1 ist auch der Ausgang 1. In allen anderen Fällen ist der Ausgang hochohmig.</string>
<string name="elem_PullUp">Pull-Up Widerstand</string>
<string name="elem_PullUp_pin_out">Ein "Weak High".</string>
<string name="elem_PullUp_tt">Ist eine Leitung hochohmig, zieht sie ein Pull-Up Widerstand zu High.

View File

@ -336,15 +336,15 @@
So this is a ideal diode: There is no voltage drop across a forward-biased diode.</string>
<string name="elem_DiodeBackward_pin_in">If the input is low also the output is low. In all other cases the output is in high z state.</string>
<string name="elem_DiodeBackward_pin_out">If the input is low also the output is low. In all other cases the output is in high z state.</string>
<string name="elem_DiodeForeward">Diode to VDD</string>
<string name="elem_DiodeForeward_tt">A simplified unidirectional diode, used to pull a wire to VDD. It is used to implement a wired OR.
<string name="elem_DiodeForward">Diode to VDD</string>
<string name="elem_DiodeForward_tt">A simplified unidirectional diode, used to pull a wire to VDD. It is used to implement a wired OR.
So it is necessary to connect a pull down resistor to the diodes output.
In the simulation the diode behaves like an active gate with a trivalent truth table:
Is the input high, also the output is high. In all other cases (input is low or high z) the output is in high z state.
So two anti parallel connected diodes can keep each other in high state, which is not possible with real diodes.
This is an ideal diode: There is no voltage drop across a forward-biased diode.</string>
<string name="elem_DiodeForeward_pin_in">If the input is high also the output is high. In all other cases the output is in high z state.</string>
<string name="elem_DiodeForeward_pin_out">If the input is high also the output is high. In all other cases the output is in high z state.</string>
<string name="elem_DiodeForward_pin_in">If the input is high also the output is high. In all other cases the output is in high z state.</string>
<string name="elem_DiodeForward_pin_out">If the input is high also the output is high. In all other cases the output is in high z state.</string>
<string name="elem_PullUp">Pull-Up Resistor</string>
<string name="elem_PullUp_tt">If a net is in a HighZ state, this resistor pulls the net to high. In any other case this component has no effect.</string>
<string name="elem_PullUp_pin_out">A "weak high".</string>

View File

@ -13,7 +13,7 @@
<pos x="260" y="140"/>
</visualElement>
<visualElement>
<elementName>DiodeForeward</elementName>
<elementName>DiodeForward</elementName>
<elementAttributes>
<entry>
<string>rotation</string>